Index: EcnlProtoTool/trunk/asp3_dcre/.cproject
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/.cproject	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/.cproject	(revision 429)
@@ -49,5 +49,5 @@
 							<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.1804182567" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
 							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.74647507" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
-							<builder buildPath="${workspace_loc:/asp3_dcre}/Debug" id="com.renesas.cdt.managedbuild.gcc.rz.builder.460934776" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/>
+							<builder buildPath="${workspace_loc:/asp3_dcre}/Debug" id="com.renesas.cdt.managedbuild.gcc.rz.builder.460934776" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="GCC for Renesas Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.renesas.cdt.managedbuild.gcc.rz.builder"/>
 							<tool id="com.renesas.cdt.managedbuild.gcc.rz.tool.assembler.1682623852" name="Cross ARM GNU Assembler" superClass="com.renesas.cdt.managedbuild.gcc.rz.tool.assembler">
 								<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.1607103230" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
@@ -94,4 +94,5 @@
 				<option id="toolchain.id" value="gcc-arm-embedded"/>
 				<option id="toolchain.version" value="6.3.1.20170620"/>
+				<option id="toolchain.enable" value="true"/>
 			</storageModule>
 		</cconfiguration>
@@ -112,3 +113,4 @@
 		</configuration>
 	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
 </cproject>
Index: EcnlProtoTool/trunk/asp3_dcre/Debug/Makefile
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/Debug/Makefile	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/Debug/Makefile	(revision 429)
@@ -6,5 +6,5 @@
 #  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
 #                              Toyohashi Univ. of Technology, JAPAN
-#  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+#  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -81,4 +81,10 @@
 
 #
+#  システムサービスコールライブラリ（libsyssvc.a）のディレクトリ名
+#  （システムサービスコールライブラリもmake対象にする時は，空に定義する）
+#
+SYSSVC_LIB = 
+
+#
 #  カーネルを関数単位でコンパイルするかどうかの定義
 #
@@ -89,4 +95,9 @@
 #
 OMIT_TECS = 
+
+#
+#  TECS関係ファイルのディレクトリの定義
+#
+TECSDIR = 
 
 #
@@ -119,7 +130,8 @@
 
 #
-#  依存関係ファイルを置くディレクトリの定義
-#
-DEPDIR = deps
+#  中間オブジェクトファイルと依存関係ファイルを置くディレクトリの定義
+#
+OBJDIR = obj
+DEPDIR = obj
 
 #
@@ -150,4 +162,6 @@
 endif
 
+TINETDIR = tinet
+
 #
 #  mbedサービスの定義
@@ -159,5 +173,5 @@
 #  共通コンパイルオプションの定義
 #
-COPTS := -g -std=gnu99 $(COPTS)
+COPTS := -g -std=gnu99 -ffunction-sections -fdata-sections $(COPTS)
 ifndef OMIT_WARNING_ALL
 	COPTS := -Wall $(COPTS)
@@ -171,5 +185,5 @@
 CDEFS := $(CDEFS) 
 INCLUDES := -I. -I$(SRCDIR)/include $(INCLUDES) -I$(SRCDIR)
-LDFLAGS := $(LDFLAGS) -Wl,-Map=$(OBJNAME).map,--cref
+LDFLAGS := $(LDFLAGS) -L.
 LIBS := $(LIBS) $(CXXLIBS)
 CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
@@ -191,5 +205,5 @@
 	APPL_COBJS := sample1n.o sample1.o
 endif
-APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
+APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o mbed_stub.o
 APPL_CFLAGS := $(APPL_CFLAGS)
 ifdef APPLDIRS
@@ -197,5 +211,4 @@
 endif
 
-TINETDIR = tinet
 ifdef TINETDIR
 	#
@@ -221,4 +234,7 @@
 	SUPPORT_UDP = true
 
+	# IGMPを有効に設定
+	#SUPPORT_IGMP = true
+
 	#
 	#  ネットワークサービスの Makefile のインクルード
@@ -230,18 +246,34 @@
 #  システムサービスに関する定義
 #
+ifdef TCINSTALL
+GCC_PATH = $(TCINSTALL)
+else
+GCC_PATH = $(shell which $(CC))/../../
+endif
+MALLOC_LIB = "${GCC_PATH}arm-none-eabi/lib/thumb/v7-ar/fpv3/hard/libc.a"
+MALLOC_OBJS = lib_a-reent.o lib_a-impure.o lib_a-malloc.o lib_a-mallocr.o lib_a-calloc.o lib_a-callocr.o lib_a-realloc.o lib_a-reallocr.o lib_a-sbrkr.o lib_a-freer.o
+
 SYSSVC_DIRS := $(TECSGENDIR) $(SRCDIR)/tecs_kernel \
 				$(SYSSVC_DIRS) $(SRCDIR)/syssvc
 SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
-SYSSVC_COBJS := $(INIT_TECS_COBJ) $(TECS_COBJS) $(SYSSVC_COBJS) \
-				 $(CXXRTS)
+SYSSVC_COBJS := $(SYSSVC_COBJS) $(TECS_COBJS) \
+				$(INIT_TECS_COBJ) $(CXXRTS)
 SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
 INCLUDES := $(INCLUDES) -I$(TECSGENDIR) -I$(SRCDIR)/tecs_kernel -I../../musl-1.1.18/include
 
 #
+#  トレースログ記録のサンプルコードに関する定義
+#
+ifdef ENABLE_TRACE
+	COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
+	SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
+endif
+
+#
 #  ターゲットファイル
 #
 .PHONY: all
 ifndef OMIT_TECS
-all: tecs
+all: tecs | $(DEPDIR)
 #	@$(MAKE) check
 	@$(MAKE) check $(OBJNAME).bin
@@ -258,4 +290,5 @@
 #  コンフィギュレータに関する定義
 #
+CFG_KERNEL := --kernel asp
 ifndef TINETDIR
   CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
@@ -266,5 +299,5 @@
   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 $(TINET_ROOT)/tcpip_sym.def \
 			--symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
 endif
@@ -272,6 +305,7 @@
 CFG_COBJS := kernel_cfg.o $(CFG_COBJS)
 CFG_OBJS := $(CFG_ASMOBJS) $(CFG_COBJS)
+CFG_CFLAGS := -DTOPPERS_CB_TYPE_ONLY $(CFG_CFLAGS)
+
 CFG2_OUT_SRCS := kernel_cfg.h kernel_cfg.c $(CFG2_OUT_SRCS)
-CFG_CFLAGS := -DTOPPERS_CB_TYPE_ONLY $(CFG_CFLAGS)
 
 #
@@ -304,7 +338,5 @@
 					$(foreach file,$(KERNEL_FCSRCS),$(file:.c=.o))
 endif
-ifdef OMIT_OFFSET_H
-	OFFSET_H =
-else
+ifdef TARGET_OFFSET_TRB
 	OFFSET_H = offset.h
 endif
@@ -322,5 +354,5 @@
 endif
 ifndef TARGET_TCPIP_TRB
-	TARGET_TCPIP_TRB := $(SRCDIR)/tinet/tinet.trb
+	TARGET_TCPIP_TRB := $(SRCDIR)/$(TINETDIR)/tinet.trb
 endif
 
@@ -332,11 +364,29 @@
 vpath %.cfg $(APPL_DIRS)
 vpath %.cdl $(APPL_DIRS)
+vpath %.bin $(APPL_DIRS)
+
+#
+#  中間オブジェクトファイルを置くディレクトリの処理
+#
+APPL_ASMOBJS   := $(addprefix $(OBJDIR)/, $(APPL_ASMOBJS))
+APPL_CXXOBJS   := $(addprefix $(OBJDIR)/, $(APPL_CXXOBJS))
+APPL_COBJS     := $(addprefix $(OBJDIR)/, $(APPL_COBJS))
+SYSSVC_ASMOBJS := $(addprefix $(OBJDIR)/, $(SYSSVC_ASMOBJS))
+SYSSVC_COBJS   := $(addprefix $(OBJDIR)/, $(SYSSVC_COBJS))
+KERNEL_ASMOBJS := $(addprefix $(OBJDIR)/, $(KERNEL_ASMOBJS))
+KERNEL_COBJS   := $(addprefix $(OBJDIR)/, $(KERNEL_COBJS))
+KERNEL_LCOBJS  := $(addprefix $(OBJDIR)/, $(KERNEL_LCOBJS))
+CFG_ASMOBJS    := $(addprefix $(OBJDIR)/, $(CFG_ASMOBJS))
+CFG_COBJS      := $(addprefix $(OBJDIR)/, $(CFG_COBJS))
+CFG_DMY        := $(addprefix $(OBJDIR)/, $(CFG_DMY))
+MALLOC_OBJS    := $(addprefix $(OBJDIR)/, $(MALLOC_OBJS))
 
 #
 #  コンパイルのための変数の定義
 #
-KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
+APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
 SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS) $(HIDDEN_OBJS)
-APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
+KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS) $(MALLOC_OBJS)
+CFG_OBJS = $(CFG_ASMOBJS) $(CFG_COBJS)
 ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
 											$(END_OBJS) $(HIDDEN_OBJS)
@@ -350,4 +400,12 @@
 	OBJ_LDFLAGS := $(OBJ_LDFLAGS) -L.
 endif
+ifdef SYSSVC_LIB
+	LIBS_DEP := $(LIBS_DEP) $(SYSSVC_LIB)/libsyssvc.a
+	OBJ_LDFLAGS := $(OBJ_LDFLAGS) -L$(SYSSVC_LIB)
+	REALCLEAN_FILES := $(REALCLEAN_FILES) libsyssvc.a
+else
+	LIBS_DEP := $(LIBS_DEP) libsyssvc.a
+	OBJ_LDFLAGS := $(OBJ_LDFLAGS) -L.
+endif
 
 ifdef TEXT_START_ADDRESS
@@ -372,5 +430,5 @@
 tecs $(TECSGEN_SRCS) $(TECS_HEADERS): $(TECSGEN_TIMESTAMP) ;
 $(TECSGEN_TIMESTAMP): $(APPL_CDL) $(TECS_IMPORTS)
-	$(TECSGEN) $< -R $(INCLUDES) --cpp "$(TECS_CPP)" -g $(TECSGENDIR)
+	$(TECSGEN) $< -R $(INCLUDES) --cpp "$(subst ", \", $(TECS_CPP))" -g $(TECSGENDIR)
 
 #
@@ -379,11 +437,10 @@
 cfg1_out.c cfg1_out.db: cfg1_out.timestamp ;
 cfg1_out.timestamp: $(APPL_CFG) $(TECSGEN_TIMESTAMP)
-	echo $(CFG_TABS)
-	$(CFG) --pass 1 --kernel asp $(INCLUDES) $(CFG_TABS) \
+	$(CFG) --pass 1 $(CFG_KERNEL) $(INCLUDES) $(CFG_TABS) \
 						-M $(DEPDIR)/cfg1_out_c.d $(TARGET_KERNEL_CFG) $<
 
-$(CFG1_OUT): $(START_OBJS) cfg1_out.o $(CFG_DMY) $(END_OBJS) $(HIDDEN_OBJS)
+$(CFG1_OUT): $(START_OBJS) $(OBJDIR)/cfg1_out.o $(CFG_DMY) $(END_OBJS) $(HIDDEN_OBJS)
 	$(LINK) $(CFLAGS) $(LDFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
-						$(START_OBJS) cfg1_out.o $(CFG_DMY) $(END_OBJS)
+						$(START_OBJS) $(OBJDIR)/cfg1_out.o $(CFG_DMY) $(LIBS) $(END_OBJS) $(HIDDEN_OBJS)
 
 cfg1_out.syms: $(CFG1_OUT)
@@ -395,5 +452,5 @@
 $(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) --pass 2 $(CFG_KERNEL) $(INCLUDES) $(CFG_TRB)
 
 #
@@ -402,5 +459,5 @@
 $(OFFSET_H): offset.timestamp ;
 offset.timestamp: cfg1_out.db cfg1_out.syms cfg1_out.srec
-	$(CFG) --pass 2 -O --kernel asp $(INCLUDES) -T $(TARGET_OFFSET_TRB) \
+	$(CFG) --pass 2 -O $(CFG_KERNEL) $(INCLUDES) -T $(TARGET_OFFSET_TRB) \
 				--rom-symbol cfg1_out.syms --rom-image cfg1_out.srec
 
@@ -414,7 +471,23 @@
 
 #
+#  システムサービスコールライブラリファイルの生成
+#
+libsyssvc.a: $(filter-out $(OBJDIR)/tBannerMain.o, $(SYSSVC_OBJS))
+	rm -f libsyssvc.a
+	$(AR) -rcs libsyssvc.a $(filter-out $(OBJDIR)/tBannerMain.o, $(SYSSVC_OBJS))
+	$(RANLIB) libsyssvc.a
+
+#
+#  並列makeのための依存関係の定義
+#
+$(APPL_OBJS) $(filter-out $(CFG_DMY), $(SYSSVC_OBJS)): | kernel_cfg.timestamp
+$(APPL_ASMOBJS) $(filter-out $(CFG_DMY), $(SYSSVC_ASMOBJS)) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
+														| offset.timestamp
+
+#
 #  特別な依存関係の定義
 #
-tBannerMain.o: $(filter-out tBannerMain.o,$(ALL_OBJS)) $(LIBS_DEP)
+$(OBJDIR)/tBannerMain.o: $(filter-out $(OBJDIR)/tBannerMain.o,$(ALL_OBJS)) \
+																$(LIBS_DEP)
 
 #
@@ -423,6 +496,13 @@
 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
 	$(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
+			-Wl,-Map=$(OBJNAME).map,--cref -Wl,--gc-sections -Wl,-e_kernel__start,--gc-keep-exported=_kernel_istk \
 			$(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
-			$(ALL_LIBS) $(END_OBJS)
+			-Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
+
+#
+#  依存関係フォルダの作成
+#
+$(DEPDIR):
+	mkdir $@
 
 #
@@ -452,5 +532,5 @@
 check: check.timestamp ;
 check.timestamp: cfg2_out.db $(OBJNAME).syms $(OBJNAME).srec
-	$(CFG) --pass 3 --kernel asp -O $(INCLUDES) -T $(TARGET_CHECK_TRB) \
+	$(CFG) --pass 3 $(CFG_KERNEL) -O $(INCLUDES) -T $(TARGET_CHECK_TRB) \
 				--rom-symbol $(OBJNAME).syms --rom-image $(OBJNAME).srec
 	@echo "configuration check passed"
@@ -461,5 +541,5 @@
 .PHONY: clean
 clean:
-	rm -f \#* *~ *.o $(DEPDIR)/*.d $(CLEAN_FILES) check.timestamp
+	rm -f \#* *~ $(OBJDIR)/*.o $(DEPDIR)/*.d $(CLEAN_FILES) check.timestamp
 	rm -f $(OBJFILE) $(OBJNAME).syms $(OBJNAME).srec $(OBJNAME).bin
 	rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS) cfg2_out.db
@@ -471,9 +551,18 @@
 	rm -f libkernel.a
 endif
+ifndef SYSSVC_LIB
+	rm -f libsyssvc.a
+endif
+	rm -f $(MALLOC_OBJS)
 
 .PHONY: cleankernel
 cleankernel:
 	rm -f $(OFFSET_H) $(KERNEL_LIB_OBJS)
-	rm -f $(KERNEL_LIB_OBJS:%.o=$(DEPDIR)/%.d)
+	rm -f $(KERNEL_LIB_OBJS:$(OBJDIR)/%.o=$(DEPDIR)/%.d)
+
+.PHONY: cleansyssvc
+cleansyssvc:
+	rm -f $(SYSSVC_OBJS)
+	rm -f $(SYSSVC_OBJS:$(OBJDIR)/%.o=$(DEPDIR)/%.d)
 
 .PHONY: realclean
@@ -487,15 +576,15 @@
 #  のみを付けてコンパイルする．
 #
-ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
+ALL_CFG_COBJS = $(CFG_COBJS) $(OBJDIR)/cfg1_out.o
 ALL_CFG_ASMOBJS = $(CFG_ASMOBJS)
 
-$(ALL_CFG_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
-
-$(ALL_CFG_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(CFG_CFLAGS) $<
-
-$(ALL_CFG_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
+$(ALL_CFG_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
 
 #
@@ -549,64 +638,68 @@
 #  コンパイルルールの定義
 #
-$(KERNEL_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_LCOBJS): %.o:
-	$(CC) -DTOPPERS_$(*F) -o $@ -c -MD -MP -MF $(DEPDIR)/$*.d \
+$(KERNEL_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_LCOBJS): $(OBJDIR)/%.o:
+	$(CC) -c -o $@ -DTOPPERS_$(*F) -MD -MP -MF $(DEPDIR)/$*.d \
 									$(CFLAGS) $(KERNEL_CFLAGS) $<
 
-$(KERNEL_LCOBJS:.o=.s): %.s:
-	$(CC) -DTOPPERS_$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(SYSSVC_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(SYSSVC_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(SYSSVC_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(APPL_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_CXXOBJS): %.o: %.cpp
-	$(CXX) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_CXXOBJS:.o=.s): %.s: %.cpp
-	$(CXX) -S $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+$(KERNEL_LCOBJS:$(OBJDIR)/%.o=%.s): %.s:
+	$(CC) -S -o $@ -DTOPPERS_$(*F) $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(SYSSVC_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(APPL_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS): $(OBJDIR)/%.o: %.cpp
+	$(CXX) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS:$(OBJDIR)/%.o=%.s): %.s: %.cpp
+	$(CXX) -S -o $@ $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(MALLOC_OBJS): $(OBJDIR)/%.o:
+	$(AR) x $(MALLOC_LIB) $(notdir $@)
+	mv $(notdir $@) $@
 
 #
 #  デフォルトコンパイルルールを上書き
 #
-%.o: %.c
+$(OBJDIR)/%.o: %.c
 	@echo "*** Default compile rules should not be used."
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
 
 %.s: %.c
 	@echo "*** Default compile rules should not be used."
-	$(CC) -S $(CFLAGS) $<
-
-%.o: %.cpp
+	$(CC) -S -o $@ $(CFLAGS) $<
+
+$(OBJDIR)/%.o: %.cpp
 	@echo "*** Default compile rules should not be used."
-	$(CXX) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CXX) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
 
 %.s: %.cpp
 	@echo "*** Default compile rules should not be used."
-	$(CXX) -S $(CFLAGS) $<
-
-%.o: %.S
+	$(CXX) -S -o $@ $(CFLAGS) $<
+
+$(OBJDIR)/%.o: %.S
 	@echo "*** Default compile rules should not be used."
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
Index: EcnlProtoTool/trunk/asp3_dcre/MANIFEST
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/MANIFEST	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/MANIFEST	(revision 429)
@@ -1,4 +1,4 @@
 PACKAGE asp3
-VERSION 3.1.0
+VERSION 3.5.0
 
 configure.rb
@@ -88,5 +88,4 @@
 tecs_kernel/tAlarmNotifier.c
 tecs_kernel/tAlarmNotifier_inline.h
-tecs_kernel/tCpuExceptionHandler.c
 tecs_kernel/tCyclicNotifier.c
 tecs_kernel/tCyclicNotifier_inline.h
@@ -96,5 +95,4 @@
 tecs_kernel/tISR.c
 tecs_kernel/tInitializeRoutine.c
-tecs_kernel/tInterruptHandler.c
 tecs_kernel/tInterruptRequest_inline.h
 tecs_kernel/tKernel_inline.h
@@ -119,4 +117,6 @@
 syssvc/tLogTask.cdl
 syssvc/tLogTaskMain.c
+syssvc/tPutLogSIOPort.c
+syssvc/tPutLogSIOPort.cdl
 syssvc/tSerialAdapter.c
 syssvc/tSerialAdapter.cdl
@@ -129,4 +129,6 @@
 syssvc/tTestService.c
 syssvc/tTestService.cdl
+syssvc/tTestServiceAdapter.c
+syssvc/tTestServiceAdapter.cdl
 syssvc/test_svc.h
 
@@ -141,4 +143,13 @@
 arch/tracelog/tTraceLog.c
 arch/tracelog/tTraceLog.cdl
+
+arch/simtimer/sim_timer.c
+arch/simtimer/sim_timer.cfg
+arch/simtimer/sim_timer.h
+arch/simtimer/sim_timer_cntl.h
+arch/simtimer/tSimTimerCntl.c
+arch/simtimer/tSimTimerCntl.cdl
+arch/simtimer/tSimTimerCntlAdapter.c
+arch/simtimer/tSimTimerCntlAdapter.cdl
 
 utils/applyrename.rb
Index: EcnlProtoTool/trunk/asp3_dcre/README.txt
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/README.txt	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/README.txt	(revision 429)
@@ -1,4 +1,4 @@
 
-	TOPPERS/ASP3 Kernel（Release 3.1）
+	TOPPERS/ASP3 Kernel（Release 3.5）
 		Toyohashi Open Platform for Embedded Real-Time Systems/
 		Advanced Standard Profile Kernel
@@ -40,4 +40,8 @@
 グリスト（users@toppers.jp）宛にお願いします．
 
+これらのメーリングリストに投稿されたメールは，ウェブサイトのメーリング
+リストアーカイブから読むことができますので，公開すべきでない情報（個人
+情報など）をメール中に含めないように注意をお願いします．
+
 TOPPERSユーザーズメーリングリストへの登録方法については，以下のページに
 説明があります．
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/MANIFEST
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/MANIFEST	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/MANIFEST	(revision 429)
@@ -1,4 +1,4 @@
 PACKAGE asp3_arch_arm_gcc
-VERSION 3.1.0
+VERSION 3.2.0
 
 MANIFEST
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/Makefile.core
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/Makefile.core	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/Makefile.core	(revision 429)
@@ -2,5 +2,5 @@
 #		Makefileのコア依存部（ARM用）
 #
-#  $Id$
+#  $Id: Makefile.core 755 2016-06-12 10:08:22Z ertl-hiro $
 #
 
@@ -50,8 +50,9 @@
 #  START_OBJSをstart.oに設定し，LDFLAGSに-nostdlibを追加する．
 #
-START_OBJS = start.o
+START_OBJS := start.o
+START_OBJS := $(addprefix $(OBJDIR)/, $(START_OBJS))
 
-$(START_OBJS): %.o: %.S
-	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+$(START_OBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
 
-LDFLAGS := -nostdlib $(LDFLAGS)
+LDFLAGS := -nodefaultlibs $(LDFLAGS)
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.c	(revision 429)
@@ -137,5 +137,6 @@
  *  ARMv7におけるデータキャッシュの無効化
  *
- *  レベル0のキャッシュのみを無効化する．
+ *  バリアを2か所に入れているのは，ARMアーキテクチャリファレンスマニュ
+ *  アルのサンプルコードを踏襲した．
  */
 #if __TARGET_ARCH_ARM == 7
@@ -144,21 +145,32 @@
 armv7_invalidate_dcache(void)
 {
-	uint32_t	reg;
+	uint32_t	clidr, ccsidr;
+	uint32_t	level, no_levels;
 	uint32_t	way, no_ways, shift_way;
 	uint32_t	set, no_sets, shift_set;
-
-	CP15_WRITE_CSSELR(0U);
-	CP15_READ_CCSIDR(reg);
-	no_sets = ((reg >> 13) & 0x7fffU) + 1;
-	shift_set = (reg & 0x07U) + 4;
-	no_ways = ((reg >> 3) & 0x3ffU) + 1;
-	shift_way = count_leading_zero(no_ways);
-
-	for (way = 0; way < no_ways; way++){
-		for (set = 0; set < no_sets; set++) {
-			reg = (way << shift_way) | (set << shift_set);
-			CP15_WRITE_DCISW(reg);
+	uint32_t	waylevel, setwaylevel;
+
+	CP15_READ_CLIDR(clidr);
+	no_levels = (clidr >> 24) & 0x07U;
+	for (level = 0; level < no_levels; level++) {
+		if (((clidr >> (level * 3)) & 0x07U) >= 0x02U) {
+			CP15_WRITE_CSSELR(level << 1);
+			inst_sync_barrier();
+			CP15_READ_CCSIDR(ccsidr);
+			no_sets = ((ccsidr >> 13) & 0x7fffU) + 1;
+			shift_set = (ccsidr & 0x07U) + 4;
+			no_ways = ((ccsidr >> 3) & 0x3ffU) + 1;
+			shift_way = count_leading_zero(no_ways - 1);
+
+			for (way = 0; way < no_ways; way++) {
+				waylevel = (way << shift_way) | (level << 1);
+				for (set = 0; set < no_sets; set++) {
+					setwaylevel = waylevel | (set << shift_set);
+					CP15_WRITE_DCISW(setwaylevel);
+				}
+			}
 		}
 	}
+	data_sync_barrier();
 }
 
@@ -168,5 +180,6 @@
  *  ARMv7におけるデータキャッシュのクリーンと無効化
  *
- *  レベル0のキャッシュのみをクリーンと無効化する．
+ *  バリアを2か所に入れているのは，ARMアーキテクチャリファレンスマニュ
+ *  アルのサンプルコードを踏襲した．
  */
 #if __TARGET_ARCH_ARM == 7
@@ -175,21 +188,32 @@
 armv7_clean_and_invalidate_dcache(void)
 {
-	uint32_t	reg;
+	uint32_t	clidr, ccsidr;
+	uint32_t	level, no_levels;
 	uint32_t	way, no_ways, shift_way;
 	uint32_t	set, no_sets, shift_set;
-
-	CP15_WRITE_CSSELR(0U);
-	CP15_READ_CCSIDR(reg);
-	no_sets = ((reg >> 13) & 0x7fffU) + 1;
-	shift_set = (reg & 0x07U) + 4;
-	no_ways = ((reg >> 3) & 0x3ffU) + 1;
-	shift_way = count_leading_zero(no_ways);
-
-	for (way = 0; way < no_ways; way++){
-		for (set = 0; set < no_sets; set++) {
-			reg = (way << shift_way) | (set << shift_set);
-			CP15_WRITE_DCCISW(reg);
+	uint32_t	waylevel, setwaylevel;
+
+	CP15_READ_CLIDR(clidr);
+	no_levels = (clidr >> 24) & 0x07U;
+	for (level = 0; level < no_levels; level++) {
+		if (((clidr >> (level * 3)) & 0x07U) >= 0x02U) {
+			CP15_WRITE_CSSELR(level << 1);
+			inst_sync_barrier();
+			CP15_READ_CCSIDR(ccsidr);
+			no_sets = ((ccsidr >> 13) & 0x7fffU) + 1;
+			shift_set = (ccsidr & 0x07U) + 4;
+			no_ways = ((ccsidr >> 3) & 0x3ffU) + 1;
+			shift_way = count_leading_zero(no_ways - 1);
+
+			for (way = 0; way < no_ways; way++) {
+				waylevel = (way << shift_way) | (level << 1);
+				for (set = 0; set < no_sets; set++) {
+					setwaylevel = waylevel | (set << shift_set);
+					CP15_WRITE_DCCISW(setwaylevel);
+				}
+			}
 		}
 	}
+	data_sync_barrier();
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm.h	(revision 429)
@@ -5,5 +5,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -53,7 +53,5 @@
  */
 #ifndef TOPPERS_MACRO_ONLY
-#ifndef TECSGEN
-#include "arm_insn.h"				/* tecsgenが解釈できないためスキップ */
-#endif /* TECSGEN */
+#include "arm_insn.h"
 #endif /*  TOPPERS_MACRO_ONLY */
 
@@ -117,4 +115,12 @@
 #define CP15_SCTLR_DCACHE		UINT_C(0x00000004)
 #define CP15_SCTLR_MMU			UINT_C(0x00000001)
+
+/*
+ *  CP15のコプロセッサアクセス制御レジスタ（CPACR）の設定値
+ */
+#define CP15_CPACR_ASEDIS			UINT_C(0x80000000)
+#define CP15_CPACR_D32DIS			UINT_C(0x40000000)
+#define CP15_CPACR_CP11_FULLACCESS	UINT_C(0x00c00000)
+#define CP15_CPACR_CP10_FULLACCESS	UINT_C(0x00300000)
 
 /*
@@ -193,7 +199,4 @@
 #define ARM_MMU_DSCR1_TEX010		0x02000U	/* TEXビットが010 */
 #define ARM_MMU_DSCR1_TEX100		0x04000U	/* TEXビットが100 */
-#define ARM_MMU_DSCR1_AP01			0x00400U	/* APビットが01 */
-#define ARM_MMU_DSCR1_AP10			0x00800U	/* APビットが10 */
-#define ARM_MMU_DSCR1_AP11			0x00c00U	/* APビットが11 */
 #define ARM_MMU_DSCR1_CB00			0x00000U	/* Cビットが0，Bビットが0 */
 #define ARM_MMU_DSCR1_CB01			0x00004U	/* Cビットが0，Bビットが1 */
@@ -201,11 +204,23 @@
 #define ARM_MMU_DSCR1_CB11			0x0000cU	/* Cビットが1，Bビットが1 */
 
-#if __TARGET_ARCH_ARM >= 6
+#if __TARGET_ARCH_ARM < 6
+
+#define ARMV5_MMU_DSCR1_AP01		0x00400U	/* APビットが01 */
+#define ARMV5_MMU_DSCR1_AP10		0x00800U	/* APビットが10 */
+#define ARMV5_MMU_DSCR1_AP11		0x00c00U	/* APビットが11 */
+
+#else /* __TARGET_ARCH_ARM < 6 */
+
 #define ARMV6_MMU_DSCR1_NONGLOBAL	0x20000U	/* グローバルでない */
-#define ARMV6_MMU_DSCR1_APX0		0x00000U	/* APXビットが0 */
-#define ARMV6_MMU_DSCR1_APX1		0x08000U	/* APXビットが1 */
+#define ARMV6_MMU_DSCR1_AP001		0x00400		/* APビットが001 */
+#define ARMV6_MMU_DSCR1_AP010		0x00800		/* APビットが010 */
+#define ARMV6_MMU_DSCR1_AP011		0x00c00		/* APビットが011 */
+#define ARMV6_MMU_DSCR1_AP101		0x08400		/* APビットが101 */
+#define ARMV6_MMU_DSCR1_AP110		0x08800		/* APビットが110 */
+#define ARMV6_MMU_DSCR1_AP111		0x08c00		/* APビットが111 */
 #define ARMV6_MMU_DSCR1_ECC			0x00200U	/* ECCが有効（MPCore）*/
 #define ARMV6_MMU_DSCR1_NOEXEC		0x00010U	/* 実行不可 */
-#endif /* __TARGET_ARCH_ARM >= 6 */
+
+#endif /* __TARGET_ARCH_ARM < 6 */
 
 /*
@@ -237,9 +252,10 @@
 #define ARMV6_MMU_DSCR2_NONGLOBAL	0x0800U		/* グローバルでない */
 #define ARMV6_MMU_DSCR2_SHARED		0x0400U		/* プロセッサ間で共有 */
-#define ARMV6_MMU_DSCR2_APX0		0x0000U		/* APXビットが0 */
-#define ARMV6_MMU_DSCR2_APX1		0x0200U		/* APXビットが1 */
-#define ARMV6_MMU_DSCR2_AP01		0x0010U		/* APビットが01 */
-#define ARMV6_MMU_DSCR2_AP10		0x0020U		/* APビットが10 */
-#define ARMV6_MMU_DSCR2_AP11		0x0030U		/* APビットが11 */
+#define ARMV6_MMU_DSCR2_AP001		0x0010		/* APビットが001 */
+#define ARMV6_MMU_DSCR2_AP010		0x0020		/* APビットが010 */
+#define ARMV6_MMU_DSCR2_AP011		0x0030		/* APビットが011 */
+#define ARMV6_MMU_DSCR2_AP101		0x0210		/* APビットが101 */
+#define ARMV6_MMU_DSCR2_AP110		0x0220		/* APビットが110 */
+#define ARMV6_MMU_DSCR2_AP111		0x0230		/* APビットが111 */
 
 /* ラージページのディスクリプタ用 */
@@ -318,18 +334,19 @@
 
 /*
- *  プロセッサ番号の取得
+ *  自プロセッサのインデックス（0オリジン）の取得
  *
- *  マルチプロセッサアフィニティレジスタを読んで，その下位8ビットを返す．
- *  ARMv6では，マルチプロセッサをサポートしている場合にのみ使用できる．
+ *  マルチプロセッサアフィニティレジスタを読んで，その下位8ビットを返
+ *  す．ARMv6では，マルチプロセッサをサポートしている場合にのみ使用で
+ *  きる．
  */
 #if __TARGET_ARCH_ARM >= 6
 
-Inline uint32_t
-arm_prc_index(void)
+Inline uint_t
+get_my_prcidx(void)
 {
 	uint32_t	reg;
 
 	CP15_READ_MPIDR(reg);
-	return(reg & 0xffU);
+	return((uint_t)(reg & 0xffU));
 }
 
@@ -444,3 +461,9 @@
 
 #endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  浮動小数点例外制御レジスタ（FPEXC）の設定値
+ */
+#define FPEXC_ENABLE		UINT_C(0x40000000)
+
 #endif /* TOPPERS_ARM_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm_insn.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm_insn.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/arm_insn.h	(revision 429)
@@ -5,5 +5,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -105,4 +105,8 @@
  *  Thumbモードではmrs/msr命令が使用できないため，関数として実現して，
  *  ARMモードに移行して実行する．
+ *
+ *  current_cpsrとset_cpsrは，__thumb__が定義されない場合にはヘッダファ
+ *  イル中で定義されるインライン関数になるため，core_rename.defに登録
+ *  せず，先頭の_kernel_を手書きしている．
  */
 
@@ -110,10 +114,12 @@
  *  ステータスレジスタ（CPSR）の現在値の読出し
  */
-extern uint32_t current_cpsr(void);
+extern uint32_t _kernel_current_cpsr(void);
+#define current_cpsr()	_kernel_current_cpsr()
 
 /*
  *  ステータスレジスタ（CPSR）の現在値の変更
  */
-extern void set_cpsr(uint32_t cpsr);
+extern void _kernel_set_cpsr(uint32_t cpsr);
+#define set_cpsr(cpsr)	_kernel_set_cpsr(cpsr)
 
 #endif /* __thumb__ */
@@ -220,4 +226,8 @@
 #define CP15_READ_ACTLR(reg)	Asm("mrc p15, 0, %0, c1, c0, 1":"=r"(reg))
 #define CP15_WRITE_ACTLR(reg)	Asm("mcr p15, 0, %0, c1, c0, 1"::"r"(reg))
+
+/* コプロセッサアクセス制御レジスタ */
+#define CP15_READ_CPACR(reg)	Asm("mrc p15, 0, %0, c1, c0, 2":"=r"(reg))
+#define CP15_WRITE_CPACR(reg)	Asm("mcr p15, 0, %0, c1, c0, 2"::"r"(reg))
 
 /*
@@ -293,9 +303,9 @@
 
 /* ドメインアクセス制御レジスタ */
-#define CP15_WRITE_DACR(reg)	Asm("mcr p15, 0, %0, c3, c0, 0":: "r"(reg))
+#define CP15_WRITE_DACR(reg)	Asm("mcr p15, 0, %0, c3, c0, 0"::"r"(reg))
 
 /* コンテキストIDレジスタ（ARMv6以降）*/
 #if __TARGET_ARCH_ARM >= 6
-#define CP15_WRITE_CONTEXTIDR(reg) Asm("mcr p15, 0, %0, c13, c0, 1" ::"r"(reg))
+#define CP15_WRITE_CONTEXTIDR(reg) Asm("mcr p15, 0, %0, c13, c0, 1"::"r"(reg))
 #endif /* __TARGET_ARCH_ARM >= 6 */
 
@@ -415,3 +425,25 @@
 
 #endif /* __TARGET_ARCH_ARM == 7 */
+
+/*
+ *  浮動小数点例外制御レジスタ（FPEXC）の現在値の読出し
+ */
+Inline uint32_t
+current_fpexc(void)
+{
+	uint32_t	fpexc;
+
+	Asm("vmrs %0, fpexc" : "=r"(fpexc));
+	return(fpexc);
+}
+
+/*
+ *  浮動小数点例外制御レジスタ（FPEXC）の現在値の変更
+ */
+Inline void
+set_fpexc(uint32_t fpexc)
+{
+	Asm("vmsr fpexc, %0" : : "r"(fpexc));
+}
+
 #endif /* TOPPERS_ARM_INSN_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_cfg1_out.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_cfg1_out.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_cfg1_out.h	(revision 429)
@@ -5,17 +5,6 @@
  */
 
-/*
- *  cfg1_out.cのリンクに必要な定義
- */
-
 #include <kernel.h>
 
-void sta_ker(void){}
+void sta_ker(void) { }
 STK_T *const	_kernel_istkpt;
-
-/*
- *  offset.hを生成するための定義
- */
-const uint8_t	MAGIC_1 = 0x12;
-const uint16_t	MAGIC_2 = 0x1234;
-const uint32_t	MAGIC_4 = 0x12345678;
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_check.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_check.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_check.trb	(revision 429)
@@ -3,5 +3,5 @@
 #		パス3の生成スクリプトのコア依存部（ARM用）
 # 
-#  $Id$
+#  $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $
 #
 
@@ -20,5 +20,5 @@
 inhTable = SYMBOL("_kernel_inh_table")
 offset = SYMBOL("__etext") - SYMBOL("__data_start__")
-$cfgData[:DEF_INH].each do |key, params|
+$cfgData[:DEF_INH].each do |_, params|
   inthdr = PEEK(inhTable + offset + params[:inhno] * $sizeof_FP, $sizeof_FP)
 
@@ -39,5 +39,5 @@
 #
 excTable = SYMBOL("_kernel_exc_table")
-$cfgData[:DEF_EXC].each do |key, params|
+$cfgData[:DEF_EXC].each do |_, params|
   exchdr = PEEK(excTable + params[:excno] * $sizeof_FP, $sizeof_FP)
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -53,4 +53,9 @@
 
 /*
+ *  ターゲット定義のタスク属性
+ */
+#define TA_FPU		UINT_C(0x08)	/* FPUレジスタをコンテキストに含める */
+
+/*
  *  スタックの型
  *
@@ -62,15 +67,16 @@
  *  CPU例外ハンドラ番号の数
  */  
-#define TNUM_EXCNO		6
+#define TNUM_EXCNO		7
 
 /*
  *  CPU例外ハンドラ番号の定義
  */
-#define EXCNO_UNDEF		0
-#define EXCNO_SVC		1
-#define EXCNO_PABORT	2
-#define EXCNO_DABORT	3
-#define EXCNO_IRQ		4
-#define EXCNO_FIQ		5
+#define EXCNO_UNDEF		UINT_C(0)		/* 未定義命令 */
+#define EXCNO_SVC		UINT_C(1)		/* スーパバイザコール */
+#define EXCNO_PABORT	UINT_C(2)		/* プリフェッチアボート */
+#define EXCNO_DABORT	UINT_C(3)		/* データアボート */
+#define EXCNO_IRQ		UINT_C(4)		/* IRQ割込み */
+#define EXCNO_FIQ		UINT_C(5)		/* FIQ割込み */
+#define EXCNO_FATAL		UINT_C(6)		/* フェイタルデータアボート */
 
 #ifndef TOPPERS_MACRO_ONLY
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -38,5 +38,5 @@
 #   の責任を負わない．
 # 
-#   $Id$
+#   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
 # 
 
@@ -48,10 +48,10 @@
 #  有効なCPU例外ハンドラ番号
 #
-$EXCNO_VALID = [ 0, 1, 2, 3, 4, 5 ]
+$EXCNO_VALID = [ 0, 1, 2, 3, 4, 5, 6 ]
 
 #
 #  DEF_EXCで使用できるCPU例外ハンドラ番号
 #
-$EXCNO_DEFEXC_VALID = [ 0, 1, 2, 3, 5 ]
+$EXCNO_DEFEXC_VALID = [ 0, 1, 2, 3, 5, 6 ]
 
 #
@@ -65,5 +65,5 @@
 $kernelCfgC.comment_header("Interrupt Handler Table")
 
-$kernelCfgC.add("FP _kernel_inh_table[TNUM_INHNO] = {")
+$kernelCfgC.add("/*const*/FP _kernel_inh_table[TNUM_INHNO] = {")
 $INHNO_VALID.each_with_index do |inhnoVal, index|
   $kernelCfgC.add(",") if index > 0
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -73,5 +73,5 @@
  */
 Inline void
-config_section_entry(ARM_MMU_CONFIG *p_ammuc)
+config_section_entry(const ARM_MMU_CONFIG *p_ammuc)
 {
 	uint32_t	vaddr = p_ammuc->vaddr;
@@ -80,4 +80,7 @@
 	uint_t		i;
 
+	assert(vaddr % ARM_SECTION_SIZE == 0);
+	assert(paddr % ARM_SECTION_SIZE == 0);
+	assert(size % ARM_SECTION_SIZE == 0);
 	while (size > 0) {
 #ifdef USE_ARM_SSECTION
@@ -170,4 +173,29 @@
 
 /*
+ *  FPUの初期化
+ */
+#ifdef USE_ARM_FPU
+
+void
+arm_fpu_initialize(void)
+{
+	uint32_t	reg;
+
+	/*
+	 *  CP10とCP11をアクセス可能に設定する．
+	 */
+	CP15_READ_CPACR(reg);
+	reg |= (CP15_CPACR_CP10_FULLACCESS | CP15_CPACR_CP11_FULLACCESS);
+	CP15_WRITE_CPACR(reg);
+
+	/*
+	 *  FPUをディスエーブルする．
+	 */
+	set_fpexc(current_fpexc() & ~FPEXC_ENABLE);
+}
+
+#endif /* USE_ARM_FPU */
+
+/*
  *  コア依存の初期化
  */
@@ -187,4 +215,11 @@
 	arm_mmu_initialize();
 #endif /* USE_ARM_MMU */
+
+	/*
+	 *  FPUの初期化
+	 */
+#ifdef USE_ARM_FPU
+	arm_fpu_initialize();
+#endif /* USE_ARM_FPU */
 
 	/*
@@ -306,8 +341,12 @@
 		syslog_0(LOG_EMERG, "FIQ exception occurs.");
 		break;
+	case EXCNO_FATAL:
+		syslog_0(LOG_EMERG, "Fatal Data Abort exception occurs.");
+		break;
 	}
 	xlog_sys(p_excinf);
 
-	if (excno == EXCNO_PABORT || excno == EXCNO_DABORT) {
+	if (excno == EXCNO_PABORT || excno == EXCNO_DABORT
+										|| excno == EXCNO_FATAL) {
 		uint32_t	fsr, far;
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_kernel_impl.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -55,4 +55,11 @@
 
 /*
+ *  ターゲット依存のタスク属性（エラーチェック用）
+ */
+/*#ifdef USE_ARM_FPU*/
+#define TARGET_TSKATR		(TA_FPU)
+/*#endif /* USE_ARM_FPU */
+
+/*
  *  エラーチェック方法の指定
  */
@@ -68,4 +75,7 @@
 #define CHECK_MPF_ALIGN		4		/* 固定長メモリプール領域のアライン単位 */
 #define CHECK_MPF_NONNULL			/* 固定長メモリプール領域の非NULLチェック */
+#define CHECK_MPK_ALIGN		4		/* カーネルメモリプール領域のアライン単位 */
+#define CHECK_MPK_NONNULL			/* カーネルメモリプール領域の非NULL  */
+									/*							チェック */
 #define CHECK_MB_ALIGN		4		/* 管理領域のアライン単位 */
 
@@ -269,5 +279,5 @@
  *  非タスクコンテキストからのディスパッチ要求
  */
-#define request_dispatch()
+#define request_dispatch_retint()
 
 /*
@@ -324,5 +334,5 @@
  *  割込みハンドラテーブル（kernel_cfg.c）
  */
-extern FP inh_table[TNUM_INHNO];
+extern /*const*/FP inh_table[TNUM_INHNO];
 
 /*
@@ -447,5 +457,5 @@
  *  MMUの設定情報（メモリエリアの情報）（target_kernel_impl.c）
  */
-extern ARM_MMU_CONFIG arm_memory_area[];
+extern const ARM_MMU_CONFIG arm_memory_area[];
 
 /*
@@ -458,4 +468,11 @@
 
 #ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  FPUの初期化
+ */
+#ifdef USE_ARM_FPU
+extern void arm_fpu_initialize(void);
+#endif /* USE_ARM_FPU */
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_offset.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_offset.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_offset.trb	(revision 429)
@@ -3,5 +3,5 @@
 #		オフセットファイル生成用Rubyテンプレート（ARM用）
 #
-#  $Id$
+#  $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $
 #
 
@@ -14,10 +14,13 @@
 #  フィールドのオフセットの定義の生成
 #
-GenerateDefine("TCB_p_tinib", $offsetof_TCB_p_tinib)
-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)
-GenerateDefine("T_EXCINF_cpsr", $offsetof_T_EXCINF_cpsr)
+$offsetH.append(<<EOS)
+#define TCB_p_tinib		#{$offsetof_TCB_p_tinib}
+#define TCB_sp			#{$offsetof_TCB_sp}
+#define TCB_pc			#{$offsetof_TCB_pc}
+#define TINIB_tskatr	#{$offsetof_TINIB_tskatr}
+#define TINIB_exinf		#{$offsetof_TINIB_exinf}
+#define TINIB_task		#{$offsetof_TINIB_task}
+#define TINIB_stksz		#{$offsetof_TINIB_stksz}
+#define TINIB_stk		#{$offsetof_TINIB_stk}
+#define T_EXCINF_cpsr	#{$offsetof_T_EXCINF_cpsr}
+EOS
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.c	(revision 428)
+++ 	(revision )
@@ -1,166 +1,0 @@
-/*
- *  TOPPERS Software
- *      Toyohashi Open Platform for Embedded Real-Time Systems
- * 
- *  Copyright (C) 2013-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$
- */
-
-/*
- *		L2キャッシュコントローラ（PL310）の操作ライブラリ
- */
-
-#include "kernel_impl.h"
-#include "core_pl310.h"
-
-Inline uint32_t
-get_way_mask(void)
-{
-	uint32_t	aux;
-	
-	aux = sil_rew_mem(PL310_AUX_CTRL);
-	if ((aux & PL310_AUX_CTRL_ASSOCIATIVITY) != 0U) {
-		/* 16ウェイ */
-		return(0x0000ffffU);
-	}
-	else {
-		/* 8ウェイ */
-		return(0x000000ffU);
-	}
-}
-
-Inline void
-pl310_cache_sync(void)
-{
-	sil_wrw_mem(PL310_CACHE_SYNC, 0);
-}
-
-Inline void
-pl310_inv_all(void)
-{
-	uint32_t	way_mask = get_way_mask();
-
-	/* すべてのウェイを無効化する */
-	sil_wrw_mem(PL310_INV_WAY, 0xffff);
-	while ((sil_rew_mem(PL310_INV_WAY) & way_mask) != 0U) ;
-	pl310_cache_sync();
-}
-
-Inline void
-pl310_debug_set(uint32_t val)
-{
-	sil_wrw_mem(PL310_DEBUG_CTRL, val);
-}
-
-/*
- *  PL310の初期化
- */
-void
-pl310_initialize(uint32_t aux_val, uint32_t aux_mask)
-{
-	uint32_t	aux;
-	uint32_t	prefetch;
-	uint32_t	prefetch_val = 0U;
-
-	/* L2キャッシュがディスエーブルの場合のみ初期化を行う */
-	if ((sil_rew_mem(PL310_CTRL) & 0x01) == 0U) {
-		/* 共有属性を無視する */
-		aux_val |= PL310_AUX_CTRL_IGNORE_SHARE;
-
-		/* 命令プリフェッチをイネーブル */
-		aux_val |= PL310_AUX_CTRL_INST_PREFETCH;
-		prefetch_val |= PL310_AUX_CTRL_INST_PREFETCH;
-
-		/* データプリフェッチをイネーブル */
-		aux_val |= PL310_AUX_CTRL_DATA_PREFETCH;
-		prefetch_val |= PL310_AUX_CTRL_DATA_PREFETCH;
-
-		/* ダブルラインフィルをイネーブル */
-		prefetch_val |= PL310_PREFETCH_CTRL_DLINEFILL;
-		prefetch_val |= PL310_PREFETCH_CTRL_INCR_DLINEFILL;
-                
-		/* 補助制御レジスタを設定 */
-		aux = sil_rew_mem(PL310_AUX_CTRL);
-		sil_wrw_mem(PL310_AUX_CTRL, ((aux & aux_mask) | aux_val));
-
-		/* プリフェッチ制御レジスタを設定 */
-		prefetch = sil_rew_mem(PL310_PREFETCH_CTRL);
-		sil_wrw_mem(PL310_PREFETCH_CTRL, (prefetch | prefetch_val));
-
-		/* L2キャッシュの全体の無効化 */
-		pl310_inv_all();
-        
-		/* クロックゲーティングとスタンバイモードをイネーブル */
-		sil_wrw_mem(PL310_POWER_CTRL, 0x03);
-        
-		/* L2キャッシュのイネーブル */
-		sil_wrw_mem(PL310_CTRL, 0x01);
-	}    
-}
-
-/*
- *  L2キャッシュのディスエーブル
- */
-void
-pl310_disable(void)
-{
-	pl310_clean_and_invalidate_all();
-	sil_wrw_mem(PL310_CTRL, 0x00);
-}
-
-/*
- *  L2キャッシュ全体の無効化（書き戻さない）
- */
-void
-pl310_invalidate_all(void)
-{
-	pl310_debug_set(0x03);
-	pl310_inv_all();
-	pl310_debug_set(0x00);
-}
-
-/*
- *  L2キャッシュ全体のクリーンと無効化
- */
-void
-pl310_clean_and_invalidate_all(void)
-{
-	uint32_t	way_mask = get_way_mask();
-
-	pl310_debug_set(0x03);
-	sil_wrw_mem(PL310_CLEAN_INV_WAY, way_mask);
-	while ((sil_rew_mem(PL310_CLEAN_INV_WAY) & way_mask) != 0U) ;
-	pl310_cache_sync();
-	pl310_debug_set(0x00);
-}
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_pl310.h	(revision 428)
+++ 	(revision )
@@ -1,131 +1,0 @@
-/*
- *  TOPPERS Software
- *      Toyohashi Open Platform for Embedded Real-Time Systems
- * 
- *  Copyright (C) 2013-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$
- */
-
-/*
- *		L2キャッシュコントローラ（PL310）に関する定義
- */
-
-#ifndef TOPPERS_PL310_H
-#define TOPPERS_PL310_H
-
-/*
- *  型キャストを行うマクロの定義
- */
-#ifndef CAST
-#define CAST(type, val)		((type)(val))
-#endif /* CAST */
-
-/*
- *  PL310のレジスタの番地の定義
- */
-#define PL310_CACHE_ID			CAST(uint32_t *, PL310_BASE + 0x000)
-#define PL310_CACHE_TYPE		CAST(uint32_t *, PL310_BASE + 0x004)
-#define PL310_CTRL				CAST(uint32_t *, PL310_BASE + 0x100)
-#define PL310_AUX_CTRL			CAST(uint32_t *, PL310_BASE + 0x104)
-#define PL310_TAG_RAM_CTRL		CAST(uint32_t *, PL310_BASE + 0x108)
-#define PL310_DATA_RAM_CTRL		CAST(uint32_t *, PL310_BASE + 0x10c)
-#define PL310_EVENT_CNT_CTRL	CAST(uint32_t *, PL310_BASE + 0x200)
-#define PL310_EVENT_CNT1_CFG	CAST(uint32_t *, PL310_BASE + 0x204)
-#define PL310_EVENT_CNT0_CFG	CAST(uint32_t *, PL310_BASE + 0x208)
-#define PL310_EVENT_CNT1		CAST(uint32_t *, PL310_BASE + 0x20c)
-#define PL310_EVENT_CNT0		CAST(uint32_t *, PL310_BASE + 0x210)
-#define PL310_INT_MASK			CAST(uint32_t *, PL310_BASE + 0x214)
-#define PL310_INT_MASK_STAT		CAST(uint32_t *, PL310_BASE + 0x218)
-#define PL310_INT_RAW_STAT		CAST(uint32_t *, PL310_BASE + 0x21c)
-#define PL310_INT_CLEAR			CAST(uint32_t *, PL310_BASE + 0x220)
-#define PL310_CACHE_SYNC		CAST(uint32_t *, PL310_BASE + 0x730)
-#define PL310_INV_PA			CAST(uint32_t *, PL310_BASE + 0x770)
-#define PL310_INV_WAY			CAST(uint32_t *, PL310_BASE + 0x77c)
-#define PL310_CLEAN_PA			CAST(uint32_t *, PL310_BASE + 0x7b0)
-#define PL310_CLEAN_IDX			CAST(uint32_t *, PL310_BASE + 0x7b8)
-#define PL310_CLEAN_WAY			CAST(uint32_t *, PL310_BASE + 0x7bc)
-#define PL310_CLEAN_INV_PA		CAST(uint32_t *, PL310_BASE + 0x7f0)
-#define PL310_CLEAN_INV_IDX		CAST(uint32_t *, PL310_BASE + 0x7f8)
-#define PL310_CLEAN_INV_WAY		CAST(uint32_t *, PL310_BASE + 0x7Fc)
-#define PL310_D_LOCKDOWN0		CAST(uint32_t *, PL310_BASE + 0x900)
-#define PL310_I_LOCKDOWN0		CAST(uint32_t *, PL310_BASE + 0x904)
-#define PL310_DEBUG_CTRL		CAST(uint32_t *, PL310_BASE + 0xf40)
-#define PL310_PREFETCH_CTRL		CAST(uint32_t *, PL310_BASE + 0xf60)
-#define PL310_POWER_CTRL		CAST(uint32_t *, PL310_BASE + 0xf80)
-
-/*
- *  キャッシュ補助制御レジスタ（PL310_AUX_CTRL）の設定値
- */
-#define PL310_AUX_CTRL_ASSOCIATIVITY		0x00010000
-#define PL310_AUX_CTRL_WAY_SIZE_SHIFT		17
-#define PL310_AUX_CTRL_WAY_SIZE_MASK		0x000e0000
-#define PL310_AUX_CTRL_IGNORE_SHARE			0x00400000
-#define PL310_AUX_CTRL_NS_LOCKDOWN			0x04000000
-#define PL310_AUX_CTRL_NS_INT_CTRL			0x08000000
-#define PL310_AUX_CTRL_DATA_PREFETCH		0x10000000
-#define PL310_AUX_CTRL_INST_PREFETCH		0x20000000
-#define PL310_AUX_CTRL_EARLY_BRESP			0x40000000
-
-/*
- *  プリフェッチ制御レジスタ（PL310_PREFETCH_CTRL）の設定値
- */
-#define PL310_PREFETCH_CTRL_INCR_DLINEFILL	0x00800000
-#define PL310_PREFETCH_CTRL_DATA_PREFETCH	0x10000000
-#define PL310_PREFETCH_CTRL_INST_PREFETCH	0x20000000
-#define PL310_PREFETCH_CTRL_DLINEFILL		0x40000000
-
-#ifndef TOPPERS_MACRO_ONLY
-
-/*
- *  L2キャッシュの初期化とイネーブル
- */
-extern void pl310_initialize(uint32_t aux_val, uint32_t aux_mask);
-
-/*
- *  L2キャッシュのディスエーブル
- */
-extern void pl310_disable(void);
-
-/*
- *  L2キャッシュ全体の無効化（書き戻さない）
- */
-extern void pl310_invalidate_all(void);
-
-/*
- *  L2キャッシュ全体のクリーンと無効化
- */
-extern void pl310_clean_and_invalidate_all(void);
-
-#endif /* TOPPERS_MACRO_ONLY */
-#endif /* TOPPERS_PL310_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_rename.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_rename.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_rename.def	(revision 429)
@@ -16,10 +16,9 @@
 dabort_handler
 fiq_handler
-current_cpsr
-set_cpsr
 
 # core_kernel_impl.c
 excpt_nest_count
 arm_mmu_initialize
+arm_fpu_initialize
 core_initialize
 core_terminate
@@ -28,4 +27,16 @@
 default_int_handler
 default_exc_handler
+
+# mpcore_kernel_impl.c
+mpcore_initialize
+mpcore_terminate
+
+# mpcore_timer.c
+target_hrt_initialize
+target_hrt_terminate
+target_hrt_handler
+target_ovrtimer_initialize
+target_ovrtimer_terminate
+target_ovrtimer_handler
 
 # gic_kernel_impl.c
@@ -47,6 +58,2 @@
 pl310_invalidate_all
 pl310_clean_and_invalidate_all
-
-# target_kernel_impl.c
-arm_tnum_memory_area
-arm_memory_area
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_rename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_rename.h	(revision 429)
@@ -25,6 +25,4 @@
 #define dabort_handler				_kernel_dabort_handler
 #define fiq_handler					_kernel_fiq_handler
-#define current_cpsr				_kernel_current_cpsr
-#define set_cpsr					_kernel_set_cpsr
 
 /*
@@ -33,4 +31,5 @@
 #define excpt_nest_count			_kernel_excpt_nest_count
 #define arm_mmu_initialize			_kernel_arm_mmu_initialize
+#define arm_fpu_initialize			_kernel_arm_fpu_initialize
 #define core_initialize				_kernel_core_initialize
 #define core_terminate				_kernel_core_terminate
@@ -39,4 +38,20 @@
 #define default_int_handler			_kernel_default_int_handler
 #define default_exc_handler			_kernel_default_exc_handler
+
+/*
+ *  mpcore_kernel_impl.c
+ */
+#define mpcore_initialize			_kernel_mpcore_initialize
+#define mpcore_terminate			_kernel_mpcore_terminate
+
+/*
+ *  mpcore_timer.c
+ */
+#define target_hrt_initialize		_kernel_target_hrt_initialize
+#define target_hrt_terminate		_kernel_target_hrt_terminate
+#define target_hrt_handler			_kernel_target_hrt_handler
+#define target_ovrtimer_initialize	_kernel_target_ovrtimer_initialize
+#define target_ovrtimer_terminate	_kernel_target_ovrtimer_terminate
+#define target_ovrtimer_handler		_kernel_target_ovrtimer_handler
 
 /*
@@ -65,10 +80,4 @@
 #define pl310_clean_and_invalidate_all	_kernel_pl310_clean_and_invalidate_all
 
-/*
- *  target_kernel_impl.c
- */
-#define arm_tnum_memory_area		_kernel_arm_tnum_memory_area
-#define arm_memory_area				_kernel_arm_memory_area
-
 
 #endif /* TOPPERS_CORE_RENAME_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sil.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sil.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sil.h	(revision 429)
@@ -5,5 +5,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -86,12 +86,12 @@
  *  ステータスレジスタ（CPSR）の現在値の読出し
  */
-extern uint32_t current_cpsr(void);
-#define TOPPERS_current_cpsr()	current_cpsr()
+extern uint32_t _kernel_current_cpsr(void);
+#define TOPPERS_current_cpsr()	_kernel_current_cpsr()
 
 /*
  *  ステータスレジスタ（CPSR）の現在値の変更
  */
-extern void set_cpsr(uint32_t cpsr);
-#define TOPPERS_set_cpsr(cpsr)	current_cpsr(cpsr)
+extern void _kernel_set_cpsr(uint32_t cpsr);
+#define TOPPERS_set_cpsr(cpsr)	_kernel_set_cpsr(cpsr)
 
 #endif /* __thumb__ */
@@ -138,4 +138,16 @@
 #define SIL_UNL_INT()	(TOPPERS_set_fiq_irq(TOPPERS_fiq_irq_mask))
 
+/*
+ *  メモリ同期バリア
+ */
+#ifdef DATA_SYNC_BARRIER
+#define TOPPERS_SIL_WRITE_SYNC()	DATA_SYNC_BARRIER()
+#elif __TARGET_ARCH_ARM <= 6
+#define TOPPERS_SIL_WRITE_SYNC() \
+						Asm("mcr p15, 0, %0, c7, c10, 4"::"r"(0):"memory")
+#else /* __TARGET_ARCH_ARM <= 6 */
+#define TOPPERS_SIL_WRITE_SYNC()	Asm("dsb":::"memory")
+#endif
+
 #endif /* TOPPERS_MACRO_ONLY */
 #endif /* TOPPERS_CORE_SIL_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_support.S
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_support.S	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_support.S	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2006-2017 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -55,4 +55,11 @@
 
 /*
+ *  使用する命令セットの定義
+ */
+#ifdef USE_ARM_FPU
+	.fpu	vfpv3
+#endif /* USE_ARM_FPU */
+
+/*
  *  例外ベクタ
  */
@@ -101,11 +108,20 @@
 	 *  マスク全解除状態・ディスパッチ許可状態で呼び出される．
 	 */
-	push	{r12,lr}				/* 戻り番地を保存，r12はダミー */
+	push	{r12,lr}				/* 戻り番地（lr）を保存 */
+									/* r12はアラインメントのため */
 #ifdef TOPPERS_SUPPORT_OVRHDR
 	bl		ovrtimer_stop
 #endif /* TOPPERS_SUPPORT_OVRHDR */
-	stmfd	sp!, {r4-r11}			/* 非スクラッチレジスタの保存 */
+	push	{r4-r11}				/* 非スクラッチレジスタの保存 */
 	ldr		r0, =p_runtsk			/* p_runtsk → r0 */
 	ldr		r0, [r0]
+#ifdef USE_ARM_FPU
+	ldr		r2, [r0,#TCB_p_tinib]	/* p_runtsk->p_tinib → r2 */
+	ldr		r1, [r2,#TINIB_tskatr]	/* p_runtsk->p_tinib->tskatr → r1 */
+	tst		r1, #TA_FPU
+	beq		1f
+	vpush	{d8-d15}				/* 非スクラッチFPUレジスタの保存 */
+1:
+#endif /* USE_ARM_FPU */
 	str		sp, [r0,#TCB_sp]		/* スタックポインタを保存 */
 	adr		r1, dispatch_r
@@ -114,5 +130,21 @@
 
 ALABEL(dispatch_r)
-	ldmfd	sp!, {r4-r11}			/* 非スクラッチレジスタの復帰 */
+	/*
+	 * 【この時点のレジスタ状態】
+	 *  r4：p_runtsk（タスク切換え後）
+	 */
+#ifdef USE_ARM_FPU
+	ldr		r2, [r4,#TCB_p_tinib]	/* p_runtsk->p_tinib → r2 */
+	ldr		r1, [r2,#TINIB_tskatr]	/* p_runtsk->p_tinib->tskatr → r1 */
+	tst		r1, #TA_FPU
+	vmrs	r0, fpexc
+	biceq	r0, r0, #FPEXC_ENABLE
+	orrne	r0, r0, #FPEXC_ENABLE
+	vmsr	fpexc, r0				/* FPEXCを設定 */
+	beq		1f
+	vpop	{d8-d15}				/* 非スクラッチFPUレジスタの復帰 */
+1:
+#endif /* USE_ARM_FPU */
+	pop		{r4-r11}				/* 非スクラッチレジスタの復帰 */
 #ifdef TOPPERS_SUPPORT_OVRHDR
 	bl		ovrtimer_start
@@ -137,4 +169,9 @@
 
 	/*
+	 *  各種のデバイス（特に割込みコントローラ）の設定が完了するのを待つ．
+	 */
+	asm_data_sync_barrier r0
+	
+	/*
 	 *	タスクコンテキストに切り換える．
 	 */
@@ -184,5 +221,5 @@
 	bl		log_dsp_enter
 #endif /* LOG_DSP_ENTER */
-	
+
 ALABEL(dispatcher_0)
 	/*
@@ -232,6 +269,9 @@
 ALABEL(call_exit_kernel)
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_INTLOCK)
-	ldr		r0, =istkpt				/* 非タスクコンテキストのスタックへ */
+	ldr		r0, =istkpt				/* 非タスクコンテキスト用のスタックに */
 	ldr		sp, [r0]
+	ldr		r0, =excpt_nest_count	/* 例外ネストカウントを1に */
+	mov		r1, #1
+	str		r1, [r0]
 	b		exit_kernel
 
@@ -243,5 +283,6 @@
 	AGLOBAL(start_r)
 	/*
-	 *  ディスパッチャ本体から呼び出されるため，p_runtskはr4に入っている．
+	 * 【この時点のレジスタ状態】
+	 *  r4：p_runtsk（タスク切換え後）
 	 */
 ALABEL(start_r)
@@ -253,4 +294,12 @@
 	ldr		lr, =ext_tsk			/* タスク本体からの戻り番地を設定 */
 	ldr		r2, [r4,#TCB_p_tinib]	/* p_runtsk->p_tinib → r2 */
+#ifdef USE_ARM_FPU
+	ldr		r1, [r2,#TINIB_tskatr]	/* p_runtsk->p_tinib->tskatr → r1 */
+	tst		r1, #TA_FPU
+	vmrs	r0, fpexc
+	biceq	r0, r0, #FPEXC_ENABLE
+	orrne	r0, r0, #FPEXC_ENABLE
+	vmsr	fpexc, r0				/* FPEXCを設定 */
+#endif /* USE_ARM_FPU */
 	ldr		r0, [r2,#TINIB_exinf]	/* exinfをパラメータに */
 	ldr		r1, [r2,#TINIB_task]	/* タスク起動番地にジャンプ */
@@ -270,11 +319,12 @@
 #if __TARGET_ARCH_ARM < 6
 	/*
-	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
+	 *  スーパバイザモードに切り換え，スクラッチレジスタ＋αを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
-
-	/*
-	 *  IRQモードに戻して，戻り番地とspsr（戻り先のcpsr）を取得する．
+	push	{r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  IRQモードに戻して，戻り番地（lr-4）と戻り先のcpsr（spsr）を取
+	 *  得する．
 	 */
 	msr		cpsr_c, #(CPSR_IRQ_MODE AOR CPSR_IRQ_BIT)
@@ -283,13 +333,13 @@
 
 	/*
-	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
+	 *  スーパバイザモードに切り換え，戻り番地と戻り先のcpsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
-	push	{r1}					/* spsrをスタックに保存 */
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存（pcの場所）*/
+	push	{r1}					/* 戻り先のcpsrをスタックに保存 */
 #else /* __TARGET_ARCH_ARM < 6 */
 	/*
-	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
-	 *  保存する．
+	 *  戻り番地（lr）と戻り先のcpsr（spsr）をスーパバイザモードのスタッ
+	 *  クに保存する．
 	 */
 	sub		lr, lr, #4				/* 戻り番地の算出 */
@@ -297,8 +347,8 @@
 
 	/*
-	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
+	 *  スーパバイザモードに切り換え，スクラッチレジスタ＋αを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
-	stmfd	sp!, {r0-r5,r12,lr}
+	push	{r0-r5,r12,lr}
 #endif /* __TARGET_ARCH_ARM < 6 */
 
@@ -308,6 +358,6 @@
 	and		r1, sp, #4
 	sub		sp, sp, r1
-	push	{r0,r1}					/* r0はスペース確保のため */
-
+	push	{r0,r1}					/* スタックポインタの調整値を保存 */
+									/* r0はスペース確保のため */
 	/*
 	 *  例外ネストカウントをインクリメントする．割込みが非タスクコンテキ
@@ -328,4 +378,14 @@
 #endif /* TOPPERS_SUPPORT_OVRHDR */
 
+#ifdef USE_ARM_FPU
+	/*
+	 *  FPUをディスエーブルする．
+	 */
+	vmrs	r0, fpexc
+	str		r0, [sp]				/* FPEXCを保存（r0の場所）*/
+	bic		r0, r0, #FPEXC_ENABLE
+	vmsr	fpexc, r0				/* FPEXCを設定 */
+#endif /* USE_ARM_FPU */
+	
 	/*
 	 *  非タスクコンテキスト用のスタックに切り換える．
@@ -339,4 +399,7 @@
 	/*
 	 *  割込みコントローラを操作し，割込み番号を取得する．
+	 *
+	 *  irc_begin_intは，スタックトップ（r0の場所）に，irc_end_intで用
+	 *  いる情報を保存する．
 	 */
 	bl		irc_begin_int
@@ -345,5 +408,5 @@
 #else /* TNUM_INHNO <= 256 || __TARGET_ARCH_ARM <= 6 */
 	movw	r3, #TNUM_INHNO
-	cmp		r4, r3			
+	cmp		r4, r3
 #endif /* TNUM_INHNO <= 256 || __TARGET_ARCH_ARM <= 6 */
 	bhs		irq_handler_2			/* スプリアス割込みなら */
@@ -420,4 +483,12 @@
 	mov   	sp, r3
 
+#ifdef USE_ARM_FPU
+	/*
+	 *  FPUを元に戻す．
+	 */
+	ldr		r0, [sp]				/* FPEXCを復帰 */
+	vmsr	fpexc, r0
+#endif /* USE_ARM_FPU */
+	
 	/*
 	 *  p_runtskがNULLか判定する．
@@ -433,5 +504,5 @@
 	pop		{r0,r1}					/* スタックポインタの調整を元に戻す */
 	add		sp, sp, r1
-	add		sp, sp, #40				/* スクラッチレジスタを捨てる */
+	add		sp, sp, #40				/* スクラッチレジスタ等を捨てる */
 	b		dispatcher_0
 
@@ -440,4 +511,8 @@
 	 */
 ALABEL(irq_handler_3)
+	/*
+	 * 【この時点のレジスタ状態】
+	 *  r0：p_runtsk
+	 */
 	ldr		r1, =p_schedtsk			/* p_schedtsk → r1 */
 	ldr		r1, [r1]
@@ -448,5 +523,18 @@
 	 *  コンテキストを保存する．
 	 */
-	stmfd	sp!, {r6-r11}			/* 非スクラッチレジスタの保存 */
+	push	{r6-r11}				/* 残りのレジスタの保存 */
+#ifdef USE_ARM_FPU
+	ldr		r2, [r0,#TCB_p_tinib]	/* p_runtsk->p_tinib → r2 */
+	ldr		r1, [r2,#TINIB_tskatr]	/* p_runtsk->p_tinib->tskatr → r1 */
+	tst		r1, #TA_FPU
+	beq		1f						/* TA_FPU属性でない場合は分岐 */
+#ifdef USE_ARM_FPU_D32
+	vpush	{d16-d31}
+#endif /* USE_ARM_FPU_D32 */
+	vpush	{d0-d15}				/* 全FPUレジスタの保存 */
+	vmrs	r1, fpscr
+	push	{r1,r2}					/* FPSCRの保存 */
+1:									/* r2はアラインメントのため */
+#endif /* USE_ARM_FPU */
 	str		sp, [r0,#TCB_sp]		/* スタックポインタを保存 */
 	adr		r1, ret_int_r			/* 実行再開番地を保存 */
@@ -457,6 +545,26 @@
 	/*
 	 *  コンテキストを復帰する．
-	 */
-	ldmfd	sp!, {r6-r11}			/* 非スクラッチレジスタの復帰 */
+	 *
+	 * 【この時点のレジスタ状態】
+	 *  r4：p_runtsk（タスク切換え後）
+	 */
+#ifdef USE_ARM_FPU
+	ldr		r2, [r4,#TCB_p_tinib]	/* p_runtsk->p_tinib → r2 */
+	ldr		r1, [r2,#TINIB_tskatr]	/* p_runtsk->p_tinib->tskatr → r1 */
+	tst		r1, #TA_FPU
+	vmrs	r0, fpexc
+	biceq	r0, r0, #FPEXC_ENABLE
+	orrne	r0, r0, #FPEXC_ENABLE
+	vmsr	fpexc, r0				/* FPEXCを設定 */
+	beq		1f						/* TA_FPU属性でない場合は分岐 */
+	pop		{r1,r2}					/* FPSCRの復帰 */
+	vmsr	fpscr, r1
+	vpop	{d0-d15}				/* 全FPUレジスタの復帰 */
+#ifdef USE_ARM_FPU_D32
+	vpop	{d16-d31}
+#endif /* USE_ARM_FPU_D32 */
+1:
+#endif /* USE_ARM_FPU */
+	pop		{r6-r11}				/* 残りのレジスタの復帰 */
 
 ALABEL(irq_handler_4)
@@ -469,9 +577,9 @@
 
 	/*
-	 *  割込み／CPU例外処理からのリターン
+	 *  割込み処理からのリターン
 	 *
-	 *  割込み／CPU例外処理からのリターンにより，CPUロック解除状態に遷
-	 *  移するようにする必要があるが，ARMはCPSRのビットによってCPUロッ
-	 *  ク状態を表しているため，CPSRを元に戻してリターンすればよい．
+	 *  割込み処理からのリターンにより，CPUロック解除状態に遷移するよ
+	 *  うにする必要があるが，ARMはCPSRのビットによってCPUロック状態を
+	 *  表しているため，CPSRを元に戻してリターンすればよい．
 	 */
 ALABEL(irq_handler_5)
@@ -480,10 +588,10 @@
 
 #if __TARGET_ARCH_ARM < 6
-	ldmfd	sp!, {r0}				/* 戻り先のcpsrをspsrに設定 */
+	pop		{r0}					/* 戻り先のcpsrをspsrに設定 */
 	msr		spsr_cxsf, r0
 	ldmfd	sp!, {r0-r5,r12,lr,pc}^	/* コンテキストの復帰 */
 									/* ^付きなので，spsr → cpsr */
 #else /* __TARGET_ARCH_ARM < 6 */
-	ldmfd	sp!, {r0-r5,r12,lr}
+	pop		{r0-r5,r12,lr}			/* スクラッチレジスタ＋αの復帰 */
 	rfefd	sp!
 #endif /* __TARGET_ARCH_ARM < 6 */
@@ -509,11 +617,12 @@
 	/*
 	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スク
-	 *  ラッチレジスタを保存する．
+	 *  ラッチレジスタ＋αを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
-
-	/*
-	 *  未定義モードに戻して，戻り番地とspsrを取得する．
+	push	{r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  未定義モードに戻して，戻り番地（lr）と戻り先のcpsr（spsr）を取
+	 *  得する．
 	 */
 	msr		cpsr_c, #(CPSR_UND_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -522,21 +631,21 @@
 
 	/*
-	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
+	 *  スーパバイザモードに切り換え，戻り番地と戻り先のcpsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
-	push	{r1}					/* spsrをスタックに保存 */
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存（pcの場所）*/
+	push	{r1}					/* 戻り先のcpsrをスタックに保存 */
 #else /* __TARGET_ARCH_ARM < 6 */
 	/*
-	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
-	 *  保存する．
+	 *  戻り番地（lr）と戻り先のcpsr（spsr）をスーパバイザモードのスタッ
+	 *  クに保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
+	 *  スーパバイザモードに切り換え，スクラッチレジスタ＋αを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
-	stmfd	sp!, {r0-r5,r12,lr}
+	push	{r0-r5,r12,lr}
 #endif /* __TARGET_ARCH_ARM < 6 */
 	mov		r4, #EXCNO_UNDEF
@@ -558,32 +667,23 @@
 #if __TARGET_ARCH_ARM < 6
 	/*
-	 *  IビットとFビットをセットし，スクラッチレジスタを保存する．
+	 *  IビットとFビットをセットし，戻り番地（lr），スクラッチレジスタ
+	 *  ＋α，戻り先のcpsr（spsr）を保存する（lrは二重に保存される）．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
-
-	/*
-	 *  戻り番地とspsrを取得する．
-	 */
-	mov		r2, lr
+	push	{lr}
+	push	{r0-r5,r12,lr}
 	mrs		r1, spsr
-
-	/*
-	 *  戻り番地とspsrを保存する．
-	 */
-	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
-	push	{r1}					/* spsrをスタックに保存 */
+	push	{r1}
 #else /* __TARGET_ARCH_ARM < 6 */
 	/*
-	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
-	 *  保存する．
+	 *  戻り番地（lr）と戻り先のcpsr（spsr）をスーパバイザモードのスタッ
+	 *  クに保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  スーパバイザモードで，スクラッチレジスタを保存する．
-	 */
-	cps		#CPSR_SVC_MODE			/* 不要と思われる */
-	stmfd	sp!, {r0-r5,r12,lr}
+	 *  スーパバイザモードで，スクラッチレジスタ＋αを保存する．
+	 */
+	push	{r0-r5,r12,lr}
 #endif /* __TARGET_ARCH_ARM < 6 */
 	mov		r4, #EXCNO_SVC
@@ -605,11 +705,12 @@
 	/*
 	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スク
-	 *  ラッチレジスタを保存する．
+	 *  ラッチレジスタ＋αを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
-
-	/*
-	 *  アボートモードに戻して，戻り番地とspsrを取得する．
+	push	{r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  アボートモードに戻して，戻り番地（lr）と戻り先のcpsr（spsr）を
+	 *  取得する．
 	 */
 	msr		cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -618,21 +719,21 @@
 
 	/*
-	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
+	 *  スーパバイザモードに切り換え，戻り番地と戻り先のcpsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
-	push	{r1}					/* spsrをスタックに保存 */
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存（pcの場所）*/
+	push	{r1}					/* 戻り先のcpsrをスタックに保存 */
 #else /* __TARGET_ARCH_ARM < 6 */
 	/*
-	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
-	 *  保存する．
+	 *  戻り番地（lr）と戻り先のcpsr（spsr）をスーパバイザモードのスタッ
+	 *  クに保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
+	 *  スーパバイザモードに切り換え，スクラッチレジスタ＋αを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
-	stmfd	sp!, {r0-r5,r12,lr}
+	push	{r0-r5,r12,lr}
 #endif /* __TARGET_ARCH_ARM < 6 */
 	mov		r4, #EXCNO_PABORT
@@ -653,11 +754,11 @@
 	 *  データアボートが，CPU例外の入口（start_exc_entryとend_exc_entry
 	 *  の間）で発生した場合には，fatal_dabort_handlerに分岐する．アボー
-	 *  トモードのspを汎用レジスタの代わりに使用する．
-	 */
-	ldr		sp, =start_exc_entry+8
-	cmp		lr, sp
+	 *  トモードのspを汎用レジスタの代わりに使用する（r13と記述している）．
+	 */
+	adr		r13, start_exc_entry+8
+	cmp		lr, r13
 	bcc		dabort_handler_1
-	ldr		sp, =end_exc_entry+8
-	cmp		lr, sp
+	adr		r13, end_exc_entry+8
+	cmp		lr, r13
 	bcc		fatal_dabort_handler
 
@@ -666,11 +767,12 @@
 	/*
 	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スク
-	 *  ラッチレジスタを保存する．
+	 *  ラッチレジスタ＋αを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
-
-	/*
-	 *  アボートモードに戻して，戻り番地とspsrを取得する．
+	push	{r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  アボートモードに戻して，戻り番地（lr）と戻り先のcpsr（spsr）を
+	 *  取得する．
 	 */
 	msr		cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -679,25 +781,24 @@
 
 	/*
-	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
+	 *  スーパバイザモードに切り換え，戻り番地と戻り先のcpsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
-	push	{r1}					/* spsrをスタックに保存 */
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存（pcの場所）*/
+	push	{r1}					/* 戻り先のcpsrをスタックに保存 */
 #else /* __TARGET_ARCH_ARM < 6 */
 	/*
-	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
-	 *  保存する．
+	 *  戻り番地（lr）と戻り先のcpsr（spsr）をスーパバイザモードのスタッ
+	 *  クに保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
+	 *  スーパバイザモードに切り換え，スクラッチレジスタ＋αを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
-	stmfd	sp!, {r0-r5,r12,lr}
+	push	{r0-r5,r12,lr}
 #endif /* __TARGET_ARCH_ARM < 6 */
 	mov		r4, #EXCNO_DABORT
 	b		exc_handler_1
-#endif /* OMIT_DABORT_HANDLER */
 
 /*
@@ -708,13 +809,14 @@
 	/*
 	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スタッ
-	 *  クポインタを初期化し，スクラッチレジスタを保存する．
+	 *  クポインタを初期化し，スクラッチレジスタ＋αを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
 	ldr		sp, =istkpt
 	ldr		sp, [sp]
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
-
-	/*
-	 *  アボートモードに戻して，戻り番地とspsrを取得する．
+	push	{r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  アボートモードに戻して，戻り番地（lr）と戻り先のcpsr（spsr）を
+	 *  取得する．
 	 */
 	msr		cpsr_c, #(CPSR_ABT_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -723,9 +825,9 @@
 
 	/*
-	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
+	 *  スーパバイザモードに切り換え，戻り番地と戻り先のcpsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
-	push	{r1}					/* spsrをスタックに保存 */
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存（pcの場所）*/
+	push	{r1}					/* 戻り先のcpsrをスタックに保存 */
 #else /* __TARGET_ARCH_ARM < 6 */
 	/*
@@ -738,6 +840,6 @@
 
 	/*
-	 *  アボートモードに戻して，戻り先（lr）とspsr（cpsr_svc）をスーパ
-	 *  バイザモードのスタックに保存する．
+	 *  アボートモードに戻して，戻り番地（lr）と戻り先のcpsr（spsr）を
+	 *  スーパバイザモードのスタックに保存する．
 	 */
 	cps		#CPSR_ABT_MODE
@@ -745,20 +847,21 @@
 
 	/*
-	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
+	 *  スーパバイザモードに切り換え，スクラッチレジスタ＋αを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
-	stmfd	sp!, {r0-r5,r12,lr}
+	push	{r0-r5,r12,lr}
 #endif /* __TARGET_ARCH_ARM < 6 */
 
 	/*
-	 *  例外ネストカウントの最上位ビットを1にする．
+	 *  例外ネストカウントをインクリメントする．
 	 */
 	ldr		r2, =excpt_nest_count
 	ldr		r3, [r2]
-	orr		r3, r3, #0x80000000
+	add		r3, r3, #1
 	str		r3, [r2]
 
-	mov		r4, #EXCNO_DABORT
+	mov		r4, #EXCNO_FATAL
 	b		exc_handler_1
+#endif /* OMIT_DABORT_HANDLER */
 
 /*
@@ -776,11 +879,12 @@
 	/*
 	 *  IビットとFビットをセットし，スーパバイザモードに切り換え，スク
-	 *  ラッチレジスタを保存する．
+	 *  ラッチレジスタ＋αを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	stmfd	sp!, {r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
-
-	/*
-	 *  FIQモードに戻して，戻り番地とspsrを取得する．
+	push	{r0-r5,r12,lr,pc}		/* pcはスペース確保のため */
+
+	/*
+	 *  FIQモードに戻して，戻り番地（lr）と戻り先のcpsr（spsr）を取得
+	 *  する．
 	 */
 	msr		cpsr_c, #(CPSR_FIQ_MODE AOR CPSR_FIQ_IRQ_BIT)
@@ -789,36 +893,36 @@
 
 	/*
-	 *  スーパバイザモードに切り換え，戻り番地とspsrを保存する．
+	 *  スーパバイザモードに切り換え，戻り番地と戻り先のcpsrを保存する．
 	 */
 	msr		cpsr_c, #(CPSR_SVC_MODE AOR CPSR_FIQ_IRQ_BIT)
-	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存 */
-	push	{r1}					/* spsrをスタックに保存 */
+	str		r2, [sp,#0x20]			/* 戻り番地をスタックに保存（pcの場所）*/
+	push	{r1}					/* 戻り先のcpsrをスタックに保存 */
 #else /* __TARGET_ARCH_ARM < 6 */
 	/*
-	 *  戻り先（lr）とspsr（cpsr_svc）をスーパバイザモードのスタックに
-	 *  保存する．
+	 *  戻り番地（lr）と戻り先のcpsr（spsr）をスーパバイザモードのスタッ
+	 *  クに保存する．
 	 */
 	srsfd	#CPSR_SVC_MODE!
 
 	/*
-	 *  スーパバイザモードに切り換え，スクラッチレジスタを保存する．
+	 *  スーパバイザモードに切り換え，スクラッチレジスタ＋αを保存する．
 	 */
 	cps		#CPSR_SVC_MODE
-	stmfd	sp!, {r0-r5,r12,lr}
+	push	{r0-r5,r12,lr}
 #endif /* __TARGET_ARCH_ARM < 6 */
 	mov		r4, #EXCNO_FIQ
 	b		exc_handler_1
 #endif /* OMIT_FIQ_HANDLER */
-	
+
 ALABEL(end_exc_entry)
 
 /*
  *  CPU例外ハンドラ出入口処理の共通部分
- *
- * 【この時点のレジスタ状態】
- *  r4：CPU例外ハンドラ番号
  */
 ALABEL(exc_handler_1)
 	/*
+	 * 【この時点のレジスタ状態】
+	 *  r4：CPU例外ハンドラ番号
+	 *
 	 *  CPU例外が発生した状況の判断に用いるために，CPU例外発生前の割
 	 *  込み優先度マスクと例外ネストカウントをスタックに保存する．
@@ -836,6 +940,6 @@
 	and		r1, sp, #4
 	sub		sp, sp, r1
-	push	{r0,r1}					/* r0はスペース確保のため */
-
+	push	{r0,r1}					/* スタックポインタの調整値を保存 */
+									/* r0はスペース確保のため */
 	/*
 	 *  カーネル管理外のCPU例外か判定する
@@ -873,4 +977,14 @@
 #endif /* TOPPERS_SUPPORT_OVRHDR */
 
+#ifdef USE_ARM_FPU
+	/*
+	 *  FPUをディスエーブルする．
+	 */
+	vmrs	r0, fpexc
+	str		r0, [sp]				/* FPEXCを保存（r0の場所）*/
+	bic		r0, r0, #FPEXC_ENABLE
+	vmsr	fpexc, r0				/* FPEXCを設定 */
+#endif /* USE_ARM_FPU */
+	
 	/*
 	 *  非タスクコンテキスト用のスタックに切り換える．
@@ -890,4 +1004,7 @@
 	/*
 	 *  （必要なら）割込みコントローラを操作する．
+	 *
+	 *  irc_begin_excは，スタックトップ（r0の場所）に，irc_end_excで用
+	 *  いる情報を保存する．
 	 */
 	bl		irc_begin_exc
@@ -970,4 +1087,12 @@
 	mov		sp, r3
 
+#ifdef USE_ARM_FPU
+	/*
+	 *  FPUを元に戻す．
+	 */
+	ldr		r0, [sp]				/* FPEXCを復帰 */
+	vmsr	fpexc, r0
+#endif /* USE_ARM_FPU */
+	
 	/*
 	 *  p_runtskがNULLか判定する．
@@ -990,4 +1115,8 @@
 	 */
 ALABEL(exc_handler_3)
+	/*
+	 * 【この時点のレジスタ状態】
+	 *  r0：p_runtsk
+	 */
 	ldr		r1, =p_schedtsk			/* p_schedtsk → r1 */
 	ldr		r1, [r1]
@@ -998,5 +1127,18 @@
 	 *  コンテキストを保存する．
 	 */
-	stmfd	sp!, {r6-r11}			/* 非スクラッチレジスタの保存 */
+	push	{r6-r11}				/* 残りのレジスタの保存 */
+#ifdef USE_ARM_FPU
+	ldr		r2, [r0,#TCB_p_tinib]	/* p_runtsk->p_tinib → r2 */
+	ldr		r1, [r2,#TINIB_tskatr]	/* p_runtsk->p_tinib->tskatr → r1 */
+	tst		r1, #TA_FPU
+	beq		1f						/* TA_FPU属性でない場合は分岐 */
+#ifdef USE_ARM_FPU_D32
+	vpush	{d16-d31}
+#endif /* USE_ARM_FPU_D32 */
+	vpush	{d0-d15}				/* 全FPUレジスタの保存 */
+	vmrs	r1, fpscr
+	push	{r1,r2}					/* FPSCRの保存 */
+1:									/* r2はアラインメントのため */
+#endif /* USE_ARM_FPU */
 	str		sp, [r0,#TCB_sp]		/* スタックポインタを保存 */
 	adr		r1, ret_exc_r			/* 実行再開番地を保存 */
@@ -1007,6 +1149,26 @@
 	/*
 	 *  コンテキストを復帰する．
-	 */
-	ldmfd	sp!, {r6-r11}			/* 非スクラッチレジスタの復帰 */
+	 *
+	 * 【この時点のレジスタ状態】
+	 *  r4：p_runtsk（タスク切換え後）
+	 */
+#ifdef USE_ARM_FPU
+	ldr		r2, [r4,#TCB_p_tinib]	/* p_runtsk->p_tinib → r2 */
+	ldr		r1, [r2,#TINIB_tskatr]	/* p_runtsk->p_tinib->tskatr → r1 */
+	tst		r1, #TA_FPU
+	vmrs	r0, fpexc
+	biceq	r0, r0, #FPEXC_ENABLE
+	orrne	r0, r0, #FPEXC_ENABLE
+	vmsr	fpexc, r0				/* FPEXCを設定 */
+	beq		1f						/* TA_FPU属性でない場合は分岐 */
+	pop		{r1,r2}					/* FPSCRの復帰 */
+	vmsr	fpscr, r1
+	vpop	{d0-d15}				/* 全FPUレジスタの復帰 */
+#ifdef USE_ARM_FPU_D32
+	vpop	{d16-d31}
+#endif /* USE_ARM_FPU_D32 */
+1:
+#endif /* USE_ARM_FPU */
+	pop		{r6-r11}				/* 残りのレジスタの復帰 */
 
 ALABEL(exc_handler_4)
@@ -1031,10 +1193,10 @@
 
 #if __TARGET_ARCH_ARM < 6
-	ldmfd	sp!, {r0}				/* 戻り先のcpsrをspsrに設定 */
+	pop		{r0}					/* 戻り先のcpsrをspsrに設定 */
 	msr		spsr_cxsf, r0
 	ldmfd	sp!, {r0-r5,r12,lr,pc}^	/* コンテキストの復帰 */
 									/* ^付きなので，spsr → cpsr */
 #else /* __TARGET_ARCH_ARM < 6 */
-	ldmfd	sp!, {r0-r5,r12,lr}
+	pop		{r0-r5,r12,lr}			/* スクラッチレジスタ＋αの復帰 */
 	rfefd	sp!
 #endif /* __TARGET_ARCH_ARM < 6 */
@@ -1061,4 +1223,14 @@
 	bne		nk_exc_handler_2		/*		 	ならnk_exc_handler_2に分岐 */
 
+#ifdef USE_ARM_FPU
+	/*
+	 *  FPUをディスエーブルする．
+	 */
+	vmrs	r0, fpexc
+	str		r0, [sp]				/* FPEXCを保存（r0の場所）*/
+	bic		r0, r0, #FPEXC_ENABLE
+	vmsr	fpexc, r0				/* FPEXCを設定 */
+#endif /* USE_ARM_FPU */
+	
 	/*
 	 *  非タスクコンテキスト用のスタックに切り換える．
@@ -1068,5 +1240,5 @@
 	ldr		sp, [r2]
 	push	{r0,r3}					/* 切換え前のスタックポインタを保存 */
-									/* r0はスペース確保のため */
+									/* r0はアラインメントのため */
 ALABEL(nk_exc_handler_2)
 	/*
@@ -1101,6 +1273,14 @@
 	pop		{r0,r3}
 	mov		sp, r3
+
+#ifdef USE_ARM_FPU
+	/*
+	 *  FPUを元に戻す．
+	 */
+	ldr		r0, [sp]				/* FPEXCを復帰 */
+	vmsr	fpexc, r0
+#endif /* USE_ARM_FPU */
 	b		exc_handler_5
-
+	
 /*
  *  ステータスレジスタの操作関数
@@ -1113,12 +1293,12 @@
 	ATEXT
 	AALIGN(2)
-	AWEAK(current_cpsr)
-ALABEL(current_cpsr)
+	AWEAK(_kernel_current_cpsr)
+ALABEL(_kernel_current_cpsr)
 	mrs		r0, cpsr_cxsf
 	bx		lr
 
 	AALIGN(2)
-	AWEAK(set_cpsr)
-ALABEL(set_cpsr)
+	AWEAK(_kernel_set_cpsr)
+ALABEL(_kernel_set_cpsr)
 	msr		cpsr_cxsf, r0
 	bx		lr
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sym.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sym.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sym.def	(revision 429)
@@ -1,4 +1,7 @@
 TARGET_ARCH_ARM,__TARGET_ARCH_ARM
-USE_INTCFG_TABLE,true,bool,defined(USE_INTCFG_TABLE)
+USE_ARM_FPU,true,bool,defined(USE_ARM_FPU),false
+USE_ARM_FPU_D32,true,bool,defined(USE_ARM_FPU_D32),false
+USE_INTCFG_TABLE,true,bool,defined(USE_INTCFG_TABLE),false
+TA_FPU
 sizeof_TCB,sizeof(TCB)
 offsetof_TCB_p_tinib,"offsetof(TCB,p_tinib)"
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_test.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_test.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_test.h	(revision 429)
@@ -4,5 +4,5 @@
  *      Advanced Standard Profile Kernel
  * 
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -36,5 +36,5 @@
  *  の責任を負わない．
  * 
- *  $Id$
+ *  $Id: core_test.h 1244 2019-07-16 21:41:05Z ertl-hiro $
  */
 
@@ -54,7 +54,6 @@
 
 /*
- *  CPU例外の発生
+ *  不正アドレスの定義（メモリのない番地に設定する）
  */
-
 #ifndef ILLEGAL_IADDR
 #define ILLEGAL_IADDR			0xd0000000U		/* 不正命令アドレス */
@@ -66,67 +65,96 @@
 
 /*
+ *  サンプルプログラムで用いるCPU例外の発生
+ */
+#if defined(USE_CPUEXC_SVC)
+
+#define CPUEXC1					EXCNO_SVC		/* スーパバイザコール */
+#define RAISE_CPU_EXCEPTION		RAISE_CPU_EXCEPTION_SVC
+#define PREPARE_RETURN_CPUEXC	PREPARE_RETURN_CPUEXC_SVC
+
+#elif defined(USE_CPUEXC_PABORT)
+
+#define CPUEXC1					EXCNO_PABORT	/* プリフェッチアボート */
+#define RAISE_CPU_EXCEPTION		RAISE_CPU_EXCEPTION_PABORT
+#define PREPARE_RETURN_CPUEXC	PREPARE_RETURN_CPUEXC_PABORT
+
+#elif defined(USE_CPUEXC_DABORT)
+
+#define CPUEXC1					EXCNO_DABORT	/* データアボート */
+#define RAISE_CPU_EXCEPTION		RAISE_CPU_EXCEPTION_DABORT
+#define PREPARE_RETURN_CPUEXC	PREPARE_RETURN_CPUEXC_DABORT
+
+#elif defined(USE_CPUEXC_FATAL)
+
+#define CPUEXC1					EXCNO_FATAL		/* フェイタルデータアボート */
+#define RAISE_CPU_EXCEPTION		RAISE_CPU_EXCEPTION_FATAL
+/* フェイタルデータアボート例外ハンドラからリターンしてはならない */
+
+#else
+
+#define CPUEXC1					EXCNO_UNDEF		/* 未定義命令 */
+#define RAISE_CPU_EXCEPTION		RAISE_CPU_EXCEPTION_UNDEF
+#define PREPARE_RETURN_CPUEXC	PREPARE_RETURN_CPUEXC_UNDEF
+
+#endif
+
+/*
  *  スーパバイザコールによるCPU例外の発生
  *
- *  CPU例外ハンドラから，そのままリターンすることができる．svc命令によ
- *  りlrレジスタが上書きされるため，lrレジスタは破壊されるものと指定し
- *  ている．
+ *  svc #0によりCPU例外を発生させる．svc命令によりlrレジスタが上書きさ
+ *  れるため，lrレジスタは破壊されるものと指定している．CPU例外ハンド
+ *  ラからそのままリターンすることで，svc命令の次の命令から実行が継続
+ *  する．
  */
-#if defined(USE_SVC_CPUEXC)
-
-#define CPUEXC1					EXCNO_SVC		/* スーパバイザコール */
-#define RAISE_CPU_EXCEPTION		Asm("svc #0":::"lr")
-#define PREPARE_RETURN_CPUEXC
+#define RAISE_CPU_EXCEPTION_SVC			Asm("svc #0":::"lr")
+#define PREPARE_RETURN_CPUEXC_SVC
 
 /*
  *  プリフェッチアボートによるCPU例外の発生
  *
- *  プリフェッチアボートを起こした命令をスキップしてCPU例外ハンドラから
- *  リターンするために，戻り番地はそのままで良い（ARMモードで使うことを
- *  想定）．
+ *  不正な番地を関数の先頭番地として呼び出すことで，プリフェッチアボー
+ *  トによるCPU例外を発生させる．不正な番地に分岐した命令をスキップし
+ *  てCPU例外ハンドラからリターンするために，戻り番地には，lrレジスタ
+ *  の値（不正な番地への分岐命令からのリターン番地が入っている）を設定
+ *  する．
  */
-#elif defined(USE_PABORT_CPUEXC)
-
-#define CPUEXC1					EXCNO_PABORT	/* プリフェッチアボート */
-#define RAISE_CPU_EXCEPTION		((void (*)(void)) ILLEGAL_IADDR)()
-#define PREPARE_RETURN_CPUEXC
+#define RAISE_CPU_EXCEPTION_PABORT		(((void (*)(void)) ILLEGAL_IADDR)())
+#define PREPARE_RETURN_CPUEXC_PABORT	(((T_EXCINF *) p_excinf)->pc \
+											= ((T_EXCINF *) p_excinf)->lr)
 
 /*
  *  データアボートによるCPU例外の発生
  *
- *  データアボートを起こした命令をスキップしてCPU例外ハンドラからリター
- *  ンするために，戻り番地から4を減算する（ARMモードで使うことを想定）．
+ *  不正な番地をリードすることで，データアボートによるCPU例外を発生さ
+ *  せる．データアボートを起こした命令をスキップしてCPU例外ハンドラか
+ *  らリターンするために，戻り番地から4を減算する（ARMモードで使うこと
+ *  を想定している）．
  */
-#elif defined(USE_DABORT_CPUEXC)
-
-#include "arm.h"
-#define CPUEXC1					EXCNO_DABORT	/* データアボート */
-#define RAISE_CPU_EXCEPTION		(void)(*((volatile uint32_t *) ILLEGAL_DADDR))
-#define PREPARE_RETURN_CPUEXC	((T_EXCINF *) p_excinf)->pc -= 4U
+#define RAISE_CPU_EXCEPTION_DABORT		(void)(*((volatile uint32_t *) \
+															ILLEGAL_DADDR))
+#define PREPARE_RETURN_CPUEXC_DABORT	(((T_EXCINF *) p_excinf)->pc -= 4U)
 
 /*
- *  フェイタルデータアボート処理
+ *  フェイタルデータアボートによるCPU例外の発生
  *
- *  スタックポインタを不正にして，フェイタルデータアボート処理を行わせ
- *  る．CPU例外ハンドラからはリターンできない．
+ *  スタックポインタを不正にして，未定義命令を実行することで，フェイタ
+ *  ルデータアボートによるCPU例外を発生させる．CPU例外ハンドラからリター
+ *  ンしてはならない．
  */
-#elif defined(USE_FATAL_DABORT_CPUEXC)
-
-#define CPUEXC1					EXCNO_DABORT	/* データアボート */
-#define RAISE_CPU_EXCEPTION		Asm("mov sp, %0"::"I"(ILLEGAL_DADDR))
+#define RAISE_CPU_EXCEPTION_FATAL		Asm("mov sp, %0\n" \
+										  "\t.word 0xf0500090" \
+										  ::"I"(ILLEGAL_DADDR))
 
 /*
  *  未定義命令によるCPU例外の発生
  *
- *  RAISE_CPU_EXCEPTIONは，ARMモードで使うことを想定している．CPU例外ハ
- *  ンドラから，そのままリターンすることができる．使用している未定義命
- *  令は，"Multiply and multiply accumulate"命令群のエンコーディング内
- *  における未定義命令である．
+ *  未定義命令によりCPU例外を発生させる．使用している未定義命令は，
+ *  "Multiply and multiply accumulate"命令群のエンコーディング内におけ
+ *  る未定義命令である．CPU例外ハンドラからそのままリターンすることで，
+ *  未定義命令の次の命令から実行が継続する（ARMモードで使うことを想定
+ *  している）．
  */
-#else
+#define RAISE_CPU_EXCEPTION_UNDEF		Asm(".word 0xf0500090")
+#define PREPARE_RETURN_CPUEXC_UNDEF
 
-#define CPUEXC1					EXCNO_UNDEF		/* 未定義命令 */
-#define RAISE_CPU_EXCEPTION		Asm(".word 0xf0500090")
-#define PREPARE_RETURN_CPUEXC
-
-#endif
 #endif /* TOPPERS_CORE_TEST_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_unrename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_unrename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_unrename.h	(revision 429)
@@ -26,6 +26,4 @@
 #undef dabort_handler
 #undef fiq_handler
-#undef current_cpsr
-#undef set_cpsr
 
 /*
@@ -34,4 +32,5 @@
 #undef excpt_nest_count
 #undef arm_mmu_initialize
+#undef arm_fpu_initialize
 #undef core_initialize
 #undef core_terminate
@@ -40,4 +39,20 @@
 #undef default_int_handler
 #undef default_exc_handler
+
+/*
+ *  mpcore_kernel_impl.c
+ */
+#undef mpcore_initialize
+#undef mpcore_terminate
+
+/*
+ *  mpcore_timer.c
+ */
+#undef target_hrt_initialize
+#undef target_hrt_terminate
+#undef target_hrt_handler
+#undef target_ovrtimer_initialize
+#undef target_ovrtimer_terminate
+#undef target_ovrtimer_handler
 
 /*
@@ -66,10 +81,4 @@
 #undef pl310_clean_and_invalidate_all
 
-/*
- *  target_kernel_impl.c
- */
-#undef arm_tnum_memory_area
-#undef arm_memory_area
-
 
 #endif /* TOPPERS_CORE_RENAME_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.c	(revision 429)
@@ -227,5 +227,5 @@
 	 */
 	gicd_set_priority(intno, INT_IPM(intpri));
-	gicd_set_target(intno, 1U << arm_prc_index());
+	gicd_set_target(intno, 1U << get_my_prcidx());
 
 	/*
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.h	(revision 429)
@@ -3,5 +3,5 @@
  *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2006-2017 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -67,7 +67,7 @@
  *  割込み番号の定義
  */
-#define GIC_INTNO_SGI0		0U
-#define GIC_INTNO_PPI0		16U
-#define GIC_INTNO_SPI0		32U
+#define GIC_INTNO_SGI0		UINT_C(0)
+#define GIC_INTNO_PPI0		UINT_C(16)
+#define GIC_INTNO_SPI0		UINT_C(32)
 
 /*
@@ -126,5 +126,5 @@
 #define GICC_EOIR		GIC_REG(GICC_BASE, 0x10)
 #define GICC_RPR		GIC_REG(GICC_BASE, 0x14)
-#define GICC_HPIR		GIC_REG(GICC_BASE, 0x18)
+#define GICC_HPPIR		GIC_REG(GICC_BASE, 0x18)
 
 /*
@@ -198,5 +198,5 @@
 gicc_set_priority(uint_t pri)
 {
-	sil_wrw_mem(GICC_PMR, pri);
+	sil_swrw_mem(GICC_PMR, pri);
 }
 
@@ -230,5 +230,5 @@
 gicd_disable_int(INTNO intno)
 {
-	sil_wrw_mem(GICD_ICENABLER(intno / 32), (1U << (intno % 32)));
+	sil_swrw_mem(GICD_ICENABLER(intno / 32), (1U << (intno % 32)));
 }
 
@@ -239,5 +239,5 @@
 gicd_enable_int(INTNO intno)
 {
-	sil_wrw_mem(GICD_ISENABLER(intno / 32), (1U << (intno % 32)));
+	sil_swrw_mem(GICD_ISENABLER(intno / 32), (1U << (intno % 32)));
 }
 
@@ -248,5 +248,5 @@
 gicd_clear_pending(INTNO intno)
 {
-	sil_wrw_mem(GICD_ICPENDR(intno / 32), (1U << (intno % 32)));
+	sil_swrw_mem(GICD_ICPENDR(intno / 32), (1U << (intno % 32)));
 }
 
@@ -257,5 +257,5 @@
 gicd_set_pending(INTNO intno)
 {
-	sil_wrw_mem(GICD_ISPENDR(intno / 32), (1U << (intno % 32)));
+	sil_swrw_mem(GICD_ISPENDR(intno / 32), (1U << (intno % 32)));
 }
 
@@ -271,4 +271,13 @@
 
 /*
+ *  ソフトウェア生成割込み（SGI）の生成
+ */
+Inline void
+gicd_raise_sgi(INTNO intno)
+{
+	sil_swrw_mem(GICD_SGIR, (0x02000000 | intno));
+}
+
+/*
  *  割込みのコンフィグレーション
  */
@@ -279,8 +288,10 @@
 	uint32_t	reg;
 
-	reg = sil_rew_mem(GICD_ICFGR(intno / 16));
-	reg &= ~(0x03U << shift);
-	reg |= (config << shift);
-	sil_wrw_mem(GICD_ICFGR(intno / 16), reg);
+	if (intno >= GIC_INTNO_PPI0) {
+		reg = sil_rew_mem(GICD_ICFGR(intno / 16));
+		reg &= ~(0x03U << shift);
+		reg |= (config << shift);
+		sil_wrw_mem(GICD_ICFGR(intno / 16), reg);
+	}
 }
 
@@ -318,6 +329,6 @@
  *  割込みターゲットプロセッサの設定
  *
- *  prcsは，ターゲットとするプロセッサを表すビットのビット毎論理和で指
- *  定する．
+ *  affinityは，ターゲットとするプロセッサを表すビットのビット毎論理和
+ *  で指定する．
  *		プロセッサ0 : 0x01
  *		プロセッサ1 : 0x02
@@ -326,5 +337,5 @@
  */
 Inline void
-gicd_set_target(INTNO intno, uint_t prcs)
+gicd_set_target(INTNO intno, uint_t affinity)
 {
 	uint_t		shift = (intno % 4) * 8;
@@ -333,5 +344,5 @@
 	reg = sil_rew_mem(GICD_ITARGETSR(intno / 4));
 	reg &= ~(0xffU << shift);
-	reg |= (prcs << shift);
+	reg |= (affinity << shift);
 	sil_wrw_mem(GICD_ITARGETSR(intno / 4), reg);
 }
@@ -373,4 +384,13 @@
  */
 #ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  割込み属性の設定のチェック
+ */
+Inline bool_t
+check_intno_cfg(INTNO intno)
+{
+	return(intcfg_table[intno] != 0U);
+}
 
 /*
@@ -393,44 +413,76 @@
 
 /*
+ *  割込み要求禁止フラグが操作できる割込み番号の範囲の判定
+ */
+#ifdef GIC_SUPPORT_DISABLE_SGI
+#define VALID_INTNO_DISINT(intno)	VALID_INTNO(intno)
+#else /* GIC_SUPPORT_DISABLE_SGI */
+#define VALID_INTNO_DISINT(intno) \
+				(GIC_INTNO_PPI0 <= (intno) && (intno) <= TMAX_INTNO)
+#endif /* GIC_SUPPORT_DISABLE_SGI */
+
+/*
  *  割込み要求禁止フラグのセット
- *
- *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのセッ
- *  トし，割込みを禁止する．割込み属性が設定されていない割込み要求ライ
- *  ンが指定された場合には，falseを返す．
- */
-Inline bool_t
+ */
+Inline void
 disable_int(INTNO intno)
 {
-	if (intcfg_table[intno] == 0U) {
-		return(false);
-	}
 	gicd_disable_int(intno);
-	return(true);
 }
 
 /* 
  *  割込み要求禁止フラグのクリア
- *
- *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのクリ
- *  アし，割込みを許可する．割込み属性が設定されていない割込み要求ライ
- *  ンが指定された場合には，falseを返す．
+ */
+Inline void
+enable_int(INTNO intno)
+{
+	gicd_enable_int(intno);
+}
+
+/*
+ *  割込み要求がクリアできる割込み番号の範囲の判定
+ */
+#define VALID_INTNO_CLRINT(intno) \
+				(GIC_INTNO_PPI0 <= (intno) && (intno) <= TMAX_INTNO)
+
+/*
+ *  割込み要求がクリアできる状態か？
  */
 Inline bool_t
-enable_int(INTNO intno)
-{
-	if (intcfg_table[intno] == 0U) {
-		return(false);
+check_intno_clear(INTNO intno)
+{
+	return(true);
+}
+
+/*
+ *  割込み要求のクリア
+ */
+Inline void
+clear_int(INTNO intno)
+{
+	gicd_clear_pending(intno);
+}
+
+/*
+ *  割込みが要求できる状態か？
+ */
+Inline bool_t
+check_intno_raise(INTNO intno)
+{
+	return(true);
+}
+
+/*
+ *  割込みの要求
+ */
+Inline void
+raise_int(INTNO intno)
+{
+	if (intno < GIC_INTNO_PPI0) {
+		gicd_raise_sgi(intno);
 	}
-	gicd_enable_int(intno);
-	return(true);
-}
-
-/*
- *  割込み要求のクリア
- */
-Inline void
-clear_int(INTNO intno)
-{
-	gicd_clear_pending(intno);
+	else {
+		gicd_set_pending(intno);
+	}
 }
 
@@ -444,13 +496,4 @@
 }
 
-/*
- *  割込み要求のセット
- */
-Inline void
-raise_int(INTNO intno)
-{
-	gicd_set_pending(intno);
-}
-
 #endif /* TOPPERS_MACRO_ONLY */
 #endif /* TOPPERS_GIC_KERNEL_IMPL_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S	(revision 429)
@@ -5,5 +5,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2006-2017 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -70,22 +70,33 @@
 	 *  割込み要因を取得する．
 	 */
+#ifdef GIC_PL390_ERRATA			/* GIC 390 Errata 801120への対策 */
+	ldr		r1, =GICC_HPPIR
+	ldr		r0, [r1]	
+#endif /* GIC_PL390_ERRATA */
 	ldr		r1, =GICC_IAR
 	ldr		r3, [r1]
-
-	/*
-	 *  割込み番号を求める．
-	 */
 	lsl		r4, r3, #22			/* 下位10ビットを取り出す */
 	lsr		r4, r4, #22
 
-	/*
-	 *  割込み要求をクリアする．
-	 */
-	and		r0, r4, #31
-	mov		r2, #1
-	lsl		r0, r2, r0
-	ldr		r2, =GICD_ICPENDR(0)
-	lsr		r1, r4, #5
-	str		r0, [r2,r1,lsl #2]
+#ifdef GIC_PL390_ERRATA			/* GIC 390 Errata 733075への対策 */
+	movw	r0, #1023
+	cmp		r4, r0
+	beq		irc_begin_int_errata_1
+	movw	r0, #1022
+	cmp		r4, r0
+	beq		irc_begin_int_errata_1
+	cmp		r3, #0
+	bne		irc_begin_int_errata_2
+	ldr		r1, =GICD_ISACTIVER(0)		/* 割込み要求があるかチェック */
+	ldr		r0, [r1]
+	tst		r0, #0x01
+	movweq	r4, #1024					/* 無効な割込みとみなす */
+ALABEL(irc_begin_int_errata_1)
+	ldr		r1, =GICD_IPRIORITYR(0)		/* 割込み優先度レジスタ0に書き込み */
+	ldr		r0, [r1]
+	str		r0, [r1]
+	asm_data_sync_barrier r0
+ALABEL(irc_begin_int_errata_2)
+#endif /* GIC_PL390_ERRATA */
 
 	/*
@@ -107,5 +118,5 @@
 
 	/*
-	 *  割込み番号を返値としてリターンする．
+	 *  r4に割込み番号を入れた状態でリターンする．
 	 */
 	bx		lr
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore.h	(revision 429)
@@ -0,0 +1,238 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2018 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$
+ */
+
+/*
+ *		MPCoreサポートモジュール
+ */
+
+#ifndef TOPPERS_MPCORE_H
+#define TOPPERS_MPCORE_H
+
+#include <sil.h>
+#include "arm.h"
+
+/*
+ *  CP15の補助制御レジスタ（ACTLR）の設定値
+ */
+#if __TARGET_ARCH_ARM == 6
+#define CP15_ACTLR_SMP			UINT_C(0x00000020)
+#else /* __TARGET_ARCH_ARM == 6 */
+#define CP15_ACTLR_SMP			UINT_C(0x00000040)
+#endif /* __TARGET_ARCH_ARM == 6 */
+
+/*
+ *  SCU（スヌープ制御ユニット）関連の定義
+ */
+
+/*
+ *  SCUレジスタの番地の定義
+ */
+#define MPCORE_SCU_BASE		(MPCORE_PMR_BASE + 0x0000U)
+#define MPCORE_SCU_CTRL		((uint32_t *)(MPCORE_SCU_BASE + 0x00U))
+#define MPCORE_SCU_CONFIG	((uint32_t *)(MPCORE_SCU_BASE + 0x04U))
+#define MPCORE_SCU_CPUSTAT	((uint32_t *)(MPCORE_SCU_BASE + 0x08U))
+#define MPCORE_SCU_INVALL	((uint32_t *)(MPCORE_SCU_BASE + 0x0cU))
+
+/*
+ *  SCU制御レジスタ（MPCORE_SCU_CTRL）の設定値
+ */
+#define MPCORE_SCU_CTRL_ENABLE		UINT_C(0x00000001)
+
+/*
+ *  SCUパワーステータスレジスタ（MPCORE_SCU_CPUSTAT）の設定値
+ */
+#define MPCORE_SCU_CPUSTAT_ALLNORMAL	UINT_C(0x00000000)
+
+/*
+ *  SCUインバリデートオールレジスタ（MPCORE_SCU_INVALL）の設定値
+ */
+#define MPCORE_SCU_INVALL_ALLWAYS	UINT_C(0x0000ffff)
+
+/*
+ *  GIC関連の定義
+ */
+
+/*
+ *  GICレジスタのベースアドレスの定義
+ */
+#ifndef GICC_BASE
+#define GICC_BASE			(MPCORE_PMR_BASE + UINT_C(0x0100))
+#endif /* GICC_BASE */
+
+#ifndef GICD_BASE
+#define GICD_BASE			(MPCORE_PMR_BASE + UINT_C(0x1000))
+#endif /* GICD_BASE */
+
+/*
+ *  割込み番号の定義
+ */
+#define MPCORE_IRQNO_GTC	27U			/* グローバルタイマの割込み番号 */
+#define MPCORE_IRQNO_TMR	29U			/* プライベートタイマの割込み番号 */
+#define MPCORE_IRQNO_WDG	30U			/* ウォッチドッグの割込み番号 */
+
+/*
+ *  プライベートタイマとウォッチドッグ関連の定義
+ */
+
+/*
+ *  プライベートタイマとウォッチドッグレジスタの番地の定義
+ */
+#define MPCORE_TMR_BASE		(MPCORE_PMR_BASE + 0x0600U)
+#define MPCORE_TMR_LR		((uint32_t *)(MPCORE_TMR_BASE + 0x00U))
+#define MPCORE_TMR_CNT		((uint32_t *)(MPCORE_TMR_BASE + 0x04U))
+#define MPCORE_TMR_CTRL		((uint32_t *)(MPCORE_TMR_BASE + 0x08U))
+#define MPCORE_TMR_ISR		((uint32_t *)(MPCORE_TMR_BASE + 0x0cU))
+#define MPCORE_WDG_LR		((uint32_t *)(MPCORE_TMR_BASE + 0x20U))
+#define MPCORE_WDG_CNT		((uint32_t *)(MPCORE_TMR_BASE + 0x24U))
+#define MPCORE_WDG_CTRL		((uint32_t *)(MPCORE_TMR_BASE + 0x28U))
+#define MPCORE_WDG_ISR		((uint32_t *)(MPCORE_TMR_BASE + 0x2cU))
+#define MPCORE_WDG_RST		((uint32_t *)(MPCORE_TMR_BASE + 0x30U))
+#define MPCORE_WDG_DIS		((uint32_t *)(MPCORE_TMR_BASE + 0x34U))
+
+/*
+ *  プライベートタイマ制御レジスタ（MPCORE_TMR_CTRL）の設定値
+ */
+#define MPCORE_TMR_CTRL_DISABLE			0x00U
+#define MPCORE_TMR_CTRL_ENABLE			0x01U
+#define MPCORE_TMR_CTRL_AUTORELOAD		0x02U
+#define MPCORE_TMR_CTRL_ENAINT			0x04U
+#define MPCORE_TMR_CTRL_PS_SHIFT		8
+
+/*
+ *  プライベートタイマ割込みステータスレジスタ（MPCORE_TMR_ISR）の設定値
+ */
+#define MPCORE_TMR_ISR_EVENTFLAG		0x01U
+
+/*
+ *  ウォッチドッグ制御レジスタ（MPCORE_WDG_CTRL）の参照値
+ */
+#define MPCORE_WDG_CTRL_DISABLE			0x00U
+#define MPCORE_WDG_CTRL_ENABLE			0x01U
+#define MPCORE_WDG_CTRL_AUTORELOAD		0x02U
+#define MPCORE_WDG_CTRL_ENAINT			0x04U
+#define MPCORE_WDG_CTRL_WDGMODE			0x08U
+#define MPCORE_WDG_CTRL_PS_SHIFT		8
+
+/*
+ *  ウォッチドッグ割込みステータスレジスタ（MPCORE_WDG_ISR）の参照値
+ */
+#define MPCORE_WDG_ISR_EVENTFLAG		0x01U
+
+/*
+ *  グローバルタイマ関連の定義
+ */
+#if __TARGET_ARCH_ARM == 7
+
+/*
+ *  グローバルタイマレジスタの番地の定義
+ */
+#define MPCORE_GTC_BASE		(MPCORE_PMR_BASE + 0x0200U)
+#define MPCORE_GTC_COUNT_L	((uint32_t *)(MPCORE_GTC_BASE + 0x00U))
+#define MPCORE_GTC_COUNT_U	((uint32_t *)(MPCORE_GTC_BASE + 0x04U))
+#define MPCORE_GTC_CTRL		((uint32_t *)(MPCORE_GTC_BASE + 0x08U))
+#define MPCORE_GTC_ISR		((uint32_t *)(MPCORE_GTC_BASE + 0x0cU))
+#define MPCORE_GTC_CVR_L	((uint32_t *)(MPCORE_GTC_BASE + 0x10U))
+#define MPCORE_GTC_CVR_U	((uint32_t *)(MPCORE_GTC_BASE + 0x14U))
+#define MPCORE_GTC_AUTOINCR	((uint32_t *)(MPCORE_GTC_BASE + 0x18U))
+
+/*
+ *  グローバルタイマ制御レジスタ（MPCORE_GTC_CTRL）の設定値
+ */
+#define MPCORE_GTC_CTRL_DISABLE			0x00U
+#define MPCORE_GTC_CTRL_ENABLE			0x01U
+#define MPCORE_GTC_CTRL_ENACOMP			0x02U
+#define MPCORE_GTC_CTRL_ENAINT			0x04U
+#define MPCORE_GTC_CTRL_AUTOINCR		0x08U
+#define MPCORE_GTC_CTRL_PS_SHIFT		8
+
+/*
+ *  グローバルタイマ割込みステータスレジスタ（MPCORE_GTC_ISR）の設定値
+ */
+#define MPCORE_GTC_ISR_EVENTFLAG		0x01U
+
+#endif /* __TARGET_ARCH_ARM == 7 */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  SMPモードに設定
+ */
+Inline void
+mpcore_enable_smp(void)
+{
+	uint32_t	reg;
+
+	CP15_READ_ACTLR(reg);
+	reg |= CP15_ACTLR_SMP;
+	CP15_WRITE_ACTLR(reg);
+}
+
+/*
+ *  SCU（スヌープ制御ユニット）の操作
+ */
+
+/*
+ *  SCUのイネーブル
+ */
+Inline void
+mpcore_enable_scu(void)
+{
+	uint32_t	reg;
+
+	/*
+	 *  すべてのプロセッサをノーマルモードにする．
+	 */
+	sil_wrw_mem(MPCORE_SCU_CPUSTAT, MPCORE_SCU_CPUSTAT_ALLNORMAL);
+
+	/*
+	 *  SCUのすべてのタグを無効化する．
+	 */
+	sil_wrw_mem(MPCORE_SCU_INVALL, MPCORE_SCU_INVALL_ALLWAYS);
+
+	/*
+	 *  SCUを有効にする．
+	 */
+	reg = sil_rew_mem(MPCORE_SCU_CTRL);
+	reg |= MPCORE_SCU_CTRL_ENABLE;
+	sil_wrw_mem(MPCORE_SCU_CTRL, reg);
+	data_sync_barrier();
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_MPCORE_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_kernel_impl.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_kernel_impl.c	(revision 429)
@@ -0,0 +1,122 @@
+/*
+ *  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-2018 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$
+ */
+
+/*
+ *		カーネルのMPCore依存部
+ */
+
+#include "kernel_impl.h"
+#include <sil.h>
+#include "arm.h"
+
+/*
+ *  MPCore依存の初期化
+ */
+void
+mpcore_initialize(void)
+{
+	/*
+	 *  キャッシュをディスエーブル
+	 */
+	arm_disable_cache();
+
+	/*
+	 *  コア依存の初期化
+	 */
+	core_initialize();
+
+	/*
+	 *  MPCoreをSMPモードに設定
+	 *
+	 *  Shareable属性のメモリ領域をキャッシュ有効にするには，シングル
+	 *  コアであっても，SMPモードに設定されている必要がある．
+	 */
+	mpcore_enable_smp();
+
+	/*
+	 *  SCUをイネーブル
+	 */
+	mpcore_enable_scu();
+
+	/*
+	 *  キャッシュをイネーブル
+	 */
+	arm_enable_cache();
+
+	/*
+	 * GICのディストリビュータの初期化
+	 */
+	gicd_initialize();
+
+	/*
+	 * GICのCPUインタフェースの初期化
+	 */
+	gicc_initialize();
+
+	/*
+	 *  分岐予測の無効化とイネーブル
+	 */
+	arm_invalidate_bp();
+	arm_enable_bp();
+}
+
+/*
+ *  MPCore依存の終了処理
+ */
+void
+mpcore_terminate(void)
+{
+	/*
+	 *  GICのCPUインタフェースの終了処理
+	 */
+	gicc_terminate();
+
+	/*
+	 *  GICのディストリビュータの終了処理
+	 */
+	gicd_terminate();
+
+	/*
+	 *  コア依存の終了処理
+	 */
+	core_terminate();
+}
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_kernel_impl.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_kernel_impl.h	(revision 429)
@@ -0,0 +1,85 @@
+/*
+ *  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-2018 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_impl.hのMPCore依存部
+ *
+ *  このヘッダファイルは，target_kernel_impl.h（または，そこからインク
+ *  ルードされるファイル）のみからインクルードされる．他のファイルから
+ *  直接インクルードしてはならない．
+ */
+
+#ifndef TOPPERS_MPCORE_KERNEL_IMPL_H
+#define TOPPERS_MPCORE_KERNEL_IMPL_H
+
+/*
+ *  MPCoreのハードウェア資源の定義
+ */
+#include "mpcore.h"
+
+/*
+ *  MMUの使用に関する設定
+ */
+#define USE_ARM_MMU
+#define USE_ARM_SSECTION
+
+/*
+ *  GICに関する定義，コアで共通な定義
+ *
+ *  core_kernel_impl.hは，gic_kernel_impl.hからインクルードされる．
+ */
+#include "gic_kernel_impl.h"
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  MPCore依存の初期化
+ */
+extern void mpcore_initialize(void);
+
+/*
+ *  MPcore依存の終了処理
+ */
+extern void mpcore_terminate(void);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_MPCORE_KERNEL_IMPL_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.c	(revision 429)
@@ -0,0 +1,293 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2006-2018 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$
+ */
+
+/*
+ *		タイマドライバ（MPCore内蔵タイマ用）
+ *
+ *  MPCoreがプロセッサ毎に持っているプライベートタイマとウォッチドッグ，
+ *  各プロセッサからアクセスできるグローバルタイマを用いて，カーネルが
+ *  必要とする各種のタイマを実現する．
+ */
+
+#include "kernel_impl.h"
+#include "time_event.h"
+#include "target_timer.h"
+#include <sil.h>
+#include "mpcore.h"
+
+/*
+ *  スプリアス割込み対策マクロのデフォルト定義
+ */
+#ifndef MPCORE_TMR_CLEAR_INT
+#define MPCORE_TMR_CLEAR_INT()
+#endif /* MPCORE_TMR_CLEAR_INT */
+
+#ifdef USE_MPCORE_TMRWDG_HRT
+/*
+ *		プライベートタイマとウォッチドッグを用いて高分解能タイマを実現
+ */
+
+/*
+ *  タイマの起動処理
+ */
+void
+target_hrt_initialize(intptr_t exinf)
+{
+	/*
+	 *  タイマとウォッチドッグを停止する．
+	 */
+	sil_wrw_mem(MPCORE_TMR_CTRL, MPCORE_TMR_CTRL_DISABLE);
+	sil_wrw_mem(MPCORE_WDG_CTRL, MPCORE_WDG_CTRL_DISABLE);
+
+	/*
+	 *  ウォッチドッグをタイマモードに設定する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_DIS, 0x12345678);
+	sil_wrw_mem(MPCORE_WDG_DIS, 0x87654321);
+	sil_wrw_mem(MPCORE_WDG_CTRL, MPCORE_WDG_CTRL_DISABLE);
+
+	/*
+	 *  ウォッチドッグのリロード値を設定し，動作を開始する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_LR, MPCORE_WDG_LR_VALUE);
+	sil_wrw_mem(MPCORE_WDG_CTRL,
+				MPCORE_WDG_CTRL_ENABLE | MPCORE_WDG_CTRL_AUTORELOAD
+					| (MPCORE_WDG_PS_VALUE << MPCORE_WDG_CTRL_PS_SHIFT));
+
+	/*
+	 *  タイマのカウント値を0（カウントダウンして停止した状態）に設定し，
+	 *  動作を開始する．
+	 */
+	sil_wrw_mem(MPCORE_TMR_CNT, 0U);
+	sil_wrw_mem(MPCORE_TMR_CTRL,
+				MPCORE_TMR_CTRL_ENABLE | MPCORE_TMR_CTRL_ENAINT
+					| (MPCORE_TMR_PS_VALUE << MPCORE_TMR_CTRL_PS_SHIFT));
+
+	/*
+	 *  タイマ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_TMR_ISR, MPCORE_TMR_ISR_EVENTFLAG);
+	MPCORE_TMR_CLEAR_INT();
+}
+
+/*
+ *  タイマの停止処理
+ */
+void
+target_hrt_terminate(intptr_t exinf)
+{
+	/*
+	 *  タイマとウォッチドッグを停止する．
+	 */
+	sil_wrw_mem(MPCORE_TMR_CTRL, MPCORE_TMR_CTRL_DISABLE);
+	sil_wrw_mem(MPCORE_WDG_CTRL, MPCORE_WDG_CTRL_DISABLE);
+
+	/*
+	 *  タイマ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_TMR_ISR, MPCORE_TMR_ISR_EVENTFLAG);
+	MPCORE_TMR_CLEAR_INT();
+}
+
+/*
+ *  タイマ割込みハンドラ
+ */
+void
+target_hrt_handler(void)
+{
+	/*
+	 *  タイマ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_TMR_ISR, MPCORE_TMR_ISR_EVENTFLAG);
+	MPCORE_TMR_CLEAR_INT();
+
+	/*
+	 *  高分解能タイマ割込みを処理する．
+	 */
+	signal_time();
+}
+
+#endif /* USE_MPCORE_TMRWDG_HRT */
+
+#ifdef USE_MPCORE_GTC_HRT
+/*
+ *		グローバルタイマを用いて高分解能タイマを実現
+ */
+
+/*
+ *  タイマの起動処理
+ */
+void
+target_hrt_initialize(intptr_t exinf)
+{
+	/*
+	 *  タイマをディスエーブルする．
+	 */
+	sil_wrw_mem(MPCORE_GTC_CTRL, MPCORE_GTC_CTRL_DISABLE);
+
+	/*
+	 *  カウンタを0に初期化する（セキュアモードでないと効果がない）．
+	 */
+	sil_wrw_mem(MPCORE_GTC_COUNT_L, 0U);
+	sil_wrw_mem(MPCORE_GTC_COUNT_U, 0U);
+
+	/*
+	 *  タイマの動作を開始する（コンパレータと割込みはディスエーブル）．
+	 */
+	sil_wrw_mem(MPCORE_GTC_CTRL,
+				MPCORE_GTC_CTRL_ENABLE
+					| (MPCORE_GTC_PS_VALUE << MPCORE_GTC_CTRL_PS_SHIFT));
+
+	/*
+	 *  タイマ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_GTC_ISR, MPCORE_GTC_ISR_EVENTFLAG);
+}
+
+/*
+ *  タイマの停止処理
+ */
+void
+target_hrt_terminate(intptr_t exinf)
+{
+	/*
+	 *  タイマを停止する．
+	 */
+	sil_wrw_mem(MPCORE_GTC_CTRL, MPCORE_GTC_CTRL_DISABLE);
+
+	/*
+	 *  タイマ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_GTC_ISR, MPCORE_GTC_ISR_EVENTFLAG);
+}
+
+/*
+ *  タイマ割込みハンドラ
+ */
+void
+target_hrt_handler(void)
+{
+	/*
+	 *  タイマ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_GTC_ISR, MPCORE_GTC_ISR_EVENTFLAG);
+
+	/*
+	 *  高分解能タイマ割込みを処理する．
+	 */
+	signal_time();
+}
+
+#endif /* USE_MPCORE_GTC_HRT */
+
+#ifdef USE_MPCORE_WDG_OVRTIMER
+/*
+ *		ウォッチドッグタイマを用いてオーバランタイマを実現
+ */
+#ifdef TOPPERS_SUPPORT_OVRHDR
+
+#include "overrun.h"
+
+/*
+ *  オーバランタイマの初期化処理
+ */
+void
+target_ovrtimer_initialize(intptr_t exinf)
+{
+	/*
+	 *  ウォッチドッグを停止する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_CTRL, MPCORE_WDG_CTRL_DISABLE);
+
+	/*
+	 *  ウォッチドッグをタイマモードに設定する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_DIS, 0x12345678);
+	sil_wrw_mem(MPCORE_WDG_DIS, 0x87654321);
+
+	/*
+	 *  ウォッチドッグタイマを停止した状態で設定する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_CTRL,
+				MPCORE_WDG_CTRL_ENAINT
+					| (MPCORE_WDG_PS_VALUE << MPCORE_WDG_CTRL_PS_SHIFT));
+
+	/*
+	 *  ウォッチドッグ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_WDG_ISR, MPCORE_WDG_ISR_EVENTFLAG);
+}
+
+/*
+ *  オーバランタイマの終了処理
+ */
+void
+target_ovrtimer_terminate(intptr_t exinf)
+{
+	/*
+	 *  ウォッチドッグを停止する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_CTRL, MPCORE_WDG_CTRL_DISABLE);
+
+	/*
+	 *  ウォッチドッグ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_WDG_ISR, MPCORE_WDG_ISR_EVENTFLAG);
+}
+
+/*
+ *  オーバランタイマ割込みハンドラ
+ */
+void
+target_ovrtimer_handler(void)
+{
+	/*
+	 *  ウォッチドッグ割込み要求をクリアする．
+	 */
+	sil_wrw_mem(MPCORE_WDG_ISR, MPCORE_WDG_ISR_EVENTFLAG);
+
+	/*
+	 *  オーバランハンドラの起動処理をする．
+	 */
+	call_ovrhdr();
+}
+
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+#endif /* USE_MPCORE_WDG_OVRTIMER */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.cfg	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.cfg	(revision 429)
@@ -0,0 +1,33 @@
+/*
+ *		タイマドライバのコンフィギュレーションファイル（MPCore内蔵タイマ用）
+ *
+ *  $Id$
+ */
+
+/*
+ *  高分解能タイマドライバ
+ */
+#if defined(USE_MPCORE_TMRWDG_HRT) || defined(USE_MPCORE_GTC_HRT)
+
+ATT_INI({ TA_NULL, 0, _kernel_target_hrt_initialize });
+ATT_TER({ TA_NULL, 0, _kernel_target_hrt_terminate });
+
+CFG_INT(INTNO_TIMER, { TA_ENAINT|INTATR_TIMER, INTPRI_TIMER });
+DEF_INH(INHNO_TIMER, { TA_NULL, _kernel_target_hrt_handler });
+
+#endif /* defined(USE_MPCORE_TMRWDG_HRT) || defined(USE_MPCORE_GTC_HRT) */
+
+/*
+ *  オーバランタイマドライバ
+ */
+#ifdef USE_MPCORE_WDG_OVRTIMER
+#ifdef TOPPERS_SUPPORT_OVRHDR
+
+ATT_INI({ TA_NULL, 0, _kernel_target_ovrtimer_initialize });
+ATT_TER({ TA_NULL, 0, _kernel_target_ovrtimer_terminate });
+
+CFG_INT(INTNO_OVRTIMER, { TA_ENAINT|INTATR_OVRTIMER, INTPRI_OVRTIMER });
+DEF_INH(INHNO_OVRTIMER, { TA_NULL, _kernel_target_ovrtimer_handler });
+
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+#endif /* USE_MPCORE_WDG_OVRTIMER */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/mpcore_timer.h	(revision 429)
@@ -0,0 +1,422 @@
+/*
+ *  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-2019 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$
+ */
+
+/*
+ *		タイマドライバ（MPCore内蔵タイマ用）
+ *
+ *  MPCoreは，プロセッサ毎にプライベートタイマとウォッチドッグを持つ．
+ *  ウォッチドッグは，タイマとして使用することができる．また，各プロセッ
+ *  サからアクセスできるグローバルタイマを持つ．このモジュールは，対応
+ *  するシンボルをマクロ定義することにより，以下の機能を提供する．
+ *
+ *  USE_MPCORE_TMRWDG_HRT：
+ *		プライベートタイマとウォッチドッグを用いて，高分解能タイマを実
+ *		現する．具体的には，ウォッチドッグをタイマモードに設定して現在
+ *		時刻の管理のために用い，プライベートタイマを相対時間割込みの発
+ *		生のために用いる．
+ *
+ *  USE_MPCORE_GTC_HRT：
+ *		グローバルタイマを用いて，高分解能タイマを実現する．グローバル
+ *		タイマは，Cortex-A9 MPCoreのr2p0以降の新しい仕様のものを想定し
+ *		ている．
+ *
+ *  USE_MPCORE_WDG_OVRTIMER：
+ *		ウォッチドッグを用いて，オーバランタイマを実現する．
+ */
+
+#ifndef TOPPERS_MPCORE_TIMER_H
+#define TOPPERS_MPCORE_TIMER_H
+
+#include "kernel/kernel_impl.h"
+#include <sil.h>
+#include "mpcore.h"
+
+#ifdef USE_MPCORE_TMRWDG_HRT
+/*
+ *		プライベートタイマとウォッチドッグを用いて高分解能タイマを実現
+ */
+
+/*
+ *  タイマ割込みハンドラ登録のための定数
+ */
+#define INHNO_TIMER		MPCORE_IRQNO_TMR	/* 割込みハンドラ番号 */
+#define INTNO_TIMER		MPCORE_IRQNO_TMR	/* 割込み番号 */
+#define INTPRI_TIMER	(TMAX_INTPRI - 1)	/* 割込み優先度 */
+#define INTATR_TIMER	TA_NULL				/* 割込み属性 */
+
+/*
+ *  タイマの設定値のデフォルト値の定義
+ */
+#ifndef MPCORE_WDG_LR_VALUE
+#define MPCORE_WDG_LR_VALUE		0xffffffffU	/* ウォッチドッグのリロード値 */
+#endif /* MPCORE_WDG_LR_VALUE */
+
+#ifndef MPCORE_WDG_FREQ
+#define MPCORE_WDG_FREQ			1		/* ウォッチドッグの駆動周波数 */
+#endif /* MPCORE_WDG_FREQ */
+
+#ifndef MPCORE_TMR_FREQ
+#define MPCORE_TMR_FREQ			1		/* プライベートタイマの駆動周波数 */
+#endif /* MPCORE_TMR_FREQ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  高分解能タイマの起動処理
+ */
+extern void	target_hrt_initialize(intptr_t exinf);
+
+/*
+ *  高分解能タイマの停止処理
+ */
+extern void	target_hrt_terminate(intptr_t exinf);
+
+/*
+ *  高分解能タイマの現在のカウント値の読出し
+ */
+Inline HRTCNT
+target_hrt_get_current(void)
+{
+	/*
+	 *  ウォッチドッグのカウント値を読み出し，ダウンカウンタであるため，
+	 *  MPCORE_WDG_LR_VALUEから引き，MPCORE_WDG_FREQで除した値を返す．
+	 */
+	return((HRTCNT)((MPCORE_WDG_LR_VALUE - sil_rew_mem(MPCORE_WDG_CNT))
+														/ MPCORE_WDG_FREQ));
+}
+
+/*
+ *  高分解能タイマへの割込みタイミングの設定
+ *
+ *  高分解能タイマを，hrtcntで指定した値カウントアップしたら割込みを発
+ *  生させるように設定する．
+ */
+Inline void
+target_hrt_set_event(HRTCNT hrtcnt)
+{
+	/*
+	 *  タイマのカウント値を(hrtcnt * MPCORE_TMR_FREQ)に設定する．
+	 */
+	sil_wrw_mem(MPCORE_TMR_CNT, hrtcnt * MPCORE_TMR_FREQ);
+}
+
+/*
+ *  高分解能タイマ割込みの要求
+ */
+Inline void
+target_hrt_raise_event(void)
+{
+	raise_int(INTNO_TIMER);
+}
+
+/*
+ *  割込みタイミングに指定する最大値
+ */
+#if !defined(TCYC_HRTCNT) || (TCYC_HRTCNT > 4002000002U)
+#define HRTCNT_BOUND		4000000002U
+#else
+#define HRTCNT_BOUND		(TCYC_HRTCNT - 2000000U)
+#endif
+
+/*
+ *  高分解能タイマ割込みハンドラ
+ */
+extern void	target_hrt_handler(void);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* USE_MPCORE_TMRWDG_HRT */
+
+#ifdef USE_MPCORE_GTC_HRT
+/*
+ *		グローバルタイマを用いて高分解能タイマを実現
+ */
+
+/*
+ *  タイマ割込みハンドラ登録のための定数
+ */
+#define INHNO_TIMER		MPCORE_IRQNO_GTC	/* 割込みハンドラ番号 */
+#define INTNO_TIMER		MPCORE_IRQNO_GTC	/* 割込み番号 */
+#define INTPRI_TIMER	(TMAX_INTPRI - 1)	/* 割込み優先度 */
+#define INTATR_TIMER	TA_NULL				/* 割込み属性 */
+
+/*
+ *  タイマの設定値のデフォルト値の定義
+ */
+#ifndef MPCORE_GTC_FREQ
+#define MPCORE_GTC_FREQ			1		/* グローバルタイマの駆動周波数 */
+#endif /* MPCORE_GTC_FREQ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  グローバルタイマの現在のカウント値（64bit）の読出し
+ */
+Inline uint64_t
+mpcore_gtc_get_count(void)
+{
+	uint32_t	count_l, count_u, prev_count_u;
+
+	count_u = sil_rew_mem(MPCORE_GTC_COUNT_U);
+	do {
+		prev_count_u = count_u;
+		count_l = sil_rew_mem(MPCORE_GTC_COUNT_L);
+		count_u = sil_rew_mem(MPCORE_GTC_COUNT_U);
+	} while (count_u != prev_count_u);
+	return((((uint64_t) count_u) << 32) | ((uint64_t) count_l));
+}
+
+/*
+ *  グローバルタイマのコンパレータ値（64bit）の設定
+ */
+Inline void
+mpcore_gtc_set_cvr(uint64_t cvr)
+{
+
+	uint32_t	cvr_l, cvr_u;
+	uint32_t	reg;
+
+	cvr_l = ((uint32_t) cvr);
+	cvr_u = ((uint32_t)(cvr >> 32));
+
+	/* コンパレータをディスエーブル */
+	reg = sil_rew_mem(MPCORE_GTC_CTRL);
+	sil_wrw_mem(MPCORE_GTC_CTRL, reg & ~(MPCORE_GTC_CTRL_ENACOMP));
+
+	/* コンパレータ値を設定 */
+	sil_wrw_mem(MPCORE_GTC_CVR_L, cvr_l);
+	sil_wrw_mem(MPCORE_GTC_CVR_U, cvr_u);
+
+#ifdef ARM_CA9_GTC_ERRATA
+	/* ARM Cortex-A9 Errata 740657への対策 */
+	sil_wrw_mem(MPCORE_GTC_ISR, MPCORE_GTC_ISR_EVENTFLAG);
+	clear_int(MPCORE_IRQNO_GTC);
+#endif /* ARM_CA9_GTC_ERRATA */
+
+	/* コンパレータと割込みをイネーブル */
+	sil_wrw_mem(MPCORE_GTC_CTRL,
+					reg | (MPCORE_GTC_CTRL_ENACOMP|MPCORE_GTC_CTRL_ENAINT));
+}
+
+/*
+ *  高分解能タイマの起動処理
+ */
+extern void	target_hrt_initialize(intptr_t exinf);
+
+/*
+ *  高分解能タイマの停止処理
+ */
+extern void	target_hrt_terminate(intptr_t exinf);
+
+/*
+ *  高分解能タイマの現在のカウント値の読出し
+ */
+Inline HRTCNT
+target_hrt_get_current(void)
+{
+	/*
+	 *  グローバルタイマのカウント値（64ビット）を読み出し，
+	 *  MPCORE_GTC_FREQで除し，32ビットに切り詰めた値を返す．
+	 */
+	return((HRTCNT)(mpcore_gtc_get_count() / MPCORE_GTC_FREQ));
+}
+
+/*
+ *  高分解能タイマへの割込みタイミングの設定
+ *
+ *  高分解能タイマを，hrtcntで指定した値カウントアップしたら割込みを発
+ *  生させるように設定する．
+ */
+Inline void
+target_hrt_set_event(HRTCNT hrtcnt)
+{
+	/*
+	 *  コンパレータ値を，(現在のカウント値＋hrtcnt×MPCORE_GTC_FREQ)
+	 *  に設定し，コンパレータと割込みをイネーブルする．
+	 */
+	mpcore_gtc_set_cvr(mpcore_gtc_get_count()
+							+ (((uint64_t) hrtcnt) * MPCORE_GTC_FREQ));
+}
+
+/*
+ *  高分解能タイマへの割込みタイミングのクリア
+ */
+#ifdef USE_64BIT_HRTCNT
+
+Inline void
+target_hrt_clear_event(void)
+{
+	sil_wrw_mem(MPCORE_GTC_CTRL,
+					sil_rew_mem(MPCORE_GTC_CTRL) & ~(MPCORE_GTC_CTRL_ENACOMP));
+#ifdef ARM_CA9_GTC_ERRATA
+	/* ARM Cortex-A9 Errata 740657への対策 */
+	sil_wrw_mem(MPCORE_GTC_ISR, MPCORE_GTC_ISR_EVENTFLAG);
+	clear_int(MPCORE_IRQNO_GTC);
+#endif /* ARM_CA9_GTC_ERRATA */
+}
+
+#endif /* USE_64BIT_HRTCNT */
+
+/*
+ *  高分解能タイマ割込みの要求
+ */
+Inline void
+target_hrt_raise_event(void)
+{
+	raise_int(INTNO_TIMER);
+}
+
+/*
+ *  割込みタイミングに指定する最大値
+ */
+#ifndef USE_64BIT_HRTCNT
+
+#if !defined(TCYC_HRTCNT) || (TCYC_HRTCNT > 4002000002U)
+#define HRTCNT_BOUND		4000000002U
+#else
+#define HRTCNT_BOUND		(TCYC_HRTCNT - 2000000U)
+#endif
+
+#endif /* USE_64BIT_HRTCNT */
+
+/*
+ *  高分解能タイマ割込みハンドラ
+ */
+extern void	target_hrt_handler(void);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* USE_MPCORE_GTC_HRT */
+
+#ifdef USE_MPCORE_WDG_OVRTIMER
+/*
+ *		ウォッチドッグを用いてオーバランタイマを実現
+ */
+#ifdef TOPPERS_SUPPORT_OVRHDR
+
+/*
+ *  オーバランタイマ割込みハンドラ登録のための定数
+ */
+#define INHNO_OVRTIMER		MPCORE_IRQNO_WDG	/* 割込みハンドラ番号 */
+#define INTNO_OVRTIMER		MPCORE_IRQNO_WDG	/* 割込み番号 */
+#define INTPRI_OVRTIMER		TMAX_INTPRI			/* 割込み優先度 */
+#define INTATR_OVRTIMER		TA_NULL				/* 割込み属性 */
+
+/*
+ *  タイマの設定値のデフォルト値の定義
+ */
+#ifndef MPCORE_WDG_FREQ
+#define MPCORE_WDG_FREQ			1		/* ウォッチドッグの駆動周波数 */
+#endif /* MPCORE_WDG_FREQ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  オーバランタイマの初期化処理
+ */
+extern void target_ovrtimer_initialize(intptr_t exinf);
+
+/*
+ *  オーバランタイマの終了処理
+ */
+extern void target_ovrtimer_terminate(intptr_t exinf);
+
+/*
+ *  オーバランタイマの動作開始
+ */
+Inline void
+target_ovrtimer_start(PRCTIM ovrtim)
+{
+	/*
+	 *  ウォッチドッグのカウント値を(ovrtim * MPCORE_WDG_FREQ)に設定する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_CNT, ovrtim * MPCORE_WDG_FREQ);
+
+	/*
+	 *  ウォッチドッグの動作を開始する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_CTRL,
+					sil_rew_mem(MPCORE_WDG_CTRL) | MPCORE_WDG_CTRL_ENABLE);
+}
+
+/*
+ *  オーバランタイマの停止
+ */
+Inline PRCTIM
+target_ovrtimer_stop(void)
+{
+	PRCTIM	ovrtim;
+
+	/*
+	 *  ウォッチドッグの現在値の読出し
+	 */
+	ovrtim = (PRCTIM)(sil_rew_mem(MPCORE_WDG_CNT) / MPCORE_WDG_FREQ);
+
+	/*
+	 *  ウォッチドッグを停止する．
+	 */
+	sil_wrw_mem(MPCORE_WDG_CTRL,
+				sil_rew_mem(MPCORE_WDG_CTRL) & ~(MPCORE_WDG_CTRL_ENABLE));
+
+	return(ovrtim);
+}
+
+/*
+ *  オーバランタイマの現在値の読出し
+ */
+Inline PRCTIM
+target_ovrtimer_get_current(void)
+{
+	/*
+	 *  ウォッチドッグのカウント値を読み出し，MPCORE_WDG_FREQで除した
+	 *  値を返す．
+	 */
+	return((PRCTIM)(sil_rew_mem(MPCORE_WDG_CNT) / MPCORE_WDG_FREQ));
+}
+
+/*
+ *  オーバランタイマ割込みハンドラ
+ */
+extern void target_ovrtimer_handler(void);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+#endif /* USE_MPCORE_WDG_OVRTIMER */
+#endif /* TOPPERS_MPCORE_TIMER_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/pl310.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/pl310.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/pl310.c	(revision 429)
@@ -0,0 +1,166 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2013-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$
+ */
+
+/*
+ *		L2キャッシュコントローラ（PL310）の操作ライブラリ
+ */
+
+#include "kernel_impl.h"
+#include "pl310.h"
+
+Inline uint32_t
+get_way_mask(void)
+{
+	uint32_t	aux;
+	
+	aux = sil_rew_mem(PL310_AUX_CTRL);
+	if ((aux & PL310_AUX_CTRL_ASSOCIATIVITY) != 0U) {
+		/* 16ウェイ */
+		return(0x0000ffffU);
+	}
+	else {
+		/* 8ウェイ */
+		return(0x000000ffU);
+	}
+}
+
+Inline void
+pl310_cache_sync(void)
+{
+	sil_wrw_mem(PL310_CACHE_SYNC, 0);
+}
+
+Inline void
+pl310_inv_all(void)
+{
+	uint32_t	way_mask = get_way_mask();
+
+	/* すべてのウェイを無効化する */
+	sil_wrw_mem(PL310_INV_WAY, 0xffff);
+	while ((sil_rew_mem(PL310_INV_WAY) & way_mask) != 0U) ;
+	pl310_cache_sync();
+}
+
+Inline void
+pl310_debug_set(uint32_t val)
+{
+	sil_wrw_mem(PL310_DEBUG_CTRL, val);
+}
+
+/*
+ *  PL310の初期化
+ */
+void
+pl310_initialize(uint32_t aux_val, uint32_t aux_mask)
+{
+	uint32_t	aux;
+	uint32_t	prefetch;
+	uint32_t	prefetch_val = 0U;
+
+	/* L2キャッシュがディスエーブルの場合のみ初期化を行う */
+	if ((sil_rew_mem(PL310_CTRL) & 0x01) == 0U) {
+		/* 共有属性を無視する */
+		aux_val |= PL310_AUX_CTRL_IGNORE_SHARE;
+
+		/* 命令プリフェッチをイネーブル */
+		aux_val |= PL310_AUX_CTRL_INST_PREFETCH;
+		prefetch_val |= PL310_AUX_CTRL_INST_PREFETCH;
+
+		/* データプリフェッチをイネーブル */
+		aux_val |= PL310_AUX_CTRL_DATA_PREFETCH;
+		prefetch_val |= PL310_AUX_CTRL_DATA_PREFETCH;
+
+		/* ダブルラインフィルをイネーブル */
+		prefetch_val |= PL310_PREFETCH_CTRL_DLINEFILL;
+		prefetch_val |= PL310_PREFETCH_CTRL_INCR_DLINEFILL;
+                
+		/* 補助制御レジスタを設定 */
+		aux = sil_rew_mem(PL310_AUX_CTRL);
+		sil_wrw_mem(PL310_AUX_CTRL, ((aux & aux_mask) | aux_val));
+
+		/* プリフェッチ制御レジスタを設定 */
+		prefetch = sil_rew_mem(PL310_PREFETCH_CTRL);
+		sil_wrw_mem(PL310_PREFETCH_CTRL, (prefetch | prefetch_val));
+
+		/* L2キャッシュの全体の無効化 */
+		pl310_inv_all();
+        
+		/* クロックゲーティングとスタンバイモードをイネーブル */
+		sil_wrw_mem(PL310_POWER_CTRL, 0x03);
+        
+		/* L2キャッシュのイネーブル */
+		sil_wrw_mem(PL310_CTRL, 0x01);
+	}    
+}
+
+/*
+ *  L2キャッシュのディスエーブル
+ */
+void
+pl310_disable(void)
+{
+	pl310_clean_and_invalidate_all();
+	sil_wrw_mem(PL310_CTRL, 0x00);
+}
+
+/*
+ *  L2キャッシュ全体の無効化（書き戻さない）
+ */
+void
+pl310_invalidate_all(void)
+{
+	pl310_debug_set(0x03);
+	pl310_inv_all();
+	pl310_debug_set(0x00);
+}
+
+/*
+ *  L2キャッシュ全体のクリーンと無効化
+ */
+void
+pl310_clean_and_invalidate_all(void)
+{
+	uint32_t	way_mask = get_way_mask();
+
+	pl310_debug_set(0x03);
+	sil_wrw_mem(PL310_CLEAN_INV_WAY, way_mask);
+	while ((sil_rew_mem(PL310_CLEAN_INV_WAY) & way_mask) != 0U) ;
+	pl310_cache_sync();
+	pl310_debug_set(0x00);
+}
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/pl310.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/pl310.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/pl310.h	(revision 429)
@@ -0,0 +1,131 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2013-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$
+ */
+
+/*
+ *		L2キャッシュコントローラ（PL310）に関する定義
+ */
+
+#ifndef TOPPERS_PL310_H
+#define TOPPERS_PL310_H
+
+/*
+ *  型キャストを行うマクロの定義
+ */
+#ifndef CAST
+#define CAST(type, val)		((type)(val))
+#endif /* CAST */
+
+/*
+ *  PL310のレジスタの番地の定義
+ */
+#define PL310_CACHE_ID			CAST(uint32_t *, PL310_BASE + 0x000)
+#define PL310_CACHE_TYPE		CAST(uint32_t *, PL310_BASE + 0x004)
+#define PL310_CTRL				CAST(uint32_t *, PL310_BASE + 0x100)
+#define PL310_AUX_CTRL			CAST(uint32_t *, PL310_BASE + 0x104)
+#define PL310_TAG_RAM_CTRL		CAST(uint32_t *, PL310_BASE + 0x108)
+#define PL310_DATA_RAM_CTRL		CAST(uint32_t *, PL310_BASE + 0x10c)
+#define PL310_EVENT_CNT_CTRL	CAST(uint32_t *, PL310_BASE + 0x200)
+#define PL310_EVENT_CNT1_CFG	CAST(uint32_t *, PL310_BASE + 0x204)
+#define PL310_EVENT_CNT0_CFG	CAST(uint32_t *, PL310_BASE + 0x208)
+#define PL310_EVENT_CNT1		CAST(uint32_t *, PL310_BASE + 0x20c)
+#define PL310_EVENT_CNT0		CAST(uint32_t *, PL310_BASE + 0x210)
+#define PL310_INT_MASK			CAST(uint32_t *, PL310_BASE + 0x214)
+#define PL310_INT_MASK_STAT		CAST(uint32_t *, PL310_BASE + 0x218)
+#define PL310_INT_RAW_STAT		CAST(uint32_t *, PL310_BASE + 0x21c)
+#define PL310_INT_CLEAR			CAST(uint32_t *, PL310_BASE + 0x220)
+#define PL310_CACHE_SYNC		CAST(uint32_t *, PL310_BASE + 0x730)
+#define PL310_INV_PA			CAST(uint32_t *, PL310_BASE + 0x770)
+#define PL310_INV_WAY			CAST(uint32_t *, PL310_BASE + 0x77c)
+#define PL310_CLEAN_PA			CAST(uint32_t *, PL310_BASE + 0x7b0)
+#define PL310_CLEAN_IDX			CAST(uint32_t *, PL310_BASE + 0x7b8)
+#define PL310_CLEAN_WAY			CAST(uint32_t *, PL310_BASE + 0x7bc)
+#define PL310_CLEAN_INV_PA		CAST(uint32_t *, PL310_BASE + 0x7f0)
+#define PL310_CLEAN_INV_IDX		CAST(uint32_t *, PL310_BASE + 0x7f8)
+#define PL310_CLEAN_INV_WAY		CAST(uint32_t *, PL310_BASE + 0x7Fc)
+#define PL310_D_LOCKDOWN0		CAST(uint32_t *, PL310_BASE + 0x900)
+#define PL310_I_LOCKDOWN0		CAST(uint32_t *, PL310_BASE + 0x904)
+#define PL310_DEBUG_CTRL		CAST(uint32_t *, PL310_BASE + 0xf40)
+#define PL310_PREFETCH_CTRL		CAST(uint32_t *, PL310_BASE + 0xf60)
+#define PL310_POWER_CTRL		CAST(uint32_t *, PL310_BASE + 0xf80)
+
+/*
+ *  キャッシュ補助制御レジスタ（PL310_AUX_CTRL）の設定値
+ */
+#define PL310_AUX_CTRL_ASSOCIATIVITY		0x00010000
+#define PL310_AUX_CTRL_WAY_SIZE_SHIFT		17
+#define PL310_AUX_CTRL_WAY_SIZE_MASK		0x000e0000
+#define PL310_AUX_CTRL_IGNORE_SHARE			0x00400000
+#define PL310_AUX_CTRL_NS_LOCKDOWN			0x04000000
+#define PL310_AUX_CTRL_NS_INT_CTRL			0x08000000
+#define PL310_AUX_CTRL_DATA_PREFETCH		0x10000000
+#define PL310_AUX_CTRL_INST_PREFETCH		0x20000000
+#define PL310_AUX_CTRL_EARLY_BRESP			0x40000000
+
+/*
+ *  プリフェッチ制御レジスタ（PL310_PREFETCH_CTRL）の設定値
+ */
+#define PL310_PREFETCH_CTRL_INCR_DLINEFILL	0x00800000
+#define PL310_PREFETCH_CTRL_DATA_PREFETCH	0x10000000
+#define PL310_PREFETCH_CTRL_INST_PREFETCH	0x20000000
+#define PL310_PREFETCH_CTRL_DLINEFILL		0x40000000
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  L2キャッシュの初期化とイネーブル
+ */
+extern void pl310_initialize(uint32_t aux_val, uint32_t aux_mask);
+
+/*
+ *  L2キャッシュのディスエーブル
+ */
+extern void pl310_disable(void);
+
+/*
+ *  L2キャッシュ全体の無効化（書き戻さない）
+ */
+extern void pl310_invalidate_all(void);
+
+/*
+ *  L2キャッシュ全体のクリーンと無効化
+ */
+extern void pl310_clean_and_invalidate_all(void);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_PL310_H */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.c	(revision 429)
@@ -1,8 +1,7 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
- * 
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -95,33 +94,41 @@
 	CELLCB	*p_cellcb = GET_CELLCB(idx);
 
-	/*
-	 *  UARTをディスエーブル
-	 */
-	sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U);
-
-	/*
-	 *  エラーフラグをクリア
-	 */
-	sil_wrw_mem(UART_ECR(ATTR_baseAddress), 0U);
-
-	/*
-	 *  FIFOを空にする
-	 */
-	while (uart_pl011_getready(p_cellcb)) {
-		(void) uart_pl011_getchar(p_cellcb);
-	}
-
-	/*
-	 *  ボーレートと通信規格を設定
-	 */
-	sil_wrw_mem(UART_IBRD(ATTR_baseAddress), ATTR_ibrd);
-	sil_wrw_mem(UART_FBRD(ATTR_baseAddress), ATTR_fbrd);
-	sil_wrw_mem(UART_LCR_H(ATTR_baseAddress), ATTR_lcr_h);
-		
-	/*
-	 *  UARTをイネーブル
-	 */
-	sil_wrw_mem(UART_CR(ATTR_baseAddress),
+	if (!VAR_opened) {
+		/*
+		 *  既にオープンしている場合は、二重にオープンしない．
+		 */
+
+		/*
+		 *  UARTをディスエーブル
+		 */
+		sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U);
+
+		/*
+		 *  エラーフラグをクリア
+		 */
+		sil_wrw_mem(UART_ECR(ATTR_baseAddress), 0U);
+
+		/*
+		 *  FIFOを空にする
+		 */
+		while (uart_pl011_getready(p_cellcb)) {
+			(void) uart_pl011_getchar(p_cellcb);
+		}
+
+		/*
+		 *  ボーレートと通信規格を設定
+		 */
+		sil_wrw_mem(UART_IBRD(ATTR_baseAddress), ATTR_ibrd);
+		sil_wrw_mem(UART_FBRD(ATTR_baseAddress), ATTR_fbrd);
+		sil_wrw_mem(UART_LCR_H(ATTR_baseAddress), ATTR_lcr_h);
+
+		/*
+		 *  UARTをイネーブル
+		 */
+		sil_wrw_mem(UART_CR(ATTR_baseAddress),
 						UART_CR_UARTEN|UART_CR_TXE|UART_CR_RXE);
+
+		VAR_opened = true;
+	}
 }
 
@@ -134,8 +141,12 @@
 	CELLCB	*p_cellcb = GET_CELLCB(idx);
 
-	/*
-	 *  UARTをディスエーブル
-	 */
-	sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U);
+	if (VAR_opened) {
+		/*
+		 *  UARTをディスエーブル
+		 */
+		sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U);
+
+		VAR_opened = false;
+	}
 }
 
@@ -232,2 +243,11 @@
 	}
 }
+
+/*
+ *  SIOドライバの終了処理
+ */
+void
+eTerminate_main(CELLIDX idx)
+{
+	eSIOPort_close(idx);
+}
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.cdl	(revision 429)
@@ -1,10 +1,9 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2015 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -58,4 +57,5 @@
 
 	entry	siHandlerBody	eiISR;
+	entry	sRoutineBody	eTerminate;
 
 	attr {
@@ -65,3 +65,6 @@
 		uint8_t		lcr_h;			/* ライン制御レジスタの設定値 */
 	};
+	var {
+		bool_t		opened = false;	/* オープン済み */
+	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/uart_pl011.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/uart_pl011.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/uart_pl011.h	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/Makefile.chip
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/Makefile.chip	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/Makefile.chip	(revision 429)
@@ -2,5 +2,5 @@
 #		Makefile のチップ依存部（RZ/A1用）
 #
-#  $Id$
+#  $Id: Makefile.chip 720 2016-04-01 22:16:17Z ertl-hiro $
 # 
 
@@ -22,7 +22,12 @@
 #
 KERNEL_DIRS := $(KERNEL_DIRS) $(CHIPDIR)
+KERNEL_COBJS := $(KERNEL_COBJS) chip_kernel_impl.o mpcore_kernel_impl.o \
+									gic_kernel_impl.o pl310.o chip_timer.o
 KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) gic_support.o
-KERNEL_COBJS := $(KERNEL_COBJS) chip_kernel_impl.o gic_kernel_impl.o \
-															chip_timer.o
+
+#
+#  システムサービスに関する定義
+#
+SYSSVC_DIRS := $(SYSSVC_DIRS) $(CHIPDIR)
 
 #
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.h	(revision 429)
@@ -3,8 +3,8 @@
  *      Toyohashi Open Platform for Embedded Real-Time Systems/
  *      Advanced Standard Profile Kernel
- *
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ * 
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -29,5 +29,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -35,5 +35,5 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
  *  $Id$
  */
@@ -42,7 +42,7 @@
  *		kernel.hのターゲット依存部（RZ/A1用）
  *
- *  このヘッダファイルは，kernel.hからインクルードされる．他のファイル
- *  から直接インクルードすることはない．このファイルをインクルードする
- *  前に，t_stddef.hがインクルードされるので，それに依存してもよい．
+ *  このヘッダファイルは，target_kernel.h（または，そこからインクルー
+ *  ドされるファイル）のみからインクルードされる．他のファイルから直接
+ *  インクルードしてはならない．
  */
 
@@ -66,32 +66,13 @@
  *  サポートできる機能の定義
  *
- *  ena_int／dis_intとオーバランハンドラをサポートすることができる．
+ *  ena_int／dis_int／clr_int／ras_int／prb_intとオーバランハンドラを
+ *  サポートすることができる．
  */
 #define TOPPERS_TARGET_SUPPORT_ENA_INT		/* ena_int */
 #define TOPPERS_TARGET_SUPPORT_DIS_INT		/* dis_int */
+#define TOPPERS_TARGET_SUPPORT_CLR_INT		/* clr_int */
+#define TOPPERS_TARGET_SUPPORT_RAS_INT		/* ras_int */
+#define TOPPERS_TARGET_SUPPORT_PRB_INT		/* prb_int */
 #define TOPPERS_TARGET_SUPPORT_OVRHDR
-
-/*
- *  高分解能タイマのタイマ周期
- *
- *  2^32 / 33.33…を丸めた値とする．
- */
-#define TCYC_HRTCNT		128849019U
-
-/*
- *  高分解能タイマのカウント値の進み幅
- */
-#define TSTEP_HRTCNT	1U
-
-/*
- *  オーバランハンドラの残りプロセッサ時間に指定できる最大値
- *
- *  この値をOSタイマへの設定値に変換してタイマに設定した後，タイマの現
- *  在値を読み出してμ秒単位に変換できる値としている．タイマの現在値を
- *  μ秒単位に変換する時に34を加えるため，以下の条件を満たす最大の値と
- *  する．
- *		(TMAX_OVRTIM * 33 + TMAX_OVRTIM / 3 + 1) + 34 < 2^32
- */
-#define TMAX_OVRTIM		128849017U
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel.trb	(revision 429)
@@ -27,6 +27,6 @@
 #  割込み要求ライン属性に関するターゲット依存のエラーチェック
 #
-$cfgData[:CFG_INT].each do |key, params|
-  if $INTNO_IRQ0 <= key && key <= $INTNO_IRQ7
+$cfgData[:CFG_INT].each do |_, params|
+  if $INTNO_IRQ0 <= params[:intno] && params[:intno] <= $INTNO_IRQ7
     # IRQ割込みの場合
     #（TA_EDGEがセットされている場合）
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.c	(revision 429)
@@ -3,10 +3,10 @@
  *      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-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -31,5 +31,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -37,5 +37,5 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
  *  $Id$
  */
@@ -46,5 +46,7 @@
 
 #include "kernel_impl.h"
+#include <sil.h>
 #include "interrupt.h"
+#include "pl310.h"
 
 /*
@@ -55,67 +57,24 @@
 {
 	/*
-	 *  キャッシュをディスエーブル
+	 *  MPCore依存の初期化
 	 */
-	arm_disable_cache();
+	mpcore_initialize();
 
 	/*
-	 *  コア依存の初期化
+	 *  L2キャッシュコントローラ（PL310）の初期化
 	 */
-	core_initialize();
-
-	/*
-	 *  キャッシュをイネーブル
-	 */
-	arm_enable_cache();
-
-	/*
-	 *  GICのディストリビュータの初期化
-	 */
-	gicd_initialize();
-
-	/*
-	 *  GICのCPUインタフェースの初期化
-	 */
-	gicc_initialize();
-
-	/*
-	 *  分岐予測の無効化とイネーブル
-	 */
-	arm_invalidate_bp();
-	arm_enable_bp();
+	pl310_initialize(0x0U, ~0x0U);
 }
 
 /*
- *  チップ依存部の終了処理
+ *  チップ依存の終了処理
  */
 void
 chip_terminate(void)
 {
-	extern void    software_term_hook(void);
-	void (*volatile fp)(void) = software_term_hook;
-
 	/*
-	 *  software_term_hookへのポインタを，一旦volatile指定のあるfpに代
-	 *  入してから使うのは，0との比較が最適化で削除されないようにするた
-	 *  めである．
+	 *  MPCore依存の終了処理
 	 */
-	if (fp != 0) {
-		(*fp)();
-	}
-
-	/*
-	 *  GICのCPUインタフェースの終了処理
-	 */
-	gicc_terminate();
-
-	/*
-	 *  GICのディストリビュータの終了処理
-	 */
-	gicd_terminate();
-
-	/*
-	 *  コア依存の終了処理
-	 */
-	core_terminate();
+	mpcore_terminate();
 }
 
@@ -177,5 +136,5 @@
 	 */
 	gicd_set_priority(intno, INT_IPM(intpri));
-	gicd_set_target(intno, 1U << arm_prc_index());
+	gicd_set_target(intno, 1U << get_my_prcidx());
 
 	/*
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_kernel_impl.h	(revision 429)
@@ -3,10 +3,10 @@
  *      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-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -31,5 +31,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -37,5 +37,5 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
  *  $Id$
  */
@@ -58,8 +58,9 @@
 
 /*
- *  MMUの使用に関する設定
+ *  デフォルトの非タスクコンテキスト用のスタック領域の定義
  */
-#define USE_ARM_MMU
-#define USE_ARM_SSECTION
+#ifndef DEFAULT_ISTKSZ
+#define DEFAULT_ISTKSZ  0x2000U			/* 8KB */
+#endif /* DEFAULT_ISTKSZ */
 
 /*
@@ -70,14 +71,17 @@
 
 /*
- *  GIC依存部の割込み管理機能の初期化は使用しない．
+ *  GIC 390 Errataへの対策を実施
+ */
+#define GIC_PL390_ERRATA
+
+/*
+ *  GIC依存部の割込み管理機能の初期化は使用しない
  */
 #define OMIT_GIC_INITIALIZE_INTERRUPT
 
 /*
- *  GICに関する定義，コアで共通な定義
- *
- *  core_kernel_impl.hは，gic_kernel_impl.hからインクルードされる．
+ *  MPCoreで共通な定義
  */
-#include "gic_kernel_impl.h"
+#include "mpcore_kernel_impl.h"
 
 #ifndef TOPPERS_MACRO_ONLY
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.def	(revision 429)
@@ -6,11 +6,7 @@
 target_hrt_initialize
 target_hrt_terminate
-target_hrt_set_event
-target_hrt_raise_event
 target_hrt_handler
 target_ovrtimer_initialize
 target_ovrtimer_terminate
-target_ovrtimer_stop
-target_ovrtimer_get_current
 target_ovrtimer_handler
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.h	(revision 429)
@@ -15,11 +15,7 @@
 #define target_hrt_initialize		_kernel_target_hrt_initialize
 #define target_hrt_terminate		_kernel_target_hrt_terminate
-#define target_hrt_set_event		_kernel_target_hrt_set_event
-#define target_hrt_raise_event		_kernel_target_hrt_raise_event
 #define target_hrt_handler			_kernel_target_hrt_handler
 #define target_ovrtimer_initialize	_kernel_target_ovrtimer_initialize
 #define target_ovrtimer_terminate	_kernel_target_ovrtimer_terminate
-#define target_ovrtimer_stop		_kernel_target_ovrtimer_stop
-#define target_ovrtimer_get_current	_kernel_target_ovrtimer_get_current
 #define target_ovrtimer_handler		_kernel_target_ovrtimer_handler
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_stddef.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_stddef.h	(revision 429)
@@ -1,43 +1,2 @@
-/*
- *  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
- *  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$
- */
-
 /*
  *		t_stddef.hのチップ依存部（RZ/A1用）
@@ -46,4 +5,6 @@
  *  されるファイル）のみからインクルードされる．他のファイルから直接イ
  *  ンクルードしてはならない．
+ * 
+ *  $Id$
  */
 
@@ -64,4 +25,14 @@
 
 /*
+ *  開発環境で共通な定義
+ */
+#ifndef TOPPERS_MACRO_ONLY
+#include <stdint.h>
+#endif /* TOPPERS_MACRO_ONLY */
+
+#define TOPPERS_STDFLOAT_TYPE1
+#include "tool_stddef.h"
+
+/*
  *  コアで共通な定義
  */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_sym.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_sym.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_sym.def	(revision 429)
@@ -1,4 +1,4 @@
-TARGET_RZA1H,true,bool,defined(TARGET_RZA1H)
-TARGET_RZA1L,true,bool,defined(TARGET_RZA1L)
+TARGET_RZA1H,true,bool,defined(TARGET_RZA1H),false
+TARGET_RZA1L,true,bool,defined(TARGET_RZA1L),false
 TA_NEGEDGE
 TA_POSEDGE
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c	(revision 429)
@@ -4,5 +4,5 @@
  *      Advanced Standard Profile Kernel
  * 
- *  Copyright (C) 2006-2017 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -100,37 +100,4 @@
 
 /*
- *  高分解能タイマへの割込みタイミングの設定
- */
-void
-target_hrt_set_event(HRTCNT hrtcnt)
-{
-	uint32_t	cnt = hrtcnt * 33 + hrtcnt / 3 + 1;
-	uint32_t	current;
-
-	/*
-	 *  現在のカウント値を読み，hrtcnt後に割込みが発生するように設定する．
-	 */
-	current = sil_rew_mem(OSTM_CNT(OSTM0_BASE));
-	sil_wrw_mem(OSTM_CMP(OSTM0_BASE), current + cnt);
-
-	/*
-	 *  上で現在のカウント値を読んで以降に，cnt以上カウントアップしてい
-	 *  た場合には，割込みを発生させる．
-	 */
-	if (sil_rew_mem(OSTM_CNT(OSTM0_BASE)) - current >= cnt) {
-		raise_int(INTNO_OSTM0);
-	}
-}
-
-/*
- *  高分解能タイマ割込みの要求
- */
-void
-target_hrt_raise_event(void)
-{
-	raise_int(INTNO_OSTM0);
-}
-
-/*
  *  タイマ割込みハンドラ
  */
@@ -143,4 +110,5 @@
 	signal_time();
 }
+
 /*
  *  オーバランタイマドライバ
@@ -183,50 +151,4 @@
 
 /*
- *  オーバランタイマの停止
- */
-PRCTIM
-target_ovrtimer_stop(void)
-{
-	uint32_t	cnt;
-
-	/*
-	 *  OSタイマを停止する．
-	 */
-	sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP);
-
-	if (probe_int(INTNO_OSTM1)) {
-		/*
-		 *  割込み要求が発生している場合
-		 */
-		clear_int(INTNO_OSTM1);
-		return(0U);
-	}
-	else {
-		cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE));
-		return((PRCTIM)((cnt + 34) / 5 * 3 / 20));
-	}
-}
-
-/*
- *  オーバランタイマの現在値の読出し
- */
-PRCTIM
-target_ovrtimer_get_current(void)
-{
-	uint32_t	cnt;
-
-	if (probe_int(INTNO_OSTM1)) {
-		/*
-		 *  割込み要求が発生している場合
-		 */
-		return(0U);
-	}
-	else {
-		cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE));
-		return((PRCTIM)((cnt + 34) / 5 * 3 / 20));
-	}
-}
-
-/*
  *  オーバランタイマ割込みハンドラ
  *
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.cfg	(revision 429)
@@ -1,4 +1,4 @@
 /*
- *		タイマドライバのコンフィギュレーションファイル
+ *		タイマドライバのコンフィギュレーションファイル（RZ/A1 OSタイマ用）
  *
  *  $Id$
@@ -10,4 +10,5 @@
 ATT_INI({ TA_NULL, 0, _kernel_target_hrt_initialize });
 ATT_TER({ TA_NULL, 0, _kernel_target_hrt_terminate });
+
 CFG_INT(INTNO_TIMER, { TA_ENAINT|INTATR_TIMER, INTPRI_TIMER });
 DEF_INH(INHNO_TIMER, { TA_NULL, _kernel_target_hrt_handler });
@@ -17,7 +18,10 @@
  */
 #ifdef TOPPERS_SUPPORT_OVRHDR
+
 ATT_INI({ TA_NULL, 0, _kernel_target_ovrtimer_initialize });
 ATT_TER({ TA_NULL, 0, _kernel_target_ovrtimer_terminate });
+
 CFG_INT(INTNO_OVRTIMER, { TA_ENAINT|INTATR_OVRTIMER, INTPRI_OVRTIMER });
 DEF_INH(INHNO_OVRTIMER, { TA_NULL, _kernel_target_ovrtimer_handler });
+
 #endif /* TOPPERS_SUPPORT_OVRHDR */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -51,4 +51,5 @@
 #define TOPPERS_CHIP_TIMER_H
 
+#include "kernel/kernel_impl.h"
 #include <sil.h>
 #include "rza1.h"
@@ -140,10 +141,33 @@
  *  生させるように設定する．
  */
-extern void target_hrt_set_event(HRTCNT hrtcnt);
+Inline void
+target_hrt_set_event(HRTCNT hrtcnt)
+{
+	uint32_t	cnt = hrtcnt * 33 + hrtcnt / 3 + 1;
+	uint32_t	current;
+
+	/*
+	 *  現在のカウント値を読み，hrtcnt後に割込みが発生するように設定する．
+	 */
+	current = sil_rew_mem(OSTM_CNT(OSTM0_BASE));
+	sil_wrw_mem(OSTM_CMP(OSTM0_BASE), current + cnt);
+
+	/*
+	 *  上で現在のカウント値を読んで以降に，cnt以上カウントアップしてい
+	 *  た場合には，割込みを発生させる．
+	 */
+	if (sil_rew_mem(OSTM_CNT(OSTM0_BASE)) - current >= cnt) {
+		raise_int(INTNO_OSTM0);
+	}
+}
 
 /*
  *  高分解能タイマ割込みの要求
  */
-extern  void target_hrt_raise_event(void);
+Inline void
+target_hrt_raise_event(void)
+{
+	raise_int(INTNO_OSTM0);
+}
 
 /*
@@ -184,10 +208,46 @@
  *  オーバランタイマの停止
  */
-extern PRCTIM target_ovrtimer_stop(void);
+Inline PRCTIM
+target_ovrtimer_stop(void)
+{
+	uint32_t	cnt;
+
+	/*
+	 *  OSタイマを停止する．
+	 */
+	sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP);
+
+	if (probe_int(INTNO_OSTM1)) {
+		/*
+		 *  割込み要求が発生している場合
+		 */
+		clear_int(INTNO_OSTM1);
+		return(0U);
+	}
+	else {
+		cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE));
+		return((PRCTIM)((cnt + 34) / 5 * 3 / 20));
+	}
+}
 
 /*
  *  オーバランタイマの現在値の読出し
  */
-extern PRCTIM target_ovrtimer_get_current(void);
+Inline PRCTIM
+target_ovrtimer_get_current(void)
+{
+	uint32_t	cnt;
+
+	if (probe_int(INTNO_OSTM1)) {
+		/*
+		 *  割込み要求が発生している場合
+		 */
+		return(0U);
+	}
+	else {
+		cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE));
+		return((PRCTIM)((cnt + 34) / 5 * 3 / 20));
+	}
+}
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_unrename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_unrename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_unrename.h	(revision 429)
@@ -16,11 +16,7 @@
 #undef target_hrt_initialize
 #undef target_hrt_terminate
-#undef target_hrt_set_event
-#undef target_hrt_raise_event
 #undef target_hrt_handler
 #undef target_ovrtimer_initialize
 #undef target_ovrtimer_terminate
-#undef target_ovrtimer_stop
-#undef target_ovrtimer_get_current
 #undef target_ovrtimer_handler
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/rza1.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/rza1.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/rza1.h	(revision 429)
@@ -2,8 +2,8 @@
  *  TOPPERS Software
  *      Toyohashi Open Platform for Embedded Real-Time Systems
- *
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ * 
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -28,5 +28,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -34,5 +34,5 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
  *  $Id$
  */
@@ -45,5 +45,7 @@
 #define TOPPERS_RZA1_H
 
+#include <kernel.h>
 #include <sil.h>
+#include "arm.h"
 
 /*
@@ -84,4 +86,9 @@
 
 /*
+ *  CP15の補助制御レジスタ（ACTLR）の設定値
+ */
+#define CP15_ACTLR_SMP		UINT_C(0x00000040)
+
+/*
  *  GIC依存部を使用するための定義
  */
@@ -92,5 +99,5 @@
 #define GIC_TNUM_INTNO		UINT_C(538)
 #endif /* TOPPERS_RZA1H */
-#endif /* GIC_TNUM_INT */
+#endif /* GIC_TNUM_INTNO */
 
 /*
@@ -256,5 +263,5 @@
 	reg = sil_reh_mem(RZA1_IRQRR);
 	reg &= ~(0x01U << (intno - INTNO_IRQ0));
-	sil_wrh_mem(RZA1_IRQRR, reg);
+	sil_swrh_mem(RZA1_IRQRR, reg);
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/scif.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/scif.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/scif.h	(revision 429)
@@ -1,12 +1,11 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
- *
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
  *  Copyright (C) 2001-2011 by Industrial Technology Institute,
  *                              Miyagi Prefectural Government, JAPAN
  *  Copyright (C) 2007-2016 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -31,5 +30,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -37,5 +36,5 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
  *  $Id$
  */
@@ -66,8 +65,13 @@
  *  シリアルモードレジスタ（SCIF_SCSMR）の設定値
  */
+#define SCIF_SCSMR_ASYNC	0x0000U		/* 調歩同期式モード */
 #define SCIF_SCSMR_SYNC		0x0080U		/* クロック同期式モード */
+#define SCIF_SCSMR_8BIT		0x0000U		/* 8ビットデータ */
 #define SCIF_SCSMR_7BIT		0x0040U		/* 7ビットデータ */
-#define SCIF_SCSMR_PARITY	0x0020U		/* パリティビットの付加 */
+#define SCIF_SCSMR_NOPARITY	0x0000U		/* パリティビットなし */
+#define SCIF_SCSMR_PARITY	0x0020U		/* パリティビット付加 */
+#define SCIF_SCSMR_EVEN		0x0000U		/* 偶数パリティ */
 #define SCIF_SCSMR_ODD		0x0010U		/* 奇数パリティ */
+#define SCIF_SCSMR_1STOP	0x0000U		/* 1ストッピビット */
 #define SCIF_SCSMR_2STOP	0x0008U		/* 2ストッピビット */
 #define SCIF_SCSMR_CKS1		0x0000U		/* P1φクロック1 */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.c	(revision 429)
@@ -1,8 +1,7 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -133,37 +132,38 @@
 	uint_t	brr;
 
-	if (VAR_initialized) {
-		/*
-		 *  既に初期化している場合は、二重に初期化しない．
-		 */
-		return;
-	}
-
-	brr = SCIF_CLK / (32 * ATTR_baudRate) - 1;
-	assert(brr <= 255);
-
-	sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 0U);
-	sil_wrh_mem(SCIF_SCFCR(ATTR_baseAddress),
+	if (!VAR_opened) {
+		/*
+		 *  既にオープンしている場合は、二重にオープンしない．
+		 */
+		brr = SCIF_CLK / (32 * ATTR_baudRate) - 1;
+		assert(brr <= 255);
+
+		sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 0U);
+		sil_wrh_mem(SCIF_SCFCR(ATTR_baseAddress),
 							SCIF_SCFCR_TFRST|SCIF_SCFCR_RFRST);
-	(void) sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress));
-	(void) sil_reh_mem(SCIF_SCLSR(ATTR_baseAddress));
-	sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 0U);
-	sil_wrh_mem(SCIF_SCLSR(ATTR_baseAddress), 0U);
-	sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), SCIF_SCSCR_INTCLK);
-	sil_wrh_mem(SCIF_SCSMR(ATTR_baseAddress), SCIF_SCSMR_CKS1);
-	sil_wrh_mem(SCIF_SCEMR(ATTR_baseAddress), 0U);
-	sil_wrb_mem(SCIF_SCBRR(ATTR_baseAddress), (uint8_t) brr);
-	sil_wrh_mem(SCIF_SCFCR(ATTR_baseAddress),
+		(void) sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress));
+		(void) sil_reh_mem(SCIF_SCLSR(ATTR_baseAddress));
+		sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 0U);
+		sil_wrh_mem(SCIF_SCLSR(ATTR_baseAddress), 0U);
+		sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), SCIF_SCSCR_INTCLK);
+		sil_wrh_mem(SCIF_SCSMR(ATTR_baseAddress),
+							SCIF_SCSMR_ASYNC|ATTR_mode|SCIF_SCSMR_CKS1);
+		sil_wrh_mem(SCIF_SCEMR(ATTR_baseAddress), 0U);
+		sil_wrb_mem(SCIF_SCBRR(ATTR_baseAddress), (uint8_t) brr);
+		sil_wrh_mem(SCIF_SCFCR(ATTR_baseAddress),
 					SCIF_SCFCR_RSTRG_15|SCIF_SCFCR_RTRG_1|SCIF_SCFCR_TTRG_8);
-	sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress),
+		sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress),
 					SCIF_SCSCR_TE|SCIF_SCSCR_RE|SCIF_SCSCR_INTCLK);
 
-	while ((sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress)) & SCIF_SCFSR_RDF) != 0U) {
-		(void) sil_reb_mem(SCIF_SCFRDR(ATTR_baseAddress));
-		sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), (uint16_t) ~(SCIF_SCFSR_RDF));
-	}
-	sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 0U);
-
-	VAR_initialized = true;
+		while ((sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress)) & SCIF_SCFSR_RDF)
+																	!= 0U) {
+			(void) sil_reb_mem(SCIF_SCFRDR(ATTR_baseAddress));
+			sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress),
+							(uint16_t) ~(SCIF_SCFSR_RDF));
+		}
+		sil_wrh_mem(SCIF_SCFSR(ATTR_baseAddress), 0U);
+
+		VAR_opened = true;
+	}
 }
 
@@ -176,5 +176,9 @@
 	CELLCB	*p_cellcb = GET_CELLCB(idx);
 
-	sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 0U);
+	if (VAR_opened) {
+		sil_wrh_mem(SCIF_SCSCR(ATTR_baseAddress), 0U);
+
+		VAR_opened = false;
+	}
 }
 
@@ -284,2 +288,23 @@
 	}
 }
+
+/*
+ *  SIOドライバの終了処理
+ */
+void
+eTerminate_main(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+
+	if (VAR_opened) {
+		/*
+		 *  送信FIFOが空になるまで待つ
+		 */
+		while ((sil_reh_mem(SCIF_SCFSR(ATTR_baseAddress))
+											& SCIF_SCFSR_TEND) == 0U) ;
+		/*
+		 *  ポートのクローズ
+		 */
+		eSIOPort_close(idx);
+	}
+}
Index: EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/tSCIF.cdl	(revision 429)
@@ -5,5 +5,5 @@
  *  Copyright (C) 2015 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -61,11 +61,13 @@
 	entry	siHandlerBody	eiRxISR;
 	entry	siHandlerBody	eiTxISR;
+	entry	sRoutineBody	eTerminate;
 
 	attr {
 		uintptr_t	baseAddress;	/* SCIFレジスタのベースアドレス */
-		uint32_t	baudRate;		/* ボーレートの設定値 */
+		uint16_t	mode;			/* モードレジスタの設定値 */
+		uint32_t	baudRate;		/* ボーレート */
 	};
 	var {
-		bool_t		initialized = false;	/* 初期化済み */
+		bool_t		opened = false;	/* オープン済み */
 	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/arch/gcc/tool_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/gcc/tool_stddef.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/gcc/tool_stddef.h	(revision 429)
@@ -5,5 +5,5 @@
  *  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
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -90,6 +90,6 @@
  *
  *  TOPPERS_STDINT_TYPE1: char/short/int/long longのビット長がそれぞれ
- *                        8/16/32/64ビットで，ポインタのビット長がlong
- *                        のビット長と一致する場合
+ *                        8/16/32/64ビットで，size_tとポインタのビット
+ *                        長がlongのビット長と一致する場合
  */
 #ifdef TOPPERS_STDINT_TYPE1
@@ -177,4 +177,6 @@
 #define INT_LEAST8_MIN		INT8_MIN
 #define UINT_LEAST8_MAX		INT8_MAX
+
+#define SIZE_MAX			ULONG_MAX
 
 #endif /* TOPPERS_STDINT_TYPE1 */
Index: EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.c	(revision 429)
@@ -5,5 +5,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -48,4 +48,7 @@
 #include "kernel/task.h"
 #include "kernel/time_event.h"
+#ifdef TOPPERS_SUPPORT_PROTECT
+#include "kernel/domain.h"
+#endif /* TOPPERS_SUPPORT_PROTECT */
 #include <sil.h>
 #include <log_output.h>
@@ -56,14 +59,14 @@
  *
  *  デフォルトでは，ログ時刻として，高分解能タイマのカウント値を用いて
- *  いる．ターゲット依存で変更する場合には，SYSLOG_GET_LOGTIMに，ログ時
+ *  いる．ターゲット依存で変更する場合には，TRACE_GET_LOGTIMに，ログ時
  *  刻を取り出すマクロを定義する．
  */
-#ifndef SYSLOG_GET_LOGTIM
-#define SYSLOG_GET_LOGTIM(p_logtim) \
+#ifndef TRACE_GET_LOGTIM
+#define TRACE_GET_LOGTIM(p_logtim) \
 				(*(p_logtim) = target_hrt_get_current())
-#endif /* SYSLOG_GET_TIM */
-
-/*
- *  トレースログの開始
+#endif /* TRACE_GET_TIM */
+
+/*
+ *  トレースログの開始（受け口関数）
  */
 ER
@@ -81,5 +84,5 @@
 
 /* 
- *  トレースログの書込み
+ *  トレースログの書込み（受け口関数）
  */
 ER
@@ -94,5 +97,5 @@
 		 *  トレース時刻の設定
 		 */
-		SYSLOG_GET_LOGTIM(&(((SYSLOG *) p_trace)->logtim));
+		TRACE_GET_LOGTIM(&(((SYSLOG *) p_trace)->logtim));
 
 		/*
@@ -121,5 +124,5 @@
 
 /*
- *  トレースログの読出し
+ *  トレースログの読出し（受け口関数）
  */
 ER
@@ -203,5 +206,5 @@
 	p_tcb = (TCB *) info;
 	if (p_tcb == NULL) {
-		tskid = 0;
+		tskid = TSK_NONE;
 	}
 	else {
@@ -240,4 +243,35 @@
 }
 
+#ifdef TOPPERS_SUPPORT_PROTECT
+
+static intptr_t
+get_somid(intptr_t info)
+{
+	SOMINIB	*p_sominib;
+	ID		somid;
+
+	p_sominib = (SOMINIB *) info;
+	if (p_sominib == NULL) {
+		somid = TSOM_STP;
+	}
+	else {
+		somid = SOMID(p_sominib);
+	}
+	return((intptr_t) somid);
+}
+
+static intptr_t
+get_twd_domid(intptr_t info)
+{
+	TWDINIB	*p_twdinib;
+	ID		domid;
+
+	p_twdinib = (TWDINIB *) info;
+	domid = (ID)(p_twdinib->p_dominib - dominib_table) + TMIN_DOMID;
+	return((intptr_t) domid);
+}
+
+#endif /* TOPPERS_SUPPORT_PROTECT */
+
 /* 
  *  トレースログの表示
@@ -267,4 +301,21 @@
 		tracemsg = "dispatch to task %d.";
 		break;
+
+#ifdef TOPPERS_SUPPORT_PROTECT
+	case LOG_TYPE_SCYC|LOG_START:
+		traceinfo[0] = get_somid(p_trace->logpar[0]);
+		tracemsg = "system cycle starts with system operating mode %d.";
+		break;
+	case LOG_TYPE_TWD|LOG_START:
+		if (p_trace->logpar[0] == 0) {
+			tracemsg = "idle window starts.";
+		}
+		else {
+			traceinfo[0] = get_twd_domid(p_trace->logpar[0]);
+			tracemsg = "time window for domain %d starts.";
+		}
+		break;
+#endif /* TOPPERS_SUPPORT_PROTECT */
+
 	case LOG_TYPE_COMMENT:
 		for (i = 1; i < TNUM_LOGPAR; i++) {
@@ -313,9 +364,9 @@
 }
 
-/* 
- *  トレースログのダンプ
- */
-void
-eTraceLog_dump(void)
+/*
+ *  トレースログのダンプ（受け口関数）
+ */
+void
+eDump_main(uintptr_t exinf)
 {
 	TRACE	trace;
@@ -325,11 +376,2 @@
 	}
 }
-
-/*
- *  トレースログのダンプ（受け口関数）
- */
-void
-tTraceLog_eDump_main(uintptr_t exinf)
-{
-	eTraceLog_dump();
-}
Index: EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.cdl	(revision 429)
@@ -1,10 +1,9 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2015 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -68,9 +67,4 @@
 	 */
 	ER		read([out] TRACE *p_trace);
-
-	/*
-	 *  トレースログのダンプ
-	 */
-	void	dump(void);
 };
 
@@ -81,6 +75,6 @@
 celltype tTraceLog {
 	entry	sTraceLog		eTraceLog;
-	entry	sRoutineBody	eDump;		/* 終了処理ルーチンとの接続 */
-	call	sPutLog			cPutLog;	/* 低レベル出力との接続 */
+	entry	sRoutineBody	eDump;		/* トレースログのダンプ */
+	call	sPutLog			cPutLog;	/* ダンプ先との接続 */
 
 	attr {
Index: EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/trace_log.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/trace_log.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/trace_log.h	(revision 429)
@@ -5,5 +5,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -41,14 +41,14 @@
 
 /*
- *		トレースログに関する設定
+ *		トレースログ機能のヘッダファイル
  *
  *  このインクルードファイルは，target_kernel_impl.hおよび
- *  target_syssvc.hのみからインクルードされる．また，トレースログ機能の
- *  初期化や記録の開始／停止，トレースログのダンプを行うプログラムから
- *  インクルードすることを想定している．
- */
-
-#ifndef TOPPERS_TRACE_CONFIG_H
-#define TOPPERS_TRACE_CONFIG_H
+ *  target_syssvc.hからインクルードされる．また，トレースログ機能の初
+ *  期化や記録の開始／停止，トレースログのダンプを行うプログラムからイ
+ *  ンクルードすることを想定している．
+ */
+
+#ifndef TOPPERS_TRACE_LOG_H
+#define TOPPERS_TRACE_LOG_H
 
 /*
@@ -75,5 +75,5 @@
 
 /*
- *  TECSで記述されたテストプログラム用のサービスを直接呼び出すための定義
+ *  TECSで記述されたトレースログ機能を直接呼び出すための定義
  *
  *  C言語で記述されたアプリケーションから，TECSで記述されたトレースログ
@@ -134,5 +134,5 @@
 
 Inline void
-trace_write_1(uint_t type, intptr_t arg1)
+trace_write_1(uint_t type, LOGPAR arg1)
 {
 	TRACE	trace;
@@ -144,5 +144,5 @@
 
 Inline void
-trace_write_2(uint_t type, intptr_t arg1, intptr_t arg2)
+trace_write_2(uint_t type, LOGPAR arg1, LOGPAR arg2)
 {
 	TRACE	trace;
@@ -155,5 +155,5 @@
 
 Inline void
-trace_write_3(uint_t type, intptr_t arg1, intptr_t arg2, intptr_t arg3)
+trace_write_3(uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3)
 {
 	TRACE	trace;
@@ -174,20 +174,15 @@
 
 #define trace_1(type, arg1) \
-				trace_write_1(type, (intptr_t)(arg1))
+				trace_write_1(type, (LOGPAR)(arg1))
 
 #define trace_2(type, arg1, arg2) \
-				trace_write_2(type, (intptr_t)(arg1), (intptr_t)(arg2))
+				trace_write_2(type, (LOGPAR)(arg1), (LOGPAR)(arg2))
 
 #define trace_3(type, arg1, arg2, arg3) \
-				trace_write_3(type, (intptr_t)(arg1), (intptr_t)(arg2), \
-														(intptr_t)(arg3))
+				trace_write_3(type, (LOGPAR)(arg1), (LOGPAR)(arg2), \
+														(LOGPAR)(arg3))
 
 /* 
  *  トレースログのダンプ
- *
- *  トレースログをダンプする．終了処理ルーチンとして登録することも想定
- *  している．引数として，ダンプ先となる文字出力関数へのポインタを渡す．
- *  ターゲット依存の低レベル文字出力を利用する場合には，target_putcを渡
- *  す．
  */
 Inline void
@@ -203,7 +198,14 @@
  */
 #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)
+
+#ifdef TOPPERS_SUPPORT_PROTECT
+#define LOG_SCYC_START(p_sominib)	trace_1(LOG_TYPE_SCYC|LOG_START, p_sominib)
+#define LOG_TWD_START(p_twdinib)	trace_1(LOG_TYPE_TWD|LOG_START, p_twdinib)
+#endif /* TOPPERS_SUPPORT_PROTECT */
 
 #define LOG_TSYSLOG_ESYSLOG_WRITE_ENTER(priority, p_syslog) \
 								trace_wri_log((TRACE *) p_syslog)
 
-#endif /* TOPPERS_TRACE_CONFIG_H */
+#endif /* TOPPERS_TRACE_LOG_H */
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/GenFile.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/GenFile.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/GenFile.rb	(revision 429)
@@ -37,5 +37,5 @@
 #  の責任を負わない．
 #
-#  $Id$
+#  $Id: GenFile.rb 111 2016-03-16 23:50:27Z ertl-hiro $
 #
 
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/MANIFEST
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/MANIFEST	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/MANIFEST	(revision 429)
@@ -1,2 +1,5 @@
+PACKAGE cfg
+VERSION 1.5.0
+
 MANIFEST
 cfg.rb
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/SRecord.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/SRecord.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/SRecord.rb	(revision 429)
@@ -36,5 +36,5 @@
 #  の責任を負わない．
 #
-#  $Id$
+#  $Id: SRecord.rb 161 2018-12-12 00:45:04Z ertl-hiro $
 #
 
@@ -170,3 +170,15 @@
     end
   end
+
+  # 文字列としてのデータ取得
+  def get_string(address)
+    str = ""
+    targetChar = get_data(address, 1).hex
+    while (!targetChar.nil? && targetChar != 0)
+      str += targetChar.chr
+      address += 1
+      targetChar = get_data(address, 1).hex
+    end
+    return(str)
+  end
 end
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb	(revision 429)
@@ -1,3 +1,3 @@
-#!/usr/bin/env ruby
+#!/usr/bin/env ruby -Eutf-8 -w
 # -*- coding: utf-8 -*-
 #
@@ -5,5 +5,5 @@
 #
 #  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#  Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 #
@@ -37,5 +37,5 @@
 #  の責任を負わない．
 #
-#  $Id$
+#  $Id: cfg.rb 175 2019-06-19 01:51:58Z ertl-hiro $
 #
 
@@ -56,16 +56,18 @@
 #
 # 共通
-VERSION = "1.2.2"
+VERSION = "1.5.0"
 
 # 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"
+CFG1_PREFIX         = "TOPPERS_cfg_"
+CFG1_MAGIC_NUM      = "TOPPERS_magic_number"
+CFG1_SIZEOF_SIGNED  = "TOPPERS_sizeof_signed_t"
+CFG1_SIZEOF_INTPTR  = "TOPPERS_sizeof_intptr_t"
+CFG1_SIZEOF_CHARPTR = "TOPPERS_sizeof_char_ptr_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関係
@@ -105,5 +107,5 @@
 $noParseError = 0
 def parse_error(cfgFile, message)
-  error(message, "#{cfgFile.getFileName()}:#{cfgFile.getLineNo}:")
+  error(message, "#{cfgFile.getFileName}:#{cfgFile.getLineNo}:")
   if ($noParseError += 1) >= 10
     abort("too many errors emitted, stopping now")
@@ -113,5 +115,5 @@
 # システムコンフィギュレーションファイルの構文解析時の警告
 def parse_warning(cfgFile, message)
-  warning(message, "#{cfgFile.getFileName()}:#{cfgFile.getLineNo}:")
+  warning(message, "#{cfgFile.getFileName}:#{cfgFile.getLineNo}:")
 end
 
@@ -155,9 +157,4 @@
 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
 
@@ -316,5 +313,5 @@
   # ハッシュのキーとして使う時の比較も数値情報で行う
   def eql?(other)
-    @val == other.val
+    @val == other
   end
 
@@ -390,4 +387,8 @@
     if symbolData.has_key?(:VALUE)
       eval("$#{symbolName} = #{symbolData[:VALUE]}")
+      if symbolData.has_key?(:NUMSTRVAR)
+        eval("$#{symbolData[:NUMSTRVAR]} = " \
+					"NumStr.new(symbolData[:VALUE], symbolData[:EXPR])")
+      end
     end
   end
@@ -431,4 +432,15 @@
 
 #
+#  インクルードディレクティブ（#include）の生成
+#
+def GenerateIncludes(genFile)
+  $cfgFileInfo.each do |cfgInfo|
+    if cfgInfo.has_key?(:DIRECTIVE)
+      genFile.add(cfgInfo[:DIRECTIVE])
+    end
+  end
+end
+
+#
 #  パス3の処理
 #
@@ -439,14 +451,8 @@
   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 = {}
+    db.roots.each do |var|
+      eval("$#{var} = db[:#{var}]")
+    end
+  end
 
   #
@@ -465,15 +471,10 @@
   #  パス4に引き渡す情報をファイルに生成
   #
-  if $omitOutputDb.nil?
+  if !$omitOutputDb
     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
+      $globalVars.each do |var|
+        eval("db[:#{var}] = $#{var}")
+      end
     end
   end
@@ -489,12 +490,7 @@
   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]
+    db.roots.each do |var|
+      eval("$#{var} = db[:#{var}]")
+    end
   end
 
@@ -557,13 +553,17 @@
 $romImageFileName = nil
 $romSymbolFileName = nil
-$dependencyFileName = nil
 $idInputFileName = nil
 $idOutputFileName = nil
+$dependencyFileName = nil
+$omitOutputDb = false
+$supportDomain = false
+$supportClass = false
 
 #
 #  オプションの処理
 #
-OptionParser.new(banner="Usage: cfg.rb [options] CONFIG-FILE", 40) do |opt|
+OptionParser.new("Usage: cfg.rb [options] CONFIG-FILE", 40) do |opt|
   opt.version = VERSION
+  opt.release = nil
   opt.on("-k KERNEL", "--kernel KERNEL", "kernel profile name") do |val|
     $kernel = val
@@ -605,9 +605,17 @@
     $omitOutputDb = true
   end
+  opt.on("--enable-domain", "enable DOMAIN support") do
+	$supportDomain = true
+  end
+  opt.on("--enable-class", "enable CLASS support") do
+	$supportClass = true
+  end
   opt.on("-v", "--version", "show version number") do
-    abort(opt.ver)
+    puts(opt.ver)
+    exit(0)
   end
   opt.on("-h", "--help", "show help (this)") do
-    abort(opt.help)
+    puts(opt.help)
+    exit(0)
   end
   opt.parse!(ARGV)
@@ -642,4 +650,7 @@
 	$supportDomain = true
 when /^fmp/
+	$supportClass = true
+when /^hrmp/
+	$supportDomain = true
 	$supportClass = true
 end
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/pass1.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/pass1.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/pass1.rb	(revision 429)
@@ -4,5 +4,5 @@
 #
 #  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#  Copyright (C) 2015-2017 by Embedded and Real-Time Systems Laboratory
+#  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 #
@@ -36,5 +36,5 @@
 #  の責任を負わない．
 #
-#  $Id$
+#  $Id: pass1.rb 165 2019-01-11 01:29:47Z ertl-hiro $
 #
 
@@ -61,5 +61,9 @@
   "LONG_MAX"  => { EXPR: "LONG_MAX",  SIGNED: true },
   "LONG_MIN"  => { EXPR: "LONG_MIN",  SIGNED: true },
-  "ULONG_MAX" => { EXPR: "ULONG_MAX" }
+  "ULONG_MAX" => { EXPR: "ULONG_MAX" },
+  "SIL_ENDIAN_BIG" \
+	=> { EXPR: "true", BOOL: true, CONDITION: "defined(SIL_ENDIAN_BIG)" },
+  "SIL_ENDIAN_LITTLE" \
+	=> { EXPR: "true", BOOL: true, CONDITION: "defined(SIL_ENDIAN_LITTLE)" }
 }
 
@@ -68,5 +72,5 @@
 #
 $apiDefinition = { "INCLUDE" =>
-  { :PARAM => [ { :NAME => :file, :STRING => true }]}}
+  { :PARAM => [ { :NAME => :file, :STRING_LITERAL => true }]}}
 
 #
@@ -121,8 +125,12 @@
             apiParam[:EXPTYPE] = "signed_t"
             apiParam[:SIGNED] = true
+          when "^"					# ポインタ整数定数式パラメータ
+            apiParam[:EXPTYPE] = "uintptr_t"
+            apiParam[:INTPTR] = true
           when "&"					# 一般整数定数式パラメータ
             # do nothing
           when "$"					# 文字列定数式パラメータ
             apiParam[:STRING] = true
+            apiParam[:EXPTYPE] = "char *"
           else
             error_exit("`#{param}' is invalid")
@@ -171,12 +179,16 @@
 						{ skip_blanks: true, skip_lines: /^#/ })
     symvalCsv.each do |record|
+      symbol = {}
+
       # 変数名
       if record[0].nil?
         error_exit("invalid variable name in " \
 						"`#{symvalTableFileName}:#{symvalCsv.to_io.lineno}'")
-      end
-
-      symbol = {}
-      variable = record[0]
+      elsif /^(.+)\[(.+)\]$/ =~ record[0]
+        variable = $1
+        symbol[:NUMSTRVAR] = $2
+      else
+        variable = record[0]
+      end
 
       # 式
@@ -192,4 +204,6 @@
         when /^[bB]/				# 真偽値
           symbol[:BOOL] = true
+        when /^[iI]/				# ポインタ整数値
+          symbol[:INTPTR] = true
         when /^[uU]/				# 符号無し整数値
           # 何も設定しない
@@ -367,5 +381,5 @@
     skipSpace(cfgFile, withinApi)
     if @line.nil?							# ファイル末であればエラー終了
-      error_exit("unexpexced end-of-file")
+      error_exit("#{cfgFile.getFileName}: unexpeced end-of-file")
     end
   end
@@ -472,5 +486,5 @@
     end
 
-    if apiParam.has_key?(:STRING)
+    if apiParam.has_key?(:STRING_LITERAL)
       return(param.unquote)
     else
@@ -604,8 +618,9 @@
         # プリプロセッサディレクティブを読む
         case @line
-        when /^#include\b(.*)$/
-          $includeFiles.push($1.strip)
-        when /^#(ifdef|ifndef|if|endif|else|elif)\b/
-          directive = { :DIRECTIVE => @line.strip }
+        when /^#(include|ifdef|ifndef|if|endif|else|elif)\b/
+          directive = {}
+          directive[:DIRECTIVE] = @line.strip
+          directive[:_FILE_] = cfgFile.getFileName
+          directive[:_LINE_] = cfgFile.getLineNo
           $cfgFileInfo.push(directive)
         else
@@ -619,5 +634,5 @@
         case apiName
         when "KERNEL_DOMAIN"
-          if $supportDomain.nil?
+          if !$supportDomain
             parse_warning(cfgFile, "`KERNEL_DOMAIN' is not supported")
           end
@@ -629,5 +644,5 @@
           @@nestDC.push("domain")
         when "DOMAIN"
-          if $supportDomain.nil?
+          if !$supportDomain
             parse_warning(cfgFile, "`DOMAIN' is not supported")
           end
@@ -655,5 +670,5 @@
           @@nestDC.push("domain")
         when "CLASS"
-          if $supportClass.nil?
+          if !$supportClass
             parse_warning(cfgFile, "`CLASS' is not supported")
           end
@@ -676,5 +691,9 @@
               includeFilePath = SearchFilePath(staticApi[:file])
               if includeFilePath.nil?
-                parse_error(cfgFile, "`#{staticApi[:file]}' not found")
+                error = {}
+                error[:DIRECTIVE] = "#error '#{staticApi[:file]}' not found."
+                error[:_FILE_] = cfgFile.getFileName
+                error[:_LINE_] = cfgFile.getLineNo
+                $cfgFileInfo.push(error)
               else
                 $dependencyFiles.push(includeFilePath)
@@ -694,4 +713,12 @@
               $cfgFileInfo.push(staticApi)
             end
+
+            # ";"を読む
+            skipToToken(cfgFile, false)		# 次の文字まで読み飛ばす
+            if (/^\;(.*)$/ =~ @line)
+              @line = $1
+            else
+              parse_error(cfgFile, "`;' expected after static API")
+            end
           else
             parse_error(cfgFile, "unknown static API: #{apiName}")
@@ -727,5 +754,5 @@
   #
   def self.OutLineNumber(cfgInfo)
-    @cfg1Out.add("#line #{cfgInfo[:_LINE_]} \"#{cfgInfo[:_FILE_].gsub('\\', '/')}\"")
+    @cfg1Out.add("#line #{cfgInfo[:_LINE_]} \"#{cfgInfo[:_FILE_]}\"")
   end
 
@@ -734,5 +761,5 @@
   #
   def self.OutClassLineNumber(cfgInfo)
-    @cfg1Out.add("#line #{cfgInfo[:CLASS_LINE_]} \"#{cfgInfo[:CLASS_FILE_].gsub('\\', '/')}\"")
+    @cfg1Out.add("#line #{cfgInfo[:CLASS_LINE_]} \"#{cfgInfo[:CLASS_FILE_]}\"")
   end
 
@@ -763,7 +790,10 @@
 EOS
 
-    # インクルードヘッダファイル
-    $includeFiles.each do |file|
-      @cfg1Out.add("#include #{file}")
+    # インクルードディレクティブ（#include）の生成
+    $cfgFileInfo.each do |cfgInfo|
+      if cfgInfo.has_key?(:DIRECTIVE)
+        OutLineNumber(cfgInfo)
+        @cfg1Out.add(cfgInfo[:DIRECTIVE])
+      end
     end
 
@@ -780,18 +810,17 @@
 #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);
+const uint32_t #{CFG1_SIZEOF_INTPTR} = sizeof(intptr_t);
+const uint32_t #{CFG1_SIZEOF_CHARPTR} = sizeof(char *);
 EOS
 
     # 値取得シンボルの処理
     $symbolValueTable.each do |symbolName, symbolData|
-      if symbolData.has_key?(:BOOL) || symbolData.has_key?(:SIGNED)
+      if symbolData.has_key?(:BOOL)
+        type = "signed_t"
+      elsif symbolData.has_key?(:INTPTR)
+        type = "uintptr_t"
+      elsif symbolData.has_key?(:SIGNED)
         type = "signed_t"
       else
@@ -825,5 +854,9 @@
     $cfgFileInfo.each do |cfgInfo|
       if cfgInfo.has_key?(:DIRECTIVE)
-        @cfg1Out.add2(cfgInfo[:DIRECTIVE])
+        # 条件ディレクティブを出力
+        if cfgInfo[:DIRECTIVE] =~ /^#(ifdef|ifndef|if|endif|else|elif)\b/
+          OutLineNumber(cfgInfo)
+          @cfg1Out.add2(cfgInfo[:DIRECTIVE])
+        end
       else
         apiDef = $apiDefinition[cfgInfo[:APINAME]]
@@ -882,5 +915,4 @@
   $cfgFileInfo = []
   $dependencyFiles = $configFileNames.dup
-  $includeFiles = []
   $domainId = { "TDOM_KERNEL" => -1, "TDOM_NONE" => -2 }
   $configFileNames.each do |configFileName|
@@ -939,5 +971,5 @@
   #  パス2に引き渡す情報をファイルに生成
   #
-  if $omitOutputDb.nil?
+  if !$omitOutputDb
     db = PStore.new(CFG1_OUT_DB)
     db.transaction do
@@ -945,5 +977,4 @@
       db[:symbolValueTable] = $symbolValueTable
       db[:cfgFileInfo] = $cfgFileInfo
-      db[:includeFiles] = $includeFiles
       db[:domainId] = $domainId
     end
Index: EcnlProtoTool/trunk/asp3_dcre/cfg/pass2.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/cfg/pass2.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/cfg/pass2.rb	(revision 429)
@@ -4,5 +4,5 @@
 #
 #  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#  Copyright (C) 2015-2017 by Embedded and Real-Time Systems Laboratory
+#  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 #
@@ -36,5 +36,5 @@
 #  の責任を負わない．
 #
-#  $Id$
+#  $Id: pass2.rb 175 2019-06-19 01:51:58Z ertl-hiro $
 #
 
@@ -59,4 +59,17 @@
 
   #
+  #  Sレコードファイルからシンボルの文字列を取り出す
+  #
+  def self.GetSymbolString(symbol)
+    if @symbolAddress.has_key?(symbol) \
+			&& !(address = @cfg1SRec.get_value(@symbolAddress[symbol], \
+												$sizeOfCharPtr, false)).nil?
+      return(@cfg1SRec.get_string(address))
+    else
+      return(nil)
+    end
+  end
+
+  #
   #  パス1の生成物の読み込み（メインの処理）
   #
@@ -72,5 +85,5 @@
     end
 
-    # マジックナンバーの取得
+    # マジックナンバーの取得とエンディアンの設定
     if @symbolAddress.has_key?(CFG1_MAGIC_NUM)
       $asmLabel = ""
@@ -95,4 +108,6 @@
     # 固定出力した変数の取得
     $sizeOfSigned = GetSymbolValue($asmLabel + CFG1_SIZEOF_SIGNED, 4, false)
+    $sizeOfIntptr = GetSymbolValue($asmLabel + CFG1_SIZEOF_INTPTR, 4, false)
+    $sizeOfCharPtr = GetSymbolValue($asmLabel + CFG1_SIZEOF_CHARPTR, 4, false)
 
     # 値取得シンボルの取得
@@ -106,9 +121,33 @@
         end
       else
-        value = GetSymbolValue(symbol, $sizeOfSigned, \
+        if symbolData.has_key?(:INTPTR)
+          value = GetSymbolValue(symbol, $sizeOfIntptr, \
 										symbolData.has_key?(:SIGNED))
+        else
+          value = GetSymbolValue(symbol, $sizeOfSigned, \
+										symbolData.has_key?(:SIGNED))
+        end
         if !value.nil?
           symbolData[:VALUE] = value
         end
+      end
+    end
+
+    # SILによるエンディアン定義のチェック
+    if $symbolValueTable["SIL_ENDIAN_BIG"].has_key?(:VALUE)
+      if $symbolValueTable["SIL_ENDIAN_LITTLE"].has_key?(:VALUE)
+        error_exit("Both SIL_ENDIAN_BIG and SIL_ENDIAN_LITTLE are defined.")
+      else
+        if $endianLittle
+          error_exit("Definition of SIL_ENDIAN_BIG seems to be wrong.")
+        end
+      end
+    else
+      if $symbolValueTable["SIL_ENDIAN_LITTLE"].has_key?(:VALUE)
+        if !$endianLittle
+          error_exit("Definition of SIL_ENDIAN_LITTLE seems to be wrong.")
+        end
+      else
+        # 両方が未定義の場合のエラーチェックは，sil.hで実施する
       end
     end
@@ -133,10 +172,13 @@
 
     #
-    #  ドメイン生成データをコンフィギュレーションデータ（$cfgData）に格納
-    #
-    $cfgData[:CRE_DOM] = {}
-    $domainId.each do |domainName, domainVal|
-      domid = NumStr.new(domainVal, domainName)
-      $cfgData[:CRE_DOM][domainVal] = { :domid => domid }
+    #  ドメインデータ（$domData）を生成
+    #
+    if $supportDomain
+      $domData = {}
+      $domainId.each do |domainName, domainVal|
+        domid = NumStr.new(domainVal, domainName)
+        $domData[domainVal] = { :domid => domid }
+      end
+      $globalVars.push("domData")
     end
 
@@ -146,4 +188,6 @@
   #
   #  パラメータの値を取り出す
+  #
+  #  生成スクリプト内で追加された静的APIの場合には，apiIndexがnilになる．
   #
   def self.GetParamValue(paramName, param, apiIndex, index, apiParam, cfgInfo)
@@ -160,6 +204,22 @@
         value = nil
       end
+    elsif apiParam.has_key?(:STRING)			# 文字列パラメータ
+      if !apiIndex.nil?
+        symbol = "#{$cfg1_prefix}valueof_#{paramName}_#{apiIndex}#{index}"
+        return(GetSymbolString(symbol))
+      else
+        return(param)
+      end
     elsif apiParam.has_key?(:EXPTYPE)			# 整数定数式パラメータ
-      if apiIndex.nil?
+      if !apiIndex.nil?
+        symbol = "#{$cfg1_prefix}valueof_#{paramName}_#{apiIndex}#{index}"
+        if apiParam.has_key?(:INTPTR)
+          value = GetSymbolValue(symbol, $sizeOfIntptr, \
+										apiParam.has_key?(:SIGNED))
+        else
+          value = GetSymbolValue(symbol, $sizeOfSigned, \
+										apiParam.has_key?(:SIGNED))
+        end
+      else
         if param.is_a?(NumStr)
           return(param)
@@ -167,10 +227,6 @@
           return(NumStr.new(param))
         end
-      else
-        symbol = "#{$cfg1_prefix}valueof_#{paramName}_#{apiIndex}#{index}"
-        value = GetSymbolValue(symbol, $sizeOfSigned, \
-									apiParam.has_key?(:SIGNED))
-      end
-    else										# 一般定数式／文字列パラメータ
+      end
+    else										# 一般定数式パラメータ
       return(param)
     end
@@ -201,5 +257,4 @@
 
     # ID番号割り当ての前処理
-    objidParamNameList = []
     $cfgFileInfo.each do |cfgInfo|
       # プリプロセッサディレクティブは読み飛ばす
@@ -228,5 +283,4 @@
             @objidValues[objidParamName][objName] = nil
           end
-          objidParamNameList.push(objidParamName)
         end
       end
@@ -234,7 +288,5 @@
 
     # ID番号の割当て処理
-    objidParamNameList.each do |objidParamName|
-      objidList = @objidValues[objidParamName]
-
+    @objidValues.each do |objidParamName, objidList|
       # 未使用のID番号のリスト（使用したものから消していく）
       unusedObjidList = (1.upto(objidList.keys.size)).to_a
@@ -311,10 +363,10 @@
       # クラスIDを追加
       if cfgInfo.has_key?(:CLASS)
-        if apiIndex.nil?
-          params[:class] = cfgInfo[:CLASS]
-        else
+        if !apiIndex.nil?
           symbol = "#{$cfg1_prefix}valueof_CLASS_#{apiIndex}"
           value = GetSymbolValue(symbol, $sizeOfSigned, true)
           params[:class] = NumStr.new(value, cfgInfo[:CLASS])
+        else
+          params[:class] = cfgInfo[:CLASS]
         end
       end
@@ -343,4 +395,11 @@
 
   #
+  #  ID番号の割当て結果の上書き
+  #
+  def self.SetObjidList(objidParamName, objidList)
+    @objidValues[objidParamName] = objidList
+  end
+
+  #
   #  ID番号出力ファイルの生成
   #
@@ -364,11 +423,19 @@
   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 = {}
+    db.roots.each do |var|
+      eval("$#{var} = db[:#{var}]")
+    end
+  end
+
+  #
+  #  パス3以降に引き渡す情報の定義
+  #
+  $globalVars = [ "globalVars",
+                  "apiDefinition",
+                  "symbolValueTable",
+                  "cfgFileInfo",
+                  "cfgData",
+                  "asmLabel",
+                  "endianLittle" ]
 
   #
@@ -404,15 +471,10 @@
   #  パス3に引き渡す情報をファイルに生成
   #
-  if $omitOutputDb.nil?
+  if !$omitOutputDb
     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
+      $globalVars.each do |var|
+        eval("db[:#{var}] = $#{var}")
+      end
     end
   end
Index: EcnlProtoTool/trunk/asp3_dcre/configure.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/configure.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/configure.rb	(revision 429)
@@ -7,5 +7,5 @@
 #  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
+#  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -42,4 +42,5 @@
 # 
 
+Encoding.default_external = 'utf-8'
 require "optparse"
 require "fileutils"
@@ -56,8 +57,9 @@
 #						ル名）名
 #  -C <cdlflle>			コンポーネント記述ファイル（.cdlファイル）名
-#  -U <applobjs>		他のアプリケーションプログラムファイル
+#  -U <applobjs>		アプリケーションの追加のオブジェクトファイル
 #						（.oファイル名で指定．複数指定可）
-#  -S <syssvcobjs>		システムサービスのプログラムファイル
+#  -S <syssvcobjs>		システムサービスのオブジェクトファイル
 #						（.oファイル名で指定．複数指定可）
+#  -B <bannerobj>		バナー表示のオブジェクトファイル（.oファイル名で指定）
 #  -L <kernel_lib>		カーネルライブラリ（libkernel.a）のディレクトリ名
 #						（省略した場合，カーネルライブラリもmakeする）
@@ -67,6 +69,9 @@
 #  -m <tempmakefile>	Makefileのテンプレートのファイル名の指定（デフォル
 #						トはsampleディレクトリのMakefile）
-#  -d <depdir>			依存関係ファイルのディレクトリ名（デフォルトはdeps）
+#  -d <objdir>			中間オブジェクトファイルと依存関係ファイルを置く
+#						ディレクトリ名（デフォルトはobjs）
 #  -w					TECSを使用しない
+#  -W <tecsdir>			TECS関係ファイルのディレクトリ名（デフォルトはソー
+#						スファイルのディレクトリの下のtecsgen）
 #  -r					トレースログ記録のサンプルコードを使用するかどうか
 #						の指定
@@ -77,5 +82,6 @@
 #  -o <options>			コンパイルオプション（COPTSに追加）
 #  -O <options>			シンボル定義オプション（CDEFSに追加）
-#  -k <options>			リンカオプション（LDFLAGS等に追加）
+#  -k <options>			リンカオプション（LDFLAGSに追加）
+#  -b <options>			リンカオプション（LIBSに追加）
 #  -e <tinetdir>		TINET のソースの置かれているディレクトリ
 #  -i <net_if>			ネットワークインタフェース（TINETが有効の場合は必須）
@@ -111,5 +117,5 @@
 #
 #  % ../configure.rb -T gr_sakura_gcc -A sample1n \
-#					-e tinet -i ether -v if_rx62n -n inet4 -s tcp -U sample1.o
+#					-e tinet -i ether -v if_mbed -n inet4 -s tcp -U sample1.o
 #	TINETを有効にする．
 
@@ -119,17 +125,28 @@
 $target = nil
 $appldirs = []
+$applname = nil
+$option_t = false
+$cfgfile = nil
+$cdlfile = nil
 $applobjs = []
 $syssvcobjs = []
+$bannerobj = nil
 $kernel_lib = ""
 $kernel_funcobjs = ""
+$srcdir = nil
 $srclang = "c"
-$depdir = "deps"
+$tempmakefile = nil
+$objdir = "objs"
 $omit_tecs = ""
+$tecsdir = nil
 $enable_trace = ""
 $devtooldir = ""
 $ruby = "ruby"
+$cfg = nil
+$tecsgen = nil
 $copts = []
 $cdefs = []
 $ldflags = []
+$libs = []
 
 #
@@ -141,5 +158,5 @@
   end
   opt.on("-a appldirs",		"application directories") do |val|
-    $appldirs += val.split("\s+")
+    $appldirs += val.split(/\s+/)
   end
   opt.on("-A applname",		"application program name") do |val|
@@ -156,8 +173,11 @@
   end
   opt.on("-U applobjs",		"additional application object files") do |val|
-    $applobjs += val.split("\s+")
+    $applobjs += val.split(/\s+/)
   end
   opt.on("-S syssvcobjs",	"system service object files") do |val|
-    $syssvcobjs += val.split("\s+")
+    $syssvcobjs += val.split(/\s+/)
+  end
+  opt.on("-B bannerobj",	"banner display object file") do |val|
+    $bannerobj = val
   end
   opt.on("-L kernel_lib",	"directory of built kernel library") do |val|
@@ -165,5 +185,5 @@
   end
   opt.on("-f", "each function is complied separately in kernel") do |val|
-    $kernel_funcobjs = true
+    $kernel_funcobjs = "true"
   end
   opt.on("-D srcdir",		"path of source code directory") do |val|
@@ -176,12 +196,15 @@
     $tempmakefile = val
   end
-  opt.on("-d depdir",		"dependency relation file directory") do |val|
-    $depdir = val
+  opt.on("-d objdir",		"relocatable object file directory") do |val|
+    $objdir = val
   end
   opt.on("-w",				"TECS is not used at all") do |val|
-    $omit_tecs = true
+    $omit_tecs = "true"
+  end
+  opt.on("-W tecsdir",		"path of TECS file directory") do |val|
+    $tecsdir = val
   end
   opt.on("-r",				"use the sample code for trace log") do |val|
-    $enable_trace = true
+    $enable_trace = "true"
   end
   opt.on("-V devtooldir",	"development tools directory") do |val|
@@ -198,11 +221,14 @@
   end
   opt.on("-o options",		"compiler options") do |val|
-    $copts += val.split("\s+")
+    $copts += val.split(/\s+/)
   end
   opt.on("-O options",		"symbol definition options") do |val|
-    $cdefs += val.split("\s+")
+    $cdefs += val.split(/\s+/)
   end
   opt.on("-k options",		"linker options") do |val|
-    $ldflags += val.split("\s+")
+    $ldflags += val.split(/\s+/)
+  end
+  opt.on("-b options",		"linker options for linking libraries") do |val|
+    $libs += val.split(/\s+/)
   end
   opt.on("-e options",		"path of TINET directory") do |val|
@@ -236,5 +262,5 @@
 
 #
-#  変数のデフォルト値
+#  変数のデフォルト値（文字列変数のデフォルト値は初期化で与える）
 #
 if $appldirs.empty?
@@ -242,9 +268,8 @@
 end
 $applname ||= "sample1"
-if $option_t.nil?
-  $applobjs.unshift($applname + ".o")
-end
 $cfgfile ||= $applname + ".cfg"
 $cdlfile ||= $applname + ".cdl"
+$applobjs.unshift($applname + ".o") if !$option_t
+$bannerobj ||= ($omit_tecs == "") ? "tBannerMain.o" : "banner.o"
 if $srcdir.nil?
   # ソースディレクトリ名を取り出す
@@ -261,6 +286,7 @@
 end
 $tempmakefile ||= $srcdir + "/sample/Makefile"
+$tecsdir ||= "\$(SRCDIR)/tecsgen"
 $cfg ||= $ruby + " \$(SRCDIR)/cfg/cfg.rb"
-$tecsgen ||= $ruby + " \$(SRCDIR)/tecsgen/tecsgen.rb"
+$tecsgen ||= $ruby + " \$(TECSDIR)/tecsgen.rb"
 
 #
@@ -294,4 +320,5 @@
 $vartable["APPLOBJS"] = $applobjs.join(" ")
 $vartable["SYSSVCOBJS"] = $syssvcobjs.join(" ")
+$vartable["BANNEROBJ"] = $bannerobj
 $vartable["KERNEL_LIB"] = $kernel_lib
 $vartable["KERNEL_FUNCOBJS"] = $kernel_funcobjs
@@ -299,6 +326,7 @@
 $vartable["SRCABSDIR"] = $srcabsdir
 $vartable["SRCLANG"] = $srclang
-$vartable["DEPDIR"] = $depdir
+$vartable["OBJDIR"] = $objdir
 $vartable["OMIT_TECS"] = $omit_tecs
+$vartable["TECSDIR"] = $tecsdir
 $vartable["ENABLE_TRACE"] = $enable_trace
 $vartable["DEVTOOLDIR"] = $devtooldir
@@ -309,4 +337,5 @@
 $vartable["CDEFS"] = $cdefs.join(" ")
 $vartable["LDFLAGS"] = $ldflags.join(" ")
+$vartable["LIBS"] = $libs.join(" ")
 $vartable["OBJEXT"] = GetObjectExtension()
 $vartable["TINETDIR"] = $tinetdir
@@ -362,5 +391,5 @@
 #  依存関係ファイルのディレクトリの作成
 #
-if !File.directory?($depdir)
-  Dir.mkdir($depdir)
-end
+if !File.directory?($objdir)
+  Dir.mkdir($objdir)
+end
Index: EcnlProtoTool/trunk/asp3_dcre/include/kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/kernel.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/include/kernel.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2015 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -80,4 +80,16 @@
 #endif /* TOPPERS_TARGET_SUPPORT_ENA_INT */
 
+#ifdef TOPPERS_TARGET_SUPPORT_CLR_INT
+#define TOPPERS_SUPPORT_CLR_INT			/* clr_intがサポートされている */
+#endif /* TOPPERS_TARGET_SUPPORT_CLR_INT */
+
+#ifdef TOPPERS_TARGET_SUPPORT_RAS_INT
+#define TOPPERS_SUPPORT_RAS_INT			/* ras_intがサポートされている */
+#endif /* TOPPERS_TARGET_SUPPORT_RAS_INT */
+
+#ifdef TOPPERS_TARGET_SUPPORT_PRB_INT
+#define TOPPERS_SUPPORT_PRB_INT			/* prb_intがサポートされている */
+#endif /* TOPPERS_TARGET_SUPPORT_PRB_INT */
+
 #define TOPPERS_SUPPORT_DYNAMIC_CRE		/* 動的生成機能拡張 */
 
@@ -195,5 +207,5 @@
 	PRI			itskpri;	/* タスクの起動時優先度 */
 	size_t		stksz;		/* タスクのスタック領域のサイズ */
-	STK_T 		*stk;		/* タスクのスタック領域の先頭番地 */
+	STK_T		*stk;		/* タスクのスタック領域の先頭番地 */
 } T_CTSK;
 
@@ -235,5 +247,5 @@
 	ATR		dtqatr;		/* データキュー属性 */
 	uint_t	dtqcnt;		/* データキュー管理領域に格納できるデータ数 */
-	void 	*dtqmb;		/* データキュー管理領域の先頭番地 */
+	void	*dtqmb;		/* データキュー管理領域の先頭番地 */
 } T_CDTQ;
 
@@ -249,5 +261,5 @@
 	PRI		maxdpri;	/* 優先度データキューに送信できるデータ優先度の最
 						   大値 */
-	void 	*pdqmb;		/* 優先度データキュー管理領域の先頭番地 */
+	void	*pdqmb;		/* 優先度データキュー管理領域の先頭番地 */
 } T_CPDQ;
 
@@ -275,6 +287,6 @@
 	uint_t	blkcnt;		/* 獲得できる固定長メモリブロックの数 */
 	uint_t	blksz;		/* 固定長メモリブロックのサイズ */
-	MPF_T 	*mpf;		/* 固定長メモリプール領域の先頭番地 */
-	void 	*mpfmb;		/* 固定長メモリプール管理領域の先頭番地 */
+	MPF_T	*mpf;		/* 固定長メモリプール領域の先頭番地 */
+	void	*mpfmb;		/* 固定長メモリプール管理領域の先頭番地 */
 } T_CMPF;
 
@@ -471,4 +483,7 @@
 extern ER		dis_int(INTNO intno) throw();
 extern ER		ena_int(INTNO intno) throw();
+extern ER		clr_int(INTNO intno) throw();
+extern ER		ras_int(INTNO intno) throw();
+extern ER_BOOL	prb_int(INTNO intno) throw();
 extern ER		chg_ipm(PRI intpri) throw();
 extern ER		get_ipm(PRI *p_intpri) throw();
@@ -508,4 +523,7 @@
 #define idis_int(intno)						dis_int(intno)
 #define iena_int(intno)						ena_int(intno)
+#define iclr_int(intno)						clr_int(intno)
+#define iras_int(intno)						ras_int(intno)
+#define iprb_int(intno)						prb_int(intno)
 #define ixsns_dpn(p_excinf)					xsns_dpn(p_excinf)
 
@@ -613,6 +631,6 @@
 #define TKERNEL_MAKER	UINT_C(0x0118)	/* カーネルのメーカーコード */
 #define TKERNEL_PRID	UINT_C(0x0007)	/* カーネルの識別番号 */
-#define TKERNEL_SPVER	UINT_C(0xf631)	/* カーネル仕様のバージョン番号 */
-#define TKERNEL_PRVER	UINT_C(0x3010)	/* カーネルのバージョン番号 */
+#define TKERNEL_SPVER	UINT_C(0xf634)	/* カーネル仕様のバージョン番号 */
+#define TKERNEL_PRVER	UINT_C(0x3050)	/* カーネルのバージョン番号 */
 
 /*
@@ -632,5 +650,5 @@
  *  システム時刻の調整できる範囲（単位：μ秒）
  */
-#define TMIN_ADJTIM		-1000000		/* システム時刻の最小調整時間 */
+#define TMIN_ADJTIM		(-1000000)		/* システム時刻の最小調整時間 */
 #define TMAX_ADJTIM		1000000			/* システム時刻の最大調整時間 */
 
@@ -654,14 +672,17 @@
 #define ROUND_MPF_T(blksz)	TOPPERS_ROUND_SZ(blksz, sizeof(MPF_T))
 
+#define COUNT_MB_T(sz)		TOPPERS_COUNT_SZ(sz, sizeof(MB_T))
+#define ROUND_MB_T(sz)		TOPPERS_ROUND_SZ(sz, sizeof(MB_T))
+
 #define TSZ_DTQMB(dtqcnt)	(sizeof(intptr_t) * (dtqcnt))
-#define TCNT_DTQMB(dtqcnt)	TOPPERS_COUNT_SZ(TSZ_DTQMB(dtqcnt), sizeof(MB_T))
+#define TCNT_DTQMB(dtqcnt)	COUNT_MB_T(TSZ_DTQMB(dtqcnt))
 
 #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 TCNT_PDQMB(pdqcnt)	COUNT_MB_T(TSZ_PDQMB(pdqcnt))
 
 #define TSZ_MPFMB(blkcnt)	(sizeof(uint_t) * (blkcnt))
-#define TCNT_MPFMB(blkcnt)	TOPPERS_COUNT_SZ(TSZ_MPFMB(blkcnt), sizeof(MB_T))
+#define TCNT_MPFMB(blkcnt)	COUNT_MB_T(TSZ_MPFMB(blkcnt))
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/include/sil.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/sil.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/include/sil.h	(revision 429)
@@ -5,5 +5,5 @@
  *  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
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -276,4 +276,72 @@
 #endif /* TOPPERS_OMIT_SIL_ACCESS */
 
+#ifndef TOPPERS_OMIT_SIL_SYNC_WRITE
+
+/*
+ *  8ビット単位の同期書込み
+ */
+#ifdef UINT8_MAX
+
+Inline void
+sil_swrb_mem(uint8_t *mem, uint8_t data)
+{
+	sil_wrb_mem(mem, data);
+	TOPPERS_SIL_WRITE_SYNC();
+}
+
+#endif /* UINT8_MAX */
+
+/*
+ *  16ビット単位の同期書込み
+ */
+
+Inline void
+sil_swrh_mem(uint16_t *mem, uint16_t data)
+{
+	sil_wrh_mem(mem, data);
+	TOPPERS_SIL_WRITE_SYNC();
+}
+
+Inline void
+sil_swrh_lem(uint16_t *mem, uint16_t data)
+{
+	sil_wrh_lem(mem, data);
+	TOPPERS_SIL_WRITE_SYNC();
+}
+
+Inline void
+sil_swrh_bem(uint16_t *mem, uint16_t data)
+{
+	sil_wrh_bem(mem, data);
+	TOPPERS_SIL_WRITE_SYNC();
+}
+
+/*
+ *  32ビット単位の同期書込み
+ */
+
+Inline void
+sil_swrw_mem(uint32_t *mem, uint32_t data)
+{
+	sil_wrw_mem(mem, data);
+	TOPPERS_SIL_WRITE_SYNC();
+}
+
+Inline void
+sil_swrw_lem(uint32_t *mem, uint32_t data)
+{
+	sil_wrw_lem(mem, data);
+	TOPPERS_SIL_WRITE_SYNC();
+}
+
+Inline void
+sil_swrw_bem(uint32_t *mem, uint32_t data)
+{
+	sil_wrw_bem(mem, data);
+	TOPPERS_SIL_WRITE_SYNC();
+}
+
+#endif /* TOPPERS_OMIT_SIL_SYNC_WRITE */
+
 #endif /* TOPPERS_MACRO_ONLY */
 
Index: EcnlProtoTool/trunk/asp3_dcre/include/t_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/t_stddef.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/include/t_stddef.h	(revision 429)
@@ -5,5 +5,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2015 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -113,5 +113,12 @@
 #endif /* UINT64_MAX */
 typedef	uint32_t		PRCTIM;		/* プロセッサ時間［NGKI0573］*/
+#ifndef USE_64BIT_HRTCNT
 typedef	uint32_t		HRTCNT;		/* 高分解能タイマのカウント値 */
+#else /* USE_64BIT_HRTCNT */
+#ifndef UINT64_MAX
+#error 64bit data types are required when USE_64BIT_HRTCNT.
+#endif
+typedef	uint64_t		HRTCNT;		/* 高分解能タイマのカウント値 */
+#endif /* USE_64BIT_HRTCNT */
 
 typedef	TOPPERS_fp		FP;			/* プログラムの起動番地 */
@@ -214,5 +221,6 @@
  */
 #ifndef offsetof
-#define	offsetof(structure, field)	((uintptr_t) &(((structure *) 0)->field))
+#define	offsetof(structure, field) \
+		((uintptr_t)(((char *) &(((structure *) 0)->field)) - ((char *) 0)))
 #endif /* offsetof */
 
Index: EcnlProtoTool/trunk/asp3_dcre/include/t_stdlib.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/t_stdlib.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/include/t_stdlib.h	(revision 429)
@@ -61,13 +61,4 @@
 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
 }
Index: EcnlProtoTool/trunk/asp3_dcre/include/t_syslog.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/include/t_syslog.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/include/t_syslog.h	(revision 429)
@@ -1,10 +1,9 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  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-2014 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -69,4 +68,8 @@
 #include <t_stddef.h>
 
+#ifndef TOPPERS_MACRO_ONLY
+#include <stdarg.h>
+#endif /* TOPPERS_MACRO_ONLY */
+
 /*
  *  ログ情報の種別の定義
@@ -77,6 +80,6 @@
 #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_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例外ハンドラ */
@@ -124,61 +127,51 @@
 
 /*
- *  ログ情報の重要度のビットマップを作るためのマクロ
- */
-#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;
+ *  ログ情報の出力
+ *
+ *  ログ情報の出力は，システムログ機能のアダプタ経由で行う．
+ */
+
+extern ER	syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw();
+
+#define syslog_write(prio, p_syslog) \
+						((void) syslog_wri_log(prio, p_syslog))
 
 #ifndef TOPPERS_OMIT_SYSLOG
-
-/*
- *  ログ情報を出力するためのライブラリ関数
- *
- *  TECSで記述されたシステムログ機能を直接呼び出す．
- */
-
-extern ER	tSysLog_eSysLog_write(uint_t prio, const SYSLOG *p_syslog) throw();
-
-Inline void
-_syslog_0(uint_t prio, uint_t type)
-{
-	SYSLOG	logbuf;
-
-	logbuf.logtype = type;
-	(void) tSysLog_eSysLog_write(prio, &logbuf);
-}
-
-Inline void
-_syslog_1(uint_t prio, uint_t type, LOGPAR arg1)
-{
-	SYSLOG	logbuf;
-
-	logbuf.logtype = type;
-	logbuf.logpar[0] = arg1;
-	(void) tSysLog_eSysLog_write(prio, &logbuf);
-}
-
-Inline void
-_syslog_2(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2)
-{
-	SYSLOG	logbuf;
-
-	logbuf.logtype = type;
-	logbuf.logpar[0] = arg1;
-	logbuf.logpar[1] = arg2;
-	(void) tSysLog_eSysLog_write(prio, &logbuf);
-}
-
-Inline void
-_syslog_3(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3)
+/*
+ *  システムログ出力のための下位のライブラリ関数
+ */
+
+Inline void
+t_syslog_0(uint_t prio, uint_t type)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	syslog_write(prio, &logbuf);
+}
+
+Inline void
+t_syslog_1(uint_t prio, uint_t type, LOGPAR arg1)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	logbuf.logpar[0] = arg1;
+	syslog_write(prio, &logbuf);
+}
+
+Inline void
+t_syslog_2(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	logbuf.logpar[0] = arg1;
+	logbuf.logpar[1] = arg2;
+	syslog_write(prio, &logbuf);
+}
+
+Inline void
+t_syslog_3(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3)
 {
 	SYSLOG	logbuf;
@@ -188,9 +181,9 @@
 	logbuf.logpar[1] = arg2;
 	logbuf.logpar[2] = arg3;
-	(void) tSysLog_eSysLog_write(prio, &logbuf);
-}
-
-Inline void
-_syslog_4(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
+	syslog_write(prio, &logbuf);
+}
+
+Inline void
+t_syslog_4(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
 											LOGPAR arg3, LOGPAR arg4)
 {
@@ -202,9 +195,9 @@
 	logbuf.logpar[2] = arg3;
 	logbuf.logpar[3] = arg4;
-	(void) tSysLog_eSysLog_write(prio, &logbuf);
-}
-
-Inline void
-_syslog_5(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
+	syslog_write(prio, &logbuf);
+}
+
+Inline void
+t_syslog_5(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
 								LOGPAR arg3, LOGPAR arg4, LOGPAR arg5)
 {
@@ -217,9 +210,9 @@
 	logbuf.logpar[3] = arg4;
 	logbuf.logpar[4] = arg5;
-	(void) tSysLog_eSysLog_write(prio, &logbuf);
-}
-
-Inline void
-_syslog_6(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
+	syslog_write(prio, &logbuf);
+}
+
+Inline void
+t_syslog_6(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
 					LOGPAR arg3, LOGPAR arg4, LOGPAR arg5, LOGPAR arg6)
 {
@@ -233,5 +226,5 @@
 	logbuf.logpar[4] = arg5;
 	logbuf.logpar[5] = arg6;
-	(void) tSysLog_eSysLog_write(prio, &logbuf);
+	syslog_write(prio, &logbuf);
 }
 
@@ -239,8 +232,34 @@
  *  ログ情報（コメント）を出力するためのライブラリ関数（vasyslog.c）
  */
-extern void	syslog(uint_t prio, const char *format, ...) throw();
+extern void	tt_syslog(SYSLOG *p_logbuf, const char *format, va_list ap);
+
+Inline void
+syslog(uint_t prio, const char *format, ...)
+{
+	va_list	ap;
+	SYSLOG	logbuf;
+
+	va_start(ap, format);
+	tt_syslog(&logbuf, format, ap);
+	va_end(ap);
+	syslog_write(prio, &logbuf);
+}
+
+/*
+ *  エラーメッセージを出力するためのライブラリ関数（t_perror.c）
+ */
+extern void	tt_perror(SYSLOG *p_logbuf, const char *file, int_t line,
+		 									const char *expr, ER ercd);
+
+Inline void
+t_perror(uint_t prio, const char *file, int_t line, const char *expr, ER ercd)
+{
+	SYSLOG	logbuf;
+
+	tt_perror(&logbuf, file, line, expr, ercd);
+	syslog_write(prio, &logbuf);
+}
 
 #else /* TOPPERS_OMIT_SYSLOG */
-
 /*
  *  システムログ出力を抑止する場合
@@ -248,25 +267,25 @@
 
 Inline void
-_syslog_0(uint_t prio, uint_t type)
-{
-}
-
-Inline void
-_syslog_1(uint_t prio, uint_t type, LOGPAR arg1)
-{
-}
-
-Inline void
-_syslog_2(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2)
-{
-}
-
-Inline void
-_syslog_3(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3)
-{
-}
-
-Inline void
-_syslog_4(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
+t_syslog_0(uint_t prio, uint_t type)
+{
+}
+
+Inline void
+t_syslog_1(uint_t prio, uint_t type, LOGPAR arg1)
+{
+}
+
+Inline void
+t_syslog_2(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2)
+{
+}
+
+Inline void
+t_syslog_3(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2, LOGPAR arg3)
+{
+}
+
+Inline void
+t_syslog_4(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
 											LOGPAR arg3, LOGPAR arg4)
 {
@@ -274,5 +293,5 @@
 
 Inline void
-_syslog_5(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
+t_syslog_5(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
 								LOGPAR arg3, LOGPAR arg4, LOGPAR arg5)
 {
@@ -280,5 +299,5 @@
 
 Inline void
-_syslog_6(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
+t_syslog_6(uint_t prio, uint_t type, LOGPAR arg1, LOGPAR arg2,
 					LOGPAR arg3, LOGPAR arg4, LOGPAR arg5, LOGPAR arg6)
 {
@@ -289,9 +308,14 @@
 {
 }
+												
+Inline void
+t_perror(uint_t prio, const char *file, int_t line, const char *expr, ER ercd)
+{
+}
 
 #endif /* TOPPERS_OMIT_SYSLOG */
 
 /*
- *  ログ情報（コメント）を出力するためのマクロ
+ *  システムログ出力のためのライブラリ関数
  *
  *  formatおよび後続の引数から作成したメッセージを，重大度prioでログ情
@@ -301,25 +325,25 @@
 
 #define syslog_0(prio, format) \
-				_syslog_1(prio, LOG_TYPE_COMMENT, (LOGPAR)(format))
+				t_syslog_1(prio, LOG_TYPE_COMMENT, (LOGPAR)(format))
 
 #define syslog_1(prio, format, arg1) \
-				_syslog_2(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
+				t_syslog_2(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
 														(LOGPAR)(arg1))
 
 #define syslog_2(prio, format, arg1, arg2) \
-				_syslog_3(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
+				t_syslog_3(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
 										(LOGPAR)(arg1), (LOGPAR)(arg2))
 
 #define syslog_3(prio, format, arg1, arg2, arg3) \
-				_syslog_4(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
+				t_syslog_4(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
 						(LOGPAR)(arg1), (LOGPAR)(arg2), (LOGPAR)(arg3))
 
 #define syslog_4(prio, format, arg1, arg2, arg3, arg4) \
-				_syslog_5(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
+				t_syslog_5(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
 						(LOGPAR)(arg1), (LOGPAR)(arg2), (LOGPAR)(arg3), \
 														(LOGPAR)(arg4))
 
 #define syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5) \
-				_syslog_6(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
+				t_syslog_6(prio, LOG_TYPE_COMMENT, (LOGPAR)(format), \
 						(LOGPAR)(arg1), (LOGPAR)(arg2), (LOGPAR)(arg3), \
 										(LOGPAR)(arg4), (LOGPAR)(arg5))
@@ -330,5 +354,5 @@
 #ifndef TOPPERS_assert_fail
 #define TOPPERS_assert_fail(exp, file, line) \
-				_syslog_3(LOG_EMERG, LOG_TYPE_ASSERT, (LOGPAR)(file), \
+				t_syslog_3(LOG_EMERG, LOG_TYPE_ASSERT, (LOGPAR)(file), \
 										(LOGPAR)(line), (LOGPAR)(exp))
 #endif /* TOPPERS_assert_fail */
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/Makefile.kernel
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/Makefile.kernel	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/Makefile.kernel	(revision 429)
@@ -6,5 +6,5 @@
 #  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
+#  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -68,6 +68,6 @@
 		wobjwai.o wobjwaitmo.o iniwque.o
 
-time_event = tmeini.o tmeup.o tmedown.o tmecur.o tmeset.o \
-		tmereg.o tmeenq.o tmedeq.o tmechk.o tmeltim.o sigtim.o
+time_event = tmeini.o tmeup.o tmedown.o tmecur.o tmeset.o tmereg.o \
+		tmeenqrel.o tmedeq.o tmechk.o tmeltim.o sigtim.o
 
 task_manage = acre_tsk.o del_tsk.o act_tsk.o can_act.o get_tst.o \
@@ -112,6 +112,6 @@
 		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
+interrupt = isrini.o isrcal.o acre_isr.o del_isr.o intini.o \
+		dis_int.o ena_int.o clr_int.o ras_int.o prb_int.o chg_ipm.o get_ipm.o
 
 exception = excini.o xsns_dpn.o
@@ -120,23 +120,23 @@
 #  生成されるオブジェクトファイルの依存関係の定義
 #
-$(startup) $(startup:.o=.s): startup.c
-$(task) $(task:.o=.s): task.c
-$(taskhook) $(taskhook:.o=.s): taskhook.c
-$(wait) $(wait:.o=.s): wait.c
-$(time_event) $(time_event:.o=.s): time_event.c
-$(task_manage) $(task_manage:.o=.s): task_manage.c
-$(task_refer) $(task_refer:.o=.s): task_refer.c
-$(task_sync) $(task_sync:.o=.s): task_sync.c
-$(task_term) $(task_term:.o=.s): task_term.c
-$(semaphore) $(semaphore:.o=.s): semaphore.c
-$(eventflag) $(eventflag:.o=.s): eventflag.c
-$(dataqueue) $(dataqueue:.o=.s): dataqueue.c
-$(pridataq) $(pridataq:.o=.s): pridataq.c
-$(mutex) $(mutex:.o=.s): mutex.c
-$(mempfix) $(mempfix:.o=.s): mempfix.c
-$(time_manage) $(time_manage:.o=.s): time_manage.c
-$(cyclic) $(cyclic:.o=.s): cyclic.c
-$(alarm) $(alarm:.o=.s): alarm.c
-$(sys_manage) $(sys_manage:.o=.s): sys_manage.c
-$(interrupt) $(interrupt:.o=.s): interrupt.c
-$(exception) $(exception:.o=.s): exception.c
+$(addprefix $(OBJDIR)/, $(startup)) $(startup:.o=.s): startup.c
+$(addprefix $(OBJDIR)/, $(task)) $(task:.o=.s): task.c
+$(addprefix $(OBJDIR)/, $(taskhook)) $(taskhook:.o=.s): taskhook.c
+$(addprefix $(OBJDIR)/, $(wait)) $(wait:.o=.s): wait.c
+$(addprefix $(OBJDIR)/, $(time_event)) $(time_event:.o=.s): time_event.c
+$(addprefix $(OBJDIR)/, $(task_manage)) $(task_manage:.o=.s): task_manage.c
+$(addprefix $(OBJDIR)/, $(task_refer)) $(task_refer:.o=.s): task_refer.c
+$(addprefix $(OBJDIR)/, $(task_sync)) $(task_sync:.o=.s): task_sync.c
+$(addprefix $(OBJDIR)/, $(task_term)) $(task_term:.o=.s): task_term.c
+$(addprefix $(OBJDIR)/, $(semaphore)) $(semaphore:.o=.s): semaphore.c
+$(addprefix $(OBJDIR)/, $(eventflag)) $(eventflag:.o=.s): eventflag.c
+$(addprefix $(OBJDIR)/, $(dataqueue)) $(dataqueue:.o=.s): dataqueue.c
+$(addprefix $(OBJDIR)/, $(pridataq)) $(pridataq:.o=.s): pridataq.c
+$(addprefix $(OBJDIR)/, $(mutex)) $(mutex:.o=.s): mutex.c
+$(addprefix $(OBJDIR)/, $(mempfix)) $(mempfix:.o=.s): mempfix.c
+$(addprefix $(OBJDIR)/, $(time_manage)) $(time_manage:.o=.s): time_manage.c
+$(addprefix $(OBJDIR)/, $(cyclic)) $(cyclic:.o=.s): cyclic.c
+$(addprefix $(OBJDIR)/, $(alarm)) $(alarm:.o=.s): alarm.c
+$(addprefix $(OBJDIR)/, $(sys_manage)) $(sys_manage:.o=.s): sys_manage.c
+$(addprefix $(OBJDIR)/, $(interrupt)) $(interrupt:.o=.s): interrupt.c
+$(addprefix $(OBJDIR)/, $(exception)) $(exception:.o=.s): exception.c
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -164,6 +164,6 @@
 	ALMINIB		*p_alminib;
 	ATR			almatr;
-	T_NFYINFO	nfyinfo, *p_nfyinfo;
-	ER			ercd, rercd;
+	T_NFYINFO	*p_nfyinfo;
+	ER			ercd;
 
 	LOG_ACRE_ALM_ENTER(pk_calm);
@@ -171,10 +171,8 @@
 
 	almatr = pk_calm->almatr;
-	nfyinfo = pk_calm->nfyinfo;
-
-	CHECK_RSATR(almatr, TA_NULL);
-	rercd = check_nfyinfo(&nfyinfo);
-	if (rercd != E_OK) {
-		ercd = rercd;
+
+	CHECK_VALIDATR(almatr, TA_NULL);
+	ercd = check_nfyinfo(&(pk_calm->nfyinfo));
+	if (ercd != E_OK) {
 		goto error_exit;
 	}
@@ -189,11 +187,11 @@
 		p_alminib = (ALMINIB *)(p_almcb->p_alminib);
 		p_alminib->almatr = almatr;
-		if (nfyinfo.nfymode == TNFY_HANDLER) {
-			p_alminib->exinf = nfyinfo.nfy.handler.exinf;
-			p_alminib->nfyhdr = (NFYHDR)(nfyinfo.nfy.handler.tmehdr);
+		if (pk_calm->nfyinfo.nfymode == TNFY_HANDLER) {
+			p_alminib->exinf = pk_calm->nfyinfo.nfy.handler.exinf;
+			p_alminib->nfyhdr = (NFYHDR)(pk_calm->nfyinfo.nfy.handler.tmehdr);
 		}
 		else {
 			p_nfyinfo = &aalm_nfyinfo_table[p_alminib - aalminib_table];
-			*p_nfyinfo = nfyinfo;
+			*p_nfyinfo = pk_calm->nfyinfo;
 			p_alminib->exinf = (intptr_t) p_nfyinfo;
 			p_alminib->nfyhdr = notify_handler;
@@ -283,5 +281,5 @@
 			p_almcb->almsta = true;
 		}
-		tmevtb_enqueue(&(p_almcb->tmevtb), almtim);
+		tmevtb_enqueue_reltim(&(p_almcb->tmevtb), almtim);
 		ercd = E_OK;
 	}
@@ -385,4 +383,7 @@
 	/*
 	 *  通知ハンドラを，CPUロック解除状態で呼び出す．
+	 *
+	 *  アラーム通知の生成／削除はタスクからしか行えないため，アラーム
+	 *  通知初期化ブロックをCPUロック解除状態で参照しても問題ない．
 	 */
 	unlock_cpu();
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -52,7 +52,7 @@
 
   def prepare(key, params)
-    # almatrが無効の場合（E_RSATR）［NGKI2491］
-    #（TA_STA以外のビットがセットされている場合）
-    if (params[:almatr] & ~($TA_STA)) != 0
+    # almatrが無効の場合（E_RSATR）［NGKI2491］［NGKI3423］［NGKI3424］
+    #（TA_NULLでない場合）
+    if (params[:almatr] != $TA_NULL)
       error_illegal_id("E_RSATR", params, :almatr, :almid)
     end
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/allfunc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/allfunc.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/allfunc.h	(revision 429)
@@ -4,5 +4,5 @@
  *      Advanced Standard Profile Kernel
  * 
- *  Copyright (C) 2005-2015 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -81,5 +81,5 @@
 #define TOPPERS_tmeset
 #define TOPPERS_tmereg
-#define TOPPERS_tmeenq
+#define TOPPERS_tmeenqrel
 #define TOPPERS_tmedeq
 #define TOPPERS_tmechk
@@ -257,4 +257,7 @@
 #define TOPPERS_dis_int
 #define TOPPERS_ena_int
+#define TOPPERS_clr_int
+#define TOPPERS_ras_int
+#define TOPPERS_prb_int
 #define TOPPERS_chg_ipm
 #define TOPPERS_get_ipm
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/check.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/check.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/check.h	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -65,15 +65,4 @@
 
 /*
- *  オブジェクト番号の範囲の判定
- */
-#ifndef VALID_INTNO_DISINT
-#define VALID_INTNO_DISINT(intno)    VALID_INTNO(intno)
-#endif /* VALID_INTNO_DISINT */
-
-#ifndef VALID_INTNO_CREISR
-#define VALID_INTNO_CREISR(intno)    VALID_INTNO(intno)
-#endif /* VALID_INTNO_CREISR */
-
-/*
  *  優先度の範囲の判定
  */
@@ -85,9 +74,4 @@
 				(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 */
-
 /*
  *  相対時間の範囲の判定
@@ -98,6 +82,5 @@
  *  タイムアウト指定値の範囲の判定
  */
-#define VALID_TMOUT(tmout)	((tmout) <= TMAX_RELTIM || (tmout) == TMO_FEVR \
-													|| (tmout) == TMO_POL)
+#define VALID_TMOUT(tmout)	((tmout) <= TMAX_RELTIM || (tmout) == TMO_FEVR)
 
 /*
@@ -208,5 +191,5 @@
 
 /*
- *  オブジェクトIDのチェック（E_ID）
+ *  不正ID番号のチェック（E_ID）
  */
 #define CHECK_ID(exp) do {									\
@@ -218,7 +201,7 @@
 
 /*
- *  予約属性エラーのチェック（E_RSATR）
- */
-#define CHECK_RSATR(atr, valid_atr) do {					\
+ *  属性が無効なビットが立っていないかのチェック（E_RSATR）
+ */
+#define CHECK_VALIDATR(atr, valid_atr) do {					\
 	if (((atr) & ~(valid_atr)) != 0U) {						\
 		ercd = E_RSATR;										\
@@ -238,5 +221,5 @@
 
 /*
- *  不正使用エラーのチェック（E_ILUSE）
+ *  サービスコール不正使用のチェック（E_ILUSE）
  */
 #define CHECK_ILUSE(exp) do {								\
@@ -248,5 +231,5 @@
 
 /*
- *  静的なオブジェクト状態エラーのチェック（E_OBJ）
+ *  オブジェクト状態エラーのチェック（E_OBJ）
  */
 #define CHECK_OBJ(exp) do {									\
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -175,8 +175,7 @@
 	CYCINIB		*p_cycinib;
 	ATR			cycatr;
-	T_NFYINFO	nfyinfo, *p_nfyinfo;
-	RELTIM		cyctim;
-	RELTIM		cycphs;
-	ER			ercd, rercd;
+	RELTIM		cyctim, cycphs;
+	T_NFYINFO	*p_nfyinfo;
+	ER			ercd;
 
 	LOG_ACRE_CYC_ENTER(pk_ccyc);
@@ -184,12 +183,10 @@
 
 	cycatr = pk_ccyc->cycatr;
-	nfyinfo = pk_ccyc->nfyinfo;
 	cyctim = pk_ccyc->cyctim;
 	cycphs = pk_ccyc->cycphs;
 
-	CHECK_RSATR(cycatr, TA_STA);
-	rercd = check_nfyinfo(&nfyinfo);
-	if (rercd != E_OK) {
-		ercd = rercd;
+	CHECK_VALIDATR(cycatr, TA_STA);
+	ercd = check_nfyinfo(&(pk_ccyc->nfyinfo));
+	if (ercd != E_OK) {
 		goto error_exit;
 	}
@@ -206,11 +203,11 @@
 		p_cycinib = (CYCINIB *)(p_cyccb->p_cycinib);
 		p_cycinib->cycatr = cycatr;
-		if (nfyinfo.nfymode == TNFY_HANDLER) {
-			p_cycinib->exinf = nfyinfo.nfy.handler.exinf;
-			p_cycinib->nfyhdr = (NFYHDR)(nfyinfo.nfy.handler.tmehdr);
+		if (pk_ccyc->nfyinfo.nfymode == TNFY_HANDLER) {
+			p_cycinib->exinf = pk_ccyc->nfyinfo.nfy.handler.exinf;
+			p_cycinib->nfyhdr = (NFYHDR)(pk_ccyc->nfyinfo.nfy.handler.tmehdr);
 		}
 		else {
 			p_nfyinfo = &acyc_nfyinfo_table[p_cycinib - acycinib_table];
-			*p_nfyinfo = nfyinfo;
+			*p_nfyinfo = pk_ccyc->nfyinfo;
 			p_cycinib->exinf = (intptr_t) p_nfyinfo;
 			p_cycinib->nfyhdr = notify_handler;
@@ -221,5 +218,6 @@
 		if ((p_cyccb->p_cycinib->cycatr & TA_STA) != 0U) {
 			p_cyccb->cycsta = true;
-			tmevtb_enqueue(&(p_cyccb->tmevtb), p_cyccb->p_cycinib->cycphs);
+			tmevtb_enqueue_reltim(&(p_cyccb->tmevtb),
+										p_cyccb->p_cycinib->cycphs);
 		}
 		else {
@@ -311,5 +309,5 @@
 		 *  初回の起動のためのタイムイベントを登録する［ASPD1036］．
 		 */
-		tmevtb_enqueue(&(p_cyccb->tmevtb), p_cyccb->p_cycinib->cycphs);
+		tmevtb_enqueue_reltim(&(p_cyccb->tmevtb), p_cyccb->p_cycinib->cycphs);
 		ercd = E_OK;
 	}
@@ -414,4 +412,7 @@
 	/*
 	 *  通知ハンドラを，CPUロック解除状態で呼び出す．
+	 *
+	 *  周期通知の生成／削除はタスクからしか行えないため，周期通知初期
+	 *  化ブロックをCPUロック解除状態で参照しても問題ない．
 	 */
 	unlock_cpu();
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -52,5 +52,5 @@
 
   def prepare(key, params)
-    # cycatrが無効の場合（E_RSATR）［NGKI2383］
+    # cycatrが無効の場合（E_RSATR）［NGKI2383］［NGKI2370］［ASPS0172］
     #（TA_STA以外のビットがセットされている場合）
     if (params[:cycatr] & ~($TA_STA)) != 0
@@ -58,10 +58,12 @@
     end
 
-    # (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合（E_PAR）［NGKI2397］
+    # cyctimが有効範囲外の場合（E_PAR）［NGKI2397］
+    #（0 < cyctim && cyctim <= TMAX_RELTIMでない場合）
     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］
+    # cycphsが有効範囲外の場合（E_PAR）［NGKI2399］
+    #（0 <= cycphs && cycphs <= TMAX_RELTIMでない場合）
     if !(0 <= params[:cycphs] && params[:cycphs] <= $TMAX_RELTIM)
       error_illegal_id("E_PAR", params, :cycphs, :cycid)
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.c	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -356,5 +356,8 @@
 	p_dtqmb = pk_cdtq->dtqmb;
 
-	CHECK_RSATR(dtqatr, TA_TPRI);
+	CHECK_VALIDATR(dtqatr, TA_TPRI);
+	if (p_dtqmb != NULL) {
+		CHECK_PAR(MB_ALIGN(p_dtqmb));
+	}
 
 	lock_cpu();
@@ -364,5 +367,5 @@
 	else {
 		if (dtqcnt != 0 && p_dtqmb == NULL) {
-			p_dtqmb = kernel_malloc(sizeof(DTQMB) * dtqcnt);
+			p_dtqmb = malloc_mpk(sizeof(DTQMB) * dtqcnt);
 			dtqatr |= TA_MBALLOC;
 		}
@@ -423,5 +426,5 @@
 		p_dtqinib = (DTQINIB *)(p_dtqcb->p_dtqinib);
 		if ((p_dtqinib->dtqatr & TA_MBALLOC) != 0U) {
-			kernel_free(p_dtqinib->p_dtqmb);
+			free_mpk(p_dtqinib->p_dtqmb);
 		}
 		p_dtqinib->dtqatr = TA_NOEXS;
@@ -449,7 +452,7 @@
 snd_dtq(ID dtqid, intptr_t data)
 {
-	DTQCB	*p_dtqcb;
-	WINFO_SDTQ winfo_sdtq;
-	ER		ercd;
+	DTQCB		*p_dtqcb;
+	WINFO_SDTQ	winfo_sdtq;
+	ER			ercd;
 
 	LOG_SND_DTQ_ENTER(dtqid, data);
@@ -473,6 +476,6 @@
 	else {
 		winfo_sdtq.data = data;
-		p_runtsk->tstat = TS_WAITING_SDTQ;
-		wobj_make_wait((WOBJCB *) p_dtqcb, (WINFO_WOBJ *) &winfo_sdtq);
+		wobj_make_wait((WOBJCB *) p_dtqcb, TS_WAITING_SDTQ,
+											(WINFO_WOBJ *) &winfo_sdtq);
 		dispatch();
 		ercd = winfo_sdtq.winfo.wercd;
@@ -513,5 +516,5 @@
 			}
 			else {
-				request_dispatch();
+				request_dispatch_retint();
 			}
 		}
@@ -538,8 +541,8 @@
 tsnd_dtq(ID dtqid, intptr_t data, TMO tmout)
 {
-	DTQCB	*p_dtqcb;
-	WINFO_SDTQ winfo_sdtq;
-	TMEVTB	tmevtb;
-	ER		ercd;
+	DTQCB		*p_dtqcb;
+	WINFO_SDTQ	winfo_sdtq;
+	TMEVTB		tmevtb;
+	ER			ercd;
 
 	LOG_TSND_DTQ_ENTER(dtqid, data, tmout);
@@ -567,7 +570,6 @@
 	else {
 		winfo_sdtq.data = data;
-		p_runtsk->tstat = TS_WAITING_SDTQ;
-		wobj_make_wait_tmout((WOBJCB *) p_dtqcb, (WINFO_WOBJ *) &winfo_sdtq,
-														&tmevtb, tmout);
+		wobj_make_wait_tmout((WOBJCB *) p_dtqcb, TS_WAITING_SDTQ,
+								(WINFO_WOBJ *) &winfo_sdtq, &tmevtb, tmout);
 		dispatch();
 		ercd = winfo_sdtq.winfo.wercd;
@@ -612,8 +614,8 @@
 			}
 			else {
-				request_dispatch();
+				request_dispatch_retint();
 			}
 		}
-	ercd = E_OK;
+		ercd = E_OK;
 	}
 	unlock_cpu();
@@ -634,7 +636,7 @@
 rcv_dtq(ID dtqid, intptr_t *p_data)
 {
-	DTQCB	*p_dtqcb;
-	WINFO_RDTQ winfo_rdtq;
-	ER		ercd;
+	DTQCB		*p_dtqcb;
+	WINFO_RDTQ	winfo_rdtq;
+	ER			ercd;
 
 	LOG_RCV_DTQ_ENTER(dtqid, p_data);
@@ -657,6 +659,5 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_RDTQ;
-		make_wait(&(winfo_rdtq.winfo));
+		make_wait(TS_WAITING_RDTQ, &(winfo_rdtq.winfo));
 		queue_insert_prev(&(p_dtqcb->rwait_queue), &(p_runtsk->task_queue));
 		winfo_rdtq.p_dtqcb = p_dtqcb;
@@ -723,8 +724,8 @@
 trcv_dtq(ID dtqid, intptr_t *p_data, TMO tmout)
 {
-	DTQCB	*p_dtqcb;
-	WINFO_RDTQ winfo_rdtq;
-	TMEVTB	tmevtb;
-	ER		ercd;
+	DTQCB		*p_dtqcb;
+	WINFO_RDTQ	winfo_rdtq;
+	TMEVTB		tmevtb;
+	ER			ercd;
 
 	LOG_TRCV_DTQ_ENTER(dtqid, p_data, tmout);
@@ -751,6 +752,5 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_RDTQ;
-		make_wait_tmout(&(winfo_rdtq.winfo), &tmevtb, tmout);
+		make_wait_tmout(TS_WAITING_RDTQ, &(winfo_rdtq.winfo), &tmevtb, tmout);
 		queue_insert_prev(&(p_dtqcb->rwait_queue), &(p_runtsk->task_queue));
 		winfo_rdtq.p_dtqcb = p_dtqcb;
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -54,5 +54,5 @@
     params[:dtqmb] ||= "NULL"
 
-    # dtqatrが無効の場合（E_RSATR）［NGKI1669］
+    # dtqatrが無効の場合（E_RSATR）［NGKI1669］［NGKI1661］
     #（TA_TPRI以外のビットがセットされている場合）
     if (params[:dtqatr] & ~($TA_TPRI)) != 0
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -216,5 +216,5 @@
 	flgatr = pk_cflg->flgatr;
 
-	CHECK_RSATR(flgatr, TA_TPRI|TA_WMUL|TA_CLR);
+	CHECK_VALIDATR(flgatr, TA_TPRI|TA_WMUL|TA_CLR);
 
 	lock_cpu();
@@ -292,16 +292,18 @@
 set_flg(ID flgid, FLGPTN setptn)
 {
-	FLGCB	*p_flgcb;
-	QUEUE	*p_queue;
-	TCB		*p_tcb;
-	WINFO_FLG *p_winfo_flg;
-	ER		ercd;
+	FLGCB		*p_flgcb;
+	QUEUE		*p_queue;
+	TCB			*p_tcb;
+	WINFO_FLG	*p_winfo_flg;
+	bool_t		lock;
+	ER			ercd;
 
 	LOG_SET_FLG_ENTER(flgid, setptn);
-	CHECK_UNL();
+	lock = sense_lock();
 	CHECK_ID(VALID_FLGID(flgid));
 	p_flgcb = get_flgcb(flgid);
 
-	lock_cpu();
+	if (!lock)
+		lock_cpu();
 	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
 		ercd = E_NOEXS;
@@ -328,10 +330,11 @@
 			}
 			else {
-				request_dispatch();
+				request_dispatch_retint();
 			}
 		}
 		ercd = E_OK;
 	}
-	unlock_cpu();
+	if (!lock)
+		unlock_cpu();
 
   error_exit:
@@ -351,12 +354,14 @@
 {
 	FLGCB	*p_flgcb;
+	bool_t lock;
 	ER		ercd;
 
 	LOG_CLR_FLG_ENTER(flgid, clrptn);
-	CHECK_TSKCTX_UNL();
+	lock = sense_lock();
 	CHECK_ID(VALID_FLGID(flgid));
 	p_flgcb = get_flgcb(flgid);
 
-	lock_cpu();
+	if (!lock)
+		lock_cpu();
 	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
 		ercd = E_NOEXS;
@@ -366,5 +371,6 @@
 		ercd = E_OK;
 	}
-	unlock_cpu();
+	if (!lock)
+		unlock_cpu();
 
   error_exit:
@@ -383,7 +389,7 @@
 wai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn)
 {
-	FLGCB	*p_flgcb;
-	WINFO_FLG winfo_flg;
-	ER		ercd;
+	FLGCB		*p_flgcb;
+	WINFO_FLG	winfo_flg;
+	ER			ercd;
 
 	LOG_WAI_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn);
@@ -411,6 +417,6 @@
 		winfo_flg.waiptn = waiptn;
 		winfo_flg.wfmode = wfmode;
-		p_runtsk->tstat = TS_WAITING_FLG;
-		wobj_make_wait((WOBJCB *) p_flgcb, (WINFO_WOBJ *) &winfo_flg);
+		wobj_make_wait((WOBJCB *) p_flgcb, TS_WAITING_FLG,
+											(WINFO_WOBJ *) &winfo_flg);
 		dispatch();
 		ercd = winfo_flg.winfo.wercd;
@@ -477,8 +483,8 @@
 twai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn, TMO tmout)
 {
-	FLGCB	*p_flgcb;
-	WINFO_FLG winfo_flg;
-	TMEVTB	tmevtb;
-	ER		ercd;
+	FLGCB		*p_flgcb;
+	WINFO_FLG	winfo_flg;
+	TMEVTB		tmevtb;
+	ER			ercd;
 
 	LOG_TWAI_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn, tmout);
@@ -510,7 +516,6 @@
 		winfo_flg.waiptn = waiptn;
 		winfo_flg.wfmode = wfmode;
-		p_runtsk->tstat = TS_WAITING_FLG;
-		wobj_make_wait_tmout((WOBJCB *) p_flgcb, (WINFO_WOBJ *) &winfo_flg,
-														&tmevtb, tmout);
+		wobj_make_wait_tmout((WOBJCB *) p_flgcb, TS_WAITING_FLG,
+								(WINFO_WOBJ *) &winfo_flg, &tmevtb, tmout);
 		dispatch();
 		ercd = winfo_flg.winfo.wercd;
@@ -575,11 +580,13 @@
 	FLGCB	*p_flgcb;
 	ER		ercd;
-    
+	bool_t lock;
+
 	LOG_REF_FLG_ENTER(flgid, pk_rflg);
-	CHECK_TSKCTX_UNL();
+	lock = sense_lock();
 	CHECK_ID(VALID_FLGID(flgid));
 	p_flgcb = get_flgcb(flgid);
 
-	lock_cpu();
+	if (!lock)
+		lock_cpu();
 	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
 		ercd = E_NOEXS;
@@ -590,5 +597,6 @@
 		ercd = E_OK;
 	}
-	unlock_cpu();
+	if (!lock)
+		unlock_cpu();
 
   error_exit:
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -51,5 +51,5 @@
 
   def prepare(key, params)
-    # flgatrが無効の場合（E_RSATR）［NGKI1562］
+    # flgatrが無効の場合（E_RSATR）［NGKI1562］［NGKI1550］
     #（TA_TPRI，TA_WMUL，TA_CLR以外のビットがセットされている場合）
     if (params[:flgatr] & ~($TA_TPRI|$TA_WMUL|$TA_CLR)) != 0
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/exception.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/exception.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/exception.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -51,16 +51,28 @@
 
 #
+#  DEF_EXCで使用できるCPU例外ハンドラ番号のデフォルト定義
+#
+if !defined?($EXCNO_DEFEXC_VALID)
+  $EXCNO_DEFEXC_VALID = $EXCNO_VALID
+end
+
+#
 #  CPU例外ハンドラに関するエラーチェック
 #
-$cfgData[:DEF_EXC].each do |key, params|
-  # excnoがCPU例外ハンドラ番号として正しくない場合（E_PAR）［NGKI3134］
-  if $EXCNO_VALID.index(params[:excno]).nil?
+$cfgData[:DEF_EXC].each do |_, params|
+  # excnoが有効範囲外の場合（E_PAR）［NGKI3134］
+  if !$EXCNO_DEFEXC_VALID.include?(params[:excno])
     error_illegal("E_PAR", params, :excno)
   end
 
-  # excatrが無効の場合（E_RSATR）［NGKI3131］
+  # excatrが無効の場合（E_RSATR）［NGKI3131］［NGKI5178］［NGKI3123］
   #（TARGET_EXCATR以外のビットがセットされている場合）
   if (params[:excatr] & ~($TARGET_EXCATR)) != 0
     error_illegal_sym("E_RSATR", params, :excatr, :excno)
+  end
+
+  # ターゲット依存のエラーチェック
+  if defined? TargetCheckDefExc()
+    TargetCheckDefExc(params)
   end
 end
@@ -82,5 +94,5 @@
     #  CPU例外ハンドラのエントリ
     #
-    $cfgData[:DEF_EXC].each do |key, params|
+    $cfgData[:DEF_EXC].each do |_, params|
       $kernelCfgC.add("EXCHDR_ENTRY(#{params[:excno]}, " \
 						"#{params[:excno].val}, #{params[:exchdr]})")
@@ -92,5 +104,5 @@
     #
     $kernelCfgC.add("const EXCINIB _kernel_excinib_table[TNUM_DEF_EXCNO] = {")
-    $cfgData[:DEF_EXC].each_with_index do |(key, params), index|
+    $cfgData[:DEF_EXC].each_with_index do |(_, params), index|
       $kernelCfgC.add(",") if index > 0
       $kernelCfgC.append("\t{ (#{params[:excno]}), (#{params[:excatr]}), " \
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/genoffset.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/genoffset.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/genoffset.trb	(revision 429)
@@ -1,9 +1,8 @@
 # -*- coding: utf-8 -*-
+#
+#   TOPPERS Software
+#       Toyohashi Open Platform for Embedded Real-Time Systems
 # 
-#   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
+#   Copyright (C) 2011-2018 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 #  
@@ -37,5 +36,5 @@
 #   の責任を負わない．
 # 
-#   $Id$
+#   $Id: genoffset.trb 936 2018-04-07 09:46:42Z ertl-hiro $
 # 
 
@@ -44,25 +43,18 @@
 #
 
-# 
+#
 #  タイムスタンプファイルの指定
-# 
+#
 $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|
@@ -74,8 +66,8 @@
 end
 
-# 
-#  ビットフィールドのオフセットとビット位置の定義の生成
-# 
-def GenerateDefineBit(label, structSize, outputSize)
+#
+#  ビットフィールドのオフセットとビット位置の算出
+#
+def BitOffsetPosition(label, structSize, outputSize)
   top = SYMBOL(label)
   if top.nil?
@@ -96,52 +88,44 @@
       error_exit("bit not found in `#{label}'")
     else
-      valBit = SearchBit(val)
+      position = SearchBit(val)
       case outputSize
-      when "W"
-        if $SIL_ENDIAN_BIG
-          valBit = valBit + 24 - ((offset & 0x03) << 3)
+      when 4, "W"
+        if $endianLittle
+          position = position + ((offset & 0x03) << 3)
         else
-          valBit = valBit + ((offset & 0x03) << 3)
+          position = position + 24 - ((offset & 0x03) << 3)
         end
         offset &= ~0x03
-      when "H"
-        if $SIL_ENDIAN_BIG
-          valBit = valBit + 8 - ((offset & 0x01) << 3)
+      when 2, "H"
+        if $endianLittle
+          position = position + ((offset & 0x01) << 3)
         else
-          valBit = valBit + ((offset & 0x01) << 3)
+          position = position + 8 - ((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)}")
+    return offset, position
   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
+# 以下の定義は，過去のバージョンとの互換性のために残している．
+
+#
+#  #defineディレクティブの生成
+#
+def GenerateDefine(symbol, value)
+  $offsetH.add("#define #{symbol}\t#{value}")
+end
+
+#
+#  ビットフィールドのオフセットとビット位置の定義の生成
+#
+def GenerateDefineBit(label, structSize, outputSize)
+  offset, position = BitOffsetPosition(label, structSize, outputSize)
+  if !offset.nil?
+    GenerateDefine(label, offset)
+    GenerateDefine("#{label}_bit", position)
+    GenerateDefine("#{label}_mask", sprintf("0x%x", 1 << position))
   end
 end
-
-magicCheck(1, [ 0x12 ])
-magicCheck(2, [ 0x12, 0x34 ])
-magicCheck(4, [ 0x12, 0x34, 0x56, 0x78 ])
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -93,4 +93,28 @@
 #endif /* LOG_ENA_INT_LEAVE */
 
+#ifndef LOG_CLR_INT_ENTER
+#define LOG_CLR_INT_ENTER(intno)
+#endif /* LOG_CLR_INT_ENTER */
+
+#ifndef LOG_CLR_INT_LEAVE
+#define LOG_CLR_INT_LEAVE(ercd)
+#endif /* LOG_CLR_INT_LEAVE */
+
+#ifndef LOG_RAS_INT_ENTER
+#define LOG_RAS_INT_ENTER(intno)
+#endif /* LOG_RAS_INT_ENTER */
+
+#ifndef LOG_RAS_INT_LEAVE
+#define LOG_RAS_INT_LEAVE(ercd)
+#endif /* LOG_RAS_INT_LEAVE */
+
+#ifndef LOG_PRB_INT_ENTER
+#define LOG_PRB_INT_ENTER(intno)
+#endif /* LOG_PRB_INT_ENTER */
+
+#ifndef LOG_PRB_INT_LEAVE
+#define LOG_PRB_INT_LEAVE(ercd)
+#endif /* LOG_PRB_INT_LEAVE */
+
 #ifndef LOG_CHG_IPM_ENTER
 #define LOG_CHG_IPM_ENTER(intpri)
@@ -108,4 +132,35 @@
 #define LOG_GET_IPM_LEAVE(ercd, p_intpri)
 #endif /* LOG_GET_IPM_LEAVE */
+
+/*
+ *  割込み番号の範囲の判定
+ */
+#ifndef VALID_INTNO_DISINT
+#define VALID_INTNO_DISINT(intno)	VALID_INTNO(intno)
+#endif /* VALID_INTNO_DISINT */
+
+#ifndef VALID_INTNO_CLRINT
+#define VALID_INTNO_CLRINT(intno)	VALID_INTNO(intno)
+#endif /* VALID_INTNO_CLRINT */
+
+#ifndef VALID_INTNO_RASINT
+#define VALID_INTNO_RASINT(intno)	VALID_INTNO(intno)
+#endif /* VALID_INTNO_RASINT */
+
+#ifndef VALID_INTNO_PRBINT
+#define VALID_INTNO_PRBINT(intno)	VALID_INTNO(intno)
+#endif /* VALID_INTNO_PRBINT */
+
+#ifndef VALID_INTNO_CREISR
+#define VALID_INTNO_CREISR(intno)	VALID_INTNO(intno)
+#endif /* VALID_INTNO_CREISR */
+
+/*
+ *  割込み優先度の範囲の判定
+ */
+#ifndef VALID_INTPRI_CHGIPM
+#define VALID_INTPRI_CHGIPM(intpri)	\
+					(TMIN_INTPRI <= (intpri) && (intpri) <= TIPM_ENAALL)
+#endif /* VALID_INTPRI_CHGIPM */
 
 /*
@@ -266,5 +321,5 @@
 	isrpri = pk_cisr->isrpri;
 
-	CHECK_RSATR(isratr, TARGET_ISRATR);
+	CHECK_VALIDATR(isratr, TARGET_ISRATR);
 	CHECK_PAR(VALID_INTNO_CREISR(intno));
 	CHECK_PAR(FUNC_ALIGN(isr));
@@ -384,5 +439,6 @@
 		lock_cpu();
 	}
-	if (disable_int(intno)) {					/*［NGKI3086］*/
+	if (check_intno_cfg(intno)) {
+		disable_int(intno);						/*［NGKI3086］*/
 		ercd = E_OK;
 	}
@@ -421,5 +477,6 @@
 		lock_cpu();
 	}
-	if (enable_int(intno)) {					/*［NGKI3099］*/
+	if (check_intno_cfg(intno)) {
+		enable_int(intno);						/*［NGKI3099］*/
 		ercd = E_OK;
 	}
@@ -438,4 +495,117 @@
 #endif /* TOPPERS_SUPPORT_ENA_INT */
 #endif /* TOPPERS_ena_int */
+
+/*
+ *  割込み要求のクリア［NGKI3920］
+ */
+#ifdef TOPPERS_clr_int
+#ifdef TOPPERS_SUPPORT_CLR_INT					/*［NGKI3927］*/
+
+ER
+clr_int(INTNO intno)
+{
+	bool_t	locked;
+	ER		ercd;
+
+	LOG_CLR_INT_ENTER(intno);
+	CHECK_PAR(VALID_INTNO_CLRINT(intno));		/*［NGKI3921］［NGKI3930］*/
+
+	locked = sense_lock();
+	if (!locked) {
+		lock_cpu();
+	}
+	if (check_intno_cfg(intno) && check_intno_clear(intno)) {
+		clear_int(intno);						/*［NGKI3924］*/
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;							/*［NGKI3923］［NGKI3929］*/
+	}
+	if (!locked) {
+		unlock_cpu();
+	}
+
+  error_exit:
+	LOG_CLR_INT_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_SUPPORT_CLR_INT */
+#endif /* TOPPERS_clr_int */
+
+/*
+ *  割込みの要求［NGKI3932］
+ */
+#ifdef TOPPERS_ras_int
+#ifdef TOPPERS_SUPPORT_RAS_INT					/*［NGKI3939］*/
+
+ER
+ras_int(INTNO intno)
+{
+	bool_t	locked;
+	ER		ercd;
+
+	LOG_RAS_INT_ENTER(intno);
+	CHECK_PAR(VALID_INTNO_RASINT(intno));		/*［NGKI3933］［NGKI3942］*/
+
+	locked = sense_lock();
+	if (!locked) {
+		lock_cpu();
+	}
+	if (check_intno_cfg(intno) && check_intno_raise(intno)) {
+		raise_int(intno);						/*［NGKI3936］*/
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;							/*［NGKI3935］［NGKI3941］*/
+	}
+	if (!locked) {
+		unlock_cpu();
+	}
+
+  error_exit:
+	LOG_RAS_INT_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_SUPPORT_RAS_INT */
+#endif /* TOPPERS_ras_int */
+
+/*
+ *  割込み要求のチェック［NGKI3944］
+ */
+#ifdef TOPPERS_prb_int
+#ifdef TOPPERS_SUPPORT_PRB_INT					/*［NGKI3951］*/
+
+ER_BOOL
+prb_int(INTNO intno)
+{
+	bool_t	locked;
+	ER_BOOL	ercd;
+
+	LOG_PRB_INT_ENTER(intno);
+	CHECK_PAR(VALID_INTNO_PRBINT(intno));		/*［NGKI3945］［NGKI3952］*/
+
+	locked = sense_lock();
+	if (!locked) {
+		lock_cpu();
+	}
+	if (check_intno_cfg(intno)) {
+		ercd = (ER_BOOL) probe_int(intno);		/*［NGKI3948］*/
+	}
+	else {
+		ercd = E_OBJ;							/*［NGKI3947］*/
+	}
+	if (!locked) {
+		unlock_cpu();
+	}
+
+  error_exit:
+	LOG_PRB_INT_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_SUPPORT_PRB_INT */
+#endif /* TOPPERS_prb_int */
 
 /*
@@ -456,6 +626,5 @@
 	t_set_ipm(intpri);							/*［NGKI3111］*/
 	if (intpri == TIPM_ENAALL && enadsp) {
-		dspflg = true;
-		p_schedtsk = search_schedtsk();
+		set_dspflg();
 		if (p_runtsk->raster && p_runtsk->enater) {
 			task_terminate(p_runtsk);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -38,5 +38,5 @@
 #   の責任を負わない．
 # 
-#   $Id$
+#   $Id: interrupt.trb 1167 2019-02-03 17:06:17Z ertl-hiro $
 # 
 
@@ -54,8 +54,8 @@
 #  フォルト定義
 #
-if $INTNO_CREISR_VALID.nil?
+if !defined?($INTNO_CREISR_VALID)
   $INTNO_CREISR_VALID = $INTNO_VALID
 end
-if $INHNO_CREISR_VALID.nil?
+if !defined?($INHNO_CREISR_VALID)
   $INHNO_CREISR_VALID = $INHNO_VALID
 end
@@ -64,5 +64,5 @@
 #  CFG_INTで使用できる割込み優先度のデフォルト定義
 # 
-if $INTPRI_CFGINT_VALID.nil?
+if !defined?($INTPRI_CFGINT_VALID)
   $INTPRI_CFGINT_VALID = $TMIN_INTPRI.upto($TMAX_INTPRI).to_a
 end
@@ -87,11 +87,11 @@
 #  割込み要求ラインに関するエラーチェック
 #
-$cfgData[:CFG_INT].each do |key, params|
-  #	intnoが割込み番号として正しくない場合（E_PAR）［NGKI2972］
-  if $INTNO_VALID.index(params[:intno]).nil?
+$cfgData[:CFG_INT].each do |_, params|
+  # intnoが有効範囲外の場合（E_PAR）［NGKI2972］
+  if !$INTNO_VALID.include?(params[:intno])
     error_illegal("E_PAR", params, :intno)
   end
 
-  #	intatrが無効の場合（E_RSATR）［NGKI2969］
+  # intatrが無効の場合（E_RSATR）［NGKI2969］［NGKI2944］［NGKI2945］
   #（TA_ENAINT，TA_EDGE，TARGET_INTATR以外のビットがセットされている場合）
   if (params[:intatr] & ~($TA_ENAINT|$TA_EDGE|$TARGET_INTATR)) != 0
@@ -99,30 +99,33 @@
   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 " \
+  # intpriがCFG_INTに対する割込み優先度として正しくない場合（E_PAR）
+  # ［NGKI2973］
+  if !$INTPRI_CFGINT_VALID.include?(params[:intpri])
+    error_illegal_sym("E_PAR", params, :intpri, :intno)
+  end
+
+  # カーネル管理外に固定されているintnoに対して，intpriにTMIN_INTPRI以
+  # 上の値が指定された場合（E_OBJ）［NGKI2983］
+  if defined?($INTNO_FIX_NONKERNEL) \
+				&& $INTNO_FIX_NONKERNEL.include?(params[:intno])
+    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 " \
+    end
+  end
+
+  # カーネル管理に固定されているintnoに対して，intpriにTMIN_INTPRIより
+  # も小さい値が指定された場合（E_OBJ）［NGKI2984］
+  if defined?($INTNO_FIX_KERNEL) \
+				&& $INTNO_FIX_KERNEL.include?(params[:intno])
+    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
+
+  # ターゲット依存のエラーチェック［NGKI2985］
+  if defined? TargetCheckCfgInt()
+    TargetCheckCfgInt(params)
   end
 end
@@ -131,11 +134,11 @@
 #  割込みハンドラに関するエラーチェック
 #
-$cfgData[:DEF_INH].each do |key, params|
-  # inhnoが割込みハンドラ番号として正しくない場合（E_PAR）［NGKI3055］
-  if $INHNO_VALID.index(params[:inhno]).nil?
+$cfgData[:DEF_INH].each do |_, params|
+  # inhnoが有効範囲外の場合（E_PAR）［NGKI3055］
+  if !$INHNO_VALID.include?(params[:inhno])
     error_illegal("E_PAR", params, :inhno)
   end
 
-  # inhatrが無効の場合（E_RSATR）［NGKI3052］
+  # inhatrが無効の場合（E_RSATR）［NGKI3052］［NGKI2957］［NGKI2959］
   #（TARGET_INHATR以外のビットがセットされている場合）
   if (params[:inhatr] & ~($TARGET_INHATR)) != 0
@@ -143,27 +146,26 @@
   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 " \
+  # カーネル管理外に固定されているinhnoに対して，inhatrにTA_NONKERNELが
+  # 指定されていない場合（E_RSATR）［NGKI3067］
+  if defined?($INHNO_FIX_NONKERNEL) \
+				&& $INHNO_FIX_NONKERNEL.include?(params[:inhno])
+    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 " \
+    end
+  end
+
+  # カーネル管理に固定されているinhnoに対して，inhatrにTA_NONKERNELが指
+  # 定されている場合（E_RSATR）［NGKI3068］
+  if defined?($INHNO_FIX_KERNEL) \
+				&& $INHNO_FIX_KERNEL.include?(params[:inhno])
+    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)
+    end
+  end
+
+  if $INHNO_CREISR_VALID.include?(params[:inhno])
+    # 割込みハンドラ番号に対応する割込み番号がある場合
     intnoVal = $toIntnoVal[params[:inhno].val]
 
@@ -174,4 +176,5 @@
     else
       intnoParams = $cfgData[:CFG_INT][intnoVal]
+
       if (params[:inhatr] & $TA_NONKERNEL) == 0
         # inhatrにTA_NONKERNELが指定されておらず，inhnoに対応するintno
@@ -193,4 +196,9 @@
     end
   end
+
+  # ターゲット依存のエラーチェック［NGKI3078］
+  if defined? TargetCheckDefInh()
+    TargetCheckDefInh(params)
+  end
 end
 
@@ -198,6 +206,6 @@
 #  割込みサービスルーチン（ISR）に関するエラーチェック
 #
-$cfgData[:CRE_ISR].sort.each do |key, params|
-  #	isratrが無効の場合（E_RSATR）［NGKI2998］
+$cfgData[:CRE_ISR].sort.each do |_, params|
+  # isratrが無効の場合（E_RSATR）［NGKI2998］［NGKI2952］［NGKI5176］
   #（TARGET_ISRATR以外のビットがセットされている場合）
   if (params[:isratr] & ~($TARGET_ISRATR)) != 0
@@ -205,52 +213,42 @@
   end
 
-  #	intnoがCRE_ISRに対する割込み番号として正しくない場合（E_PAR）
-  #	［NGKI3003］
-  if $INTNO_CREISR_VALID.index(params[:intno]).nil?
+  # intnoが有効範囲外の場合（E_PAR）［NGKI3003］
+  if !$INTNO_CREISR_VALID.include?(params[:intno])
     error_illegal("E_PAR", params, "intno")
   end
 
-  #	(TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)でない場合（E_PAR）
-  #	［NGKI3005］
+  # isrpriが有効範囲外の場合（E_PAR）［NGKI3005］
+  #（TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRIでない場合）
   if !($TMIN_ISRPRI <= params[:isrpri] && params[:isrpri] <= $TMAX_ISRPRI)
     error_illegal("E_PAR", params, "isrpri")
   end
-end
-
-$INTNO_CREISR_VALID.each do |intnoVal|
-  # 割込み番号intnoに対して登録されたISRのリストの作成
-  isrParamsList = []
-  $cfgData[:CRE_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 " \
+
+  # intnoに対応するinhnoに対してDEF_INHがある場合（E_OBJ）［NGKI3013］
+  inhnoVal = $toInhnoVal[params[:intno].val]
+  if $cfgData[:DEF_INH].has_key?(inhnoVal)
+    error_ercd("E_OBJ", params, "%%intno in %apiname is duplicated " \
+					"with inhno #{$cfgData[:DEF_INH][inhnoVal][:inhno]}")
+  end
+
+  # intnoに対するCFG_INTがない場合（E_OBJ）［NGKI3012］
+  if !$cfgData[:CFG_INT].has_key?(params[:intno])
+    error_ercd("E_OBJ", params, "%%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
+  else
+    intnoParams = $cfgData[:CFG_INT][params[:intno]]
+
+    # intnoでカーネル管理外の割込みを指定した場合（E_OBJ）［NGKI3014］
+    #（intnoに対してCFG_INTで設定された割込み優先度がTMIN_INTPRIよりも小
+    #  さい場合）
+    if intnoParams[:intpri] < $TMIN_INTPRI
+      error_ercd("E_OBJ", params,
+					"intpri `#{intnoParams[:intpri]}' configured for " \
+					"%%intno with CFG_INT in higher than TMIN_INTPRI")
+    end
+  end
+
+  # ターゲット依存のエラーチェック
+  if defined? TargetCheckCreIsr()
+    TargetCheckCreIsr(params)
   end
 end
@@ -298,5 +296,5 @@
   inhnoVal = $toInhnoVal[intnoVal]
 
-  # 次のDEF_INHに相当するデータを生成
+  # 次の静的APIに相当するデータを生成
   # DEF_INH(inhno, { TA_NULL, _kernel_inthdr_<intno> } );
   $cfgData[:DEF_INH][inhnoVal] = {
@@ -306,5 +304,5 @@
   }
 
-  # 割込みサービスルーチン用の割込みハンドラ
+  # 割込みサービスルーチンを呼び出す割込みハンドラの生成［NGKI2941］
   $kernelCfgC.add("void")
   $kernelCfgC.add("_kernel_inthdr_#{intnoVal}(void)")
@@ -335,12 +333,17 @@
 
 # 割込みサービスルーチン生成順序テーブルの生成
-$kernelCfgC.add("const ID _kernel_isrorder_table[TNUM_SISRID] = { ")
-$kernelCfgC.append("\t")
-$cfgData[:CRE_ISR].each_with_index do |(key, params), index|
-  $kernelCfgC.append(", ") if index > 0
-  $kernelCfgC.append("#{params[:isrid]}")
-end
-$kernelCfgC.add
-$kernelCfgC.add2("};")
+if $cfgData[:CRE_ISR].size != 0
+  $kernelCfgC.add("const ID _kernel_isrorder_table[TNUM_SISRID] = { ")
+  $kernelCfgC.append("\t")
+  $cfgData[:CRE_ISR].each_with_index do |(_, params), index|
+    $kernelCfgC.append(", ") if index > 0
+    $kernelCfgC.append("#{params[:isrid]}")
+  end
+  $kernelCfgC.add
+  $kernelCfgC.add2("};")
+else
+  $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const ID, " \
+										"_kernel_isrorder_table);")
+end
 
 #
@@ -360,5 +363,5 @@
     #  割込みハンドラのエントリ
     #
-    $cfgData[:DEF_INH].each do |key, params|
+    $cfgData[:DEF_INH].each do |_, params|
       if (params[:inhatr] & $TA_NONKERNEL) == 0
         $kernelCfgC.add("INTHDR_ENTRY(#{params[:inhno]}, " \
@@ -372,5 +375,5 @@
     #
     $kernelCfgC.add("const INHINIB _kernel_inhinib_table[TNUM_DEF_INHNO] = {")
-    $cfgData[:DEF_INH].each_with_index do |(key, params), index|
+    $cfgData[:DEF_INH].each_with_index do |(_, params), index|
       $kernelCfgC.add(",") if index > 0
       if (params[:inhatr] & $TA_NONKERNEL) == 0
@@ -407,5 +410,5 @@
   if $cfgData[:CFG_INT].size != 0
     $kernelCfgC.add("const INTINIB _kernel_intinib_table[TNUM_CFG_INTNO] = {")
-    $cfgData[:CFG_INT].each_with_index do |(key, params), index|
+    $cfgData[:CFG_INT].each_with_index do |(_, params), index|
       $kernelCfgC.add(",") if index > 0
       $kernelCfgC.append("\t{ (#{params[:intno]}), (#{params[:intatr]}), " \
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -38,5 +38,5 @@
 #   の責任を負わない．
 # 
-#   $Id$
+#   $Id: kernel.trb 1167 2019-02-03 17:06:17Z ertl-hiro $
 # 
 
@@ -75,10 +75,8 @@
 
 #
-#  インクルードディレクティブ（#include）
+#  インクルードディレクティブ（#include）の生成
 #
 $kernelCfgC.comment_header("Include Directives")
-$includeFiles.each do |file|
-  $kernelCfgC.add("#include #{file}")
-end
+GenerateIncludes($kernelCfgC)
 $kernelCfgC.add()
 
@@ -91,5 +89,5 @@
   def AllocStack(stack, size)
     # 大きい方に丸めたサイズで確保する［NGKI1050］［NGKI3220］
-    $kernelCfgC.add("/*static*/ STK_T #{stack}[COUNT_STK_T(#{size})];")
+    $kernelCfgC.add("static STK_T #{stack}[COUNT_STK_T(#{size})];")
     return("ROUND_STK_T(#{size})")
   end
@@ -107,5 +105,7 @@
     @OBJ_S = obj_s.tr("a-z", "A-Z")
     @objid = (obj + "id").to_sym
+    @noobj = ("no" + obj).to_sym
     @api = "CRE_#{@OBJ}".to_sym
+    @aidapi = "AID_#{@OBJ}".to_sym
     @inibList = { "#{@OBJ_S}INIB" => "a#{@obj_s}inib_table"}
   end
@@ -114,6 +114,6 @@
     # AID_@OBJの処理
     numAutoObjid = 0
-    $cfgData["AID_#{@OBJ}".to_sym].each do |key, params|
-      numAutoObjid += params["no#{@obj}".to_sym]
+    $cfgData[@aidapi].each do |_, params|
+      numAutoObjid += params[@noobj]
     end
     numObjid = $cfgData[@api].size + numAutoObjid
@@ -123,5 +123,5 @@
 
     # オブジェクトのID番号のマクロ定義の生成
-    $cfgData[@api].sort.each do |key, params|
+    $cfgData[@api].sort.each do |_, params|
       $kernelCfgH.add("#define #{params[@objid]}\t#{params[@objid].val}")
     end
@@ -130,5 +130,5 @@
     # オブジェクトのID番号を保持する変数
     if $USE_EXTERNAL_ID
-      $cfgData[@api].sort.each do |key, params|
+      $cfgData[@api].sort.each do |_, params|
         $kernelCfgC.add("const ID #{params[@objid]}_id" \
 										" = #{params[@objid].val};")
@@ -203,5 +203,5 @@
   nfymode1 = nfymode & 0x0f
   nfymode2 = nfymode & ~0x0f
-  par1 = params[:par1]
+  # par1 = params[:par1]
   par2 = params[:par2]
 
@@ -232,5 +232,5 @@
     error_api(params, "too many parameters for nfymode `#{nfymode}' " \
 											"in %apiname of %#{objid}")
-  elsif nfymode == $TNFY_HANDLER
+  elsif nfymode1 == $TNFY_HANDLER && nfymode2 == 0		#［NGKI3721］
     # タイムイベントハンドラの呼出し
     funcname = "(NFYHDR)(#{par2})"
@@ -269,8 +269,8 @@
 
     # イベント通知処理の処理
-    if nfymode1 == $TNFY_SETVAR && nfymode2 == 0
+    if nfymode1 == $TNFY_SETVAR && nfymode2 == 0		#［NGKI3721］
       # 変数の設定
       $kernelCfgC.add("\t*((intptr_t *) exinf) = (#{par2});")
-    elsif nfymode1 == $TNFY_INCVAR && nfymode2 == 0
+    elsif nfymode1 == $TNFY_INCVAR && nfymode2 == 0		#［NGKI3721］
       # 変数のインクリメント
       $kernelCfgC.add("\t(void) loc_cpu();")
@@ -293,11 +293,11 @@
       $kernelCfgC.add("\t#{errorCode}psnd_dtq(((ID) exinf), #{par2});")
     else
+      # nfymodeの値が正しくない場合（E_PAR）［NGKI3730］
       error_illegal_id("E_PAR", params, :nfymode, objid)
     end
-			
+
     if nfymode2 != 0
       # エラー通知処理の処理
       $kernelCfgC.add("\tif (ercd != E_OK) {")
-
 
       if nfymode2 == $TENFY_SETVAR
@@ -326,4 +326,5 @@
 													" (intptr_t) ercd);")
       else
+        # nfymodeの値が正しくない場合（E_PAR）［NGKI3730］
         error_illegal_id("E_PAR", params, :nfymode, objid)
       end
@@ -360,5 +361,5 @@
 if $cfgData[:DEF_ICS].size == 0
   # DEF_ICSがない場合のデフォルト値の設定
-  if $DEFAULT_ISTK.nil?
+  if !defined?($DEFAULT_ISTK)
     # スタック領域の自動割付け
     istksz = AllocStack("_kernel_istack", "DEFAULT_ISTKSZ")
@@ -369,5 +370,5 @@
   end
 else
-  # 静的API「DEF_ICS」が複数ある（E_OBJ）［NGKI3216］
+  # 静的API「DEF_ICS」が複数ある場合（E_OBJ）［NGKI3216］
   if $cfgData[:DEF_ICS].size > 1
     error("E_OBJ: too many DEF_ICS")
@@ -375,27 +376,27 @@
 
   # DEF_ICSがある場合の処理
-  params = $cfgData[:DEF_ICS][1]
+  params0 = $cfgData[:DEF_ICS][1]
 
   # パラメータが省略された時のデフォルト値の設定
-  params[:istk] ||= "NULL"
+  params0[: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"
+  if params0[:istksz] < $TARGET_MIN_ISTKSZ
+    error_wrong("E_PAR", params0, :istksz, "too small")
+  end
+
+  if params0[:istk] == "NULL"
     # スタック領域の自動割付け
-    istksz = AllocStack("_kernel_istack", params[:istksz])
+    istksz = AllocStack("_kernel_istack", params0[: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]})"
+    # istkszがターゲット定義の制約に合致しない場合（E_PAR）［NGKI3222］
+    if (params0[:istksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
+      error_wrong("E_PAR", params0, :istksz, "not aligned")
+    end
+
+    istksz = "(#{params0[:istksz]})"
+    istk = "(void *)(#{params0[:istk]})"
   end
 end
@@ -411,50 +412,49 @@
 
 #
-#  カーネルが割り付けるメモリ領域
-#
-$kernelCfgC.comment_header("Memory Area Allocated by Kernel")
-
-if $cfgData[:DEF_KMM].size == 0
-  # DEF_KMMがない場合のデフォルト値の設定
-  kmmsz = "0"
-  kmm = "NULL"
+#  カーネルメモリプール領域
+#
+$kernelCfgC.comment_header("Kernel Memory Pool Area")
+
+if $cfgData[:DEF_MPK].size == 0
+  # DEF_MPKがない場合のデフォルト値の設定
+  mpksz = "0"
+  mpk = "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]
+  # 静的API「DEF_MPK」が複数ある（E_OBJ）［NGKI5073］
+  if ($cfgData[:DEF_MPK].size > 1)
+    error("E_OBJ: too many DEF_MPK")
+  end
+
+  # DEF_MPKがある場合の処理
+  params0 = $cfgData[:DEF_MPK][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"
+  params0[:mpk] ||= "NULL"
+
+  # mpkszが0の場合（E_PAR）［NGKI5071］
+  if params0[:mpksz] == 0
+    error_wrong("E_PAR", params0, :mpksz, "zero")
+  end
+
+  if params0[:mpk] == "NULL"
+    # カーネルメモリプール領域の自動割付け
+    $kernelCfgC.add("static MB_T _kernel_memory_pool" \
+					"[COUNT_MB_T(#{params0[:mpksz]})];")
+    mpksz = "ROUND_MB_T(#{params0[:mpksz]})"
+    mpk = "_kernel_memory_pool"
   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]})"
+    # mpkszがターゲット定義の制約に合致しない場合（E_PAR）［NGKI5083］
+    if (params0[:mpksz] & ($CHECK_MB_ALIGN - 1)) != 0
+      error_wrong("E_PAR", params0, :mpksz, "not aligned")
+    end
+
+    mpksz = "(#{params0[:mpksz]})"
+    mpk = "(void *)(#{params0[:mpk]})"
   end
 end
 
 $kernelCfgC.add(<<EOS)
-const size_t _kernel_kmmsz = #{kmmsz};
-MB_T *const _kernel_kmm = #{kmm};
+const size_t _kernel_mpksz = #{mpksz};
+MB_T *const _kernel_mpk = #{mpk};
 EOS
 
@@ -484,9 +484,14 @@
 #  初期化ルーチン機能
 #
+
+# kernel_cfg.hの生成
+$kernelCfgH.add2("#define TNUM_INIRTN\t#{$cfgData[:ATT_INI].size}")
+
+# kernel_cfg.cの生成
 $kernelCfgC.comment_header("Initialization Routine")
 
 # エラーチェック
-$cfgData[:ATT_INI].each do |key, params|
-  # iniatrが無効の場合（E_RSATR）［NGKI3241］
+$cfgData[:ATT_INI].each do |_, params|
+  # iniatrが無効の場合（E_RSATR）［NGKI3241］［NGKI3202］［NGKI3203］
   #（TA_NULLでない場合）
   if (params[:iniatr] != $TA_NULL)
@@ -495,24 +500,35 @@
 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.add2("const uint_t _kernel_tnum_inirtn = TNUM_INIRTN;");
+
+# 初期化ルーチンテーブルの生成
+if $cfgData[:ATT_INI].size > 0
+  $kernelCfgC.add("const INIRTNB _kernel_inirtnb_table[TNUM_INIRTN] = {")
+  $cfgData[:ATT_INI].each_with_index do |(_, params), index|
+    $kernelCfgC.add(",") if index > 0
+    $kernelCfgC.append("\t{ (INIRTN)(#{params[:inirtn]}), " \
+								"(intptr_t)(#{params[:exinf]}) }")
+  end
+  $kernelCfgC.add
+  $kernelCfgC.add2("};")
+else
+  $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const INIRTNB, " \
+										"_kernel_inirtnb_table);")
+end
 
 #
 #  終了処理ルーチン機能
 #
+
+# kernel_cfg.hの生成
+$kernelCfgH.add2("#define TNUM_TERRTN\t#{$cfgData[:ATT_TER].size}")
+
+# kernel_cfg.cの生成
 $kernelCfgC.comment_header("Termination Routine")
 
 # エラーチェック
-$cfgData[:ATT_TER].each do |key, params|
-  # teratrが無効の場合（E_RSATR）［NGKI3248］
+$cfgData[:ATT_TER].each do |_, params|
+  # teratrが無効の場合（E_RSATR）［NGKI3248］［NGKI3208］［NGKI3209］
   #（TA_NULLでない場合）
   if (params[:teratr] != $TA_NULL)
@@ -521,15 +537,21 @@
 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("}")
+# 終了処理ルーチンの数の定義
+$kernelCfgC.add2("const uint_t _kernel_tnum_terrtn = TNUM_TERRTN;");
+
+# 終了処理ルーチンテーブルの生成
+if $cfgData[:ATT_TER].size > 0
+  $kernelCfgC.add("const TERRTNB _kernel_terrtnb_table[TNUM_TERRTN] = {")
+  $cfgData[:ATT_TER].reverse_each.each_with_index do |(_, params), index|
+    $kernelCfgC.add(",") if index > 0
+    $kernelCfgC.append("\t{ (TERRTN)(#{params[:terrtn]}), " \
+								"(intptr_t)(#{params[:exinf]}) }")
+  end
+  $kernelCfgC.add
+  $kernelCfgC.add2("};")
+else
+  $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const TERRTNB, " \
+										"_kernel_terrtnb_table);")
+end
 
 #
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_api.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_api.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_api.def	(revision 429)
@@ -23,5 +23,5 @@
 DEF_EXC .excno* { .excatr &exchdr }
 DEF_ICS { .istksz &istk? }
-DEF_KMM { .kmmsz &kmm? }
+DEF_MPK { .mpksz &mpk? }
 ATT_INI { .iniatr &exinf &inirtn }
 ATT_TER { .teratr &exinf &terrtn }
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_check.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_check.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_check.trb	(revision 429)
@@ -1,4 +1,4 @@
 # -*- coding: utf-8 -*-
-# 
+#
 #   TOPPERS/ASP Kernel
 #       Toyohashi Open Platform for Embedded Real-Time Systems/
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 #  
@@ -38,5 +38,5 @@
 #   の責任を負わない．
 # 
-#   $Id$
+#   $Id: kernel_check.trb 1167 2019-02-03 17:06:17Z ertl-hiro $
 #  
 
@@ -45,7 +45,7 @@
 #
 
-# 
+#
 #  タイムスタンプファイルの指定
-# 
+#
 $timeStampFileName = "check.timestamp"
 
@@ -53,5 +53,5 @@
 #  データセクションのLMAからVMAへのコピー
 #
-if !$lmaList.nil?
+if defined?($lmaList)
   $lmaList.each do |lma|
     startData = SYMBOL(lma[:START_DATA])
@@ -92,12 +92,13 @@
     # 通知処理のパラメータが2つの場合
     epar1 = params[:par3]
-    epar2 = params[:par4]
+    # epar2 = params[:par4]
   else
     # 通知処理のパラメータが1つの場合
     epar1 = params[:par2]
-    epar2 = params[:par3]
-  end
-
-  #	タイムイベントハンドラの先頭番地のチェック［NGKI3693］
+    # epar2 = params[:par3]
+  end
+
+  # タイムイベントハンドラの先頭番地が，プログラムの先頭番地として正し
+  # くない場合（E_PAR）［NGKI3693］
   if nfymode == $TNFY_HANDLER
     tmehdr = nfyhdr
@@ -112,5 +113,5 @@
   end
 
-  #	イベント通知処理の変数の番地とオブジェクトIDのチェック
+  # イベント通知処理の変数の番地とオブジェクトIDのチェック
   if nfymode1 == $TNFY_SETVAR || nfymode1 == $TNFY_INCVAR
     # 変数の設定／インクリメントによるタイムイベントの通知
@@ -119,5 +120,6 @@
     params1[:p_var] = par1
 
-    # 変数の番地のチェック［NGKI3699］［NGKI3897］
+    # 通知方法中の変数の番地が，intptr_t型の変数の番地として正しくない
+    # 場合（E_PAR）［NGKI3699］［NGKI3897］
     if (p_var & ($CHECK_INTPTR_ALIGN - 1)) != 0
       error_wrong_id("E_PAR", params1, :p_var, objid, "not aligned")
@@ -132,5 +134,5 @@
     params1[:tskid] = par1
 
-    # タスクIDのチェック［NGKI3704］
+    # 通知方法中のタスクIDが有効範囲外の場合（E_ID）［NGKI3704］
     if !($TMIN_TSKID <= tskid && tskid <= $tmax_tskid)
       error_illegal_id("E_ID", params1, :tskid, objid)
@@ -142,5 +144,5 @@
     params1[:semid] = par1
 
-    # セマフォIDのチェック［NGKI3707］
+    # 通知方法中のセマフォIDが有効範囲外の場合（E_ID）［NGKI3707］
     if !($TMIN_SEMID <= semid && semid <= $tmax_semid)
       error_illegal_id("E_ID", params1, :semid, objid)
@@ -152,5 +154,5 @@
     params1[:flgid] = par1
 
-    # イベントフラグIDのチェック［NGKI3710］
+    # 通知方法中のイベントフラグIDが有効範囲外の場合（E_ID）［NGKI3710］
     if !($TMIN_FLGID <= flgid && flgid <= $tmax_flgid)
       error_illegal_id("E_ID", params1, :flgid, objid)
@@ -162,5 +164,5 @@
     params1[:dtqid] = par1
 
-    # データキューIDのチェック［NGKI3713］
+    # 通知方法中のデータキューIDが有効範囲外の場合（E_ID）［NGKI3713］
     if !($TMIN_DTQID <= dtqid && dtqid <= $tmax_dtqid)
       error_illegal_id("E_ID", params1, :dtqid, objid)
@@ -175,5 +177,6 @@
     params1[:p_var] = epar1
 
-    # 変数の番地のチェック［NGKI3701］［NGKI3897］
+    # 通知方法中の変数の番地が，intptr_t型の変数の番地として正しくない
+    # 場合（E_PAR）［NGKI3701］［NGKI3897］
     if (p_var & ($CHECK_INTPTR_ALIGN - 1)) != 0
       error_wrong_id("E_PAR", params1, :p_var, objid, "not aligned")
@@ -188,5 +191,5 @@
     params1[:tskid] = epar1
 
-    # タスクIDのチェック［NGKI3704］
+    # 通知方法中のタスクIDが有効範囲外の場合（E_ID）［NGKI3704］
     if !($TMIN_TSKID <= tskid && tskid <= $tmax_tskid)
       error_illegal_id("E_ID", params1, :tskid, objid)
@@ -198,5 +201,5 @@
     params1[:semid] = epar1
 
-    # セマフォIDのチェック［NGKI3707］
+    # 通知方法中のセマフォIDが有効範囲外の場合（E_ID）［NGKI3707］
     if !($TMIN_SEMID <= semid && semid <= $tmax_semid)
       error_illegal_id("E_ID", params1, :semid, objid)
@@ -208,5 +211,5 @@
     params1[:flgid] = epar1
 
-    # イベントフラグIDのチェック［NGKI3710］
+    # 通知方法中のイベントフラグIDが有効範囲外の場合（E_ID）［NGKI3710］
     if !($TMIN_FLGID <= flgid && flgid <= $tmax_flgid)
       error_illegal_id("E_ID", params1, :flgid, objid)
@@ -218,5 +221,5 @@
     params1[:dtqid] = epar1
 
-    # データキューIDのチェック［NGKI3715］
+    # 通知方法中のデータキューIDが有効範囲外の場合（E_ID）［NGKI3715］
     if !($TMIN_DTQID <= dtqid && dtqid <= $tmax_dtqid)
       error_illegal_id("E_ID", params1, :dtqid, objid)
@@ -225,12 +228,11 @@
 end
 
-# 
+#
 #  タスクに関するチェック
-# 
+#
 tinib = SYMBOL("_kernel_tinib_table")
 $cfgData[:CRE_TSK].sort.each do |key, params|
+  # taskがプログラムの先頭番地として正しくない場合（E_PAR）［NGKI1033］
   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")
@@ -240,5 +242,5 @@
   end
 
-  # タスクのスタック領域の先頭番地のチェック［NGKI1056］
+  # stkがターゲット定義の制約に合致しない場合（E_PAR）［NGKI1056］
   if $USE_TSKINICTXB
     stk = GetStackTskinictxb(key, params, tinib)
@@ -256,12 +258,12 @@
 end
 
-# 
+#
 #  固定長メモリプールに関するチェック
-# 
+#
 mpfinib = SYMBOL("_kernel_mpfinib_table")
-$cfgData[:CRE_MPF].sort.each do |key, params|
+$cfgData[:CRE_MPF].sort.each do |_, params|
   mpf = PEEK(mpfinib + $offsetof_MPFINIB_mpf, $sizeof_void_ptr)
 
-  # 固定長メモリプール領域の先頭番地のチェック［NGKI2249］
+  # mpfがターゲット定義の制約に合致しない場合（E_PAR）［NGKI2249］
   if (mpf & ($CHECK_MPF_ALIGN - 1)) != 0
     error_wrong_id("E_PAR", params, :mpf, :mpfid, "not aligned")
@@ -274,7 +276,7 @@
 end
 
-# 
+#
 #  周期通知に関するチェック
-# 
+#
 cycinib = SYMBOL("_kernel_cycinib_table")
 $cfgData[:CRE_CYC].sort.each do |key, params|
@@ -282,5 +284,5 @@
   nfyhdr = PEEK(cycinib + $offsetof_CYCINIB_nfyhdr, $sizeof_NFYHDR)
 
-  #	通知情報のチェック
+  # 通知情報のチェック
   checkNotifyHandler(key, params, :cycid, exinf, nfyhdr)
 
@@ -288,7 +290,7 @@
 end
 
-# 
+#
 #  アラーム通知に関するチェック
-# 
+#
 alminib = SYMBOL("_kernel_alminib_table")
 $cfgData[:CRE_ALM].sort.each do |key, params|
@@ -296,5 +298,5 @@
   nfyhdr = PEEK(alminib + $offsetof_ALMINIB_nfyhdr, $sizeof_NFYHDR)
 
-  #	通知情報のチェック
+  # 通知情報のチェック
   checkNotifyHandler(key, params, :almid, exinf, nfyhdr)
 
@@ -306,8 +308,8 @@
 #
 isrinib = SYMBOL("_kernel_isrinib_table")
-$cfgData[:CRE_ISR].sort.each do |key, params|
+$cfgData[:CRE_ISR].sort.each do |_, params|
   isr = PEEK(isrinib + $offsetof_ISRINIB_isr, $sizeof_ISR)
 
-  # 割込みサービスルーチンの先頭番地のチェック［NGKI3004］
+  # isrがプログラムの先頭番地として正しくない場合［NGKI3004］
   if (isr & ($CHECK_FUNC_ALIGN - 1)) != 0
     error_wrong_id("E_PAR", params, :isr, :isrid, "not aligned")
@@ -320,30 +322,69 @@
 end
 
-# 
+#
 #  非タスクコンテキスト用のスタック領域に関するチェック
-# 
-istkAddr = SYMBOL("_kernel_istk")
-if !istkAddr.nil?
-  istk = PEEK(istkAddr, $sizeof_void_ptr)
-
-  # 非タスクコンテキスト用のスタック領域の先頭番地のチェック［NGKI3222］
+#
+if $cfgData[:DEF_ICS].size > 0
+  params0 = $cfgData[:DEF_ICS][1]
+  istk = PEEK(SYMBOL("_kernel_istk"), $sizeof_void_ptr)
+
+  # istkがターゲット定義の制約に合致しない場合（E_PAR）［NGKI3222］
   if (istk & ($CHECK_STACK_ALIGN - 1)) != 0
-    error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "not aligned")
+    error_wrong("E_PAR", params0, :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
+    error_wrong("E_PAR", params0, :istk, "null")
+  end
+end
+
+#
+#  カーネルメモリプール領域に関するチェック
+#
+if $cfgData[:DEF_MPK].size > 0
+  params0 = $cfgData[:DEF_MPK][1]
+  mpk = PEEK(SYMBOL("_kernel_mpk"), $sizeof_void_ptr)
+
+  # mpkがターゲット定義の制約に合致しない場合（E_PAR）［NGKI5083］
+  if (mpk & ($CHECK_MPK_ALIGN - 1)) != 0
+    error_wrong("E_PAR", params0, :mpk, "not aligned")
+  end
+  if $CHECK_MPK_NONNULL && mpk == 0
+    error_wrong("E_PAR", params0, :mpk, "null")
+  end
+end
+
+#
+#  初期化ルーチンに関するチェック
+#
+inirtnb = SYMBOL("_kernel_inirtnb_table")
+$cfgData[:ATT_INI].each do |_, params|
+  inirtn = PEEK(inirtnb + $offsetof_INIRTNB_inirtn, $sizeof_INIRTN)
+
+  # inirtnがプログラムの先頭番地として正しくない場合（E_PAR）［NGKI3243］
+  if (inirtn & ($CHECK_FUNC_ALIGN - 1)) != 0
+    error_wrong("E_PAR", params, :inirtn, "not aligned")
+  end
+  if $CHECK_FUNC_NONNULL && inirtn == 0
+    error_wrong("E_PAR", params, :inirtn, "null")
+  end
+
+  inirtnb += $sizeof_INIRTNB
+end
+
+#
+#  終了処理ルーチンに関するチェック
+#
+terrtnb = SYMBOL("_kernel_terrtnb_table")
+$cfgData[:ATT_TER].each do |_, params|
+  terrtn = PEEK(terrtnb + $offsetof_TERRTNB_terrtn, $sizeof_TERRTN)
+
+  # terrtnがプログラムの先頭番地として正しくない場合（E_PAR）［NGKI3250］
+  if (terrtn & ($CHECK_FUNC_ALIGN - 1)) != 0
+    error_wrong("E_PAR", params, :terrtn, "not aligned")
+  end
+  if $CHECK_FUNC_NONNULL && terrtn == 0
+    error_wrong("E_PAR", params, :terrtn, "null")
+  end
+
+  terrtnb += $sizeof_TERRTNB
+end
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_impl.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_impl.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -71,9 +71,9 @@
 
 /*
- *  型キャストを行うマクロの定義
- */
-#ifndef CAST
-#define CAST(type, val)		((type)(val))
-#endif /* CAST */
+ *  トレースログに関する設定
+ */
+#ifdef TOPPERS_ENABLE_TRACE
+#include "arch/tracelog/trace_log.h"
+#endif /* TOPPERS_ENABLE_TRACE */
 
 /*
@@ -157,4 +157,8 @@
 #endif /* TARGET_ISRATR */
 
+#ifndef TARGET_MIN_STKSZ			/* タスクのスタックサイズの最小値 */
+#define TARGET_MIN_STKSZ	1U		/* 未定義の場合は0でないことをチェック */
+#endif /* TARGET_MIN_STKSZ */
+
 /*
  *  ヘッダファイルを持たないモジュールの関数・変数の宣言
@@ -173,12 +177,26 @@
 
 /*
- *  初期化ルーチンの実行（kernel_cfg.c）
- */
-extern void	call_inirtn(void);
-
-/*
- *  終了処理ルーチンの実行（kernel_cfg.c）
- */
-extern void	call_terrtn(void);
+ *  初期化ルーチン関係の定義（kernel_cfg.c）
+ */
+typedef struct initialization_routine_block {
+	INIRTN		inirtn;					/* 初期化ルーチンの先頭番地 */
+	intptr_t	exinf;					/* 初期化ルーチンの拡張情報 */
+} INIRTNB;
+
+extern const uint_t	tnum_inirtn;		/* 初期化ルーチンの数 */
+
+extern const INIRTNB inirtnb_table[];	/* 初期化ルーチンブロックテーブル */
+
+/*
+ *  終了処理ルーチン関係の定義（kernel_cfg.c）
+ */
+typedef struct termination_routine_block {
+	TERRTN		terrtn;					/* 終了処理ルーチンの先頭番地 */
+	intptr_t	exinf;					/* 終了処理ルーチンの拡張情報 */
+} TERRTNB;
+
+extern const uint_t	tnum_terrtn;		/* 終了処理ルーチンの数 */
+
+extern const TERRTNB terrtnb_table[];	/* 終了処理ルーチンブロックテーブル */
 
 /*
@@ -192,8 +210,8 @@
 
 /*
- *  カーネルが割り付けるメモリ領域（kernel_cfg.c）
- */
-extern const size_t	kmmsz;		/* カーネルが割り付けるメモリ領域のサイズ */
-extern MB_T *const	kmm;		/* カーネルが割り付けるメモリ領域の先頭番地 */
+ *  カーネルメモリプール領域（kernel_cfg.c）
+ */
+extern const size_t	mpksz;		/* カーネルメモリプール領域のサイズ */
+extern MB_T *const	mpk;		/* カーネルメモリプール領域の先頭番地 */
 
 /*
@@ -203,4 +221,9 @@
 
 /*
+ *  カーネルメモリプール領域有効フラグ（startup.c）
+ */
+extern bool_t	mpk_valid;
+
+/*
  *  カーネルの起動（startup.c）
  */
@@ -213,9 +236,31 @@
 
 /*
- *  カーネルの割り付けるメモリ領域の管理（startup.c）
- */
-extern void initialize_kmm(void);
-extern void *kernel_malloc(size_t size);
-extern void kernel_free(void *ptr);
+ *  メモリプール領域の管理（startup.c）
+ */
+extern bool_t initialize_mempool(MB_T *mempool, size_t size);
+extern void *malloc_mempool(MB_T *mempool, size_t size);
+extern void free_mempool(MB_T *mempool, void *ptr);
+
+/*
+ *  カーネルメモリプール領域からのメモリ獲得／解放
+ */
+Inline void *
+malloc_mpk(size_t size)
+{
+	if (mpk_valid) {
+		return(malloc_mempool(mpk, size));
+	}
+	else {
+		return(NULL);
+	}
+}
+
+Inline void
+free_mpk(void *ptr)
+{
+	if (mpk_valid) {
+		free_mempool(mpk, ptr);
+	}
+}
 
 /*
@@ -225,10 +270,10 @@
 
 /*
- *  通知方法のエラーチェック
+ *  通知方法のエラーチェック（time_manage.c）
  */
 extern ER check_nfyinfo(const T_NFYINFO *p_nfyinfo);
 
 /*
- *  通知ハンドラ
+ *  通知ハンドラ（time_manage.c）
  */
 extern void notify_handler(intptr_t exinf);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_rename.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_rename.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_rename.def	(revision 429)
@@ -1,8 +1,9 @@
 # startup.c
 kerflg
+mpk_valid
 exit_kernel
-initialize_kmm
-kernel_malloc
-kernel_free
+initialize_mempool
+malloc_mempool
+free_mempool
 
 # task.c
@@ -51,5 +52,5 @@
 set_hrt_event
 tmevtb_register
-tmevtb_enqueue
+tmevtb_enqueue_reltim
 tmevtb_dequeue
 check_adjtim
@@ -124,6 +125,8 @@
 # kernel_cfg.c
 initialize_object
-call_inirtn
-call_terrtn
+tnum_inirtn
+inirtnb_table
+tnum_terrtn
+terrtnb_table
 tmax_tskid
 tmax_stskid
@@ -193,6 +196,14 @@
 istk
 istkpt
-kmmsz
-kmm
+mpksz
+mpk
+
+# tTraceLog.c
+log_dsp_enter
+log_dsp_leave
+log_inh_enter
+log_inh_leave
+log_exc_enter
+log_exc_leave
 
 INCLUDE "target"
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_rename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_rename.h	(revision 429)
@@ -8,8 +8,9 @@
  */
 #define kerflg						_kernel_kerflg
+#define mpk_valid					_kernel_mpk_valid
 #define exit_kernel					_kernel_exit_kernel
-#define initialize_kmm				_kernel_initialize_kmm
-#define kernel_malloc				_kernel_kernel_malloc
-#define kernel_free					_kernel_kernel_free
+#define initialize_mempool			_kernel_initialize_mempool
+#define malloc_mempool				_kernel_malloc_mempool
+#define free_mempool				_kernel_free_mempool
 
 /*
@@ -66,5 +67,5 @@
 #define set_hrt_event				_kernel_set_hrt_event
 #define tmevtb_register				_kernel_tmevtb_register
-#define tmevtb_enqueue				_kernel_tmevtb_enqueue
+#define tmevtb_enqueue_reltim		_kernel_tmevtb_enqueue_reltim
 #define tmevtb_dequeue				_kernel_tmevtb_dequeue
 #define check_adjtim				_kernel_check_adjtim
@@ -163,6 +164,8 @@
  */
 #define initialize_object			_kernel_initialize_object
-#define call_inirtn					_kernel_call_inirtn
-#define call_terrtn					_kernel_call_terrtn
+#define tnum_inirtn					_kernel_tnum_inirtn
+#define inirtnb_table				_kernel_inirtnb_table
+#define tnum_terrtn					_kernel_tnum_terrtn
+#define terrtnb_table				_kernel_terrtnb_table
 #define tmax_tskid					_kernel_tmax_tskid
 #define tmax_stskid					_kernel_tmax_stskid
@@ -232,6 +235,16 @@
 #define istk						_kernel_istk
 #define istkpt						_kernel_istkpt
-#define kmmsz						_kernel_kmmsz
-#define kmm							_kernel_kmm
+#define mpksz						_kernel_mpksz
+#define mpk							_kernel_mpk
+
+/*
+ *  tTraceLog.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
 
 
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_sym.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_sym.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_sym.def	(revision 429)
@@ -1,5 +1,3 @@
-USE_EXTERNAL_ID,true,bool,defined(USE_EXTERNAL_ID)
-SIL_ENDIAN_BIG,true,bool,defined(SIL_ENDIAN_BIG)
-SIL_ENDIAN_LITTLE,true,bool,defined(SIL_ENDIAN_LITTLE)
+USE_EXTERNAL_ID,true,bool,defined(USE_EXTERNAL_ID),false
 TA_NULL
 TA_ACT
@@ -48,26 +46,28 @@
 TMIN_CYCID,,signed
 TMIN_ALMID,,signed
-USE_TSKINICTXB,true,bool,defined(USE_TSKINICTXB)
-OMIT_INITIALIZE_INTERRUPT,true,bool,defined(OMIT_INITIALIZE_INTERRUPT)
-USE_INHINIB_TABLE,true,bool,defined(USE_INHINIB_TABLE)
-USE_INTINIB_TABLE,true,bool,defined(USE_INTINIB_TABLE)
-OMIT_INITIALIZE_EXCEPTION,true,bool,defined(OMIT_INITIALIZE_EXCEPTION)
-DEFAULT_ISTK,,,defined(DEFAULT_ISTK)
-TARGET_TSKATR,,,defined(TARGET_TSKATR),0
+USE_TSKINICTXB,true,bool,defined(USE_TSKINICTXB),false
+OMIT_INITIALIZE_INTERRUPT,true,bool,defined(OMIT_INITIALIZE_INTERRUPT),false
+USE_INHINIB_TABLE,true,bool,defined(USE_INHINIB_TABLE),false
+USE_INTINIB_TABLE,true,bool,defined(USE_INTINIB_TABLE),false
+OMIT_INITIALIZE_EXCEPTION,true,bool,defined(OMIT_INITIALIZE_EXCEPTION),false
+DEFAULT_ISTK,,intptr,defined(DEFAULT_ISTK)
+TARGET_TSKATR
 TARGET_INTATR,,,defined(TARGET_INTATR),0
 TARGET_INHATR,,,defined(TARGET_INHATR),0
-TARGET_ISRATR,,,defined(TARGET_ISRATR),0
+TARGET_ISRATR
 TARGET_EXCATR,,,defined(TARGET_EXCATR),0
-TARGET_MIN_STKSZ,,,defined(TARGET_MIN_STKSZ),1
+TARGET_MIN_STKSZ
 TARGET_MIN_ISTKSZ,,,defined(TARGET_MIN_ISTKSZ),1
 CHECK_STKSZ_ALIGN,,,defined(CHECK_STKSZ_ALIGN),1
 CHECK_INTPTR_ALIGN,,,defined(CHECK_INTPTR_ALIGN),1
-CHECK_INTPTR_NONNULL,true,bool,defined(CHECK_INTPTR_NONNULL)
+CHECK_INTPTR_NONNULL,true,bool,defined(CHECK_INTPTR_NONNULL),false
 CHECK_FUNC_ALIGN,,,defined(CHECK_FUNC_ALIGN),1
-CHECK_FUNC_NONNULL,true,bool,defined(CHECK_FUNC_NONNULL)
+CHECK_FUNC_NONNULL,true,bool,defined(CHECK_FUNC_NONNULL),false
 CHECK_STACK_ALIGN,,,defined(CHECK_STACK_ALIGN),1
-CHECK_STACK_NONNULL,true,bool,defined(CHECK_STACK_NONNULL)
+CHECK_STACK_NONNULL,true,bool,defined(CHECK_STACK_NONNULL),false
 CHECK_MPF_ALIGN,,,defined(CHECK_MPF_ALIGN),1
-CHECK_MPF_NONNULL,true,bool,defined(CHECK_MPF_NONNULL)
+CHECK_MPF_NONNULL,true,bool,defined(CHECK_MPF_NONNULL),false
+CHECK_MPK_ALIGN,,,defined(CHECK_MPK_ALIGN),1
+CHECK_MPK_NONNULL,true,bool,defined(CHECK_MPK_NONNULL),false
 CHECK_MB_ALIGN,,,defined(CHECK_MB_ALIGN),1
 sizeof_void_ptr,sizeof(void*)
@@ -138,13 +138,19 @@
 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),,
+offsetof_INHINIB_inhno,"offsetof(INHINIB,inhno)",,!defined(OMIT_INITIALIZE_INTERRUPT)
+offsetof_INHINIB_inhatr,"offsetof(INHINIB,inhatr)",,!defined(OMIT_INITIALIZE_INTERRUPT),,
+offsetof_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)
+offsetof_INTINIB_intno,"offsetof(INTINIB,intno)",,!defined(OMIT_INITIALIZE_INTERRUPT)
+offsetof_INTINIB_intatr,"offsetof(INTINIB,intatr)",,!defined(OMIT_INITIALIZE_INTERRUPT)
+offsetof_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)
+offsetof_EXCINIB_excno,"offsetof(EXCINIB,excno)",,!defined(OMIT_INITIALIZE_EXCEPTION)
+offsetof_EXCINIB_excatr,"offsetof(EXCINIB,excatr)",,!defined(OMIT_INITIALIZE_EXCEPTION)
+offsetof_EXCINIB_exc_entry,"offsetof(EXCINIB,exc_entry)",,!defined(OMIT_INITIALIZE_EXCEPTION)
+sizeof_INIRTNB,sizeof(INIRTNB)
+offsetof_INIRTNB_inirtn,"offsetof(INIRTNB,inirtn)"
+offsetof_INIRTNB_exinf,"offsetof(INIRTNB,exinf)"
+sizeof_TERRTNB,sizeof(TERRTNB)
+offsetof_TERRTNB_terrtn,"offsetof(TERRTNB,terrtn)"
+offsetof_TERRTNB_exinf,"offsetof(TERRTNB,exinf)"
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_unrename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_unrename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_unrename.h	(revision 429)
@@ -9,8 +9,9 @@
  */
 #undef kerflg
+#undef mpk_valid
 #undef exit_kernel
-#undef initialize_kmm
-#undef kernel_malloc
-#undef kernel_free
+#undef initialize_mempool
+#undef malloc_mempool
+#undef free_mempool
 
 /*
@@ -67,5 +68,5 @@
 #undef set_hrt_event
 #undef tmevtb_register
-#undef tmevtb_enqueue
+#undef tmevtb_enqueue_reltim
 #undef tmevtb_dequeue
 #undef check_adjtim
@@ -164,6 +165,8 @@
  */
 #undef initialize_object
-#undef call_inirtn
-#undef call_terrtn
+#undef tnum_inirtn
+#undef inirtnb_table
+#undef tnum_terrtn
+#undef terrtnb_table
 #undef tmax_tskid
 #undef tmax_stskid
@@ -233,6 +236,16 @@
 #undef istk
 #undef istkpt
-#undef kmmsz
-#undef kmm
+#undef mpksz
+#undef mpk
+
+/*
+ *  tTraceLog.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
 
 
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -226,5 +226,5 @@
 	p_mpfmb = pk_cmpf->mpfmb;
 
-	CHECK_RSATR(mpfatr, TA_TPRI);
+	CHECK_VALIDATR(mpfatr, TA_TPRI);
 	CHECK_PAR(blkcnt != 0);
 	CHECK_PAR(blksz != 0);
@@ -242,5 +242,5 @@
 	else {
 		if (mpf == NULL) {
-			mpf = kernel_malloc(ROUND_MPF_T(blksz) * blkcnt);
+			mpf = malloc_mpk(ROUND_MPF_T(blksz) * blkcnt);
 			mpfatr |= TA_MEMALLOC;
 		}
@@ -250,10 +250,10 @@
 		else {
 			if (p_mpfmb == NULL) {
-				p_mpfmb = kernel_malloc(sizeof(MPFMB) * blkcnt);
+				p_mpfmb = malloc_mpk(sizeof(MPFMB) * blkcnt);
 				mpfatr |= TA_MBALLOC;
 			}
 			if (p_mpfmb == NULL) {
-				if (mpf == NULL) {
-					kernel_free(mpf);
+				if (pk_cmpf->mpf == NULL) {
+					free_mpk(mpf);
 				}
 				ercd = E_NOMEM;
@@ -313,8 +313,8 @@
 		p_mpfinib = (MPFINIB *)(p_mpfcb->p_mpfinib);
 		if ((p_mpfinib->mpfatr & TA_MEMALLOC) != 0U) {
-			kernel_free(p_mpfinib->mpf);
+			free_mpk(p_mpfinib->mpf);
 		}
 		if ((p_mpfinib->mpfatr & TA_MBALLOC) != 0U) {
-			kernel_free(p_mpfinib->p_mpfmb);
+			free_mpk(p_mpfinib->p_mpfmb);
 		}
 		p_mpfinib->mpfatr = TA_NOEXS;
@@ -342,7 +342,7 @@
 get_mpf(ID mpfid, void **p_blk)
 {
-	MPFCB	*p_mpfcb;
-	WINFO_MPF winfo_mpf;
-	ER		ercd;
+	MPFCB		*p_mpfcb;
+	WINFO_MPF	winfo_mpf;
+	ER			ercd;
 
 	LOG_GET_MPF_ENTER(mpfid, p_blk);
@@ -363,6 +363,6 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_MPF;
-		wobj_make_wait((WOBJCB *) p_mpfcb, (WINFO_WOBJ *) &winfo_mpf);
+		wobj_make_wait((WOBJCB *) p_mpfcb, TS_WAITING_MPF,
+											(WINFO_WOBJ *) &winfo_mpf);
 		dispatch();
 		ercd = winfo_mpf.winfo.wercd;
@@ -424,8 +424,8 @@
 tget_mpf(ID mpfid, void **p_blk, TMO tmout)
 {
-	MPFCB	*p_mpfcb;
-	WINFO_MPF winfo_mpf;
-	TMEVTB	tmevtb;
-	ER		ercd;
+	MPFCB		*p_mpfcb;
+	WINFO_MPF	winfo_mpf;
+	TMEVTB		tmevtb;
+	ER			ercd;
 
 	LOG_TGET_MPF_ENTER(mpfid, p_blk, tmout);
@@ -450,7 +450,6 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_MPF;
-		wobj_make_wait_tmout((WOBJCB *) p_mpfcb, (WINFO_WOBJ *) &winfo_mpf,
-														&tmevtb, tmout);
+		wobj_make_wait_tmout((WOBJCB *) p_mpfcb, TS_WAITING_MPF,
+								(WINFO_WOBJ *) &winfo_mpf, &tmevtb, tmout);
 		dispatch();
 		ercd = winfo_mpf.winfo.wercd;
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mempfix.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -55,5 +55,5 @@
     params[:mpfmb] ||= "NULL"
 
-    # mpfatrが無効の場合（E_RSATR）［NGKI2225］
+    # mpfatrが無効の場合（E_RSATR）［NGKI2225］［NGKI2218］
     #（TA_TPRI以外のビットがセットされている場合）
     if (params[:mpfatr] & ~($TA_TPRI)) != 0
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.c	(revision 429)
@@ -4,5 +4,5 @@
  *      Advanced Standard Profile Kernel
  * 
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -378,5 +378,5 @@
 	}
 	else {
-		CHECK_RSATR(mtxatr, TA_TPRI);			/*［NGKI2025］*/
+		CHECK_VALIDATR(mtxatr, TA_TPRI);		/*［NGKI2025］*/
 	}
 
@@ -473,7 +473,7 @@
 loc_mtx(ID mtxid)
 {
-	MTXCB	*p_mtxcb;
-	WINFO_MTX winfo_mtx;
-	ER		ercd;
+	MTXCB		*p_mtxcb;
+	WINFO_MTX	winfo_mtx;
+	ER			ercd;
 
 	LOG_LOC_MTX_ENTER(mtxid);
@@ -506,6 +506,6 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_MTX;
-		wobj_make_wait((WOBJCB *) p_mtxcb, (WINFO_WOBJ *) &winfo_mtx);
+		wobj_make_wait((WOBJCB *) p_mtxcb, TS_WAITING_MTX,
+											(WINFO_WOBJ *) &winfo_mtx);
 		dispatch();
 		ercd = winfo_mtx.winfo.wercd;
@@ -576,8 +576,8 @@
 tloc_mtx(ID mtxid, TMO tmout)
 {
-	MTXCB	*p_mtxcb;
-	WINFO_MTX winfo_mtx;
-	TMEVTB	tmevtb;
-	ER		ercd;
+	MTXCB		*p_mtxcb;
+	WINFO_MTX	winfo_mtx;
+	TMEVTB		tmevtb;
+	ER			ercd;
 
 	LOG_TLOC_MTX_ENTER(mtxid, tmout);
@@ -614,7 +614,6 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_MTX;
-		wobj_make_wait_tmout((WOBJCB *) p_mtxcb, (WINFO_WOBJ *) &winfo_mtx,
-														&tmevtb, tmout);
+		wobj_make_wait_tmout((WOBJCB *) p_mtxcb, TS_WAITING_MTX,
+								(WINFO_WOBJ *) &winfo_mtx, &tmevtb, tmout);
 		dispatch();
 		ercd = winfo_mtx.winfo.wercd;
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/mutex.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -51,6 +51,6 @@
 
   def prepare(key, params)
-    # mtxatrが無効の場合（E_RSATR）［NGKI2025］
-    # （TA_NULL，TA_TPRI，TA_CEILINGのいずれでもない場合）
+    # mtxatrが無効の場合（E_RSATR）［NGKI2025］［NGKI2010］
+    #（TA_NULL，TA_TPRI，TA_CEILINGのいずれでもない場合）
     if !(params[:mtxatr] == $TA_NULL || params[:mtxatr] == $TA_TPRI \
 										|| params[:mtxatr] == $TA_CEILING)
@@ -60,10 +60,10 @@
     if params[:mtxatr] == $TA_CEILING
       # 優先度上限ミューテックスの場合
-      # ceilpriが未指定の場合はエラーとする
-      if params[:ceilpri].nil?
+      # ceilpriの記述が省略されている場合［NGKI2035］
+      if !params.has_key?(:ceilpri)
         error_api(params, "ceilpri must be specified in %apiname of %mtxid")
 
-      # (TMIN_TPRI <= ceilpri && ceilpri <= TMAX_TPRI)でない場合（E_PAR）
-      # ［NGKI2037］
+      # ceilpriが有効範囲外の場合（E_PAR）［NGKI2037］
+      #（TMIN_TPRI <= ceilpri && ceilpri <= TMAX_TPRIでない場合）
       elsif !($TMIN_TPRI <= params[:ceilpri] && params[:ceilpri] <= $TMAX_TPRI)
         error_illegal_id("E_PAR", params, :ceilpri, :mtxid)
@@ -71,6 +71,6 @@
     else
       # 優先度上限ミューテックスでない場合
-      # ceilpriが指定されている場合は警告メッセージを出す
-      if !params[:ceilpri].nil?
+      # ceilpriが記述されている場合は警告メッセージを出す
+      if params.has_key?(:ceilpri)
         warning_api(params, "%%ceilpri is ignored in %apiname of %mtxid")
       end
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -335,6 +335,9 @@
 	p_pdqmb = pk_cpdq->pdqmb;
 
-	CHECK_RSATR(pdqatr, TA_TPRI);
+	CHECK_VALIDATR(pdqatr, TA_TPRI);
 	CHECK_PAR(VALID_DPRI(maxdpri));
+	if (p_pdqmb != NULL) {
+		CHECK_PAR(MB_ALIGN(p_pdqmb));
+	}
 
 	lock_cpu();
@@ -344,5 +347,5 @@
 	else {
 		if (pdqcnt != 0 && p_pdqmb == NULL) {
-			p_pdqmb = kernel_malloc(sizeof(PDQMB) * pdqcnt);
+			p_pdqmb = malloc_mpk(sizeof(PDQMB) * pdqcnt);
 			pdqatr |= TA_MBALLOC;
 		}
@@ -405,5 +408,5 @@
 		p_pdqinib = (PDQINIB *)(p_pdqcb->p_pdqinib);
 		if ((p_pdqinib->pdqatr & TA_MBALLOC) != 0U) {
-			kernel_free(p_pdqinib->p_pdqmb);
+			free_mpk(p_pdqinib->p_pdqmb);
 		}
 		p_pdqinib->pdqatr = TA_NOEXS;
@@ -431,7 +434,7 @@
 snd_pdq(ID pdqid, intptr_t data, PRI datapri)
 {
-	PDQCB	*p_pdqcb;
-	WINFO_SPDQ winfo_spdq;
-	ER		ercd;
+	PDQCB		*p_pdqcb;
+	WINFO_SPDQ	winfo_spdq;
+	ER			ercd;
 
 	LOG_SND_PDQ_ENTER(pdqid, data, datapri);
@@ -460,6 +463,6 @@
 		winfo_spdq.data = data;
 		winfo_spdq.datapri = datapri;
-		p_runtsk->tstat = TS_WAITING_SPDQ;
-		wobj_make_wait((WOBJCB *) p_pdqcb, (WINFO_WOBJ *) &winfo_spdq);
+		wobj_make_wait((WOBJCB *) p_pdqcb, TS_WAITING_SPDQ,
+											(WINFO_WOBJ *) &winfo_spdq);
 		dispatch();
 		ercd = winfo_spdq.winfo.wercd;
@@ -504,5 +507,5 @@
 			}
 			else {
-				request_dispatch();
+				request_dispatch_retint();
 			}
 		}
@@ -529,8 +532,8 @@
 tsnd_pdq(ID pdqid, intptr_t data, PRI datapri, TMO tmout)
 {
-	PDQCB	*p_pdqcb;
-	WINFO_SPDQ winfo_spdq;
-	TMEVTB	tmevtb;
-	ER		ercd;
+	PDQCB		*p_pdqcb;
+	WINFO_SPDQ	winfo_spdq;
+	TMEVTB		tmevtb;
+	ER			ercd;
 
 	LOG_TSND_PDQ_ENTER(pdqid, data, datapri, tmout);
@@ -563,7 +566,6 @@
 		winfo_spdq.data = data;
 		winfo_spdq.datapri = datapri;
-		p_runtsk->tstat = TS_WAITING_SPDQ;
-		wobj_make_wait_tmout((WOBJCB *) p_pdqcb, (WINFO_WOBJ *) &winfo_spdq,
-														&tmevtb, tmout);
+		wobj_make_wait_tmout((WOBJCB *) p_pdqcb, TS_WAITING_SPDQ,
+								(WINFO_WOBJ *) &winfo_spdq, &tmevtb, tmout);
 		dispatch();
 		ercd = winfo_spdq.winfo.wercd;
@@ -586,7 +588,7 @@
 rcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri)
 {
-	PDQCB	*p_pdqcb;
-	WINFO_RPDQ winfo_rpdq;
-	ER		ercd;
+	PDQCB		*p_pdqcb;
+	WINFO_RPDQ	winfo_rpdq;
+	ER			ercd;
 
 	LOG_RCV_PDQ_ENTER(pdqid, p_data, p_datapri);
@@ -609,6 +611,5 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_RPDQ;
-		make_wait(&(winfo_rpdq.winfo));
+		make_wait(TS_WAITING_RPDQ, &(winfo_rpdq.winfo));
 		queue_insert_prev(&(p_pdqcb->rwait_queue), &(p_runtsk->task_queue));
 		winfo_rpdq.p_pdqcb = p_pdqcb;
@@ -676,8 +677,8 @@
 trcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri, TMO tmout)
 {
-	PDQCB	*p_pdqcb;
-	WINFO_RPDQ winfo_rpdq;
-	TMEVTB	tmevtb;
-	ER		ercd;
+	PDQCB		*p_pdqcb;
+	WINFO_RPDQ	winfo_rpdq;
+	TMEVTB		tmevtb;
+	ER			ercd;
 
 	LOG_TRCV_PDQ_ENTER(pdqid, p_data, p_datapri, tmout);
@@ -704,6 +705,5 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_RPDQ;
-		make_wait_tmout(&(winfo_rpdq.winfo), &tmevtb, tmout);
+		make_wait_tmout(TS_WAITING_RPDQ, &(winfo_rpdq.winfo), &tmevtb, tmout);
 		queue_insert_prev(&(p_pdqcb->rwait_queue), &(p_runtsk->task_queue));
 		winfo_rpdq.p_pdqcb = p_pdqcb;
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/pridataq.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -54,5 +54,5 @@
     params[:pdqmb] ||= "NULL"
 
-    # pdqatrが無効の場合（E_RSATR）［NGKI1804］
+    # pdqatrが無効の場合（E_RSATR）［NGKI1804］［NGKI1795］
     #（TA_TPRI以外のビットがセットされている場合）
     if (params[:pdqatr] & ~($TA_TPRI)) != 0
@@ -60,6 +60,6 @@
     end
 
-    # (TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI)でない場合（E_PAR）
-    # ［NGKI1819］
+	# maxdpriが有効範囲外の場合（E_PAR）［NGKI1819］
+    #（TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRIでない場合）
     if !($TMIN_DPRI <= params[:maxdpri] && params[:maxdpri] <= $TMAX_DPRI)
       error_illegal_id("E_PAR", params, :maxdpri, :pdqid)
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -186,5 +186,5 @@
 	maxsem = pk_csem->maxsem;
 
-	CHECK_RSATR(sematr, TA_TPRI);
+	CHECK_VALIDATR(sematr, TA_TPRI);
 	CHECK_PAR(0 <= isemcnt && isemcnt <= maxsem);
 	CHECK_PAR(1 <= maxsem && maxsem <= TMAX_MAXSEM);
@@ -286,5 +286,5 @@
 			}
 			else {
-				request_dispatch();
+				request_dispatch_retint();
 			}
 		}
@@ -315,7 +315,7 @@
 wai_sem(ID semid)
 {
-	SEMCB	*p_semcb;
-	WINFO_SEM winfo_sem;
-	ER		ercd;
+	SEMCB		*p_semcb;
+	WINFO_SEM	winfo_sem;
+	ER			ercd;
 
 	LOG_WAI_SEM_ENTER(semid);
@@ -336,6 +336,6 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_SEM;
-		wobj_make_wait((WOBJCB *) p_semcb, (WINFO_WOBJ *) &winfo_sem);
+		wobj_make_wait((WOBJCB *) p_semcb, TS_WAITING_SEM,
+				 							(WINFO_WOBJ *) &winfo_sem);
 		dispatch();
 		ercd = winfo_sem.winfo.wercd;
@@ -394,8 +394,8 @@
 twai_sem(ID semid, TMO tmout)
 {
-	SEMCB	*p_semcb;
-	WINFO_SEM winfo_sem;
-	TMEVTB	tmevtb;
-	ER		ercd;
+	SEMCB		*p_semcb;
+	WINFO_SEM	winfo_sem;
+	TMEVTB		tmevtb;
+	ER			ercd;
 
 	LOG_TWAI_SEM_ENTER(semid, tmout);
@@ -420,7 +420,6 @@
 	}
 	else {
-		p_runtsk->tstat = TS_WAITING_SEM;
-		wobj_make_wait_tmout((WOBJCB *) p_semcb, (WINFO_WOBJ *) &winfo_sem,
-														&tmevtb, tmout);
+		wobj_make_wait_tmout((WOBJCB *) p_semcb, TS_WAITING_SEM,
+								(WINFO_WOBJ *) &winfo_sem, &tmevtb, tmout);
 		dispatch();
 		ercd = winfo_sem.winfo.wercd;
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/semaphore.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -51,5 +51,5 @@
 
   def prepare(key, params)
-    # sematrが無効の場合（E_RSATR）［NGKI1456］
+    # sematrが無効の場合（E_RSATR）［NGKI1456］［NGKI1448］
     #（TA_TPRI以外のビットがセットされている場合）
     if (params[:sematr] & ~($TA_TPRI)) != 0
@@ -57,10 +57,12 @@
     end
 
-    # (1 <= maxsem && maxsem <= TMAX_MAXSEM)でない場合（E_PAR）［NGKI1468］
+    # maxsemが有効範囲外の場合（E_PAR）［NGKI1468］
+    #（1 <= maxsem && maxsem <= TMAX_MAXSEMでない場合）
     if !(1 <= params[:maxsem] && params[:maxsem] <= $TMAX_MAXSEM)
       error_illegal_id("E_PAR", params, :maxsem, :semid)
     end
 
-    # (0 <= isemcnt && isemcnt <= maxsem)でない場合（E_PAR）［NGKI1466］
+    # isemcntが有効範囲外の場合（E_PAR）［NGKI1466］
+    #（0 <= isemcnt && isemcnt <= maxsemでない場合）
     if !(0 <= params[:isemcnt] && params[:isemcnt] <= params[:maxsem])
       error_wrong_id("E_PAR", params, :isemcnt, :semid, "too large")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/startup.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/startup.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/startup.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -79,4 +79,9 @@
 
 /*
+ *  カーネルメモリプール領域有効フラグ
+ */
+bool_t	mpk_valid;
+
+/*
  *  カーネルの起動
  */
@@ -84,4 +89,6 @@
 sta_ker(void)
 {
+	uint_t	i;
+
 	/*
 	 *  TECSの初期化
@@ -102,5 +109,10 @@
 	 *  する必要がある．
 	 */
-	initialize_kmm();
+	if (mpk != NULL) {
+		mpk_valid = initialize_mempool(mpk, mpksz);
+	}
+	else {
+		mpk_valid = false;
+	}
 	initialize_tmevt();								/*［ASPD1061］*/
 	initialize_object();
@@ -109,5 +121,7 @@
 	 *  初期化ルーチンの実行
 	 */ 
-	call_inirtn();
+	for (i = 0; i < tnum_inirtn; i++) {
+		(*(inirtnb_table[i].inirtn))(inirtnb_table[i].exinf);
+	}
 
 	/*
@@ -172,8 +186,12 @@
 exit_kernel(void)
 {
+	uint_t	i;
+
 	/*
 	 *  終了処理ルーチンの実行
 	 */
-	call_terrtn();
+	for (i = 0; i < tnum_terrtn; i++) {
+		(*(terrtnb_table[i].terrtn))(terrtnb_table[i].exinf);
+	}
 
 	/*
@@ -187,26 +205,46 @@
 
 /*
- *  カーネルの割り付けるメモリ領域の管理
+ *  デフォルトのメモリプール管理機能
  *
- *  メモリ領域を先頭から順に割り当て，解放されたメモリ領域を再利用しな
- *  いメモリ管理モジュール．
+ *  メモリプール領域の先頭から順に割り当てを行い，すべてのメモリ領域が
+ *  解放されるまで解放されたメモリ領域を再利用しないメモリプール管理機
+ *  能．
  */
 #ifdef TOPPERS_kermem
-#ifndef OMIT_KMM_ALLOCONLY
-
-static void	*kmm_brk;
-
-void
-initialize_kmm(void)
-{
-	kmm_brk = ((char *) kmm) + kmmsz;
+#ifndef OMIT_MEMPOOL_DEFAULT
+
+typedef struct {
+	void	*brk;		/* メモリプール領域の未使用領域の先頭番地 */
+	void	*limit;		/* メモリプール領域の上限 */
+	uint_t	count;		/* 割り当てたメモリ領域の数 */
+} MEMPOOLCB;
+
+bool_t
+initialize_mempool(MB_T *mempool, size_t size)
+{
+	MEMPOOLCB	*p_mempoolcb = ((MEMPOOLCB *) mempool);
+
+	if (size >= sizeof(MEMPOOLCB)) {
+		p_mempoolcb->brk = ((char *) mempool) + sizeof(MEMPOOLCB);
+		p_mempoolcb->limit = ((char *) mempool) + size;
+		p_mempoolcb->count = 0;
+		return(true);
+	}
+	else {
+		return(false);
+	}
 }
 
 void *
-kernel_malloc(size_t size)
-{
-	if (((char *) kmm_brk) - ((char *) kmm) >= size) {
-		kmm_brk = ((char *) kmm_brk) - size;
-		return(kmm_brk);
+malloc_mempool(MB_T *mempool, size_t size)
+{
+	MEMPOOLCB	*p_mempoolcb = ((MEMPOOLCB *) mempool);
+	void		*brk;
+
+	brk = ((MEMPOOLCB *) mempool)->brk;
+	if (((char *)(p_mempoolcb->limit)) - ((char *) brk) >= size) {
+		p_mempoolcb->brk = ((char *) brk) + size;
+		p_mempoolcb->count += 1;
+		return(brk);
 	}
 	else {
@@ -216,8 +254,14 @@
 
 void
-kernel_free(void *ptr)
-{
-}
-
-#endif /* OMIT_KMM_ALLOCONLY */
+free_mempool(MB_T *mempool, void *ptr)
+{
+	MEMPOOLCB	*p_mempoolcb = ((MEMPOOLCB *) mempool);
+
+	p_mempoolcb->count -= 1;
+	if (p_mempoolcb->count == 0) {
+		p_mempoolcb->brk = ((char *) mempool) + sizeof(MEMPOOLCB);
+	}
+}
+
+#endif /* OMIT_MEMPOOL_DEFAULT */
 #endif /* TOPPERS_kermem */
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/sys_manage.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/sys_manage.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/sys_manage.c	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -184,5 +184,5 @@
 		}
 		else {
-			request_dispatch();
+			request_dispatch_retint();
 		}
 	}
@@ -205,13 +205,17 @@
 get_tid(ID *p_tskid)
 {
+	bool_t lock;
 	ER		ercd;
 
 	LOG_GET_TID_ENTER(p_tskid);
-	CHECK_UNL();								/*［NGKI2707］*/
-
-	lock_cpu();
+	//CHECK_UNL();								/*［NGKI2707］*/
+	lock = sense_lock();
+
+	if (!lock)
+		lock_cpu();
 	*p_tskid = (p_runtsk == NULL) ? TSK_NONE : TSKID(p_runtsk);
-	ercd = E_OK;
-	unlock_cpu();
+	ercd = E_OK;								/*［NGKI2710］［NGKI2709］*/
+	if (!lock)
+		unlock_cpu();
 
   error_exit:
@@ -399,6 +403,5 @@
 	enadsp = true;
 	if (t_get_ipm() == TIPM_ENAALL) {
-		dspflg = true;
-		p_schedtsk = search_schedtsk();
+		set_dspflg();
 		if (p_runtsk->raster && p_runtsk->enater) {
 			task_terminate(p_runtsk);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task.c	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2017 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -113,4 +113,5 @@
 		p_tcb->actque = false;
 		make_dormant(p_tcb);
+		p_tcb->p_lastmtx = NULL;
 		if ((p_tcb->p_tinib->tskatr & TA_ACT) != 0U) {
 			make_active(p_tcb);
@@ -232,5 +233,6 @@
  *
  *  実行すべきタスクを更新するのは，実行できるタスクがなかった場合と，
- *  p_tcbの優先度が実行すべきタスクの優先度よりも高い場合である．
+ *  p_tcbで指定されるタスクの優先度が実行すべきタスクの優先度よりも高
+ *  い場合である．
  */
 #ifdef TOPPERS_tskrun
@@ -256,8 +258,13 @@
  *  実行できる状態から他の状態への遷移
  *
- *  実行すべきタスクを更新するのは，p_tcbが実行すべきタスクであった場合
- *  である．p_tcbと同じ優先度のタスクが他にある場合は，p_tcbの次のタス
- *  クが実行すべきタスクになる．そうでない場合は，レディキューをサーチ
- *  する必要がある．
+ *  実行すべきタスクを更新するのは，p_tcbで指定されるタスクが実行すべ
+ *  きタスクであった場合である．p_tcbで指定されるタスクと同じ優先度の
+ *  タスクが他にある場合は，そのタスクの次のタスクが実行すべきタスクに
+ *  なる．そうでない場合は，レディキューをサーチする必要がある．
+ *
+ *  自タスクに対してこの関数が呼ばれるのは，タスクディスパッチ可能状態
+ *  に限られる．またこの関数は，非タスクコンテキストから呼ばれることは
+ *  ないため，p_runtskとp_schedtskは必ず一致している．そのため，p_tcb
+ *  とp_schedtskが一致するときは，必ずタスクディスパッチ可能状態である．
  */
 #ifdef TOPPERS_tsknrun
@@ -325,12 +332,14 @@
  *  タスクの優先度の変更
  *
- *  タスクが実行できる状態の場合には，レディキューの中での位置を変更す
- *  る．オブジェクトの待ちキューの中で待ち状態になっている場合には，待
- *  ちキューの中での位置を変更する．
- *
- *  実行すべきタスクを更新するのは，(1) p_tcbが実行すべきタスクであって，
- *  その優先度を下げた場合，(2) p_tcbが実行すべきタスクではなく，変更後
- *  の優先度が実行すべきタスクの優先度よりも高い場合である．(1)の場合に
- *  は，レディキューをサーチする必要がある．
+ *  p_tcbで指定されるタスクが実行できる状態の場合には，レディキューの
+ *  中での位置を変更する．オブジェクトの待ちキューの中で待ち状態になっ
+ *  ている場合には，待ちキューの中での位置を変更する．
+ *
+ *  実行すべきタスクを更新するのは，(1) p_tcbで指定されるタスクが実行
+ *  すべきタスクであった場合には，優先度を下げた（または優先度が変わら
+ *  なかった）時，(2) p_tcbで指定されるタスクが実行すべきタスクでなかっ
+ *  た場合には，変更後の優先度が実行すべきタスクの優先度よりも高いか同
+ *  じ時（同じ場合に更新が必要になるのは，実際には，mtxmodeがtrueの場
+ *  合のみ）である．(1)の場合には，レディキューをサーチする必要がある．
  */
 #ifdef TOPPERS_tskpri
@@ -367,7 +376,6 @@
 			}
 			else {
-				if (mtxmode ? newpri <= p_schedtsk->priority
-							: newpri < p_schedtsk->priority) {
-					p_schedtsk = p_tcb;
+				if (newpri <= p_schedtsk->priority) {
+					p_schedtsk = (TCB *)(ready_queue[newpri].p_next);
 				}
 			}
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task.h	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2017 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -186,7 +186,4 @@
  *  が，実行効率が悪くなるために採用していない．他のオブジェクトについ
  *  ても同様に扱う．
- *
- *  タスク初期化ブロックには，DEF_TEXで定義されるタスク例外処理ルーチ
- *  ンに関する情報も含む．
  */
 typedef struct task_initialization_block {
@@ -239,5 +236,5 @@
 	BIT_FIELD_UINT	tstat : 8;		/* タスク状態（内部表現）*/
 	BIT_FIELD_UINT	bpriority : 8;	/* ベース優先度（内部表現）*/
-	BIT_FIELD_UINT	priority : 8	/* 現在の優先度（内部表現）*/;
+	BIT_FIELD_UINT	priority : 8;	/* 現在の優先度（内部表現）*/
 #endif /* UINT8_MAX */
 	BIT_FIELD_BOOL	actque : 1;		/* 起動要求キューイング */
@@ -380,7 +377,6 @@
  *  実行できる状態への遷移
  *
- *  p_tcbで指定されるタスクをレディキューに挿入する．レディキューに挿入
- *  したタスクの優先度が，実行すべきタスクの優先度よりも高い場合は，実
- *  行すべきタスクを更新する．
+ *  p_tcbで指定されるタスクをレディキューに挿入する．また，必要な場合
+ *  には，実行すべきタスクを更新する．
  */
 extern void	make_runnable(TCB *p_tcb);
@@ -396,4 +392,17 @@
 
 /*
+ *  タスクディスパッチ可能状態への遷移
+ *
+ *  タスクディスパッチ可能状態であることを示すフラグ（dspflg）をtrueに
+ *  し，実行すべきタスクを更新する．
+ */
+Inline void
+set_dspflg(void)
+{
+	dspflg = true;
+	p_schedtsk = search_schedtsk();
+}
+
+/*
  *  休止状態への遷移
  *
@@ -417,6 +426,7 @@
  *  必要な場合には，実行すべきタスクを更新する．
  *
- *  p_tcbで指定されるタスクの優先順位は，優先度が同じタスクの中で，
- *  mtxmodeがfalseの時は最低，mtxmodeがtrueの時は最高とする．
+ *  p_tcbで指定されるタスクが実行できる状態である場合，その優先順位は，
+ *  優先度が同じタスクの中で，mtxmodeがfalseの時は最低，mtxmodeがtrue
+ *  の時は最高とする．
  */
 extern void	change_priority(TCB *p_tcb, uint_t newpri, bool_t mtxmode);
@@ -425,6 +435,6 @@
  *  レディキューの回転
  *
- *  レディキュー中の，p_queueで指定されるタスクキューを回転させる．また，
- *  必要な場合には，実行すべきタスクを更新する．
+ *  レディキュー中の，p_queueで指定されるタスクキューを回転させる．ま
+ *  た，必要な場合には，実行すべきタスクを更新する．
  */
 extern void	rotate_ready_queue(QUEUE *p_queue);
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task.trb	(revision 429)
@@ -6,5 +6,5 @@
 # 
 #   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
-#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#   Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
 #               Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -54,5 +54,6 @@
     params[:stk] ||= "NULL"
 
-    # tskatrが無効の場合（E_RSATR）［NGKI1028］
+    # tskatrが無効の場合（E_RSATR）［NGKI1028］［NGKI3526］［ASPS0009］
+    # ［NGKI1016］
     #（TA_ACT，TA_NOACTQUE，TARGET_TSKATR以外のビットがセットされている場合）
     if (params[:tskatr] & ~($TA_ACT|$TA_NOACTQUE|$TARGET_TSKATR)) != 0
@@ -60,5 +61,6 @@
     end
 
-    # (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)でない場合［NGKI1034］
+    # itskpriが有効範囲外の場合（E_PAR）［NGKI1034］
+    #（TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRIでない場合）
     if !($TMIN_TPRI <= params[:itskpri] && params[:itskpri] <= $TMAX_TPRI)
       error_illegal_id("E_PAR", params, :itskpri, :tskid)
@@ -66,5 +68,5 @@
 
     # stkszがターゲット定義の最小値（TARGET_MIN_STKSZ，未定義の場合は1）
-    # よりも小さい場合［NGKI1042］
+    # よりも小さい場合（E_PAR）［NGKI1042］
     if params[:stksz] < $TARGET_MIN_STKSZ
       error_wrong_id("E_PAR", params, :stksz, :tskid, "too small")
@@ -78,5 +80,5 @@
       params[:tinib_stk] = stkName
     else
-      # stkszがスタック領域のサイズとして正しくない場合［NGKI1056］
+      # stkszがターゲット定義の制約に合致しない場合（E_PAR）［NGKI1056］
       if (params[:stksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
         error_wrong_id("E_PAR", params, :stksz, :tskid, "not aligned")
@@ -85,4 +87,9 @@
       params[:tinib_stksz] = params[:stksz]
       params[:tinib_stk] = "(void *)(#{params[:stk]})"
+    end
+
+    # ターゲット依存の処理（ターゲット依存のエラーチェックを含む）
+    if defined? TargetTaskPrepare()
+      TargetTaskPrepare(key, params)
     end
   end
@@ -100,11 +107,13 @@
 end
 
+# タスクが1つも登録されていない場合［NGKI0033］
+if $cfgData[:CRE_TSK].size() == 0
+  error("no task is registered")
+end
+
 #
 #  タスク管理に関する情報の生成
 #
 $kernelCfgC.comment_header("Task Management Functions")
-if $cfgData[:CRE_TSK].size() == 0
-  error("no task is registered")
-end
 TaskObject.new.generate()
 
@@ -112,5 +121,5 @@
 $kernelCfgC.add("const ID _kernel_torder_table[TNUM_STSKID] = { ")
 $kernelCfgC.append("\t")
-$cfgData[:CRE_TSK].each_with_index do |(key, params), index|
+$cfgData[:CRE_TSK].each_with_index do |(_, params), index|
   $kernelCfgC.append(", ") if index > 0
   $kernelCfgC.append("#{params[:tskid]}")
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task_manage.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task_manage.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task_manage.c	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -126,8 +126,4 @@
 #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)
@@ -151,5 +147,5 @@
 	stk = pk_ctsk->stk;
 
-	CHECK_RSATR(tskatr, TA_ACT|TA_NOACTQUE|TARGET_TSKATR);
+	CHECK_VALIDATR(tskatr, TA_ACT|TA_NOACTQUE|TARGET_TSKATR);
 	CHECK_PAR(FUNC_ALIGN(task));
 	CHECK_PAR(FUNC_NONNULL(task));
@@ -168,5 +164,5 @@
 		if (stk == NULL) {
 			stksz = ROUND_STK_T(stksz);
-			stk = kernel_malloc(stksz);
+			stk = malloc_mpk(stksz);
 			tskatr |= TA_MEMALLOC;
 		}
@@ -189,7 +185,11 @@
 
 			p_tcb->actque = false;
+			p_tcb->p_lastmtx = NULL;
 			make_dormant(p_tcb);
 			if ((p_tcb->p_tinib->tskatr & TA_ACT) != 0U) {
 				make_active(p_tcb);
+				if (p_runtsk != p_schedtsk) {
+					dispatch();
+				}
 			}
 			ercd = TSKID(p_tcb);
@@ -235,5 +235,5 @@
 #else /* USE_TSKINICTXB */
 		if ((p_tinib->tskatr & TA_MEMALLOC) != 0U) {	/*［NGKI1109］*/
-			kernel_free(p_tinib->stk);
+			free_mpk(p_tinib->stk);
 		}
 #endif /* USE_TSKINICTXB */
@@ -283,5 +283,5 @@
 			}
 			else {
-				request_dispatch();
+				request_dispatch_retint();
 			}
 		}
@@ -423,4 +423,9 @@
 	}
 	if (tskpri == TPRI_INI) {
+		/*
+		 *  以下の代入文は，対象タスクが未登録の場合に無効なフィールド
+		 *  を参照するが，その場合はnewbpriの値を使わないので，問題な
+		 *  い．
+		 */
 		newbpri = p_tcb->p_tinib->ipriority;	/*［NGKI1199］*/
 	}
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task_refer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task_refer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task_refer.c	(revision 429)
@@ -4,5 +4,5 @@
  *      Advanced Standard Profile Kernel
  * 
- *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -67,5 +67,5 @@
 
 /*
- *  タスクの状態参照
+ *  タスクの状態参照［NGKI1217］
  */
 #ifdef TOPPERS_ref_tsk
@@ -79,10 +79,10 @@
 
 	LOG_REF_TSK_ENTER(tskid, pk_rtsk);
-	CHECK_TSKCTX_UNL();
+	CHECK_TSKCTX_UNL();							/*［NGKI1218］［NGKI1219］*/
 	if (tskid == TSK_SELF) {
-		p_tcb = p_runtsk;
+		p_tcb = p_runtsk;						/*［NGKI1248］*/
 	}
 	else {
-		CHECK_ID(VALID_TSKID(tskid));
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI1220］*/
 		p_tcb = get_tcb(tskid);
 	}
@@ -90,5 +90,5 @@
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;
+		ercd = E_NOEXS;							/*［NGKI1221］*/
 	}
 	else {
@@ -96,5 +96,5 @@
 		if (TSTAT_DORMANT(tstat)) {
 			/*
-	 		 *  対象タスクが休止状態の場合
+	 		 *  対象タスクが休止状態の場合［NGKI1225］
 			 */
 			pk_rtsk->tskstat = TTS_DMT;
@@ -102,5 +102,5 @@
 		else {
 			/*
-	 		 *  タスク状態の取出し
+	 		 *  タスク状態の取出し［NGKI1225］
 			 */
 			if (TSTAT_SUSPENDED(tstat)) {
@@ -123,5 +123,5 @@
 
 			/*
-	 		 *  現在優先度とベース優先度の取出し
+	 		 *  現在優先度とベース優先度の取出し［NGKI1227］
 			 */
 			pk_rtsk->tskpri = EXT_TSKPRI(p_tcb->priority);
@@ -130,7 +130,8 @@
 			if (TSTAT_WAITING(tstat)) {
 				/*
-		 		 *  待ち要因と待ち対象のオブジェクトのIDの取出し
+		 		 *  待ち要因と待ち対象のオブジェクトのIDの取出し［NGKI1229］
+				 *  ［NGKI1231］
 				 */
-				switch (tstat) {
+				switch (tstat & TS_WAITING_MASK) {
 				case TS_WAITING_SLP:
 					pk_rtsk->tskwait = TTW_SLP;
@@ -185,24 +186,24 @@
 				 */
 				if (p_tcb->p_winfo->p_tmevtb != NULL) {
-					pk_rtsk->lefttmo
+					pk_rtsk->lefttmo			/*［NGKI1233］［NGKI1235］*/
 							= (TMO) tmevt_lefttim(p_tcb->p_winfo->p_tmevtb);
 				}
 				else {
-					pk_rtsk->lefttmo = TMO_FEVR;
-				}
-			}
-
-			/*
-	 		 *  起床要求キューイング数の取出し
+					pk_rtsk->lefttmo = TMO_FEVR;	/*［NGKI1234］*/
+				}
+			}
+
+			/*
+	 		 *  起床要求キューイング数の取出し［NGKI1239］
 			 */
 			pk_rtsk->wupcnt = p_tcb->wupque ? 1U : 0U;
 
 			/*
-			 *  タスク終了要求状態の取出し
+			 *  タスク終了要求状態の取出し［NGKI3467］
 			 */
 			pk_rtsk->raster = p_tcb->raster;
 
 			/*
-			 *  タスク終了禁止状態の取出し
+			 *  タスク終了禁止状態の取出し［NGKI3468］
 			 */
 			pk_rtsk->dister = !(p_tcb->enater);
@@ -210,5 +211,5 @@
 
 		/*
-		 *  起動要求キューイング数の取出し
+		 *  起動要求キューイング数の取出し［NGKI1238］
 		 */
 		pk_rtsk->actcnt = p_tcb->actque ? 1U : 0U;
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task_sync.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task_sync.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task_sync.c	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -118,5 +118,5 @@
 
 /*
- *  起床待ち
+ *  起床待ち［NGKI1252］
  */
 #ifdef TOPPERS_slp_tsk
@@ -129,17 +129,16 @@
 
 	LOG_SLP_TSK_ENTER();
-	CHECK_DISPATCH();
+	CHECK_DISPATCH();							/*［NGKI1254］*/
 
 	lock_cpu_dsp();
 	if (p_runtsk->raster) {
-		ercd = E_RASTER;
+		ercd = E_RASTER;						/*［NGKI3455］*/
 	}
 	else if (p_runtsk->wupque) {
-		p_runtsk->wupque = false;
-		ercd = E_OK;
-	}
-	else {
-		p_runtsk->tstat = TS_WAITING_SLP;
-		make_wait(&winfo);
+		p_runtsk->wupque = false;				/*［NGKI1259］*/
+		ercd = E_OK;
+	}
+	else {
+		make_wait(TS_WAITING_SLP, &winfo);		/*［NGKI1260］*/
 		LOG_TSKSTAT(p_runtsk);
 		dispatch();
@@ -156,5 +155,5 @@
 
 /*
- *  起床待ち（タイムアウトあり）
+ *  起床待ち（タイムアウトあり）［NGKI1253］
  */
 #ifdef TOPPERS_tslp_tsk
@@ -168,21 +167,20 @@
 
 	LOG_TSLP_TSK_ENTER(tmout);
-	CHECK_DISPATCH();
-	CHECK_PAR(VALID_TMOUT(tmout));
+	CHECK_DISPATCH();							/*［NGKI1254］*/
+	CHECK_PAR(VALID_TMOUT(tmout));				/*［NGKI1256］*/
 
 	lock_cpu_dsp();
 	if (p_runtsk->raster) {
-		ercd = E_RASTER;
+		ercd = E_RASTER;						/*［NGKI3455］*/
 	}
 	else if (p_runtsk->wupque) {
-		p_runtsk->wupque = false;
+		p_runtsk->wupque = false;				/*［NGKI1259］*/
 		ercd = E_OK;
 	}
 	else if (tmout == TMO_POL) {
-		ercd = E_TMOUT;
-	}
-	else {
-		p_runtsk->tstat = TS_WAITING_SLP;
-		make_wait_tmout(&winfo, &tmevtb, tmout);
+		ercd = E_TMOUT;							/*［NGKI1257］*/
+	}
+	else {										/*［NGKI1260］*/
+		make_wait_tmout(TS_WAITING_SLP, &winfo, &tmevtb, tmout);
 		LOG_TSKSTAT(p_runtsk);
 		dispatch();
@@ -199,5 +197,5 @@
 
 /*
- *  タスクの起床
+ *  タスクの起床［NGKI3531］
  */
 #ifdef TOPPERS_wup_tsk
@@ -210,10 +208,10 @@
 
 	LOG_WUP_TSK_ENTER(tskid);
-	CHECK_UNL();
+	CHECK_UNL();								/*［NGKI1265］*/
 	if (tskid == TSK_SELF && !sense_context()) {
-		p_tcb = p_runtsk;
-	}
-	else {
-		CHECK_ID(VALID_TSKID(tskid));
+		p_tcb = p_runtsk;						/*［NGKI1275］*/
+	}
+	else {
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI1267］*/
 		p_tcb = get_tcb(tskid);
 	}
@@ -221,11 +219,11 @@
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;
+		ercd = E_NOEXS;							/*［NGKI1268］*/
 	}
 	else if (TSTAT_DORMANT(p_tcb->tstat)) {
-		ercd = E_OBJ;
+		ercd = E_OBJ;							/*［NGKI1270］*/
 	}
 	else if (TSTAT_WAIT_SLP(p_tcb->tstat)) {
-		wait_complete(p_tcb);
+		wait_complete(p_tcb);					/*［NGKI1271］*/
 		if (p_runtsk != p_schedtsk) {
 			if (!sense_context()) {
@@ -233,5 +231,5 @@
 			}
 			else {
-				request_dispatch();
+				request_dispatch_retint();
 			}
 		}
@@ -239,9 +237,9 @@
 	}
 	else if (!(p_tcb->wupque)) {
-		p_tcb->wupque = true;
-		ercd = E_OK;
-	}
-	else {
-		ercd = E_QOVR;
+		p_tcb->wupque = true;					/*［NGKI1273］*/
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_QOVR;							/*［NGKI1274］*/
 	}
 	unlock_cpu();
@@ -255,5 +253,5 @@
 
 /*
- *  タスク起床要求のキャンセル
+ *  タスク起床要求のキャンセル［NGKI1276］
  */
 #ifdef TOPPERS_can_wup
@@ -266,10 +264,10 @@
 
 	LOG_CAN_WUP_ENTER(tskid);
-	CHECK_TSKCTX_UNL();
+	CHECK_TSKCTX_UNL();							/*［NGKI1277］［NGKI1278］*/
 	if (tskid == TSK_SELF) {
-		p_tcb = p_runtsk;
-	}
-	else {
-		CHECK_ID(VALID_TSKID(tskid));
+		p_tcb = p_runtsk;						/*［NGKI1285］*/
+	}
+	else {
+		CHECK_ID(VALID_TSKID(tskid));			/*［NGKI1280］*/
 		p_tcb = get_tcb(tskid);
 	}
@@ -277,12 +275,12 @@
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;
+		ercd = E_NOEXS;							/*［NGKI1281］*/
 	}
 	else if (TSTAT_DORMANT(p_tcb->tstat)) {
-		ercd = E_OBJ;
-	}
-	else {
-		ercd = p_tcb->wupque ? 1 : 0;
-		p_tcb->wupque = false;
+		ercd = E_OBJ;							/*［NGKI1283］*/
+	}
+	else {
+		ercd = p_tcb->wupque ? 1 : 0;			/*［NGKI1284］*/
+		p_tcb->wupque = false;					/*［NGKI1284］*/
 	}
 	unlock_cpu();
@@ -296,5 +294,5 @@
 
 /*
- *  待ち状態の強制解除
+ *  待ち状態の強制解除［NGKI3532］
  */
 #ifdef TOPPERS_rel_wai
@@ -307,19 +305,19 @@
 
 	LOG_REL_WAI_ENTER(tskid);
-	CHECK_UNL();
-	CHECK_ID(VALID_TSKID(tskid));
+	CHECK_UNL();								/*［NGKI1290］*/
+	CHECK_ID(VALID_TSKID(tskid));				/*［NGKI1292］*/
 	p_tcb = get_tcb(tskid);
 
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;
+		ercd = E_NOEXS;							/*［NGKI1293］*/
 	}
 	else if (!TSTAT_WAITING(p_tcb->tstat)) {
-		ercd = E_OBJ;
-	}
-	else {
-		wait_dequeue_wobj(p_tcb);
+		ercd = E_OBJ;							/*［NGKI1295］*/
+	}
+	else {
+		wait_dequeue_wobj(p_tcb);				/*［NGKI1296］*/
 		wait_dequeue_tmevtb(p_tcb);
-		p_tcb->p_winfo->wercd = E_RLWAI;
+		p_tcb->p_winfo->wercd = E_RLWAI;		/*［NGKI1297］*/
 		make_non_wait(p_tcb);
 		if (p_runtsk != p_schedtsk) {
@@ -328,5 +326,5 @@
 			}
 			else {
-				request_dispatch();
+				request_dispatch_retint();
 			}
 		}
@@ -409,5 +407,5 @@
 
 /*
- *  強制待ち状態からの再開
+ *  強制待ち状態からの再開［NGKI1312］
  */
 #ifdef TOPPERS_rsm_tsk
@@ -420,33 +418,31 @@
 
 	LOG_RSM_TSK_ENTER(tskid);
-	CHECK_TSKCTX_UNL();
-	CHECK_ID(VALID_TSKID(tskid));
+	CHECK_TSKCTX_UNL();							/*［NGKI1313］［NGKI1314］*/
+	CHECK_ID(VALID_TSKID(tskid));				/*［NGKI1316］*/
 	p_tcb = get_tcb(tskid);
 
 	lock_cpu();
 	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
-		ercd = E_NOEXS;
+		ercd = E_NOEXS;							/*［NGKI1317］*/
 	}
 	else if (!TSTAT_SUSPENDED(p_tcb->tstat)) {
-		ercd = E_OBJ;
-	}
-	else if (!TSTAT_WAITING(p_tcb->tstat)) {
+		ercd = E_OBJ;							/*［NGKI1319］*/
+	}
+	else {
 		/*
-		 *  強制待ち状態から実行できる状態への遷移
+		 *  強制待ちからの再開［NGKI1320］
 		 */
-		p_tcb->tstat = TS_RUNNABLE;
-		LOG_TSKSTAT(p_tcb);
-		make_runnable(p_tcb);
-		if (p_runtsk != p_schedtsk) {
-			dispatch();
+		if (!TSTAT_WAITING(p_tcb->tstat)) {
+			p_tcb->tstat = TS_RUNNABLE;
+			LOG_TSKSTAT(p_tcb);
+			make_runnable(p_tcb);
+			if (p_runtsk != p_schedtsk) {
+				dispatch();
+			}
 		}
-		ercd = E_OK;
-	}
-	else {
-		/*
-		 *  二重待ち状態から待ち状態への遷移
-		 */
-		p_tcb->tstat &= ~TS_SUSPENDED;
-		LOG_TSKSTAT(p_tcb);
+		else {
+			p_tcb->tstat &= ~TS_SUSPENDED;
+			LOG_TSKSTAT(p_tcb);
+		}
 		ercd = E_OK;
 	}
@@ -461,5 +457,5 @@
 
 /*
- *  自タスクの遅延
+ *  自タスクの遅延［NGKI1348］
  */
 #ifdef TOPPERS_dly_tsk
@@ -473,13 +469,13 @@
 
 	LOG_DLY_TSK_ENTER(dlytim);
-	CHECK_DISPATCH();
-	CHECK_PAR(VALID_RELTIM(dlytim));
+	CHECK_DISPATCH();							/*［NGKI1349］*/
+	CHECK_PAR(VALID_RELTIM(dlytim));			/*［NGKI1351］*/
 
 	lock_cpu_dsp();
 	if (p_runtsk->raster) {
-		ercd = E_RASTER;
-	}
-	else {
-		p_runtsk->tstat = TS_WAITING_DLY;
+		ercd = E_RASTER;						/*［NGKI3456］*/
+	}
+	else {
+		p_runtsk->tstat = TS_WAITING_DLY;		/*［NGKI1353］*/
 		make_non_runnable(p_runtsk);
 		p_runtsk->p_winfo = &winfo;
@@ -487,5 +483,5 @@
 		tmevtb.callback = (CBACK) wait_tmout_ok;
 		tmevtb.arg = (void *) p_runtsk;
-		tmevtb_enqueue(&tmevtb, dlytim);
+		tmevtb_enqueue_reltim(&tmevtb, dlytim);
 		LOG_TSKSTAT(p_runtsk);
 		dispatch();
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/task_term.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/task_term.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/task_term.c	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2017 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -109,5 +109,4 @@
 ext_tsk(void)
 {
-	PRI		intpri;
 	ER		ercd;
 
@@ -126,6 +125,5 @@
 	}
 
-	intpri = t_get_ipm();
-	if (!enadsp || intpri != TIPM_ENAALL) {
+	if (!dspflg) {
 		if (!enadsp) {
 			/*
@@ -135,5 +133,5 @@
 			enadsp = true;
 		}
-		if (intpri != TIPM_ENAALL) {
+		if (t_get_ipm() != TIPM_ENAALL) {
 			/*
 			 *  割込み優先度マスク（IPM）がTIPM_ENAALL以外の状態で
@@ -143,6 +141,5 @@
 			t_set_ipm(TIPM_ENAALL);
 		}
-		dspflg = true;
-		p_schedtsk = search_schedtsk();
+		set_dspflg();
 	}
 
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -49,4 +49,11 @@
 
 /*
+ *  TCYC_HRTCNTの定義のチェック
+ */
+#if defined(USE_64BIT_HRTCNT) && defined(TCYC_HRTCNT)
+#error TCYC_HRTCNT must not be defined when USE_64BIT_HRTCNT.
+#endif
+
+/*
  *  TSTEP_HRTCNTの範囲チェック
  */
@@ -56,6 +63,8 @@
 
 /*
- *  HRTCNT_BOUNDの範囲チェック
- */
+ *  HRTCNT_BOUNDの定義のチェック
+ */
+#ifndef USE_64BIT_HRTCNT
+
 #if HRTCNT_BOUND >= 4294000000U
 #error HRTCNT_BOUND is too large.
@@ -67,4 +76,12 @@
 #endif /* HRTCNT_BOUND >= TCYC_HRTCNT */
 #endif /* TCYC_HRTCNT */
+
+#else /* USE_64BIT_HRTCNT */
+
+#ifdef HRTCNT_BOUND
+#error USE_64BIT_HRTCNT is not supported on this target.
+#endif /* HRTCNT_BOUND */
+
+#endif /* USE_64BIT_HRTCNT */
 
 /*
@@ -367,8 +384,8 @@
 	}
 #endif /* TCYC_HRTCNT */
+	current_hrtcnt = new_hrtcnt;					/*［ASPD1016］*/
 
 	previous_evttim = current_evttim;
 	current_evttim += (EVTTIM) hrtcnt_advance;		/*［ASPD1015］*/
-	current_hrtcnt = new_hrtcnt;					/*［ASPD1016］*/
 	boundary_evttim = current_evttim - BOUNDARY_MARGIN;	/*［ASPD1011］*/
 
@@ -407,5 +424,12 @@
 
 	if (p_last_tmevtn < p_top_tmevtn) {
+		/*
+		 *  タイムイベントがない場合
+		 */
+#ifdef USE_64BIT_HRTCNT
+		target_hrt_clear_event();
+#else /* USE_64BIT_HRTCNT */
 		target_hrt_set_event(HRTCNT_BOUND);			/*［ASPD1007］*/
+#endif /* USE_64BIT_HRTCNT */
 	}
 	else if (EVTTIM_LE(top_evttim, current_evttim)) {
@@ -414,4 +438,7 @@
 	else {
 		hrtcnt = (HRTCNT)(top_evttim - current_evttim);
+#ifdef USE_64BIT_HRTCNT
+		target_hrt_set_event(hrtcnt);
+#else /* USE_64BIT_HRTCNT */
 		if (hrtcnt > HRTCNT_BOUND) {
 			target_hrt_set_event(HRTCNT_BOUND);		/*［ASPD1006］*/
@@ -420,4 +447,5 @@
 			target_hrt_set_event(hrtcnt);			/*［ASPD1002］*/
 		}
+#endif /* USE_64BIT_HRTCNT */
 	}
 }
@@ -442,8 +470,8 @@
  *  
  */
-#ifdef TOPPERS_tmeenq
+#ifdef TOPPERS_tmeenqrel
 
 void
-tmevtb_enqueue(TMEVTB *p_tmevtb, RELTIM time)
+tmevtb_enqueue_reltim(TMEVTB *p_tmevtb, RELTIM time)
 {
 	/*
@@ -467,5 +495,5 @@
 }
 
-#endif /* TOPPERS_tmeenq */
+#endif /* TOPPERS_tmeenqrel */
 
 /*
@@ -502,9 +530,9 @@
 
 bool_t
-check_adjtim(int_t adjtim)
+check_adjtim(int32_t adjtim)
 {
 	if (adjtim > 0) {
 		return(p_last_tmevtn >= p_top_tmevtn	/*［NGKI3588］*/
-					&& EVTTIM_LE(top_evttim, current_evttim - TMAX_ADJTIM));
+					&& EVTTIM_LE(top_evttim + TMAX_ADJTIM, current_evttim));
 	}
 	else if (adjtim < 0) {						/*［NGKI3589］*/
@@ -559,4 +587,7 @@
 	TMEVTB	*p_tmevtb;
 	bool_t	callflag;
+#ifndef TOPPERS_OMIT_SYSLOG
+	uint_t	nocall = 0;
+#endif /* TOPPERS_OMIT_SYSLOG */
 
 	assert(sense_context());
@@ -587,7 +618,19 @@
 			(*(p_tmevtb->callback))(p_tmevtb->arg);
 			callflag = true;
+#ifndef TOPPERS_OMIT_SYSLOG
+			nocall += 1;
+#endif /* TOPPERS_OMIT_SYSLOG */
 		}
 	} while (callflag);								/*［ASPD1020］*/
 
+#ifndef TOPPERS_OMIT_SYSLOG
+	/*
+	 *  タイムイベントが処理されなかった場合．
+	 */
+	if (nocall == 0) {
+		syslog_0(LOG_NOTICE, "no time event is processed in hrt interrupt.");
+	}
+#endif /* TOPPERS_OMIT_SYSLOG */
+
 	/*
 	 *  高分解能タイマ割込みの発生タイミングを設定する［ASPD1025］．
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/time_event.h	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -162,4 +162,8 @@
  *  の発生時刻，コールバック関数，コールバック関数へ渡す引数は，
  *  p_tmevtbが指すタイムイベントブロック中に設定しておく．
+ *
+ *  高分解能タイマ割込みの発生タイミングの設定を行わないため，カーネル
+ *  の初期化時か，高分解能タイマ割込みの処理中で，それが必要ない場合に
+ *  のみ使用する．
  */
 extern void		tmevtb_register(TMEVTB *p_tmevtb);
@@ -173,5 +177,5 @@
  *  ントブロック中に設定しておく．
  */
-extern void		tmevtb_enqueue(TMEVTB *p_tmevtb, RELTIM time);
+extern void		tmevtb_enqueue_reltim(TMEVTB *p_tmevtb, RELTIM time);
 
 /*
@@ -187,5 +191,5 @@
  *  ベント時刻を取得した後に呼び出すことを想定している．
  */
-extern bool_t	check_adjtim(int_t adjtim);
+extern bool_t	check_adjtim(int32_t adjtim);
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/time_manage.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/time_manage.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/time_manage.c	(revision 429)
@@ -53,4 +53,5 @@
 #include "time_event.h"
 #include "target_timer.h"
+#include <sil.h>
 
 /*
@@ -98,13 +99,18 @@
 {
 	ER		ercd;
+	bool_t lock;
 
 	LOG_SET_TIM_ENTER(systim);
-	CHECK_TSKCTX_UNL();							/*［NGKI3564］［NGKI3565］*/
-
-	lock_cpu();
+	//CHECK_TSKCTX_UNL();							/*［NGKI3564］［NGKI3565］*/
+	CHECK_TSKCTX();
+	lock = sense_lock();
+
+	if (!lock)
+		lock_cpu();
 	update_current_evttim();					/*［ASPD1059］*/
 	systim_offset = systim - monotonic_evttim;	/*［ASPD1060］*/
 	ercd = E_OK;
-	unlock_cpu();
+	if (!lock)
+		unlock_cpu();
 
   error_exit:
@@ -124,13 +130,18 @@
 {
 	ER		ercd;
+	bool_t lock;
 
 	LOG_GET_TIM_ENTER(p_systim);
-	CHECK_TSKCTX_UNL();							/*［NGKI2350］［NGKI2351］*/
-
-	lock_cpu();
+	//CHECK_TSKCTX_UNL();							/*［NGKI2350］［NGKI2351］*/
+	CHECK_TSKCTX();
+	lock = sense_lock();
+
+	if (!lock)
+		lock_cpu();
 	update_current_evttim();					/*［ASPD1057］*/
 	*p_systim = systim_offset + monotonic_evttim;	/*［ASPD1058］*/
 	ercd = E_OK;
-	unlock_cpu();
+	if (!lock)
+		unlock_cpu();
 
   error_exit:
@@ -176,5 +187,7 @@
 		}
 
-		set_hrt_event();						/*［ASPD1056］*/
+		if (!in_signal_time) {
+			set_hrt_event();					/*［ASPD1056］*/
+		}
 		ercd = E_OK;
 	}
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/wait.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/wait.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/wait.c	(revision 429)
@@ -6,5 +6,5 @@
  *  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
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -54,6 +54,7 @@
 
 void
-make_wait_tmout(WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout)
+make_wait_tmout(uint_t tstat, WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout)
 {
+	p_runtsk->tstat = tstat;
 	make_non_runnable(p_runtsk);
 	p_runtsk->p_winfo = p_winfo;
@@ -66,5 +67,5 @@
 		p_tmevtb->callback = (CBACK) wait_tmout;
 		p_tmevtb->arg = (void *) p_runtsk;
-		tmevtb_enqueue(p_tmevtb, (RELTIM) tmout);
+		tmevtb_enqueue_reltim(p_tmevtb, (RELTIM) tmout);
 	}
 }
@@ -99,5 +100,5 @@
 	make_non_wait(p_tcb);
 	if (p_runtsk != p_schedtsk) {
-		request_dispatch();
+		request_dispatch_retint();
 	}
 
@@ -119,5 +120,5 @@
 	make_non_wait(p_tcb);
 	if (p_runtsk != p_schedtsk) {
-		request_dispatch();
+		request_dispatch_retint();
 	}
 
@@ -155,7 +156,7 @@
 
 void
-wobj_make_wait(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo_wobj)
+wobj_make_wait(WOBJCB *p_wobjcb, uint_t tstat, WINFO_WOBJ *p_winfo_wobj)
 {
-	make_wait(&(p_winfo_wobj->winfo));
+	make_wait(tstat, &(p_winfo_wobj->winfo));
 	wobj_queue_insert(p_wobjcb);
 	p_winfo_wobj->p_wobjcb = p_wobjcb;
@@ -167,8 +168,8 @@
 
 void
-wobj_make_wait_tmout(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo_wobj,
-								TMEVTB *p_tmevtb, TMO tmout)
+wobj_make_wait_tmout(WOBJCB *p_wobjcb, uint_t tstat,
+						WINFO_WOBJ *p_winfo_wobj, TMEVTB *p_tmevtb, TMO tmout)
 {
-	make_wait_tmout(&(p_winfo_wobj->winfo), p_tmevtb, tmout);
+	make_wait_tmout(tstat, &(p_winfo_wobj->winfo), p_tmevtb, tmout);
 	wobj_queue_insert(p_wobjcb);
 	p_winfo_wobj->p_wobjcb = p_wobjcb;
Index: EcnlProtoTool/trunk/asp3_dcre/kernel/wait.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/kernel/wait.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/kernel/wait.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -77,11 +77,12 @@
  *  待ち状態への遷移
  *
- *  実行中のタスクを待ち状態に遷移させる．具体的には，実行中のタスクを
- *  レディキューから削除し，TCBのp_winfoフィールド，WINFOのp_tmevtbフィー
- *  ルドを設定する．
- */
-Inline void
-make_wait(WINFO *p_winfo)
-{
+ *  実行中のタスクを待ち状態に遷移させる．具体的には，実行中のタスクの
+ *  タスク状態をtstatにしてレディキューから削除し，TCBのp_winfoフィー
+ *  ルド，WINFOのp_tmevtbフィールドを設定する．
+ */
+Inline void
+make_wait(uint_t tstat, WINFO *p_winfo)
+{
+	p_runtsk->tstat = tstat;
 	make_non_runnable(p_runtsk);
 	p_runtsk->p_winfo = p_winfo;
@@ -93,9 +94,10 @@
  *
  *  実行中のタスクを，タイムアウト指定付きで待ち状態に遷移させる．具体
- *  的には，実行中のタスクをレディキューから削除し，TCBのp_winfoフィー
- *  ルド，WINFOのp_tmevtbフィールドを設定する．また，タイムイベントブ
- *  ロックを登録する．
- */
-extern void	make_wait_tmout(WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout);
+ *  的には，実行中のタスクのタスク状態をtstatにしてレディキューから削
+ *  除し，TCBのp_winfoフィールド，WINFOのp_tmevtbフィールドを設定する．
+ *  また，タイムイベントブロックを登録する．
+ */
+extern void	make_wait_tmout(uint_t tstat, WINFO *p_winfo,
+									TMEVTB *p_tmevtb, TMO tmout);
 
 /*
@@ -246,7 +248,8 @@
  *  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);
+extern void	wobj_make_wait(WOBJCB *p_wobjcb, uint_t tstat,
+				 							WINFO_WOBJ *p_winfo_wobj);
+extern void	wobj_make_wait_tmout(WOBJCB *p_wobjcb, uint_t tstat,
+						WINFO_WOBJ *p_winfo_wobj, TMEVTB *p_tmevtb, TMO tmout);
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/library/log_output.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/library/log_output.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/library/log_output.c	(revision 429)
@@ -5,5 +5,5 @@
  *  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
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -174,8 +174,10 @@
 		syslog_printf((const char *)(p_syslog->logpar[0]),
 								&(p_syslog->logpar[1]), putc);
+		(*putc)('\n');
 		break;
 	case LOG_TYPE_ASSERT:
 		syslog_printf("%s:%u: Assertion `%s' failed.",
 								&(p_syslog->logpar[0]), putc);
+		(*putc)('\n');
 		break;
 	default:
Index: EcnlProtoTool/trunk/asp3_dcre/library/t_perror.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/library/t_perror.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/library/t_perror.c	(revision 429)
@@ -5,5 +5,5 @@
  *  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
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -48,9 +48,20 @@
 #include <t_stdlib.h>
 
+#ifndef TOPPERS_OMIT_SYSLOG
+
+static const char	message[] = "%s (%d) reported by `%s' in line %d of `%s'.";
+
 void
-t_perror(uint_t prio, const char *file, int_t line, const char *expr, ER ercd)
+tt_perror(SYSLOG *p_logbuf, 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);
+	p_logbuf->logtype = LOG_TYPE_COMMENT;
+	p_logbuf->logpar[0] = (LOGPAR) message;
+	p_logbuf->logpar[1] = (LOGPAR) itron_strerror(ercd);
+	p_logbuf->logpar[2] = (LOGPAR) SERCD(ercd);
+	p_logbuf->logpar[3] = (LOGPAR) expr;
+	p_logbuf->logpar[4] = (LOGPAR) line;
+	p_logbuf->logpar[5] = (LOGPAR) file;
+}
 
-}
+#endif /* TOPPERS_OMIT_SYSLOG */
Index: EcnlProtoTool/trunk/asp3_dcre/library/vasyslog.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/library/vasyslog.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/library/vasyslog.c	(revision 429)
@@ -5,5 +5,5 @@
  *  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
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -51,13 +51,12 @@
 
 void
-vsyslog(uint_t prio, const char *format, va_list ap)
+tt_syslog(SYSLOG *p_logbuf, const char *format, va_list ap)
 {
-	SYSLOG	logbuf;
 	uint_t	i;
 	char	sz;
 	char	c;
 
-	logbuf.logtype = LOG_TYPE_COMMENT;
-	logbuf.logpar[0] = (LOGPAR) format;
+	p_logbuf->logtype = LOG_TYPE_COMMENT;
+	p_logbuf->logpar[0] = (LOGPAR) format;
 	i = 1U;
 
@@ -78,25 +77,25 @@
 		switch (c) {
 		case 'd':
-			logbuf.logpar[i++] = (sz == 'l') ? (LOGPAR) va_arg(ap, long_t)
-							   : (sz == 't') ? (LOGPAR) va_arg(ap, int32_t)
-							   : (sz == 'T') ? (LOGPAR) va_arg(ap, SYSTIM)
-							   : (LOGPAR) va_arg(ap, int_t);
+			p_logbuf->logpar[i++] = (sz == 'l') ? (LOGPAR) va_arg(ap, long_t)
+								  : (sz == 't') ? (LOGPAR) va_arg(ap, int32_t)
+								  : (sz == 'T') ? (LOGPAR) va_arg(ap, SYSTIM)
+								  : (LOGPAR) va_arg(ap, int_t);
 			break;
 		case 'u':
 		case 'x':
 		case 'X':
-			logbuf.logpar[i++] = (sz == 'l') ? (LOGPAR) va_arg(ap, ulong_t)
-							   : (sz == 't') ? (LOGPAR) va_arg(ap, uint32_t)
-							   : (sz == 'T') ? (LOGPAR) va_arg(ap, SYSTIM)
-							   : (LOGPAR) va_arg(ap, uint_t);
+			p_logbuf->logpar[i++] = (sz == 'l') ? (LOGPAR) va_arg(ap, ulong_t)
+								  : (sz == 't') ? (LOGPAR) va_arg(ap, uint32_t)
+								  : (sz == 'T') ? (LOGPAR) va_arg(ap, SYSTIM)
+								  : (LOGPAR) va_arg(ap, uint_t);
 			break;
 		case 'p':
-			logbuf.logpar[i++] = (LOGPAR) va_arg(ap, void *);
+			p_logbuf->logpar[i++] = (LOGPAR) va_arg(ap, void *);
 			break;
 		case 'c':
-			logbuf.logpar[i++] = (LOGPAR) va_arg(ap, int);
+			p_logbuf->logpar[i++] = (LOGPAR) va_arg(ap, int);
 			break;
 		case 's':
-			logbuf.logpar[i++] = (LOGPAR) va_arg(ap, const char *);
+			p_logbuf->logpar[i++] = (LOGPAR) va_arg(ap, const char *);
 			break;
 		case '\0':
@@ -107,24 +106,4 @@
 		}
 	}
-	(void) tSysLog_eSysLog_write(prio, &logbuf);
-}
-
-void
-syslog(uint_t prio, const char *format, ...)
-{
-	va_list	ap;
-	va_start(ap, format);
-	vsyslog(prio, format, ap);
-	va_end(ap);
-}
-
-/* mbed weak error function */
-void
-error(const char* format, ...) {
-	va_list arg;
-	va_start(arg, format);
-	vsyslog(LOG_ERROR, format, arg);
-	va_end(arg);
-	ext_ker();
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/Makefile.mbed
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/Makefile.mbed	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/Makefile.mbed	(revision 429)
@@ -14,12 +14,19 @@
 #
 INCLUDES := $(INCLUDES)\
-	-I$(MBEDDIR)/api\
+	-I$(MBEDDIR)\
+	-I$(MBEDDIR)/cmsis\
+	-I$(MBEDDIR)/cmsis/TARGET_CORTEX_A\
 	-I$(MBEDDIR)/hal\
-	-I$(MBEDDIR)/targets/cmsis\
-	-I$(MBEDDIR)/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H\
-	-I$(MBEDDIR)/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H/inc\
-	-I$(MBEDDIR)/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H/inc/iodefines\
-	-I$(MBEDDIR)/targets/hal/TARGET_RENESAS/TARGET_RZ_A1H\
-	-I$(MBEDDIR)/targets/hal/TARGET_RENESAS/TARGET_RZ_A1H/TARGET_MBED_MBRZA1H
+	-I$(MBEDDIR)/platform\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/TARGET_MBED_MBRZA1H\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines\
+	-I$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/common\
+	-I$(MBEDDIR)/rtos/TARGET_CORTEX
 COPTS := $(COPTS)\
   -mthumb\
@@ -39,12 +46,55 @@
   -mno-unaligned-access
 CDEFS := $(CDEFS)\
-	-DTARGET_RZ_A1H\
-	-DTARGET_MBRZA1H\
-	-DTOOLCHAIN_GCC_ARM\
-	-DTOOLCHAIN_GCC\
-	-DTARGET_CORTEX_A\
-	-DMBED_BUILD_TIMESTAMP=1460441486.52\
-	-DTARGET_RENESAS\
-	-D__FPU_PRESENT
+	-DARM_MATH_CA9 \
+	-DDEVICE_ANALOGIN=1 \
+	-DDEVICE_CAN=1 \
+	-DDEVICE_EMAC=1 \
+	-DDEVICE_ETHERNET=1 \
+	-DDEVICE_FLASH=1 \
+	-DDEVICE_I2C=1 \
+	-DDEVICE_I2CSLAVE=1 \
+	-DDEVICE_I2C_ASYNCH=1 \
+	-DDEVICE_INTERRUPTIN=1 \
+	-DDEVICE_LPTICKER=1 \
+	-DDEVICE_PORTIN=1 \
+	-DDEVICE_PORTINOUT=1 \
+	-DDEVICE_PORTOUT=1 \
+	-DDEVICE_PWMOUT=1 \
+	-DDEVICE_RTC=1 \
+	-DDEVICE_SEMIHOST=1 \
+	-DDEVICE_SERIAL=1 \
+	-DDEVICE_SERIAL_ASYNCH=1 \
+	-DDEVICE_SERIAL_FC=1 \
+	-DDEVICE_SLEEP=1 \
+	-DDEVICE_SPI=1 \
+	-DDEVICE_SPISLAVE=1 \
+	-DDEVICE_SPI_ASYNCH=1 \
+	-DDEVICE_STDIO_MESSAGES=1 \
+	-DDEVICE_USTICKER=1 \
+	-DMBED_BUILD_TIMESTAMP=1550103323.92 \
+	-DTARGET_A9 \
+	-DTARGET_CORTEX \
+	-DTARGET_CORTEX_A \
+	-DTARGET_FF_ARDUINO \
+	-DTARGET_LIKE_CORTEX_A9 \
+	-DTARGET_LIKE_MBED \
+	-DTARGET_MBRZA1H \
+	-DTARGET_RELEASE \
+	-DTARGET_RENESAS \
+	-DTARGET_RZA1H \
+	-DTARGET_RZ_A1H \
+	-DTARGET_RZ_A1XX \
+	-DTARGET_RZ_A1_EMAC \
+	-DTOOLCHAIN_GCC \
+	-DTOOLCHAIN_GCC_ARM \
+	-DTOOLCHAIN_object \
+	-D__CMSIS_RTOS \
+	-D__CORTEX_A9 \
+	-D__EVAL \
+	-D__FPU_PRESENT=1 \
+	-D__MBED_CMSIS_RTOS_CA9 \
+	-D__MBED__=1 \
+	-DIRQ_GIC_LINE_COUNT=587 \
+	#-DDEVICE_STDIO_MESSAGES=1
 
 #
@@ -52,20 +102,30 @@
 #
 SYSSVC_DIRS := $(SYSSVC_DIRS)\
-	$(MBEDDIR)/common\
-	$(MBEDDIR)/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H\
-	$(MBEDDIR)/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H/TOOLCHAIN_GCC_ARM\
-	$(MBEDDIR)/targets/cmsis/TOOLCHAIN_GCC/TARGET_CORTEX_A\
-	$(MBEDDIR)/targets/hal/TARGET_RENESAS/TARGET_RZ_A1H
-SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)\
-	cache.o
-START_OBJS = startup_RZ1AH.o
+	$(MBEDDIR)\
+	$(MBEDDIR)/hal\
+	$(MBEDDIR)/platform\
+	$(MBEDDIR)/cmsis/TARGET_CORTEX_A\
+	$(MBEDDIR)/targets/TARGET_RENESAS\
+	$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX\
+	$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H\
+	$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/TARGET_MBED_MBRZA1H\
+	$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device\
+	$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/TOOLCHAIN_GCC_ARM\
+	$(MBEDDIR)/targets/TARGET_RENESAS/TARGET_RZA1XX/common
+SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
+START_OBJS := startup_RZ1AH.o
+START_OBJS := $(addprefix $(OBJDIR)/, $(START_OBJS))
 SYSSVC_COBJS := $(SYSSVC_COBJS)\
-	assert.o board.o gpio.o lp_ticker_api.o mbed_interface.o\
-	pinmap_common.o rtc_time.o semihost_api.o ticker_api.o us_ticker_api.o\
-	RZ_A1_Init.o cmsis_nvic.o gic.o mbed_sf_boot.o mmu_Renesas_RZ_A1.o\
-	nvic_wrapper.o pl310.o rza_io_regrw.o system_MBRZA1H.o\
-	analogin_api.o can_api.o ethernet_api.o gpio_api.o gpio_irq_api.o i2c_api.o\
-	pinmap.o port_api.o pwmout_api.o rtc_api.o serial_api.o spi_api.o
-	#wait_api.o us_ticker.o
-CFG_DMY := cfg_dmy.o mmu_Renesas_RZ_A1.o mbed_sf_boot.o RZ_A1_Init.o system_MBRZA1H.o cache.o pl310.o gic.o
+	mbed_critical_section_api.o mbed_flash_api.o mbed_gpio.o mbed_lp_ticker_api.o\
+	mbed_lp_ticker_wrapper.o mbed_pinmap_common.o mbed_sleep_manager.o mbed_mktime.o\
+	mbed_ticker_api.o mbed_us_ticker_api.o mbed_assert.o mbed_board.o\
+	mbed_critical.o mbed_error.o mbed_error_hist.o mbed_interface.o\
+	mbed_rtc_time.o mbed_semihost_api.o mbed_stats.o\
+	PeripheralPins.o RZ_A1_Init.o mbed_sf_boot.o mmu_RZ_A1H.o\
+	system_RZ_A1H.o trng_api_esp32.o analogin_api.o can_api.o cmsis_nvic.o\
+	irq_ctrl_gic.o nvic_wrapper.o rza_io_regrw.o ethernet_api.o flash_api.o\
+	gpio_api.o gpio_irq_api.o i2c_api.o lp_ticker.o mtu2.o pinmap.o port_api.o\
+	pwmout_api.o rtc_api.o serial_api.o sleep.o spi_api.o trng_api.o us_ticker.o
+	#mbed_wait_api_no_rtos.o
+CFG_DMY := cfg_dmy.o mmu_RZ_A1H.o mbed_sf_boot.o RZ_A1_Init.o system_RZ_A1H.o irq_ctrl_gic.o
 
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/RTE_Components.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/RTE_Components.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/RTE_Components.h	(revision 429)
@@ -0,0 +1,26 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2018 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef RTE_COMPONENTS_H
+#define RTE_COMPONENTS_H
+
+#define CMSIS_device_header <cmsis.h>
+
+#if defined(MBED_CONF_RTOS_PRESENT)
+#include "mbed_rtx_conf.h"
+#endif
+#include "mbed_cmsis_conf.h"
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_compiler.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_compiler.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_compiler.h	(revision 429)
@@ -0,0 +1,201 @@
+/**************************************************************************//**
+ * @file     cmsis_compiler.h
+ * @brief    CMSIS compiler specific macros, functions, instructions
+ * @version  V1.0.2
+ * @date     10. January 2018
+ ******************************************************************************/
+/*
+ * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __CMSIS_COMPILER_H
+#define __CMSIS_COMPILER_H
+
+#include <stdint.h>
+
+/*
+ * Arm Compiler 4/5
+ */
+#if   defined ( __CC_ARM )
+  #include "cmsis_armcc.h"
+
+
+/*
+ * Arm Compiler 6 (armclang)
+ */
+#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
+  #include "cmsis_armclang.h"
+
+
+/*
+ * GNU Compiler
+ */
+#elif defined ( __GNUC__ )
+  #include "cmsis_gcc.h"
+
+
+/*
+ * IAR Compiler
+ */
+#elif defined ( __ICCARM__ )
+  #include "cmsis_iccarm.h"
+
+
+/*
+ * TI Arm Compiler
+ */
+#elif defined ( __TI_ARM__ )
+  #include <cmsis_ccs.h>
+
+  #ifndef   __ASM
+    #define __ASM                     __asm
+  #endif
+  #ifndef   __INLINE
+    #define __INLINE                  inline
+  #endif
+  #ifndef   __STATIC_INLINE
+    #define __STATIC_INLINE           static inline
+  #endif
+  #ifndef   __STATIC_INLINE
+    #define __STATIC_INLINE           static inline
+  #endif
+  #ifndef   __STATIC_FORCEINLINE
+    #define __STATIC_FORCEINLINE      __STATIC_INLINE
+  #endif
+  #ifndef   __NO_RETURN
+    #define __NO_RETURN               __attribute__((noreturn))
+  #endif
+  #ifndef   CMSIS_DEPRECATED
+    #define CMSIS_DEPRECATED          __attribute__((deprecated))
+  #endif
+  #ifndef   __USED
+    #define __USED                    __attribute__((used))
+  #endif
+  #ifndef   __WEAK
+    #define __WEAK                    __attribute__((weak))
+  #endif
+  #ifndef   __UNALIGNED_UINT32
+    struct __attribute__((packed)) T_UINT32 { uint32_t v; };
+    #define __UNALIGNED_UINT32(x)     (((struct T_UINT32 *)(x))->v)
+  #endif
+  #ifndef   __ALIGNED
+    #define __ALIGNED(x)              __attribute__((aligned(x)))
+  #endif
+  #ifndef   __PACKED
+    #define __PACKED                  __attribute__((packed))
+  #endif
+
+
+/*
+ * TASKING Compiler
+ */
+#elif defined ( __TASKING__ )
+  /*
+   * The CMSIS functions have been implemented as intrinsics in the compiler.
+   * Please use "carm -?i" to get an up to date list of all intrinsics,
+   * Including the CMSIS ones.
+   */
+
+  #ifndef   __ASM
+    #define __ASM                     __asm
+  #endif
+  #ifndef   __INLINE
+    #define __INLINE                  inline
+  #endif
+  #ifndef   __STATIC_INLINE
+    #define __STATIC_INLINE           static inline
+  #endif
+  #ifndef   __STATIC_FORCEINLINE
+    #define __STATIC_FORCEINLINE      __STATIC_INLINE
+  #endif
+  #ifndef   __NO_RETURN
+    #define __NO_RETURN               __attribute__((noreturn))
+  #endif
+  #ifndef   CMSIS_DEPRECATED
+    #define CMSIS_DEPRECATED          __attribute__((deprecated))
+  #endif
+  #ifndef   __USED
+    #define __USED                    __attribute__((used))
+  #endif
+  #ifndef   __WEAK
+    #define __WEAK                    __attribute__((weak))
+  #endif
+  #ifndef   __UNALIGNED_UINT32
+    struct __packed__ T_UINT32 { uint32_t v; };
+    #define __UNALIGNED_UINT32(x)     (((struct T_UINT32 *)(x))->v)
+  #endif
+  #ifndef   __ALIGNED
+    #define __ALIGNED(x)              __align(x)
+  #endif
+  #ifndef   __PACKED
+    #define __PACKED                  __packed__
+  #endif
+
+
+/*
+ * COSMIC Compiler
+ */
+#elif defined ( __CSMC__ )
+   #include <cmsis_csm.h>
+
+ #ifndef   __ASM
+    #define __ASM                     _asm
+  #endif
+  #ifndef   __INLINE
+    #define __INLINE                  inline
+  #endif
+  #ifndef   __STATIC_INLINE
+    #define __STATIC_INLINE           static inline
+  #endif
+  #ifndef   __STATIC_FORCEINLINE
+    #define __STATIC_FORCEINLINE      __STATIC_INLINE
+  #endif
+  #ifndef   __NO_RETURN
+    // NO RETURN is automatically detected hence no warning here
+    #define __NO_RETURN
+  #endif
+  #ifndef   __USED
+    #warning No compiler specific solution for __USED. __USED is ignored.
+    #define __USED
+  #endif
+  #ifndef   CMSIS_DEPRECATED
+    #warning No compiler specific solution for CMSIS_DEPRECATED. CMSIS_DEPRECATED is ignored.
+    #define CMSIS_DEPRECATED
+  #endif
+  #ifndef   __WEAK
+    #define __WEAK                    __weak
+  #endif
+  #ifndef   __UNALIGNED_UINT32
+    @packed struct T_UINT32 { uint32_t v; };
+    #define __UNALIGNED_UINT32(x)     (((struct T_UINT32 *)(x))->v)
+  #endif
+  #ifndef   __ALIGNED
+    #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
+    #define __ALIGNED(x)
+  #endif
+  #ifndef   __PACKED
+    #define __PACKED                  @packed
+  #endif
+
+
+#else
+  #error Unknown compiler.
+#endif
+
+
+#endif /* __CMSIS_COMPILER_H */
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_cp15.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_cp15.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_cp15.h	(revision 429)
@@ -0,0 +1,514 @@
+/**************************************************************************//**
+ * @file     cmsis_cp15.h
+ * @brief    CMSIS compiler specific macros, functions, instructions
+ * @version  V1.0.1
+ * @date     07. Sep 2017
+ ******************************************************************************/
+/*
+ * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if   defined ( __ICCARM__ )
+  #pragma system_include         /* treat file as system include file for MISRA check */
+#elif defined (__clang__)
+  #pragma clang system_header   /* treat file as system include file */
+#endif
+
+#ifndef __CMSIS_CP15_H
+#define __CMSIS_CP15_H
+
+/** \brief  Get ACTLR
+    \return               Auxiliary Control register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_ACTLR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 1, 0, 1);
+  return(result);
+}
+
+/** \brief  Set ACTLR
+    \param [in]    actlr  Auxiliary Control value to set
+ */
+__STATIC_FORCEINLINE void __set_ACTLR(uint32_t actlr)
+{
+  __set_CP(15, 0, actlr, 1, 0, 1);
+}
+
+/** \brief  Get CPACR
+    \return               Coprocessor Access Control register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CPACR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 1, 0, 2);
+  return result;
+}
+
+/** \brief  Set CPACR
+    \param [in]    cpacr  Coprocessor Access Control value to set
+ */
+__STATIC_FORCEINLINE void __set_CPACR(uint32_t cpacr)
+{
+  __set_CP(15, 0, cpacr, 1, 0, 2);
+}
+
+/** \brief  Get DFSR
+    \return               Data Fault Status Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_DFSR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 5, 0, 0);
+  return result;
+}
+
+/** \brief  Set DFSR
+    \param [in]    dfsr  Data Fault Status value to set
+ */
+__STATIC_FORCEINLINE void __set_DFSR(uint32_t dfsr)
+{
+  __set_CP(15, 0, dfsr, 5, 0, 0);
+}
+
+/** \brief  Get IFSR
+    \return               Instruction Fault Status Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_IFSR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 5, 0, 1);
+  return result;
+}
+
+/** \brief  Set IFSR
+    \param [in]    ifsr  Instruction Fault Status value to set
+ */
+__STATIC_FORCEINLINE void __set_IFSR(uint32_t ifsr)
+{
+  __set_CP(15, 0, ifsr, 5, 0, 1);
+}
+
+/** \brief  Get ISR
+    \return               Interrupt Status Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_ISR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 12, 1, 0);
+  return result;
+}
+
+/** \brief  Get CBAR
+    \return               Configuration Base Address register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CBAR(void)
+{
+  uint32_t result;
+  __get_CP(15, 4, result, 15, 0, 0);
+  return result;
+}
+
+/** \brief  Get TTBR0
+
+    This function returns the value of the Translation Table Base Register 0.
+
+    \return               Translation Table Base Register 0 value
+ */
+__STATIC_FORCEINLINE uint32_t __get_TTBR0(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 2, 0, 0);
+  return result;
+}
+
+/** \brief  Set TTBR0
+
+    This function assigns the given value to the Translation Table Base Register 0.
+
+    \param [in]    ttbr0  Translation Table Base Register 0 value to set
+ */
+__STATIC_FORCEINLINE void __set_TTBR0(uint32_t ttbr0)
+{
+  __set_CP(15, 0, ttbr0, 2, 0, 0);
+}
+
+/** \brief  Get DACR
+
+    This function returns the value of the Domain Access Control Register.
+
+    \return               Domain Access Control Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_DACR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 3, 0, 0);
+  return result;
+}
+
+/** \brief  Set DACR
+
+    This function assigns the given value to the Domain Access Control Register.
+
+    \param [in]    dacr   Domain Access Control Register value to set
+ */
+__STATIC_FORCEINLINE void __set_DACR(uint32_t dacr)
+{
+  __set_CP(15, 0, dacr, 3, 0, 0);
+}
+
+/** \brief  Set SCTLR
+
+    This function assigns the given value to the System Control Register.
+
+    \param [in]    sctlr  System Control Register value to set
+ */
+__STATIC_FORCEINLINE void __set_SCTLR(uint32_t sctlr)
+{
+  __set_CP(15, 0, sctlr, 1, 0, 0);
+}
+
+/** \brief  Get SCTLR
+    \return               System Control Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_SCTLR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 1, 0, 0);
+  return result;
+}
+
+/** \brief  Set ACTRL
+    \param [in]    actrl  Auxiliary Control Register value to set
+ */
+__STATIC_FORCEINLINE void __set_ACTRL(uint32_t actrl)
+{
+  __set_CP(15, 0, actrl, 1, 0, 1);
+}
+
+/** \brief  Get ACTRL
+    \return               Auxiliary Control Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_ACTRL(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 1, 0, 1);
+  return result;
+}
+
+/** \brief  Get MPIDR
+
+    This function returns the value of the Multiprocessor Affinity Register.
+
+    \return               Multiprocessor Affinity Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_MPIDR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 0, 0, 5);
+  return result;
+}
+
+/** \brief  Get VBAR
+
+    This function returns the value of the Vector Base Address Register.
+
+    \return               Vector Base Address Register
+ */
+__STATIC_FORCEINLINE uint32_t __get_VBAR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 12, 0, 0);
+  return result;
+}
+
+/** \brief  Set VBAR
+
+    This function assigns the given value to the Vector Base Address Register.
+
+    \param [in]    vbar  Vector Base Address Register value to set
+ */
+__STATIC_FORCEINLINE void __set_VBAR(uint32_t vbar)
+{
+  __set_CP(15, 0, vbar, 12, 0, 0);
+}
+
+/** \brief  Get MVBAR
+
+    This function returns the value of the Monitor Vector Base Address Register.
+
+    \return               Monitor Vector Base Address Register
+ */
+__STATIC_FORCEINLINE uint32_t __get_MVBAR(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 12, 0, 1);
+  return result;
+}
+
+/** \brief  Set MVBAR
+
+    This function assigns the given value to the Monitor Vector Base Address Register.
+
+    \param [in]    mvbar  Monitor Vector Base Address Register value to set
+ */
+__STATIC_FORCEINLINE void __set_MVBAR(uint32_t mvbar)
+{
+  __set_CP(15, 0, mvbar, 12, 0, 1);
+}
+
+#if (defined(__CORTEX_A) && (__CORTEX_A == 7U) && \
+    defined(__TIM_PRESENT) && (__TIM_PRESENT == 1U)) || \
+    defined(DOXYGEN)
+
+/** \brief  Set CNTFRQ
+
+  This function assigns the given value to PL1 Physical Timer Counter Frequency Register (CNTFRQ).
+
+  \param [in]    value  CNTFRQ Register value to set
+*/
+__STATIC_FORCEINLINE void __set_CNTFRQ(uint32_t value)
+{
+  __set_CP(15, 0, value, 14, 0, 0);
+}
+
+/** \brief  Get CNTFRQ
+
+    This function returns the value of the PL1 Physical Timer Counter Frequency Register (CNTFRQ).
+
+    \return               CNTFRQ Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CNTFRQ(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 14, 0 , 0);
+  return result;
+}
+
+/** \brief  Set CNTP_TVAL
+
+  This function assigns the given value to PL1 Physical Timer Value Register (CNTP_TVAL).
+
+  \param [in]    value  CNTP_TVAL Register value to set
+*/
+__STATIC_FORCEINLINE void __set_CNTP_TVAL(uint32_t value)
+{
+  __set_CP(15, 0, value, 14, 2, 0);
+}
+
+/** \brief  Get CNTP_TVAL
+
+    This function returns the value of the PL1 Physical Timer Value Register (CNTP_TVAL).
+
+    \return               CNTP_TVAL Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CNTP_TVAL(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 14, 2, 0);
+  return result;
+}
+
+/** \brief  Get CNTPCT
+
+    This function returns the value of the 64 bits PL1 Physical Count Register (CNTPCT).
+
+    \return               CNTPCT Register value
+ */
+__STATIC_FORCEINLINE uint64_t __get_CNTPCT(void)
+{
+  uint64_t result;
+  __get_CP64(15, 0, result, 14);
+  return result;
+}
+
+/** \brief  Set CNTP_CVAL
+
+  This function assigns the given value to 64bits PL1 Physical Timer CompareValue Register (CNTP_CVAL).
+
+  \param [in]    value  CNTP_CVAL Register value to set
+*/
+__STATIC_FORCEINLINE void __set_CNTP_CVAL(uint64_t value)
+{
+  __set_CP64(15, 2, value, 14);
+}
+
+/** \brief  Get CNTP_CVAL
+
+    This function returns the value of the 64 bits PL1 Physical Timer CompareValue Register (CNTP_CVAL).
+
+    \return               CNTP_CVAL Register value
+ */
+__STATIC_FORCEINLINE uint64_t __get_CNTP_CVAL(void)
+{
+  uint64_t result;
+  __get_CP64(15, 2, result, 14);
+  return result;
+}
+
+/** \brief  Set CNTP_CTL
+
+  This function assigns the given value to PL1 Physical Timer Control Register (CNTP_CTL).
+
+  \param [in]    value  CNTP_CTL Register value to set
+*/
+__STATIC_FORCEINLINE void __set_CNTP_CTL(uint32_t value)
+{
+  __set_CP(15, 0, value, 14, 2, 1);
+}
+
+/** \brief  Get CNTP_CTL register
+    \return               CNTP_CTL Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CNTP_CTL(void)
+{
+  uint32_t result;
+  __get_CP(15, 0, result, 14, 2, 1);
+  return result;
+}
+
+#endif
+
+/** \brief  Set TLBIALL
+
+  TLB Invalidate All
+ */
+__STATIC_FORCEINLINE void __set_TLBIALL(uint32_t value)
+{
+  __set_CP(15, 0, value, 8, 7, 0);
+}
+
+/** \brief  Set BPIALL.
+
+  Branch Predictor Invalidate All
+ */
+__STATIC_FORCEINLINE void __set_BPIALL(uint32_t value)
+{
+  __set_CP(15, 0, value, 7, 5, 6);
+}
+
+/** \brief  Set ICIALLU
+
+  Instruction Cache Invalidate All
+ */
+__STATIC_FORCEINLINE void __set_ICIALLU(uint32_t value)
+{
+  __set_CP(15, 0, value, 7, 5, 0);
+}
+
+/** \brief  Set DCCMVAC
+
+  Data cache clean
+ */
+__STATIC_FORCEINLINE void __set_DCCMVAC(uint32_t value)
+{
+  __set_CP(15, 0, value, 7, 10, 1);
+}
+
+/** \brief  Set DCIMVAC
+
+  Data cache invalidate
+ */
+__STATIC_FORCEINLINE void __set_DCIMVAC(uint32_t value)
+{
+  __set_CP(15, 0, value, 7, 6, 1);
+}
+
+/** \brief  Set DCCIMVAC
+
+  Data cache clean and invalidate
+ */
+__STATIC_FORCEINLINE void __set_DCCIMVAC(uint32_t value)
+{
+  __set_CP(15, 0, value, 7, 14, 1);
+}
+
+/** \brief  Set CSSELR
+ */
+__STATIC_FORCEINLINE void __set_CSSELR(uint32_t value)
+{
+//  __ASM volatile("MCR p15, 2, %0, c0, c0, 0" : : "r"(value) : "memory");
+  __set_CP(15, 2, value, 0, 0, 0);
+}
+
+/** \brief  Get CSSELR
+    \return CSSELR Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CSSELR(void)
+{
+  uint32_t result;
+//  __ASM volatile("MRC p15, 2, %0, c0, c0, 0" : "=r"(result) : : "memory");
+  __get_CP(15, 2, result, 0, 0, 0);
+  return result;
+}
+
+/** \brief  Set CCSIDR
+    \deprecated CCSIDR itself is read-only. Use __set_CSSELR to select cache level instead.
+ */
+CMSIS_DEPRECATED
+__STATIC_FORCEINLINE void __set_CCSIDR(uint32_t value)
+{
+  __set_CSSELR(value);
+}
+
+/** \brief  Get CCSIDR
+    \return CCSIDR Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CCSIDR(void)
+{
+  uint32_t result;
+//  __ASM volatile("MRC p15, 1, %0, c0, c0, 0" : "=r"(result) : : "memory");
+  __get_CP(15, 1, result, 0, 0, 0);
+  return result;
+}
+
+/** \brief  Get CLIDR
+    \return CLIDR Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CLIDR(void)
+{
+  uint32_t result;
+//  __ASM volatile("MRC p15, 1, %0, c0, c0, 1" : "=r"(result) : : "memory");
+  __get_CP(15, 1, result, 0, 0, 1);
+  return result;
+}
+
+/** \brief  Set DCISW
+ */
+__STATIC_FORCEINLINE void __set_DCISW(uint32_t value)
+{
+//  __ASM volatile("MCR p15, 0, %0, c7, c6, 2" : : "r"(value) : "memory")
+  __set_CP(15, 0, value, 7, 6, 2);
+}
+
+/** \brief  Set DCCSW
+ */
+__STATIC_FORCEINLINE void __set_DCCSW(uint32_t value)
+{
+//  __ASM volatile("MCR p15, 0, %0, c7, c10, 2" : : "r"(value) : "memory")
+  __set_CP(15, 0, value, 7, 10, 2);
+}
+
+/** \brief  Set DCCISW
+ */
+__STATIC_FORCEINLINE void __set_DCCISW(uint32_t value)
+{
+//  __ASM volatile("MCR p15, 0, %0, c7, c14, 2" : : "r"(value) : "memory")
+  __set_CP(15, 0, value, 7, 14, 2);
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_gcc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_gcc.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/cmsis_gcc.h	(revision 429)
@@ -0,0 +1,679 @@
+/**************************************************************************//**
+ * @file     cmsis_gcc.h
+ * @brief    CMSIS compiler specific macros, functions, instructions
+ * @version  V1.0.2
+ * @date     09. April 2018
+ ******************************************************************************/
+/*
+ * Copyright (c) 2009-2018 Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __CMSIS_GCC_H
+#define __CMSIS_GCC_H
+
+/* ignore some GCC warnings */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wsign-conversion"
+#pragma GCC diagnostic ignored "-Wconversion"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+
+/* Fallback for __has_builtin */
+#ifndef __has_builtin
+  #define __has_builtin(x) (0)
+#endif
+
+/* CMSIS compiler specific defines */
+#ifndef   __ASM
+  #define __ASM                                  asm
+#endif
+#ifndef   __INLINE
+  #define __INLINE                               inline
+#endif
+#ifndef   __FORCEINLINE
+  #define __FORCEINLINE                          __attribute__((always_inline))
+#endif
+#ifndef   __STATIC_INLINE
+  #define __STATIC_INLINE                        static inline
+#endif
+#ifndef   __STATIC_FORCEINLINE
+  #define __STATIC_FORCEINLINE                   __attribute__((always_inline)) static inline
+#endif
+#ifndef   __NO_RETURN
+  #define __NO_RETURN                            __attribute__((__noreturn__))
+#endif
+#ifndef   CMSIS_DEPRECATED
+ #define  CMSIS_DEPRECATED                       __attribute__((deprecated))
+#endif
+#ifndef   __USED
+  #define __USED                                 __attribute__((used))
+#endif
+#ifndef   __WEAK
+  #define __WEAK                                 __attribute__((weak))
+#endif
+#ifndef   __PACKED
+  #define __PACKED                               __attribute__((packed, aligned(1)))
+#endif
+#ifndef   __PACKED_STRUCT
+  #define __PACKED_STRUCT                        struct __attribute__((packed, aligned(1)))
+#endif
+#ifndef   __UNALIGNED_UINT16_WRITE
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wpacked"
+/*lint -esym(9058, T_UINT16_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_WRITE */
+  __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
+  #pragma GCC diagnostic pop
+  #define __UNALIGNED_UINT16_WRITE(addr, val)    (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
+#endif
+#ifndef   __UNALIGNED_UINT16_READ
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wpacked"
+/*lint -esym(9058, T_UINT16_READ)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT16_READ */
+  __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
+  #pragma GCC diagnostic pop
+  #define __UNALIGNED_UINT16_READ(addr)          (((const struct T_UINT16_READ *)(const void *)(addr))->v)
+#endif
+#ifndef   __UNALIGNED_UINT32_WRITE
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wpacked"
+/*lint -esym(9058, T_UINT32_WRITE)*/ /* disable MISRA 2012 Rule 2.4 for T_UINT32_WRITE */
+  __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
+  #pragma GCC diagnostic pop
+  #define __UNALIGNED_UINT32_WRITE(addr, val)    (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
+#endif
+#ifndef   __UNALIGNED_UINT32_READ
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wpacked"
+  __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
+  #pragma GCC diagnostic pop
+  #define __UNALIGNED_UINT32_READ(addr)          (((const struct T_UINT32_READ *)(const void *)(addr))->v)
+#endif
+#ifndef   __ALIGNED
+  #define __ALIGNED(x)                           __attribute__((aligned(x)))
+#endif
+
+/* ##########################  Core Instruction Access  ######################### */
+/**
+  \brief   No Operation
+ */
+#define __NOP()                             __ASM volatile ("nop")
+
+/**
+  \brief   Wait For Interrupt
+ */
+#define __WFI()                             __ASM volatile ("wfi")
+
+/**
+  \brief   Wait For Event
+ */
+#define __WFE()                             __ASM volatile ("wfe")
+
+/**
+  \brief   Send Event
+ */
+#define __SEV()                             __ASM volatile ("sev")
+
+/**
+  \brief   Instruction Synchronization Barrier
+  \details Instruction Synchronization Barrier flushes the pipeline in the processor,
+           so that all instructions following the ISB are fetched from cache or memory,
+           after the instruction has been completed.
+ */
+__STATIC_FORCEINLINE  void __ISB(void)
+{
+  __ASM volatile ("isb 0xF":::"memory");
+}
+
+
+/**
+  \brief   Data Synchronization Barrier
+  \details Acts as a special kind of Data Memory Barrier.
+           It completes when all explicit memory accesses before this instruction complete.
+ */
+__STATIC_FORCEINLINE  void __DSB(void)
+{
+  __ASM volatile ("dsb 0xF":::"memory");
+}
+
+/**
+  \brief   Data Memory Barrier
+  \details Ensures the apparent order of the explicit memory operations before
+           and after the instruction, without ensuring their completion.
+ */
+__STATIC_FORCEINLINE  void __DMB(void)
+{
+  __ASM volatile ("dmb 0xF":::"memory");
+}
+
+/**
+  \brief   Reverse byte order (32 bit)
+  \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412.
+  \param [in]    value  Value to reverse
+  \return               Reversed value
+ */
+__STATIC_FORCEINLINE  uint32_t __REV(uint32_t value)
+{
+#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+  return __builtin_bswap32(value);
+#else
+  uint32_t result;
+
+  __ASM volatile ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
+  return result;
+#endif
+}
+
+/**
+  \brief   Reverse byte order (16 bit)
+  \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856.
+  \param [in]    value  Value to reverse
+  \return               Reversed value
+ */
+#ifndef __NO_EMBEDDED_ASM
+__attribute__((section(".rev16_text"))) __STATIC_INLINE uint32_t __REV16(uint32_t value)
+{
+  uint32_t result;
+  __ASM volatile("rev16 %0, %1" : "=r" (result) : "r" (value));
+  return result;
+}
+#endif
+
+/**
+  \brief   Reverse byte order (16 bit)
+  \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000.
+  \param [in]    value  Value to reverse
+  \return               Reversed value
+ */
+__STATIC_FORCEINLINE  int16_t __REVSH(int16_t value)
+{
+#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
+  return (int16_t)__builtin_bswap16(value);
+#else
+  int16_t result;
+
+  __ASM volatile ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) );
+  return result;
+#endif
+}
+
+/**
+  \brief   Rotate Right in unsigned value (32 bit)
+  \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits.
+  \param [in]    op1  Value to rotate
+  \param [in]    op2  Number of Bits to rotate
+  \return               Rotated value
+ */
+__STATIC_FORCEINLINE  uint32_t __ROR(uint32_t op1, uint32_t op2)
+{
+  op2 %= 32U;
+  if (op2 == 0U) {
+    return op1;
+  }
+  return (op1 >> op2) | (op1 << (32U - op2));
+}
+
+
+/**
+  \brief   Breakpoint
+  \param [in]    value  is ignored by the processor.
+                 If required, a debugger can use it to store additional information about the breakpoint.
+ */
+#define __BKPT(value)                       __ASM volatile ("bkpt "#value)
+
+/**
+  \brief   Reverse bit order of value
+  \details Reverses the bit order of the given value.
+  \param [in]    value  Value to reverse
+  \return               Reversed value
+ */
+__STATIC_FORCEINLINE  uint32_t __RBIT(uint32_t value)
+{
+  uint32_t result;
+
+#if ((defined (__ARM_ARCH_7M__      ) && (__ARM_ARCH_7M__      == 1)) || \
+     (defined (__ARM_ARCH_7EM__     ) && (__ARM_ARCH_7EM__     == 1)) || \
+     (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))    )
+   __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
+#else
+  int32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */
+
+  result = value;                      /* r will be reversed bits of v; first get LSB of v */
+  for (value >>= 1U; value; value >>= 1U)
+  {
+    result <<= 1U;
+    result |= value & 1U;
+    s--;
+  }
+  result <<= s;                        /* shift when v's highest bits are zero */
+#endif
+  return result;
+}
+
+/**
+  \brief   Count leading zeros
+  \param [in]  value  Value to count the leading zeros
+  \return             number of leading zeros in value
+ */
+#define __CLZ                             (uint8_t)__builtin_clz
+
+/**
+  \brief   LDR Exclusive (8 bit)
+  \details Executes a exclusive LDR instruction for 8 bit value.
+  \param [in]    ptr  Pointer to data
+  \return             value of type uint8_t at (*ptr)
+ */
+__STATIC_FORCEINLINE  uint8_t __LDREXB(volatile uint8_t *addr)
+{
+    uint32_t result;
+
+#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
+   __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) );
+#else
+    /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not
+       accepted by assembler. So has to use following less efficient pattern.
+    */
+   __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" );
+#endif
+   return ((uint8_t) result);    /* Add explicit type cast here */
+}
+
+
+/**
+  \brief   LDR Exclusive (16 bit)
+  \details Executes a exclusive LDR instruction for 16 bit values.
+  \param [in]    ptr  Pointer to data
+  \return        value of type uint16_t at (*ptr)
+ */
+__STATIC_FORCEINLINE  uint16_t __LDREXH(volatile uint16_t *addr)
+{
+    uint32_t result;
+
+#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
+   __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) );
+#else
+    /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not
+       accepted by assembler. So has to use following less efficient pattern.
+    */
+   __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" );
+#endif
+   return ((uint16_t) result);    /* Add explicit type cast here */
+}
+
+
+/**
+  \brief   LDR Exclusive (32 bit)
+  \details Executes a exclusive LDR instruction for 32 bit values.
+  \param [in]    ptr  Pointer to data
+  \return        value of type uint32_t at (*ptr)
+ */
+__STATIC_FORCEINLINE  uint32_t __LDREXW(volatile uint32_t *addr)
+{
+    uint32_t result;
+
+   __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
+   return(result);
+}
+
+
+/**
+  \brief   STR Exclusive (8 bit)
+  \details Executes a exclusive STR instruction for 8 bit values.
+  \param [in]  value  Value to store
+  \param [in]    ptr  Pointer to location
+  \return          0  Function succeeded
+  \return          1  Function failed
+ */
+__STATIC_FORCEINLINE  uint32_t __STREXB(uint8_t value, volatile uint8_t *addr)
+{
+   uint32_t result;
+
+   __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
+   return(result);
+}
+
+
+/**
+  \brief   STR Exclusive (16 bit)
+  \details Executes a exclusive STR instruction for 16 bit values.
+  \param [in]  value  Value to store
+  \param [in]    ptr  Pointer to location
+  \return          0  Function succeeded
+  \return          1  Function failed
+ */
+__STATIC_FORCEINLINE  uint32_t __STREXH(uint16_t value, volatile uint16_t *addr)
+{
+   uint32_t result;
+
+   __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) );
+   return(result);
+}
+
+
+/**
+  \brief   STR Exclusive (32 bit)
+  \details Executes a exclusive STR instruction for 32 bit values.
+  \param [in]  value  Value to store
+  \param [in]    ptr  Pointer to location
+  \return          0  Function succeeded
+  \return          1  Function failed
+ */
+__STATIC_FORCEINLINE  uint32_t __STREXW(uint32_t value, volatile uint32_t *addr)
+{
+   uint32_t result;
+
+   __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
+   return(result);
+}
+
+
+/**
+  \brief   Remove the exclusive lock
+  \details Removes the exclusive lock which is created by LDREX.
+ */
+__STATIC_FORCEINLINE  void __CLREX(void)
+{
+  __ASM volatile ("clrex" ::: "memory");
+}
+
+/**
+  \brief   Signed Saturate
+  \details Saturates a signed value.
+  \param [in]  value  Value to be saturated
+  \param [in]    sat  Bit position to saturate to (1..32)
+  \return             Saturated value
+ */
+#define __SSAT(ARG1,ARG2) \
+__extension__ \
+({                          \
+  int32_t __RES, __ARG1 = (ARG1); \
+  __ASM ("ssat %0, %1, %2" : "=r" (__RES) :  "I" (ARG2), "r" (__ARG1) ); \
+  __RES; \
+ })
+
+
+/**
+  \brief   Unsigned Saturate
+  \details Saturates an unsigned value.
+  \param [in]  value  Value to be saturated
+  \param [in]    sat  Bit position to saturate to (0..31)
+  \return             Saturated value
+ */
+#define __USAT(ARG1,ARG2) \
+__extension__ \
+({                          \
+  uint32_t __RES, __ARG1 = (ARG1); \
+  __ASM ("usat %0, %1, %2" : "=r" (__RES) :  "I" (ARG2), "r" (__ARG1) ); \
+  __RES; \
+ })
+
+/* ###########################  Core Function Access  ########################### */
+
+/**
+  \brief   Enable IRQ Interrupts
+  \details Enables IRQ interrupts by clearing the I-bit in the CPSR.
+           Can only be executed in Privileged modes.
+ */
+__STATIC_FORCEINLINE void __enable_irq(void)
+{
+  __ASM volatile ("cpsie i" : : : "memory");
+}
+
+/**
+  \brief   Disable IRQ Interrupts
+  \details Disables IRQ interrupts by setting the I-bit in the CPSR.
+  Can only be executed in Privileged modes.
+ */
+__STATIC_FORCEINLINE  void __disable_irq(void)
+{
+  __ASM volatile ("cpsid i" : : : "memory");
+}
+
+/**
+  \brief   Get FPSCR
+  \details Returns the current value of the Floating Point Status/Control register.
+  \return Floating Point Status/Control register value
+*/
+__STATIC_FORCEINLINE  uint32_t __get_FPSCR(void)
+{
+  #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
+       (defined (__FPU_USED   ) && (__FPU_USED    == 1U))     )
+  #if __has_builtin(__builtin_arm_get_fpscr) 
+  // Re-enable using built-in when GCC has been fixed
+  // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
+    /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
+    return __builtin_arm_get_fpscr();
+  #else
+    uint32_t result;
+
+    __ASM volatile ("VMRS %0, fpscr" : "=r" (result) );
+    return(result);
+  #endif
+  #else
+    return(0U);
+  #endif
+}
+
+/**
+  \brief   Set FPSCR
+  \details Assigns the given value to the Floating Point Status/Control register.
+  \param [in] fpscr  Floating Point Status/Control value to set
+*/
+__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr)
+{
+  #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \
+       (defined (__FPU_USED   ) && (__FPU_USED    == 1U))     )
+  #if __has_builtin(__builtin_arm_set_fpscr)
+  // Re-enable using built-in when GCC has been fixed
+  // || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2)
+    /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */
+    __builtin_arm_set_fpscr(fpscr);
+  #else
+    __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory");
+  #endif
+  #else
+    (void)fpscr;
+  #endif
+}
+
+/** \brief  Get CPSR Register
+    \return               CPSR Register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_CPSR(void)
+{
+  uint32_t result;
+  __ASM volatile("MRS %0, cpsr" : "=r" (result) );
+  return(result);
+}
+
+/** \brief  Set CPSR Register
+    \param [in]    cpsr  CPSR value to set
+ */
+__STATIC_FORCEINLINE void __set_CPSR(uint32_t cpsr)
+{
+__ASM volatile ("MSR cpsr, %0" : : "r" (cpsr) : "memory");
+}
+
+/** \brief  Get Mode
+    \return                Processor Mode
+ */
+__STATIC_FORCEINLINE uint32_t __get_mode(void)
+{
+    return (__get_CPSR() & 0x1FU);
+}
+
+/** \brief  Set Mode
+    \param [in]    mode  Mode value to set
+ */
+__STATIC_FORCEINLINE void __set_mode(uint32_t mode)
+{
+  __ASM volatile("MSR  cpsr_c, %0" : : "r" (mode) : "memory");
+}
+
+/** \brief  Get Stack Pointer
+    \return Stack Pointer value
+ */
+__STATIC_FORCEINLINE uint32_t __get_SP(void)
+{
+  uint32_t result;
+  __ASM volatile("MOV  %0, sp" : "=r" (result) : : "memory");
+  return result;
+}
+
+/** \brief  Set Stack Pointer
+    \param [in]    stack  Stack Pointer value to set
+ */
+__STATIC_FORCEINLINE void __set_SP(uint32_t stack)
+{
+  __ASM volatile("MOV  sp, %0" : : "r" (stack) : "memory");
+}
+
+/** \brief  Get USR/SYS Stack Pointer
+    \return USR/SYS Stack Pointer value
+ */
+__STATIC_FORCEINLINE uint32_t __get_SP_usr(void)
+{
+  uint32_t cpsr = __get_CPSR();
+  uint32_t result;
+  __ASM volatile(
+    "CPS     #0x1F  \n"
+    "MOV     %0, sp   " : "=r"(result) : : "memory"
+   );
+  __set_CPSR(cpsr);
+  __ISB();
+  return result;
+}
+
+/** \brief  Set USR/SYS Stack Pointer
+    \param [in]    topOfProcStack  USR/SYS Stack Pointer value to set
+ */
+__STATIC_FORCEINLINE void __set_SP_usr(uint32_t topOfProcStack)
+{
+  uint32_t cpsr = __get_CPSR();
+  __ASM volatile(
+    "CPS     #0x1F  \n"
+    "MOV     sp, %0   " : : "r" (topOfProcStack) : "memory"
+   );
+  __set_CPSR(cpsr);
+  __ISB();
+}
+
+/** \brief  Get FPEXC
+    \return               Floating Point Exception Control register value
+ */
+__STATIC_FORCEINLINE uint32_t __get_FPEXC(void)
+{
+#if (__FPU_PRESENT == 1)
+  uint32_t result;
+  __ASM volatile("VMRS %0, fpexc" : "=r" (result) );
+  return(result);
+#else
+  return(0);
+#endif
+}
+
+/** \brief  Set FPEXC
+    \param [in]    fpexc  Floating Point Exception Control value to set
+ */
+__STATIC_FORCEINLINE void __set_FPEXC(uint32_t fpexc)
+{
+#if (__FPU_PRESENT == 1)
+  __ASM volatile ("VMSR fpexc, %0" : : "r" (fpexc) : "memory");
+#endif
+}
+
+/*
+ * Include common core functions to access Coprocessor 15 registers
+ */
+
+#define __get_CP(cp, op1, Rt, CRn, CRm, op2) __ASM volatile("MRC p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : "=r" (Rt) : : "memory" )
+#define __set_CP(cp, op1, Rt, CRn, CRm, op2) __ASM volatile("MCR p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : : "r" (Rt) : "memory" )
+#define __get_CP64(cp, op1, Rt, CRm) __ASM volatile("MRRC p" # cp ", " # op1 ", %Q0, %R0, c" # CRm  : "=r" (Rt) : : "memory" )
+#define __set_CP64(cp, op1, Rt, CRm) __ASM volatile("MCRR p" # cp ", " # op1 ", %Q0, %R0, c" # CRm  : : "r" (Rt) : "memory" )
+
+#include "cmsis_cp15.h"
+
+/** \brief  Enable Floating Point Unit
+
+  Critical section, called from undef handler, so systick is disabled
+ */
+__STATIC_INLINE void __FPU_Enable(void)
+{
+  __ASM volatile(
+    //Permit access to VFP/NEON, registers by modifying CPACR
+    "        MRC     p15,0,R1,c1,c0,2  \n"
+    "        ORR     R1,R1,#0x00F00000 \n"
+    "        MCR     p15,0,R1,c1,c0,2  \n"
+
+    //Ensure that subsequent instructions occur in the context of VFP/NEON access permitted
+    "        ISB                       \n"
+
+    //Enable VFP/NEON
+    "        VMRS    R1,FPEXC          \n"
+    "        ORR     R1,R1,#0x40000000 \n"
+    "        VMSR    FPEXC,R1          \n"
+
+    //Initialise VFP/NEON registers to 0
+    "        MOV     R2,#0             \n"
+
+    //Initialise D16 registers to 0
+    "        VMOV    D0, R2,R2         \n"
+    "        VMOV    D1, R2,R2         \n"
+    "        VMOV    D2, R2,R2         \n"
+    "        VMOV    D3, R2,R2         \n"
+    "        VMOV    D4, R2,R2         \n"
+    "        VMOV    D5, R2,R2         \n"
+    "        VMOV    D6, R2,R2         \n"
+    "        VMOV    D7, R2,R2         \n"
+    "        VMOV    D8, R2,R2         \n"
+    "        VMOV    D9, R2,R2         \n"
+    "        VMOV    D10,R2,R2         \n"
+    "        VMOV    D11,R2,R2         \n"
+    "        VMOV    D12,R2,R2         \n"
+    "        VMOV    D13,R2,R2         \n"
+    "        VMOV    D14,R2,R2         \n"
+    "        VMOV    D15,R2,R2         \n"
+
+#if (defined(__ARM_NEON) && (__ARM_NEON == 1))
+    //Initialise D32 registers to 0
+    "        VMOV    D16,R2,R2         \n"
+    "        VMOV    D17,R2,R2         \n"
+    "        VMOV    D18,R2,R2         \n"
+    "        VMOV    D19,R2,R2         \n"
+    "        VMOV    D20,R2,R2         \n"
+    "        VMOV    D21,R2,R2         \n"
+    "        VMOV    D22,R2,R2         \n"
+    "        VMOV    D23,R2,R2         \n"
+    "        VMOV    D24,R2,R2         \n"
+    "        VMOV    D25,R2,R2         \n"
+    "        VMOV    D26,R2,R2         \n"
+    "        VMOV    D27,R2,R2         \n"
+    "        VMOV    D28,R2,R2         \n"
+    "        VMOV    D29,R2,R2         \n"
+    "        VMOV    D30,R2,R2         \n"
+    "        VMOV    D31,R2,R2         \n"
+#endif
+
+    //Initialise FPSCR to a known state
+    "        VMRS    R2,FPSCR          \n"
+    "        LDR     R3,=0x00086060    \n" //Mask off all bits that do not have to be preserved. Non-preserved bits can/should be zero.
+    "        AND     R2,R2,R3          \n"
+    "        VMSR    FPSCR,R2            "
+  );
+}
+
+#pragma GCC diagnostic pop
+
+#endif /* __CMSIS_GCC_H */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/core_ca.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/core_ca.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/core_ca.h	(revision 429)
@@ -0,0 +1,2614 @@
+/**************************************************************************//**
+ * @file     core_ca.h
+ * @brief    CMSIS Cortex-A Core Peripheral Access Layer Header File
+ * @version  V1.0.1
+ * @date     07. May 2018
+ ******************************************************************************/
+/*
+ * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if   defined ( __ICCARM__ )
+  #pragma system_include         /* treat file as system include file for MISRA check */
+#elif defined (__clang__)
+  #pragma clang system_header   /* treat file as system include file */
+#endif
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#ifndef __CORE_CA_H_GENERIC
+#define __CORE_CA_H_GENERIC
+
+
+/*******************************************************************************
+ *                 CMSIS definitions
+ ******************************************************************************/
+
+/*  CMSIS CA definitions */
+#define __CA_CMSIS_VERSION_MAIN  (1U)                                      /*!< \brief [31:16] CMSIS-Core(A) main version   */
+#define __CA_CMSIS_VERSION_SUB   (1U)                                      /*!< \brief [15:0]  CMSIS-Core(A) sub version    */
+#define __CA_CMSIS_VERSION       ((__CA_CMSIS_VERSION_MAIN << 16U) | \
+                                   __CA_CMSIS_VERSION_SUB          )       /*!< \brief CMSIS-Core(A) version number         */
+
+#if defined ( __CC_ARM )
+  #if defined __TARGET_FPU_VFP
+    #if (__FPU_PRESENT == 1)
+      #define __FPU_USED       1U
+    #else
+      #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+      #define __FPU_USED       0U
+    #endif
+  #else
+    #define __FPU_USED         0U
+  #endif
+
+#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
+  #if defined __ARM_PCS_VFP
+    #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)
+      #define __FPU_USED       1U
+    #else
+      #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+      #define __FPU_USED       0U
+    #endif
+  #else
+    #define __FPU_USED         0U
+  #endif
+
+#elif defined ( __ICCARM__ )
+  #if defined __ARMVFP__
+    #if (__FPU_PRESENT == 1)
+      #define __FPU_USED       1U
+    #else
+      #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+      #define __FPU_USED       0U
+    #endif
+  #else
+    #define __FPU_USED         0U
+  #endif
+
+#elif defined ( __TMS470__ )
+  #if defined __TI_VFP_SUPPORT__
+    #if (__FPU_PRESENT == 1)
+      #define __FPU_USED       1U
+    #else
+      #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+      #define __FPU_USED       0U
+    #endif
+  #else
+    #define __FPU_USED         0U
+  #endif
+
+#elif defined ( __GNUC__ )
+  #if defined (__VFP_FP__) && !defined(__SOFTFP__)
+    #if (__FPU_PRESENT == 1)
+      #define __FPU_USED       1U
+    #else
+      #warning "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+      #define __FPU_USED       0U
+    #endif
+  #else
+    #define __FPU_USED         0U
+  #endif
+
+#elif defined ( __TASKING__ )
+  #if defined __FPU_VFP__
+    #if (__FPU_PRESENT == 1)
+      #define __FPU_USED       1U
+    #else
+      #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"
+      #define __FPU_USED       0U
+    #endif
+  #else
+    #define __FPU_USED         0U
+  #endif
+#endif
+
+#include "cmsis_compiler.h"               /* CMSIS compiler specific defines */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CORE_CA_H_GENERIC */
+
+#ifndef __CMSIS_GENERIC
+
+#ifndef __CORE_CA_H_DEPENDANT
+#define __CORE_CA_H_DEPENDANT
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+ /* check device defines and use defaults */
+#if defined __CHECK_DEVICE_DEFINES
+  #ifndef __CA_REV
+    #define __CA_REV              0x0000U
+    #warning "__CA_REV not defined in device header file; using default!"
+  #endif
+  
+  #ifndef __FPU_PRESENT
+    #define __FPU_PRESENT             0U
+    #warning "__FPU_PRESENT not defined in device header file; using default!"
+  #endif
+    
+  #ifndef __GIC_PRESENT
+    #define __GIC_PRESENT             1U
+    #warning "__GIC_PRESENT not defined in device header file; using default!"
+  #endif
+  
+  #ifndef __TIM_PRESENT
+    #define __TIM_PRESENT             1U
+    #warning "__TIM_PRESENT not defined in device header file; using default!"
+  #endif
+  
+  #ifndef __L2C_PRESENT
+    #define __L2C_PRESENT             0U
+    #warning "__L2C_PRESENT not defined in device header file; using default!"
+  #endif
+#endif
+
+/* IO definitions (access restrictions to peripheral registers) */
+#ifdef __cplusplus
+  #define   __I     volatile             /*!< \brief Defines 'read only' permissions */
+#else
+  #define   __I     volatile const       /*!< \brief Defines 'read only' permissions */
+#endif
+#define     __O     volatile             /*!< \brief Defines 'write only' permissions */
+#define     __IO    volatile             /*!< \brief Defines 'read / write' permissions */
+
+/* following defines should be used for structure members */
+#define     __IM     volatile const      /*!< \brief Defines 'read only' structure member permissions */
+#define     __OM     volatile            /*!< \brief Defines 'write only' structure member permissions */
+#define     __IOM    volatile            /*!< \brief Defines 'read / write' structure member permissions */
+#define RESERVED(N, T) T RESERVED##N;    // placeholder struct members used for "reserved" areas
+
+ /*******************************************************************************
+  *                 Register Abstraction
+   Core Register contain:
+   - CPSR
+   - CP15 Registers
+   - L2C-310 Cache Controller
+   - Generic Interrupt Controller Distributor
+   - Generic Interrupt Controller Interface
+  ******************************************************************************/
+
+/* Core Register CPSR */
+typedef union
+{
+  struct
+  {
+    uint32_t M:5;                        /*!< \brief bit:  0.. 4  Mode field */
+    uint32_t T:1;                        /*!< \brief bit:      5  Thumb execution state bit */
+    uint32_t F:1;                        /*!< \brief bit:      6  FIQ mask bit */
+    uint32_t I:1;                        /*!< \brief bit:      7  IRQ mask bit */
+    uint32_t A:1;                        /*!< \brief bit:      8  Asynchronous abort mask bit */
+    uint32_t E:1;                        /*!< \brief bit:      9  Endianness execution state bit */
+    uint32_t IT1:6;                      /*!< \brief bit: 10..15  If-Then execution state bits 2-7 */
+    uint32_t GE:4;                       /*!< \brief bit: 16..19  Greater than or Equal flags */
+    RESERVED(0:4, uint32_t)              
+    uint32_t J:1;                        /*!< \brief bit:     24  Jazelle bit */
+    uint32_t IT0:2;                      /*!< \brief bit: 25..26  If-Then execution state bits 0-1 */
+    uint32_t Q:1;                        /*!< \brief bit:     27  Saturation condition flag */
+    uint32_t V:1;                        /*!< \brief bit:     28  Overflow condition code flag */
+    uint32_t C:1;                        /*!< \brief bit:     29  Carry condition code flag */
+    uint32_t Z:1;                        /*!< \brief bit:     30  Zero condition code flag */
+    uint32_t N:1;                        /*!< \brief bit:     31  Negative condition code flag */
+  } b;                                   /*!< \brief Structure used for bit  access */
+  uint32_t w;                            /*!< \brief Type      used for word access */
+} CPSR_Type;
+
+
+
+/* CPSR Register Definitions */
+#define CPSR_N_Pos                       31U                                    /*!< \brief CPSR: N Position */
+#define CPSR_N_Msk                       (1UL << CPSR_N_Pos)                    /*!< \brief CPSR: N Mask */
+
+#define CPSR_Z_Pos                       30U                                    /*!< \brief CPSR: Z Position */
+#define CPSR_Z_Msk                       (1UL << CPSR_Z_Pos)                    /*!< \brief CPSR: Z Mask */
+
+#define CPSR_C_Pos                       29U                                    /*!< \brief CPSR: C Position */
+#define CPSR_C_Msk                       (1UL << CPSR_C_Pos)                    /*!< \brief CPSR: C Mask */
+
+#define CPSR_V_Pos                       28U                                    /*!< \brief CPSR: V Position */
+#define CPSR_V_Msk                       (1UL << CPSR_V_Pos)                    /*!< \brief CPSR: V Mask */
+
+#define CPSR_Q_Pos                       27U                                    /*!< \brief CPSR: Q Position */
+#define CPSR_Q_Msk                       (1UL << CPSR_Q_Pos)                    /*!< \brief CPSR: Q Mask */
+
+#define CPSR_IT0_Pos                     25U                                    /*!< \brief CPSR: IT0 Position */
+#define CPSR_IT0_Msk                     (3UL << CPSR_IT0_Pos)                  /*!< \brief CPSR: IT0 Mask */
+
+#define CPSR_J_Pos                       24U                                    /*!< \brief CPSR: J Position */
+#define CPSR_J_Msk                       (1UL << CPSR_J_Pos)                    /*!< \brief CPSR: J Mask */
+
+#define CPSR_GE_Pos                      16U                                    /*!< \brief CPSR: GE Position */
+#define CPSR_GE_Msk                      (0xFUL << CPSR_GE_Pos)                 /*!< \brief CPSR: GE Mask */
+
+#define CPSR_IT1_Pos                     10U                                    /*!< \brief CPSR: IT1 Position */
+#define CPSR_IT1_Msk                     (0x3FUL << CPSR_IT1_Pos)               /*!< \brief CPSR: IT1 Mask */
+
+#define CPSR_E_Pos                       9U                                     /*!< \brief CPSR: E Position */
+#define CPSR_E_Msk                       (1UL << CPSR_E_Pos)                    /*!< \brief CPSR: E Mask */
+
+#define CPSR_A_Pos                       8U                                     /*!< \brief CPSR: A Position */
+#define CPSR_A_Msk                       (1UL << CPSR_A_Pos)                    /*!< \brief CPSR: A Mask */
+
+#define CPSR_I_Pos                       7U                                     /*!< \brief CPSR: I Position */
+#define CPSR_I_Msk                       (1UL << CPSR_I_Pos)                    /*!< \brief CPSR: I Mask */
+
+#define CPSR_F_Pos                       6U                                     /*!< \brief CPSR: F Position */
+#define CPSR_F_Msk                       (1UL << CPSR_F_Pos)                    /*!< \brief CPSR: F Mask */
+
+#define CPSR_T_Pos                       5U                                     /*!< \brief CPSR: T Position */
+#define CPSR_T_Msk                       (1UL << CPSR_T_Pos)                    /*!< \brief CPSR: T Mask */
+
+#define CPSR_M_Pos                       0U                                     /*!< \brief CPSR: M Position */
+#define CPSR_M_Msk                       (0x1FUL << CPSR_M_Pos)                 /*!< \brief CPSR: M Mask */
+
+#define CPSR_M_USR                       0x10U                                  /*!< \brief CPSR: M User mode (PL0) */
+#define CPSR_M_FIQ                       0x11U                                  /*!< \brief CPSR: M Fast Interrupt mode (PL1) */
+#define CPSR_M_IRQ                       0x12U                                  /*!< \brief CPSR: M Interrupt mode (PL1) */
+#define CPSR_M_SVC                       0x13U                                  /*!< \brief CPSR: M Supervisor mode (PL1) */
+#define CPSR_M_MON                       0x16U                                  /*!< \brief CPSR: M Monitor mode (PL1) */
+#define CPSR_M_ABT                       0x17U                                  /*!< \brief CPSR: M Abort mode (PL1) */
+#define CPSR_M_HYP                       0x1AU                                  /*!< \brief CPSR: M Hypervisor mode (PL2) */
+#define CPSR_M_UND                       0x1BU                                  /*!< \brief CPSR: M Undefined mode (PL1) */
+#define CPSR_M_SYS                       0x1FU                                  /*!< \brief CPSR: M System mode (PL1) */
+
+/* CP15 Register SCTLR */
+typedef union
+{
+  struct
+  {
+    uint32_t M:1;                        /*!< \brief bit:     0  MMU enable */
+    uint32_t A:1;                        /*!< \brief bit:     1  Alignment check enable */
+    uint32_t C:1;                        /*!< \brief bit:     2  Cache enable */
+    RESERVED(0:2, uint32_t)              
+    uint32_t CP15BEN:1;                  /*!< \brief bit:     5  CP15 barrier enable */
+    RESERVED(1:1, uint32_t)              
+    uint32_t B:1;                        /*!< \brief bit:     7  Endianness model */
+    RESERVED(2:2, uint32_t)              
+    uint32_t SW:1;                       /*!< \brief bit:    10  SWP and SWPB enable */
+    uint32_t Z:1;                        /*!< \brief bit:    11  Branch prediction enable */
+    uint32_t I:1;                        /*!< \brief bit:    12  Instruction cache enable */
+    uint32_t V:1;                        /*!< \brief bit:    13  Vectors bit */
+    uint32_t RR:1;                       /*!< \brief bit:    14  Round Robin select */
+    RESERVED(3:2, uint32_t)              
+    uint32_t HA:1;                       /*!< \brief bit:    17  Hardware Access flag enable */
+    RESERVED(4:1, uint32_t)              
+    uint32_t WXN:1;                      /*!< \brief bit:    19  Write permission implies XN */
+    uint32_t UWXN:1;                     /*!< \brief bit:    20  Unprivileged write permission implies PL1 XN */
+    uint32_t FI:1;                       /*!< \brief bit:    21  Fast interrupts configuration enable */
+    uint32_t U:1;                        /*!< \brief bit:    22  Alignment model */
+    RESERVED(5:1, uint32_t)              
+    uint32_t VE:1;                       /*!< \brief bit:    24  Interrupt Vectors Enable */
+    uint32_t EE:1;                       /*!< \brief bit:    25  Exception Endianness */
+    RESERVED(6:1, uint32_t)              
+    uint32_t NMFI:1;                     /*!< \brief bit:    27  Non-maskable FIQ (NMFI) support */
+    uint32_t TRE:1;                      /*!< \brief bit:    28  TEX remap enable. */
+    uint32_t AFE:1;                      /*!< \brief bit:    29  Access flag enable */
+    uint32_t TE:1;                       /*!< \brief bit:    30  Thumb Exception enable */
+    RESERVED(7:1, uint32_t)              
+  } b;                                   /*!< \brief Structure used for bit  access */
+  uint32_t w;                            /*!< \brief Type      used for word access */
+} SCTLR_Type;
+
+#define SCTLR_TE_Pos                     30U                                    /*!< \brief SCTLR: TE Position */
+#define SCTLR_TE_Msk                     (1UL << SCTLR_TE_Pos)                  /*!< \brief SCTLR: TE Mask */
+
+#define SCTLR_AFE_Pos                    29U                                    /*!< \brief SCTLR: AFE Position */
+#define SCTLR_AFE_Msk                    (1UL << SCTLR_AFE_Pos)                 /*!< \brief SCTLR: AFE Mask */
+
+#define SCTLR_TRE_Pos                    28U                                    /*!< \brief SCTLR: TRE Position */
+#define SCTLR_TRE_Msk                    (1UL << SCTLR_TRE_Pos)                 /*!< \brief SCTLR: TRE Mask */
+
+#define SCTLR_NMFI_Pos                   27U                                    /*!< \brief SCTLR: NMFI Position */
+#define SCTLR_NMFI_Msk                   (1UL << SCTLR_NMFI_Pos)                /*!< \brief SCTLR: NMFI Mask */
+
+#define SCTLR_EE_Pos                     25U                                    /*!< \brief SCTLR: EE Position */
+#define SCTLR_EE_Msk                     (1UL << SCTLR_EE_Pos)                  /*!< \brief SCTLR: EE Mask */
+
+#define SCTLR_VE_Pos                     24U                                    /*!< \brief SCTLR: VE Position */
+#define SCTLR_VE_Msk                     (1UL << SCTLR_VE_Pos)                  /*!< \brief SCTLR: VE Mask */
+
+#define SCTLR_U_Pos                      22U                                    /*!< \brief SCTLR: U Position */
+#define SCTLR_U_Msk                      (1UL << SCTLR_U_Pos)                   /*!< \brief SCTLR: U Mask */
+
+#define SCTLR_FI_Pos                     21U                                    /*!< \brief SCTLR: FI Position */
+#define SCTLR_FI_Msk                     (1UL << SCTLR_FI_Pos)                  /*!< \brief SCTLR: FI Mask */
+
+#define SCTLR_UWXN_Pos                   20U                                    /*!< \brief SCTLR: UWXN Position */
+#define SCTLR_UWXN_Msk                   (1UL << SCTLR_UWXN_Pos)                /*!< \brief SCTLR: UWXN Mask */
+
+#define SCTLR_WXN_Pos                    19U                                    /*!< \brief SCTLR: WXN Position */
+#define SCTLR_WXN_Msk                    (1UL << SCTLR_WXN_Pos)                 /*!< \brief SCTLR: WXN Mask */
+
+#define SCTLR_HA_Pos                     17U                                    /*!< \brief SCTLR: HA Position */
+#define SCTLR_HA_Msk                     (1UL << SCTLR_HA_Pos)                  /*!< \brief SCTLR: HA Mask */
+
+#define SCTLR_RR_Pos                     14U                                    /*!< \brief SCTLR: RR Position */
+#define SCTLR_RR_Msk                     (1UL << SCTLR_RR_Pos)                  /*!< \brief SCTLR: RR Mask */
+
+#define SCTLR_V_Pos                      13U                                    /*!< \brief SCTLR: V Position */
+#define SCTLR_V_Msk                      (1UL << SCTLR_V_Pos)                   /*!< \brief SCTLR: V Mask */
+
+#define SCTLR_I_Pos                      12U                                    /*!< \brief SCTLR: I Position */
+#define SCTLR_I_Msk                      (1UL << SCTLR_I_Pos)                   /*!< \brief SCTLR: I Mask */
+
+#define SCTLR_Z_Pos                      11U                                    /*!< \brief SCTLR: Z Position */
+#define SCTLR_Z_Msk                      (1UL << SCTLR_Z_Pos)                   /*!< \brief SCTLR: Z Mask */
+
+#define SCTLR_SW_Pos                     10U                                    /*!< \brief SCTLR: SW Position */
+#define SCTLR_SW_Msk                     (1UL << SCTLR_SW_Pos)                  /*!< \brief SCTLR: SW Mask */
+
+#define SCTLR_B_Pos                      7U                                     /*!< \brief SCTLR: B Position */
+#define SCTLR_B_Msk                      (1UL << SCTLR_B_Pos)                   /*!< \brief SCTLR: B Mask */
+
+#define SCTLR_CP15BEN_Pos                5U                                     /*!< \brief SCTLR: CP15BEN Position */
+#define SCTLR_CP15BEN_Msk                (1UL << SCTLR_CP15BEN_Pos)             /*!< \brief SCTLR: CP15BEN Mask */
+
+#define SCTLR_C_Pos                      2U                                     /*!< \brief SCTLR: C Position */
+#define SCTLR_C_Msk                      (1UL << SCTLR_C_Pos)                   /*!< \brief SCTLR: C Mask */
+
+#define SCTLR_A_Pos                      1U                                     /*!< \brief SCTLR: A Position */
+#define SCTLR_A_Msk                      (1UL << SCTLR_A_Pos)                   /*!< \brief SCTLR: A Mask */
+
+#define SCTLR_M_Pos                      0U                                     /*!< \brief SCTLR: M Position */
+#define SCTLR_M_Msk                      (1UL << SCTLR_M_Pos)                   /*!< \brief SCTLR: M Mask */
+
+/* CP15 Register ACTLR */
+typedef union
+{
+#if __CORTEX_A == 5 || defined(DOXYGEN)
+  /** \brief Structure used for bit access on Cortex-A5 */
+  struct
+  {
+    uint32_t FW:1;                      /*!< \brief bit:      0  Cache and TLB maintenance broadcast */
+    RESERVED(0:5, uint32_t)              
+    uint32_t SMP:1;                      /*!< \brief bit:     6  Enables coherent requests to the processor */
+    uint32_t EXCL:1;                     /*!< \brief bit:     7  Exclusive L1/L2 cache control */
+    RESERVED(1:2, uint32_t)
+    uint32_t DODMBS:1;                   /*!< \brief bit:    10  Disable optimized data memory barrier behavior */
+    uint32_t DWBST:1;                    /*!< \brief bit:    11  AXI data write bursts to Normal memory */
+    uint32_t RADIS:1;                    /*!< \brief bit:    12  L1 Data Cache read-allocate mode disable */
+    uint32_t L1PCTL:2;                   /*!< \brief bit:13..14  L1 Data prefetch control */    
+    uint32_t BP:2;                       /*!< \brief bit:16..15  Branch prediction policy */
+    uint32_t RSDIS:1;                    /*!< \brief bit:    17  Disable return stack operation */
+    uint32_t BTDIS:1;                    /*!< \brief bit:    18  Disable indirect Branch Target Address Cache (BTAC) */
+    RESERVED(3:9, uint32_t)             
+    uint32_t DBDI:1;                     /*!< \brief bit:    28  Disable branch dual issue */
+    RESERVED(7:3, uint32_t)              
+ } b;
+#endif  
+#if __CORTEX_A == 7 || defined(DOXYGEN)
+  /** \brief Structure used for bit access on Cortex-A7 */
+  struct
+  {
+    RESERVED(0:6, uint32_t)              
+    uint32_t SMP:1;                      /*!< \brief bit:     6  Enables coherent requests to the processor */
+    RESERVED(1:3, uint32_t)              
+    uint32_t DODMBS:1;                   /*!< \brief bit:    10  Disable optimized data memory barrier behavior */
+    uint32_t L2RADIS:1;                  /*!< \brief bit:    11  L2 Data Cache read-allocate mode disable */
+    uint32_t L1RADIS:1;                  /*!< \brief bit:    12  L1 Data Cache read-allocate mode disable */
+    uint32_t L1PCTL:2;                   /*!< \brief bit:13..14  L1 Data prefetch control */
+    uint32_t DDVM:1;                     /*!< \brief bit:    15  Disable Distributed Virtual Memory (DVM) transactions */
+    RESERVED(3:12, uint32_t)             
+    uint32_t DDI:1;                      /*!< \brief bit:    28  Disable dual issue */
+    RESERVED(7:3, uint32_t)              
+  } b;
+#endif  
+#if __CORTEX_A == 9 || defined(DOXYGEN)
+  /** \brief Structure used for bit access on Cortex-A9 */
+  struct
+  {
+    uint32_t FW:1;                       /*!< \brief bit:     0  Cache and TLB maintenance broadcast */
+    RESERVED(0:1, uint32_t)
+    uint32_t L1PE:1;                     /*!< \brief bit:     2  Dside prefetch */
+    uint32_t WFLZM:1;                    /*!< \brief bit:     3  Cache and TLB maintenance broadcast */
+    RESERVED(1:2, uint32_t)
+    uint32_t SMP:1;                      /*!< \brief bit:     6  Enables coherent requests to the processor */
+    uint32_t EXCL:1;                     /*!< \brief bit:     7  Exclusive L1/L2 cache control */
+    uint32_t AOW:1;                      /*!< \brief bit:     8  Enable allocation in one cache way only */
+    uint32_t PARITY:1;                   /*!< \brief bit:     9  Support for parity checking, if implemented */
+    RESERVED(7:22, uint32_t)              
+  } b;
+#endif  
+  uint32_t w;                            /*!< \brief Type      used for word access */
+} ACTLR_Type;
+
+#define ACTLR_DDI_Pos                    28U                                     /*!< \brief ACTLR: DDI Position */
+#define ACTLR_DDI_Msk                    (1UL << ACTLR_DDI_Pos)                  /*!< \brief ACTLR: DDI Mask */
+
+#define ACTLR_DBDI_Pos                   28U                                     /*!< \brief ACTLR: DBDI Position */
+#define ACTLR_DBDI_Msk                   (1UL << ACTLR_DBDI_Pos)                 /*!< \brief ACTLR: DBDI Mask */
+
+#define ACTLR_BTDIS_Pos                  18U                                     /*!< \brief ACTLR: BTDIS Position */
+#define ACTLR_BTDIS_Msk                  (1UL << ACTLR_BTDIS_Pos)                /*!< \brief ACTLR: BTDIS Mask */
+
+#define ACTLR_RSDIS_Pos                  17U                                     /*!< \brief ACTLR: RSDIS Position */
+#define ACTLR_RSDIS_Msk                  (1UL << ACTLR_RSDIS_Pos)                /*!< \brief ACTLR: RSDIS Mask */
+
+#define ACTLR_BP_Pos                     15U                                     /*!< \brief ACTLR: BP Position */
+#define ACTLR_BP_Msk                     (3UL << ACTLR_BP_Pos)                   /*!< \brief ACTLR: BP Mask */
+
+#define ACTLR_DDVM_Pos                   15U                                     /*!< \brief ACTLR: DDVM Position */
+#define ACTLR_DDVM_Msk                   (1UL << ACTLR_DDVM_Pos)                 /*!< \brief ACTLR: DDVM Mask */
+
+#define ACTLR_L1PCTL_Pos                 13U                                     /*!< \brief ACTLR: L1PCTL Position */
+#define ACTLR_L1PCTL_Msk                 (3UL << ACTLR_L1PCTL_Pos)               /*!< \brief ACTLR: L1PCTL Mask */
+
+#define ACTLR_RADIS_Pos                  12U                                     /*!< \brief ACTLR: RADIS Position */
+#define ACTLR_RADIS_Msk                  (1UL << ACTLR_RADIS_Pos)                /*!< \brief ACTLR: RADIS Mask */
+
+#define ACTLR_L1RADIS_Pos                12U                                     /*!< \brief ACTLR: L1RADIS Position */
+#define ACTLR_L1RADIS_Msk                (1UL << ACTLR_L1RADIS_Pos)              /*!< \brief ACTLR: L1RADIS Mask */
+
+#define ACTLR_DWBST_Pos                  11U                                     /*!< \brief ACTLR: DWBST Position */
+#define ACTLR_DWBST_Msk                  (1UL << ACTLR_DWBST_Pos)                /*!< \brief ACTLR: DWBST Mask */
+
+#define ACTLR_L2RADIS_Pos                11U                                     /*!< \brief ACTLR: L2RADIS Position */
+#define ACTLR_L2RADIS_Msk                (1UL << ACTLR_L2RADIS_Pos)              /*!< \brief ACTLR: L2RADIS Mask */
+
+#define ACTLR_DODMBS_Pos                 10U                                     /*!< \brief ACTLR: DODMBS Position */
+#define ACTLR_DODMBS_Msk                 (1UL << ACTLR_DODMBS_Pos)               /*!< \brief ACTLR: DODMBS Mask */
+
+#define ACTLR_PARITY_Pos                 9U                                      /*!< \brief ACTLR: PARITY Position */
+#define ACTLR_PARITY_Msk                 (1UL << ACTLR_PARITY_Pos)               /*!< \brief ACTLR: PARITY Mask */
+
+#define ACTLR_AOW_Pos                    8U                                      /*!< \brief ACTLR: AOW Position */
+#define ACTLR_AOW_Msk                    (1UL << ACTLR_AOW_Pos)                  /*!< \brief ACTLR: AOW Mask */
+
+#define ACTLR_EXCL_Pos                   7U                                      /*!< \brief ACTLR: EXCL Position */
+#define ACTLR_EXCL_Msk                   (1UL << ACTLR_EXCL_Pos)                 /*!< \brief ACTLR: EXCL Mask */
+
+#define ACTLR_SMP_Pos                    6U                                      /*!< \brief ACTLR: SMP Position */
+#define ACTLR_SMP_Msk                    (1UL << ACTLR_SMP_Pos)                  /*!< \brief ACTLR: SMP Mask */
+
+#define ACTLR_WFLZM_Pos                  3U                                      /*!< \brief ACTLR: WFLZM Position */
+#define ACTLR_WFLZM_Msk                  (1UL << ACTLR_WFLZM_Pos)                /*!< \brief ACTLR: WFLZM Mask */
+
+#define ACTLR_L1PE_Pos                   2U                                      /*!< \brief ACTLR: L1PE Position */
+#define ACTLR_L1PE_Msk                   (1UL << ACTLR_L1PE_Pos)                 /*!< \brief ACTLR: L1PE Mask */
+
+#define ACTLR_FW_Pos                     0U                                      /*!< \brief ACTLR: FW Position */
+#define ACTLR_FW_Msk                     (1UL << ACTLR_FW_Pos)                   /*!< \brief ACTLR: FW Mask */
+
+/* CP15 Register CPACR */
+typedef union
+{
+  struct
+  {
+    uint32_t CP0:2;                      /*!< \brief bit:  0..1  Access rights for coprocessor 0 */
+    uint32_t CP1:2;                      /*!< \brief bit:  2..3  Access rights for coprocessor 1 */
+    uint32_t CP2:2;                      /*!< \brief bit:  4..5  Access rights for coprocessor 2 */
+    uint32_t CP3:2;                      /*!< \brief bit:  6..7  Access rights for coprocessor 3 */
+    uint32_t CP4:2;                      /*!< \brief bit:  8..9  Access rights for coprocessor 4 */
+    uint32_t CP5:2;                      /*!< \brief bit:10..11  Access rights for coprocessor 5 */
+    uint32_t CP6:2;                      /*!< \brief bit:12..13  Access rights for coprocessor 6 */
+    uint32_t CP7:2;                      /*!< \brief bit:14..15  Access rights for coprocessor 7 */
+    uint32_t CP8:2;                      /*!< \brief bit:16..17  Access rights for coprocessor 8 */
+    uint32_t CP9:2;                      /*!< \brief bit:18..19  Access rights for coprocessor 9 */
+    uint32_t CP10:2;                     /*!< \brief bit:20..21  Access rights for coprocessor 10 */
+    uint32_t CP11:2;                     /*!< \brief bit:22..23  Access rights for coprocessor 11 */
+    uint32_t CP12:2;                     /*!< \brief bit:24..25  Access rights for coprocessor 11 */
+    uint32_t CP13:2;                     /*!< \brief bit:26..27  Access rights for coprocessor 11 */
+    uint32_t TRCDIS:1;                   /*!< \brief bit:    28  Disable CP14 access to trace registers */
+    RESERVED(0:1, uint32_t)              
+    uint32_t D32DIS:1;                   /*!< \brief bit:    30  Disable use of registers D16-D31 of the VFP register file */
+    uint32_t ASEDIS:1;                   /*!< \brief bit:    31  Disable Advanced SIMD Functionality */
+  } b;                                   /*!< \brief Structure used for bit  access */
+  uint32_t w;                            /*!< \brief Type      used for word access */
+} CPACR_Type;
+
+#define CPACR_ASEDIS_Pos                 31U                                    /*!< \brief CPACR: ASEDIS Position */
+#define CPACR_ASEDIS_Msk                 (1UL << CPACR_ASEDIS_Pos)              /*!< \brief CPACR: ASEDIS Mask */
+
+#define CPACR_D32DIS_Pos                 30U                                    /*!< \brief CPACR: D32DIS Position */
+#define CPACR_D32DIS_Msk                 (1UL << CPACR_D32DIS_Pos)              /*!< \brief CPACR: D32DIS Mask */
+
+#define CPACR_TRCDIS_Pos                 28U                                    /*!< \brief CPACR: D32DIS Position */
+#define CPACR_TRCDIS_Msk                 (1UL << CPACR_D32DIS_Pos)              /*!< \brief CPACR: D32DIS Mask */
+
+#define CPACR_CP_Pos_(n)                 (n*2U)                                 /*!< \brief CPACR: CPn Position */
+#define CPACR_CP_Msk_(n)                 (3UL << CPACR_CP_Pos_(n))              /*!< \brief CPACR: CPn Mask */
+
+#define CPACR_CP_NA                      0U                                     /*!< \brief CPACR CPn field: Access denied. */
+#define CPACR_CP_PL1                     1U                                     /*!< \brief CPACR CPn field: Accessible from PL1 only. */
+#define CPACR_CP_FA                      3U                                     /*!< \brief CPACR CPn field: Full access. */
+
+/* CP15 Register DFSR */
+typedef union
+{
+  struct
+  {
+    uint32_t FS0:4;                      /*!< \brief bit: 0.. 3  Fault Status bits bit 0-3 */
+    uint32_t Domain:4;                   /*!< \brief bit: 4.. 7  Fault on which domain */
+    RESERVED(0:1, uint32_t)              
+    uint32_t LPAE:1;                     /*!< \brief bit:     9  Large Physical Address Extension */
+    uint32_t FS1:1;                      /*!< \brief bit:    10  Fault Status bits bit 4 */
+    uint32_t WnR:1;                      /*!< \brief bit:    11  Write not Read bit */
+    uint32_t ExT:1;                      /*!< \brief bit:    12  External abort type */
+    uint32_t CM:1;                       /*!< \brief bit:    13  Cache maintenance fault */
+    RESERVED(1:18, uint32_t)             
+  } s;                                   /*!< \brief Structure used for bit  access in short format */
+  struct
+  {
+    uint32_t STATUS:5;                   /*!< \brief bit: 0.. 5  Fault Status bits */
+    RESERVED(0:3, uint32_t)              
+    uint32_t LPAE:1;                     /*!< \brief bit:     9  Large Physical Address Extension */
+    RESERVED(1:1, uint32_t)              
+    uint32_t WnR:1;                      /*!< \brief bit:    11  Write not Read bit */
+    uint32_t ExT:1;                      /*!< \brief bit:    12  External abort type */
+    uint32_t CM:1;                       /*!< \brief bit:    13  Cache maintenance fault */
+    RESERVED(2:18, uint32_t)             
+  } l;                                   /*!< \brief Structure used for bit  access in long format */
+  uint32_t w;                            /*!< \brief Type      used for word access */
+} DFSR_Type;
+
+#define DFSR_CM_Pos                      13U                                    /*!< \brief DFSR: CM Position */
+#define DFSR_CM_Msk                      (1UL << DFSR_CM_Pos)                   /*!< \brief DFSR: CM Mask */
+
+#define DFSR_Ext_Pos                     12U                                    /*!< \brief DFSR: Ext Position */
+#define DFSR_Ext_Msk                     (1UL << DFSR_Ext_Pos)                  /*!< \brief DFSR: Ext Mask */
+
+#define DFSR_WnR_Pos                     11U                                    /*!< \brief DFSR: WnR Position */
+#define DFSR_WnR_Msk                     (1UL << DFSR_WnR_Pos)                  /*!< \brief DFSR: WnR Mask */
+
+#define DFSR_FS1_Pos                     10U                                    /*!< \brief DFSR: FS1 Position */
+#define DFSR_FS1_Msk                     (1UL << DFSR_FS1_Pos)                  /*!< \brief DFSR: FS1 Mask */
+
+#define DFSR_LPAE_Pos                    9U                                    /*!< \brief DFSR: LPAE Position */
+#define DFSR_LPAE_Msk                    (1UL << DFSR_LPAE_Pos)                /*!< \brief DFSR: LPAE Mask */
+
+#define DFSR_Domain_Pos                  4U                                     /*!< \brief DFSR: Domain Position */
+#define DFSR_Domain_Msk                  (0xFUL << DFSR_Domain_Pos)             /*!< \brief DFSR: Domain Mask */
+
+#define DFSR_FS0_Pos                     0U                                     /*!< \brief DFSR: FS0 Position */
+#define DFSR_FS0_Msk                     (0xFUL << DFSR_FS0_Pos)                /*!< \brief DFSR: FS0 Mask */
+
+#define DFSR_STATUS_Pos                  0U                                     /*!< \brief DFSR: STATUS Position */
+#define DFSR_STATUS_Msk                  (0x3FUL << DFSR_STATUS_Pos)            /*!< \brief DFSR: STATUS Mask */
+
+/* CP15 Register IFSR */
+typedef union
+{
+  struct
+  {
+    uint32_t FS0:4;                      /*!< \brief bit: 0.. 3  Fault Status bits bit 0-3 */
+    RESERVED(0:5, uint32_t)              
+    uint32_t LPAE:1;                     /*!< \brief bit:     9  Large Physical Address Extension */
+    uint32_t FS1:1;                      /*!< \brief bit:    10  Fault Status bits bit 4 */
+    RESERVED(1:1, uint32_t)              
+    uint32_t ExT:1;                      /*!< \brief bit:    12  External abort type */
+    RESERVED(2:19, uint32_t)             
+  } s;                                   /*!< \brief Structure used for bit access in short format */
+  struct
+  {
+    uint32_t STATUS:6;                   /*!< \brief bit: 0.. 5  Fault Status bits */
+    RESERVED(0:3, uint32_t)              
+    uint32_t LPAE:1;                     /*!< \brief bit:     9  Large Physical Address Extension */
+    RESERVED(1:2, uint32_t)              
+    uint32_t ExT:1;                      /*!< \brief bit:    12  External abort type */
+    RESERVED(2:19, uint32_t)             
+  } l;                                   /*!< \brief Structure used for bit access in long format */
+  uint32_t w;                            /*!< \brief Type      used for word access */
+} IFSR_Type;
+
+#define IFSR_ExT_Pos                     12U                                    /*!< \brief IFSR: ExT Position */
+#define IFSR_ExT_Msk                     (1UL << IFSR_ExT_Pos)                  /*!< \brief IFSR: ExT Mask */
+
+#define IFSR_FS1_Pos                     10U                                    /*!< \brief IFSR: FS1 Position */
+#define IFSR_FS1_Msk                     (1UL << IFSR_FS1_Pos)                  /*!< \brief IFSR: FS1 Mask */
+
+#define IFSR_LPAE_Pos                    9U                                     /*!< \brief IFSR: LPAE Position */
+#define IFSR_LPAE_Msk                    (0x1UL << IFSR_LPAE_Pos)               /*!< \brief IFSR: LPAE Mask */
+
+#define IFSR_FS0_Pos                     0U                                     /*!< \brief IFSR: FS0 Position */
+#define IFSR_FS0_Msk                     (0xFUL << IFSR_FS0_Pos)                /*!< \brief IFSR: FS0 Mask */
+
+#define IFSR_STATUS_Pos                  0U                                     /*!< \brief IFSR: STATUS Position */
+#define IFSR_STATUS_Msk                  (0x3FUL << IFSR_STATUS_Pos)            /*!< \brief IFSR: STATUS Mask */
+
+/* CP15 Register ISR */
+typedef union
+{
+  struct
+  {
+    RESERVED(0:6, uint32_t)              
+    uint32_t F:1;                        /*!< \brief bit:     6  FIQ pending bit */
+    uint32_t I:1;                        /*!< \brief bit:     7  IRQ pending bit */
+    uint32_t A:1;                        /*!< \brief bit:     8  External abort pending bit */
+    RESERVED(1:23, uint32_t)             
+  } b;                                   /*!< \brief Structure used for bit  access */
+  uint32_t w;                            /*!< \brief Type      used for word access */
+} ISR_Type;
+
+#define ISR_A_Pos                        13U                                    /*!< \brief ISR: A Position */
+#define ISR_A_Msk                        (1UL << ISR_A_Pos)                     /*!< \brief ISR: A Mask */
+
+#define ISR_I_Pos                        12U                                    /*!< \brief ISR: I Position */
+#define ISR_I_Msk                        (1UL << ISR_I_Pos)                     /*!< \brief ISR: I Mask */
+
+#define ISR_F_Pos                        11U                                    /*!< \brief ISR: F Position */
+#define ISR_F_Msk                        (1UL << ISR_F_Pos)                     /*!< \brief ISR: F Mask */
+
+/* DACR Register */
+#define DACR_D_Pos_(n)                   (2U*n)                                 /*!< \brief DACR: Dn Position */
+#define DACR_D_Msk_(n)                   (3UL << DACR_D_Pos_(n))                /*!< \brief DACR: Dn Mask */
+#define DACR_Dn_NOACCESS                 0U                                     /*!< \brief DACR Dn field: No access */
+#define DACR_Dn_CLIENT                   1U                                     /*!< \brief DACR Dn field: Client */
+#define DACR_Dn_MANAGER                  3U                                     /*!< \brief DACR Dn field: Manager */
+
+/**
+  \brief     Mask and shift a bit field value for use in a register bit range.
+  \param [in] field  Name of the register bit field.
+  \param [in] value  Value of the bit field. This parameter is interpreted as an uint32_t type.
+  \return           Masked and shifted value.
+*/
+#define _VAL2FLD(field, value)    (((uint32_t)(value) << field ## _Pos) & field ## _Msk)
+
+/**
+  \brief     Mask and shift a register value to extract a bit filed value.
+  \param [in] field  Name of the register bit field.
+  \param [in] value  Value of register. This parameter is interpreted as an uint32_t type.
+  \return           Masked and shifted bit field value.
+*/
+#define _FLD2VAL(field, value)    (((uint32_t)(value) & field ## _Msk) >> field ## _Pos)
+
+
+/**
+ \brief  Union type to access the L2C_310 Cache Controller.
+*/
+#if (__L2C_PRESENT == 1U) || defined(DOXYGEN)
+typedef struct
+{
+  __IM  uint32_t CACHE_ID;                   /*!< \brief Offset: 0x0000 (R/ ) Cache ID Register               */
+  __IM  uint32_t CACHE_TYPE;                 /*!< \brief Offset: 0x0004 (R/ ) Cache Type Register             */
+        RESERVED(0[0x3e], uint32_t)
+  __IOM uint32_t CONTROL;                    /*!< \brief Offset: 0x0100 (R/W) Control Register                */
+  __IOM uint32_t AUX_CNT;                    /*!< \brief Offset: 0x0104 (R/W) Auxiliary Control               */
+        RESERVED(1[0x3e], uint32_t)
+  __IOM uint32_t EVENT_CONTROL;              /*!< \brief Offset: 0x0200 (R/W) Event Counter Control           */
+  __IOM uint32_t EVENT_COUNTER1_CONF;        /*!< \brief Offset: 0x0204 (R/W) Event Counter 1 Configuration   */
+  __IOM uint32_t EVENT_COUNTER0_CONF;        /*!< \brief Offset: 0x0208 (R/W) Event Counter 1 Configuration   */
+        RESERVED(2[0x2], uint32_t)
+  __IOM uint32_t INTERRUPT_MASK;             /*!< \brief Offset: 0x0214 (R/W) Interrupt Mask                  */
+  __IM  uint32_t MASKED_INT_STATUS;          /*!< \brief Offset: 0x0218 (R/ ) Masked Interrupt Status         */
+  __IM  uint32_t RAW_INT_STATUS;             /*!< \brief Offset: 0x021c (R/ ) Raw Interrupt Status            */
+  __OM  uint32_t INTERRUPT_CLEAR;            /*!< \brief Offset: 0x0220 ( /W) Interrupt Clear                 */
+        RESERVED(3[0x143], uint32_t)
+  __IOM uint32_t CACHE_SYNC;                 /*!< \brief Offset: 0x0730 (R/W) Cache Sync                      */
+        RESERVED(4[0xf], uint32_t)
+  __IOM uint32_t INV_LINE_PA;                /*!< \brief Offset: 0x0770 (R/W) Invalidate Line By PA           */
+        RESERVED(6[2], uint32_t)
+  __IOM uint32_t INV_WAY;                    /*!< \brief Offset: 0x077c (R/W) Invalidate by Way               */
+        RESERVED(5[0xc], uint32_t)
+  __IOM uint32_t CLEAN_LINE_PA;              /*!< \brief Offset: 0x07b0 (R/W) Clean Line by PA                */
+        RESERVED(7[1], uint32_t)
+  __IOM uint32_t CLEAN_LINE_INDEX_WAY;       /*!< \brief Offset: 0x07b8 (R/W) Clean Line by Index/Way         */
+  __IOM uint32_t CLEAN_WAY;                  /*!< \brief Offset: 0x07bc (R/W) Clean by Way                    */
+        RESERVED(8[0xc], uint32_t)
+  __IOM uint32_t CLEAN_INV_LINE_PA;          /*!< \brief Offset: 0x07f0 (R/W) Clean and Invalidate Line by PA  */
+        RESERVED(9[1], uint32_t)
+  __IOM uint32_t CLEAN_INV_LINE_INDEX_WAY;   /*!< \brief Offset: 0x07f8 (R/W) Clean and Invalidate Line by Index/Way  */
+  __IOM uint32_t CLEAN_INV_WAY;              /*!< \brief Offset: 0x07fc (R/W) Clean and Invalidate by Way     */
+        RESERVED(10[0x40], uint32_t)
+  __IOM uint32_t DATA_LOCK_0_WAY;            /*!< \brief Offset: 0x0900 (R/W) Data Lockdown 0 by Way          */
+  __IOM uint32_t INST_LOCK_0_WAY;            /*!< \brief Offset: 0x0904 (R/W) Instruction Lockdown 0 by Way   */
+  __IOM uint32_t DATA_LOCK_1_WAY;            /*!< \brief Offset: 0x0908 (R/W) Data Lockdown 1 by Way          */
+  __IOM uint32_t INST_LOCK_1_WAY;            /*!< \brief Offset: 0x090c (R/W) Instruction Lockdown 1 by Way   */
+  __IOM uint32_t DATA_LOCK_2_WAY;            /*!< \brief Offset: 0x0910 (R/W) Data Lockdown 2 by Way          */
+  __IOM uint32_t INST_LOCK_2_WAY;            /*!< \brief Offset: 0x0914 (R/W) Instruction Lockdown 2 by Way   */
+  __IOM uint32_t DATA_LOCK_3_WAY;            /*!< \brief Offset: 0x0918 (R/W) Data Lockdown 3 by Way          */
+  __IOM uint32_t INST_LOCK_3_WAY;            /*!< \brief Offset: 0x091c (R/W) Instruction Lockdown 3 by Way   */
+  __IOM uint32_t DATA_LOCK_4_WAY;            /*!< \brief Offset: 0x0920 (R/W) Data Lockdown 4 by Way          */
+  __IOM uint32_t INST_LOCK_4_WAY;            /*!< \brief Offset: 0x0924 (R/W) Instruction Lockdown 4 by Way   */
+  __IOM uint32_t DATA_LOCK_5_WAY;            /*!< \brief Offset: 0x0928 (R/W) Data Lockdown 5 by Way          */
+  __IOM uint32_t INST_LOCK_5_WAY;            /*!< \brief Offset: 0x092c (R/W) Instruction Lockdown 5 by Way   */
+  __IOM uint32_t DATA_LOCK_6_WAY;            /*!< \brief Offset: 0x0930 (R/W) Data Lockdown 5 by Way          */
+  __IOM uint32_t INST_LOCK_6_WAY;            /*!< \brief Offset: 0x0934 (R/W) Instruction Lockdown 5 by Way   */
+  __IOM uint32_t DATA_LOCK_7_WAY;            /*!< \brief Offset: 0x0938 (R/W) Data Lockdown 6 by Way          */
+  __IOM uint32_t INST_LOCK_7_WAY;            /*!< \brief Offset: 0x093c (R/W) Instruction Lockdown 6 by Way   */
+        RESERVED(11[0x4], uint32_t)
+  __IOM uint32_t LOCK_LINE_EN;               /*!< \brief Offset: 0x0950 (R/W) Lockdown by Line Enable         */
+  __IOM uint32_t UNLOCK_ALL_BY_WAY;          /*!< \brief Offset: 0x0954 (R/W) Unlock All Lines by Way         */
+        RESERVED(12[0xaa], uint32_t)
+  __IOM uint32_t ADDRESS_FILTER_START;       /*!< \brief Offset: 0x0c00 (R/W) Address Filtering Start         */
+  __IOM uint32_t ADDRESS_FILTER_END;         /*!< \brief Offset: 0x0c04 (R/W) Address Filtering End           */
+        RESERVED(13[0xce], uint32_t)
+  __IOM uint32_t DEBUG_CONTROL;              /*!< \brief Offset: 0x0f40 (R/W) Debug Control Register          */
+} L2C_310_TypeDef;
+
+#define L2C_310           ((L2C_310_TypeDef *)L2C_310_BASE) /*!< \brief L2C_310 register set access pointer */
+#endif
+
+#if (__GIC_PRESENT == 1U) || defined(DOXYGEN)
+    
+/** \brief  Structure type to access the Generic Interrupt Controller Distributor (GICD)
+*/
+typedef struct
+{
+  __IOM uint32_t CTLR;                 /*!< \brief  Offset: 0x000 (R/W) Distributor Control Register */
+  __IM  uint32_t TYPER;                /*!< \brief  Offset: 0x004 (R/ ) Interrupt Controller Type Register */
+  __IM  uint32_t IIDR;                 /*!< \brief  Offset: 0x008 (R/ ) Distributor Implementer Identification Register */
+        RESERVED(0, uint32_t)
+  __IOM uint32_t STATUSR;              /*!< \brief  Offset: 0x010 (R/W) Error Reporting Status Register, optional */
+        RESERVED(1[11], uint32_t)
+  __OM  uint32_t SETSPI_NSR;           /*!< \brief  Offset: 0x040 ( /W) Set SPI Register */
+        RESERVED(2, uint32_t)
+  __OM  uint32_t CLRSPI_NSR;           /*!< \brief  Offset: 0x048 ( /W) Clear SPI Register */
+        RESERVED(3, uint32_t)
+  __OM  uint32_t SETSPI_SR;            /*!< \brief  Offset: 0x050 ( /W) Set SPI, Secure Register */
+        RESERVED(4, uint32_t)
+  __OM  uint32_t CLRSPI_SR;            /*!< \brief  Offset: 0x058 ( /W) Clear SPI, Secure Register */
+        RESERVED(5[9], uint32_t)
+  __IOM uint32_t IGROUPR[32];          /*!< \brief  Offset: 0x080 (R/W) Interrupt Group Registers */
+  __IOM uint32_t ISENABLER[32];        /*!< \brief  Offset: 0x100 (R/W) Interrupt Set-Enable Registers */
+  __IOM uint32_t ICENABLER[32];        /*!< \brief  Offset: 0x180 (R/W) Interrupt Clear-Enable Registers */
+  __IOM uint32_t ISPENDR[32];          /*!< \brief  Offset: 0x200 (R/W) Interrupt Set-Pending Registers */
+  __IOM uint32_t ICPENDR[32];          /*!< \brief  Offset: 0x280 (R/W) Interrupt Clear-Pending Registers */
+  __IOM uint32_t ISACTIVER[32];        /*!< \brief  Offset: 0x300 (R/W) Interrupt Set-Active Registers */
+  __IOM uint32_t ICACTIVER[32];        /*!< \brief  Offset: 0x380 (R/W) Interrupt Clear-Active Registers */
+  __IOM uint32_t IPRIORITYR[255];      /*!< \brief  Offset: 0x400 (R/W) Interrupt Priority Registers */
+        RESERVED(6, uint32_t)
+  __IOM uint32_t  ITARGETSR[255];      /*!< \brief  Offset: 0x800 (R/W) Interrupt Targets Registers */
+        RESERVED(7, uint32_t)
+  __IOM uint32_t ICFGR[64];            /*!< \brief  Offset: 0xC00 (R/W) Interrupt Configuration Registers */
+  __IOM uint32_t IGRPMODR[32];         /*!< \brief  Offset: 0xD00 (R/W) Interrupt Group Modifier Registers */
+        RESERVED(8[32], uint32_t)
+  __IOM uint32_t NSACR[64];            /*!< \brief  Offset: 0xE00 (R/W) Non-secure Access Control Registers */
+  __OM  uint32_t SGIR;                 /*!< \brief  Offset: 0xF00 ( /W) Software Generated Interrupt Register */
+        RESERVED(9[3], uint32_t)
+  __IOM uint32_t CPENDSGIR[4];         /*!< \brief  Offset: 0xF10 (R/W) SGI Clear-Pending Registers */
+  __IOM uint32_t SPENDSGIR[4];         /*!< \brief  Offset: 0xF20 (R/W) SGI Set-Pending Registers */
+        RESERVED(10[5236], uint32_t)
+  __IOM uint64_t IROUTER[988];         /*!< \brief  Offset: 0x6100(R/W) Interrupt Routing Registers */
+}  GICDistributor_Type;
+
+#define GICDistributor      ((GICDistributor_Type      *)     GIC_DISTRIBUTOR_BASE ) /*!< \brief GIC Distributor register set access pointer */
+
+/** \brief  Structure type to access the Generic Interrupt Controller Interface (GICC)
+*/
+typedef struct
+{
+  __IOM uint32_t CTLR;                 /*!< \brief  Offset: 0x000 (R/W) CPU Interface Control Register */
+  __IOM uint32_t PMR;                  /*!< \brief  Offset: 0x004 (R/W) Interrupt Priority Mask Register */
+  __IOM uint32_t BPR;                  /*!< \brief  Offset: 0x008 (R/W) Binary Point Register */
+  __IM  uint32_t IAR;                  /*!< \brief  Offset: 0x00C (R/ ) Interrupt Acknowledge Register */
+  __OM  uint32_t EOIR;                 /*!< \brief  Offset: 0x010 ( /W) End Of Interrupt Register */
+  __IM  uint32_t RPR;                  /*!< \brief  Offset: 0x014 (R/ ) Running Priority Register */
+  __IM  uint32_t HPPIR;                /*!< \brief  Offset: 0x018 (R/ ) Highest Priority Pending Interrupt Register */
+  __IOM uint32_t ABPR;                 /*!< \brief  Offset: 0x01C (R/W) Aliased Binary Point Register */
+  __IM  uint32_t AIAR;                 /*!< \brief  Offset: 0x020 (R/ ) Aliased Interrupt Acknowledge Register */
+  __OM  uint32_t AEOIR;                /*!< \brief  Offset: 0x024 ( /W) Aliased End Of Interrupt Register */
+  __IM  uint32_t AHPPIR;               /*!< \brief  Offset: 0x028 (R/ ) Aliased Highest Priority Pending Interrupt Register */
+  __IOM uint32_t STATUSR;              /*!< \brief  Offset: 0x02C (R/W) Error Reporting Status Register, optional */
+        RESERVED(1[40], uint32_t)
+  __IOM uint32_t APR[4];               /*!< \brief  Offset: 0x0D0 (R/W) Active Priority Register */
+  __IOM uint32_t NSAPR[4];             /*!< \brief  Offset: 0x0E0 (R/W) Non-secure Active Priority Register */
+        RESERVED(2[3], uint32_t)
+  __IM  uint32_t IIDR;                 /*!< \brief  Offset: 0x0FC (R/ ) CPU Interface Identification Register */
+        RESERVED(3[960], uint32_t)
+  __OM  uint32_t DIR;                  /*!< \brief  Offset: 0x1000( /W) Deactivate Interrupt Register */
+}  GICInterface_Type;
+
+#define GICInterface        ((GICInterface_Type        *)     GIC_INTERFACE_BASE )   /*!< \brief GIC Interface register set access pointer */
+#endif
+
+#if (__TIM_PRESENT == 1U) || defined(DOXYGEN)
+#if ((__CORTEX_A == 5U) || (__CORTEX_A == 9U)) || defined(DOXYGEN)
+/** \brief Structure type to access the Private Timer
+*/
+typedef struct
+{
+  __IOM uint32_t LOAD;            //!< \brief  Offset: 0x000 (R/W) Private Timer Load Register
+  __IOM uint32_t COUNTER;         //!< \brief  Offset: 0x004 (R/W) Private Timer Counter Register
+  __IOM uint32_t CONTROL;         //!< \brief  Offset: 0x008 (R/W) Private Timer Control Register
+  __IOM uint32_t ISR;             //!< \brief  Offset: 0x00C (R/W) Private Timer Interrupt Status Register
+        RESERVED(0[4], uint32_t)
+  __IOM uint32_t WLOAD;           //!< \brief  Offset: 0x020 (R/W) Watchdog Load Register
+  __IOM uint32_t WCOUNTER;        //!< \brief  Offset: 0x024 (R/W) Watchdog Counter Register
+  __IOM uint32_t WCONTROL;        //!< \brief  Offset: 0x028 (R/W) Watchdog Control Register
+  __IOM uint32_t WISR;            //!< \brief  Offset: 0x02C (R/W) Watchdog Interrupt Status Register
+  __IOM uint32_t WRESET;          //!< \brief  Offset: 0x030 (R/W) Watchdog Reset Status Register
+  __OM  uint32_t WDISABLE;        //!< \brief  Offset: 0x034 ( /W) Watchdog Disable Register
+} Timer_Type;
+#define PTIM ((Timer_Type *) TIMER_BASE )   /*!< \brief Timer register struct */
+#endif
+#endif
+
+ /*******************************************************************************
+  *                Hardware Abstraction Layer
+   Core Function Interface contains:
+   - L1 Cache Functions
+   - L2C-310 Cache Controller Functions 
+   - PL1 Timer Functions
+   - GIC Functions
+   - MMU Functions
+  ******************************************************************************/
+ 
+/* ##########################  L1 Cache functions  ################################# */
+
+/** \brief Enable Caches by setting I and C bits in SCTLR register.
+*/
+__STATIC_FORCEINLINE void L1C_EnableCaches(void) {
+  __set_SCTLR( __get_SCTLR() | SCTLR_I_Msk | SCTLR_C_Msk);
+  __ISB();
+}
+
+/** \brief Disable Caches by clearing I and C bits in SCTLR register.
+*/
+__STATIC_FORCEINLINE void L1C_DisableCaches(void) {
+  __set_SCTLR( __get_SCTLR() & (~SCTLR_I_Msk) & (~SCTLR_C_Msk));
+  __ISB();
+}
+
+/** \brief  Enable Branch Prediction by setting Z bit in SCTLR register.
+*/
+__STATIC_FORCEINLINE void L1C_EnableBTAC(void) {
+  __set_SCTLR( __get_SCTLR() | SCTLR_Z_Msk);
+  __ISB();
+}
+
+/** \brief  Disable Branch Prediction by clearing Z bit in SCTLR register.
+*/
+__STATIC_FORCEINLINE void L1C_DisableBTAC(void) {
+  __set_SCTLR( __get_SCTLR() & (~SCTLR_Z_Msk));
+  __ISB();
+}
+
+/** \brief  Invalidate entire branch predictor array
+*/
+__STATIC_FORCEINLINE void L1C_InvalidateBTAC(void) {
+  __set_BPIALL(0);
+  __DSB();     //ensure completion of the invalidation
+  __ISB();     //ensure instruction fetch path sees new state
+}
+
+/** \brief  Invalidate the whole instruction cache
+*/
+__STATIC_FORCEINLINE void L1C_InvalidateICacheAll(void) {
+  __set_ICIALLU(0);
+  __DSB();     //ensure completion of the invalidation
+  __ISB();     //ensure instruction fetch path sees new I cache state
+}
+
+/** \brief  Clean data cache line by address.
+* \param [in] va Pointer to data to clear the cache for.
+*/
+__STATIC_FORCEINLINE void L1C_CleanDCacheMVA(void *va) {
+  __set_DCCMVAC((uint32_t)va);
+  __DMB();     //ensure the ordering of data cache maintenance operations and their effects
+}
+
+/** \brief  Invalidate data cache line by address.
+* \param [in] va Pointer to data to invalidate the cache for.
+*/
+__STATIC_FORCEINLINE void L1C_InvalidateDCacheMVA(void *va) {
+  __set_DCIMVAC((uint32_t)va);
+  __DMB();     //ensure the ordering of data cache maintenance operations and their effects
+}
+
+/** \brief  Clean and Invalidate data cache by address.
+* \param [in] va Pointer to data to invalidate the cache for.
+*/
+__STATIC_FORCEINLINE void L1C_CleanInvalidateDCacheMVA(void *va) {
+  __set_DCCIMVAC((uint32_t)va);
+  __DMB();     //ensure the ordering of data cache maintenance operations and their effects
+}
+
+/** \brief Calculate log2 rounded up
+*  - log(0)  => 0
+*  - log(1)  => 0
+*  - log(2)  => 1
+*  - log(3)  => 2
+*  - log(4)  => 2
+*  - log(5)  => 3
+*        :      :
+*  - log(16) => 4
+*  - log(32) => 5
+*        :      :
+* \param [in] n input value parameter 
+* \return log2(n)
+*/
+__STATIC_FORCEINLINE uint8_t __log2_up(uint32_t n)
+{
+  if (n < 2U) {
+    return 0U;
+  }
+  uint8_t log = 0U;
+  uint32_t t = n;
+  while(t > 1U)
+  {
+    log++;
+    t >>= 1U;
+  }
+  if (n & 1U) { log++; }
+  return log;
+}
+
+/** \brief  Apply cache maintenance to given cache level.
+* \param [in] level cache level to be maintained
+* \param [in] maint 0 - invalidate, 1 - clean, otherwise - invalidate and clean
+*/
+__STATIC_FORCEINLINE void __L1C_MaintainDCacheSetWay(uint32_t level, uint32_t maint)
+{
+  uint32_t Dummy;
+  uint32_t ccsidr;
+  uint32_t num_sets;
+  uint32_t num_ways;
+  uint32_t shift_way;
+  uint32_t log2_linesize;
+   int32_t log2_num_ways;
+
+  Dummy = level << 1U;
+  /* set csselr, select ccsidr register */
+  __set_CSSELR(Dummy);
+  /* get current ccsidr register */
+  ccsidr = __get_CCSIDR();
+  num_sets = ((ccsidr & 0x0FFFE000U) >> 13U) + 1U;
+  num_ways = ((ccsidr & 0x00001FF8U) >> 3U) + 1U;
+  log2_linesize = (ccsidr & 0x00000007U) + 2U + 2U;
+  log2_num_ways = __log2_up(num_ways);
+  if ((log2_num_ways < 0) || (log2_num_ways > 32)) {
+    return; // FATAL ERROR
+  }
+  shift_way = 32U - (uint32_t)log2_num_ways;
+  for(int32_t way = num_ways-1; way >= 0; way--)
+  {
+    for(int32_t set = num_sets-1; set >= 0; set--)
+    {
+      Dummy = (level << 1U) | (((uint32_t)set) << log2_linesize) | (((uint32_t)way) << shift_way);
+      switch (maint)
+      {
+        case 0U: __set_DCISW(Dummy);  break;
+        case 1U: __set_DCCSW(Dummy);  break;
+        default: __set_DCCISW(Dummy); break;
+      }
+    }
+  }
+  __DMB();
+}
+
+/** \brief  Clean and Invalidate the entire data or unified cache
+* Generic mechanism for cleaning/invalidating the entire data or unified cache to the point of coherency
+* \param [in] op 0 - invalidate, 1 - clean, otherwise - invalidate and clean
+*/
+__STATIC_FORCEINLINE void L1C_CleanInvalidateCache(uint32_t op) {
+  uint32_t clidr;
+  uint32_t cache_type;
+  clidr =  __get_CLIDR();
+  for(uint32_t i = 0U; i<7U; i++)
+  {
+    cache_type = (clidr >> i*3U) & 0x7UL;
+    if ((cache_type >= 2U) && (cache_type <= 4U))
+    {
+      __L1C_MaintainDCacheSetWay(i, op);
+    }
+  }
+}
+
+/** \brief  Clean and Invalidate the entire data or unified cache
+* Generic mechanism for cleaning/invalidating the entire data or unified cache to the point of coherency
+* \param [in] op 0 - invalidate, 1 - clean, otherwise - invalidate and clean
+* \deprecated Use generic L1C_CleanInvalidateCache instead.
+*/
+CMSIS_DEPRECATED
+__STATIC_FORCEINLINE void __L1C_CleanInvalidateCache(uint32_t op) {
+  L1C_CleanInvalidateCache(op);
+}
+
+/** \brief  Invalidate the whole data cache.
+*/
+__STATIC_FORCEINLINE void L1C_InvalidateDCacheAll(void) {
+  L1C_CleanInvalidateCache(0);
+}
+
+/** \brief  Clean the whole data cache.
+ */
+__STATIC_FORCEINLINE void L1C_CleanDCacheAll(void) {
+  L1C_CleanInvalidateCache(1);
+}
+
+/** \brief  Clean and invalidate the whole data cache.
+ */
+__STATIC_FORCEINLINE void L1C_CleanInvalidateDCacheAll(void) {
+  L1C_CleanInvalidateCache(2);
+}
+
+/* ##########################  L2 Cache functions  ################################# */
+#if (__L2C_PRESENT == 1U) || defined(DOXYGEN)
+/** \brief Cache Sync operation by writing CACHE_SYNC register.
+*/
+__STATIC_INLINE void L2C_Sync(void)
+{
+  L2C_310->CACHE_SYNC = 0x0;
+}
+
+/** \brief Read cache controller cache ID from CACHE_ID register.
+ * \return L2C_310_TypeDef::CACHE_ID
+ */
+__STATIC_INLINE int L2C_GetID (void)
+{
+  return L2C_310->CACHE_ID;
+}
+
+/** \brief Read cache controller cache type from CACHE_TYPE register.
+*  \return L2C_310_TypeDef::CACHE_TYPE
+*/
+__STATIC_INLINE int L2C_GetType (void)
+{
+  return L2C_310->CACHE_TYPE;
+}
+
+/** \brief Invalidate all cache by way
+*/
+__STATIC_INLINE void L2C_InvAllByWay (void)
+{
+  unsigned int assoc;
+
+  if (L2C_310->AUX_CNT & (1U << 16U)) {
+    assoc = 16U;
+  } else {
+    assoc =  8U;
+  }
+  
+  L2C_310->INV_WAY = (1U << assoc) - 1U;
+  while(L2C_310->INV_WAY & ((1U << assoc) - 1U)); //poll invalidate
+
+  L2C_Sync();
+}
+
+/** \brief Clean and Invalidate all cache by way
+*/
+__STATIC_INLINE void L2C_CleanInvAllByWay (void)
+{
+  unsigned int assoc;
+
+  if (L2C_310->AUX_CNT & (1U << 16U)) {
+    assoc = 16U;
+  } else {
+    assoc =  8U;
+  }
+
+  L2C_310->CLEAN_INV_WAY = (1U << assoc) - 1U;
+  while(L2C_310->CLEAN_INV_WAY & ((1U << assoc) - 1U)); //poll invalidate
+
+  L2C_Sync();
+}
+
+/** \brief Enable Level 2 Cache
+*/
+__STATIC_INLINE void L2C_Enable(void)
+{
+  L2C_310->CONTROL = 0;
+  L2C_310->INTERRUPT_CLEAR = 0x000001FFuL;
+  L2C_310->DEBUG_CONTROL = 0;
+  L2C_310->DATA_LOCK_0_WAY = 0;
+  L2C_310->CACHE_SYNC = 0;
+  L2C_310->CONTROL = 0x01;
+  L2C_Sync();
+}
+
+/** \brief Disable Level 2 Cache
+*/
+__STATIC_INLINE void L2C_Disable(void)
+{
+  L2C_310->CONTROL = 0x00;
+  L2C_Sync();
+}
+
+/** \brief Invalidate cache by physical address
+* \param [in] pa Pointer to data to invalidate cache for.
+*/
+__STATIC_INLINE void L2C_InvPa (void *pa)
+{
+  L2C_310->INV_LINE_PA = (unsigned int)pa;
+  L2C_Sync();
+}
+
+/** \brief Clean cache by physical address
+* \param [in] pa Pointer to data to invalidate cache for.
+*/
+__STATIC_INLINE void L2C_CleanPa (void *pa)
+{
+  L2C_310->CLEAN_LINE_PA = (unsigned int)pa;
+  L2C_Sync();
+}
+
+/** \brief Clean and invalidate cache by physical address
+* \param [in] pa Pointer to data to invalidate cache for.
+*/
+__STATIC_INLINE void L2C_CleanInvPa (void *pa)
+{
+  L2C_310->CLEAN_INV_LINE_PA = (unsigned int)pa;
+  L2C_Sync();
+}
+#endif
+
+/* ##########################  GIC functions  ###################################### */
+#if (__GIC_PRESENT == 1U) || defined(DOXYGEN)
+  
+/** \brief  Enable the interrupt distributor using the GIC's CTLR register.
+*/
+__STATIC_INLINE void GIC_EnableDistributor(void)
+{
+  GICDistributor->CTLR |= 1U;
+}
+
+/** \brief Disable the interrupt distributor using the GIC's CTLR register.
+*/
+__STATIC_INLINE void GIC_DisableDistributor(void)
+{
+  GICDistributor->CTLR &=~1U;
+}
+
+/** \brief Read the GIC's TYPER register.
+* \return GICDistributor_Type::TYPER
+*/
+__STATIC_INLINE uint32_t GIC_DistributorInfo(void)
+{
+  return (GICDistributor->TYPER);
+}
+
+/** \brief Reads the GIC's IIDR register.
+* \return GICDistributor_Type::IIDR
+*/
+__STATIC_INLINE uint32_t GIC_DistributorImplementer(void)
+{
+  return (GICDistributor->IIDR);
+}
+
+/** \brief Sets the GIC's ITARGETSR register for the given interrupt.
+* \param [in] IRQn Interrupt to be configured.
+* \param [in] cpu_target CPU interfaces to assign this interrupt to.
+*/
+__STATIC_INLINE void GIC_SetTarget(IRQn_Type IRQn, uint32_t cpu_target)
+{
+  uint32_t mask = GICDistributor->ITARGETSR[IRQn / 4U] & ~(0xFFUL << ((IRQn % 4U) * 8U));
+  GICDistributor->ITARGETSR[IRQn / 4U] = mask | ((cpu_target & 0xFFUL) << ((IRQn % 4U) * 8U));
+}
+
+/** \brief Read the GIC's ITARGETSR register.
+* \param [in] IRQn Interrupt to acquire the configuration for.
+* \return GICDistributor_Type::ITARGETSR
+*/
+__STATIC_INLINE uint32_t GIC_GetTarget(IRQn_Type IRQn)
+{
+  return (GICDistributor->ITARGETSR[IRQn / 4U] >> ((IRQn % 4U) * 8U)) & 0xFFUL;
+}
+
+/** \brief Enable the CPU's interrupt interface.
+*/
+__STATIC_INLINE void GIC_EnableInterface(void)
+{
+  GICInterface->CTLR |= 1U; //enable interface
+}
+
+/** \brief Disable the CPU's interrupt interface.
+*/
+__STATIC_INLINE void GIC_DisableInterface(void)
+{
+  GICInterface->CTLR &=~1U; //disable distributor
+}
+
+/** \brief Read the CPU's IAR register.
+* \return GICInterface_Type::IAR
+*/
+__STATIC_INLINE IRQn_Type GIC_AcknowledgePending(void)
+{
+  return (IRQn_Type)(GICInterface->IAR);
+}
+
+/** \brief Writes the given interrupt number to the CPU's EOIR register.
+* \param [in] IRQn The interrupt to be signaled as finished.
+*/
+__STATIC_INLINE void GIC_EndInterrupt(IRQn_Type IRQn)
+{
+  GICInterface->EOIR = IRQn;
+}
+
+/** \brief Enables the given interrupt using GIC's ISENABLER register.
+* \param [in] IRQn The interrupt to be enabled.
+*/
+__STATIC_INLINE void GIC_EnableIRQ(IRQn_Type IRQn)
+{
+  GICDistributor->ISENABLER[IRQn / 32U] = 1U << (IRQn % 32U);
+}
+
+/** \brief Get interrupt enable status using GIC's ISENABLER register.
+* \param [in] IRQn The interrupt to be queried.
+* \return 0 - interrupt is not enabled, 1 - interrupt is enabled.
+*/
+__STATIC_INLINE uint32_t GIC_GetEnableIRQ(IRQn_Type IRQn)
+{
+  return (GICDistributor->ISENABLER[IRQn / 32U] >> (IRQn % 32U)) & 1UL;
+}
+
+/** \brief Disables the given interrupt using GIC's ICENABLER register.
+* \param [in] IRQn The interrupt to be disabled.
+*/
+__STATIC_INLINE void GIC_DisableIRQ(IRQn_Type IRQn)
+{
+  GICDistributor->ICENABLER[IRQn / 32U] = 1U << (IRQn % 32U);
+}
+
+/** \brief Get interrupt pending status from GIC's ISPENDR register.
+* \param [in] IRQn The interrupt to be queried.
+* \return 0 - interrupt is not pending, 1 - interrupt is pendig.
+*/
+__STATIC_INLINE uint32_t GIC_GetPendingIRQ(IRQn_Type IRQn)
+{
+  uint32_t pend;
+
+  if (IRQn >= 16U) {
+    pend = (GICDistributor->ISPENDR[IRQn / 32U] >> (IRQn % 32U)) & 1UL;
+  } else {
+    // INTID 0-15 Software Generated Interrupt
+    pend = (GICDistributor->SPENDSGIR[IRQn / 4U] >> ((IRQn % 4U) * 8U)) & 0xFFUL;
+    // No CPU identification offered
+    if (pend != 0U) {
+      pend = 1U;
+    } else {
+      pend = 0U;
+    }
+  }
+
+  return (pend);
+}
+
+/** \brief Sets the given interrupt as pending using GIC's ISPENDR register.
+* \param [in] IRQn The interrupt to be enabled.
+*/
+__STATIC_INLINE void GIC_SetPendingIRQ(IRQn_Type IRQn)
+{
+  if (IRQn >= 16U) {
+    GICDistributor->ISPENDR[IRQn / 32U] = 1U << (IRQn % 32U);
+  } else {
+    // INTID 0-15 Software Generated Interrupt
+    GICDistributor->SPENDSGIR[IRQn / 4U] = 1U << ((IRQn % 4U) * 8U);
+  }
+}
+
+/** \brief Clears the given interrupt from being pending using GIC's ICPENDR register.
+* \param [in] IRQn The interrupt to be enabled.
+*/
+__STATIC_INLINE void GIC_ClearPendingIRQ(IRQn_Type IRQn)
+{
+  if (IRQn >= 16U) {
+    GICDistributor->ICPENDR[IRQn / 32U] = 1U << (IRQn % 32U);
+  } else {
+    // INTID 0-15 Software Generated Interrupt
+    GICDistributor->CPENDSGIR[IRQn / 4U] = 1U << ((IRQn % 4U) * 8U);
+  }
+}
+
+/** \brief Sets the interrupt configuration using GIC's ICFGR register.
+* \param [in] IRQn The interrupt to be configured.
+* \param [in] int_config Int_config field value. Bit 0: Reserved (0 - N-N model, 1 - 1-N model for some GIC before v1)
+*                                           Bit 1: 0 - level sensitive, 1 - edge triggered
+*/
+__STATIC_INLINE void GIC_SetConfiguration(IRQn_Type IRQn, uint32_t int_config)
+{
+  uint32_t icfgr = GICDistributor->ICFGR[IRQn / 16U];
+  uint32_t shift = (IRQn % 16U) << 1U;
+
+  icfgr &= (~(3U         << shift));
+  icfgr |= (  int_config << shift);
+
+  GICDistributor->ICFGR[IRQn / 16U] = icfgr;
+}
+
+/** \brief Get the interrupt configuration from the GIC's ICFGR register.
+* \param [in] IRQn Interrupt to acquire the configuration for.
+* \return Int_config field value. Bit 0: Reserved (0 - N-N model, 1 - 1-N model for some GIC before v1)
+*                                 Bit 1: 0 - level sensitive, 1 - edge triggered
+*/
+__STATIC_INLINE uint32_t GIC_GetConfiguration(IRQn_Type IRQn)
+{
+  return (GICDistributor->ICFGR[IRQn / 16U] >> ((IRQn % 16U) >> 1U));
+}
+
+/** \brief Set the priority for the given interrupt in the GIC's IPRIORITYR register.
+* \param [in] IRQn The interrupt to be configured.
+* \param [in] priority The priority for the interrupt, lower values denote higher priorities.
+*/
+__STATIC_INLINE void GIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
+{
+  uint32_t mask = GICDistributor->IPRIORITYR[IRQn / 4U] & ~(0xFFUL << ((IRQn % 4U) * 8U));
+  GICDistributor->IPRIORITYR[IRQn / 4U] = mask | ((priority & 0xFFUL) << ((IRQn % 4U) * 8U));
+}
+
+/** \brief Read the current interrupt priority from GIC's IPRIORITYR register.
+* \param [in] IRQn The interrupt to be queried.
+*/
+__STATIC_INLINE uint32_t GIC_GetPriority(IRQn_Type IRQn)
+{
+  return (GICDistributor->IPRIORITYR[IRQn / 4U] >> ((IRQn % 4U) * 8U)) & 0xFFUL;
+}
+
+/** \brief Set the interrupt priority mask using CPU's PMR register.
+* \param [in] priority Priority mask to be set.
+*/
+__STATIC_INLINE void GIC_SetInterfacePriorityMask(uint32_t priority)
+{
+  GICInterface->PMR = priority & 0xFFUL; //set priority mask
+}
+
+/** \brief Read the current interrupt priority mask from CPU's PMR register.
+* \result GICInterface_Type::PMR
+*/
+__STATIC_INLINE uint32_t GIC_GetInterfacePriorityMask(void)
+{
+  return GICInterface->PMR;
+}
+
+/** \brief Configures the group priority and subpriority split point using CPU's BPR register.
+* \param [in] binary_point Amount of bits used as subpriority.
+*/
+__STATIC_INLINE void GIC_SetBinaryPoint(uint32_t binary_point)
+{
+  GICInterface->BPR = binary_point & 7U; //set binary point
+}
+
+/** \brief Read the current group priority and subpriority split point from CPU's BPR register.
+* \return GICInterface_Type::BPR
+*/
+__STATIC_INLINE uint32_t GIC_GetBinaryPoint(void)
+{
+  return GICInterface->BPR;
+}
+
+/** \brief Get the status for a given interrupt.
+* \param [in] IRQn The interrupt to get status for.
+* \return 0 - not pending/active, 1 - pending, 2 - active, 3 - pending and active
+*/
+__STATIC_INLINE uint32_t GIC_GetIRQStatus(IRQn_Type IRQn)
+{
+  uint32_t pending, active;
+
+  active = ((GICDistributor->ISACTIVER[IRQn / 32U])  >> (IRQn % 32U)) & 1UL;
+  pending = ((GICDistributor->ISPENDR[IRQn / 32U]) >> (IRQn % 32U)) & 1UL;
+
+  return ((active<<1U) | pending);
+}
+
+/** \brief Generate a software interrupt using GIC's SGIR register.
+* \param [in] IRQn Software interrupt to be generated.
+* \param [in] target_list List of CPUs the software interrupt should be forwarded to.
+* \param [in] filter_list Filter to be applied to determine interrupt receivers.
+*/
+__STATIC_INLINE void GIC_SendSGI(IRQn_Type IRQn, uint32_t target_list, uint32_t filter_list)
+{
+  GICDistributor->SGIR = ((filter_list & 3U) << 24U) | ((target_list & 0xFFUL) << 16U) | (IRQn & 0x0FUL);
+}
+
+/** \brief Get the interrupt number of the highest interrupt pending from CPU's HPPIR register.
+* \return GICInterface_Type::HPPIR
+*/
+__STATIC_INLINE uint32_t GIC_GetHighPendingIRQ(void) 
+{ 
+  return GICInterface->HPPIR; 
+}
+
+/** \brief Provides information about the implementer and revision of the CPU interface.
+* \return GICInterface_Type::IIDR
+*/
+__STATIC_INLINE uint32_t GIC_GetInterfaceId(void)
+{ 
+  return GICInterface->IIDR; 
+}
+
+/** \brief Set the interrupt group from the GIC's IGROUPR register.
+* \param [in] IRQn The interrupt to be queried.
+* \param [in] group Interrupt group number: 0 - Group 0, 1 - Group 1
+*/
+__STATIC_INLINE void GIC_SetGroup(IRQn_Type IRQn, uint32_t group)
+{
+  uint32_t igroupr = GICDistributor->IGROUPR[IRQn / 32U];
+  uint32_t shift   = (IRQn % 32U);
+
+  igroupr &= (~(1U          << shift));
+  igroupr |= ( (group & 1U) << shift);
+
+  GICDistributor->IGROUPR[IRQn / 32U] = igroupr;
+}
+#define GIC_SetSecurity         GIC_SetGroup
+
+/** \brief Get the interrupt group from the GIC's IGROUPR register.
+* \param [in] IRQn The interrupt to be queried.
+* \return 0 - Group 0, 1 - Group 1
+*/
+__STATIC_INLINE uint32_t GIC_GetGroup(IRQn_Type IRQn)
+{
+  return (GICDistributor->IGROUPR[IRQn / 32U] >> (IRQn % 32U)) & 1UL;
+}
+#define GIC_GetSecurity         GIC_GetGroup
+
+/** \brief Initialize the interrupt distributor.
+*/
+__STATIC_INLINE void GIC_DistInit(void)
+{
+  uint32_t i;
+  uint32_t num_irq = 0U;
+  uint32_t priority_field;
+
+  //A reset sets all bits in the IGROUPRs corresponding to the SPIs to 0,
+  //configuring all of the interrupts as Secure.
+
+  //Disable interrupt forwarding
+  GIC_DisableDistributor();
+  //Get the maximum number of interrupts that the GIC supports
+  num_irq = 32U * ((GIC_DistributorInfo() & 0x1FU) + 1U);
+
+  /* Priority level is implementation defined.
+   To determine the number of priority bits implemented write 0xFF to an IPRIORITYR
+   priority field and read back the value stored.*/
+  GIC_SetPriority((IRQn_Type)0U, 0xFFU);
+  priority_field = GIC_GetPriority((IRQn_Type)0U);
+
+  for (i = 32U; i < num_irq; i++)
+  {
+      //Disable the SPI interrupt
+      GIC_DisableIRQ((IRQn_Type)i);
+      //Set level-sensitive (and N-N model)
+      GIC_SetConfiguration((IRQn_Type)i, 0U);
+      //Set priority
+      GIC_SetPriority((IRQn_Type)i, priority_field/2U);
+      //Set target list to CPU0
+      GIC_SetTarget((IRQn_Type)i, 1U);
+  }
+  //Enable distributor
+  GIC_EnableDistributor();
+}
+
+/** \brief Initialize the CPU's interrupt interface
+*/
+__STATIC_INLINE void GIC_CPUInterfaceInit(void)
+{
+  uint32_t i;
+  uint32_t priority_field;
+
+  //A reset sets all bits in the IGROUPRs corresponding to the SPIs to 0,
+  //configuring all of the interrupts as Secure.
+
+  //Disable interrupt forwarding
+  GIC_DisableInterface();
+
+  /* Priority level is implementation defined.
+   To determine the number of priority bits implemented write 0xFF to an IPRIORITYR
+   priority field and read back the value stored.*/
+  GIC_SetPriority((IRQn_Type)0U, 0xFFU);
+  priority_field = GIC_GetPriority((IRQn_Type)0U);
+
+  //SGI and PPI
+  for (i = 0U; i < 32U; i++)
+  {
+    if(i > 15U) {
+      //Set level-sensitive (and N-N model) for PPI
+      GIC_SetConfiguration((IRQn_Type)i, 0U);
+    }
+    //Disable SGI and PPI interrupts
+    GIC_DisableIRQ((IRQn_Type)i);
+    //Set priority
+    GIC_SetPriority((IRQn_Type)i, priority_field/2U);
+  }
+  //Enable interface
+  GIC_EnableInterface();
+  //Set binary point to 0
+  GIC_SetBinaryPoint(0U);
+  //Set priority mask
+  GIC_SetInterfacePriorityMask(0xFFU);
+}
+
+/** \brief Initialize and enable the GIC
+*/
+__STATIC_INLINE void GIC_Enable(void)
+{
+  GIC_DistInit();
+  GIC_CPUInterfaceInit(); //per CPU
+}
+#endif
+
+/* ##########################  Generic Timer functions  ############################ */
+#if (__TIM_PRESENT == 1U) || defined(DOXYGEN)
+  
+/* PL1 Physical Timer */
+#if (__CORTEX_A == 7U) || defined(DOXYGEN)
+  
+/** \brief Physical Timer Control register */
+typedef union
+{
+  struct
+  {
+    uint32_t ENABLE:1;      /*!< \brief bit: 0      Enables the timer. */
+    uint32_t IMASK:1;       /*!< \brief bit: 1      Timer output signal mask bit. */
+    uint32_t ISTATUS:1;     /*!< \brief bit: 2      The status of the timer. */
+    RESERVED(0:29, uint32_t)
+  } b;                      /*!< \brief Structure used for bit  access */
+  uint32_t w;               /*!< \brief Type      used for word access */
+} CNTP_CTL_Type;
+
+/** \brief Configures the frequency the timer shall run at.
+* \param [in] value The timer frequency in Hz.
+*/
+__STATIC_INLINE void PL1_SetCounterFrequency(uint32_t value)
+{
+  __set_CNTFRQ(value);
+  __ISB();
+}
+
+/** \brief Sets the reset value of the timer.
+* \param [in] value The value the timer is loaded with.
+*/
+__STATIC_INLINE void PL1_SetLoadValue(uint32_t value)
+{
+  __set_CNTP_TVAL(value);
+  __ISB();
+}
+
+/** \brief Get the current counter value.
+* \return Current counter value.
+*/
+__STATIC_INLINE uint32_t PL1_GetCurrentValue(void)
+{
+  return(__get_CNTP_TVAL());
+}
+
+/** \brief Get the current physical counter value.
+* \return Current physical counter value.
+*/
+__STATIC_INLINE uint64_t PL1_GetCurrentPhysicalValue(void)
+{
+  return(__get_CNTPCT());
+}
+
+/** \brief Set the physical compare value.
+* \param [in] value New physical timer compare value.
+*/
+__STATIC_INLINE void PL1_SetPhysicalCompareValue(uint64_t value)
+{
+  __set_CNTP_CVAL(value);
+  __ISB();
+}
+
+/** \brief Get the physical compare value.
+* \return Physical compare value.
+*/
+__STATIC_INLINE uint64_t PL1_GetPhysicalCompareValue(void)
+{
+  return(__get_CNTP_CVAL());
+}
+
+/** \brief Configure the timer by setting the control value.
+* \param [in] value New timer control value.
+*/
+__STATIC_INLINE void PL1_SetControl(uint32_t value)
+{
+  __set_CNTP_CTL(value);
+  __ISB();
+}
+
+/** \brief Get the control value.
+* \return Control value.
+*/
+__STATIC_INLINE uint32_t PL1_GetControl(void)
+{
+  return(__get_CNTP_CTL());
+}
+#endif
+
+/* Private Timer */
+#if ((__CORTEX_A == 5U) || (__CORTEX_A == 9U)) || defined(DOXYGEN)
+/** \brief Set the load value to timers LOAD register.
+* \param [in] value The load value to be set.
+*/
+__STATIC_INLINE void PTIM_SetLoadValue(uint32_t value)
+{
+  PTIM->LOAD = value;
+}
+
+/** \brief Get the load value from timers LOAD register.
+* \return Timer_Type::LOAD
+*/
+__STATIC_INLINE uint32_t PTIM_GetLoadValue(void)
+{
+  return(PTIM->LOAD);
+}
+
+/** \brief Set current counter value from its COUNTER register.
+*/
+__STATIC_INLINE void PTIM_SetCurrentValue(uint32_t value)
+{
+  PTIM->COUNTER = value;
+}
+
+/** \brief Get current counter value from timers COUNTER register.
+* \result Timer_Type::COUNTER
+*/
+__STATIC_INLINE uint32_t PTIM_GetCurrentValue(void)
+{
+  return(PTIM->COUNTER);
+}
+
+/** \brief Configure the timer using its CONTROL register.
+* \param [in] value The new configuration value to be set.
+*/
+__STATIC_INLINE void PTIM_SetControl(uint32_t value)
+{
+  PTIM->CONTROL = value;
+}
+
+/** ref Timer_Type::CONTROL Get the current timer configuration from its CONTROL register.
+* \return Timer_Type::CONTROL
+*/
+__STATIC_INLINE uint32_t PTIM_GetControl(void)
+{
+  return(PTIM->CONTROL);
+}
+
+/** ref Timer_Type::CONTROL Get the event flag in timers ISR register.
+* \return 0 - flag is not set, 1- flag is set
+*/
+__STATIC_INLINE uint32_t PTIM_GetEventFlag(void)
+{
+  return (PTIM->ISR & 1UL);
+}
+
+/** ref Timer_Type::CONTROL Clears the event flag in timers ISR register.
+*/
+__STATIC_INLINE void PTIM_ClearEventFlag(void)
+{
+  PTIM->ISR = 1;
+}
+#endif
+#endif
+
+/* ##########################  MMU functions  ###################################### */
+
+#define SECTION_DESCRIPTOR      (0x2)
+#define SECTION_MASK            (0xFFFFFFFC)
+
+#define SECTION_TEXCB_MASK      (0xFFFF8FF3)
+#define SECTION_B_SHIFT         (2)
+#define SECTION_C_SHIFT         (3)
+#define SECTION_TEX0_SHIFT      (12)
+#define SECTION_TEX1_SHIFT      (13)
+#define SECTION_TEX2_SHIFT      (14)
+
+#define SECTION_XN_MASK         (0xFFFFFFEF)
+#define SECTION_XN_SHIFT        (4)
+
+#define SECTION_DOMAIN_MASK     (0xFFFFFE1F)
+#define SECTION_DOMAIN_SHIFT    (5)
+
+#define SECTION_P_MASK          (0xFFFFFDFF)
+#define SECTION_P_SHIFT         (9)
+
+#define SECTION_AP_MASK         (0xFFFF73FF)
+#define SECTION_AP_SHIFT        (10)
+#define SECTION_AP2_SHIFT       (15)
+
+#define SECTION_S_MASK          (0xFFFEFFFF)
+#define SECTION_S_SHIFT         (16)
+
+#define SECTION_NG_MASK         (0xFFFDFFFF)
+#define SECTION_NG_SHIFT        (17)
+
+#define SECTION_NS_MASK         (0xFFF7FFFF)
+#define SECTION_NS_SHIFT        (19)
+
+#define PAGE_L1_DESCRIPTOR      (0x1)
+#define PAGE_L1_MASK            (0xFFFFFFFC)
+
+#define PAGE_L2_4K_DESC         (0x2)
+#define PAGE_L2_4K_MASK         (0xFFFFFFFD)
+
+#define PAGE_L2_64K_DESC        (0x1)
+#define PAGE_L2_64K_MASK        (0xFFFFFFFC)
+
+#define PAGE_4K_TEXCB_MASK      (0xFFFFFE33)
+#define PAGE_4K_B_SHIFT         (2)
+#define PAGE_4K_C_SHIFT         (3)
+#define PAGE_4K_TEX0_SHIFT      (6)
+#define PAGE_4K_TEX1_SHIFT      (7)
+#define PAGE_4K_TEX2_SHIFT      (8)
+
+#define PAGE_64K_TEXCB_MASK     (0xFFFF8FF3)
+#define PAGE_64K_B_SHIFT        (2)
+#define PAGE_64K_C_SHIFT        (3)
+#define PAGE_64K_TEX0_SHIFT     (12)
+#define PAGE_64K_TEX1_SHIFT     (13)
+#define PAGE_64K_TEX2_SHIFT     (14)
+
+#define PAGE_TEXCB_MASK         (0xFFFF8FF3)
+#define PAGE_B_SHIFT            (2)
+#define PAGE_C_SHIFT            (3)
+#define PAGE_TEX_SHIFT          (12)
+
+#define PAGE_XN_4K_MASK         (0xFFFFFFFE)
+#define PAGE_XN_4K_SHIFT        (0)
+#define PAGE_XN_64K_MASK        (0xFFFF7FFF)
+#define PAGE_XN_64K_SHIFT       (15)
+
+#define PAGE_DOMAIN_MASK        (0xFFFFFE1F)
+#define PAGE_DOMAIN_SHIFT       (5)
+
+#define PAGE_P_MASK             (0xFFFFFDFF)
+#define PAGE_P_SHIFT            (9)
+
+#define PAGE_AP_MASK            (0xFFFFFDCF)
+#define PAGE_AP_SHIFT           (4)
+#define PAGE_AP2_SHIFT          (9)
+
+#define PAGE_S_MASK             (0xFFFFFBFF)
+#define PAGE_S_SHIFT            (10)
+
+#define PAGE_NG_MASK            (0xFFFFF7FF)
+#define PAGE_NG_SHIFT           (11)
+
+#define PAGE_NS_MASK            (0xFFFFFFF7)
+#define PAGE_NS_SHIFT           (3)
+
+#define OFFSET_1M               (0x00100000)
+#define OFFSET_64K              (0x00010000)
+#define OFFSET_4K               (0x00001000)
+
+#define DESCRIPTOR_FAULT        (0x00000000)
+
+/* Attributes enumerations */
+
+/* Region size attributes */
+typedef enum
+{
+   SECTION,
+   PAGE_4k,
+   PAGE_64k,
+} mmu_region_size_Type;
+
+/* Region type attributes */
+typedef enum
+{
+   NORMAL,
+   DEVICE,
+   SHARED_DEVICE,
+   NON_SHARED_DEVICE,
+   STRONGLY_ORDERED
+} mmu_memory_Type;
+
+/* Region cacheability attributes */
+typedef enum
+{
+   NON_CACHEABLE,
+   WB_WA,
+   WT,
+   WB_NO_WA,
+} mmu_cacheability_Type;
+
+/* Region parity check attributes */
+typedef enum
+{
+   ECC_DISABLED,
+   ECC_ENABLED,
+} mmu_ecc_check_Type;
+
+/* Region execution attributes */
+typedef enum
+{
+   EXECUTE,
+   NON_EXECUTE,
+} mmu_execute_Type;
+
+/* Region global attributes */
+typedef enum
+{
+   GLOBAL,
+   NON_GLOBAL,
+} mmu_global_Type;
+
+/* Region shareability attributes */
+typedef enum
+{
+   NON_SHARED,
+   SHARED,
+} mmu_shared_Type;
+
+/* Region security attributes */
+typedef enum
+{
+   SECURE,
+   NON_SECURE,
+} mmu_secure_Type;
+
+/* Region access attributes */
+typedef enum
+{
+   NO_ACCESS,
+   RW,
+   READ,
+} mmu_access_Type;
+
+/* Memory Region definition */
+typedef struct RegionStruct {
+    mmu_region_size_Type rg_t;
+    mmu_memory_Type mem_t;
+    uint8_t domain;
+    mmu_cacheability_Type inner_norm_t;
+    mmu_cacheability_Type outer_norm_t;
+    mmu_ecc_check_Type e_t;
+    mmu_execute_Type xn_t;
+    mmu_global_Type g_t;
+    mmu_secure_Type sec_t;
+    mmu_access_Type priv_t;
+    mmu_access_Type user_t;
+    mmu_shared_Type sh_t;
+
+} mmu_region_attributes_Type;
+
+//Following macros define the descriptors and attributes
+//Sect_Normal. Outer & inner wb/wa, non-shareable, executable, rw, domain 0
+#define section_normal(descriptor_l1, region)     region.rg_t = SECTION; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = WB_WA; \
+                                   region.outer_norm_t = WB_WA; \
+                                   region.mem_t = NORMAL; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = EXECUTE; \
+                                   region.priv_t = RW; \
+                                   region.user_t = RW; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetSectionDescriptor(&descriptor_l1, region);
+
+//Sect_Normal_NC. Outer & inner non-cacheable, non-shareable, executable, rw, domain 0
+#define section_normal_nc(descriptor_l1, region)     region.rg_t = SECTION; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = NON_CACHEABLE; \
+                                   region.outer_norm_t = NON_CACHEABLE; \
+                                   region.mem_t = NORMAL; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = EXECUTE; \
+                                   region.priv_t = RW; \
+                                   region.user_t = RW; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetSectionDescriptor(&descriptor_l1, region);
+
+//Sect_Normal_Cod. Outer & inner wb/wa, non-shareable, executable, ro, domain 0
+#define section_normal_cod(descriptor_l1, region) region.rg_t = SECTION; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = WB_WA; \
+                                   region.outer_norm_t = WB_WA; \
+                                   region.mem_t = NORMAL; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = EXECUTE; \
+                                   region.priv_t = READ; \
+                                   region.user_t = READ; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetSectionDescriptor(&descriptor_l1, region);
+
+//Sect_Normal_RO. Sect_Normal_Cod, but not executable
+#define section_normal_ro(descriptor_l1, region)  region.rg_t = SECTION; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = WB_WA; \
+                                   region.outer_norm_t = WB_WA; \
+                                   region.mem_t = NORMAL; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = NON_EXECUTE; \
+                                   region.priv_t = READ; \
+                                   region.user_t = READ; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetSectionDescriptor(&descriptor_l1, region);
+
+//Sect_Normal_RW. Sect_Normal_Cod, but writeable and not executable
+#define section_normal_rw(descriptor_l1, region) region.rg_t = SECTION; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = WB_WA; \
+                                   region.outer_norm_t = WB_WA; \
+                                   region.mem_t = NORMAL; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = NON_EXECUTE; \
+                                   region.priv_t = RW; \
+                                   region.user_t = RW; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetSectionDescriptor(&descriptor_l1, region);
+//Sect_SO. Strongly-ordered (therefore shareable), not executable, rw, domain 0, base addr 0
+#define section_so(descriptor_l1, region) region.rg_t = SECTION; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = NON_CACHEABLE; \
+                                   region.outer_norm_t = NON_CACHEABLE; \
+                                   region.mem_t = STRONGLY_ORDERED; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = NON_EXECUTE; \
+                                   region.priv_t = RW; \
+                                   region.user_t = RW; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetSectionDescriptor(&descriptor_l1, region);
+
+//Sect_Device_RO. Device, non-shareable, non-executable, ro, domain 0, base addr 0
+#define section_device_ro(descriptor_l1, region) region.rg_t = SECTION; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = NON_CACHEABLE; \
+                                   region.outer_norm_t = NON_CACHEABLE; \
+                                   region.mem_t = STRONGLY_ORDERED; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = NON_EXECUTE; \
+                                   region.priv_t = READ; \
+                                   region.user_t = READ; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetSectionDescriptor(&descriptor_l1, region);
+
+//Sect_Device_RW. Sect_Device_RO, but writeable
+#define section_device_rw(descriptor_l1, region) region.rg_t = SECTION; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = NON_CACHEABLE; \
+                                   region.outer_norm_t = NON_CACHEABLE; \
+                                   region.mem_t = STRONGLY_ORDERED; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = NON_EXECUTE; \
+                                   region.priv_t = RW; \
+                                   region.user_t = RW; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetSectionDescriptor(&descriptor_l1, region);
+//Page_4k_Device_RW.  Shared device, not executable, rw, domain 0
+#define page4k_device_rw(descriptor_l1, descriptor_l2, region) region.rg_t = PAGE_4k; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = NON_CACHEABLE; \
+                                   region.outer_norm_t = NON_CACHEABLE; \
+                                   region.mem_t = SHARED_DEVICE; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = NON_EXECUTE; \
+                                   region.priv_t = RW; \
+                                   region.user_t = RW; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetPageDescriptor(&descriptor_l1, &descriptor_l2, region);
+
+//Page_64k_Device_RW.  Shared device, not executable, rw, domain 0
+#define page64k_device_rw(descriptor_l1, descriptor_l2, region)  region.rg_t = PAGE_64k; \
+                                   region.domain = 0x0; \
+                                   region.e_t = ECC_DISABLED; \
+                                   region.g_t = GLOBAL; \
+                                   region.inner_norm_t = NON_CACHEABLE; \
+                                   region.outer_norm_t = NON_CACHEABLE; \
+                                   region.mem_t = SHARED_DEVICE; \
+                                   region.sec_t = SECURE; \
+                                   region.xn_t = NON_EXECUTE; \
+                                   region.priv_t = RW; \
+                                   region.user_t = RW; \
+                                   region.sh_t = NON_SHARED; \
+                                   MMU_GetPageDescriptor(&descriptor_l1, &descriptor_l2, region);
+
+/** \brief  Set section execution-never attribute
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]                xn  Section execution-never attribute : EXECUTE , NON_EXECUTE.
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_XNSection(uint32_t *descriptor_l1, mmu_execute_Type xn)
+{
+  *descriptor_l1 &= SECTION_XN_MASK;
+  *descriptor_l1 |= ((xn & 0x1) << SECTION_XN_SHIFT);
+  return 0;
+}
+
+/** \brief  Set section domain
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]            domain  Section domain
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_DomainSection(uint32_t *descriptor_l1, uint8_t domain)
+{
+  *descriptor_l1 &= SECTION_DOMAIN_MASK;
+  *descriptor_l1 |= ((domain & 0xF) << SECTION_DOMAIN_SHIFT);
+  return 0;
+}
+
+/** \brief  Set section parity check
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]              p_bit Parity check: ECC_DISABLED, ECC_ENABLED
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_PSection(uint32_t *descriptor_l1, mmu_ecc_check_Type p_bit)
+{
+  *descriptor_l1 &= SECTION_P_MASK;
+  *descriptor_l1 |= ((p_bit & 0x1) << SECTION_P_SHIFT);
+  return 0;
+}
+
+/** \brief  Set section access privileges
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]              user  User Level Access: NO_ACCESS, RW, READ
+  \param [in]              priv  Privilege Level Access: NO_ACCESS, RW, READ
+  \param [in]               afe  Access flag enable
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_APSection(uint32_t *descriptor_l1, mmu_access_Type user, mmu_access_Type priv, uint32_t afe)
+{
+  uint32_t ap = 0;
+
+  if (afe == 0) { //full access
+    if ((priv == NO_ACCESS) && (user == NO_ACCESS)) { ap = 0x0; }
+    else if ((priv == RW) && (user == NO_ACCESS))   { ap = 0x1; }
+    else if ((priv == RW) && (user == READ))        { ap = 0x2; }
+    else if ((priv == RW) && (user == RW))          { ap = 0x3; }
+    else if ((priv == READ) && (user == NO_ACCESS)) { ap = 0x5; }
+    else if ((priv == READ) && (user == READ))      { ap = 0x7; }
+  }
+
+  else { //Simplified access
+    if ((priv == RW) && (user == NO_ACCESS))        { ap = 0x1; }
+    else if ((priv == RW) && (user == RW))          { ap = 0x3; }
+    else if ((priv == READ) && (user == NO_ACCESS)) { ap = 0x5; }
+    else if ((priv == READ) && (user == READ))      { ap = 0x7; }
+  }
+
+  *descriptor_l1 &= SECTION_AP_MASK;
+  *descriptor_l1 |= (ap & 0x3) << SECTION_AP_SHIFT;
+  *descriptor_l1 |= ((ap & 0x4)>>2) << SECTION_AP2_SHIFT;
+
+  return 0;
+}
+
+/** \brief  Set section shareability
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]             s_bit  Section shareability: NON_SHARED, SHARED
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_SharedSection(uint32_t *descriptor_l1, mmu_shared_Type s_bit)
+{
+  *descriptor_l1 &= SECTION_S_MASK;
+  *descriptor_l1 |= ((s_bit & 0x1) << SECTION_S_SHIFT);
+  return 0;
+}
+
+/** \brief  Set section Global attribute
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]             g_bit  Section attribute: GLOBAL, NON_GLOBAL
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_GlobalSection(uint32_t *descriptor_l1, mmu_global_Type g_bit)
+{
+  *descriptor_l1 &= SECTION_NG_MASK;
+  *descriptor_l1 |= ((g_bit & 0x1) << SECTION_NG_SHIFT);
+  return 0;
+}
+
+/** \brief  Set section Security attribute
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]             s_bit  Section Security attribute: SECURE, NON_SECURE
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_SecureSection(uint32_t *descriptor_l1, mmu_secure_Type s_bit)
+{
+  *descriptor_l1 &= SECTION_NS_MASK;
+  *descriptor_l1 |= ((s_bit & 0x1) << SECTION_NS_SHIFT);
+  return 0;
+}
+
+/* Page 4k or 64k */
+/** \brief  Set 4k/64k page execution-never attribute
+
+  \param [out]    descriptor_l2  L2 descriptor.
+  \param [in]                xn  Page execution-never attribute : EXECUTE , NON_EXECUTE.
+  \param [in]              page  Page size: PAGE_4k, PAGE_64k,
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_XNPage(uint32_t *descriptor_l2, mmu_execute_Type xn, mmu_region_size_Type page)
+{
+  if (page == PAGE_4k)
+  {
+      *descriptor_l2 &= PAGE_XN_4K_MASK;
+      *descriptor_l2 |= ((xn & 0x1) << PAGE_XN_4K_SHIFT);
+  }
+  else
+  {
+      *descriptor_l2 &= PAGE_XN_64K_MASK;
+      *descriptor_l2 |= ((xn & 0x1) << PAGE_XN_64K_SHIFT);
+  }
+  return 0;
+}
+
+/** \brief  Set 4k/64k page domain
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]            domain  Page domain
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_DomainPage(uint32_t *descriptor_l1, uint8_t domain)
+{
+  *descriptor_l1 &= PAGE_DOMAIN_MASK;
+  *descriptor_l1 |= ((domain & 0xf) << PAGE_DOMAIN_SHIFT);
+  return 0;
+}
+
+/** \brief  Set 4k/64k page parity check
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]              p_bit Parity check: ECC_DISABLED, ECC_ENABLED
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_PPage(uint32_t *descriptor_l1, mmu_ecc_check_Type p_bit)
+{
+  *descriptor_l1 &= SECTION_P_MASK;
+  *descriptor_l1 |= ((p_bit & 0x1) << SECTION_P_SHIFT);
+  return 0;
+}
+
+/** \brief  Set 4k/64k page access privileges
+
+  \param [out]    descriptor_l2  L2 descriptor.
+  \param [in]              user  User Level Access: NO_ACCESS, RW, READ
+  \param [in]              priv  Privilege Level Access: NO_ACCESS, RW, READ
+  \param [in]               afe  Access flag enable
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_APPage(uint32_t *descriptor_l2, mmu_access_Type user, mmu_access_Type priv, uint32_t afe)
+{
+  uint32_t ap = 0;
+
+  if (afe == 0) { //full access
+    if ((priv == NO_ACCESS) && (user == NO_ACCESS)) { ap = 0x0; }
+    else if ((priv == RW) && (user == NO_ACCESS))   { ap = 0x1; }
+    else if ((priv == RW) && (user == READ))        { ap = 0x2; }
+    else if ((priv == RW) && (user == RW))          { ap = 0x3; }
+    else if ((priv == READ) && (user == NO_ACCESS)) { ap = 0x5; }
+    else if ((priv == READ) && (user == READ))      { ap = 0x6; }
+  }
+
+  else { //Simplified access
+    if ((priv == RW) && (user == NO_ACCESS))        { ap = 0x1; }
+    else if ((priv == RW) && (user == RW))          { ap = 0x3; }
+    else if ((priv == READ) && (user == NO_ACCESS)) { ap = 0x5; }
+    else if ((priv == READ) && (user == READ))      { ap = 0x7; }
+  }
+
+  *descriptor_l2 &= PAGE_AP_MASK;
+  *descriptor_l2 |= (ap & 0x3) << PAGE_AP_SHIFT;
+  *descriptor_l2 |= ((ap & 0x4)>>2) << PAGE_AP2_SHIFT;
+
+  return 0;
+}
+
+/** \brief  Set 4k/64k page shareability
+
+  \param [out]    descriptor_l2  L2 descriptor.
+  \param [in]             s_bit  4k/64k page shareability: NON_SHARED, SHARED
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_SharedPage(uint32_t *descriptor_l2, mmu_shared_Type s_bit)
+{
+  *descriptor_l2 &= PAGE_S_MASK;
+  *descriptor_l2 |= ((s_bit & 0x1) << PAGE_S_SHIFT);
+  return 0;
+}
+
+/** \brief  Set 4k/64k page Global attribute
+
+  \param [out]    descriptor_l2  L2 descriptor.
+  \param [in]             g_bit  4k/64k page attribute: GLOBAL, NON_GLOBAL
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_GlobalPage(uint32_t *descriptor_l2, mmu_global_Type g_bit)
+{
+  *descriptor_l2 &= PAGE_NG_MASK;
+  *descriptor_l2 |= ((g_bit & 0x1) << PAGE_NG_SHIFT);
+  return 0;
+}
+
+/** \brief  Set 4k/64k page Security attribute
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]             s_bit  4k/64k page Security attribute: SECURE, NON_SECURE
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_SecurePage(uint32_t *descriptor_l1, mmu_secure_Type s_bit)
+{
+  *descriptor_l1 &= PAGE_NS_MASK;
+  *descriptor_l1 |= ((s_bit & 0x1) << PAGE_NS_SHIFT);
+  return 0;
+}
+
+/** \brief  Set Section memory attributes
+
+  \param [out]    descriptor_l1  L1 descriptor.
+  \param [in]               mem  Section memory type: NORMAL, DEVICE, SHARED_DEVICE, NON_SHARED_DEVICE, STRONGLY_ORDERED
+  \param [in]             outer  Outer cacheability: NON_CACHEABLE, WB_WA, WT, WB_NO_WA,
+  \param [in]             inner  Inner cacheability: NON_CACHEABLE, WB_WA, WT, WB_NO_WA,
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_MemorySection(uint32_t *descriptor_l1, mmu_memory_Type mem, mmu_cacheability_Type outer, mmu_cacheability_Type inner)
+{
+  *descriptor_l1 &= SECTION_TEXCB_MASK;
+
+  if (STRONGLY_ORDERED == mem)
+  {
+    return 0;
+  }
+  else if (SHARED_DEVICE == mem)
+  {
+    *descriptor_l1 |= (1 << SECTION_B_SHIFT);
+  }
+  else if (NON_SHARED_DEVICE == mem)
+  {
+    *descriptor_l1 |= (1 << SECTION_TEX1_SHIFT);
+  }
+  else if (NORMAL == mem)
+  {
+   *descriptor_l1 |= 1 << SECTION_TEX2_SHIFT;
+   switch(inner)
+   {
+      case NON_CACHEABLE:
+        break;
+      case WB_WA:
+        *descriptor_l1 |= (1 << SECTION_B_SHIFT);
+        break;
+      case WT:
+        *descriptor_l1 |= 1 << SECTION_C_SHIFT;
+        break;
+      case WB_NO_WA:
+        *descriptor_l1 |= (1 << SECTION_B_SHIFT) | (1 << SECTION_C_SHIFT);
+        break;
+    }
+    switch(outer)
+    {
+      case NON_CACHEABLE:
+        break;
+      case WB_WA:
+        *descriptor_l1 |= (1 << SECTION_TEX0_SHIFT);
+        break;
+      case WT:
+        *descriptor_l1 |= 1 << SECTION_TEX1_SHIFT;
+        break;
+      case WB_NO_WA:
+        *descriptor_l1 |= (1 << SECTION_TEX0_SHIFT) | (1 << SECTION_TEX0_SHIFT);
+        break;
+    }
+  }
+  return 0;
+}
+
+/** \brief  Set 4k/64k page memory attributes
+
+  \param [out]    descriptor_l2  L2 descriptor.
+  \param [in]               mem  4k/64k page memory type: NORMAL, DEVICE, SHARED_DEVICE, NON_SHARED_DEVICE, STRONGLY_ORDERED
+  \param [in]             outer  Outer cacheability: NON_CACHEABLE, WB_WA, WT, WB_NO_WA,
+  \param [in]             inner  Inner cacheability: NON_CACHEABLE, WB_WA, WT, WB_NO_WA,
+  \param [in]              page  Page size
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_MemoryPage(uint32_t *descriptor_l2, mmu_memory_Type mem, mmu_cacheability_Type outer, mmu_cacheability_Type inner, mmu_region_size_Type page)
+{
+  *descriptor_l2 &= PAGE_4K_TEXCB_MASK;
+
+  if (page == PAGE_64k)
+  {
+    //same as section
+    MMU_MemorySection(descriptor_l2, mem, outer, inner);
+  }
+  else
+  {
+    if (STRONGLY_ORDERED == mem)
+    {
+      return 0;
+    }
+    else if (SHARED_DEVICE == mem)
+    {
+      *descriptor_l2 |= (1 << PAGE_4K_B_SHIFT);
+    }
+    else if (NON_SHARED_DEVICE == mem)
+    {
+      *descriptor_l2 |= (1 << PAGE_4K_TEX1_SHIFT);
+    }
+    else if (NORMAL == mem)
+    {
+      *descriptor_l2 |= 1 << PAGE_4K_TEX2_SHIFT;
+      switch(inner)
+      {
+        case NON_CACHEABLE:
+          break;
+        case WB_WA:
+          *descriptor_l2 |= (1 << PAGE_4K_B_SHIFT);
+          break;
+        case WT:
+          *descriptor_l2 |= 1 << PAGE_4K_C_SHIFT;
+          break;
+        case WB_NO_WA:
+          *descriptor_l2 |= (1 << PAGE_4K_B_SHIFT) | (1 << PAGE_4K_C_SHIFT);
+          break;
+      }
+      switch(outer)
+      {
+        case NON_CACHEABLE:
+          break;
+        case WB_WA:
+          *descriptor_l2 |= (1 << PAGE_4K_TEX0_SHIFT);
+          break;
+        case WT:
+          *descriptor_l2 |= 1 << PAGE_4K_TEX1_SHIFT;
+          break;
+        case WB_NO_WA:
+          *descriptor_l2 |= (1 << PAGE_4K_TEX0_SHIFT) | (1 << PAGE_4K_TEX0_SHIFT);
+          break;
+      }
+    }
+  }
+
+  return 0;
+}
+
+/** \brief  Create a L1 section descriptor
+
+  \param [out]     descriptor  L1 descriptor
+  \param [in]      reg  Section attributes
+  
+  \return          0
+*/
+__STATIC_INLINE int MMU_GetSectionDescriptor(uint32_t *descriptor, mmu_region_attributes_Type reg)
+{
+  *descriptor  = 0;
+
+  MMU_MemorySection(descriptor, reg.mem_t, reg.outer_norm_t, reg.inner_norm_t);
+  MMU_XNSection(descriptor,reg.xn_t);
+  MMU_DomainSection(descriptor, reg.domain);
+  MMU_PSection(descriptor, reg.e_t);
+  MMU_APSection(descriptor, reg.priv_t, reg.user_t, 1);
+  MMU_SharedSection(descriptor,reg.sh_t);
+  MMU_GlobalSection(descriptor,reg.g_t);
+  MMU_SecureSection(descriptor,reg.sec_t);
+  *descriptor &= SECTION_MASK;
+  *descriptor |= SECTION_DESCRIPTOR;
+ 
+  return 0;
+}
+
+
+/** \brief  Create a L1 and L2 4k/64k page descriptor
+
+  \param [out]       descriptor  L1 descriptor
+  \param [out]      descriptor2  L2 descriptor
+  \param [in]               reg  4k/64k page attributes
+
+  \return          0
+*/
+__STATIC_INLINE int MMU_GetPageDescriptor(uint32_t *descriptor, uint32_t *descriptor2, mmu_region_attributes_Type reg)
+{
+  *descriptor  = 0;
+  *descriptor2 = 0;
+
+  switch (reg.rg_t)
+  {
+    case PAGE_4k:
+      MMU_MemoryPage(descriptor2, reg.mem_t, reg.outer_norm_t, reg.inner_norm_t, PAGE_4k);
+      MMU_XNPage(descriptor2, reg.xn_t, PAGE_4k);
+      MMU_DomainPage(descriptor, reg.domain);
+      MMU_PPage(descriptor, reg.e_t);
+      MMU_APPage(descriptor2, reg.priv_t, reg.user_t, 1);
+      MMU_SharedPage(descriptor2,reg.sh_t);
+      MMU_GlobalPage(descriptor2,reg.g_t);
+      MMU_SecurePage(descriptor,reg.sec_t);
+      *descriptor &= PAGE_L1_MASK;
+      *descriptor |= PAGE_L1_DESCRIPTOR;
+      *descriptor2 &= PAGE_L2_4K_MASK;
+      *descriptor2 |= PAGE_L2_4K_DESC;
+      break;
+
+    case PAGE_64k:
+      MMU_MemoryPage(descriptor2, reg.mem_t, reg.outer_norm_t, reg.inner_norm_t, PAGE_64k);
+      MMU_XNPage(descriptor2, reg.xn_t, PAGE_64k);
+      MMU_DomainPage(descriptor, reg.domain);
+      MMU_PPage(descriptor, reg.e_t);
+      MMU_APPage(descriptor2, reg.priv_t, reg.user_t, 1);
+      MMU_SharedPage(descriptor2,reg.sh_t);
+      MMU_GlobalPage(descriptor2,reg.g_t);
+      MMU_SecurePage(descriptor,reg.sec_t);
+      *descriptor &= PAGE_L1_MASK;
+      *descriptor |= PAGE_L1_DESCRIPTOR;
+      *descriptor2 &= PAGE_L2_64K_MASK;
+      *descriptor2 |= PAGE_L2_64K_DESC;
+      break;
+
+    case SECTION:
+      //error
+      break;
+  }
+  
+  return 0;
+}
+
+/** \brief  Create a 1MB Section
+
+  \param [in]               ttb  Translation table base address
+  \param [in]      base_address  Section base address
+  \param [in]             count  Number of sections to create
+  \param [in]     descriptor_l1  L1 descriptor (region attributes)
+
+*/
+__STATIC_INLINE void MMU_TTSection(uint32_t *ttb, uint32_t base_address, uint32_t count, uint32_t descriptor_l1)
+{
+  uint32_t offset;
+  uint32_t entry;
+  uint32_t i;
+
+  offset = base_address >> 20;
+  entry  = (base_address & 0xFFF00000) | descriptor_l1;
+
+  //4 bytes aligned
+  ttb = ttb + offset;
+
+  for (i = 0; i < count; i++ )
+  {
+    //4 bytes aligned
+    *ttb++ = entry;
+    entry += OFFSET_1M;
+  }
+}
+
+/** \brief  Create a 4k page entry
+
+  \param [in]               ttb  L1 table base address
+  \param [in]      base_address  4k base address
+  \param [in]             count  Number of 4k pages to create
+  \param [in]     descriptor_l1  L1 descriptor (region attributes)
+  \param [in]            ttb_l2  L2 table base address
+  \param [in]     descriptor_l2  L2 descriptor (region attributes)
+
+*/
+__STATIC_INLINE void MMU_TTPage4k(uint32_t *ttb, uint32_t base_address, uint32_t count, uint32_t descriptor_l1, uint32_t *ttb_l2, uint32_t descriptor_l2 )
+{
+
+  uint32_t offset, offset2;
+  uint32_t entry, entry2;
+  uint32_t i;
+
+  offset = base_address >> 20;
+  entry  = ((int)ttb_l2 & 0xFFFFFC00) | descriptor_l1;
+
+  //4 bytes aligned
+  ttb += offset;
+  //create l1_entry
+  *ttb = entry;
+
+  offset2 = (base_address & 0xff000) >> 12;
+  ttb_l2 += offset2;
+  entry2 = (base_address & 0xFFFFF000) | descriptor_l2;
+  for (i = 0; i < count; i++ )
+  {
+    //4 bytes aligned
+    *ttb_l2++ = entry2;
+    entry2 += OFFSET_4K;
+  }
+}
+
+/** \brief  Create a 64k page entry
+
+  \param [in]               ttb  L1 table base address
+  \param [in]      base_address  64k base address
+  \param [in]             count  Number of 64k pages to create
+  \param [in]     descriptor_l1  L1 descriptor (region attributes)
+  \param [in]            ttb_l2  L2 table base address
+  \param [in]     descriptor_l2  L2 descriptor (region attributes)
+
+*/
+__STATIC_INLINE void MMU_TTPage64k(uint32_t *ttb, uint32_t base_address, uint32_t count, uint32_t descriptor_l1, uint32_t *ttb_l2, uint32_t descriptor_l2 )
+{
+  uint32_t offset, offset2;
+  uint32_t entry, entry2;
+  uint32_t i,j;
+
+
+  offset = base_address >> 20;
+  entry  = ((int)ttb_l2 & 0xFFFFFC00) | descriptor_l1;
+
+  //4 bytes aligned
+  ttb += offset;
+  //create l1_entry
+  *ttb = entry;
+
+  offset2 = (base_address & 0xff000) >> 12;
+  ttb_l2 += offset2;
+  entry2 = (base_address & 0xFFFF0000) | descriptor_l2;
+  for (i = 0; i < count; i++ )
+  {
+    //create 16 entries
+    for (j = 0; j < 16; j++)
+    {
+      //4 bytes aligned
+      *ttb_l2++ = entry2;
+    }
+    entry2 += OFFSET_64K;
+  }
+}
+
+/** \brief  Enable MMU
+*/
+__STATIC_INLINE void MMU_Enable(void)
+{
+  // Set M bit 0 to enable the MMU
+  // Set AFE bit to enable simplified access permissions model
+  // Clear TRE bit to disable TEX remap and A bit to disable strict alignment fault checking
+  __set_SCTLR( (__get_SCTLR() & ~(1 << 28) & ~(1 << 1)) | 1 | (1 << 29));
+  __ISB();
+}
+
+/** \brief  Disable MMU
+*/
+__STATIC_INLINE void MMU_Disable(void)
+{
+  // Clear M bit 0 to disable the MMU
+  __set_SCTLR( __get_SCTLR() & ~1);
+  __ISB();
+}
+
+/** \brief  Invalidate entire unified TLB
+*/
+
+__STATIC_INLINE void MMU_InvalidateTLB(void)
+{
+  __set_TLBIALL(0);
+  __DSB();     //ensure completion of the invalidation
+  __ISB();     //ensure instruction fetch path sees new state
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CORE_CA_H_DEPENDANT */
+
+#endif /* __CMSIS_GENERIC */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/irq_ctrl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/irq_ctrl.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/irq_ctrl.h	(revision 429)
@@ -0,0 +1,186 @@
+/**************************************************************************//**
+ * @file     irq_ctrl.h
+ * @brief    Interrupt Controller API header file
+ * @version  V1.0.0
+ * @date     23. June 2017
+ ******************************************************************************/
+/*
+ * Copyright (c) 2017 ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if   defined ( __ICCARM__ )
+  #pragma system_include         /* treat file as system include file for MISRA check */
+#elif defined (__clang__)
+  #pragma clang system_header   /* treat file as system include file */
+#endif
+
+#ifndef IRQ_CTRL_H_
+#define IRQ_CTRL_H_
+
+#include <stdint.h>
+
+#ifndef IRQHANDLER_T
+#define IRQHANDLER_T
+/// Interrupt handler data type
+typedef void (*IRQHandler_t) (void);
+#endif
+
+#ifndef IRQN_ID_T
+#define IRQN_ID_T
+/// Interrupt ID number data type
+typedef int32_t IRQn_ID_t;
+#endif
+
+/* Interrupt mode bit-masks */
+#define IRQ_MODE_TRIG_Pos           (0U)
+#define IRQ_MODE_TRIG_Msk           (0x07UL /*<< IRQ_MODE_TRIG_Pos*/)
+#define IRQ_MODE_TRIG_LEVEL         (0x00UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: level triggered interrupt
+#define IRQ_MODE_TRIG_LEVEL_LOW     (0x01UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: low level triggered interrupt
+#define IRQ_MODE_TRIG_LEVEL_HIGH    (0x02UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: high level triggered interrupt
+#define IRQ_MODE_TRIG_EDGE          (0x04UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: edge triggered interrupt
+#define IRQ_MODE_TRIG_EDGE_RISING   (0x05UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: rising edge triggered interrupt
+#define IRQ_MODE_TRIG_EDGE_FALLING  (0x06UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: falling edge triggered interrupt
+#define IRQ_MODE_TRIG_EDGE_BOTH     (0x07UL /*<< IRQ_MODE_TRIG_Pos*/) ///< Trigger: rising and falling edge triggered interrupt
+
+#define IRQ_MODE_TYPE_Pos           (3U)
+#define IRQ_MODE_TYPE_Msk           (0x01UL << IRQ_MODE_TYPE_Pos)
+#define IRQ_MODE_TYPE_IRQ           (0x00UL << IRQ_MODE_TYPE_Pos)     ///< Type: interrupt source triggers CPU IRQ line
+#define IRQ_MODE_TYPE_FIQ           (0x01UL << IRQ_MODE_TYPE_Pos)     ///< Type: interrupt source triggers CPU FIQ line
+
+#define IRQ_MODE_DOMAIN_Pos         (4U)
+#define IRQ_MODE_DOMAIN_Msk         (0x01UL << IRQ_MODE_DOMAIN_Pos)
+#define IRQ_MODE_DOMAIN_NONSECURE   (0x00UL << IRQ_MODE_DOMAIN_Pos)   ///< Domain: interrupt is targeting non-secure domain
+#define IRQ_MODE_DOMAIN_SECURE      (0x01UL << IRQ_MODE_DOMAIN_Pos)   ///< Domain: interrupt is targeting secure domain
+
+#define IRQ_MODE_CPU_Pos            (5U)
+#define IRQ_MODE_CPU_Msk            (0xFFUL << IRQ_MODE_CPU_Pos)
+#define IRQ_MODE_CPU_ALL            (0x00UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets all CPUs
+#define IRQ_MODE_CPU_0              (0x01UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets CPU 0
+#define IRQ_MODE_CPU_1              (0x02UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets CPU 1
+#define IRQ_MODE_CPU_2              (0x04UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets CPU 2
+#define IRQ_MODE_CPU_3              (0x08UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets CPU 3
+#define IRQ_MODE_CPU_4              (0x10UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets CPU 4
+#define IRQ_MODE_CPU_5              (0x20UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets CPU 5
+#define IRQ_MODE_CPU_6              (0x40UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets CPU 6
+#define IRQ_MODE_CPU_7              (0x80UL << IRQ_MODE_CPU_Pos)      ///< CPU: interrupt targets CPU 7
+
+#define IRQ_MODE_ERROR              (0x80000000UL)                    ///< Bit indicating mode value error
+
+/* Interrupt priority bit-masks */
+#define IRQ_PRIORITY_Msk            (0x0000FFFFUL)                    ///< Interrupt priority value bit-mask
+#define IRQ_PRIORITY_ERROR          (0x80000000UL)                    ///< Bit indicating priority value error
+
+/// Initialize interrupt controller.
+/// \return 0 on success, -1 on error.
+int32_t IRQ_Initialize (void);
+
+/// Register interrupt handler.
+/// \param[in]     irqn          interrupt ID number
+/// \param[in]     handler       interrupt handler function address
+/// \return 0 on success, -1 on error.
+int32_t IRQ_SetHandler (IRQn_ID_t irqn, IRQHandler_t handler);
+
+/// Get the registered interrupt handler.
+/// \param[in]     irqn          interrupt ID number
+/// \return registered interrupt handler function address.
+IRQHandler_t IRQ_GetHandler (IRQn_ID_t irqn);
+
+/// Enable interrupt.
+/// \param[in]     irqn          interrupt ID number
+/// \return 0 on success, -1 on error.
+int32_t IRQ_Enable (IRQn_ID_t irqn);
+
+/// Disable interrupt.
+/// \param[in]     irqn          interrupt ID number
+/// \return 0 on success, -1 on error.
+int32_t IRQ_Disable (IRQn_ID_t irqn);
+
+/// Get interrupt enable state.
+/// \param[in]     irqn          interrupt ID number
+/// \return 0 - interrupt is disabled, 1 - interrupt is enabled.
+uint32_t IRQ_GetEnableState (IRQn_ID_t irqn);
+
+/// Configure interrupt request mode.
+/// \param[in]     irqn          interrupt ID number
+/// \param[in]     mode          mode configuration
+/// \return 0 on success, -1 on error.
+int32_t IRQ_SetMode (IRQn_ID_t irqn, uint32_t mode);
+
+/// Get interrupt mode configuration.
+/// \param[in]     irqn          interrupt ID number
+/// \return current interrupt mode configuration with optional IRQ_MODE_ERROR bit set.
+uint32_t IRQ_GetMode (IRQn_ID_t irqn);
+
+/// Get ID number of current interrupt request (IRQ).
+/// \return interrupt ID number.
+IRQn_ID_t IRQ_GetActiveIRQ (void);
+
+/// Get ID number of current fast interrupt request (FIQ).
+/// \return interrupt ID number.
+IRQn_ID_t IRQ_GetActiveFIQ (void);
+
+/// Signal end of interrupt processing.
+/// \param[in]     irqn          interrupt ID number
+/// \return 0 on success, -1 on error.
+int32_t IRQ_EndOfInterrupt (IRQn_ID_t irqn);
+
+/// Set interrupt pending flag.
+/// \param[in]     irqn          interrupt ID number
+/// \return 0 on success, -1 on error.
+int32_t IRQ_SetPending (IRQn_ID_t irqn);
+
+/// Get interrupt pending flag.
+/// \param[in]     irqn          interrupt ID number
+/// \return 0 - interrupt is not pending, 1 - interrupt is pending.
+uint32_t IRQ_GetPending (IRQn_ID_t irqn);
+
+/// Clear interrupt pending flag.
+/// \param[in]     irqn          interrupt ID number
+/// \return 0 on success, -1 on error.
+int32_t IRQ_ClearPending (IRQn_ID_t irqn);
+
+/// Set interrupt priority value.
+/// \param[in]     irqn          interrupt ID number
+/// \param[in]     priority      interrupt priority value
+/// \return 0 on success, -1 on error.
+int32_t IRQ_SetPriority (IRQn_ID_t irqn, uint32_t priority);
+
+/// Get interrupt priority.
+/// \param[in]     irqn          interrupt ID number
+/// \return current interrupt priority value with optional IRQ_PRIORITY_ERROR bit set.
+uint32_t IRQ_GetPriority (IRQn_ID_t irqn);
+
+/// Set priority masking threshold.
+/// \param[in]     priority      priority masking threshold value
+/// \return 0 on success, -1 on error.
+int32_t IRQ_SetPriorityMask (uint32_t priority);
+
+/// Get priority masking threshold
+/// \return current priority masking threshold value with optional IRQ_PRIORITY_ERROR bit set.
+uint32_t IRQ_GetPriorityMask (void);
+
+/// Set priority grouping field split point
+/// \param[in]     bits          number of MSB bits included in the group priority field comparison
+/// \return 0 on success, -1 on error.
+int32_t IRQ_SetPriorityGroupBits (uint32_t bits);
+
+/// Get priority grouping field split point
+/// \return current number of MSB bits included in the group priority field comparison with
+///         optional IRQ_PRIORITY_ERROR bit set.
+uint32_t IRQ_GetPriorityGroupBits (void);
+
+#endif  // IRQ_CTRL_H_
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/irq_ctrl_gic.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/irq_ctrl_gic.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/TARGET_CORTEX_A/irq_ctrl_gic.c	(revision 429)
@@ -0,0 +1,410 @@
+/**************************************************************************//**
+ * @file     irq_ctrl_gic.c
+ * @brief    Interrupt controller handling implementation for GIC
+ * @version  V1.0.1
+ * @date     9. April 2018
+ ******************************************************************************/
+/*
+ * Copyright (c) 2017 ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stddef.h>
+
+#include "RTE_Components.h"
+#include CMSIS_device_header
+
+#include "irq_ctrl.h"
+
+#if defined(__GIC_PRESENT) && (__GIC_PRESENT == 1U)
+
+/// Number of implemented interrupt lines
+#ifndef IRQ_GIC_LINE_COUNT
+#define IRQ_GIC_LINE_COUNT      (1020U)
+#endif
+
+extern IRQHandler_t IRQTable[IRQ_GIC_LINE_COUNT];
+static uint32_t     IRQ_ID0;
+
+/// Initialize interrupt controller.
+__WEAK int32_t IRQ_Initialize (void) {
+  uint32_t i;
+
+  for (i = 0U; i < IRQ_GIC_LINE_COUNT; i++) {
+    IRQTable[i] = (IRQHandler_t)NULL;
+  }
+  GIC_Enable();
+  return (0);
+}
+
+
+/// Register interrupt handler.
+__WEAK int32_t IRQ_SetHandler (IRQn_ID_t irqn, IRQHandler_t handler) {
+  int32_t status;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    IRQTable[irqn] = handler;
+    status =  0;
+  } else {
+    status = -1;
+  }
+
+  return (status);
+}
+
+
+/// Get the registered interrupt handler.
+__WEAK IRQHandler_t IRQ_GetHandler (IRQn_ID_t irqn) {
+  IRQHandler_t h;
+
+  // Ignore CPUID field (software generated interrupts)
+  irqn &= 0x3FFU;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    h = IRQTable[irqn];
+  } else {
+    h = (IRQHandler_t)0;
+  }
+
+  return (h);
+}
+
+
+/// Enable interrupt.
+__WEAK int32_t IRQ_Enable (IRQn_ID_t irqn) {
+  int32_t status;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    GIC_EnableIRQ ((IRQn_Type)irqn);
+    status = 0;
+  } else {
+    status = -1;
+  }
+
+  return (status);
+}
+
+
+/// Disable interrupt.
+__WEAK int32_t IRQ_Disable (IRQn_ID_t irqn) {
+  int32_t status;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    GIC_DisableIRQ ((IRQn_Type)irqn);
+    status = 0;
+  } else {
+    status = -1;
+  }
+
+  return (status);
+}
+
+
+/// Get interrupt enable state.
+__WEAK uint32_t IRQ_GetEnableState (IRQn_ID_t irqn) {
+  uint32_t enable;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    enable = GIC_GetEnableIRQ((IRQn_Type)irqn);
+  } else {
+    enable = 0U;
+  }
+
+  return (enable);
+}
+
+
+/// Configure interrupt request mode.
+__WEAK int32_t IRQ_SetMode (IRQn_ID_t irqn, uint32_t mode) {
+  uint32_t val;
+  uint8_t cfg;
+  uint8_t secure;
+  uint8_t cpu;
+  int32_t status = 0;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    // Check triggering mode
+    val = (mode & IRQ_MODE_TRIG_Msk);
+
+    if (val == IRQ_MODE_TRIG_LEVEL) {
+      cfg = 0x00U;
+    } else if (val == IRQ_MODE_TRIG_EDGE) {
+      cfg = 0x02U;
+    } else {
+      cfg = 0x00U;
+      status = -1;
+    }
+
+    // Check interrupt type
+    val = mode & IRQ_MODE_TYPE_Msk;
+
+    if (val != IRQ_MODE_TYPE_IRQ) {
+      status = -1;
+    }
+
+    // Check interrupt domain
+    val = mode & IRQ_MODE_DOMAIN_Msk;
+
+    if (val == IRQ_MODE_DOMAIN_NONSECURE) {
+      secure = 0U;
+    } else {
+      // Check security extensions support
+      val = GIC_DistributorInfo() & (1UL << 10U);
+
+      if (val != 0U) {
+        // Security extensions are supported
+        secure = 1U;
+      } else {
+        secure = 0U;
+        status = -1;
+      }
+    }
+
+    // Check interrupt CPU targets
+    val = mode & IRQ_MODE_CPU_Msk;
+
+    if (val == IRQ_MODE_CPU_ALL) {
+      cpu = 0xFFU;
+    } else {
+      cpu = val >> IRQ_MODE_CPU_Pos;
+    }
+
+    // Apply configuration if no mode error
+    if (status == 0) {
+      GIC_SetConfiguration((IRQn_Type)irqn, cfg);
+      GIC_SetTarget       ((IRQn_Type)irqn, cpu);
+
+      if (secure != 0U) {
+        GIC_SetGroup ((IRQn_Type)irqn, secure);
+      }
+    }
+  }
+
+  return (status);
+}
+
+
+/// Get interrupt mode configuration.
+__WEAK uint32_t IRQ_GetMode (IRQn_ID_t irqn) {
+  uint32_t mode;
+  uint32_t val;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    mode = IRQ_MODE_TYPE_IRQ;
+
+    // Get trigger mode
+    val = GIC_GetConfiguration((IRQn_Type)irqn);
+
+    if ((val & 2U) != 0U) {
+      // Corresponding interrupt is edge triggered
+      mode |= IRQ_MODE_TRIG_EDGE;
+    } else {
+      // Corresponding interrupt is level triggered
+      mode |= IRQ_MODE_TRIG_LEVEL;
+    }
+
+    // Get interrupt CPU targets
+    mode |= GIC_GetTarget ((IRQn_Type)irqn) << IRQ_MODE_CPU_Pos;
+
+  } else {
+    mode = IRQ_MODE_ERROR;
+  }
+
+  return (mode);
+}
+
+
+/// Get ID number of current interrupt request (IRQ).
+__WEAK IRQn_ID_t IRQ_GetActiveIRQ (void) {
+  IRQn_ID_t irqn;
+  uint32_t prio;
+
+  /* Dummy read to avoid GIC 390 errata 801120 */
+  GIC_GetHighPendingIRQ();
+
+  irqn = GIC_AcknowledgePending();
+
+  __DSB();
+
+  /* Workaround GIC 390 errata 733075 (GIC-390_Errata_Notice_v6.pdf, 09-Jul-2014)  */
+  /* The following workaround code is for a single-core system.  It would be       */
+  /* different in a multi-core system.                                             */
+  /* If the ID is 0 or 0x3FE or 0x3FF, then the GIC CPU interface may be locked-up */
+  /* so unlock it, otherwise service the interrupt as normal.                      */
+  /* Special IDs 1020=0x3FC and 1021=0x3FD are reserved values in GICv1 and GICv2  */
+  /* so will not occur here.                                                       */
+
+  if ((irqn == 0) || (irqn >= 0x3FE)) {
+    /* Unlock the CPU interface with a dummy write to Interrupt Priority Register */
+    prio = GIC_GetPriority((IRQn_Type)0);
+    GIC_SetPriority ((IRQn_Type)0, prio);
+
+    __DSB();
+
+    if ((irqn == 0U) && ((GIC_GetIRQStatus ((IRQn_Type)irqn) & 1U) != 0U) && (IRQ_ID0 == 0U)) {
+      /* If the ID is 0, is active and has not been seen before */
+      IRQ_ID0 = 1U;
+    }
+    /* End of Workaround GIC 390 errata 733075 */
+  }
+
+  return (irqn);
+}
+
+
+/// Get ID number of current fast interrupt request (FIQ).
+__WEAK IRQn_ID_t IRQ_GetActiveFIQ (void) {
+  return ((IRQn_ID_t)-1);
+}
+
+
+/// Signal end of interrupt processing.
+__WEAK int32_t IRQ_EndOfInterrupt (IRQn_ID_t irqn) {
+  int32_t status;
+  IRQn_Type irq = (IRQn_Type)irqn;
+
+  irqn &= 0x3FFU;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    GIC_EndInterrupt (irq);
+
+    if (irqn == 0) {
+      IRQ_ID0 = 0U;
+    }
+
+    status = 0;
+  } else {
+    status = -1;
+  }
+
+  return (status);
+}
+
+
+/// Set interrupt pending flag.
+__WEAK int32_t IRQ_SetPending (IRQn_ID_t irqn) {
+  int32_t status;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    GIC_SetPendingIRQ ((IRQn_Type)irqn);
+    status = 0;
+  } else {
+    status = -1;
+  }
+
+  return (status);
+}
+
+/// Get interrupt pending flag.
+__WEAK uint32_t IRQ_GetPending (IRQn_ID_t irqn) {
+  uint32_t pending;
+
+  if ((irqn >= 16) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    pending = GIC_GetPendingIRQ ((IRQn_Type)irqn);
+  } else {
+    pending = 0U;
+  }
+
+  return (pending & 1U);
+}
+
+
+/// Clear interrupt pending flag.
+__WEAK int32_t IRQ_ClearPending (IRQn_ID_t irqn) {
+  int32_t status;
+
+  if ((irqn >= 16) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    GIC_ClearPendingIRQ ((IRQn_Type)irqn);
+    status = 0;
+  } else {
+    status = -1;
+  }
+
+  return (status);
+}
+
+
+/// Set interrupt priority value.
+__WEAK int32_t IRQ_SetPriority (IRQn_ID_t irqn, uint32_t priority) {
+  int32_t status;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    GIC_SetPriority ((IRQn_Type)irqn, priority);
+    status = 0;
+  } else {
+    status = -1;
+  }
+
+  return (status);
+}
+
+
+/// Get interrupt priority.
+__WEAK uint32_t IRQ_GetPriority (IRQn_ID_t irqn) {
+  uint32_t priority;
+
+  if ((irqn >= 0) && (irqn < (IRQn_ID_t)IRQ_GIC_LINE_COUNT)) {
+    priority = GIC_GetPriority ((IRQn_Type)irqn);
+  } else {
+    priority = IRQ_PRIORITY_ERROR;
+  }
+
+  return (priority);
+}
+
+
+/// Set priority masking threshold.
+__WEAK int32_t IRQ_SetPriorityMask (uint32_t priority) {
+  GIC_SetInterfacePriorityMask (priority);
+  return (0);
+}
+
+
+/// Get priority masking threshold
+__WEAK uint32_t IRQ_GetPriorityMask (void) {
+  return GIC_GetInterfacePriorityMask();
+}
+
+
+/// Set priority grouping field split point
+__WEAK int32_t IRQ_SetPriorityGroupBits (uint32_t bits) {
+  int32_t status;
+
+  if (bits == IRQ_PRIORITY_Msk) {
+    bits = 7U;
+  }
+
+  if (bits < 8U) {
+    GIC_SetBinaryPoint (7U - bits);
+    status = 0;
+  } else {
+    status = -1;
+  }
+
+  return (status);
+}
+
+
+/// Get priority grouping field split point
+__WEAK uint32_t IRQ_GetPriorityGroupBits (void) {
+  uint32_t bp;
+
+  bp = GIC_GetBinaryPoint() & 0x07U;
+
+  return (7U - bp);
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/mbed_cmsis_conf.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/mbed_cmsis_conf.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/cmsis/mbed_cmsis_conf.h	(revision 429)
@@ -0,0 +1,35 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2012 ARM Limited
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef MBED_CMSIS_CONF_H
+#define MBED_CMSIS_CONF_H
+
+#ifndef MBED_CONF_TZ_PROCESS_STACK_SIZE
+#define MBED_CONF_TZ_PROCESS_STACK_SIZE  512
+#endif
+#ifndef MBED_CONF_TZ_PROCESS_STACK_SLOTS
+#define MBED_CONF_TZ_PROCESS_STACK_SLOTS  8
+#endif
+
+#define TZ_PROCESS_STACK_SLOTS  MBED_CONF_TZ_PROCESS_STACK_SLOTS
+#define TZ_PROCESS_STACK_SIZE  MBED_CONF_TZ_PROCESS_STACK_SIZE
+
+#endif /* MBED_CMSIS_CONF_H */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/analogin_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/analogin_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/analogin_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -25,9 +28,36 @@
 #endif
 
+/** Analogin hal structure. analogin_s is declared in the target's hal
+ */
 typedef struct analogin_s analogin_t;
 
-void     analogin_init    (analogin_t *obj, PinName pin);
-float    analogin_read    (analogin_t *obj);
+/**
+ * \defgroup hal_analogin Analogin hal functions
+ * @{
+ */
+
+/** Initialize the analogin peripheral
+ *
+ * Configures the pin used by analogin.
+ * @param obj The analogin object to initialize
+ * @param pin The analogin pin name
+ */
+void analogin_init(analogin_t *obj, PinName pin);
+
+/** Read the input voltage, represented as a float in the range [0.0, 1.0]
+ *
+ * @param obj The analogin object
+ * @return A floating value representing the current input voltage
+ */
+float analogin_read(analogin_t *obj);
+
+/** Read the value from analogin pin, represented as an unsigned 16bit value
+ *
+ * @param obj The analogin object
+ * @return An unsigned 16bit value representing the current input voltage
+ */
 uint16_t analogin_read_u16(analogin_t *obj);
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -38,2 +68,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/analogout_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/analogout_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/analogout_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -25,12 +28,58 @@
 #endif
 
+/** Analogout hal structure. dac_s is declared in the target's hal
+ */
 typedef struct dac_s dac_t;
 
-void     analogout_init     (dac_t *obj, PinName pin);
-void     analogout_free     (dac_t *obj);
-void     analogout_write    (dac_t *obj, float value);
-void     analogout_write_u16(dac_t *obj, uint16_t value);
-float    analogout_read     (dac_t *obj);
-uint16_t analogout_read_u16 (dac_t *obj);
+/**
+ * \defgroup hal_analogout Analogout hal functions
+ * @{
+ */
+
+/** Initialize the analogout peripheral
+ *
+ * Configures the pin used by analogout.
+ * @param obj The analogout object to initialize
+ * @param pin The analogout pin name
+ */
+void analogout_init(dac_t *obj, PinName pin);
+
+/** Release the analogout object
+ *
+ * Note: This is not currently used in the mbed-drivers
+ * @param obj The analogout object
+ */
+void analogout_free(dac_t *obj);
+
+/** Set the output voltage, specified as a percentage (float)
+ *
+ * @param obj The analogin object
+ * @param value The floating-point output voltage to be set
+ */
+void analogout_write(dac_t *obj, float value);
+
+/** Set the output voltage, specified as unsigned 16-bit
+ *
+ * @param obj The analogin object
+ * @param value The unsigned 16-bit output voltage to be set
+ */
+void analogout_write_u16(dac_t *obj, uint16_t value);
+
+/** Read the current voltage value on the pin
+ *
+ * @param obj The analogin object
+ * @return A floating-point value representing the current voltage on the pin,
+ *     measured as a percentage
+ */
+float analogout_read(dac_t *obj);
+
+/** Read the current voltage value on the pin, as a normalized unsigned 16bit value
+ *
+ * @param obj The analogin object
+ * @return An unsigned 16-bit value representing the current voltage on the pin
+ */
+uint16_t analogout_read_u16(dac_t *obj);
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -41,2 +90,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/buffer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/buffer.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/buffer.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2014-2015 ARM Limited
@@ -29,2 +32,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/can_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/can_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/can_api.h	(revision 429)
@@ -1,4 +1,7 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
- * Copyright (c) 2006-2013 ARM Limited
+ * Copyright (c) 2006-2016 ARM Limited
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,5 +26,5 @@
 #include "PinNames.h"
 #include "PeripheralNames.h"
-#include "can_helper.h"
+#include "hal/can_helper.h"
 
 #ifdef __cplusplus
@@ -56,4 +59,5 @@
 
 void          can_init     (can_t *obj, PinName rd, PinName td);
+void          can_init_freq(can_t *obj, PinName rd, PinName td, int hz);
 void          can_free     (can_t *obj);
 int           can_frequency(can_t *obj, int hz);
@@ -79,2 +83,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/can_helper.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/can_helper.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/can_helper.h	(revision 429)
@@ -0,0 +1,77 @@
+
+/** \addtogroup hal */
+/** @{*/
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_CAN_HELPER_H
+#define MBED_CAN_HELPER_H
+
+#if DEVICE_CAN
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ *
+ * \enum    CANFormat
+ *
+ * \brief   Values that represent CAN Format
+**/
+enum CANFormat {
+    CANStandard = 0,
+    CANExtended = 1,
+    CANAny = 2
+};
+typedef enum CANFormat CANFormat;
+
+/**
+ *
+ * \enum    CANType
+ *
+ * \brief   Values that represent CAN Type
+**/
+enum CANType {
+    CANData   = 0,
+    CANRemote = 1
+};
+typedef enum CANType CANType;
+
+/**
+ *
+ * \struct  CAN_Message
+ *
+ * \brief   Holder for single CAN message.
+ *
+**/
+struct CAN_Message {
+    unsigned int   id;                 // 29 bit identifier
+    unsigned char  data[8];            // Data field
+    unsigned char  len;                // Length of data field in bytes
+    CANFormat      format;             // Format ::CANFormat
+    CANType        type;               // Type ::CANType
+};
+typedef struct CAN_Message CAN_Message;
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
+
+#endif // MBED_CAN_HELPER_H
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/critical_section_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/critical_section_api.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/critical_section_api.h	(revision 429)
@@ -0,0 +1,107 @@
+/** \addtogroup hal */
+/** @{*/
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_CRITICAL_SECTION_API_H
+#define MBED_CRITICAL_SECTION_API_H
+
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup hal_critical Critical Section HAL functions
+ * @{
+ */
+
+/**
+ * Mark the start of a critical section
+ *
+ * This function will be called by core_util_critical_section_enter() each time
+ * the application requests to enter a critical section. The purpose of the
+ * critical section is to ensure mutual-exclusion synchronisation of the
+ * processor by preventing any change in processor control, the default
+ * behaviour requires storing the state of interrupts in the system before
+ * disabling them.
+ *
+ * The critical section code supports nesting. When a thread has entered a
+ * critical section it can make additional calls to
+ * core_util_critical_section_enter() without deadlocking itself. The critical
+ * section driver API tracks the number of nested calls to the critical section.
+ * The critical section will only be exited when
+ * core_util_critical_section_exit() has been called once for each time it
+ * entered the critical section.
+ *
+ * On the first call to enter a critical section this function MUST store the
+ * state of any interrupts or other application settings it will modify to
+ * facilitate the critical section.
+ *
+ * Each successive call to enter the critical section MUST ignore storing or
+ * modifying any application state.
+ *
+ * The default implementation of this function which will save the current state
+ * of interrupts before disabling them. This implementation can be found in
+ * mbed_critical_section_api.c. This behaviour is can be overridden on a per
+ * platform basis by providing a different implementation within the correct
+ * targets directory.
+ */
+void hal_critical_section_enter(void);
+
+
+/** Mark the end of a critical section.
+ *
+ * The purpose of this function is to restore any state that was modified upon
+ * entering the critical section, allowing other threads or interrupts to change
+ * the processor control.
+ *
+ * This function will be called once by core_util_critical_section_exit() per
+ * critical section on last call to exit. When called, the application MUST
+ * restore the saved interrupt/application state that was saved when entering
+ * the critical section.
+ *
+ * There is a default implementation of this function, it will restore the state
+ * of interrupts that were previously saved when hal_critical_section_enter was
+ * first called, this implementation can be found in
+ * mbed_critical_section_api.c. This behaviour is overridable by providing a
+ * different function implementation within the correct targets directory.
+ */
+void hal_critical_section_exit(void);
+
+
+/** Determine if the application is currently running in a critical section
+ *
+ * The purpose of this function is to inform the caller whether or not the
+ * application is running in a critical section. This is done by checking if
+ * the current interrupt state has been saved in the underlying implementation,
+ * this could also be done by checking the state of the interrupts at the time
+ * of calling.
+ *
+ *  @return  True if running in a critical section, false if not.
+ */
+bool hal_in_critical_section(void);
+
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MBED_CRITICAL_SECTION_API_H
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/dma_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/dma_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/dma_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2014-2015 ARM Limited
@@ -44,2 +47,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/ethernet_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/ethernet_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/ethernet_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -42,5 +45,5 @@
 int ethernet_send(void);
 
-// recieve from ethernet buffer, returning packet size, or 0 if no packet
+// receive from ethernet buffer, returning packet size, or 0 if no packet
 int ethernet_receive(void);
 
@@ -66,2 +69,4 @@
 #endif
 
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/flash_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/flash_api.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/flash_api.h	(revision 429)
@@ -0,0 +1,130 @@
+/** \addtogroup hal */
+/** @{*/
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_FLASH_API_H
+#define MBED_FLASH_API_H
+
+#include "device.h"
+#include <stdint.h>
+
+#if DEVICE_FLASH
+
+#define MBED_FLASH_INVALID_SIZE     0xFFFFFFFF
+
+typedef struct flash_s flash_t;
+
+#if TARGET_FLASH_CMSIS_ALGO
+#include "flash_data.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup flash_hal Flash HAL API
+ * @{
+ */
+
+/** Initialize the flash peripheral and the flash_t object
+ *
+ * @param obj The flash object
+ * @return 0 for success, -1 for error
+ */
+int32_t flash_init(flash_t *obj);
+
+/** Uninitialize the flash peripheral and the flash_t object
+ *
+ * @param obj The flash object
+ * @return 0 for success, -1 for error
+ */
+int32_t flash_free(flash_t *obj);
+
+/** Erase one sector starting at defined address
+ *
+ * The address should be at sector boundary. This function does not do any check for address alignments
+ * @param obj The flash object
+ * @param address The sector starting address
+ * @return 0 for success, -1 for error
+ */
+int32_t flash_erase_sector(flash_t *obj, uint32_t address);
+
+/** Read data starting at defined address
+ *
+ * This function has a WEAK implementation using memcpy for backwards compatibility.
+ * @param obj The flash object
+ * @param address Address to begin reading from
+ * @param data The buffer to read data into
+ * @param size The number of bytes to read
+ * @return 0 for success, -1 for error
+ */
+int32_t flash_read(flash_t *obj, uint32_t address, uint8_t *data, uint32_t size);
+
+/** Program pages starting at defined address
+ *
+ * The pages should not cross multiple sectors.
+ * This function does not do any check for address alignments or if size is aligned to a page size.
+ * @param obj The flash object
+ * @param address The sector starting address
+ * @param data The data buffer to be programmed
+ * @param size The number of bytes to program
+ * @return 0 for success, -1 for error
+ */
+int32_t flash_program_page(flash_t *obj, uint32_t address, const uint8_t *data, uint32_t size);
+
+/** Get sector size
+ *
+ * @param obj The flash object
+ * @param address The sector starting address
+ * @return The size of a sector
+ */
+uint32_t flash_get_sector_size(const flash_t *obj, uint32_t address);
+
+/** Get page size
+ *
+ * The page size defines the writable page size
+ * @param obj The flash object
+ * @return The size of a page
+ */
+uint32_t flash_get_page_size(const flash_t *obj);
+
+/** Get start address for the flash region
+ *
+ * @param obj The flash object
+ * @return The start address for the flash region
+ */
+uint32_t flash_get_start_address(const flash_t *obj);
+
+/** Get the flash region size
+ *
+ * @param obj The flash object
+ * @return The flash region size
+ */
+uint32_t flash_get_size(const flash_t *obj);
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+#endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/gpio_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/gpio_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/gpio_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -17,4 +20,5 @@
 #define MBED_GPIO_API_H
 
+#include <stdint.h>
 #include "device.h"
 
@@ -23,10 +27,15 @@
 #endif
 
-/* Set the given pin as GPIO
+/**
+ * \defgroup hal_gpio GPIO HAL functions
+ * @{
+ */
+
+/** Set the given pin as GPIO
+ *
  * @param pin The pin to be set as GPIO
  * @return The GPIO port mask for this pin
  **/
 uint32_t gpio_set(PinName pin);
-
 /* Checks if gpio object is connected (pin was not initialized with NC)
  * @param pin The pin to be set as GPIO
@@ -35,19 +44,84 @@
 int gpio_is_connected(const gpio_t *obj);
 
-/* GPIO object */
+/** Initialize the GPIO pin
+ *
+ * @param obj The GPIO object to initialize
+ * @param pin The GPIO pin to initialize
+ */
 void gpio_init(gpio_t *obj, PinName pin);
 
-void gpio_mode (gpio_t *obj, PinMode mode);
-void gpio_dir  (gpio_t *obj, PinDirection direction);
+/** Set the input pin mode
+ *
+ * @param obj  The GPIO object
+ * @param mode The pin mode to be set
+ */
+void gpio_mode(gpio_t *obj, PinMode mode);
 
+/** Set the pin direction
+ *
+ * @param obj       The GPIO object
+ * @param direction The pin direction to be set
+ */
+void gpio_dir(gpio_t *obj, PinDirection direction);
+
+/** Set the output value
+ *
+ * @param obj   The GPIO object
+ * @param value The value to be set
+ */
 void gpio_write(gpio_t *obj, int value);
-int  gpio_read (gpio_t *obj);
 
-// the following set of functions are generic and are implemented in the common gpio.c file
+/** Read the input value
+ *
+ * @param obj The GPIO object
+ * @return An integer value 1 or 0
+ */
+int gpio_read(gpio_t *obj);
+
+// the following functions are generic and implemented in the common gpio.c file
+// TODO: fix, will be moved to the common gpio header file
+
+/** Init the input pin and set mode to PullDefault
+ *
+ * @param gpio The GPIO object
+ * @param pin The pin name
+ */
 void gpio_init_in(gpio_t* gpio, PinName pin);
+
+/** Init the input pin and set the mode
+ *
+ * @param gpio  The GPIO object
+ * @param pin  The pin name
+ * @param mode The pin mode to be set
+ */
 void gpio_init_in_ex(gpio_t* gpio, PinName pin, PinMode mode);
+
+/** Init the output pin as an output, with predefined output value 0
+ *
+ * @param gpio The GPIO object
+ * @param pin The pin name
+ * @return An integer value 1 or 0
+ */
 void gpio_init_out(gpio_t* gpio, PinName pin);
+
+/** Init the pin as an output and set the output value
+ *
+ * @param gpio  The GPIO object
+ * @param pin   The pin name
+ * @param value The value to be set
+ */
 void gpio_init_out_ex(gpio_t* gpio, PinName pin, int value);
+
+/** Init the pin to be in/out
+ *
+ * @param gpio      The GPIO object
+ * @param pin       The pin name
+ * @param direction The pin direction to be set
+ * @param mode      The pin mode to be set
+ * @param value     The value to be set for an output pin
+ */
 void gpio_init_inout(gpio_t* gpio, PinName pin, PinDirection direction, PinMode mode, int value);
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -56,2 +130,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/gpio_irq_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/gpio_irq_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/gpio_irq_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -25,4 +28,6 @@
 #endif
 
+/** GPIO IRQ events
+ */
 typedef enum {
     IRQ_NONE,
@@ -31,13 +36,54 @@
 } gpio_irq_event;
 
+/** GPIO IRQ HAL structure. gpio_irq_s is declared in the target's HAL
+ */
 typedef struct gpio_irq_s gpio_irq_t;
 
 typedef void (*gpio_irq_handler)(uint32_t id, gpio_irq_event event);
 
-int  gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32_t id);
+/**
+ * \defgroup hal_gpioirq GPIO IRQ HAL functions
+ * @{
+ */
+
+/** Initialize the GPIO IRQ pin
+ *
+ * @param obj     The GPIO object to initialize
+ * @param pin     The GPIO pin name
+ * @param handler The handler to be attached to GPIO IRQ
+ * @param id      The object ID (id != 0, 0 is reserved)
+ * @return -1 if pin is NC, 0 otherwise
+ */
+int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32_t id);
+
+/** Release the GPIO IRQ PIN
+ *
+ * @param obj The gpio object
+ */
 void gpio_irq_free(gpio_irq_t *obj);
-void gpio_irq_set (gpio_irq_t *obj, gpio_irq_event event, uint32_t enable);
+
+/** Enable/disable pin IRQ event
+ *
+ * @param obj    The GPIO object
+ * @param event  The GPIO IRQ event
+ * @param enable The enable flag
+ */
+void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable);
+
+/** Enable GPIO IRQ
+ *
+ * This is target dependent, as it might enable the entire port or just a pin
+ * @param obj The GPIO object
+ */
 void gpio_irq_enable(gpio_irq_t *obj);
+
+/** Disable GPIO IRQ
+ *
+ * This is target dependent, as it might disable the entire port or just a pin
+ * @param obj The GPIO object
+ */
 void gpio_irq_disable(gpio_irq_t *obj);
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -48,2 +94,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/i2c_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/i2c_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/i2c_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2015 ARM Limited
@@ -18,10 +21,14 @@
 
 #include "device.h"
-#include "buffer.h"
+#include "hal/buffer.h"
+
+#if DEVICE_I2C_ASYNCH
+#include "hal/dma_api.h"
+#endif
 
 #if DEVICE_I2C
 
 /**
- * @defgroup I2CEvents I2C Events Macros
+ * @defgroup hal_I2CEvents I2C Events Macros
  *
  * @{
@@ -36,8 +43,8 @@
 
 #if DEVICE_I2C_ASYNCH
-/** Asynch i2c hal structure
+/** Asynch I2C HAL structure
  */
 typedef struct {
-    struct i2c_s    i2c;     /**< Target specific i2c structure */
+    struct i2c_s    i2c;     /**< Target specific I2C structure */
     struct buffer_s tx_buff; /**< Tx buffer */
     struct buffer_s rx_buff; /**< Rx buffer */
@@ -45,5 +52,5 @@
 
 #else
-/** Non-asynch i2c hal structure
+/** Non-asynch I2C HAL structure
  */
 typedef struct i2c_s i2c_t;
@@ -61,11 +68,12 @@
 
 /**
- * \defgroup GeneralI2C I2C Configuration Functions
+ * \defgroup hal_GeneralI2C I2C Configuration Functions
  * @{
  */
 
 /** Initialize the I2C peripheral. It sets the default parameters for I2C
- *  peripheral, and configure its specifieds pins.
- *  @param obj  The i2c object
+ *  peripheral, and configures its specifieds pins.
+ *  
+ *  @param obj  The I2C object
  *  @param sda  The sda pin
  *  @param scl  The scl pin
@@ -73,22 +81,26 @@
 void i2c_init(i2c_t *obj, PinName sda, PinName scl);
 
-/** Configure the I2C frequency.
- *  @param obj The i2c object
+/** Configure the I2C frequency
+ *
+ *  @param obj The I2C object
  *  @param hz  Frequency in Hz
  */
 void i2c_frequency(i2c_t *obj, int hz);
 
-/** Send START command.
- *  @param obj The i2c object
+/** Send START command
+ *
+ *  @param obj The I2C object
  */
 int  i2c_start(i2c_t *obj);
 
-/** Send STOP command.
- *  @param obj The i2c object
+/** Send STOP command
+ *
+ *  @param obj The I2C object
  */
 int  i2c_stop(i2c_t *obj);
 
-/** Blocking reading data.
- *  @param obj     The i2c object
+/** Blocking reading data
+ *
+ *  @param obj     The I2C object
  *  @param address 7-bit address (last bit is 1)
  *  @param data    The buffer for receiving
@@ -97,34 +109,40 @@
  *  @return Number of read bytes
  */
-int  i2c_read(i2c_t *obj, int address, char *data, int length, int stop);
-
-/** Blocking sending data.
- *  @param obj     The i2c object
+int i2c_read(i2c_t *obj, int address, char *data, int length, int stop);
+
+/** Blocking sending data
+ *
+ *  @param obj     The I2C object
  *  @param address 7-bit address (last bit is 0)
  *  @param data    The buffer for sending
- *  @param length  Number of bytes to wrte
+ *  @param length  Number of bytes to write
  *  @param stop    Stop to be generated after the transfer is done
- *  @return Number of written bytes
- */
-int  i2c_write(i2c_t *obj, int address, const char *data, int length, int stop);
-
-/** Reset I2C peripheral. TODO: The action here. Most of the implementation sends stop().
- *  @param obj The i2c object
+ *  @return 
+ *      zero or non-zero - Number of written bytes
+ *      negative - I2C_ERROR_XXX status
+ */
+int i2c_write(i2c_t *obj, int address, const char *data, int length, int stop);
+
+/** Reset I2C peripheral. TODO: The action here. Most of the implementation sends stop()
+ *
+ *  @param obj The I2C object
  */
 void i2c_reset(i2c_t *obj);
 
-/** Read one byte.
- *  @param obj The i2c object
+/** Read one byte
+ *
+ *  @param obj The I2C object
  *  @param last Acknoledge
  *  @return The read byte
  */
-int  i2c_byte_read(i2c_t *obj, int last);
-
-/** Write one byte.
- *  @param obj The i2c object
+int i2c_byte_read(i2c_t *obj, int last);
+
+/** Write one byte
+ *
+ *  @param obj The I2C object
  *  @param data Byte to be written
- *  @return 1 if NAK was received, 0 if ACK was received, 2 for timeout.
- */
-int  i2c_byte_write(i2c_t *obj, int data);
+ *  @return 0 if NAK was received, 1 if ACK was received, 2 for timeout.
+ */
+int i2c_byte_write(i2c_t *obj, int data);
 
 /**@}*/
@@ -139,4 +157,5 @@
 /** Configure I2C as slave or master.
  *  @param obj The I2C object
+ *  @param enable_slave Enable i2c hardware so you can receive events with ::i2c_slave_receive
  *  @return non-zero if a value is available
  */
@@ -152,4 +171,6 @@
 /** Configure I2C as slave or master.
  *  @param obj The I2C object
+ *  @param data    The buffer for receiving
+ *  @param length  Number of bytes to read
  *  @return non-zero if a value is available
  */
@@ -158,4 +179,6 @@
 /** Configure I2C as slave or master.
  *  @param obj The I2C object
+ *  @param data    The buffer for sending
+ *  @param length  Number of bytes to write
  *  @return non-zero if a value is available
  */
@@ -177,17 +200,19 @@
 
 /**
- * \defgroup AsynchI2C Asynchronous I2C Hardware Abstraction Layer
- * @{
- */
-
-/** Start i2c asynchronous transfer.
+ * \defgroup hal_AsynchI2C Asynchronous I2C Hardware Abstraction Layer
+ * @{
+ */
+
+/** Start I2C asynchronous transfer
+ *
  *  @param obj       The I2C object
- *  @param tx        The buffer to send
- *  @param tx_length The number of words to transmit
- *  @param rx        The buffer to receive
- *  @param rx_length The number of words to receive
- *  @param address   The address to be set - 7bit or 9 bit
+ *  @param tx        The transmit buffer
+ *  @param tx_length The number of bytes to transmit
+ *  @param rx        The receive buffer
+ *  @param rx_length The number of bytes to receive
+ *  @param address   The address to be set - 7bit or 9bit
  *  @param stop      If true, stop will be generated after the transfer is done
  *  @param handler   The I2C IRQ handler to be set
+ *  @param event     Event mask for the transfer. See \ref hal_I2CEvents
  *  @param hint      DMA hint usage
  */
@@ -195,16 +220,20 @@
 
 /** The asynchronous IRQ handler
+ *
  *  @param obj The I2C object which holds the transfer information
- *  @return event flags if a transfer termination condition was met or 0 otherwise.
+ *  @return Event flags if a transfer termination condition was met, otherwise return 0.
  */
 uint32_t i2c_irq_handler_asynch(i2c_t *obj);
 
-/** Attempts to determine if I2C peripheral is already in use.
- *  @param obj The I2C object
- *  @return non-zero if the I2C module is active or zero if it is not
+/** Attempts to determine if the I2C peripheral is already in use
+ *
+ *  @param obj The I2C object
+ *  @return Non-zero if the I2C module is active or zero if it is not
  */
 uint8_t i2c_active(i2c_t *obj);
 
-/** Abort ongoing asynchronous transaction.
+/** Abort asynchronous transfer
+ *
+ *  This function does not perform any check - that should happen in upper layers.
  *  @param obj The I2C object
  */
@@ -222,2 +251,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/lp_ticker_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/lp_ticker_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/lp_ticker_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2015 ARM Limited
@@ -19,7 +22,7 @@
 #include "device.h"
 
-#if DEVICE_LOWPOWERTIMER
-
-#include "ticker_api.h"
+#if DEVICE_LPTICKER
+
+#include "hal/ticker_api.h"
 
 #ifdef __cplusplus
@@ -28,13 +31,54 @@
 
 /**
- * \defgroup LpTicker Low Power Ticker Functions
+ * \defgroup hal_lp_ticker Low Power Ticker
+ * Low level interface to the low power ticker of a target
+ *
+ * # Defined behavior
+ * * Has a reported frequency between 4KHz and 64KHz - verified by ::lp_ticker_info_test
+ * * Has a counter that is at least 12 bits wide - verified by ::lp_ticker_info_test
+ * * Continues operating in deep sleep mode - verified by ::lp_ticker_deepsleep_test
+ * * All behavior defined by the @ref hal_ticker_shared "ticker specification"
+ *
+ * # Undefined behavior
+ * * See the @ref hal_ticker_shared "ticker specification"
+ * * Calling any function other than lp_ticker_init after calling lp_ticker_free
+ *
+ * # Potential bugs
+ * * Glitches due to ripple counter - Verified by ::lp_ticker_glitch_test
+ *
+ * @see hal_lp_ticker_tests
+ *
  * @{
  */
 
+/**
+ * \defgroup hal_lp_ticker_tests Low Power Ticker tests
+ * Tests to validate the proper implementation of the low power ticker
+ *
+ * To run the low power ticker hal tests use the command:
+ *
+ *     mbed test -t <toolchain> -m <target> -n tests-mbed_hal-common_ticker*,tests-mbed_hal-lp_ticker*
+ *
+ */
+
+typedef void (*ticker_irq_handler_type)(const ticker_data_t *const);
+
+/** Set low power ticker IRQ handler
+ *
+ * @param ticker_irq_handler IRQ handler to be connected
+ *
+ * @return previous ticker IRQ handler
+ *
+ * @note by default IRQ handler is set to ::ticker_irq_handler
+ * @note this function is primarily for testing purposes and it's not required part of HAL implementation
+ *
+ */
+ticker_irq_handler_type set_lp_ticker_irq_handler(ticker_irq_handler_type ticker_irq_handler);
+
 /** Get low power ticker's data
  *
  * @return The low power ticker data
  */
-const ticker_data_t* get_lp_ticker_data(void);
+const ticker_data_t *get_lp_ticker_data(void);
 
 /** The wrapper for ticker_irq_handler, to pass lp ticker's data
@@ -47,10 +91,68 @@
 /** Initialize the low power ticker
  *
+ * Initialize or re-initialize the ticker. This resets all the
+ * clocking and prescaler registers, along with disabling
+ * the compare interrupt.
+ *
+ * Pseudo Code:
+ * @code
+ * void lp_ticker_init()
+ * {
+ *     // Enable clock gate so processor can read LPTMR registers
+ *     POWER_CTRL |= POWER_CTRL_LPTMR_Msk;
+ *
+ *     // Disable the timer and ensure it is powered down
+ *     LPTMR_CTRL &= ~(LPTMR_CTRL_ENABLE_Msk | LPTMR_CTRL_COMPARE_ENABLE_Msk);
+ *
+ *     // Configure divisors - no division necessary
+ *     LPTMR_PRESCALE = 0;
+ *     LPTMR_CTRL |= LPTMR_CTRL_ENABLE_Msk;
+ *
+ *     // Install the interrupt handler
+ *     NVIC_SetVector(LPTMR_IRQn, (uint32_t)lp_ticker_irq_handler);
+ *     NVIC_EnableIRQ(LPTMR_IRQn);
+ * }
+ * @endcode
  */
 void lp_ticker_init(void);
 
-/** Read the current counter
- *
- * @return The current timer's counter value in microseconds
+/** Deinitialize the lower power ticker
+ *
+ * Powerdown the lp ticker in preparation for sleep, powerdown, or reset.
+ *
+ * After calling this function no other ticker functions should be called except
+ * lp_ticker_init(). Calling any function other than init after freeing is
+ * undefined.
+ *
+ * @note This function stops the ticker from counting.
+ */
+void lp_ticker_free(void);
+
+/** Read the current tick
+ *
+ * If no rollover has occurred, the seconds passed since lp_ticker_init()
+ * was called can be found by dividing the ticks returned by this function
+ * by the frequency returned by ::lp_ticker_get_info.
+ *
+ * @return The current timer's counter value in ticks
+ *
+ * Pseudo Code:
+ * @code
+ * uint32_t lp_ticker_read()
+ * {
+ *     uint16_t count;
+ *     uint16_t last_count;
+ *
+ *     // Loop until the same tick is read twice since this
+ *     // is ripple counter on a different clock domain.
+ *     count = LPTMR_COUNT;
+ *     do {
+ *         last_count = count;
+ *         count = LPTMR_COUNT;
+ *     } while (last_count != count);
+ *
+ *     return count;
+ * }
+ * @endcode
  */
 uint32_t lp_ticker_read(void);
@@ -58,5 +160,22 @@
 /** Set interrupt for specified timestamp
  *
- * @param timestamp The time in microseconds to be set
+ * @param timestamp The time in ticks to be set
+ *
+ * @note no special handling needs to be done for times in the past
+ * as the common timer code will detect this and call
+ * lp_ticker_fire_interrupt() if this is the case
+ *
+ * @note calling this function with timestamp of more than the supported
+ * number of bits returned by ::lp_ticker_get_info results in undefined
+ * behavior.
+ *
+ * Pseudo Code:
+ * @code
+ * void lp_ticker_set_interrupt(timestamp_t timestamp)
+ * {
+ *     LPTMR_COMPARE = timestamp;
+ *     LPTMR_CTRL |= LPTMR_CTRL_COMPARE_ENABLE_Msk;
+ * }
+ * @endcode
  */
 void lp_ticker_set_interrupt(timestamp_t timestamp);
@@ -64,4 +183,12 @@
 /** Disable low power ticker interrupt
  *
+ * Pseudo Code:
+ * @code
+ * void lp_ticker_disable_interrupt(void)
+ * {
+ *     // Disable the compare interrupt
+ *     LPTMR_CTRL &= ~LPTMR_CTRL_COMPARE_ENABLE_Msk;
+ * }
+ * @endcode
  */
 void lp_ticker_disable_interrupt(void);
@@ -69,6 +196,42 @@
 /** Clear the low power ticker interrupt
  *
+ * Pseudo Code:
+ * @code
+ * void lp_ticker_clear_interrupt(void)
+ * {
+ *     // Write to the ICR (interrupt clear register) of the LPTMR
+ *     LPTMR_ICR = LPTMR_ICR_COMPARE_Msk;
+ * }
+ * @endcode
  */
 void lp_ticker_clear_interrupt(void);
+
+/** Set pending interrupt that should be fired right away.
+ *
+ * Pseudo Code:
+ * @code
+ * void lp_ticker_fire_interrupt(void)
+ * {
+ *     NVIC_SetPendingIRQ(LPTMR_IRQn);
+ * }
+ * @endcode
+ */
+void lp_ticker_fire_interrupt(void);
+
+/** Get frequency and counter bits of this ticker.
+ *
+ * Pseudo Code:
+ * @code
+ * const ticker_info_t* lp_ticker_get_info()
+ * {
+ *     static const ticker_info_t info = {
+ *         32768,      // 32KHz
+ *         16          // 16 bit counter
+ *     };
+ *     return &info;
+ * }
+ * @endcode
+ */
+const ticker_info_t *lp_ticker_get_info(void);
 
 /**@}*/
@@ -81,2 +244,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_critical_section_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_critical_section_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_critical_section_api.c	(revision 429)
@@ -0,0 +1,65 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "cmsis.h"
+#include "hal/critical_section_api.h"
+#include "platform/mbed_assert.h"
+#include "platform/mbed_toolchain.h"
+
+#include <stdbool.h>
+
+static volatile bool critical_interrupts_enabled = false;
+static volatile bool state_saved = false;
+
+static bool are_interrupts_enabled(void)
+{
+#if defined(__CORTEX_A9)
+    return ((__get_CPSR() & 0x80) == 0);
+#else
+    return ((__get_PRIMASK() & 0x1) == 0);
+#endif
+}
+
+
+MBED_WEAK void hal_critical_section_enter(void)
+{
+    const bool interrupt_state = are_interrupts_enabled();
+
+    __disable_irq();
+
+    if (state_saved == true) {
+        return;
+    }
+
+    critical_interrupts_enabled = interrupt_state;
+    state_saved = true;
+}
+
+MBED_WEAK void hal_critical_section_exit(void)
+{
+    // Interrupts must be disabled on invoking an exit from a critical section
+    MBED_ASSERT(!are_interrupts_enabled());
+    state_saved = false;
+
+    // Restore the IRQs to their state prior to entering the critical section
+    if (critical_interrupts_enabled == true) {
+        __enable_irq();
+    }
+}
+
+MBED_WEAK bool hal_in_critical_section(void)
+{
+    return (state_saved == true);
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_flash_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_flash_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_flash_api.c	(revision 429)
@@ -0,0 +1,30 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "hal/flash_api.h"
+
+#if DEVICE_FLASH
+
+#include "platform/mbed_toolchain.h"
+#include <string.h>
+
+MBED_WEAK int32_t flash_read(flash_t *obj, uint32_t address, uint8_t *data, uint32_t size)
+{
+    memcpy(data, (const void *)address, size);
+    return 0;
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_gpio.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_gpio.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_gpio.c	(revision 429)
@@ -0,0 +1,67 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal/gpio_api.h"
+
+static inline void _gpio_init_in(gpio_t* gpio, PinName pin, PinMode mode)
+{
+    gpio_init(gpio, pin);
+    if (pin != NC) {
+        gpio_dir(gpio, PIN_INPUT);
+        gpio_mode(gpio, mode);
+    }
+}
+
+static inline void _gpio_init_out(gpio_t* gpio, PinName pin, PinMode mode, int value)
+{
+    gpio_init(gpio, pin);
+    if (pin != NC) {
+        gpio_write(gpio, value);
+        gpio_dir(gpio, PIN_OUTPUT);
+        gpio_mode(gpio, mode);
+    }
+}
+
+void gpio_init_in(gpio_t *gpio, PinName pin)
+{
+    gpio_init_in_ex(gpio, pin, PullDefault);
+}
+
+void gpio_init_in_ex(gpio_t *gpio, PinName pin, PinMode mode)
+{
+    _gpio_init_in(gpio, pin, mode);
+}
+
+void gpio_init_out(gpio_t *gpio, PinName pin)
+{
+    gpio_init_out_ex(gpio, pin, 0);
+}
+
+void gpio_init_out_ex(gpio_t *gpio, PinName pin, int value)
+{
+    _gpio_init_out(gpio, pin, PullNone, value);
+}
+
+void gpio_init_inout(gpio_t *gpio, PinName pin, PinDirection direction, PinMode mode, int value)
+{
+    if (direction == PIN_INPUT) {
+        _gpio_init_in(gpio, pin, mode);
+        if (pin != NC) {
+            gpio_write(gpio, value); // we prepare the value in case it is switched later
+        }
+    } else {
+        _gpio_init_out(gpio, pin, mode, value);
+    }
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_api.c	(revision 429)
@@ -0,0 +1,70 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal/lp_ticker_api.h"
+#include "hal/mbed_lp_ticker_wrapper.h"
+
+#if DEVICE_LPTICKER
+
+static ticker_event_queue_t events = { 0 };
+
+static ticker_irq_handler_type irq_handler = ticker_irq_handler;
+
+static const ticker_interface_t lp_interface = {
+    .init = lp_ticker_init,
+    .read = lp_ticker_read,
+    .disable_interrupt = lp_ticker_disable_interrupt,
+    .clear_interrupt = lp_ticker_clear_interrupt,
+    .set_interrupt = lp_ticker_set_interrupt,
+    .fire_interrupt = lp_ticker_fire_interrupt,
+    .get_info = lp_ticker_get_info,
+    .free = lp_ticker_free,
+};
+
+static const ticker_data_t lp_data = {
+    .interface = &lp_interface,
+    .queue = &events,
+};
+
+const ticker_data_t *get_lp_ticker_data(void)
+{
+#if LPTICKER_DELAY_TICKS > 0
+    return get_lp_ticker_wrapper_data(&lp_data);
+#else
+    return &lp_data;
+#endif
+}
+
+ticker_irq_handler_type set_lp_ticker_irq_handler(ticker_irq_handler_type ticker_irq_handler)
+{
+    ticker_irq_handler_type prev_irq_handler = irq_handler;
+
+    irq_handler = ticker_irq_handler;
+
+    return prev_irq_handler;
+}
+
+void lp_ticker_irq_handler(void)
+{
+#if LPTICKER_DELAY_TICKS > 0
+    lp_ticker_wrapper_irq_handler(irq_handler);
+#else
+    if (irq_handler) {
+        irq_handler(&lp_data);
+    }
+#endif
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_wrapper.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_wrapper.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_wrapper.c	(revision 429)
@@ -0,0 +1,127 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2018 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal/mbed_lp_ticker_wrapper.h"
+
+#if DEVICE_LPTICKER && (LPTICKER_DELAY_TICKS > 0)
+
+#include "hal/LowPowerTickerWrapper.h"
+#include "platform/mbed_critical.h"
+
+// Do not use SingletonPtr since this must be initialized in a critical section
+static LowPowerTickerWrapper *ticker_wrapper;
+static uint64_t ticker_wrapper_data[(sizeof(LowPowerTickerWrapper) + 7) / 8];
+static bool init = false;
+
+static void lp_ticker_wrapper_init()
+{
+    ticker_wrapper->init();
+}
+
+static uint32_t lp_ticker_wrapper_read()
+{
+    return ticker_wrapper->read();
+}
+
+static void lp_ticker_wrapper_set_interrupt(timestamp_t timestamp)
+{
+    ticker_wrapper->set_interrupt(timestamp);
+}
+
+static void lp_ticker_wrapper_disable_interrupt()
+{
+    ticker_wrapper->disable_interrupt();
+}
+
+static void lp_ticker_wrapper_clear_interrupt()
+{
+    ticker_wrapper->clear_interrupt();
+}
+
+static void lp_ticker_wrapper_fire_interrupt()
+{
+    ticker_wrapper->fire_interrupt();
+}
+
+static const ticker_info_t *lp_ticker_wrapper_get_info()
+{
+    return ticker_wrapper->get_info();
+}
+
+static void lp_ticker_wrapper_free()
+{
+    ticker_wrapper->free();
+}
+
+static const ticker_interface_t lp_interface = {
+    lp_ticker_wrapper_init,
+    lp_ticker_wrapper_read,
+    lp_ticker_wrapper_disable_interrupt,
+    lp_ticker_wrapper_clear_interrupt,
+    lp_ticker_wrapper_set_interrupt,
+    lp_ticker_wrapper_fire_interrupt,
+    lp_ticker_wrapper_free,
+    lp_ticker_wrapper_get_info
+};
+
+void lp_ticker_wrapper_irq_handler(ticker_irq_handler_type handler)
+{
+    core_util_critical_section_enter();
+
+    if (!init) {
+        // Force ticker to initialize
+        get_lp_ticker_data();
+    }
+
+    ticker_wrapper->irq_handler(handler);
+
+    core_util_critical_section_exit();
+}
+
+const ticker_data_t *get_lp_ticker_wrapper_data(const ticker_data_t *data)
+{
+    core_util_critical_section_enter();
+
+    if (!init) {
+        ticker_wrapper = new (ticker_wrapper_data) LowPowerTickerWrapper(data, &lp_interface, LPTICKER_DELAY_TICKS, LPTICKER_DELAY_TICKS);
+        init = true;
+    }
+
+    core_util_critical_section_exit();
+
+    return &ticker_wrapper->data;
+}
+
+void lp_ticker_wrapper_suspend()
+{
+    if (!init) {
+        // Force ticker to initialize
+        get_lp_ticker_data();
+    }
+
+    ticker_wrapper->suspend();
+}
+
+void lp_ticker_wrapper_resume()
+{
+    if (!init) {
+        // Force ticker to initialize
+        get_lp_ticker_data();
+    }
+
+    ticker_wrapper->resume();
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_wrapper.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_wrapper.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_lp_ticker_wrapper.h	(revision 429)
@@ -0,0 +1,78 @@
+
+/** \addtogroup hal */
+/** @{*/
+/* mbed Microcontroller Library
+ * Copyright (c) 2018 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_LP_TICKER_WRAPPER_H
+#define MBED_LP_TICKER_WRAPPER_H
+
+#include "device.h"
+
+#if DEVICE_LPTICKER
+
+#include "hal/ticker_api.h"
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void (*ticker_irq_handler_type)(const ticker_data_t *const);
+
+/**
+ * Interrupt handler for the wrapped lp ticker
+ *
+ * @param handler the function which would normally be called by the
+ *      lp ticker handler when it is not wrapped
+ */
+void lp_ticker_wrapper_irq_handler(ticker_irq_handler_type handler);
+
+/**
+ * Get wrapped lp ticker data
+ *
+ * @param data hardware low power ticker object
+ * @return wrapped low power ticker object
+ */
+const ticker_data_t *get_lp_ticker_wrapper_data(const ticker_data_t *data);
+
+/**
+ * Suspend the wrapper layer code
+ *
+ * Pass through all interrupts to the low power ticker and stop using
+ * the microsecond ticker.
+ */
+void lp_ticker_wrapper_suspend(void);
+
+/**
+ * Resume the wrapper layer code
+ *
+ * Resume operation of the wrapper layer. Interrupts will be filtered
+ * as normal and the microsecond timer will be used for interrupts scheduled
+ * too quickly back-to-back.
+ */
+void lp_ticker_wrapper_resume(void);
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+#endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_pinmap_common.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_pinmap_common.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_pinmap_common.c	(revision 429)
@@ -0,0 +1,105 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal/pinmap.h"
+#include "platform/mbed_error.h"
+
+void pinmap_pinout(PinName pin, const PinMap *map)
+{
+    if (pin == NC) {
+        return;
+    }
+
+    while (map->pin != NC) {
+        if (map->pin == pin) {
+            pin_function(pin, map->function);
+
+            pin_mode(pin, PullNone);
+            return;
+        }
+        map++;
+    }
+    MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_PINMAP_INVALID), "could not pinout", pin);
+}
+
+uint32_t pinmap_merge(uint32_t a, uint32_t b)
+{
+    // both are the same (inc both NC)
+    if (a == b) {
+        return a;
+    }
+
+    // one (or both) is not connected
+    if (a == (uint32_t)NC) {
+        return b;
+    }
+    if (b == (uint32_t)NC) {
+        return a;
+    }
+
+    // mis-match error case
+    MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_PINMAP_INVALID), "pinmap mis-match", a);
+    return (uint32_t)NC;
+}
+
+uint32_t pinmap_find_peripheral(PinName pin, const PinMap *map)
+{
+    while (map->pin != NC) {
+        if (map->pin == pin) {
+            return map->peripheral;
+        }
+        map++;
+    }
+    return (uint32_t)NC;
+}
+
+uint32_t pinmap_peripheral(PinName pin, const PinMap *map)
+{
+    uint32_t peripheral = (uint32_t)NC;
+
+    if (pin == (PinName)NC) {
+        return (uint32_t)NC;
+    }
+    peripheral = pinmap_find_peripheral(pin, map);
+    if ((uint32_t)NC == peripheral) { // no mapping available
+        MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_PINMAP_INVALID), "pinmap not found for peripheral", peripheral);
+    }
+    return peripheral;
+}
+
+uint32_t pinmap_find_function(PinName pin, const PinMap *map)
+{
+    while (map->pin != NC) {
+        if (map->pin == pin) {
+            return map->function;
+        }
+        map++;
+    }
+    return (uint32_t)NC;
+}
+
+uint32_t pinmap_function(PinName pin, const PinMap *map)
+{
+    uint32_t function = (uint32_t)NC;
+
+    if (pin == (PinName)NC) {
+        return (uint32_t)NC;
+    }
+    function = pinmap_find_function(pin, map);
+    if ((uint32_t)NC == function) { // no mapping available
+        MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_PINMAP_INVALID), "pinmap not found for function", function);
+    }
+    return function;
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_sleep_manager.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_sleep_manager.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_sleep_manager.c	(revision 429)
@@ -0,0 +1,251 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "platform/mbed_assert.h"
+#include "platform/mbed_power_mgmt.h"
+#include "platform/mbed_critical.h"
+#include "hal/sleep_api.h"
+#include "platform/mbed_error.h"
+#include "platform/mbed_debug.h"
+#include "platform/mbed_stats.h"
+#include "hal/us_ticker_api.h"
+#include "hal/lp_ticker_api.h"
+#include <limits.h>
+#include <stdio.h>
+#include "platform/mbed_stats.h"
+
+
+#if DEVICE_SLEEP
+
+// deep sleep locking counter. A target is allowed to deep sleep if counter == 0
+static uint16_t deep_sleep_lock = 0U;
+static us_timestamp_t sleep_time = 0;
+static us_timestamp_t deep_sleep_time = 0;
+
+#if defined(MBED_CPU_STATS_ENABLED) && defined(DEVICE_LPTICKER)
+static ticker_data_t *sleep_ticker = NULL;
+#endif
+
+static inline us_timestamp_t read_us(void)
+{
+#if defined(MBED_CPU_STATS_ENABLED) && defined(DEVICE_LPTICKER)
+    if (NULL == sleep_ticker) {
+        sleep_ticker = (ticker_data_t *)get_lp_ticker_data();
+    }
+    return ticker_read_us(sleep_ticker);
+#else
+    return 0;
+#endif
+}
+
+us_timestamp_t mbed_time_idle(void)
+{
+    return (sleep_time + deep_sleep_time);
+}
+
+us_timestamp_t mbed_uptime(void)
+{
+    return read_us();
+}
+
+us_timestamp_t mbed_time_sleep(void)
+{
+    return sleep_time;
+}
+
+us_timestamp_t mbed_time_deepsleep(void)
+{
+    return deep_sleep_time;
+}
+
+#ifdef MBED_SLEEP_TRACING_ENABLED
+
+// Number of drivers that can be stored in the structure
+#define STATISTIC_COUNT  10
+
+typedef struct sleep_statistic {
+    const char *identifier;
+    uint8_t count;
+} sleep_statistic_t;
+
+static sleep_statistic_t sleep_stats[STATISTIC_COUNT];
+
+static sleep_statistic_t *sleep_tracker_find(const char *const filename)
+{
+    for (int i = 0; i < STATISTIC_COUNT; ++i) {
+        if (sleep_stats[i].identifier == filename) {
+            return &sleep_stats[i];
+        }
+    }
+
+    return NULL;
+}
+
+static sleep_statistic_t *sleep_tracker_add(const char *const filename)
+{
+    for (int i = 0; i < STATISTIC_COUNT; ++i) {
+        if (sleep_stats[i].identifier == NULL) {
+            sleep_stats[i].identifier = filename;
+
+            return &sleep_stats[i];
+        }
+    }
+
+    debug("No free indexes left to use in mbed sleep tracker.\r\n");
+
+    return NULL;
+}
+
+static void sleep_tracker_print_stats(void)
+{
+    debug("Sleep locks held:\r\n");
+    for (int i = 0; i < STATISTIC_COUNT; ++i) {
+        if (sleep_stats[i].count == 0) {
+            continue;
+        }
+
+        if (sleep_stats[i].identifier == NULL) {
+            return;
+        }
+
+        debug("[id: %s, count: %u]\r\n", sleep_stats[i].identifier,
+              sleep_stats[i].count);
+    }
+}
+
+void sleep_tracker_lock(const char *const filename, int line)
+{
+    sleep_statistic_t *stat = sleep_tracker_find(filename);
+
+    // Entry for this driver does not exist, create one.
+    if (stat == NULL) {
+        stat = sleep_tracker_add(filename);
+    }
+
+    core_util_atomic_incr_u8(&stat->count, 1);
+
+    debug("LOCK: %s, ln: %i, lock count: %u\r\n", filename, line, deep_sleep_lock);
+}
+
+void sleep_tracker_unlock(const char *const filename, int line)
+{
+    sleep_statistic_t *stat = sleep_tracker_find(filename);
+
+    // Entry for this driver does not exist, something went wrong.
+    if (stat == NULL) {
+        debug("Unlocking sleep for driver that was not previously locked: %s, ln: %i\r\n", filename, line);
+        return;
+    }
+
+    core_util_atomic_decr_u8(&stat->count, 1);
+
+    debug("UNLOCK: %s, ln: %i, lock count: %u\r\n", filename, line, deep_sleep_lock);
+}
+
+#endif // MBED_SLEEP_TRACING_ENABLED
+
+void sleep_manager_lock_deep_sleep_internal(void)
+{
+    core_util_critical_section_enter();
+    if (deep_sleep_lock == USHRT_MAX) {
+        core_util_critical_section_exit();
+        MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_HAL, MBED_ERROR_CODE_OVERFLOW), "DeepSleepLock overflow (> USHRT_MAX)", deep_sleep_lock);
+    }
+    core_util_atomic_incr_u16(&deep_sleep_lock, 1);
+    core_util_critical_section_exit();
+}
+
+void sleep_manager_unlock_deep_sleep_internal(void)
+{
+    core_util_critical_section_enter();
+    if (deep_sleep_lock == 0) {
+        core_util_critical_section_exit();
+        MBED_ERROR1(MBED_MAKE_ERROR(MBED_MODULE_HAL, MBED_ERROR_CODE_UNDERFLOW), "DeepSleepLock underflow (< 0)", deep_sleep_lock);
+    }
+    core_util_atomic_decr_u16(&deep_sleep_lock, 1);
+    core_util_critical_section_exit();
+}
+
+bool sleep_manager_can_deep_sleep(void)
+{
+    return deep_sleep_lock == 0 ? true : false;
+}
+
+bool sleep_manager_can_deep_sleep_test_check()
+{
+    const uint32_t check_time_us = 2000;
+    const ticker_data_t *const ticker = get_us_ticker_data();
+    uint32_t start = ticker_read(ticker);
+    while ((ticker_read(ticker) - start) < check_time_us) {
+        if (sleep_manager_can_deep_sleep()) {
+            return true;
+        }
+    }
+    return false;
+}
+
+void sleep_manager_sleep_auto(void)
+{
+#ifdef MBED_SLEEP_TRACING_ENABLED
+    sleep_tracker_print_stats();
+#endif
+    core_util_critical_section_enter();
+    us_timestamp_t start = read_us();
+    bool deep = false;
+
+// debug profile should keep debuggers attached, no deep sleep allowed
+#ifdef MBED_DEBUG
+    hal_sleep();
+#else
+    if (sleep_manager_can_deep_sleep()) {
+        deep = true;
+        hal_deepsleep();
+    } else {
+        hal_sleep();
+    }
+#endif
+
+    us_timestamp_t end = read_us();
+    if (true == deep) {
+        deep_sleep_time += end - start;
+    } else {
+        sleep_time += end - start;
+    }
+    core_util_critical_section_exit();
+}
+
+#else
+
+// locking is valid only if DEVICE_SLEEP is defined
+// we provide empty implementation
+
+void sleep_manager_lock_deep_sleep_internal(void)
+{
+
+}
+
+void sleep_manager_unlock_deep_sleep_internal(void)
+{
+
+}
+
+bool sleep_manager_can_deep_sleep(void)
+{
+    // no sleep implemented
+    return false;
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_ticker_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_ticker_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_ticker_api.c	(revision 429)
@@ -0,0 +1,466 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <stdio.h>
+#include <stddef.h>
+#include "hal/ticker_api.h"
+#include "platform/mbed_critical.h"
+#include "platform/mbed_assert.h"
+
+static void schedule_interrupt(const ticker_data_t *const ticker);
+static void update_present_time(const ticker_data_t *const ticker);
+
+/*
+ * Initialize a ticker instance.
+ */
+static void initialize(const ticker_data_t *ticker)
+{
+    // return if the queue has already been initialized, in that case the
+    // interface used by the queue is already initialized.
+    if (ticker->queue->initialized) {
+        return;
+    }
+    if (ticker->queue->suspended) {
+        return;
+    }
+
+    ticker->interface->init();
+
+    const ticker_info_t *info = ticker->interface->get_info();
+    uint32_t frequency = info->frequency;
+    if (info->frequency == 0) {
+        MBED_ASSERT(0);
+        frequency = 1000000;
+    }
+
+    uint8_t frequency_shifts = 0;
+    for (uint8_t i = 31; i > 0; --i) {
+        if ((1 << i) == frequency) {
+            frequency_shifts = i;
+            break;
+        }
+    }
+
+    uint32_t bits = info->bits;
+    if ((info->bits > 32) || (info->bits < 4)) {
+        MBED_ASSERT(0);
+        bits = 32;
+    }
+    uint32_t max_delta = 0x7 << (bits - 4); // 7/16th
+    uint64_t max_delta_us =
+        ((uint64_t)max_delta * 1000000 + frequency - 1) / frequency;
+
+    ticker->queue->event_handler = NULL;
+    ticker->queue->head = NULL;
+    ticker->queue->tick_last_read = ticker->interface->read();
+    ticker->queue->tick_remainder = 0;
+    ticker->queue->frequency = frequency;
+    ticker->queue->frequency_shifts = frequency_shifts;
+    ticker->queue->bitmask = ((uint64_t)1 << bits) - 1;
+    ticker->queue->max_delta = max_delta;
+    ticker->queue->max_delta_us = max_delta_us;
+    ticker->queue->present_time = 0;
+    ticker->queue->dispatching = false;
+    ticker->queue->suspended = false;
+    ticker->queue->initialized = true;
+
+    update_present_time(ticker);
+    schedule_interrupt(ticker);
+}
+
+/**
+ * Set the event handler function of a ticker instance.
+ */
+static void set_handler(const ticker_data_t *const ticker, ticker_event_handler handler)
+{
+    ticker->queue->event_handler = handler;
+}
+
+/*
+ * Convert a 32 bit timestamp into a 64 bit timestamp.
+ *
+ * A 64 bit timestamp is used as the point of time of reference while the
+ * timestamp to convert is relative to this point of time.
+ *
+ * The lower 32 bits of the timestamp returned will be equal to the timestamp to
+ * convert.
+ *
+ * If the timestamp to convert is less than the lower 32 bits of the time
+ * reference then the timestamp to convert is seen as an overflowed value and
+ * the upper 32 bit of the timestamp returned will be equal to the upper 32 bit
+ * of the reference point + 1.
+ * Otherwise, the upper 32 bit returned will be equal to the upper 32 bit of the
+ * reference point.
+ *
+ * @param ref: The 64 bit timestamp of reference.
+ * @param timestamp: The timestamp to convert.
+ */
+static us_timestamp_t convert_timestamp(us_timestamp_t ref, timestamp_t timestamp)
+{
+    bool overflow = timestamp < ((timestamp_t) ref) ? true : false;
+
+    us_timestamp_t result = (ref & ~((us_timestamp_t)UINT32_MAX)) | timestamp;
+    if (overflow) {
+        result += (1ULL << 32);
+    }
+
+    return result;
+}
+
+/**
+ * Update the present timestamp value of a ticker.
+ */
+static void update_present_time(const ticker_data_t *const ticker)
+{
+    ticker_event_queue_t *queue = ticker->queue;
+    if (queue->suspended) {
+        return;
+    }
+    uint32_t ticker_time = ticker->interface->read();
+    if (ticker_time == ticker->queue->tick_last_read) {
+        // No work to do
+        return;
+    }
+
+    uint64_t elapsed_ticks = (ticker_time - queue->tick_last_read) & queue->bitmask;
+    queue->tick_last_read = ticker_time;
+
+    uint64_t elapsed_us;
+    if (1000000 == queue->frequency) {
+        // Optimized for 1MHz
+
+        elapsed_us = elapsed_ticks;
+    } else if (0 != queue->frequency_shifts) {
+        // Optimized for frequencies divisible by 2
+        uint64_t us_x_ticks = elapsed_ticks * 1000000;
+        elapsed_us = us_x_ticks >> queue->frequency_shifts;
+
+        // Update remainder
+        queue->tick_remainder += us_x_ticks - (elapsed_us << queue->frequency_shifts);
+        if (queue->tick_remainder >= queue->frequency) {
+            elapsed_us += 1;
+            queue->tick_remainder -= queue->frequency;
+        }
+    } else {
+        // General case
+
+        uint64_t us_x_ticks = elapsed_ticks * 1000000;
+        elapsed_us = us_x_ticks / queue->frequency;
+
+        // Update remainder
+        queue->tick_remainder += us_x_ticks - elapsed_us * queue->frequency;
+        if (queue->tick_remainder >= queue->frequency) {
+            elapsed_us += 1;
+            queue->tick_remainder -= queue->frequency;
+        }
+    }
+
+    // Update current time
+    queue->present_time += elapsed_us;
+}
+
+/**
+ * Given the absolute timestamp compute the hal tick timestamp rounded up.
+ */
+static timestamp_t compute_tick_round_up(const ticker_data_t *const ticker, us_timestamp_t timestamp)
+{
+    ticker_event_queue_t *queue = ticker->queue;
+    us_timestamp_t delta_us = timestamp - queue->present_time;
+
+    timestamp_t delta = ticker->queue->max_delta;
+    if (delta_us <=  ticker->queue->max_delta_us) {
+        // Checking max_delta_us ensures the operation will not overflow
+
+        if (1000000 == queue->frequency) {
+            // Optimized for 1MHz
+
+            delta = delta_us;
+            if (delta > ticker->queue->max_delta) {
+                delta = ticker->queue->max_delta;
+            }
+        } else if (0 != queue->frequency_shifts) {
+            // Optimized frequencies divisible by 2
+
+            delta = ((delta_us << ticker->queue->frequency_shifts) + 1000000 - 1) / 1000000;
+            if (delta > ticker->queue->max_delta) {
+                delta = ticker->queue->max_delta;
+            }
+        } else {
+            // General case
+
+            delta = (delta_us * queue->frequency + 1000000 - 1) / 1000000;
+            if (delta > ticker->queue->max_delta) {
+                delta = ticker->queue->max_delta;
+            }
+        }
+    }
+    return (queue->tick_last_read + delta) & queue->bitmask;
+}
+
+/**
+ * Return 1 if the tick has incremented to or past match_tick, otherwise 0.
+ */
+int _ticker_match_interval_passed(timestamp_t prev_tick, timestamp_t cur_tick, timestamp_t match_tick)
+{
+    if (match_tick > prev_tick) {
+        return (cur_tick >= match_tick) || (cur_tick < prev_tick);
+    } else {
+        return (cur_tick < prev_tick) && (cur_tick >= match_tick);
+    }
+}
+
+/**
+ * Compute the time when the interrupt has to be triggered and schedule it.
+ *
+ * If there is no event in the queue or the next event to execute is in more
+ * than ticker.queue.max_delta ticks from now then the ticker irq will be
+ * scheduled in ticker.queue.max_delta ticks. Otherwise the irq will be
+ * scheduled to happen when the running counter reach the timestamp of the
+ * first event in the queue.
+ *
+ * @note If there is no event in the queue then the interrupt is scheduled to
+ * in ticker.queue.max_delta. This is necessary to keep track
+ * of the timer overflow.
+ */
+static void schedule_interrupt(const ticker_data_t *const ticker)
+{
+    ticker_event_queue_t *queue = ticker->queue;
+    if (queue->suspended || ticker->queue->dispatching) {
+        // Don't schedule the next interrupt until dispatching is
+        // finished. This prevents repeated calls to interface->set_interrupt
+        return;
+    }
+
+    update_present_time(ticker);
+
+    if (ticker->queue->head) {
+        us_timestamp_t present = ticker->queue->present_time;
+        us_timestamp_t match_time = ticker->queue->head->timestamp;
+
+        // if the event at the head of the queue is in the past then schedule
+        // it immediately.
+        if (match_time <= present) {
+            ticker->interface->fire_interrupt();
+            return;
+        }
+
+        timestamp_t match_tick = compute_tick_round_up(ticker, match_time);
+
+        // The same tick should never occur since match_tick is rounded up.
+        // If the same tick is returned scheduling will not work correctly.
+        MBED_ASSERT(match_tick != queue->tick_last_read);
+
+        ticker->interface->set_interrupt(match_tick);
+        timestamp_t cur_tick = ticker->interface->read();
+
+        if (_ticker_match_interval_passed(queue->tick_last_read, cur_tick, match_tick)) {
+            ticker->interface->fire_interrupt();
+        }
+    } else {
+        uint32_t match_tick =
+            (queue->tick_last_read + queue->max_delta) & queue->bitmask;
+        ticker->interface->set_interrupt(match_tick);
+    }
+}
+
+void ticker_set_handler(const ticker_data_t *const ticker, ticker_event_handler handler)
+{
+    initialize(ticker);
+
+    core_util_critical_section_enter();
+    set_handler(ticker, handler);
+    core_util_critical_section_exit();
+}
+
+void ticker_irq_handler(const ticker_data_t *const ticker)
+{
+    core_util_critical_section_enter();
+
+    ticker->interface->clear_interrupt();
+    if (ticker->queue->suspended) {
+        core_util_critical_section_exit();
+        return;
+    }
+
+    /* Go through all the pending TimerEvents */
+    ticker->queue->dispatching = true;
+    while (1) {
+        if (ticker->queue->head == NULL) {
+            break;
+        }
+
+        // update the current timestamp used by the queue
+        update_present_time(ticker);
+
+        if (ticker->queue->head->timestamp <= ticker->queue->present_time) {
+            // This event was in the past:
+            //      point to the following one and execute its handler
+            ticker_event_t *p = ticker->queue->head;
+            ticker->queue->head = ticker->queue->head->next;
+            if (ticker->queue->event_handler != NULL) {
+                (*ticker->queue->event_handler)(p->id); // NOTE: the handler can set new events
+            }
+            /* Note: We continue back to examining the head because calling the
+             * event handler may have altered the chain of pending events. */
+        } else {
+            break;
+        }
+    }
+    ticker->queue->dispatching = false;
+
+    schedule_interrupt(ticker);
+
+    core_util_critical_section_exit();
+}
+
+void ticker_insert_event(const ticker_data_t *const ticker, ticker_event_t *obj, timestamp_t timestamp, uint32_t id)
+{
+    core_util_critical_section_enter();
+
+    // update the current timestamp
+    update_present_time(ticker);
+    us_timestamp_t absolute_timestamp = convert_timestamp(
+                                            ticker->queue->present_time,
+                                            timestamp
+                                        );
+
+    // defer to ticker_insert_event_us
+    ticker_insert_event_us(
+        ticker,
+        obj, absolute_timestamp, id
+    );
+
+    core_util_critical_section_exit();
+}
+
+void ticker_insert_event_us(const ticker_data_t *const ticker, ticker_event_t *obj, us_timestamp_t timestamp, uint32_t id)
+{
+    core_util_critical_section_enter();
+
+    // update the current timestamp
+    update_present_time(ticker);
+
+    // initialise our data
+    obj->timestamp = timestamp;
+    obj->id = id;
+
+    /* Go through the list until we either reach the end, or find
+       an element this should come before (which is possibly the
+       head). */
+    ticker_event_t *prev = NULL, *p = ticker->queue->head;
+    while (p != NULL) {
+        /* check if we come before p */
+        if (timestamp < p->timestamp) {
+            break;
+        }
+        /* go to the next element */
+        prev = p;
+        p = p->next;
+    }
+
+    /* if we're at the end p will be NULL, which is correct */
+    obj->next = p;
+
+    /* if prev is NULL we're at the head */
+    if (prev == NULL) {
+        ticker->queue->head = obj;
+        schedule_interrupt(ticker);
+    } else {
+        prev->next = obj;
+    }
+
+    core_util_critical_section_exit();
+}
+
+void ticker_remove_event(const ticker_data_t *const ticker, ticker_event_t *obj)
+{
+    core_util_critical_section_enter();
+
+    // remove this object from the list
+    if (ticker->queue->head == obj) {
+        // first in the list, so just drop me
+        ticker->queue->head = obj->next;
+        schedule_interrupt(ticker);
+    } else {
+        // find the object before me, then drop me
+        ticker_event_t *p = ticker->queue->head;
+        while (p != NULL) {
+            if (p->next == obj) {
+                p->next = obj->next;
+                break;
+            }
+            p = p->next;
+        }
+    }
+
+    core_util_critical_section_exit();
+}
+
+timestamp_t ticker_read(const ticker_data_t *const ticker)
+{
+    return ticker_read_us(ticker);
+}
+
+us_timestamp_t ticker_read_us(const ticker_data_t *const ticker)
+{
+    initialize(ticker);
+
+    core_util_critical_section_enter();
+    update_present_time(ticker);
+    core_util_critical_section_exit();
+
+    return ticker->queue->present_time;
+}
+
+int ticker_get_next_timestamp(const ticker_data_t *const data, timestamp_t *timestamp)
+{
+    int ret = 0;
+
+    /* if head is NULL, there are no pending events */
+    core_util_critical_section_enter();
+    if (data->queue->head != NULL) {
+        *timestamp = data->queue->head->timestamp;
+        ret = 1;
+    }
+    core_util_critical_section_exit();
+
+    return ret;
+}
+
+void ticker_suspend(const ticker_data_t *const ticker)
+{
+    core_util_critical_section_enter();
+
+    ticker->queue->suspended = true;
+
+    core_util_critical_section_exit();
+}
+
+void ticker_resume(const ticker_data_t *const ticker)
+{
+    core_util_critical_section_enter();
+
+    ticker->queue->suspended = false;
+    if (ticker->queue->initialized) {
+        ticker->queue->tick_last_read = ticker->interface->read();
+
+        update_present_time(ticker);
+        schedule_interrupt(ticker);
+    } else {
+        initialize(ticker);
+    }
+
+    core_util_critical_section_exit();
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_us_ticker_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_us_ticker_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/mbed_us_ticker_api.c	(revision 429)
@@ -0,0 +1,57 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal/us_ticker_api.h"
+
+static ticker_event_queue_t events = { 0 };
+
+static ticker_irq_handler_type irq_handler = ticker_irq_handler;
+
+static const ticker_interface_t us_interface = {
+    .init = us_ticker_init,
+    .read = us_ticker_read,
+    .disable_interrupt = us_ticker_disable_interrupt,
+    .clear_interrupt = us_ticker_clear_interrupt,
+    .set_interrupt = us_ticker_set_interrupt,
+    .fire_interrupt = us_ticker_fire_interrupt,
+    .get_info = us_ticker_get_info,
+    .free = us_ticker_free,
+};
+
+static const ticker_data_t us_data = {
+    .interface = &us_interface,
+    .queue = &events
+};
+
+const ticker_data_t *get_us_ticker_data(void)
+{
+    return &us_data;
+}
+
+ticker_irq_handler_type set_us_ticker_irq_handler(ticker_irq_handler_type ticker_irq_handler)
+{
+    ticker_irq_handler_type prev_irq_handler = irq_handler;
+
+    irq_handler = ticker_irq_handler;
+
+    return prev_irq_handler;
+}
+
+void us_ticker_irq_handler(void)
+{
+    if (irq_handler) {
+        irq_handler(&us_data);
+    }
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/pinmap.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/pinmap.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/pinmap.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -44,2 +47,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/port_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/port_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/port_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -25,13 +28,59 @@
 #endif
 
+/** Port HAL structure. port_s is declared in the target's HAL
+ */
 typedef struct port_s port_t;
 
+/**
+ * \defgroup hal_port Port HAL functions
+ * @{
+ */
+
+/** Get the pin name from the port's pin number
+ *
+ * @param port  The port name
+ * @param pin_n The pin number within the specified port
+ * @return The pin name for the port's pin number
+ */
 PinName port_pin(PortName port, int pin_n);
 
-void port_init (port_t *obj, PortName port, int mask, PinDirection dir);
-void port_mode (port_t *obj, PinMode mode);
-void port_dir  (port_t *obj, PinDirection dir);
+/** Initilize the port
+ *
+ * @param obj  The port object to initialize
+ * @param port The port name
+ * @param mask The bitmask to identify which bits in the port should be included (0 - ignore)
+ * @param dir  The port direction
+ */
+void port_init(port_t *obj, PortName port, int mask, PinDirection dir);
+
+/** Set the input port mode
+ *
+ * @param obj  The port object
+ * @param mode THe port mode to be set
+ */
+void port_mode(port_t *obj, PinMode mode);
+
+/** Set port direction (in/out)
+ *
+ * @param obj The port object
+ * @param dir The port direction to be set
+ */
+void port_dir(port_t *obj, PinDirection dir);
+
+/** Write value to the port
+ *
+ * @param obj   The port object
+ * @param value The value to be set
+ */
 void port_write(port_t *obj, int value);
-int  port_read (port_t *obj);
+
+/** Read the current value on the port
+ *
+ * @param obj The port object
+ * @return An integer with each bit corresponding to an associated port pin setting
+ */
+int port_read(port_t *obj);
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -41,2 +90,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/pwmout_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/pwmout_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/pwmout_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -25,19 +28,85 @@
 #endif
 
+/** Pwmout hal structure. pwmout_s is declared in the target's hal
+ */
 typedef struct pwmout_s pwmout_t;
 
-void pwmout_init         (pwmout_t* obj, PinName pin);
-void pwmout_free         (pwmout_t* obj);
+/**
+ * \defgroup hal_pwmout Pwmout hal functions
+ * @{
+ */
 
-void  pwmout_write       (pwmout_t* obj, float percent);
-float pwmout_read        (pwmout_t* obj);
+/** Initialize the pwm out peripheral and configure the pin
+ *
+ * @param obj The pwmout object to initialize
+ * @param pin The pwmout pin to initialize
+ */
+void pwmout_init(pwmout_t *obj, PinName pin);
 
-void pwmout_period       (pwmout_t* obj, float seconds);
-void pwmout_period_ms    (pwmout_t* obj, int ms);
-void pwmout_period_us    (pwmout_t* obj, int us);
+/** Deinitialize the pwmout object
+ *
+ * @param obj The pwmout object
+ */
+void pwmout_free(pwmout_t *obj);
 
-void pwmout_pulsewidth   (pwmout_t* obj, float seconds);
-void pwmout_pulsewidth_ms(pwmout_t* obj, int ms);
-void pwmout_pulsewidth_us(pwmout_t* obj, int us);
+/** Set the output duty-cycle in range <0.0f, 1.0f>
+ *
+ * Value 0.0f represents 0 percentage, 1.0f represents 100 percent.
+ * @param obj     The pwmout object
+ * @param percent The floating-point percentage number
+ */
+void pwmout_write(pwmout_t *obj, float percent);
+
+/** Read the current float-point output duty-cycle
+ *
+ * @param obj The pwmout object
+ * @return A floating-point output duty-cycle
+ */
+float pwmout_read(pwmout_t *obj);
+
+/** Set the PWM period specified in seconds, keeping the duty cycle the same
+ *
+ * Periods smaller than microseconds (the lowest resolution) are set to zero.
+ * @param obj     The pwmout object
+ * @param seconds The floating-point seconds period
+ */
+void pwmout_period(pwmout_t *obj, float seconds);
+
+/** Set the PWM period specified in miliseconds, keeping the duty cycle the same
+ *
+ * @param obj The pwmout object
+ * @param ms  The milisecond period
+ */
+void pwmout_period_ms(pwmout_t *obj, int ms);
+
+/** Set the PWM period specified in microseconds, keeping the duty cycle the same
+ *
+ * @param obj The pwmout object
+ * @param us  The microsecond period
+ */
+void pwmout_period_us(pwmout_t *obj, int us);
+
+/** Set the PWM pulsewidth specified in seconds, keeping the period the same.
+ *
+ * @param obj     The pwmout object
+ * @param seconds The floating-point pulsewidth in seconds
+ */
+void pwmout_pulsewidth(pwmout_t *obj, float seconds);
+
+/** Set the PWM pulsewidth specified in miliseconds, keeping the period the same.
+ *
+ * @param obj The pwmout object
+ * @param ms  The floating-point pulsewidth in miliseconds
+ */
+void pwmout_pulsewidth_ms(pwmout_t *obj, int ms);
+
+/** Set the PWM pulsewidth specified in microseconds, keeping the period the same.
+ *
+ * @param obj The pwmout object
+ * @param us  The floating-point pulsewidth in microseconds
+ */
+void pwmout_pulsewidth_us(pwmout_t *obj, int us);
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -48,2 +117,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/rtc_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/rtc_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/rtc_api.h	(revision 429)
@@ -14,10 +14,12 @@
  * limitations under the License.
  */
+
+/** \addtogroup hal */
+/** @{*/
+
 #ifndef MBED_RTC_API_H
 #define MBED_RTC_API_H
 
 #include "device.h"
-
-#if DEVICE_RTC
 
 #include <time.h>
@@ -27,10 +29,153 @@
 #endif
 
+/**
+ * \defgroup hal_rtc RTC hal
+ *
+ * The RTC hal provides a low level interface to the Real Time Counter (RTC) of a
+ * target.
+ *
+ * # Defined behaviour
+ * * The function ::rtc_init is safe to call repeatedly - Verified by test ::rtc_init_test.
+ * * RTC accuracy is at least 10% - Verified by test ::rtc_accuracy_test.
+ * * Init/free doesn't stop RTC from counting - Verified by test ::rtc_persist_test.
+ * * Software reset doesn't stop RTC from counting - Verified by test ::rtc_reset_test.
+ * * Sleep modes don't stop RTC from counting - Verified by test ::rtc_sleep_test.
+ * * Shutdown mode doesn't stop RTC from counting - Not verified.
+ * * The functions ::rtc_write/::rtc_read provides availability to set/get RTC time
+ * - Verified by test ::rtc_write_read_test.
+ * * The functions ::rtc_isenabled returns 1 if the RTC is counting and the time has been set,
+ * 0 otherwise - Verified by test ::rtc_enabled_test.
+ *
+ * # Undefined behaviour
+ * * Calling any function other than ::rtc_init before the initialisation of the RTC
+ *
+ * # Potential bugs
+ * * Incorrect overflow handling - Verified by ::rtc_range_test
+ * * Glitches due to ripple counter - Verified by ::rtc_glitch_test
+ *
+ * @see hal_rtc_tests
+ *
+ * @{
+ */
+
+/**
+ * \defgroup hal_rtc_tests RTC hal tests
+ * The RTC test validate proper implementation of the RTC hal.
+ *
+ * To run the RTC hal tests use the command:
+ *
+ *     mbed test -t <toolchain> -m <target> -n tests-mbed_hal-rtc*
+ */
+
+
+/** Initialize the RTC peripheral
+ *
+ * Powerup the RTC in perpetration for access. This function must be called
+ * before any other RTC functions ares called. This does not change the state
+ * of the RTC. It just enables access to it.
+ *
+ * @note This function is safe to call repeatedly - Tested by ::rtc_init_test
+ *
+ * Example Implementation Pseudo Code:
+ * @code
+ * void rtc_init()
+ * {
+ *     // Enable clock gate so processor can read RTC registers
+ *     POWER_CTRL |= POWER_CTRL_RTC_Msk;
+ *
+ *     // See if the RTC is already setup
+ *     if (!(RTC_STATUS & RTC_STATUS_COUNTING_Msk)) {
+ *
+ *         // Setup the RTC clock source
+ *         RTC_CTRL |= RTC_CTRL_CLK32_Msk;
+ *     }
+ * }
+ * @endcode
+ */
 void rtc_init(void);
+
+/** Deinitialize RTC
+ *
+ * Powerdown the RTC in preparation for sleep, powerdown or reset. That should only
+ * affect the CPU domain and not the time keeping logic.
+ * After this function is called no other RTC functions should be called
+ * except for ::rtc_init.
+ *
+ * @note This function does not stop the RTC from counting - Tested by ::rtc_persist_test
+ *
+ * Example Implementation Pseudo Code:
+ * @code
+ * void rtc_free()
+ * {
+ *     // Disable clock gate since processor no longer needs to read RTC registers
+ *     POWER_CTRL &= ~POWER_CTRL_RTC_Msk;
+ * }
+ * @endcode
+ */
 void rtc_free(void);
+
+/** Check if the RTC has the time set and is counting
+ *
+ * @retval 0 The time reported by the RTC is not valid
+ * @retval 1 The time has been set the RTC is counting
+ *
+ * Example Implementation Pseudo Code:
+ * @code
+ * int rtc_isenabled()
+ * {
+ *     if (RTC_STATUS & RTC_STATUS_COUNTING_Msk) {
+ *         return 1;
+ *     } else {
+ *         return 0;
+ *     }
+ * }
+ * @endcode
+ */
 int rtc_isenabled(void);
 
+/** Get the current time from the RTC peripheral
+ *
+ * @return The current time in seconds
+ *
+ * @note Some RTCs are not synchronized with the main clock. If
+ * this is the case with your RTC then you must read the RTC time
+ * in a loop to prevent reading the wrong time due to a glitch.
+ * The test ::rtc_glitch_test is intended to catch this bug.
+ *
+ * Example implementation for an unsynchronized ripple counter:
+ * @code
+ * time_t rtc_read()
+ * {
+ *     uint32_t val;
+ *     uint32_t last_val;
+ *
+ *     // Loop until the same value is read twice
+ *     val = RTC_SECONDS;
+ *     do {
+ *         last_val = val;
+ *         val = RTC_SECONDS;
+ *     } while (last_val != val);
+ *
+ *     return (time_t)val;
+ * }
+ * @endcode
+ */
 time_t rtc_read(void);
+
+/** Write the current time in seconds to the RTC peripheral
+ *
+ * @param t The current time to be set in seconds.
+ *
+ * Example Implementation Pseudo Code:
+ * @code
+ * void rtc_write(time_t t)
+ * {
+ *     RTC_SECONDS = t;
+ * }
+ * @endcode
+ */
 void rtc_write(time_t t);
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -40,3 +185,3 @@
 #endif
 
-#endif
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/serial_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/serial_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/serial_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -18,6 +21,6 @@
 
 #include "device.h"
-#include "buffer.h"
-#include "dma_api.h"
+#include "hal/buffer.h"
+#include "hal/dma_api.h"
 
 #if DEVICE_SERIAL
@@ -81,10 +84,10 @@
 
 #if DEVICE_SERIAL_ASYNCH
-/** Asynch serial hal structure
+/** Asynch serial HAL structure
  */
 typedef struct {
     struct serial_s serial;  /**< Target specific serial structure */
-    struct buffer_s tx_buff; /**< Tx buffer */
-    struct buffer_s rx_buff; /**< Rx buffer */
+    struct buffer_s tx_buff; /**< TX buffer */
+    struct buffer_s rx_buff; /**< RX buffer */
     uint8_t char_match;      /**< Character to be matched */
     uint8_t char_found;      /**< State of the matched character */
@@ -92,5 +95,5 @@
 
 #else
-/** Non-asynch serial hal structure
+/** Non-asynch serial HAL structure
  */
 typedef struct serial_s serial_t;
@@ -103,14 +106,14 @@
 
 /**
- * \defgroup GeneralSerial Serial Configuration Functions
+ * \defgroup hal_GeneralSerial Serial Configuration Functions
  * @{
  */
 
 /** Initialize the serial peripheral. It sets the default parameters for serial
- *  peripheral, and configure its specifieds pins.
- *
- * @param obj The serial object
- * @param tx  The TX pin
- * @param rx  The RX pin
+ *  peripheral, and configures its specifieds pins.
+ *
+ * @param obj The serial object
+ * @param tx  The TX pin name
+ * @param rx  The RX pin name
  */
 void serial_init(serial_t *obj, PinName tx, PinName rx);
@@ -139,8 +142,8 @@
 void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits);
 
-/** The serial interrupt handler registration.
+/** The serial interrupt handler registration
  *
  * @param obj     The serial object
- * @param handler The interrupt handler which will be invoked when interrupt fires.
+ * @param handler The interrupt handler which will be invoked when the interrupt fires
  * @param id      The SerialBase object
  */
@@ -161,5 +164,5 @@
 int  serial_getc(serial_t *obj);
 
-/** Put a character. This is a blocking call, waiting for a peripheral to be available
+/** Send a character. This is a blocking call, waiting for a peripheral to be available
  *  for writing
  *
@@ -172,5 +175,5 @@
  *
  * @param obj The serial object
- * @return Non-zero value if a character can be read, 0 if nothing to read.
+ * @return Non-zero value if a character can be read, 0 if nothing to read
  */
 int  serial_readable(serial_t *obj);
@@ -203,5 +206,5 @@
 /** Configure the TX pin for UART function.
  *
- * @param tx The pin used for TX
+ * @param tx The pin name used for TX
  */
 void serial_pinout_tx(PinName tx);
@@ -212,6 +215,6 @@
  * @param obj    The serial object
  * @param type   The type of the flow control. Look at the available FlowControl types.
- * @param rxflow The tx pin
- * @param txflow The rx pin
+ * @param rxflow The TX pin name
+ * @param txflow The RX pin name
  */
 void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, PinName txflow);
@@ -222,5 +225,5 @@
 
 /**
- * \defgroup AsynchSerial Asynchronous Serial Hardware Abstraction Layer
+ * \defgroup hal_AsynchSerial Asynchronous Serial Hardware Abstraction Layer
  * @{
  */
@@ -230,11 +233,11 @@
  *
  * @param obj       The serial object
- * @param tx        The buffer for sending
- * @param tx_length The number of words to transmit
- * @param tx_width  The bit width of buffer word
+ * @param tx        The transmit buffer
+ * @param tx_length The number of bytes to transmit
+ * @param tx_width  Deprecated argument
  * @param handler   The serial handler
  * @param event     The logical OR of events to be registered
  * @param hint      A suggestion for how to use DMA with this transfer
- * @return Returns number of data transfered, or 0 otherwise
+ * @return Returns number of data transfered, otherwise returns 0
  */
 int serial_tx_asynch(serial_t *obj, const void *tx, size_t tx_length, uint8_t tx_width, uint32_t handler, uint32_t event, DMAUsage hint);
@@ -244,7 +247,7 @@
  *
  * @param obj        The serial object
- * @param rx         The buffer for sending
- * @param rx_length  The number of words to transmit
- * @param rx_width   The bit width of buffer word
+ * @param rx         The receive buffer
+ * @param rx_length  The number of bytes to receive
+ * @param rx_width   Deprecated argument
  * @param handler    The serial handler
  * @param event      The logical OR of events to be registered
@@ -272,10 +275,10 @@
  *
  * @param obj The serial object
- * @return Returns event flags if a RX transfer termination condition was met or 0 otherwise
+ * @return Returns event flags if an RX transfer termination condition was met; otherwise returns 0
  */
 int serial_irq_handler_asynch(serial_t *obj);
 
 /** Abort the ongoing TX transaction. It disables the enabled interupt for TX and
- *  flush TX hardware buffer if TX FIFO is used
+ *  flushes the TX hardware buffer if TX FIFO is used
  *
  * @param obj The serial object
@@ -283,6 +286,6 @@
 void serial_tx_abort_asynch(serial_t *obj);
 
-/** Abort the ongoing RX transaction It disables the enabled interrupt for RX and
- *  flush RX hardware buffer if RX FIFO is used
+/** Abort the ongoing RX transaction. It disables the enabled interrupt for RX and
+ *  flushes the RX hardware buffer if RX FIFO is used
  *
  * @param obj The serial object
@@ -301,2 +304,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/sleep_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/sleep_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/sleep_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -25,7 +28,43 @@
 #endif
 
+/**
+ * \defgroup hal_sleep sleep hal requirements
+ * Low level interface to the sleep mode of a target.
+ *
+ * # Defined behaviour
+ *
+ * * Sleep mode
+ *   * wake-up time should be less than 10 us - Verified by sleep_usticker_test().
+ *   * the processor can be woken up by any internal peripheral interrupt  - Verified by sleep_usticker_test().
+ *   * all peripherals operate as in run mode - not verified.
+ *   * the processor can be woken up by external pin interrupt - not verified.
+ * * Deep sleep
+ *   * the wake-up time should be less than 10 ms - Verified by deepsleep_lpticker_test().
+ *   * lp ticker should wake up a target from this mode - Verified by deepsleep_lpticker_test().
+ *   * RTC should wake up a target from this mode - not verified.
+ *   * an external interrupt on a pin should wake up a target from this mode - not verified.
+ *   * a watchdog timer should wake up a target from this mode - not verified.
+ *   * High-speed clocks are turned off - Verified by deepsleep_high_speed_clocks_turned_off_test().
+ *   * RTC keeps time - Verified by rtc_sleep_test().
+ *
+ * # Undefined behaviour
+ *
+ * * peripherals aside from RTC, GPIO and lp ticker result in undefined behaviour in deep sleep.
+ * @{
+ */
+
+/**
+ * \defgroup hal_sleep_tests sleep hal tests
+ * The sleep HAL tests ensure driver conformance to defined behaviour.
+ *
+ * To run the sleep hal tests use the command:
+ *
+ *     mbed test -t <toolchain> -m <target> -n tests-mbed_hal-sleep*
+ *
+ */
+
 /** Send the microcontroller to sleep
  *
- * The processor is setup ready for sleep, and sent to sleep using __WFI(). In this mode, the
+ * The processor is setup ready for sleep, and sent to sleep. In this mode, the
  * system clock to the core is stopped until a reset or an interrupt occurs. This eliminates
  * dynamic power used by the processor, memory systems and buses. The processor, peripheral and
@@ -34,25 +73,22 @@
  * The processor can be woken up by any internal peripheral interrupt or external pin interrupt.
  *
- * @note
- *  The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored.
- * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be
- * able to access the LocalFileSystem
+ * The wake-up time shall be less than 10 us.
+ *
  */
-void sleep(void);
+void hal_sleep(void);
 
 /** Send the microcontroller to deep sleep
  *
  * This processor is setup ready for deep sleep, and sent to sleep using __WFI(). This mode
- * has the same sleep features as sleep plus it powers down peripherals and clocks. All state
- * is still maintained.
+ * has the same sleep features as sleep plus it powers down peripherals and high frequency clocks.
+ * All state is still maintained.
  *
- * The processor can only be woken up by an external interrupt on a pin or a watchdog timer.
+ * The processor can only be woken up by low power ticker, RTC, an external interrupt on a pin or a watchdog timer.
  *
- * @note
- *  The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored.
- * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be
- * able to access the LocalFileSystem
+ * The wake-up time shall be less than 10 ms.
  */
-void deepsleep(void);
+void hal_deepsleep(void);
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -63,2 +99,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/spi_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/spi_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/spi_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2013 ARM Limited
@@ -18,6 +21,6 @@
 
 #include "device.h"
-#include "dma_api.h"
-#include "buffer.h"
+#include "hal/dma_api.h"
+#include "hal/buffer.h"
 
 #if DEVICE_SPI
@@ -28,13 +31,14 @@
 #define SPI_EVENT_ALL         (SPI_EVENT_ERROR | SPI_EVENT_COMPLETE | SPI_EVENT_RX_OVERFLOW)
 
-#define SPI_EVENT_INTERNAL_TRANSFER_COMPLETE (1 << 30) // internal flag to report an event occurred
+#define SPI_EVENT_INTERNAL_TRANSFER_COMPLETE (1 << 30) // Internal flag to report that an event occurred
 
 #define SPI_FILL_WORD         (0xFFFF)
+#define SPI_FILL_CHAR         (0xFF)
 
 #if DEVICE_SPI_ASYNCH
-/** Asynch spi hal structure
+/** Asynch SPI HAL structure
  */
 typedef struct {
-    struct spi_s spi;        /**< Target specific spi structure */
+    struct spi_s spi;        /**< Target specific SPI structure */
     struct buffer_s tx_buff; /**< Tx buffer */
     struct buffer_s rx_buff; /**< Rx buffer */
@@ -42,5 +46,5 @@
 
 #else
-/** Non-asynch spi hal structure
+/** Non-asynch SPI HAL structure
  */
 typedef struct spi_s spi_t;
@@ -53,5 +57,5 @@
 
 /**
- * \defgroup GeneralSPI SPI Configuration Functions
+ * \defgroup hal_GeneralSPI SPI Configuration Functions
  * @{
  */
@@ -82,5 +86,6 @@
 /** Configure the SPI format
  *
- * Set the number of bits per frame, configure clock polarity and phase, shift order and master/slave mode
+ * Set the number of bits per frame, configure clock polarity and phase, shift order and master/slave mode.
+ * The default bit order is MSB.
  * @param[in,out] obj   The SPI object to configure
  * @param[in]     bits  The number of bits per frame
@@ -113,4 +118,22 @@
 int  spi_master_write(spi_t *obj, int value);
 
+/** Write a block out in master mode and receive a value
+ *
+ *  The total number of bytes sent and received will be the maximum of
+ *  tx_length and rx_length. The bytes written will be padded with the
+ *  value 0xff.
+ *
+ * @param[in] obj        The SPI peripheral to use for sending
+ * @param[in] tx_buffer  Pointer to the byte-array of data to write to the device
+ * @param[in] tx_length  Number of bytes to write, may be zero
+ * @param[in] rx_buffer  Pointer to the byte-array of data to read from the device
+ * @param[in] rx_length  Number of bytes to read, may be zero
+ * @param[in] write_fill Default data transmitted while performing a read
+ * @returns
+ *      The number of bytes written and read from the device. This is
+ *      maximum of tx_length and rx_length.
+ */
+int spi_master_block_write(spi_t *obj, const char *tx_buffer, int tx_length, char *rx_buffer, int rx_length, char write_fill);
+
 /** Check if a value is available to read
  *
@@ -160,9 +183,9 @@
 /** Begin the SPI transfer. Buffer pointers and lengths are specified in tx_buff and rx_buff
  *
- * @param[in] obj       The SPI object which holds the transfer information
- * @param[in] tx        The buffer to send
- * @param[in] tx_length The number of words to transmit
- * @param[in] rx        The buffer to receive
- * @param[in] rx_length The number of words to receive
+ * @param[in] obj       The SPI object that holds the transfer information
+ * @param[in] tx        The transmit buffer
+ * @param[in] tx_length The number of bytes to transmit
+ * @param[in] rx        The receive buffer
+ * @param[in] rx_length The number of bytes to receive
  * @param[in] bit_width The bit width of buffer words
  * @param[in] event     The logical OR of events to be registered
@@ -176,10 +199,10 @@
  * Reads the received values out of the RX FIFO, writes values into the TX FIFO and checks for transfer termination
  * conditions, such as buffer overflows or transfer complete.
- * @param[in] obj     The SPI object which holds the transfer information
- * @return event flags if a transfer termination condition was met or 0 otherwise.
+ * @param[in] obj     The SPI object that holds the transfer information
+ * @return Event flags if a transfer termination condition was met; otherwise 0.
  */
 uint32_t spi_irq_handler_asynch(spi_t *obj);
 
-/** Attempts to determine if the SPI peripheral is already in use.
+/** Attempts to determine if the SPI peripheral is already in use
  *
  * If a temporary DMA channel has been allocated, peripheral is in use.
@@ -190,5 +213,5 @@
  * there are any bytes in the FIFOs.
  * @param[in] obj The SPI object to check for activity
- * @return non-zero if the SPI port is active or zero if it is not.
+ * @return Non-zero if the SPI port is active or zero if it is not.
  */
 uint8_t spi_active(spi_t *obj);
@@ -212,2 +235,4 @@
 
 #endif // MBED_SPI_API_H
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/ticker_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/ticker_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/ticker_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2015 ARM Limited
@@ -17,12 +20,26 @@
 #define MBED_TICKER_API_H
 
+#include <stdint.h>
+#include <stdbool.h>
 #include "device.h"
 
+/**
+ * Legacy format representing a timestamp in us.
+ * Given it is modeled as a 32 bit integer, this type can represent timestamp
+ * up to 4294 seconds (71 minutes).
+ * Prefer using us_timestamp_t which store timestamp as 64 bits integer.
+ */
 typedef uint32_t timestamp_t;
 
+/**
+ * A us timestamp stored in a 64 bit integer.
+ * Can store timestamp up to 584810 years.
+ */
+typedef uint64_t us_timestamp_t;
+
 /** Ticker's event structure
  */
 typedef struct ticker_event_s {
-    timestamp_t            timestamp; /**< Event's timestamp */
+    us_timestamp_t         timestamp; /**< Event's timestamp */
     uint32_t               id;        /**< TimerEvent object */
     struct ticker_event_s *next;      /**< Next event in the queue */
@@ -30,4 +47,12 @@
 
 typedef void (*ticker_event_handler)(uint32_t id);
+
+/** Information about the ticker implementation
+ */
+typedef struct {
+    uint32_t frequency;                           /**< Frequency in Hz this ticker runs at */
+    uint32_t bits;                                /**< Number of bits this ticker supports */
+} ticker_info_t;
+
 
 /** Ticker's interface structure - required API for a ticker
@@ -39,18 +64,32 @@
     void (*clear_interrupt)(void);                /**< Clear interrupt function */
     void (*set_interrupt)(timestamp_t timestamp); /**< Set interrupt function */
+    void (*fire_interrupt)(void);                 /**< Fire interrupt right-away */
+    void (*free)(void);                           /**< Disable function */
+    const ticker_info_t *(*get_info)(void);       /**< Return info about this ticker's implementation */
 } ticker_interface_t;
 
-/** Tickers events queue structure
+/** Ticker's event queue structure
  */
 typedef struct {
     ticker_event_handler event_handler; /**< Event handler */
     ticker_event_t *head;               /**< A pointer to head */
+    uint32_t frequency;                 /**< Frequency of the timer in Hz */
+    uint32_t bitmask;                   /**< Mask to be applied to time values read */
+    uint32_t max_delta;                 /**< Largest delta in ticks that can be used when scheduling */
+    uint64_t max_delta_us;              /**< Largest delta in us that can be used when scheduling */
+    uint32_t tick_last_read;            /**< Last tick read */
+    uint64_t tick_remainder;            /**< Ticks that have not been added to base_time */
+    us_timestamp_t present_time;        /**< Store the timestamp used for present time */
+    bool initialized;                   /**< Indicate if the instance is initialized */
+    bool dispatching;                   /**< The function ticker_irq_handler is dispatching */
+    bool suspended;                     /**< Indicate if the instance is suspended */
+    uint8_t frequency_shifts;           /**< If frequency is a value of 2^n, this is n, otherwise 0 */
 } ticker_event_queue_t;
 
-/** Tickers data structure
+/** Ticker's data structure
  */
 typedef struct {
     const ticker_interface_t *interface; /**< Ticker's interface */
-    ticker_event_queue_t *queue;         /**< Ticker's events queue */
+    ticker_event_queue_t *queue;         /**< Ticker's event queue */
 } ticker_data_t;
 
@@ -59,46 +98,127 @@
 #endif
 
-/** Initialize a ticker and sets the event handler
- *
- * @param data    The ticker's data
+/**
+ * \defgroup hal_ticker Ticker HAL functions
+ * @{
+ */
+
+/** Initialize a ticker and set the event handler
+ *
+ * @param ticker The ticker object.
  * @param handler A handler to be set
  */
-void ticker_set_handler(const ticker_data_t *const data, ticker_event_handler handler);
-
-/** Irq handler which goes through the events to trigger events in the past.
- *
- * @param data    The ticker's data
- */
-void ticker_irq_handler(const ticker_data_t *const data);
+void ticker_set_handler(const ticker_data_t *const ticker, ticker_event_handler handler);
+
+/** IRQ handler that goes through the events to trigger overdue events.
+ *
+ * @param ticker The ticker object.
+ */
+void ticker_irq_handler(const ticker_data_t *const ticker);
 
 /** Remove an event from the queue
  *
- * @param data The ticker's data
- * @param obj  The event's queue to be removed
- */
-void ticker_remove_event(const ticker_data_t *const data, ticker_event_t *obj);
-
-/** Insert an event from the queue
- *
- * @param data      The ticker's data
- * @param obj       The event's queue to be removed
+ * @param ticker The ticker object.
+ * @param obj  The event object to be removed from the queue
+ */
+void ticker_remove_event(const ticker_data_t *const ticker, ticker_event_t *obj);
+
+/** Insert an event to the queue
+ *
+ * The event will be executed in timestamp - ticker_read().
+ *
+ * @warning This function does not consider timestamp in the past. If an event
+ * is inserted with a timestamp less than the current timestamp then the event
+ * will be executed in timestamp - ticker_read() us.
+ * The internal counter wrap very quickly it is hard to decide weither an
+ * event is in the past or in 1 hour.
+ *
+ * @note prefer the use of ticker_insert_event_us which allows registration of
+ * absolute timestamp.
+ *
+ * @param ticker    The ticker object.
+ * @param obj       The event object to be inserted to the queue
  * @param timestamp The event's timestamp
  * @param id        The event object
  */
-void ticker_insert_event(const ticker_data_t *const data, ticker_event_t *obj, timestamp_t timestamp, uint32_t id);
-
-/** Read the current ticker's timestamp
- *
- * @param data The ticker's data
+void ticker_insert_event(const ticker_data_t *const ticker, ticker_event_t *obj, timestamp_t timestamp, uint32_t id);
+
+/** Insert an event to the queue
+ *
+ * The event will be executed in timestamp - ticker_read_us() us.
+ *
+ * @note If an event is inserted with a timestamp less than the current
+ * timestamp then the event will be scheduled immediately resulting in
+ * an instant call to event handler.
+ *
+ * @param ticker    The ticker object.
+ * @param obj       The event object to be inserted to the queue
+ * @param timestamp The event's timestamp
+ * @param id        The event object
+ */
+void ticker_insert_event_us(const ticker_data_t *const ticker, ticker_event_t *obj, us_timestamp_t timestamp, uint32_t id);
+
+/** Read the current (relative) ticker's timestamp
+ *
+ * @warning Return a relative timestamp because the counter wrap every 4294
+ * seconds.
+ *
+ * @param ticker The ticker object.
  * @return The current timestamp
  */
-timestamp_t ticker_read(const ticker_data_t *const data);
+timestamp_t ticker_read(const ticker_data_t *const ticker);
+
+/** Read the current (absolute) ticker's timestamp
+ *
+ * @warning Return an absolute timestamp counting from the initialization of the
+ * ticker.
+ *
+ * @param ticker The ticker object.
+ * @return The current timestamp
+ */
+us_timestamp_t ticker_read_us(const ticker_data_t *const ticker);
 
 /** Read the next event's timestamp
  *
- * @param data The ticker's data
+ * @param ticker        The ticker object.
+ * @param timestamp     The timestamp object.
  * @return 1 if timestamp is pending event, 0 if there's no event pending
  */
-int ticker_get_next_timestamp(const ticker_data_t *const data, timestamp_t *timestamp);
+int ticker_get_next_timestamp(const ticker_data_t *const ticker, timestamp_t *timestamp);
+
+/** Suspend this ticker
+ *
+ * When suspended reads will always return the same time and no
+ * events will be dispatched. When suspended the common layer
+ * will only ever call the interface function clear_interrupt()
+ * and that is only if ticker_irq_handler is called.
+ *
+ *
+ * @param ticker        The ticker object.
+ */
+void ticker_suspend(const ticker_data_t *const ticker);
+
+/** Resume this ticker
+ *
+ * When resumed the ticker will ignore any time that has passed
+ * and continue counting up where it left off.
+ *
+ * @param ticker        The ticker object.
+ */
+void ticker_resume(const ticker_data_t *const ticker);
+
+/* Private functions
+ *
+ * @cond PRIVATE
+ *
+ */
+
+int _ticker_match_interval_passed(timestamp_t prev_tick, timestamp_t cur_tick, timestamp_t match_tick);
+
+/*
+ * @endcond PRIVATE
+ *
+ */
+
+/**@}*/
 
 #ifdef __cplusplus
@@ -107,2 +227,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/trng_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/trng_api.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/trng_api.h	(revision 429)
@@ -0,0 +1,72 @@
+
+/** \addtogroup hal */
+/** @{*/
+/* mbed Microcontroller Library
+ * Copyright (c) 2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_TRNG_API_H
+#define MBED_TRNG_API_H
+
+#include <stddef.h>
+#include "device.h"
+
+#if DEVICE_TRNG
+
+/** TRNG HAL structure. trng_s is declared in the target's HAL
+ */
+typedef struct trng_s trng_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup hal_trng TRNG hal functions
+ * @{
+ */
+
+/** Initialize the TRNG peripheral
+ *
+ * @param obj The TRNG object
+ */
+void trng_init(trng_t *obj);
+
+/** Deinitialize the TRNG peripheral
+ *
+ * @param obj The TRNG object
+ */
+void trng_free(trng_t *obj);
+
+/** Get random data from TRNG peripheral
+ *
+ * @param obj The TRNG object
+ * @param output The pointer to an output array
+ * @param length The size of output data, to avoid buffer overwrite
+ * @param output_length The length of generated data
+ * @return 0 success, -1 fail
+ */
+int trng_get_bytes(trng_t *obj, uint8_t *output, size_t length, size_t *output_length);
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+#endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/hal/us_ticker_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/hal/us_ticker_api.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/hal/us_ticker_api.h	(revision 429)
@@ -1,2 +1,5 @@
+
+/** \addtogroup hal */
+/** @{*/
 /* mbed Microcontroller Library
  * Copyright (c) 2006-2015 ARM Limited
@@ -18,5 +21,5 @@
 
 #include <stdint.h>
-#include "ticker_api.h"
+#include "hal/ticker_api.h"
 
 #ifdef __cplusplus
@@ -25,13 +28,99 @@
 
 /**
- * \defgroup UsTicker Microseconds Ticker Functions
+ * \defgroup hal_us_ticker Microsecond Ticker
+ * Low level interface to the microsecond ticker of a target
+ *
+ * # Defined behavior
+ * * Has a reported frequency between 250KHz and 8MHz - Verified by test ::us_ticker_info_test
+ * * Has a counter that is at least 16 bits wide - Verified by test ::us_ticker_info_test
+ * * All behavior defined by the @ref hal_ticker_shared "ticker specification"
+ *
+ * # Undefined behavior
+ * * See the @ref hal_ticker_shared "ticker specification"
+ *
+ * @see hal_us_ticker_tests
+ *
  * @{
  */
 
+/**
+ * \defgroup hal_us_ticker_tests Microsecond Ticker tests
+ * Tests to validate the proper implementation of the microsecond ticker
+ *
+ * To run the microsecond ticker hal tests use the command:
+ *
+ *     mbed test -t <toolchain> -m <target> -n tests-mbed_hal-common_ticker*,tests-mbed_hal-us_ticker*
+ *
+ * @see hal_ticker_tests
+ *
+ */
+
+/**
+ * \defgroup hal_ticker_shared Ticker Hal
+ * Low level interface to the ticker of a target
+ *
+ * # Defined behavior
+ * * The function ticker_init is safe to call repeatedly - Verified by test ::ticker_init_test
+ * * The function ticker_init allows the ticker to keep counting and disables the ticker interrupt - Verified by test ::ticker_init_test
+ * * Ticker frequency is non-zero and counter is at least 8 bits - Verified by ::ticker_info_test
+ * * The ticker rolls over at (1 << bits) and continues counting starting from 0 - Verified by ::ticker_overflow_test
+ * * The ticker counts at the specified frequency +- 10% - Verified by ::ticker_frequency_test
+ * * The ticker increments by 1 each tick - Verified by ::ticker_increment_test
+ * * The ticker interrupt fires only when the ticker times increments to or past the value set by ticker_set_interrupt.
+ * Verified by ::ticker_interrupt_test and ::ticker_past_test
+ * * It is safe to call ticker_set_interrupt repeatedly before the handler is called - Verified by ::ticker_repeat_reschedule_test
+ * * The function ticker_fire_interrupt causes ticker_irq_handler to be called immediately from interrupt context -
+ * Verified by ::ticker_fire_now_test
+ * * The ticker operations ticker_read, ticker_clear_interrupt, ticker_set_interrupt and ticker_fire_interrupt
+ * take less than 20us to complete - Verified by ::ticker_speed_test
+ *
+ * # Undefined behavior
+ * * Calling any function other than ticker_init before the initialization of the ticker
+ * * Whether ticker_irq_handler is called a second time if the time wraps and matches the value set by ticker_set_interrupt again
+ * * Calling ticker_set_interrupt with a value that has more than the supported number of bits
+ * * Calling any function other than us_ticker_init after calling us_ticker_free
+ *
+ * # Potential bugs
+ * * Drift due to reschedule - Verified by ::ticker_repeat_reschedule_test
+ * * Incorrect overflow handling of timers - Verified by ::ticker_overflow_test
+ * * Interrupting at a time of 0 - Verified by ::ticker_overflow_test
+ * * Interrupt triggered more than once - Verified by ::ticker_interrupt_test
+ *
+ * @ingroup hal_us_ticker
+ * @ingroup hal_lp_ticker
+ */
+
+/**
+ * \defgroup hal_ticker_tests Ticker Tests
+ * Tests to validate the proper implementation of a ticker
+ *
+ * To run the ticker hal tests use the command:
+ *
+ *     mbed test -t <toolchain> -m <target> -n tests-mbed_hal-common_ticker*
+ *
+ * @ingroup hal_us_ticker
+ * @ingroup hal_lp_ticker
+ */
+
+
+typedef void (*ticker_irq_handler_type)(const ticker_data_t *const);
+
+/** Set ticker IRQ handler
+ *
+ * @param ticker_irq_handler IRQ handler to be connected
+ *
+ * @return previous ticker IRQ handler
+ *
+ * @note by default IRQ handler is set to ::ticker_irq_handler
+ * @note this function is primarily for testing purposes and it's not required part of HAL implementation
+ *
+ */
+ticker_irq_handler_type set_us_ticker_irq_handler(ticker_irq_handler_type ticker_irq_handler);
+
 /** Get ticker's data
  *
- * @return The low power ticker data
- */
-const ticker_data_t* get_us_ticker_data(void);
+ * @return The microsecond ticker data
+ */
+const ticker_data_t *get_us_ticker_data(void);
 
 
@@ -45,10 +134,79 @@
 /** Initialize the ticker
  *
+ * Initialize or re-initialize the ticker. This resets all the
+ * clocking and prescaler registers, along with disabling
+ * the compare interrupt.
+ *
+ * @note Initialization properties tested by ::ticker_init_test
+ *
+ * Pseudo Code:
+ * @code
+ * void us_ticker_init()
+ * {
+ *     // Enable clock gate so processor can read TIMER registers
+ *     POWER_CTRL |= POWER_CTRL_TIMER_Msk;
+ *
+ *     // Disable the timer and ensure it is powered down
+ *     TIMER_CTRL &= ~(TIMER_CTRL_ENABLE_Msk | TIMER_CTRL_COMPARE_ENABLE_Msk);
+ *
+ *     // Configure divisors
+ *     uint32_t prescale = SystemCoreClock / 1000000;
+ *     TIMER_PRESCALE = prescale - 1;
+ *     TIMER_CTRL |= TIMER_CTRL_ENABLE_Msk;
+ *
+ *     // Install the interrupt handler
+ *     NVIC_SetVector(TIMER_IRQn, (uint32_t)us_ticker_irq_handler);
+ *     NVIC_EnableIRQ(TIMER_IRQn);
+ * }
+ * @endcode
  */
 void us_ticker_init(void);
 
+/** Deinitialize the us ticker
+ *
+ * Powerdown the us ticker in preparation for sleep, powerdown, or reset.
+ *
+ * After this function is called, no other ticker functions should be called
+ * except us_ticker_init(), calling any function other than init is undefined.
+ *
+ * @note This function stops the ticker from counting.
+ *
+ * Pseudo Code:
+ * @code
+ * uint32_t us_ticker_free()
+ * {
+ *     // Disable timer
+ *     TIMER_CTRL &= ~TIMER_CTRL_ENABLE_Msk;
+ *
+ *     // Disable the compare interrupt
+ *     TIMER_CTRL &= ~TIMER_CTRL_COMPARE_ENABLE_Msk;
+ *
+ *     // Disable timer interrupt
+ *     NVIC_DisableIRQ(TIMER_IRQn);
+ *
+ *     // Disable clock gate so processor cannot read TIMER registers
+ *     POWER_CTRL &= ~POWER_CTRL_TIMER_Msk;
+ * }
+ * @endcode
+ *
+ */
+void us_ticker_free(void);
+
 /** Read the current counter
  *
- * @return The current timer's counter value in microseconds
+ * Read the current counter value without performing frequency conversions.
+ * If no rollover has occurred, the seconds passed since us_ticker_init()
+ * was called can be found by dividing the ticks returned by this function
+ * by the frequency returned by ::us_ticker_get_info.
+ *
+ * @return The current timer's counter value in ticks
+ *
+ * Pseudo Code:
+ * @code
+ * uint32_t us_ticker_read()
+ * {
+ *     return TIMER_COUNT;
+ * }
+ * @endcode
  */
 uint32_t us_ticker_read(void);
@@ -56,5 +214,22 @@
 /** Set interrupt for specified timestamp
  *
- * @param timestamp The time in microseconds to be set
+ * @param timestamp The time in ticks to be set
+ *
+ * @note no special handling needs to be done for times in the past
+ * as the common timer code will detect this and call
+ * us_ticker_fire_interrupt() if this is the case
+ *
+ * @note calling this function with timestamp of more than the supported
+ * number of bits returned by ::us_ticker_get_info results in undefined
+ * behavior.
+ *
+ * Pseudo Code:
+ * @code
+ * void us_ticker_set_interrupt(timestamp_t timestamp)
+ * {
+ *     TIMER_COMPARE = timestamp;
+ *     TIMER_CTRL |= TIMER_CTRL_COMPARE_ENABLE_Msk;
+ * }
+ * @endcode
  */
 void us_ticker_set_interrupt(timestamp_t timestamp);
@@ -62,4 +237,12 @@
 /** Disable us ticker interrupt
  *
+ * Pseudo Code:
+ * @code
+ * void us_ticker_disable_interrupt(void)
+ * {
+ *     // Disable the compare interrupt
+ *     TIMER_CTRL &= ~TIMER_CTRL_COMPARE_ENABLE_Msk;
+ * }
+ * @endcode
  */
 void us_ticker_disable_interrupt(void);
@@ -67,6 +250,44 @@
 /** Clear us ticker interrupt
  *
+ * Pseudo Code:
+ * @code
+ * void us_ticker_clear_interrupt(void)
+ * {
+ *     // Write to the ICR (interrupt clear register) of the TIMER
+ *     TIMER_ICR = TIMER_ICR_COMPARE_Msk;
+ * }
+ * @endcode
  */
 void us_ticker_clear_interrupt(void);
+
+/** Set pending interrupt that should be fired right away.
+ *
+ * The ticker should be initialized prior calling this function.
+ *
+ * Pseudo Code:
+ * @code
+ * void us_ticker_fire_interrupt(void)
+ * {
+ *     NVIC_SetPendingIRQ(TIMER_IRQn);
+ * }
+ * @endcode
+ */
+void us_ticker_fire_interrupt(void);
+
+/** Get frequency and counter bits of this ticker.
+ *
+ * Pseudo Code:
+ * @code
+ * const ticker_info_t* us_ticker_get_info()
+ * {
+ *     static const ticker_info_t info = {
+ *         1000000,    // 1 MHz
+ *         32          // 32 bit counter
+ *     };
+ *     return &info;
+ * }
+ * @endcode
+ */
+const ticker_info_t *us_ticker_get_info(void);
 
 /**@}*/
@@ -77,2 +298,4 @@
 
 #endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/mbed_stub.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/mbed_stub.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/mbed_stub.c	(revision 429)
@@ -0,0 +1,81 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ *
+ *  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$
+ */
+
+/*
+ *		カーネルのターゲット依存部（GR-PEACH用）
+ */
+
+#include <kernel.h>
+#include <sil.h>
+#include "us_ticker_api.h"
+#include <sys/types.h>
+#include <errno.h>
+#include "kernel_cfg.h"
+#include "t_syslog.h"
+
+void wait_us(int us);
+
+void wait(float s)
+{
+	wait_us(s * 1000000.0f);
+}
+
+void wait_ms(int ms)
+{
+	wait_us(ms * 1000);
+}
+
+void wait_us(int us)
+{
+	ER ercd;
+
+	ercd = dly_tsk(us);
+	if (ercd == E_CTX){
+		uint32_t start = us_ticker_read();
+		while ((us_ticker_read() - start) < (uint32_t)us);
+	}
+}
+
+void sta_ker();
+
+void main()
+{
+	sta_ker();
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_assert.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_assert.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_assert.c	(revision 429)
@@ -0,0 +1,27 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "platform/mbed_assert.h"
+#include "device.h"
+
+#include "platform/mbed_interface.h"
+#include "platform/mbed_critical.h"
+
+void mbed_assert_internal(const char *expr, const char *file, int line)
+{
+    core_util_critical_section_enter();
+    mbed_error_printf("mbed assertation failed: %s, file: %s, line %d \n", expr, file, line);
+    mbed_die();
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_assert.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_assert.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_assert.h	(revision 429)
@@ -0,0 +1,133 @@
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_Assert Assert macros
+ * @{
+ */
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_ASSERT_H
+#define MBED_ASSERT_H
+
+#include "mbed_preprocessor.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Internal mbed assert function which is invoked when MBED_ASSERT macro failes.
+ *  This function is active only if NDEBUG is not defined prior to including this
+ *  assert header file.
+ *  In case of MBED_ASSERT failing condition, error() is called with the assertation message.
+ *  @param expr Expresion to be checked.
+ *  @param file File where assertation failed.
+ *  @param line Failing assertation line number.
+ */
+void mbed_assert_internal(const char *expr, const char *file, int line);
+
+#ifdef __cplusplus
+}
+#endif
+
+/** MBED_ASSERT
+ *  Declare runtime assertions: results in runtime error if condition is false
+ *
+ *  @note
+ *  Use of MBED_ASSERT is limited to Debug and Develop builds.
+ *
+ *  @code
+ *
+ *  int Configure(serial_t *obj) {
+ *      MBED_ASSERT(obj);
+ *  }
+ *  @endcode
+ */
+#ifdef NDEBUG
+#define MBED_ASSERT(expr) ((void)0)
+
+#else
+#define MBED_ASSERT(expr)                                \
+do {                                                     \
+    if (!(expr)) {                                       \
+        mbed_assert_internal(#expr, __FILE__, __LINE__); \
+    }                                                    \
+} while (0)
+#endif
+
+
+/** MBED_STATIC_ASSERT
+ *  Declare compile-time assertions, results in compile-time error if condition is false
+ *
+ *  The assertion acts as a declaration that can be placed at file scope, in a
+ *  code block (except after a label), or as a member of a C++ class/struct/union.
+ *
+ *  @note
+ *  Use of MBED_STATIC_ASSERT as a member of a struct/union is limited:
+ *  - In C++, MBED_STATIC_ASSERT is valid in class/struct/union scope.
+ *  - In C, MBED_STATIC_ASSERT is not valid in struct/union scope, and
+ *    MBED_STRUCT_STATIC_ASSERT is provided as an alternative that is valid
+ *    in C and C++ class/struct/union scope.
+ *
+ *  @code
+ *  MBED_STATIC_ASSERT(MBED_LIBRARY_VERSION >= 120,
+ *          "The mbed library must be at least version 120");
+ *
+ *  int main() {
+ *      MBED_STATIC_ASSERT(sizeof(int) >= sizeof(char),
+ *              "An int must be larger than a char");
+ *  }
+ *  @endcode
+ */
+#if defined(__cplusplus) && (__cplusplus >= 201103L || __cpp_static_assert >= 200410L)
+#define MBED_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
+#elif !defined(__cplusplus) && __STDC_VERSION__ >= 201112L
+#define MBED_STATIC_ASSERT(expr, msg) _Static_assert(expr, msg)
+#elif defined(__cplusplus) && defined(__GNUC__) && defined(__GXX_EXPERIMENTAL_CXX0X__) \
+    && (__GNUC__*100 + __GNUC_MINOR__) > 403L
+#define MBED_STATIC_ASSERT(expr, msg) __extension__ static_assert(expr, msg)
+#elif !defined(__cplusplus) && defined(__GNUC__) && !defined(__CC_ARM) \
+    && (__GNUC__*100 + __GNUC_MINOR__) > 406L
+#define MBED_STATIC_ASSERT(expr, msg) __extension__ _Static_assert(expr, msg)
+#elif defined(__ICCARM__)
+#define MBED_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
+#else
+#define MBED_STATIC_ASSERT(expr, msg) \
+    enum {MBED_CONCAT(MBED_ASSERTION_AT_, __LINE__) = sizeof(char[(expr) ? 1 : -1])}
+#endif
+
+/** MBED_STRUCT_STATIC_ASSERT
+ *  Declare compile-time assertions, results in compile-time error if condition is false
+ *
+ *  Unlike MBED_STATIC_ASSERT, MBED_STRUCT_STATIC_ASSERT can and must be used
+ *  as a member of a C/C++ class/struct/union.
+ *
+ *  @code
+ *  struct thing {
+ *      MBED_STATIC_ASSERT(2 + 2 == 4,
+ *              "Hopefully the universe is mathematically consistent");
+ *  };
+ *  @endcode
+ */
+#define MBED_STRUCT_STATIC_ASSERT(expr, msg) int : (expr) ? 0 : -1
+
+
+#endif
+
+/** @}*/
+
+/**@}*/
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_board.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_board.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_board.c	(revision 429)
@@ -0,0 +1,90 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <stdio.h>
+#include "hal/gpio_api.h"
+#include "platform/mbed_wait_api.h"
+#include "platform/mbed_toolchain.h"
+#include "platform/mbed_interface.h"
+#include "platform/mbed_critical.h"
+#include "hal/serial_api.h"
+
+#if DEVICE_SERIAL
+extern int stdio_uart_inited;
+extern serial_t stdio_uart;
+#endif
+
+WEAK void mbed_die(void)
+{
+#if !defined (NRF51_H) && !defined(TARGET_EFM32)
+    core_util_critical_section_enter();
+#endif
+    gpio_t led_err;
+    gpio_init_out(&led_err, LED1);
+
+    while (1) {
+        for (int i = 0; i < 4; ++i) {
+            gpio_write(&led_err, 1);
+            wait_ms(150);
+            gpio_write(&led_err, 0);
+            wait_ms(150);
+        }
+
+        for (int i = 0; i < 4; ++i) {
+            gpio_write(&led_err, 1);
+            wait_ms(400);
+            gpio_write(&led_err, 0);
+            wait_ms(400);
+        }
+    }
+}
+
+void mbed_error_printf(const char *format, ...)
+{
+    va_list arg;
+    va_start(arg, format);
+    mbed_error_vfprintf(format, arg);
+    va_end(arg);
+}
+
+void mbed_error_vfprintf(const char *format, va_list arg)
+{
+#if DEVICE_SERIAL
+#define ERROR_BUF_SIZE      (128)
+    core_util_critical_section_enter();
+    char buffer[ERROR_BUF_SIZE];
+    int size = vsnprintf(buffer, ERROR_BUF_SIZE, format, arg);
+    if (size > 0) {
+        if (!stdio_uart_inited) {
+            serial_init(&stdio_uart, STDIO_UART_TX, STDIO_UART_RX);
+        }
+#if MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES
+        char stdio_out_prev = '\0';
+        for (int i = 0; i < size; i++) {
+            if (buffer[i] == '\n' && stdio_out_prev != '\r') {
+                serial_putc(&stdio_uart, '\r');
+            }
+            serial_putc(&stdio_uart, buffer[i]);
+            stdio_out_prev = buffer[i];
+        }
+#else
+        for (int i = 0; i < size; i++) {
+            serial_putc(&stdio_uart, buffer[i]);
+        }
+#endif
+    }
+    core_util_critical_section_exit();
+#endif
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_critical.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_critical.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_critical.c	(revision 429)
@@ -0,0 +1,341 @@
+/*
+ * Copyright (c) 2015-2016, ARM Limited, All Rights Reserved
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Declare __STDC_LIMIT_MACROS so stdint.h defines UINT32_MAX when using C++ */
+#define __STDC_LIMIT_MACROS
+#include "hal/critical_section_api.h"
+
+#include "cmsis.h"
+#include "platform/mbed_assert.h"
+#include "platform/mbed_critical.h"
+#include "platform/mbed_toolchain.h"
+
+// if __EXCLUSIVE_ACCESS rtx macro not defined, we need to get this via own-set architecture macros
+#ifndef MBED_EXCLUSIVE_ACCESS
+#ifndef __EXCLUSIVE_ACCESS
+#if ((__ARM_ARCH_7M__      == 1U) || \
+    (__ARM_ARCH_7EM__     == 1U) || \
+    (__ARM_ARCH_8M_BASE__ == 1U) || \
+    (__ARM_ARCH_8M_MAIN__ == 1U)) || \
+    (__ARM_ARCH_7A__ == 1U)
+#define MBED_EXCLUSIVE_ACCESS      1U
+#elif (__ARM_ARCH_6M__ == 1U)
+#define MBED_EXCLUSIVE_ACCESS      0U
+#else
+#error "Unknown architecture for exclusive access"
+#endif
+#else
+#define MBED_EXCLUSIVE_ACCESS __EXCLUSIVE_ACCESS
+#endif
+#endif
+
+static volatile uint32_t critical_section_reentrancy_counter = 0;
+
+bool core_util_are_interrupts_enabled(void)
+{
+#if defined(__CORTEX_A9)
+    return ((__get_CPSR() & 0x80) == 0);
+#else
+    return ((__get_PRIMASK() & 0x1) == 0);
+#endif
+}
+
+bool core_util_is_isr_active(void)
+{
+#if defined(__CORTEX_A9)
+    switch (__get_CPSR() & 0x1FU) {
+        case CPSR_M_USR:
+        case CPSR_M_SYS:
+            return false;
+        case CPSR_M_SVC:
+        default:
+            return true;
+    }
+#else
+    return (__get_IPSR() != 0U);
+#endif
+}
+
+bool core_util_in_critical_section(void)
+{
+    return hal_in_critical_section();
+}
+
+void core_util_critical_section_enter(void)
+{
+    // If the reentrancy counter overflows something has gone badly wrong.
+    MBED_ASSERT(critical_section_reentrancy_counter < UINT32_MAX);
+
+    hal_critical_section_enter();
+
+    ++critical_section_reentrancy_counter;
+}
+
+void core_util_critical_section_exit(void)
+{
+
+    // If critical_section_enter has not previously been called, do nothing
+    if (critical_section_reentrancy_counter == 0) {
+        return;
+    }
+
+    --critical_section_reentrancy_counter;
+
+    if (critical_section_reentrancy_counter == 0) {
+        hal_critical_section_exit();
+    }
+}
+
+#if MBED_EXCLUSIVE_ACCESS
+
+/* Supress __ldrex and __strex deprecated warnings - "#3731-D: intrinsic is deprecated" */
+#if defined (__CC_ARM)
+#pragma diag_suppress 3731
+#endif
+
+bool core_util_atomic_cas_u8(volatile uint8_t *ptr, uint8_t *expectedCurrentValue, uint8_t desiredValue)
+{
+    do {
+        uint8_t currentValue = __LDREXB(ptr);
+        if (currentValue != *expectedCurrentValue) {
+            *expectedCurrentValue = currentValue;
+            __CLREX();
+            return false;
+        }
+    } while (__STREXB(desiredValue, ptr));
+    return true;
+}
+
+bool core_util_atomic_cas_u16(volatile uint16_t *ptr, uint16_t *expectedCurrentValue, uint16_t desiredValue)
+{
+    do {
+        uint16_t currentValue = __LDREXH(ptr);
+        if (currentValue != *expectedCurrentValue) {
+            *expectedCurrentValue = currentValue;
+            __CLREX();
+            return false;
+        }
+    } while (__STREXH(desiredValue, ptr));
+    return true;
+}
+
+
+bool core_util_atomic_cas_u32(volatile uint32_t *ptr, uint32_t *expectedCurrentValue, uint32_t desiredValue)
+{
+    do {
+        uint32_t currentValue = __LDREXW(ptr);
+        if (currentValue != *expectedCurrentValue) {
+            *expectedCurrentValue = currentValue;
+            __CLREX();
+            return false;
+        }
+    } while (__STREXW(desiredValue, ptr));
+    return true;
+}
+
+uint8_t core_util_atomic_incr_u8(volatile uint8_t *valuePtr, uint8_t delta)
+{
+    uint8_t newValue;
+    do {
+        newValue = __LDREXB(valuePtr) + delta;
+    } while (__STREXB(newValue, valuePtr));
+    return newValue;
+}
+
+uint16_t core_util_atomic_incr_u16(volatile uint16_t *valuePtr, uint16_t delta)
+{
+    uint16_t newValue;
+    do {
+        newValue = __LDREXH(valuePtr) + delta;
+    } while (__STREXH(newValue, valuePtr));
+    return newValue;
+}
+
+uint32_t core_util_atomic_incr_u32(volatile uint32_t *valuePtr, uint32_t delta)
+{
+    uint32_t newValue;
+    do {
+        newValue = __LDREXW(valuePtr) + delta;
+    } while (__STREXW(newValue, valuePtr));
+    return newValue;
+}
+
+
+uint8_t core_util_atomic_decr_u8(volatile uint8_t *valuePtr, uint8_t delta)
+{
+    uint8_t newValue;
+    do {
+        newValue = __LDREXB(valuePtr) - delta;
+    } while (__STREXB(newValue, valuePtr));
+    return newValue;
+}
+
+uint16_t core_util_atomic_decr_u16(volatile uint16_t *valuePtr, uint16_t delta)
+{
+    uint16_t newValue;
+    do {
+        newValue = __LDREXH(valuePtr) - delta;
+    } while (__STREXH(newValue, valuePtr));
+    return newValue;
+}
+
+uint32_t core_util_atomic_decr_u32(volatile uint32_t *valuePtr, uint32_t delta)
+{
+    uint32_t newValue;
+    do {
+        newValue = __LDREXW(valuePtr) - delta;
+    } while (__STREXW(newValue, valuePtr));
+    return newValue;
+}
+
+#else
+
+bool core_util_atomic_cas_u8(volatile uint8_t *ptr, uint8_t *expectedCurrentValue, uint8_t desiredValue)
+{
+    bool success;
+    uint8_t currentValue;
+    core_util_critical_section_enter();
+    currentValue = *ptr;
+    if (currentValue == *expectedCurrentValue) {
+        *ptr = desiredValue;
+        success = true;
+    } else {
+        *expectedCurrentValue = currentValue;
+        success = false;
+    }
+    core_util_critical_section_exit();
+    return success;
+}
+
+bool core_util_atomic_cas_u16(volatile uint16_t *ptr, uint16_t *expectedCurrentValue, uint16_t desiredValue)
+{
+    bool success;
+    uint16_t currentValue;
+    core_util_critical_section_enter();
+    currentValue = *ptr;
+    if (currentValue == *expectedCurrentValue) {
+        *ptr = desiredValue;
+        success = true;
+    } else {
+        *expectedCurrentValue = currentValue;
+        success = false;
+    }
+    core_util_critical_section_exit();
+    return success;
+}
+
+
+bool core_util_atomic_cas_u32(volatile uint32_t *ptr, uint32_t *expectedCurrentValue, uint32_t desiredValue)
+{
+    bool success;
+    uint32_t currentValue;
+    core_util_critical_section_enter();
+    currentValue = *ptr;
+    if (currentValue == *expectedCurrentValue) {
+        *ptr = desiredValue;
+        success = true;
+    } else {
+        *expectedCurrentValue = currentValue;
+        success = false;
+    }
+    core_util_critical_section_exit();
+    return success;
+}
+
+
+uint8_t core_util_atomic_incr_u8(volatile uint8_t *valuePtr, uint8_t delta)
+{
+    uint8_t newValue;
+    core_util_critical_section_enter();
+    newValue = *valuePtr + delta;
+    *valuePtr = newValue;
+    core_util_critical_section_exit();
+    return newValue;
+}
+
+uint16_t core_util_atomic_incr_u16(volatile uint16_t *valuePtr, uint16_t delta)
+{
+    uint16_t newValue;
+    core_util_critical_section_enter();
+    newValue = *valuePtr + delta;
+    *valuePtr = newValue;
+    core_util_critical_section_exit();
+    return newValue;
+}
+
+uint32_t core_util_atomic_incr_u32(volatile uint32_t *valuePtr, uint32_t delta)
+{
+    uint32_t newValue;
+    core_util_critical_section_enter();
+    newValue = *valuePtr + delta;
+    *valuePtr = newValue;
+    core_util_critical_section_exit();
+    return newValue;
+}
+
+
+uint8_t core_util_atomic_decr_u8(volatile uint8_t *valuePtr, uint8_t delta)
+{
+    uint8_t newValue;
+    core_util_critical_section_enter();
+    newValue = *valuePtr - delta;
+    *valuePtr = newValue;
+    core_util_critical_section_exit();
+    return newValue;
+}
+
+uint16_t core_util_atomic_decr_u16(volatile uint16_t *valuePtr, uint16_t delta)
+{
+    uint16_t newValue;
+    core_util_critical_section_enter();
+    newValue = *valuePtr - delta;
+    *valuePtr = newValue;
+    core_util_critical_section_exit();
+    return newValue;
+}
+
+uint32_t core_util_atomic_decr_u32(volatile uint32_t *valuePtr, uint32_t delta)
+{
+    uint32_t newValue;
+    core_util_critical_section_enter();
+    newValue = *valuePtr - delta;
+    *valuePtr = newValue;
+    core_util_critical_section_exit();
+    return newValue;
+}
+
+#endif
+
+
+bool core_util_atomic_cas_ptr(void *volatile *ptr, void **expectedCurrentValue, void *desiredValue)
+{
+    return core_util_atomic_cas_u32(
+               (volatile uint32_t *)ptr,
+               (uint32_t *)expectedCurrentValue,
+               (uint32_t)desiredValue);
+}
+
+void *core_util_atomic_incr_ptr(void *volatile *valuePtr, ptrdiff_t delta)
+{
+    return (void *)core_util_atomic_incr_u32((volatile uint32_t *)valuePtr, (uint32_t)delta);
+}
+
+void *core_util_atomic_decr_ptr(void *volatile *valuePtr, ptrdiff_t delta)
+{
+    return (void *)core_util_atomic_decr_u32((volatile uint32_t *)valuePtr, (uint32_t)delta);
+}
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_critical.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_critical.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_critical.h	(revision 429)
@@ -0,0 +1,400 @@
+
+/*
+ * Copyright (c) 2015-2016, ARM Limited, All Rights Reserved
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MBED_UTIL_CRITICAL_H__
+#define __MBED_UTIL_CRITICAL_H__
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_critical critical section function
+ * @{
+ */
+
+/** Determine the current interrupts enabled state
+  *
+  * This function can be called to determine whether or not interrupts are currently enabled.
+  * @note
+  * NOTE:
+  * This function works for both cortex-A and cortex-M, although the underlyng implementation
+  * differs.
+  * @return true if interrupts are enabled, false otherwise
+  */
+bool core_util_are_interrupts_enabled(void);
+
+/** Determine if this code is executing from an interrupt
+  *
+  * This function can be called to determine if the code is running on interrupt context.
+  * @note
+  * NOTE:
+  * This function works for both cortex-A and cortex-M, although the underlyng implementation
+  * differs.
+  * @return true if in an isr, false otherwise
+  */
+bool core_util_is_isr_active(void);
+
+/** Mark the start of a critical section
+  *
+  * This function should be called to mark the start of a critical section of code.
+  * @note
+  * NOTES:
+  * 1) The use of this style of critical section is targetted at C based implementations.
+  * 2) These critical sections can be nested.
+  * 3) The interrupt enable state on entry to the first critical section (of a nested set, or single
+  *    section) will be preserved on exit from the section.
+  * 4) This implementation will currently only work on code running in privileged mode.
+  */
+void core_util_critical_section_enter(void);
+
+/** Mark the end of a critical section
+  *
+  * This function should be called to mark the end of a critical section of code.
+  * @note
+  * NOTES:
+  * 1) The use of this style of critical section is targetted at C based implementations.
+  * 2) These critical sections can be nested.
+  * 3) The interrupt enable state on entry to the first critical section (of a nested set, or single
+  *    section) will be preserved on exit from the section.
+  * 4) This implementation will currently only work on code running in privileged mode.
+  */
+void core_util_critical_section_exit(void);
+
+/**
+ * Determine if we are currently in a critical section
+ *
+ * @return true if in a critical section, false otherwise.
+ */
+bool core_util_in_critical_section(void);
+
+/**
+ * Atomic compare and set. It compares the contents of a memory location to a
+ * given value and, only if they are the same, modifies the contents of that
+ * memory location to a given new value. This is done as a single atomic
+ * operation. The atomicity guarantees that the new value is calculated based on
+ * up-to-date information; if the value had been updated by another thread in
+ * the meantime, the write would fail due to a mismatched expectedCurrentValue.
+ *
+ * Refer to https://en.wikipedia.org/wiki/Compare-and-set [which may redirect
+ * you to the article on compare-and swap].
+ *
+ * @param  ptr                  The target memory location.
+ * @param[in,out] expectedCurrentValue A pointer to some location holding the
+ *                              expected current value of the data being set atomically.
+ *                              The computed 'desiredValue' should be a function of this current value.
+ *                              @note: This is an in-out parameter. In the
+ *                              failure case of atomic_cas (where the
+ *                              destination isn't set), the pointee of expectedCurrentValue is
+ *                              updated with the current value.
+ * @param[in] desiredValue      The new value computed based on '*expectedCurrentValue'.
+ *
+ * @return                      true if the memory location was atomically
+ *                              updated with the desired value (after verifying
+ *                              that it contained the expectedCurrentValue),
+ *                              false otherwise. In the failure case,
+ *                              exepctedCurrentValue is updated with the new
+ *                              value of the target memory location.
+ *
+ * pseudocode:
+ * function cas(p : pointer to int, old : pointer to int, new : int) returns bool {
+ *     if *p != *old {
+ *         *old = *p
+ *         return false
+ *     }
+ *     *p = new
+ *     return true
+ * }
+ *
+ * @note: In the failure case (where the destination isn't set), the value
+ * pointed to by expectedCurrentValue is instead updated with the current value.
+ * This property helps writing concise code for the following incr:
+ *
+ * function incr(p : pointer to int, a : int) returns int {
+ *     done = false
+ *     value = *p // This fetch operation need not be atomic.
+ *     while not done {
+ *         done = atomic_cas(p, &value, value + a) // *value gets updated automatically until success
+ *     }
+ *     return value + a
+ * }
+ *
+ * @note: This corresponds to the C11 "atomic_compare_exchange_strong" - it
+ * always succeeds if the current value is expected, as per the pseudocode
+ * above; it will not spuriously fail as "atomic_compare_exchange_weak" may.
+ */
+bool core_util_atomic_cas_u8(volatile uint8_t *ptr, uint8_t *expectedCurrentValue, uint8_t desiredValue);
+
+/**
+ * Atomic compare and set. It compares the contents of a memory location to a
+ * given value and, only if they are the same, modifies the contents of that
+ * memory location to a given new value. This is done as a single atomic
+ * operation. The atomicity guarantees that the new value is calculated based on
+ * up-to-date information; if the value had been updated by another thread in
+ * the meantime, the write would fail due to a mismatched expectedCurrentValue.
+ *
+ * Refer to https://en.wikipedia.org/wiki/Compare-and-set [which may redirect
+ * you to the article on compare-and swap].
+ *
+ * @param  ptr                  The target memory location.
+ * @param[in,out] expectedCurrentValue A pointer to some location holding the
+ *                              expected current value of the data being set atomically.
+ *                              The computed 'desiredValue' should be a function of this current value.
+ *                              @note: This is an in-out parameter. In the
+ *                              failure case of atomic_cas (where the
+ *                              destination isn't set), the pointee of expectedCurrentValue is
+ *                              updated with the current value.
+ * @param[in] desiredValue      The new value computed based on '*expectedCurrentValue'.
+ *
+ * @return                      true if the memory location was atomically
+ *                              updated with the desired value (after verifying
+ *                              that it contained the expectedCurrentValue),
+ *                              false otherwise. In the failure case,
+ *                              exepctedCurrentValue is updated with the new
+ *                              value of the target memory location.
+ *
+ * pseudocode:
+ * function cas(p : pointer to int, old : pointer to int, new : int) returns bool {
+ *     if *p != *old {
+ *         *old = *p
+ *         return false
+ *     }
+ *     *p = new
+ *     return true
+ * }
+ *
+ * @note: In the failure case (where the destination isn't set), the value
+ * pointed to by expectedCurrentValue is instead updated with the current value.
+ * This property helps writing concise code for the following incr:
+ *
+ * function incr(p : pointer to int, a : int) returns int {
+ *     done = false
+ *     value = *p // This fetch operation need not be atomic.
+ *     while not done {
+ *         done = atomic_cas(p, &value, value + a) // *value gets updated automatically until success
+ *     }
+ *     return value + a
+ * }
+ *
+ * @note: This corresponds to the C11 "atomic_compare_exchange_strong" - it
+ * always succeeds if the current value is expected, as per the pseudocode
+ * above; it will not spuriously fail as "atomic_compare_exchange_weak" may.
+ */
+bool core_util_atomic_cas_u16(volatile uint16_t *ptr, uint16_t *expectedCurrentValue, uint16_t desiredValue);
+
+/**
+ * Atomic compare and set. It compares the contents of a memory location to a
+ * given value and, only if they are the same, modifies the contents of that
+ * memory location to a given new value. This is done as a single atomic
+ * operation. The atomicity guarantees that the new value is calculated based on
+ * up-to-date information; if the value had been updated by another thread in
+ * the meantime, the write would fail due to a mismatched expectedCurrentValue.
+ *
+ * Refer to https://en.wikipedia.org/wiki/Compare-and-set [which may redirect
+ * you to the article on compare-and swap].
+ *
+ * @param  ptr                  The target memory location.
+ * @param[in,out] expectedCurrentValue A pointer to some location holding the
+ *                              expected current value of the data being set atomically.
+ *                              The computed 'desiredValue' should be a function of this current value.
+ *                              @note: This is an in-out parameter. In the
+ *                              failure case of atomic_cas (where the
+ *                              destination isn't set), the pointee of expectedCurrentValue is
+ *                              updated with the current value.
+ * @param[in] desiredValue      The new value computed based on '*expectedCurrentValue'.
+ *
+ * @return                      true if the memory location was atomically
+ *                              updated with the desired value (after verifying
+ *                              that it contained the expectedCurrentValue),
+ *                              false otherwise. In the failure case,
+ *                              exepctedCurrentValue is updated with the new
+ *                              value of the target memory location.
+ *
+ * pseudocode:
+ * function cas(p : pointer to int, old : pointer to int, new : int) returns bool {
+ *     if *p != *old {
+ *         *old = *p
+ *         return false
+ *     }
+ *     *p = new
+ *     return true
+ * }
+ *
+ * @note: In the failure case (where the destination isn't set), the value
+ * pointed to by expectedCurrentValue is instead updated with the current value.
+ * This property helps writing concise code for the following incr:
+ *
+ * function incr(p : pointer to int, a : int) returns int {
+ *     done = false
+ *     value = *p // This fetch operation need not be atomic.
+ *     while not done {
+ *         done = atomic_cas(p, &value, value + a) // *value gets updated automatically until success
+ *     }
+ *     return value + a
+ *
+ * @note: This corresponds to the C11 "atomic_compare_exchange_strong" - it
+ * always succeeds if the current value is expected, as per the pseudocode
+ * above; it will not spuriously fail as "atomic_compare_exchange_weak" may.
+ * }
+ */
+bool core_util_atomic_cas_u32(volatile uint32_t *ptr, uint32_t *expectedCurrentValue, uint32_t desiredValue);
+
+/**
+ * Atomic compare and set. It compares the contents of a memory location to a
+ * given value and, only if they are the same, modifies the contents of that
+ * memory location to a given new value. This is done as a single atomic
+ * operation. The atomicity guarantees that the new value is calculated based on
+ * up-to-date information; if the value had been updated by another thread in
+ * the meantime, the write would fail due to a mismatched expectedCurrentValue.
+ *
+ * Refer to https://en.wikipedia.org/wiki/Compare-and-set [which may redirect
+ * you to the article on compare-and swap].
+ *
+ * @param  ptr                  The target memory location.
+ * @param[in,out] expectedCurrentValue A pointer to some location holding the
+ *                              expected current value of the data being set atomically.
+ *                              The computed 'desiredValue' should be a function of this current value.
+ *                              @note: This is an in-out parameter. In the
+ *                              failure case of atomic_cas (where the
+ *                              destination isn't set), the pointee of expectedCurrentValue is
+ *                              updated with the current value.
+ * @param[in] desiredValue      The new value computed based on '*expectedCurrentValue'.
+ *
+ * @return                      true if the memory location was atomically
+ *                              updated with the desired value (after verifying
+ *                              that it contained the expectedCurrentValue),
+ *                              false otherwise. In the failure case,
+ *                              exepctedCurrentValue is updated with the new
+ *                              value of the target memory location.
+ *
+ * pseudocode:
+ * function cas(p : pointer to int, old : pointer to int, new : int) returns bool {
+ *     if *p != *old {
+ *         *old = *p
+ *         return false
+ *     }
+ *     *p = new
+ *     return true
+ * }
+ *
+ * @note: In the failure case (where the destination isn't set), the value
+ * pointed to by expectedCurrentValue is instead updated with the current value.
+ * This property helps writing concise code for the following incr:
+ *
+ * function incr(p : pointer to int, a : int) returns int {
+ *     done = false
+ *     value = *p // This fetch operation need not be atomic.
+ *     while not done {
+ *         done = atomic_cas(p, &value, value + a) // *value gets updated automatically until success
+ *     }
+ *     return value + a
+ * }
+ *
+ * @note: This corresponds to the C11 "atomic_compare_exchange_strong" - it
+ * always succeeds if the current value is expected, as per the pseudocode
+ * above; it will not spuriously fail as "atomic_compare_exchange_weak" may.
+ */
+bool core_util_atomic_cas_ptr(void *volatile *ptr, void **expectedCurrentValue, void *desiredValue);
+
+/**
+ * Atomic increment.
+ * @param  valuePtr Target memory location being incremented.
+ * @param  delta    The amount being incremented.
+ * @return          The new incremented value.
+ */
+uint8_t core_util_atomic_incr_u8(volatile uint8_t *valuePtr, uint8_t delta);
+
+/**
+ * Atomic increment.
+ * @param  valuePtr Target memory location being incremented.
+ * @param  delta    The amount being incremented.
+ * @return          The new incremented value.
+ */
+uint16_t core_util_atomic_incr_u16(volatile uint16_t *valuePtr, uint16_t delta);
+
+/**
+ * Atomic increment.
+ * @param  valuePtr Target memory location being incremented.
+ * @param  delta    The amount being incremented.
+ * @return          The new incremented value.
+ */
+uint32_t core_util_atomic_incr_u32(volatile uint32_t *valuePtr, uint32_t delta);
+
+/**
+ * Atomic increment.
+ * @param  valuePtr Target memory location being incremented.
+ * @param  delta    The amount being incremented in bytes.
+ * @return          The new incremented value.
+ *
+ * @note The type of the pointer argument is not taken into account
+ *       and the pointer is incremented by bytes.
+ */
+void *core_util_atomic_incr_ptr(void *volatile *valuePtr, ptrdiff_t delta);
+
+/**
+ * Atomic decrement.
+ * @param  valuePtr Target memory location being decremented.
+ * @param  delta    The amount being decremented.
+ * @return          The new decremented value.
+ */
+uint8_t core_util_atomic_decr_u8(volatile uint8_t *valuePtr, uint8_t delta);
+
+/**
+ * Atomic decrement.
+ * @param  valuePtr Target memory location being decremented.
+ * @param  delta    The amount being decremented.
+ * @return          The new decremented value.
+ */
+uint16_t core_util_atomic_decr_u16(volatile uint16_t *valuePtr, uint16_t delta);
+
+/**
+ * Atomic decrement.
+ * @param  valuePtr Target memory location being decremented.
+ * @param  delta    The amount being decremented.
+ * @return          The new decremented value.
+ */
+uint32_t core_util_atomic_decr_u32(volatile uint32_t *valuePtr, uint32_t delta);
+
+/**
+ * Atomic decrement.
+ * @param  valuePtr Target memory location being decremented.
+ * @param  delta    The amount being decremented in bytes.
+ * @return          The new decremented value.
+ *
+ * @note The type of the pointer argument is not taken into account
+ *       and the pointer is decremented by bytes
+ */
+void *core_util_atomic_decr_ptr(void *volatile *valuePtr, ptrdiff_t delta);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+/**@}*/
+
+/**@}*/
+
+#endif // __MBED_UTIL_CRITICAL_H__
+
+
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_debug.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_debug.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_debug.h	(revision 429)
@@ -0,0 +1,81 @@
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_debug Debug functions
+ * @{
+ */
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_DEBUG_H
+#define MBED_DEBUG_H
+#if DEVICE_STDIO_MESSAGES
+#include <stdio.h>
+#include <stdarg.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/** Output a debug message
+ *
+ * @param format printf-style format string, followed by variables
+ */
+static inline void debug(const char *format, ...)
+{
+#if DEVICE_STDIO_MESSAGES && !defined(NDEBUG)
+    va_list args;
+    va_start(args, format);
+    vfprintf(stderr, format, args);
+    va_end(args);
+#endif
+}
+
+
+/** Conditionally output a debug message
+ *
+ * NOTE: If the condition is constant false (== 0) and the compiler optimization
+ * level is greater than 0, then the whole function will be compiled away.
+ *
+ * @param condition output only if condition is true (!= 0)
+ * @param format printf-style format string, followed by variables
+ */
+static inline void debug_if(int condition, const char *format, ...)
+{
+#if DEVICE_STDIO_MESSAGES && !defined(NDEBUG)
+    if (condition) {
+        va_list args;
+        va_start(args, format);
+        vfprintf(stderr, format, args);
+        va_end(args);
+    }
+#endif
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/**@}*/
+
+/**@}*/
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error.c	(revision 429)
@@ -0,0 +1,471 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include "device.h"
+#include "platform/mbed_critical.h"
+#include "platform/mbed_error.h"
+#include "platform/mbed_error_hist.h"
+#include "platform/mbed_interface.h"
+#ifdef MBED_CONF_RTOS_PRESENT
+#include "rtx_os.h"
+#endif
+
+#if DEVICE_STDIO_MESSAGES
+#include <stdio.h>
+#endif
+
+#define MBED_CONF_PLATFORM_ERROR_DECODE_HTTP_URL_STR                          "\nFor more info, visit: https://armmbed.github.io/mbedos-error/?error=0x%08X"                   // set by library:platform
+
+//Helper macro to get the current SP
+#define GET_CURRENT_SP(sp)                                                          \
+                        {                                                           \
+                            /*If in Handler mode we are always using MSP*/          \
+                            if ( __get_IPSR() != 0U ) {                             \
+                                sp = __get_MSP();                                   \
+                            } else {                                                \
+                                /*Look into CONTROL.SPSEL value*/                   \
+                                if ((__get_CONTROL() & 2U) == 0U) {                 \
+                                    sp = __get_MSP();/*Read MSP*/                   \
+                                } else {                                            \
+                                    sp = __get_PSP();/*Read PSP*/                   \
+                                }                                                   \
+                            }                                                       \
+                        }
+
+#ifndef NDEBUG
+#define ERROR_REPORT(ctx, error_msg) print_error_report(ctx, error_msg)
+#else
+#define ERROR_REPORT(ctx, error_msg) ((void) 0)
+#endif
+
+static uint8_t error_in_progress = 0;
+static int error_count = 0;
+static mbed_error_ctx first_error_ctx = {0};
+static mbed_error_ctx last_error_ctx = {0};
+static mbed_error_hook_t error_hook = NULL;
+static void print_error_report(mbed_error_ctx *ctx, const char *);
+static mbed_error_status_t handle_error(mbed_error_status_t error_status, unsigned int error_value, const char *filename, int line_number, void *caller);
+
+//Helper function to halt the system
+static void mbed_halt_system(void)
+{
+    //If not in ISR context exit, otherwise spin on WFI
+    if (core_util_is_isr_active() || !core_util_are_interrupts_enabled()) {
+        for (;;) {
+            __WFI();
+        }
+    } else {
+        //exit eventually calls mbed_die
+        exit(1);
+    }
+}
+
+WEAK void error(const char *format, ...)
+{
+
+    // Prevent recursion if error is called again
+    if (error_in_progress) {
+        return;
+    }
+
+    //Call handle_error/print_error_report permanently setting error_in_progress flag
+    handle_error(MBED_ERROR_UNKNOWN, 0, NULL, 0, MBED_CALLER_ADDR());
+    ERROR_REPORT(&last_error_ctx, "Fatal Run-time error");
+    error_in_progress = 1;
+
+#ifndef NDEBUG
+    va_list arg;
+    va_start(arg, format);
+    mbed_error_vfprintf(format, arg);
+    va_end(arg);
+#endif
+    exit(1);
+}
+
+//Set an error status with the error handling system
+static mbed_error_status_t handle_error(mbed_error_status_t error_status, unsigned int error_value, const char *filename, int line_number, void *caller)
+{
+    mbed_error_ctx current_error_ctx;
+
+    //Error status should always be < 0
+    if (error_status >= 0) {
+        //This is a weird situation, someone called mbed_error with invalid error code.
+        //We will still handle the situation but change the error code to ERROR_INVALID_ARGUMENT, atleast the context will have info on who called it
+        error_status = MBED_ERROR_INVALID_ARGUMENT;
+    }
+
+    //Prevent corruption by holding out other callers
+    //and we also need this until we remove the "error" call completely
+    while (error_in_progress == 1);
+
+    //Use critsect here, as we don't want inadvertant modification of this global variable
+    core_util_critical_section_enter();
+    error_in_progress = 1;
+    core_util_critical_section_exit();
+
+    //Increment error count
+    error_count++;
+
+    //Clear the context capturing buffer
+    memset(&current_error_ctx, 0, sizeof(mbed_error_ctx));
+    //Capture error information
+    current_error_ctx.error_status = error_status;
+    current_error_ctx.error_address = (uint32_t)caller;
+    current_error_ctx.error_value = error_value;
+#if 0 //def MBED_CONF_RTOS_PRESENT
+    //Capture thread info
+    osRtxThread_t *current_thread = osRtxInfo.thread.run.curr;
+    current_error_ctx.thread_id = (uint32_t)current_thread;
+    current_error_ctx.thread_entry_address = (uint32_t)current_thread->thread_addr;
+    current_error_ctx.thread_stack_size = current_thread->stack_size;
+    current_error_ctx.thread_stack_mem = (uint32_t)current_thread->stack_mem;
+#ifdef TARGET_CORTEX_M
+    GET_CURRENT_SP(current_error_ctx.thread_current_sp);
+#endif //TARGET_CORTEX_M
+
+#endif //MBED_CONF_RTOS_PRESENT
+
+#if MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED
+    //Capture filename/linenumber if provided
+    //Index for tracking error_filename
+    memset(&current_error_ctx.error_filename, 0, MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN);
+    strncpy(current_error_ctx.error_filename, filename, MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN);
+    current_error_ctx.error_line_number = line_number;
+#endif
+
+    //Capture the fist system error and store it
+    if (error_count == 1) { //first error
+        memcpy(&first_error_ctx, &current_error_ctx, sizeof(mbed_error_ctx));
+    }
+
+    //copy this error to last error
+    memcpy(&last_error_ctx, &current_error_ctx, sizeof(mbed_error_ctx));
+
+#if MBED_CONF_PLATFORM_ERROR_HIST_ENABLED
+    //Log the error with error log
+    mbed_error_hist_put(&current_error_ctx);
+#endif
+
+    //Call the error hook if available
+    if (error_hook != NULL) {
+        error_hook(&last_error_ctx);
+    }
+
+    error_in_progress = 0;
+
+    return MBED_SUCCESS;
+}
+
+//Return the first error
+mbed_error_status_t mbed_get_first_error(void)
+{
+    //return the first error recorded
+    return first_error_ctx.error_status;
+}
+
+//Return the last error
+mbed_error_status_t mbed_get_last_error(void)
+{
+    //return the last error recorded
+    return last_error_ctx.error_status;
+}
+
+//Gets the current error count
+int mbed_get_error_count(void)
+{
+    //return the current error count
+    return error_count;
+}
+
+//Sets a fatal error
+mbed_error_status_t mbed_warning(mbed_error_status_t error_status, const char *error_msg, unsigned int error_value, const char *filename, int line_number)
+{
+    return handle_error(error_status, error_value, filename, line_number, MBED_CALLER_ADDR());
+}
+
+//Sets a fatal error, this function is marked WEAK to be able to override this for some tests
+WEAK mbed_error_status_t mbed_error(mbed_error_status_t error_status, const char *error_msg, unsigned int error_value, const char *filename, int line_number)
+{
+    //set the error reported and then halt the system
+    if (MBED_SUCCESS != handle_error(error_status, error_value, filename, line_number, MBED_CALLER_ADDR())) {
+        return MBED_ERROR_FAILED_OPERATION;
+    }
+
+    //On fatal errors print the error context/report
+    ERROR_REPORT(&last_error_ctx, error_msg);
+    mbed_halt_system();
+
+    return MBED_ERROR_FAILED_OPERATION;
+}
+
+//Register an application defined callback with error handling
+mbed_error_status_t mbed_set_error_hook(mbed_error_hook_t error_hook_in)
+{
+    //register the new hook/callback
+    if (error_hook_in != NULL)  {
+        error_hook = error_hook_in;
+        return MBED_SUCCESS;
+    }
+
+    return MBED_ERROR_INVALID_ARGUMENT;
+}
+
+//Retrieve the first error context from error log
+mbed_error_status_t mbed_get_first_error_info(mbed_error_ctx *error_info)
+{
+    memcpy(error_info, &first_error_ctx, sizeof(first_error_ctx));
+    return MBED_SUCCESS;
+}
+
+//Retrieve the last error context from error log
+mbed_error_status_t mbed_get_last_error_info(mbed_error_ctx *error_info)
+{
+    memcpy(error_info, &last_error_ctx, sizeof(mbed_error_ctx));
+    return MBED_SUCCESS;
+}
+
+//Makes an mbed_error_status_t value
+mbed_error_status_t mbed_make_error(mbed_error_type_t error_type, mbed_module_type_t entity, mbed_error_code_t error_code)
+{
+    switch (error_type) {
+        case MBED_ERROR_TYPE_POSIX:
+            if (error_code >= MBED_POSIX_ERROR_BASE && error_code <= MBED_SYSTEM_ERROR_BASE) {
+                return -error_code;
+            }
+            break;
+
+        case MBED_ERROR_TYPE_SYSTEM:
+            if (error_code >= MBED_SYSTEM_ERROR_BASE && error_code <= MBED_CUSTOM_ERROR_BASE) {
+                return MAKE_MBED_ERROR(MBED_ERROR_TYPE_SYSTEM, entity, error_code);
+            }
+            break;
+
+        case MBED_ERROR_TYPE_CUSTOM:
+            if (error_code >= MBED_CUSTOM_ERROR_BASE) {
+                return MAKE_MBED_ERROR(MBED_ERROR_TYPE_CUSTOM, entity, error_code);
+            }
+            break;
+
+        default:
+            break;
+    }
+
+    //If we are passed incorrect values return a generic system error
+    return MAKE_MBED_ERROR(MBED_ERROR_TYPE_SYSTEM, MBED_MODULE_UNKNOWN, MBED_ERROR_CODE_UNKNOWN);
+}
+
+/**
+ * Clears all the last error, error count and all entries in the error log.
+ * @return                      0 or MBED_SUCCESS on success.
+ *
+ */
+mbed_error_status_t mbed_clear_all_errors(void)
+{
+    mbed_error_status_t status = MBED_SUCCESS;
+
+    //Make sure we dont multiple clients resetting
+    core_util_critical_section_enter();
+    //Clear the error and context capturing buffer
+    memset(&last_error_ctx, 0, sizeof(mbed_error_ctx));
+    //reset error count to 0
+    error_count = 0;
+#if MBED_CONF_PLATFORM_ERROR_HIST_ENABLED
+    status = mbed_error_hist_reset();
+#endif
+    core_util_critical_section_exit();
+
+    return status;
+}
+
+#if MBED_CONF_PLATFORM_ERROR_ALL_THREADS_INFO && defined(MBED_CONF_RTOS_PRESENT)
+/* Prints info of a thread(using osRtxThread_t struct)*/
+static void print_thread(osRtxThread_t *thread)
+{
+    mbed_error_printf("\nState: 0x%08X Entry: 0x%08X Stack Size: 0x%08X Mem: 0x%08X SP: 0x%08X", thread->state, thread->thread_addr, thread->stack_size, (uint32_t)thread->stack_mem, thread->sp);
+}
+
+/* Prints thread info from a list */
+static void print_threads_info(osRtxThread_t *threads)
+{
+    while (threads != NULL) {
+        print_thread(threads);
+        threads = threads->thread_next;
+    }
+}
+#endif
+
+#ifndef NDEBUG
+static void print_error_report(mbed_error_ctx *ctx, const char *error_msg)
+{
+    uint32_t error_code = MBED_GET_ERROR_CODE(ctx->error_status);
+    uint32_t error_module = MBED_GET_ERROR_MODULE(ctx->error_status);
+
+    mbed_error_printf("\n\n++ MbedOS Error Info ++\nError Status: 0x%X Code: %d Module: %d\nError Message: ", ctx->error_status, error_code, error_module);
+
+    switch (error_code) {
+        //These are errors reported by kernel handled from mbed_rtx_handlers
+        case MBED_ERROR_CODE_RTOS_EVENT:
+            mbed_error_printf("Kernel Error: 0x%X, ", ctx->error_value);
+            break;
+
+        case MBED_ERROR_CODE_RTOS_THREAD_EVENT:
+            mbed_error_printf("Thread: 0x%X, ", ctx->error_value);
+            break;
+
+        case MBED_ERROR_CODE_RTOS_MUTEX_EVENT:
+            mbed_error_printf("Mutex: 0x%X, ", ctx->error_value);
+            break;
+
+        case MBED_ERROR_CODE_RTOS_SEMAPHORE_EVENT:
+            mbed_error_printf("Semaphore: 0x%X, ", ctx->error_value);
+            break;
+
+        case MBED_ERROR_CODE_RTOS_MEMORY_POOL_EVENT:
+            mbed_error_printf("MemoryPool: 0x%X, ", ctx->error_value);
+            break;
+
+        case MBED_ERROR_CODE_RTOS_EVENT_FLAGS_EVENT:
+            mbed_error_printf("EventFlags: 0x%X, ", ctx->error_value);
+            break;
+
+        case MBED_ERROR_CODE_RTOS_TIMER_EVENT:
+            mbed_error_printf("Timer: 0x%X, ", ctx->error_value);
+            break;
+
+        case MBED_ERROR_CODE_RTOS_MESSAGE_QUEUE_EVENT:
+            mbed_error_printf("MessageQueue: 0x%X, ", ctx->error_value);
+            break;
+
+        default:
+            //Nothing to do here, just print the error info down
+            break;
+    }
+    mbed_error_printf(error_msg);
+    mbed_error_printf("\nLocation: 0x%X", ctx->error_address);
+
+#if MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED && !defined(NDEBUG)
+    if ((NULL != ctx->error_filename[0]) && (ctx->error_line_number != 0)) {
+        //for string, we must pass address of a ptr which has the address of the string
+        mbed_error_printf("\nFile:%s+%d", ctx->error_filename, ctx->error_line_number);
+    }
+#endif
+
+    mbed_error_printf("\nError Value: 0x%X", ctx->error_value);
+#ifdef TARGET_CORTEX_M
+    mbed_error_printf("\nCurrent Thread: Id: 0x%X Entry: 0x%X StackSize: 0x%X StackMem: 0x%X SP: 0x%X ",
+                      ctx->thread_id, ctx->thread_entry_address, ctx->thread_stack_size, ctx->thread_stack_mem, ctx->thread_current_sp);
+#else
+    //For Cortex-A targets we dont have support to capture the current SP
+    mbed_error_printf("\nCurrent Thread: Id: 0x%X Entry: 0x%X StackSize: 0x%X StackMem: 0x%X ",
+                      ctx->thread_id, ctx->thread_entry_address, ctx->thread_stack_size, ctx->thread_stack_mem);
+#endif //TARGET_CORTEX_M
+
+#if MBED_CONF_PLATFORM_ERROR_ALL_THREADS_INFO && defined(MBED_CONF_RTOS_PRESENT)
+    mbed_error_printf("\nNext:");
+    print_thread(osRtxInfo.thread.run.next);
+
+    mbed_error_printf("\nWait:");
+    osRtxThread_t *threads = (osRtxThread_t *)&osRtxInfo.thread.wait_list;
+    print_threads_info(threads);
+
+    mbed_error_printf("\nDelay:");
+    threads = (osRtxThread_t *)&osRtxInfo.thread.delay_list;
+    print_threads_info(threads);
+
+    mbed_error_printf("\nIdle:");
+    threads = (osRtxThread_t *)&osRtxInfo.thread.idle;
+    print_threads_info(threads);
+#endif
+    mbed_error_printf(MBED_CONF_PLATFORM_ERROR_DECODE_HTTP_URL_STR, ctx->error_status);
+    mbed_error_printf("\n-- MbedOS Error Info --\n");
+}
+#endif //ifndef NDEBUG
+
+#if MBED_CONF_PLATFORM_ERROR_HIST_ENABLED
+//Retrieve the error context from error log at the specified index
+mbed_error_status_t mbed_get_error_hist_info(int index, mbed_error_ctx *error_info)
+{
+    return mbed_error_hist_get(index, error_info);
+}
+
+//Retrieve the error log count
+int mbed_get_error_hist_count(void)
+{
+    return mbed_error_hist_get_count();
+}
+
+mbed_error_status_t mbed_save_error_hist(const char *path)
+{
+    mbed_error_status_t ret = MBED_SUCCESS;
+    mbed_error_ctx ctx = {0};
+    int log_count = mbed_error_hist_get_count();
+    FILE *error_log_file = NULL;
+
+    //Ensure path is valid
+    if (path == NULL) {
+        ret = MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_INVALID_ARGUMENT);
+        goto exit;
+    }
+
+    //Open the file for saving the error log info
+    if ((error_log_file = fopen(path, "w")) == NULL) {
+        ret = MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_OPEN_FAILED);
+        goto exit;
+    }
+
+    //First store the first and last errors
+    if (fprintf(error_log_file, "\nFirst Error: Status:0x%x ThreadId:0x%x Address:0x%x Value:0x%x\n",
+                (unsigned int)first_error_ctx.error_status,
+                (unsigned int)first_error_ctx.thread_id,
+                (unsigned int)first_error_ctx.error_address,
+                (unsigned int)first_error_ctx.error_value) <= 0) {
+        ret = MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_WRITE_FAILED);
+        goto exit;
+    }
+
+    if (fprintf(error_log_file, "\nLast Error: Status:0x%x ThreadId:0x%x Address:0x%x Value:0x%x\n",
+                (unsigned int)last_error_ctx.error_status,
+                (unsigned int)last_error_ctx.thread_id,
+                (unsigned int)last_error_ctx.error_address,
+                (unsigned int)last_error_ctx.error_value) <= 0) {
+        ret = MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_WRITE_FAILED);
+        goto exit;
+    }
+
+    //Update with error log info
+    while (--log_count >= 0) {
+        mbed_error_hist_get(log_count, &ctx);
+        //first line of file will be error log count
+        if (fprintf(error_log_file, "\n%d: Status:0x%x ThreadId:0x%x Address:0x%x Value:0x%x\n",
+                    log_count,
+                    (unsigned int)ctx.error_status,
+                    (unsigned int)ctx.thread_id,
+                    (unsigned int)ctx.error_address,
+                    (unsigned int)ctx.error_value) <= 0) {
+            ret = MBED_MAKE_ERROR(MBED_MODULE_PLATFORM, MBED_ERROR_CODE_WRITE_FAILED);
+            goto exit;
+        }
+    }
+
+exit:
+    fclose(error_log_file);
+
+    return ret;
+}
+#endif
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error.h	(revision 429)
@@ -0,0 +1,1091 @@
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_error Error functions
+ * @{
+ */
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_ERROR_H
+#define MBED_ERROR_H
+
+#include "platform/mbed_retarget.h"
+#include "platform/mbed_toolchain.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Define this macro to include filenames in error context. For release builds, do not include filename to save memory.
+ *  MBED_PLATFORM_CONF_ERROR_FILENAME_CAPTURE_ENABLED
+ */
+
+/** Define this macro to enable error history
+ *  MBED_PLATFORM_CONF_ERROR_HIST_ENABLED
+ */
+
+#ifndef MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN
+#define MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN            16
+#else //MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN
+#if MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN > 64
+//We have to limit this to 64 bytes since we use mbed_error_printf for error reporting
+//and mbed_error_vfprintf uses 128bytes internal buffer which may not be sufficient for anything
+//longer that 64 bytes with the current implementation.
+#error "Unsupported error filename buffer length detected, max supported length is 64 chars. Please change MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN or max-error-filename-len in configuration."
+#endif
+#endif
+
+#define MBED_ERROR_STATUS_CODE_MASK                 (0x0000FFFF)
+#define MBED_ERROR_STATUS_CODE_POS                  (0)
+#define MBED_ERROR_STATUS_CODE_FIELD_SIZE           (16)
+
+#define MBED_ERROR_STATUS_MODULE_MASK               (0x00FF0000)
+#define MBED_ERROR_STATUS_MODULE_POS                (16)
+#define MBED_ERROR_STATUS_MODULE_FIELD_SIZE         (8)
+
+#define MBED_ERROR_STATUS_TYPE_MASK                 (0x60000000)
+#define MBED_ERROR_STATUS_TYPE_POS                  (29)
+#define MBED_ERROR_STATUS_TYPE_FIELD_SIZE           (2)
+
+/* mbed_error_status_t Status Encoding */
+//|31(1 bit) Always Negative|30-29(2 bits)  |28-24              | 23-16(8 bits) |  15-0(16 bits) |
+//|-1                       |TYPE           |(unused/reserved)  | MODULE TYPE   |  ERROR CODE    |
+
+#define MAKE_MBED_ERROR(type, module, error_code)   (mbed_error_status_t)                                                                   \
+                                                    ((0x80000000) |                                                                     \
+                                                    (MBED_ERROR_STATUS_CODE_MASK & (error_code << MBED_ERROR_STATUS_CODE_POS)) |        \
+                                                    (MBED_ERROR_STATUS_MODULE_MASK & (module << MBED_ERROR_STATUS_MODULE_POS)) |        \
+                                                    (MBED_ERROR_STATUS_TYPE_MASK & (type << MBED_ERROR_STATUS_TYPE_POS)))
+
+#define MBED_GET_ERROR_TYPE( error_status )         ((error_status & MBED_ERROR_STATUS_TYPE_MASK) >> MBED_ERROR_STATUS_TYPE_POS)
+#define MBED_GET_ERROR_MODULE( error_status )       ((error_status & MBED_ERROR_STATUS_MODULE_MASK) >> MBED_ERROR_STATUS_MODULE_POS)
+#define MBED_GET_ERROR_CODE( error_status )         (int)((MBED_GET_ERROR_TYPE( error_status ) == MBED_ERROR_TYPE_POSIX)?(-error_status):((error_status & MBED_ERROR_STATUS_CODE_MASK) >> MBED_ERROR_STATUS_CODE_POS))
+
+/** mbed_error_status_t description
+ *
+ * mbed_error_status_t type represents the error status values under MbedOS. mbed_error_status_t values are signed integers and always be negative.\n
+ * Internally its encoded as below with bit-fields representing error type, module and error code:\n\n
+ * mbed_error_status_t Status Encoding:\n
+ *
+ \verbatim
+ | 31 Always Negative | 30-29(2 bits)  | 28-24              | 23-16(8 bits) | 15-0(16 bits) |
+ | -1                 | TYPE           | (unused/reserved)  | MODULE TYPE    | ERROR CODE    |
+ \endverbatim
+ *
+ * The error status value range for each error type is as follows:\n
+ *   Posix Error Status-es  - 0xFFFFFFFF to 0xFFFFFF01(-1 -255) - This corresponds to Posix error codes represented as negative.\n
+ *   System Error Status-es - 0x80XX0100 to 0x80XX0FFF - This corresponds to System error codes range(all values are negative). Bits 23-16 will be module type(marked with XX)\n
+ *   Custom Error Status-es - 0xA0XX1000 to 0xA0XXFFFF - This corresponds to Custom error codes range(all values are negative). Bits 23-16 will be module type(marked with XX)\n\n
+ *
+ * The ERROR CODE(values encoded into ERROR CODE bit-field in mbed_error_status_t) value range for each error type is also seperated as below:\n
+ *   Posix Error Codes  - 1 to 255.\n
+ *   System Error Codes - 256 to 4095.\n
+ *   Custom Error Codes - 4096 to 65535.\n
+ *
+ * @note Posix error codes are always encoded as negative of their actual value. For example, EPERM is encoded as -EPERM.
+ *       And, the MODULE TYPE for Posix error codes are always encoded as MBED_MODULE_UNKNOWN.\n
+ *       This is to enable easy injection of Posix error codes into MbedOS error handling system without altering the actual Posix error values.\n
+ *       Accordingly, Posix error codes are represented as -1 to -255 under MbedOS error status representation.
+ */
+typedef int mbed_error_status_t;
+
+/**
+ * Macro for defining a Posix error status. This macro is mainly used to define Posix error values in mbed_error_code_t enumeration.
+ * @param  error_name       Name of the error without the ERROR_ prefix
+ * @param  error_code       Error code value to be used, must be between 1 and 255(inclusive).
+ *
+ */
+#define MBED_DEFINE_POSIX_ERROR( error_name, error_code )   \
+                     MBED_ERROR_CODE_##error_name = error_code,  \
+                     MBED_ERROR_##error_name = -(MBED_POSIX_ERROR_BASE + error_code)
+
+/**
+ * Macro for defining a System error status. This macro is used to define System error values in mbed_error_code_t enumeration.
+ * @param  error_name       Name of the error without the ERROR_ prefix
+ * @param  error_code       Error code value to be used, must be between 256 and 4096(inclusive).
+ *
+ */
+#define MBED_DEFINE_SYSTEM_ERROR( error_name, error_code )   \
+                      MBED_ERROR_CODE_##error_name = MBED_SYSTEM_ERROR_BASE + error_code,  \
+                      MBED_ERROR_##error_name = MAKE_MBED_ERROR(MBED_ERROR_TYPE_SYSTEM, MBED_MODULE_UNKNOWN, MBED_ERROR_CODE_##error_name)
+
+/**
+ * Macro for defining a Custom error status. This macro is used to define custom error values in mbed_error_code_t enumeration.
+ * @param  error_name       Name of the error without the ERROR_ prefix
+ * @param  error_code       Error code value to be used, must be between 4097 and 65535(inclusive).
+ *
+ */
+#define MBED_DEFINE_CUSTOM_ERROR( error_name, error_code )   \
+                      MBED_ERROR_CODE_##error_name = MBED_CUSTOM_ERROR_BASE + error_code,  \
+                      MBED_ERROR_##error_name = MAKE_MBED_ERROR(MBED_ERROR_TYPE_CUSTOM, MBED_MODULE_UNKNOWN, MBED_ERROR_CODE_##error_name)
+
+
+/**
+ * Macros for setting a system warning. These macros will log the error, Its a wrapper for calling mbed_warning API.
+ * There are 2 versions of this macro. MBED_WARNING takes status and message. MBED_WARNING1 takes an additional context specific argument
+ * @param  error_status     mbed_error_status_t status to be set(See mbed_error_status_t enum above for available error status values).
+ * @param  error_msg        The error message to be printed out to STDIO/Serial.
+ * @param  error_value      Value associated with the error status. This would depend on error code/error scenario.
+ *
+ * @code
+ *
+ * MBED_WARNING( ERROR_INVALID_SIZE, "MyDriver: Invalid size in read" )
+ * MBED_WARNING1( ERROR_INVALID_SIZE, "MyDriver: Invalid size in read", size_val )
+ *
+ * @endcode
+ * @note The macro calls mbed_warning API with filename and line number info without caller explicitly passing them.
+ *        Since this macro is a wrapper for mbed_warning API callers should process the return value from this macro which is the return value from calling mbed_error API.
+ *
+ */
+#ifdef NDEBUG
+#define MBED_WARNING1( error_status, error_msg, error_value )         mbed_warning( error_status, (const char *)NULL, (uint32_t)error_value, NULL, 0 )
+#define MBED_WARNING( error_status, error_msg )                       mbed_warning( error_status, (const char *)NULL, (uint32_t)0,           NULL, 0 )
+#else //NDEBUG
+#if MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED
+#define MBED_WARNING1( error_status, error_msg, error_value )     mbed_warning( error_status, (const char *)error_msg, (uint32_t)error_value, (const char *)MBED_FILENAME, __LINE__ )
+#define MBED_WARNING( error_status, error_msg )                   mbed_warning( error_status, (const char *)error_msg, (uint32_t)0          , (const char *)MBED_FILENAME, __LINE__ )
+#else //MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED
+#define MBED_WARNING1( error_status, error_msg, error_value )     mbed_warning( error_status, (const char *)error_msg, (uint32_t)error_value, NULL, 0 )
+#define MBED_WARNING( error_status, error_msg )                   mbed_warning( error_status, (const char *)error_msg, (uint32_t)0,           NULL, 0 )
+#endif
+#endif
+
+/**
+ * Macros for setting a fatal system error. These macros will log the error, prints the error report and halts the system. Its a wrapper for calling mbed_error API.
+ * There are 2 versions of this macro. MBED_ERROR takes status and message. MBED_ERROR1 takes an additional context specific argument
+ * @param  error_status     mbed_error_status_t status to be set(See mbed_error_status_t enum above for available error status values).
+ * @param  error_msg        The error message to be printed out to STDIO/Serial.
+ * @param  error_value      Value associated with the error status. This would depend on error code/error scenario. Only available with MBED_ERROR1
+ * @return                  0 or MBED_SUCCESS.
+ *                          MBED_ERROR_INVALID_ARGUMENT if called with invalid error status/codes
+ *
+ * @code
+ *
+ * MBED_ERROR( MBED_ERROR_MUTEX_LOCK_FAILED, "MyDriver: Can't lock driver Mutex" )
+ * MBED_ERROR1( MBED_ERROR_MUTEX_LOCK_FAILED, "MyDriver: Can't lock driver Mutex", &my_mutex )
+ *
+ * @endcode
+ * @note The macro calls mbed_error API with filename and line number info without caller explicitly passing them.
+ *       Since this macro is a wrapper for mbed_error API callers should process the return value from this macro which is the return value from calling mbed_error API.
+ *
+ */
+#ifdef NDEBUG
+#define MBED_ERROR1( error_status, error_msg, error_value )           mbed_error( error_status, (const char *)NULL, (uint32_t)error_value, NULL, 0 )
+#define MBED_ERROR( error_status, error_msg )                         mbed_error( error_status, (const char *)NULL, (uint32_t)0          , NULL, 0 )
+#else //NDEBUG
+#if MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED
+#define MBED_ERROR1( error_status, error_msg, error_value )       mbed_error( error_status, (const char *)error_msg, (uint32_t)error_value, (const char *)MBED_FILENAME, __LINE__ )
+#define MBED_ERROR( error_status, error_msg )                     mbed_error( error_status, (const char *)error_msg, (uint32_t)0          , (const char *)MBED_FILENAME, __LINE__ )
+#else //MBED_CONF_PLATFORM_ERROR_FILENAME_CAPTURE_ENABLED
+#define MBED_ERROR1( error_status, error_msg, error_value )       mbed_error( error_status, (const char *)error_msg, (uint32_t)error_value, NULL, 0 )
+#define MBED_ERROR( error_status, error_msg )                     mbed_error( error_status, (const char *)error_msg, (uint32_t)0          , NULL, 0 )
+#endif
+#endif
+
+//Error Type definition
+/** mbed_error_type_t definition
+ *  @note
+ *  This enumeration defines the Error types supported. The value of these enum values will be encoded into mbed_error_status_t TYPE field.\n
+ *      See mbed_error_status_t description for more info.\n
+ *         MBED_ERROR_TYPE_SYSTEM - Used to indicate that the error status is of System defined Error type.\n
+ *         MBED_ERROR_TYPE_CUSTOM - Used to indicate that the error status is of Custom defined Error type.\n
+ *         MBED_ERROR_TYPE_POSIX  - Used to indicate that the error status is of Posix error type.\n
+ *
+ */
+typedef enum _mbed_error_type_t {
+    MBED_ERROR_TYPE_SYSTEM = 0,
+    MBED_ERROR_TYPE_CUSTOM = 1,
+    //2 is reserved
+    //Use 3 for POSIX because we are mapping -1 to -255 to POSIX error codes
+    //and thus we must use 3 to match the type bits in error status representation which are from 0xFFFFFFFF to 0xFFFFFF00
+    MBED_ERROR_TYPE_POSIX = 3
+} mbed_error_type_t;
+
+//Module type/id definitions
+/** mbed_module_type_t definition
+ * @note
+ * This enumeration defines the module types. The value of these enum values will be encoded into mbed_error_status_t MODULE field.\n\n
+ *      See mbed_error_status_t description for more info.\n
+ *          MBED_MODULE_UNKNOWN - This module type can be used if caller of the mbed_error/mbed_warning doesn't know who is the actual originator of the error.\n
+ *                       Other module values can be used to provide more info on who/where the error originated from.\n\n
+ *                       For example, if I2C driver is the component originating the error you can use MBED_MODULE_DRIVER_I2C to provide more info.\n
+ *                       Its used in call to MBED_MAKE_ERROR/MBED_MAKE_SYSTEM_ERROR/MBED_MAKE_CUSTOM_ERROR macros.\n
+ *
+ * @code
+ *      Example: mbed_error_status_t i2c_driver_error = MBED_MAKE_ERROR( MBED_MODULE_DRIVER_I2C, MBED_ERROR_CONFIG_UNSUPPORTED );
+ * @endcode
+ *
+ * @note
+ *  \n Below are the module code mappings:\n
+    \verbatim
+    MBED_MODULE_APPLICATION              0       Application
+    MBED_MODULE_PLATFORM                 1       Platform
+    MODULE_KERNEL                   2       RTX Kernel
+    MBED_MODULE_NETWORK_STACK            3       Network stack
+    MBED_MODULE_HAL                      4       HAL - Hardware Abstraction Layer
+    MBED_MODULE_NETWORK_STACKMODULE_MEMORY_SUBSYSTEM         5       Memory Subsystem
+    MBED_MODULE_FILESYSTEM               6       Filesystem
+    MBED_MODULE_BLOCK_DEVICE             7       Block device
+    MBED_MODULE_DRIVER                   8       Driver
+    MBED_MODULE_DRIVER_SERIAL            9       Serial Driver
+    MBED_MODULE_DRIVER_RTC               10      RTC Driver
+    MBED_MODULE_DRIVER_I2C               11      I2C Driver
+    MODULE_DRIVER_SPI               12      SPI Driver
+    MODULE_DRIVER_GPIO              13      GPIO Driver
+    MODULE_DRIVER_ANALOG            14      Analog Driver
+    MODULE_DRIVER_DIGITAL           15      DigitalIO Driver
+    MODULE_DRIVER_CAN               16      CAN Driver
+    MODULE_DRIVER_ETHERNET          17      Ethernet Driver
+    MODULE_DRIVER_CRC               18      CRC Module
+    MODULE_DRIVER_PWM               19      PWM Driver
+    MODULE_DRIVER_QSPI              20      QSPI Driver
+    MODULE_DRIVER_USB               21      USB Driver
+    MODULE_TARGET_SDK               22      SDK
+
+    MBED_MODULE_UNKNOWN                  255     Unknown module
+    \endverbatim
+ *
+ */
+typedef enum _mbed_module_type {
+    MBED_MODULE_APPLICATION = 0,
+    MBED_MODULE_PLATFORM,
+    MBED_MODULE_KERNEL,
+    MBED_MODULE_NETWORK_STACK,
+    MBED_MODULE_HAL,
+    MBED_MODULE_NETWORK_STACKMODULE_MEMORY_SUBSYSTEM,
+    MBED_MODULE_FILESYSTEM,
+    MBED_MODULE_BLOCK_DEVICE,
+    MBED_MODULE_DRIVER,
+    MBED_MODULE_DRIVER_SERIAL,
+    MBED_MODULE_DRIVER_RTC,
+    MBED_MODULE_DRIVER_I2C,
+    MBED_MODULE_DRIVER_SPI,
+    MBED_MODULE_DRIVER_GPIO,
+    MBED_MODULE_DRIVER_ANALOG,
+    MBED_MODULE_DRIVER_DIGITAL,
+    MBED_MODULE_DRIVER_CAN,
+    MBED_MODULE_DRIVER_ETHERNET,
+    MBED_MODULE_DRIVER_CRC,
+    MBED_MODULE_DRIVER_PWM,
+    MBED_MODULE_DRIVER_QSPI,
+    MBED_MODULE_DRIVER_USB,
+    MBED_MODULE_TARGET_SDK,
+    MBED_MODULE_BLE,
+    /* Add More entities here as required */
+
+    MBED_MODULE_UNKNOWN = 255,
+    MBED_MODULE_MAX = MBED_MODULE_UNKNOWN
+} mbed_module_type_t;
+
+//Use MBED_SUCCESS(=0) or any postive number for successful returns
+#define MBED_SUCCESS           0
+
+#define MBED_POSIX_ERROR_BASE   0
+#define MBED_SYSTEM_ERROR_BASE  256
+#define MBED_CUSTOM_ERROR_BASE  4096
+
+//Error Code definitions
+/** mbed_error_code_t definition
+ *
+ *  mbed_error_code_t enumeration defines the Error codes and Error status values for MBED_MODULE_UNKNOWN.\n
+ *  It defines all of Posix Error Codes/Statuses and Mbed System Error Codes/Statuses.\n\n
+ *
+ *  @note
+ *  Posix Error codes are defined using the macro MBED_DEFINE_POSIX_ERROR\n
+ *  For example MBED_DEFINE_POSIX_ERROR( EPERM, EPERM ). This effectively defines the following values:\n
+ *      ERROR_CODE_EPERM = EPERM\n
+ *      ERROR_EPERM = -EPERM\n
+ *
+ *  Posix Error codes are defined using the macro MBED_DEFINE_POSIX_ERROR\n
+ *  For example MBED_DEFINE_POSIX_ERROR( EPERM, EPERM ). This macro defines the following values:\n
+ *      ERROR_CODE_EPERM = MBED_POSIX_ERROR_BASE+EPERM\n
+ *      ERROR_EPERM = -(MBED_POSIX_ERROR_BASE+EPERM)\n
+ *  Its effectively equivalent to:\n
+ *      ERROR_CODE_EPERM = 1\n
+ *      ERROR_EPERM = -1\n
+ *  All Posix error codes currently supported by MbedOS(defined in mbed_retarget.h) are defined using the MBED_DEFINE_POSIX_ERROR macro.\n\n
+ *  Below are the Posic error codes and the description:\n
+ *  \verbatim
+    EPERM                      1        Operation not permitted
+    ENOENT                     2        No such file or directory
+    ESRCH                      3        No such process
+    EINTR                      4        Interrupted system call
+    EIO                        5        I/O error
+    ENXIO                      6        No such device or address
+    E2BIG                      7        Argument list too long
+    ENOEXEC                    8        Exec format error
+    EBADF                      9        Bad file number
+    ECHILD                     10       No child processes
+    EAGAIN                     11       Try again
+    ENOMEM                     12       Out of memory
+    EACCES                     13       Permission denied
+    EFAULT                     14       Bad address
+    ENOTBLK                    15       Block device required
+    EBUSY                      16       Device or resource busy
+    EEXIST                     17       File exists
+    EXDEV                      18       Cross-device link
+    ENODEV                     19       No such device
+    ENOTDIR                    20       Not a directory
+    EISDIR                     21       Is a directory
+    EINVAL                     22       Invalid argument
+    ENFILE                     23       File table overflow
+    EMFILE                     24       Too many open files
+    ENOTTY                     25       Not a typewriter
+    ETXTBSY                    26       Text file busy
+    EFBIG                      27       File too large
+    ENOSPC                     28       No space left on device
+    ESPIPE                     29       Illegal seek
+    EROFS                      30       Read-only file system
+    EMLINK                     31       Too many links
+    EPIPE                      32       Broken pipe
+    EDOM                       33       Math argument out of domain of func
+    ERANGE                     34       Math result not representable
+    EDEADLK                    35       Resource deadlock would occur
+    ENAMETOOLONG               36       File name too long
+    ENOLCK                     37       No record locks available
+    ENOSYS                     38       Function not implemented
+    ENOTEMPTY                  39       Directory not empty
+    ELOOP                      40       Too many symbolic links encountered
+    EWOULDBLOCK                EAGAIN   Operation would block
+    ENOMSG                     42       No message of desired type
+    EIDRM                      43       Identifier removed
+    ECHRNG                     44       Channel number out of range
+    EL2NSYNC                   45       Level 2 not synchronized
+    EL3HLT                     46       Level 3 halted
+    EL3RST                     47       Level 3 reset
+    ELNRNG                     48       Link number out of range
+    EUNATCH                    49       Protocol driver not attached
+    ENOCSI                     50       No CSI structure available
+    EL2HLT                     51       Level 2 halted
+    EBADE                      52       Invalid exchange
+    EBADR                      53       Invalid request descriptor
+    EXFULL                     54       Exchange full
+    ENOANO                     55       No anode
+    EBADRQC                    56       Invalid request code
+    EBADSLT                    57       Invalid slot
+    EDEADLOCK                  EDEADLK  Resource deadlock would occur
+    EBFONT                     59       Bad font file format
+    ENOSTR                     60       Device not a stream
+    ENODATA                    61       No data available
+    ETIME                      62       Timer expired
+    ENOSR                      63       Out of streams resources
+    ENONET                     64       Machine is not on the network
+    ENOPKG                     65       Package not installed
+    EREMOTE                    66       Object is remote
+    ENOLINK                    67       Link has been severed
+    EADV                       68       Advertise error
+    ESRMNT                     69       Srmount error
+    ECOMM                      70       Communication error on send
+    EPROTO                     71       Protocol error
+    EMULTIHOP                  72       Multihop attempted
+    EDOTDOT                    73       RFS specific error
+    EBADMSG                    74       Not a data message
+    EOVERFLOW                  75       Value too large for defined data type
+    ENOTUNIQ                   76       Name not unique on network
+    EBADFD                     77       File descriptor in bad state
+    EREMCHG                    78       Remote address changed
+    ELIBACC                    79       Can not access a needed shared library
+    ELIBBAD                    80       Accessing a corrupted shared library
+    ELIBSCN                    81       .lib section in a.out corrupted
+    ELIBMAX                    82       Attempting to link in too many shared libraries
+    ELIBEXEC                   83       Cannot exec a shared library directly
+    EILSEQ                     84       Illegal byte sequence
+    ERESTART                   85       Interrupted system call should be restarted
+    ESTRPIPE                   86       Streams pipe error
+    EUSERS                     87       Too many users
+    ENOTSOCK                   88       Socket operation on non-socket
+    EDESTADDRREQ               89       Destination address required
+    EMSGSIZE                   90       Message too long
+    EPROTOTYPE                 91       Protocol wrong type for socket
+    ENOPROTOOPT                92       Protocol not available
+    EPROTONOSUPPORT            93       Protocol not supported
+    ESOCKTNOSUPPORT            94       Socket type not supported
+    EOPNOTSUPP                 95       Operation not supported on transport endpoint
+    EPFNOSUPPORT               96       Protocol family not supported
+    EAFNOSUPPORT               97       Address family not supported by protocol
+    EADDRINUSE                 98       Address already in use
+    EADDRNOTAVAIL              99       Cannot assign requested address
+    ENETDOWN                   100      Network is down
+    ENETUNREACH                101      Network is unreachable
+    ENETRESET                  102      Network dropped connection because of reset
+    ECONNABORTED               103      Software caused connection abort
+    ECONNRESET                 104      Connection reset by peer
+    ENOBUFS                    105      No buffer space available
+    EISCONN                    106      Transport endpoint is already connected
+    ENOTCONN                   107      Transport endpoint is not connected
+    ESHUTDOWN                  108      Cannot send after transport endpoint shutdown
+    ETOOMANYREFS               109      Too many references: cannot splice
+    ETIMEDOUT                  110      Connection timed out
+    ECONNREFUSED               111      Connection refused
+    EHOSTDOWN                  112      Host is down
+    EHOSTUNREACH               113      No route to host
+    EALREADY                   114      Operation already in progress
+    EINPROGRESS                115      Operation now in progress
+    ESTALE                     116      Stale NFS file handle
+    EUCLEAN                    117      Structure needs cleaning
+    ENOTNAM                    118      Not a XENIX named type file
+    ENAVAIL                    119      No XENIX semaphores available
+    EISNAM                     120      Is a named type file
+    EREMOTEIO                  121      Remote I/O error
+    EDQUOT                     122      Quota exceeded
+    ENOMEDIUM                  123      No medium found
+    EMEDIUMTYPE                124      Wrong medium type
+    ECANCELED                  125      Operation Canceled
+    ENOKEY                     126      Required key not available
+    EKEYEXPIRED                127      Key has expired
+    EKEYREVOKED                128      Key has been revoked
+    EKEYREJECTED               129      Key was rejected by service
+    EOWNERDEAD                 130      Owner died
+    ENOTRECOVERABLE            131      State not recoverable
+    \endverbatim
+ *
+ *  @note
+ *  MbedOS System Error codes are defined using the macro MBED_DEFINE_SYSTEM_ERROR\n
+ *  For example MBED_DEFINE_SYSTEM_ERROR( INVALID_ARGUMENT ,1 ) macro defines the following values:\n
+ *      ERROR_CODE_INVALID_ARGUMENT = MBED_SYSTEM_ERROR_BASE+1\n
+ *      ERROR_INVALID_ARGUMENT = MAKE_MBED_ERROR(ERROR_TYPE_SYSTEM, MBED_MODULE_UNKNOWN, ERROR_CODE_INVALID_ARGUMENT)\n
+ *  Its effectively equivalent to:\n
+ *      ERROR_CODE_INVALID_ARGUMENT = 1\n
+ *      ERROR_INVALID_ARGUMENT = 0x80FF0001\n (Note that MODULE field is set to MBED_MODULE_UNKNOWN)
+ *  New System Error codes should be defined using MBED_DEFINE_SYSTEM_ERROR macro and must have an unique error code value\n
+ *  passed as the second argument in the MBED_DEFINE_SYSTEM_ERROR macro.\n\n
+ *  Below are the Mbed System error codes and the description:
+ *  \verbatim
+    UNKNOWN                    256      Unknown error
+    INVALID_ARGUMENT           257      Invalid Argument
+    INVALID_DATA               258      Invalid data
+    INVALID_FORMAT             259      Invalid format
+    INVALID_INDEX              260      Invalid Index
+    INVALID_SIZE               261      Inavlid Size
+    INVALID_OPERATION          262      Invalid Operation
+    NOT_FOUND                  263      Not Found
+    ACCESS_DENIED              264      Access Denied
+    NOT_SUPPORTED              265      Not supported
+    BUFFER_FULL                266      Buffer Full
+    MEDIA_FULL                 267      Media/Disk Full
+    ALREADY_IN_USE             268      Already in use
+    TIMEOUT                    269      Timeout error
+    NOT_READY                  270      Not Ready
+    FAILED_OPERATION           271      Requested Operation failed
+    OPERATION_PROHIBITED       272      Operation prohibited
+    OPERATION_ABORTED          273      Operation failed
+    WRITE_PROTECTED            274      Attempt to write to write-protected resource
+    NO_RESPONSE                275      No response
+    SEMAPHORE_LOCK_FAILED      276      Sempahore lock failed
+    MUTEX_LOCK_FAILED          277      Mutex lock failed
+    SEMAPHORE_UNLOCK_FAILED    278      Sempahore unlock failed
+    MUTEX_UNLOCK_FAILED        279      Mutex unlock failed
+    CRC_ERROR                  280      CRC error or mismatch
+    OPEN_FAILED                281      Open failed
+    CLOSE_FAILED               282      Close failed
+    READ_FAILED                283      Read failed
+    WRITE_FAILED               284      Write failed
+    INITIALIZATION_FAILED      285      Initialization failed
+    BOOT_FAILURE               286      Boot failure
+    OUT_OF_MEMORY              287      Out of memory
+    OUT_OF_RESOURCES           288      Out of resources
+    ALLOC_FAILED               289      Alloc failed
+    FREE_FAILED                290      Free failed
+    OVERFLOW                   291      Overflow error
+    UNDERFLOW                  292      Underflow error
+    STACK_OVERFLOW             293      Stack overflow error
+    ISR_QUEUE_OVERFLOW         294      ISR queue overflow
+    TIMER_QUEUE_OVERFLOW       295      Timer Queue overflow
+    CLIB_SPACE_UNAVAILABLE     296      Standard library error - Space unavailable
+    CLIB_EXCEPTION             297      Standard library error - Exception
+    CLIB_MUTEX_INIT_FAILURE    298      Standard library error - Mutex Init failure
+    CREATE_FAILED              299      Create failed
+    DELETE_FAILED              300      Delete failed
+    THREAD_CREATE_FAILED       301      Thread Create failed
+    THREAD_DELETE_FAILED       302      Thread Delete failed
+    PROHIBITED_IN_ISR_CONTEXT  303      Operation Prohibited in ISR context
+    PINMAP_INVALID             304      Pinmap Invalid
+    RTOS_EVENT                 305      Unknown Rtos Error
+    RTOS_THREAD_EVENT          306      Rtos Thread Error
+    RTOS_MUTEX_EVENT           307      Rtos Mutex Error
+    RTOS_SEMAPHORE_EVENT       308      Rtos Semaphore Error
+    RTOS_MEMORY_POOL_EVENT     309      Rtos Memory Pool Error
+    RTOS_TIMER_EVENT           310      Rtos Timer Error
+    RTOS_EVENT_FLAGS_EVENT     311      Rtos Event flags Error
+    RTOS_MESSAGE_QUEUE_EVENT   312      Rtos Message queue Error
+    DEVICE_BUSY                313      Device Busy
+    CONFIG_UNSUPPORTED         314      Configuration not supported
+    CONFIG_MISMATCH            315      Configuration mismatch
+    ALREADY_INITIALIZED        316      Already initialzied
+    HARDFAULT_EXCEPTION        317      HardFault exception
+    MEMMANAGE_EXCEPTION        318      MemManage exception
+    BUSFAULT_EXCEPTION         319      BusFault exception
+    USAGEFAULT_EXCEPTION       320      UsageFault exception
+    \endverbatim
+ *
+ *  @note
+ *  Custom Error codes can be defined using the macro DEFINE_CUSTOM_ERROR\n
+ *  This is mainly meant to capture non-generic error codes specific to a device.
+ *  For example DEFINE_CUSTOM_ERROR( MY_CUSTOM_ERROR ,1 ) macro defines the following values:\n
+ *      ERROR_CODE_MY_CUSTOM_ERROR = MBED_CUSTOM_ERROR_BASE+1\n
+ *      ERROR_MY_CUSTOM_ERROR = MAKE_MBED_ERROR(ERROR_TYPE_CUSTOM, MBED_MODULE_UNKNOWN, ERROR_CODE_MY_CUSTOM_ERROR)\n
+ *  Its effectively equivalent to:\n
+ *      ERROR_CODE_MY_CUSTOM_ERROR = 4097\n
+ *      ERROR_MY_CUSTOM_ERROR = 0xA0FF1001\n (Note that MODULE field is set to MBED_MODULE_UNKNOWN) \n\n
+ *
+ *  @note
+ *  **Using error codes:** \n
+ *  Posix error codes may be used in modules/functions currently using Posix error codes and switching them to Mbed-OS error codes
+ *  may cause interoperability issues. For example, some of the filesystem, network stack implementations may need to use
+ *  Posix error codes in order to keep them compatible with other modules interfacing with them, and may continue to use Posix error codes.
+ *
+ *  In all other cases, like for any native development of Mbed-OS modules Mbed-OS error codes should be used.
+ *  This makes it easy to use Mbed-OS error reporting/logging infrastructure and makes debugging error scenarios
+ *  much more efficient.
+ *
+ *  @note
+ *  **Searching for error codes in mbed-os source tree:** \n
+ *  If you get an error report as below which you want to search for in mbed-os source tree, first take note of "Error Code" number. \n
+ *  For example, the below error report has an error code of \b 259. Find the error name associated with the error code and in this case its \b INVALID_FORMAT. \n
+ *  Use that error name(\b INVALID_FORMAT) to search the source tree for code locations setting that specific error code. \n
+ *  If the Error module reported is not 255(which indicates unknown module), you can also use that to narrow down to the specific component reporting the error.
+ *  See mbed_module_type_t enum above for module mapping. \n
+ *
+ *  \verbatim
+    ++ MbedOS Error Info ++
+    Error Status: 0x80040103
+    Error Code: 259
+    Error Module: 04
+    Error Message: HAL Module error
+    Error Location: 0x000067C7
+    Error Value: 0x00005566
+    Current Thread: Id: 0x200024A8 EntryFn: 0x0000FB0D StackSize: 0x00001000 StackMem: 0x200014A8 SP: 0x2002FFD8
+    -- MbedOS Error Info --
+    \endverbatim
+ */
+
+typedef enum _mbed_error_code {
+    //Below are POSIX ERROR CODE definitions, which starts at MBED_POSIX_ERROR_BASE(=0)
+    //POSIX ERROR CODE definitions starts at offset 0(MBED_POSIX_ERROR_BASE) to align them with actual Posix Error Code
+    //defintions in mbed_retarget.h
+    //                  Error Name                                    Error Code
+    MBED_DEFINE_POSIX_ERROR(EPERM, EPERM),                              /* 1       Operation not permitted */
+    MBED_DEFINE_POSIX_ERROR(ENOENT, ENOENT),                            /* 2       No such file or directory */
+    MBED_DEFINE_POSIX_ERROR(ESRCH, ESRCH),                              /* 3       No such process */
+    MBED_DEFINE_POSIX_ERROR(EINTR, EINTR),                              /* 4       Interrupted system call */
+    MBED_DEFINE_POSIX_ERROR(EIO, EIO),                                  /* 5       I/O error */
+    MBED_DEFINE_POSIX_ERROR(ENXIO, ENXIO),                              /* 6       No such device or address */
+    MBED_DEFINE_POSIX_ERROR(E2BIG, E2BIG),                              /* 7       Argument list too long */
+    MBED_DEFINE_POSIX_ERROR(ENOEXEC, ENOEXEC),                          /* 8       Exec format error */
+    MBED_DEFINE_POSIX_ERROR(EBADF, EBADF),                              /* 9       Bad file number */
+    MBED_DEFINE_POSIX_ERROR(ECHILD, ECHILD),                            /* 10      No child processes */
+    MBED_DEFINE_POSIX_ERROR(EAGAIN, EAGAIN),                            /* 11      Try again */
+    MBED_DEFINE_POSIX_ERROR(ENOMEM, ENOMEM),                            /* 12      Out of memory */
+    MBED_DEFINE_POSIX_ERROR(EACCES, EACCES),                            /* 13      Permission denied */
+    MBED_DEFINE_POSIX_ERROR(EFAULT, EFAULT),                            /* 14      Bad address */
+    MBED_DEFINE_POSIX_ERROR(ENOTBLK, ENOTBLK),                          /* 15      Block device required */
+    MBED_DEFINE_POSIX_ERROR(EBUSY, EBUSY),                              /* 16      Device or resource busy */
+    MBED_DEFINE_POSIX_ERROR(EEXIST, EEXIST),                            /* 17      File exists */
+    MBED_DEFINE_POSIX_ERROR(EXDEV, EXDEV),                              /* 18      Cross-device link */
+    MBED_DEFINE_POSIX_ERROR(ENODEV, ENODEV),                            /* 19      No such device */
+    MBED_DEFINE_POSIX_ERROR(ENOTDIR, ENOTDIR),                          /* 20      Not a directory */
+    MBED_DEFINE_POSIX_ERROR(EISDIR, EISDIR),                            /* 21      Is a directory */
+    MBED_DEFINE_POSIX_ERROR(EINVAL, EINVAL),                            /* 22      Invalid argument */
+    MBED_DEFINE_POSIX_ERROR(ENFILE, ENFILE),                            /* 23      File table overflow */
+    MBED_DEFINE_POSIX_ERROR(EMFILE, EMFILE),                            /* 24      Too many open files */
+    MBED_DEFINE_POSIX_ERROR(ENOTTY, ENOTTY),                            /* 25      Not a typewriter */
+    MBED_DEFINE_POSIX_ERROR(ETXTBSY, ETXTBSY),                          /* 26      Text file busy */
+    MBED_DEFINE_POSIX_ERROR(EFBIG, EFBIG),                              /* 27      File too large */
+    MBED_DEFINE_POSIX_ERROR(ENOSPC, ENOSPC),                            /* 28      No space left on device */
+    MBED_DEFINE_POSIX_ERROR(ESPIPE, ESPIPE),                            /* 29      Illegal seek */
+    MBED_DEFINE_POSIX_ERROR(EROFS, EROFS),                              /* 30      Read-only file system */
+    MBED_DEFINE_POSIX_ERROR(EMLINK, EMLINK),                            /* 31      Too many links */
+    MBED_DEFINE_POSIX_ERROR(EPIPE, EPIPE),                              /* 32      Broken pipe */
+    MBED_DEFINE_POSIX_ERROR(EDOM, EDOM),                                /* 33      Math argument out of domain of func */
+    MBED_DEFINE_POSIX_ERROR(ERANGE, ERANGE),                            /* 34      Math result not representable */
+    MBED_DEFINE_POSIX_ERROR(EDEADLK, EDEADLK),                          /* 35      Resource deadlock would occur */
+    MBED_DEFINE_POSIX_ERROR(ENAMETOOLONG, ENAMETOOLONG),                /* 36      File name too long */
+    MBED_DEFINE_POSIX_ERROR(ENOLCK, ENOLCK),                            /* 37      No record locks available */
+    MBED_DEFINE_POSIX_ERROR(ENOSYS, ENOSYS),                            /* 38      Function not implemented */
+    MBED_DEFINE_POSIX_ERROR(ENOTEMPTY, ENOTEMPTY),                      /* 39      Directory not empty */
+    MBED_DEFINE_POSIX_ERROR(ELOOP, ELOOP),                              /* 40      Too many symbolic links encountered */
+    MBED_DEFINE_POSIX_ERROR(EWOULDBLOCK, EAGAIN),                       /* EAGAIN  Operation would block */
+    MBED_DEFINE_POSIX_ERROR(ENOMSG, ENOMSG),                            /* 42      No message of desired type */
+    MBED_DEFINE_POSIX_ERROR(EIDRM, EIDRM),                              /* 43      Identifier removed */
+    MBED_DEFINE_POSIX_ERROR(ECHRNG, ECHRNG),                            /* 44      Channel number out of range */
+    MBED_DEFINE_POSIX_ERROR(EL2NSYNC, EL2NSYNC),                        /* 45      Level 2 not synchronized */
+    MBED_DEFINE_POSIX_ERROR(EL3HLT, EL3HLT),                            /* 46      Level 3 halted */
+    MBED_DEFINE_POSIX_ERROR(EL3RST, EL3RST),                            /* 47      Level 3 reset */
+    MBED_DEFINE_POSIX_ERROR(ELNRNG, ELNRNG),                            /* 48      Link number out of range */
+    MBED_DEFINE_POSIX_ERROR(EUNATCH, EUNATCH),                          /* 49      Protocol driver not attached */
+    MBED_DEFINE_POSIX_ERROR(ENOCSI, ENOCSI),                            /* 50      No CSI structure available */
+    MBED_DEFINE_POSIX_ERROR(EL2HLT, EL2HLT),                            /* 51      Level 2 halted */
+    MBED_DEFINE_POSIX_ERROR(EBADE, EBADE),                              /* 52      Invalid exchange */
+    MBED_DEFINE_POSIX_ERROR(EBADR, EBADR),                              /* 53      Invalid request descriptor */
+    MBED_DEFINE_POSIX_ERROR(EXFULL, EXFULL),                            /* 54      Exchange full */
+    MBED_DEFINE_POSIX_ERROR(ENOANO, ENOANO),                            /* 55      No anode */
+    MBED_DEFINE_POSIX_ERROR(EBADRQC, EBADRQC),                          /* 56      Invalid request code */
+    MBED_DEFINE_POSIX_ERROR(EBADSLT, EBADSLT),                          /* 57      Invalid slot */
+    MBED_DEFINE_POSIX_ERROR(EDEADLOCK, EDEADLK),                        /* EDEADLK Resource deadlock would occur */
+    MBED_DEFINE_POSIX_ERROR(EBFONT, EBFONT),                            /* 59      Bad font file format */
+    MBED_DEFINE_POSIX_ERROR(ENOSTR, ENOSTR),                            /* 60      Device not a stream */
+    MBED_DEFINE_POSIX_ERROR(ENODATA, ENODATA),                          /* 61      No data available */
+    MBED_DEFINE_POSIX_ERROR(ETIME, ETIME),                              /* 62      Timer expired */
+    MBED_DEFINE_POSIX_ERROR(ENOSR, ENOSR),                              /* 63      Out of streams resources */
+    MBED_DEFINE_POSIX_ERROR(ENONET, ENONET),                            /* 64      Machine is not on the network */
+    MBED_DEFINE_POSIX_ERROR(ENOPKG, ENOPKG),                            /* 65      Package not installed */
+    MBED_DEFINE_POSIX_ERROR(EREMOTE, EREMOTE),                          /* 66      Object is remote */
+    MBED_DEFINE_POSIX_ERROR(ENOLINK, ENOLINK),                          /* 67      Link has been severed */
+    MBED_DEFINE_POSIX_ERROR(EADV, EADV),                                /* 68      Advertise error */
+    MBED_DEFINE_POSIX_ERROR(ESRMNT, ESRMNT),                            /* 69      Srmount error */
+    MBED_DEFINE_POSIX_ERROR(ECOMM, ECOMM),                              /* 70      Communication error on send */
+    MBED_DEFINE_POSIX_ERROR(EPROTO, EPROTO),                            /* 71      Protocol error */
+    MBED_DEFINE_POSIX_ERROR(EMULTIHOP, EMULTIHOP),                      /* 72      Multihop attempted */
+    MBED_DEFINE_POSIX_ERROR(EDOTDOT, EDOTDOT),                          /* 73      RFS specific error */
+    MBED_DEFINE_POSIX_ERROR(EBADMSG, EBADMSG),                          /* 74      Not a data message */
+    MBED_DEFINE_POSIX_ERROR(EOVERFLOW, EOVERFLOW),                      /* 75      Value too large for defined data type */
+    MBED_DEFINE_POSIX_ERROR(ENOTUNIQ, ENOTUNIQ),                        /* 76      Name not unique on network */
+    MBED_DEFINE_POSIX_ERROR(EBADFD, EBADFD),                            /* 77      File descriptor in bad state */
+    MBED_DEFINE_POSIX_ERROR(EREMCHG, EREMCHG),                          /* 78      Remote address changed */
+    MBED_DEFINE_POSIX_ERROR(ELIBACC, ELIBACC),                          /* 79      Can not access a needed shared library */
+    MBED_DEFINE_POSIX_ERROR(ELIBBAD, ELIBBAD),                          /* 80      Accessing a corrupted shared library */
+    MBED_DEFINE_POSIX_ERROR(ELIBSCN, ELIBSCN),                          /* 81      .lib section in a.out corrupted */
+    MBED_DEFINE_POSIX_ERROR(ELIBMAX, ELIBMAX),                          /* 82      Attempting to link in too many shared libraries */
+    MBED_DEFINE_POSIX_ERROR(ELIBEXEC, ELIBEXEC),                        /* 83      Cannot exec a shared library directly */
+    MBED_DEFINE_POSIX_ERROR(EILSEQ, EILSEQ),                            /* 84      Illegal byte sequence */
+    MBED_DEFINE_POSIX_ERROR(ERESTART, ERESTART),                        /* 85      Interrupted system call should be restarted */
+    MBED_DEFINE_POSIX_ERROR(ESTRPIPE, ESTRPIPE),                        /* 86      Streams pipe error */
+    MBED_DEFINE_POSIX_ERROR(EUSERS, EUSERS),                            /* 87      Too many users */
+    MBED_DEFINE_POSIX_ERROR(ENOTSOCK, ENOTSOCK),                        /* 88      Socket operation on non-socket */
+    MBED_DEFINE_POSIX_ERROR(EDESTADDRREQ, EDESTADDRREQ),                /* 89      Destination address required */
+    MBED_DEFINE_POSIX_ERROR(EMSGSIZE, EMSGSIZE),                        /* 90      Message too long */
+    MBED_DEFINE_POSIX_ERROR(EPROTOTYPE, EPROTOTYPE),                    /* 91      Protocol wrong type for socket */
+    MBED_DEFINE_POSIX_ERROR(ENOPROTOOPT, ENOPROTOOPT),                  /* 92      Protocol not available */
+    MBED_DEFINE_POSIX_ERROR(EPROTONOSUPPORT, EPROTONOSUPPORT),          /* 93      Protocol not supported */
+    MBED_DEFINE_POSIX_ERROR(ESOCKTNOSUPPORT, ESOCKTNOSUPPORT),          /* 94      Socket type not supported */
+    MBED_DEFINE_POSIX_ERROR(EOPNOTSUPP, EOPNOTSUPP),                    /* 95      Operation not supported on transport endpoint */
+    MBED_DEFINE_POSIX_ERROR(EPFNOSUPPORT, EPFNOSUPPORT),                /* 96      Protocol family not supported */
+    MBED_DEFINE_POSIX_ERROR(EAFNOSUPPORT, EAFNOSUPPORT),                /* 97      Address family not supported by protocol */
+    MBED_DEFINE_POSIX_ERROR(EADDRINUSE, EADDRINUSE),                    /* 98      Address already in use */
+    MBED_DEFINE_POSIX_ERROR(EADDRNOTAVAIL, EADDRNOTAVAIL),              /* 99      Cannot assign requested address */
+    MBED_DEFINE_POSIX_ERROR(ENETDOWN, ENETDOWN),                        /* 100     Network is down */
+    MBED_DEFINE_POSIX_ERROR(ENETUNREACH, ENETUNREACH),                  /* 101     Network is unreachable */
+    MBED_DEFINE_POSIX_ERROR(ENETRESET, ENETRESET),                      /* 102     Network dropped connection because of reset */
+    MBED_DEFINE_POSIX_ERROR(ECONNABORTED, ECONNABORTED),                /* 103     Software caused connection abort */
+    MBED_DEFINE_POSIX_ERROR(ECONNRESET, ECONNRESET),                    /* 104     Connection reset by peer */
+    MBED_DEFINE_POSIX_ERROR(ENOBUFS, ENOBUFS),                          /* 105     No buffer space available */
+    MBED_DEFINE_POSIX_ERROR(EISCONN, EISCONN),                          /* 106     Transport endpoint is already connected */
+    MBED_DEFINE_POSIX_ERROR(ENOTCONN, ENOTCONN),                        /* 107     Transport endpoint is not connected */
+    MBED_DEFINE_POSIX_ERROR(ESHUTDOWN, ESHUTDOWN),                      /* 108     Cannot send after transport endpoint shutdown */
+    MBED_DEFINE_POSIX_ERROR(ETOOMANYREFS, ETOOMANYREFS),                /* 109     Too many references: cannot splice */
+    MBED_DEFINE_POSIX_ERROR(ETIMEDOUT, ETIMEDOUT),                      /* 110     Connection timed out */
+    MBED_DEFINE_POSIX_ERROR(ECONNREFUSED, ECONNREFUSED),                /* 111     Connection refused */
+    MBED_DEFINE_POSIX_ERROR(EHOSTDOWN, EHOSTDOWN),                      /* 112     Host is down */
+    MBED_DEFINE_POSIX_ERROR(EHOSTUNREACH, EHOSTUNREACH),                /* 113     No route to host */
+    MBED_DEFINE_POSIX_ERROR(EALREADY, EALREADY),                        /* 114     Operation already in progress */
+    MBED_DEFINE_POSIX_ERROR(EINPROGRESS, EINPROGRESS),                  /* 115     Operation now in progress */
+    MBED_DEFINE_POSIX_ERROR(ESTALE, ESTALE),                            /* 116     Stale NFS file handle */
+    MBED_DEFINE_POSIX_ERROR(EUCLEAN, EUCLEAN),                          /* 117     Structure needs cleaning */
+    MBED_DEFINE_POSIX_ERROR(ENOTNAM, ENOTNAM),                          /* 118     Not a XENIX named type file */
+    MBED_DEFINE_POSIX_ERROR(ENAVAIL, ENAVAIL),                          /* 119     No XENIX semaphores available */
+    MBED_DEFINE_POSIX_ERROR(EISNAM, EISNAM),                            /* 120     Is a named type file */
+    MBED_DEFINE_POSIX_ERROR(EREMOTEIO, EREMOTEIO),                      /* 121     Remote I/O error */
+    MBED_DEFINE_POSIX_ERROR(EDQUOT, EDQUOT),                            /* 122     Quota exceeded */
+    MBED_DEFINE_POSIX_ERROR(ENOMEDIUM, ENOMEDIUM),                      /* 123     No medium found */
+    MBED_DEFINE_POSIX_ERROR(EMEDIUMTYPE, EMEDIUMTYPE),                  /* 124     Wrong medium type */
+    MBED_DEFINE_POSIX_ERROR(ECANCELED, ECANCELED),                      /* 125     Operation Canceled */
+    MBED_DEFINE_POSIX_ERROR(ENOKEY, ENOKEY),                            /* 126     Required key not available */
+    MBED_DEFINE_POSIX_ERROR(EKEYEXPIRED, EKEYEXPIRED),                  /* 127     Key has expired */
+    MBED_DEFINE_POSIX_ERROR(EKEYREVOKED, EKEYREVOKED),                  /* 128     Key has been revoked */
+    MBED_DEFINE_POSIX_ERROR(EKEYREJECTED, EKEYREJECTED),                /* 129     Key was rejected by service */
+    MBED_DEFINE_POSIX_ERROR(EOWNERDEAD, EOWNERDEAD),                    /* 130     Owner died */
+    MBED_DEFINE_POSIX_ERROR(ENOTRECOVERABLE, ENOTRECOVERABLE),          /* 131     State not recoverable */
+
+    //Below are MBED SYSTEM ERROR CODE definitions
+    //MBED SYSTEM ERROR CODE definitions starts at offset MBED_SYSTEM_ERROR_BASE, see above.
+    //                   Error Name                 Error Offset   Error Code
+    MBED_DEFINE_SYSTEM_ERROR(UNKNOWN, 0),                               /* 256      Unknown error */
+    MBED_DEFINE_SYSTEM_ERROR(INVALID_ARGUMENT, 1),                      /* 257      Invalid Argument */
+    MBED_DEFINE_SYSTEM_ERROR(INVALID_DATA_DETECTED, 2),                 /* 258      Invalid data detected */
+    MBED_DEFINE_SYSTEM_ERROR(INVALID_FORMAT, 3),                        /* 259      Invalid format */
+    MBED_DEFINE_SYSTEM_ERROR(INVALID_INDEX, 4),                         /* 260      Invalid Index */
+    MBED_DEFINE_SYSTEM_ERROR(INVALID_SIZE, 5),                          /* 261      Inavlid Size */
+    MBED_DEFINE_SYSTEM_ERROR(INVALID_OPERATION, 6),                     /* 262      Invalid Operation */
+    MBED_DEFINE_SYSTEM_ERROR(ITEM_NOT_FOUND, 7),                        /* 263      Item Not Found */
+    MBED_DEFINE_SYSTEM_ERROR(ACCESS_DENIED, 8),                         /* 264      Access Denied */
+    MBED_DEFINE_SYSTEM_ERROR(UNSUPPORTED, 9),                           /* 265      Unsupported */
+    MBED_DEFINE_SYSTEM_ERROR(BUFFER_FULL, 10),                          /* 266      Buffer Full */
+    MBED_DEFINE_SYSTEM_ERROR(MEDIA_FULL, 11),                           /* 267      Media/Disk Full */
+    MBED_DEFINE_SYSTEM_ERROR(ALREADY_IN_USE, 12),                       /* 268      Already in use */
+    MBED_DEFINE_SYSTEM_ERROR(TIME_OUT, 13),                             /* 269      Timeout error */
+    MBED_DEFINE_SYSTEM_ERROR(NOT_READY, 14),                            /* 270      Not Ready */
+    MBED_DEFINE_SYSTEM_ERROR(FAILED_OPERATION, 15),                     /* 271      Requested Operation failed */
+    MBED_DEFINE_SYSTEM_ERROR(OPERATION_PROHIBITED, 16),                 /* 272      Operation prohibited */
+    MBED_DEFINE_SYSTEM_ERROR(OPERATION_ABORTED, 17),                    /* 273      Operation failed */
+    MBED_DEFINE_SYSTEM_ERROR(WRITE_PROTECTED, 18),                      /* 274      Attempt to write to write-protected resource */
+    MBED_DEFINE_SYSTEM_ERROR(NO_RESPONSE, 19),                          /* 275      No response */
+    MBED_DEFINE_SYSTEM_ERROR(SEMAPHORE_LOCK_FAILED, 20),                /* 276      Sempahore lock failed */
+    MBED_DEFINE_SYSTEM_ERROR(MUTEX_LOCK_FAILED, 21),                    /* 277      Mutex lock failed */
+    MBED_DEFINE_SYSTEM_ERROR(SEMAPHORE_UNLOCK_FAILED, 22),              /* 278      Sempahore unlock failed */
+    MBED_DEFINE_SYSTEM_ERROR(MUTEX_UNLOCK_FAILED, 23),                  /* 279      Mutex unlock failed */
+    MBED_DEFINE_SYSTEM_ERROR(CRC_ERROR, 24),                            /* 280      CRC error or mismatch */
+    MBED_DEFINE_SYSTEM_ERROR(OPEN_FAILED, 25),                          /* 281      Open failed */
+    MBED_DEFINE_SYSTEM_ERROR(CLOSE_FAILED, 26),                         /* 282      Close failed */
+    MBED_DEFINE_SYSTEM_ERROR(READ_FAILED, 27),                          /* 283      Read failed */
+    MBED_DEFINE_SYSTEM_ERROR(WRITE_FAILED, 28),                         /* 284      Write failed */
+    MBED_DEFINE_SYSTEM_ERROR(INITIALIZATION_FAILED, 29),                /* 285      Initialization failed */
+    MBED_DEFINE_SYSTEM_ERROR(BOOT_FAILURE, 30),                         /* 286      Boot failure */
+    MBED_DEFINE_SYSTEM_ERROR(OUT_OF_MEMORY, 31),                        /* 287      Out of memory */
+    MBED_DEFINE_SYSTEM_ERROR(OUT_OF_RESOURCES, 32),                     /* 288      Out of resources */
+    MBED_DEFINE_SYSTEM_ERROR(ALLOC_FAILED, 33),                         /* 289      Alloc failed */
+    MBED_DEFINE_SYSTEM_ERROR(FREE_FAILED, 34),                          /* 290      Free failed */
+    MBED_DEFINE_SYSTEM_ERROR(OVERFLOW, 35),                             /* 291      Overflow error */
+    MBED_DEFINE_SYSTEM_ERROR(UNDERFLOW, 36),                            /* 292      Underflow error */
+    MBED_DEFINE_SYSTEM_ERROR(STACK_OVERFLOW, 37),                       /* 293      Stack overflow error */
+    MBED_DEFINE_SYSTEM_ERROR(ISR_QUEUE_OVERFLOW, 38),                   /* 294      ISR queue overflow */
+    MBED_DEFINE_SYSTEM_ERROR(TIMER_QUEUE_OVERFLOW, 39),                 /* 295      Timer Queue overflow */
+    MBED_DEFINE_SYSTEM_ERROR(CLIB_SPACE_UNAVAILABLE, 40),               /* 296      Standard library error - Space unavailable */
+    MBED_DEFINE_SYSTEM_ERROR(CLIB_EXCEPTION, 41),                       /* 297      Standard library error - Exception */
+    MBED_DEFINE_SYSTEM_ERROR(CLIB_MUTEX_INIT_FAILURE, 42),              /* 298      Standard library error - Mutex Init failure */
+    MBED_DEFINE_SYSTEM_ERROR(CREATE_FAILED, 43),                        /* 299      Create failed */
+    MBED_DEFINE_SYSTEM_ERROR(DELETE_FAILED, 44),                        /* 300      Delete failed */
+    MBED_DEFINE_SYSTEM_ERROR(THREAD_CREATE_FAILED, 45),                 /* 301      Thread Create failed */
+    MBED_DEFINE_SYSTEM_ERROR(THREAD_DELETE_FAILED, 46),                 /* 302      Thread Delete failed */
+    MBED_DEFINE_SYSTEM_ERROR(PROHIBITED_IN_ISR_CONTEXT, 47),            /* 303      Operation Prohibited in ISR context */
+    MBED_DEFINE_SYSTEM_ERROR(PINMAP_INVALID, 48),                       /* 304      Pinmap Invalid */
+    MBED_DEFINE_SYSTEM_ERROR(RTOS_EVENT, 49),                           /* 305      Unknown Rtos Error */
+    MBED_DEFINE_SYSTEM_ERROR(RTOS_THREAD_EVENT, 50),                    /* 306      Rtos Thread Error */
+    MBED_DEFINE_SYSTEM_ERROR(RTOS_MUTEX_EVENT, 51),                     /* 307      Rtos Mutex Error */
+    MBED_DEFINE_SYSTEM_ERROR(RTOS_SEMAPHORE_EVENT, 52),                 /* 308      Rtos Semaphore Error */
+    MBED_DEFINE_SYSTEM_ERROR(RTOS_MEMORY_POOL_EVENT, 53),               /* 309      Rtos Memory Pool Error */
+    MBED_DEFINE_SYSTEM_ERROR(RTOS_TIMER_EVENT, 54),                     /* 310      Rtos Timer Error */
+    MBED_DEFINE_SYSTEM_ERROR(RTOS_EVENT_FLAGS_EVENT, 55),               /* 311      Rtos Event flags Error */
+    MBED_DEFINE_SYSTEM_ERROR(RTOS_MESSAGE_QUEUE_EVENT, 56),             /* 312      Rtos Message queue Error */
+    MBED_DEFINE_SYSTEM_ERROR(DEVICE_BUSY, 57),                          /* 313      Device Busy */
+    MBED_DEFINE_SYSTEM_ERROR(CONFIG_UNSUPPORTED, 58),                   /* 314      Configuration not supported */
+    MBED_DEFINE_SYSTEM_ERROR(CONFIG_MISMATCH, 59),                      /* 315      Configuration mismatch */
+    MBED_DEFINE_SYSTEM_ERROR(ALREADY_INITIALIZED, 60),                  /* 316      Already initialzied */
+    MBED_DEFINE_SYSTEM_ERROR(HARDFAULT_EXCEPTION, 61),                  /* 317      HardFault exception */
+    MBED_DEFINE_SYSTEM_ERROR(MEMMANAGE_EXCEPTION, 62),                  /* 318      MemManage exception */
+    MBED_DEFINE_SYSTEM_ERROR(BUSFAULT_EXCEPTION, 63),                   /* 319      BusFault exception */
+    MBED_DEFINE_SYSTEM_ERROR(USAGEFAULT_EXCEPTION, 64),                 /* 320      UsageFault exception*/
+    MBED_DEFINE_SYSTEM_ERROR(BLE_NO_FRAME_INITIALIZED, 65),             /* 321      BLE No frame initialized */
+    MBED_DEFINE_SYSTEM_ERROR(BLE_BACKEND_CREATION_FAILED, 66),          /* 322      BLE Backend creation failed */
+    MBED_DEFINE_SYSTEM_ERROR(BLE_BACKEND_NOT_INITIALIZED, 67),          /* 323      BLE Backend not initialized */
+
+    //Everytime you add a new system error code, you must update
+    //Error documentation under Handbook to capture the info on
+    //the new error status/codes
+
+    //MBED CUSTOM ERROR CODE definitions starts at offset MBED_CUSTOM_ERROR_BASE, see above.
+    /* Add More/Custom Error Codes here, See example below */
+    //DEFINE_CUSTOM_ERROR( MY_CUSTOM_ERROR     , 1 ),
+
+} mbed_error_code_t;
+
+/** mbed_error_ctx struct
+ *
+ *  This struct captures the context information at the time of error.\n
+ *  It primarily contains information about the thread where the error originated,\n
+ *  filename/line number of the source file where the error occurred, a context specific error value(error_value)\n
+ *  and the address where the error originated.\n
+ *
+ *  @note
+ *  Below are the members of mbed_error_ctx struct\n
+ *      error_status              mbed_error_status_t value for this error\n
+ *      error_function_address    Address where the error occurred\n
+ *      thread_id                 ID of the thread which generated the error\n
+ *      thread_entry_address      Entry function of the thread which generated the error\n
+ *      thread_stack_size         Stack Size of the thread which generated the error\n
+ *      thread_stack_mem          Stack Top of the thread which generated the error\n
+ *      thread_current_sp         Current Stack Pointer of the thread which generated the error\n
+ *      error_value               A context/error specific value associated with this error\n
+ *      error_filename            Filename where the error originated\n
+ *      error_line_number         Line number in error_filename where the error originated\n
+ */
+typedef struct _mbed_error_ctx {
+    mbed_error_status_t error_status;
+    uint32_t error_address;
+    uint32_t error_value;
+    uint32_t thread_id;
+    uint32_t thread_entry_address;
+    uint32_t thread_stack_size;
+    uint32_t thread_stack_mem;
+    uint32_t thread_current_sp;
+#ifdef MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN
+    char error_filename[MBED_CONF_PLATFORM_MAX_ERROR_FILENAME_LEN];
+    uint32_t error_line_number;
+#endif
+} mbed_error_ctx;
+
+/** To generate a fatal compile-time error, you can use the pre-processor #error directive.
+ *
+ * @param format    C string that contains data stream to be printed.
+ *                  Code snippets below show valid format.
+ *
+ * @code
+ * #error "That shouldn't have happened!"
+ * @endcode
+ *
+ * If the compiler evaluates this line, it will report the error and stop the compile.
+ *
+ * For example, you could use this to check some user-defined compile-time variables:
+ *
+ * @code
+ * #define NUM_PORTS 7
+ * #if (NUM_PORTS > 4)
+ *     #error "NUM_PORTS must be less than 4"
+ * #endif
+ * @endcode
+ *
+ * Reporting Run-Time Errors:
+ * To generate a fatal run-time error, you can use the mbed error() function.
+ *
+ * @code
+ * error("That shouldn't have happened!");
+ * @endcode
+ *
+ * If the mbed running the program executes this function, it will print the
+ * message via the USB serial port, and then die with the blue lights of death!
+ *
+ * The message can use printf-style formatting, so you can report variables in the
+ * message too. For example, you could use this to check a run-time condition:
+ *
+ * @code
+ * if(x >= 5) {
+ *     error("expected x to be less than 5, but got %d", x);
+ * }
+ * @endcode
+ *
+ *
+ */
+
+void error(const char *format, ...);
+
+/**
+ * Call this Macro to generate a mbed_error_status_t value for a System error
+ * @param  module           Module generating the error code. If its unknown, pass MBED_MODULE_UNKNOWN. See mbed_module_type_t for module types.
+ * @param  error_code       The mbed_error_code_t code to be used in generating the mbed_error_status_t. See mbed_error_code_t for error codes.
+ *
+ * @code
+ *
+ * mbed_error_status_t driver_error = MBED_MAKE_SYSTEM_ERROR( MODULE_DRIVER_USB, MBED_ERROR_CODE_INITIALIZATION_FAILED )
+ *
+ * @endcode
+ * @note This macro generate mbed_error_status_t-es with error type set to MBED_ERROR_TYPE_SYSTEM
+ *
+ */
+#define MBED_MAKE_SYSTEM_ERROR(module, error_code)                   MAKE_MBED_ERROR(MBED_ERROR_TYPE_SYSTEM, module, error_code)
+
+/**
+ * Call this Macro to generate a mbed_error_status_t value for a Custom error
+ * @param  module           Module generating the error code. If its unknown, pass MBED_MODULE_UNKNOWN. See mbed_module_type_t for module types.
+ * @param  error_code       The mbed_error_code_t code to be used in generating the mbed_error_status_t. See mbed_error_code_t for error codes.
+ *
+ * @code
+ *
+ * mbed_error_status_t custom_error = MBED_MAKE_CUSTOM_ERROR( MBED_MODULE_APPLICATION, 0xDEAD//16-bit custom error code )
+ *
+ * @endcode
+ * @note This macro generate mbed_error_status_t-es with error type set to MBED_ERROR_TYPE_CUSTOM
+ *
+ */
+#define MBED_MAKE_CUSTOM_ERROR(module, error_code)                   MAKE_MBED_ERROR(MBED_ERROR_TYPE_CUSTOM, module, error_code)
+
+/**
+ * Call this Macro to generate a mbed_error_status_t value for a System error
+ * @param  module           Module generating the error code. If its unknown, pass MBED_MODULE_UNKNOWN. See mbed_module_type_t for module types.
+ * @param  error_code       The mbed_error_code_t code to be used in generating the mbed_error_status_t. See mbed_error_code_t for error codes.
+ *
+ * @code
+ *
+ * mbed_error_status_t new_error = MBED_MAKE_ERROR( MODULE_DRIVER_USB, MBED_ERROR_INITIALIZATION_FAILED )
+ *
+ * @endcode
+ * @note This macro generate mbed_error_status_t-es with error type set to MBED_ERROR_TYPE_SYSTEM
+ *
+ */
+#define MBED_MAKE_ERROR(module, error_code)                          MBED_MAKE_SYSTEM_ERROR(module, error_code)
+
+/**
+ * Callback/Error hook function prototype. Applications needing a callback when an error is reported can use mbed_set_error_hook function
+ * to register a callback/error hook function using the following prototype. When an error happens in the system error handling
+ * implementation will invoke this callback with the mbed_error_status_t reported and the error context at the time of error.
+ * @param  error_status     mbed_error_status_t status being reported.
+ * @param  error_ctx        Error context structure associated with this error.
+ * @return                  void
+ *
+ */
+typedef void (*mbed_error_hook_t)(const mbed_error_ctx *error_ctx);
+
+/**
+ * Call this function to set a system error/warning. This function will log the error status with the context info and return to caller.
+ *
+ * @param  error_status     mbed_error_status_t status to be set(See mbed_error_status_t enum above for available error status values).
+ * @param  error_msg        The error message to be printed out to STDIO/Serial.
+ * @param  error_value      Value associated with the error status. This would depend on error code/error scenario.
+ * @param  filename         Name of the source file originating the error( Most callers can pass __FILE__ here ).
+ * @param  line_number      The line number of the source file originating the error( Most callers can pass __LINE__ here ) .
+ * @return                  0 or MBED_SUCCESS.
+ *                          MBED_ERROR_INVALID_ARGUMENT if called with invalid error status/codes
+ *
+ * @code
+ *
+ * mbed_error( ERROR_OUT_OF_MEMORY, "Out of memory error", 0, __FILE__, __LINE__ )
+ *
+ * @endcode
+ *
+ * @note See MBED_WARNING/MBED_ERROR macros which provides a wrapper on this API
+ */
+mbed_error_status_t mbed_warning(mbed_error_status_t error_status, const char *error_msg, unsigned int error_value, const char *filename, int line_number);
+
+/**
+ * Returns the first system error reported.
+ * @return                  mbed_error_status_t code logged for the first error or MBED_SUCCESS if no errors are logged.
+ *
+ */
+mbed_error_status_t mbed_get_first_error(void);
+
+/**
+ * Returns the most recent system error reported.
+ * @return                  mbed_error_status_t code logged for the last error or MBED_SUCCESS if no errors are logged.
+ *
+ */
+mbed_error_status_t mbed_get_last_error(void);
+
+/**
+ * Returns the number of system errors reported after boot.
+ * @return                  int Number of errors reported.
+ *
+ */
+int mbed_get_error_count(void);
+
+/**
+ * Call this function to set a fatal system error and halt the system. This function will log the fatal error with the context info and prints the error report and halts the system.
+ *
+ * @param  error_status     mbed_error_status_t status to be set(See mbed_error_status_t enum above for available error status values).
+ * @param  error_msg        The error message to be printed out to STDIO/Serial.
+ * @param  error_value      Value associated with the error status. This would depend on error code/error scenario.
+ * @param  filename         Name of the source file originating the error( Most callers can pass __FILE__ here ).
+ * @param  line_number      The line number of the source file originating the error( Most callers can pass __LINE__ here ) .
+ * @return                  0 or MBED_SUCCESS.
+ *                          MBED_ERROR_INVALID_ARGUMENT if called with invalid error status/codes
+ *
+ * @code
+ *
+ * mbed_error( MBED_ERROR_PROHIBITED_OPERATION, "Prohibited operation tried", 0, __FILE__, __LINE__ )
+ *
+ * @endcode
+ *
+ * @note See MBED_WARNING/MBED_ERROR macros which provides a wrapper on this API
+ */
+mbed_error_status_t mbed_error(mbed_error_status_t error_status, const char *error_msg, unsigned int error_value, const char *filename, int line_number);
+
+/**
+ * Registers an application defined error callback with the error handling system.
+ * This function will be called with error context info whenever system handles a mbed_error/mbed_warning call
+ * NOTE: This function should be implemented for re-entrancy as multiple threads may invoke mbed_error which may cause error hook to be called.
+ * @param  custom_error_hook    mbed_error_status_t status to be set(See mbed_error_status_t enum above for available error status values).
+ * @return                      0 or MBED_SUCCESS on success.
+ *                              MBED_ERROR_INVALID_ARGUMENT in case of NULL for custom_error_hook
+ *
+ * @code
+ *
+ * mbed_error_status_t my_custom_error_hook(mbed_error_status_t error_status, const mbed_error_ctx *error_ctx) {
+ *    //Do something with the error_status or error_ctx
+ * }
+ *
+ * mbed_set_error_hook( my_custom_error_hook )
+ *
+ * @endcode
+ * @note The erro hook function implementation should be re-entrant.
+ *
+ */
+mbed_error_status_t mbed_set_error_hook(mbed_error_hook_t custom_error_hook);
+
+/**
+ * Reads the first error context information captured.
+ * @param  error_info           This is the mbed_error_context info captured as part of the first mbed_error call. The caller should pass a pointer to mbed_error_context struct allocated by the caller.
+ * @return                      0 or MBED_SUCCESS on success.
+ *                              MBED_ERROR_INVALID_ARGUMENT in case of invalid index
+ *
+ */
+mbed_error_status_t mbed_get_first_error_info(mbed_error_ctx *error_info);
+
+/**
+ * Reads the last error context information captured.
+ * @param  error_info           This is the mbed_error_context info captured as part of the last mbed_error call. The caller should pass a pointer to mbed_error_context struct allocated by the caller.
+ * @return                      0 or MBED_ERROR_SUCCESS on success.
+ *                              MBED_ERROR_INVALID_ARGUMENT in case of invalid index
+ *
+ */
+mbed_error_status_t mbed_get_last_error_info(mbed_error_ctx *error_info);
+
+/**
+ * Clears the last error, first error, error count and all entries in the error history.
+ * @return                      0 or MBED_SUCCESS on success.
+ *
+ */
+mbed_error_status_t mbed_clear_all_errors(void);
+
+/**
+ * Generates a mbed_error_status_t value based on passed in values for type, module and error code.
+ * @param  error_type           Error type based on mbed_error_type_t enum.
+ * @param  module               Module type based on mbed_module_type_t enum.
+ * @param  error_code           Error codes defined by mbed_error_code_t enum
+ * @return                      0 or MBED_ERROR_SUCCESS on success.
+ *
+ */
+mbed_error_status_t mbed_make_error(mbed_error_type_t error_type, mbed_module_type_t module, mbed_error_code_t error_code);
+
+/**
+ * Returns the current number of entries in the error history, if there has been more than max number of errors logged the number returned will be max depth of error history.
+ * @return                      Current number of entries in the error history.
+ *
+ */
+int mbed_get_error_hist_count(void);
+
+/**
+ * Reads the error context information for a specific error from error history, specified by the index.
+ *
+ * @param  index                index of the error context entry in the history to be retrieved.\n
+ *                              The number of entries in the error history is configured during build and the max index depends on max depth of error history.\n
+ *                              index = 0 points to the oldest entry in the history, and index = (max history depth - 1) points to the latest entry in the error history.\n
+ * @param  error_info           This is the mbed_error_context info captured as part of the error history. The caller should pass a pointer to mbed_error_context struct allocated by the caller.
+ * @return                      0 or MBED_SUCCESS on success.
+ *                              MBED_ERROR_INVALID_ARGUMENT in case of invalid index
+ *
+ */
+mbed_error_status_t mbed_get_error_hist_info(int index, mbed_error_ctx *error_info);
+
+/**
+ * Saves the error history information to a file
+ *
+ * @param  path                 path to the file in the filesystem
+ * @return                      0 or MBED_ERROR_SUCCESS on success.
+ *                              MBED_ERROR_WRITE_FAILED if writing to file failed
+ *                              MBED_ERROR_INVALID_ARGUMENT if path is not valid
+ *
+ * @note                        Filesystem support is required in order for this function to work.
+ *
+ */
+mbed_error_status_t mbed_save_error_hist(const char *path);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/** @}*/
+/** @}*/
+
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error_hist.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error_hist.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error_hist.c	(revision 429)
@@ -0,0 +1,99 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <stdlib.h>
+#include <stdarg.h>
+#include "device.h"
+#include "platform/mbed_error.h"
+#include "platform/mbed_toolchain.h"
+#include "platform/mbed_critical.h"
+#include "platform/mbed_interface.h"
+
+#if MBED_CONF_PLATFORM_ERROR_HIST_ENABLED
+#include "platform/mbed_error_hist.h"
+
+static mbed_error_ctx mbed_error_ctx_log[MBED_CONF_PLATFORM_ERROR_HIST_SIZE] = {0};
+static int error_log_count = -1;
+
+mbed_error_status_t mbed_error_hist_put(mbed_error_ctx *error_ctx)
+{
+    //Return error if error_ctx is NULL
+    if (NULL == error_ctx) {
+        return MBED_ERROR_INVALID_ARGUMENT;
+    }
+
+    core_util_critical_section_enter();
+    error_log_count++;
+    memcpy(&mbed_error_ctx_log[error_log_count % MBED_CONF_PLATFORM_ERROR_HIST_SIZE], error_ctx, sizeof(mbed_error_ctx));
+    core_util_critical_section_exit();
+
+    return MBED_SUCCESS;
+}
+
+mbed_error_status_t mbed_error_hist_get(int index, mbed_error_ctx *error_ctx)
+{
+    //Return error if index is more than max log size
+    if (index >= MBED_CONF_PLATFORM_ERROR_HIST_SIZE) {
+        return MBED_ERROR_INVALID_ARGUMENT;
+    }
+
+    core_util_critical_section_enter();
+    //calculate the index where we want to pick the ctx
+    if (error_log_count >= MBED_CONF_PLATFORM_ERROR_HIST_SIZE) {
+        index = (error_log_count + index + 1) % MBED_CONF_PLATFORM_ERROR_HIST_SIZE;
+    }
+    core_util_critical_section_exit();
+    memcpy(error_ctx, &mbed_error_ctx_log[index % MBED_CONF_PLATFORM_ERROR_HIST_SIZE], sizeof(mbed_error_ctx));
+
+    return MBED_SUCCESS;
+}
+
+mbed_error_ctx *mbed_error_hist_get_entry(void)
+{
+    core_util_critical_section_enter();
+    error_log_count++;
+    mbed_error_ctx *ctx = &mbed_error_ctx_log[error_log_count % MBED_CONF_PLATFORM_ERROR_HIST_SIZE];
+    core_util_critical_section_exit();
+
+    return ctx;
+}
+
+mbed_error_status_t mbed_error_hist_get_last_error(mbed_error_ctx *error_ctx)
+{
+    if (-1 == error_log_count) {
+        return MBED_ERROR_ITEM_NOT_FOUND;
+    }
+    core_util_critical_section_enter();
+    memcpy(error_ctx, &mbed_error_ctx_log[error_log_count % MBED_CONF_PLATFORM_ERROR_HIST_SIZE], sizeof(mbed_error_ctx));
+    core_util_critical_section_exit();
+
+    return MBED_SUCCESS;
+}
+
+int mbed_error_hist_get_count()
+{
+    return (error_log_count >= MBED_CONF_PLATFORM_ERROR_HIST_SIZE ? MBED_CONF_PLATFORM_ERROR_HIST_SIZE : error_log_count + 1);
+}
+
+mbed_error_status_t mbed_error_hist_reset()
+{
+    core_util_critical_section_enter();
+    error_log_count = -1;
+    core_util_critical_section_exit();
+
+    return MBED_SUCCESS;
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error_hist.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error_hist.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_error_hist.h	(revision 429)
@@ -0,0 +1,116 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_ERROR_HIST_H
+#define MBED_ERROR_HIST_H
+
+#ifndef MBED_CONF_PLATFORM_ERROR_HIST_SIZE
+#define MBED_CONF_PLATFORM_ERROR_HIST_SIZE  4
+#else
+#if MBED_CONF_PLATFORM_ERROR_HIST_SIZE == 0
+#define MBED_CONF_PLATFORM_ERROR_HIST_SIZE  1
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Puts/Adds an error entry into the error history list
+ *
+ * @param  error_ctx            pointer to the mbed_error_ctx struct with the error context
+ * @return                      0 or MBED_SUCCESS on success.
+ *                              MBED_ERROR_WRITE_FAILED if writing to file failed
+ *                              MBED_ERROR_INVALID_ARGUMENT if path is not valid
+ *
+ *
+ */
+mbed_error_status_t mbed_error_hist_put(mbed_error_ctx *error_ctx);
+
+/*
+ * Reads the error entry from the error list with the specified index
+ *
+ * @param  index                Index of the error context to be retrieved. It starts from 0 and 0 is the oldest.
+ * @param  error_ctx            pointer to the mbed_error_ctx struct where the error context will be filled, this should be allocated by the caller
+ * @return                      0 or MBED_SUCCESS on success.
+ *                              MBED_ERROR_WRITE_FAILED if writing to file failed
+ *                              MBED_ERROR_INVALID_ARGUMENT if path is not valid
+ *
+ *
+ */
+mbed_error_status_t mbed_error_hist_get(int index, mbed_error_ctx *error_ctx);
+
+/*
+ * Gets a reference to the next error entry in the error log where in the error ctx can be filled in.
+ * Its like reserving the next error entry to fill in the error info
+ *
+ * @return                      Returns the pointer to the next error ctx entry
+ *
+ *
+ */
+mbed_error_ctx *mbed_error_hist_get_entry(void);
+
+/*
+ * Reads the last(latest) error entry from the error history
+ *
+ * @param  error_ctx            pointer to the mbed_error_ctx struct where the error context will be filled, this should be allocated by the caller
+ * @return                      0 or MBED_SUCCESS on success.
+ *                              MBED_ERROR_WRITE_FAILED if writing to file failed
+ *                              MBED_ERROR_INVALID_ARGUMENT if path is not valid
+ *
+ *
+ */
+mbed_error_status_t mbed_error_hist_get_last_error(mbed_error_ctx *error_ctx);
+
+/*
+ * Returns the number of error entries in the error history list
+ *
+ * @return                      Number of entries in the history list
+ *
+ *
+ */
+int mbed_error_hist_get_count(void);
+
+/*
+ * Resets the error log by resetting the number of errors to 0 and clears all previous errors in the history list
+ *
+ * @return                      0 or MBED_SUCCESS on success.
+ *                              MBED_ERROR_WRITE_FAILED if writing to file failed
+ *                              MBED_ERROR_INVALID_ARGUMENT if path is not valid
+ *
+ *
+ */
+mbed_error_status_t mbed_error_hist_reset(void);
+
+/*
+ * Saves the error log information to a file
+ *
+ * @param  path                 path to the file in the filesystem
+ * @return                      0 or MBED_SUCCESS on success.
+ *                              MBED_ERROR_WRITE_FAILED if writing to file failed
+ *                              MBED_ERROR_INVALID_ARGUMENT if path is not valid
+ *
+ * @note                        Filesystem support is required in order for this function to work.
+ *
+ */
+mbed_error_status_t mbed_save_error_hist(const char *path);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_interface.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_interface.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_interface.c	(revision 429)
@@ -0,0 +1,124 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <stdio.h>
+#include "platform/mbed_interface.h"
+
+#include "hal/gpio_api.h"
+#include "platform/mbed_wait_api.h"
+#include "platform/mbed_semihost_api.h"
+#include "platform/mbed_error.h"
+#include "platform/mbed_toolchain.h"
+
+#if DEVICE_SEMIHOST
+
+// return true if a debugger is attached, indicating mbed interface is connected
+int mbed_interface_connected(void)
+{
+    return semihost_connected();
+}
+
+int mbed_interface_reset(void)
+{
+    if (mbed_interface_connected()) {
+        semihost_reset();
+        return 0;
+    } else {
+        return -1;
+    }
+}
+
+WEAK int mbed_interface_uid(char *uid)
+{
+    if (mbed_interface_connected()) {
+        return semihost_uid(uid); // Returns 0 if successful, -1 on failure
+    } else {
+        uid[0] = 0;
+        return -1;
+    }
+}
+
+int mbed_interface_disconnect(void)
+{
+    int res;
+    if (mbed_interface_connected()) {
+        if ((res = semihost_disabledebug()) != 0) {
+            return res;
+        }
+        while (mbed_interface_connected());
+        return 0;
+    } else {
+        return -1;
+    }
+}
+
+int mbed_interface_powerdown(void)
+{
+    int res;
+    if (mbed_interface_connected()) {
+        if ((res = semihost_powerdown()) != 0) {
+            return res;
+        }
+        while (mbed_interface_connected());
+        return 0;
+    } else {
+        return -1;
+    }
+}
+
+MBED_DEPRECATED_SINCE("mbed-os-5.9", "This function shouldn't be used in new code."
+                      "For system reset funcionality use system_reset()")
+void mbed_reset(void)
+{
+    mbed_interface_reset();
+}
+
+WEAK int mbed_uid(char *uid)
+{
+    return mbed_interface_uid(uid);
+}
+#endif
+
+WEAK void mbed_mac_address(char *mac)
+{
+#if DEVICE_SEMIHOST
+    char uid[DEVICE_ID_LENGTH + 1];
+    int i;
+
+    // if we have a UID, extract the MAC
+    if (mbed_interface_uid(uid) == 0) {
+        char *p = uid;
+#if defined(DEVICE_MAC_OFFSET)
+        p += DEVICE_MAC_OFFSET;
+#endif
+        for (i=0; i<6; i++) {
+            int byte;
+            sscanf(p, "%2x", &byte);
+            mac[i] = byte;
+            p += 2;
+        }
+        mac[0] &= ~0x01;    // reset the IG bit in the address; see IEE 802.3-2002, Section 3.2.3(b)
+    } else {  // else return a default MAC
+#endif
+        mac[0] = 0x00;
+        mac[1] = 0x02;
+        mac[2] = 0xF7;
+        mac[3] = 0xF0;
+        mac[4] = 0x00;
+        mac[5] = 0x00;
+#if DEVICE_SEMIHOST
+    }
+#endif
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_interface.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_interface.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_interface.h	(revision 429)
@@ -0,0 +1,158 @@
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_interface Network interface and other utility functions
+ * @{
+ */
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_INTERFACE_H
+#define MBED_INTERFACE_H
+
+#include <stdarg.h>
+
+#include "device.h"
+
+/* Mbed interface mac address
+ * if MBED_MAC_ADD_x are zero, interface uid sets mac address,
+ * otherwise MAC_ADD_x are used.
+ */
+#define MBED_MAC_ADDR_INTERFACE 0x00
+#define MBED_MAC_ADDR_0  MBED_MAC_ADDR_INTERFACE
+#define MBED_MAC_ADDR_1  MBED_MAC_ADDR_INTERFACE
+#define MBED_MAC_ADDR_2  MBED_MAC_ADDR_INTERFACE
+#define MBED_MAC_ADDR_3  MBED_MAC_ADDR_INTERFACE
+#define MBED_MAC_ADDR_4  MBED_MAC_ADDR_INTERFACE
+#define MBED_MAC_ADDR_5  MBED_MAC_ADDR_INTERFACE
+#define MBED_MAC_ADDRESS_SUM (MBED_MAC_ADDR_0 | MBED_MAC_ADDR_1 | MBED_MAC_ADDR_2 | MBED_MAC_ADDR_3 | MBED_MAC_ADDR_4 | MBED_MAC_ADDR_5)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if DEVICE_SEMIHOST
+
+/**
+ * \defgroup platform_interface interface functions
+ * @{
+ */
+
+/** Functions to control the mbed interface
+ *
+ * mbed Microcontrollers have a built-in interface to provide functionality such as
+ * drag-n-drop download, reset, serial-over-usb, and access to the mbed local file
+ * system. These functions provide means to control the interface suing semihost
+ * calls it supports.
+ */
+
+/** Determine whether the mbed interface is connected, based on whether debug is enabled
+ *
+ *  @returns
+ *    1 if interface is connected,
+ *    0 otherwise
+ */
+int mbed_interface_connected(void);
+
+/** Instruct the mbed interface to reset, as if the reset button had been pressed
+ *
+ *  @returns
+ *    1 if successful,
+ *    0 otherwise (e.g. interface not present)
+ */
+int mbed_interface_reset(void);
+
+/** This will disconnect the debug aspect of the interface, so semihosting will be disabled.
+ * The interface will still support the USB serial aspect
+ *
+ *  @returns
+ *    0 if successful,
+ *   -1 otherwise (e.g. interface not present)
+ */
+int mbed_interface_disconnect(void);
+
+/** This will disconnect the debug aspect of the interface, and if the USB cable is not
+ * connected, also power down the interface. If the USB cable is connected, the interface
+ * will remain powered up and visible to the host
+ *
+ *  @returns
+ *    0 if successful,
+ *   -1 otherwise (e.g. interface not present)
+ */
+int mbed_interface_powerdown(void);
+
+/** This returns a string containing the 32-character UID of the mbed interface
+ *  This is a weak function that can be overwritten if required
+ *
+ *  @param uid A 33-byte array to write the null terminated 32-byte string
+ *
+ *  @returns
+ *    0 if successful,
+ *   -1 otherwise (e.g. interface not present)
+ */
+int mbed_interface_uid(char *uid);
+
+#endif
+
+/** This returns a unique 6-byte MAC address, based on the interface UID
+ * If the interface is not present, it returns a default fixed MAC address (00:02:F7:F0:00:00)
+ *
+ * This is a weak function that can be overwritten if you want to provide your own mechanism to
+ * provide a MAC address.
+ *
+ *  @param mac A 6-byte array to write the MAC address
+ */
+void mbed_mac_address(char *mac);
+
+/** Cause the mbed to flash the BLOD (Blue LEDs Of Death) sequence
+ */
+void mbed_die(void);
+
+/** Print out an error message.  This is typically called when
+ * handling a crash.
+ *
+ * @note Synchronization level: Interrupt safe
+ *
+ * @param format    C string that contains data stream to be printed.
+ *                  Code snippets below show valid format.
+ *
+ * @code
+ * mbed_error_printf("Failed: %s, file: %s, line %d \n", expr, file, line);
+ * @endcode
+ *
+ */
+void mbed_error_printf(const char* format, ...);
+
+/** Print out an error message.  Similar to mbed_error_printf
+ * but uses a va_list.
+ *
+ * @note Synchronization level: Interrupt safe
+ *
+ * @param format    C string that contains data stream to be printed.
+ * @param arg       Variable arguments list
+ *
+ */
+void mbed_error_vfprintf(const char * format, va_list arg);
+/** @}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_mktime.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_mktime.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_mktime.c	(revision 429)
@@ -0,0 +1,193 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2017-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed_mktime.h"
+
+/* Time constants. */
+#define SECONDS_BY_MINUTES 60
+#define MINUTES_BY_HOUR 60
+#define SECONDS_BY_HOUR (SECONDS_BY_MINUTES * MINUTES_BY_HOUR)
+#define HOURS_BY_DAY 24
+#define SECONDS_BY_DAY (SECONDS_BY_HOUR * HOURS_BY_DAY)
+#define LAST_VALID_YEAR 206
+
+/* Macros which will be used to determine if we are within valid range. */
+#define EDGE_TIMESTAMP_FULL_LEAP_YEAR_SUPPORT 3220095     // 7th of February 1970 at 06:28:15
+#define EDGE_TIMESTAMP_4_YEAR_LEAP_YEAR_SUPPORT 3133695  // 6th of February 1970 at 06:28:15
+
+/*
+ * 2 dimensional array containing the number of seconds elapsed before a given
+ * month.
+ * The second index map to the month while the first map to the type of year:
+ *   - 0: non leap year
+ *   - 1: leap year
+ */
+static const uint32_t seconds_before_month[2][12] = {
+    {
+        0,
+        31 * SECONDS_BY_DAY,
+        (31 + 28) *SECONDS_BY_DAY,
+        (31 + 28 + 31) *SECONDS_BY_DAY,
+        (31 + 28 + 31 + 30) *SECONDS_BY_DAY,
+        (31 + 28 + 31 + 30 + 31) *SECONDS_BY_DAY,
+        (31 + 28 + 31 + 30 + 31 + 30) *SECONDS_BY_DAY,
+        (31 + 28 + 31 + 30 + 31 + 30 + 31) *SECONDS_BY_DAY,
+        (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31) *SECONDS_BY_DAY,
+        (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30) *SECONDS_BY_DAY,
+        (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31) *SECONDS_BY_DAY,
+        (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30) *SECONDS_BY_DAY,
+    },
+    {
+        0,
+        31 * SECONDS_BY_DAY,
+        (31 + 29) *SECONDS_BY_DAY,
+        (31 + 29 + 31) *SECONDS_BY_DAY,
+        (31 + 29 + 31 + 30) *SECONDS_BY_DAY,
+        (31 + 29 + 31 + 30 + 31) *SECONDS_BY_DAY,
+        (31 + 29 + 31 + 30 + 31 + 30) *SECONDS_BY_DAY,
+        (31 + 29 + 31 + 30 + 31 + 30 + 31) *SECONDS_BY_DAY,
+        (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31) *SECONDS_BY_DAY,
+        (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30) *SECONDS_BY_DAY,
+        (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31) *SECONDS_BY_DAY,
+        (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30) *SECONDS_BY_DAY,
+    }
+};
+
+bool _rtc_is_leap_year(int year, rtc_leap_year_support_t leap_year_support)
+{
+    /*
+     * since in practice, the value manipulated by this algorithm lie in the
+     * range: [70 : 206] the algorithm can be reduced to: year % 4 with exception for 200 (year 2100 is not leap year).
+     * The algorithm valid over the full range of value is:
+
+        year = 1900 + year;
+        if (year % 4) {
+            return false;
+        } else if (year % 100) {
+            return true;
+        } else if (year % 400) {
+            return false;
+        }
+        return true;
+
+     */
+    if (leap_year_support == RTC_FULL_LEAP_YEAR_SUPPORT && year == 200) {
+        return false; // 2100 is not a leap year
+    }
+
+    return (year) % 4 ? false : true;
+}
+
+bool _rtc_maketime(const struct tm *time, time_t *seconds, rtc_leap_year_support_t leap_year_support)
+{
+    if (seconds == NULL || time == NULL) {
+        return false;
+    }
+
+    /* Partial check for the upper bound of the range - check years only. Full check will be performed after the
+     * elapsed time since the beginning of the year is calculated.
+     */
+    if ((time->tm_year < 70) || (time->tm_year > LAST_VALID_YEAR)) {
+        return false;
+    }
+
+    uint32_t result = time->tm_sec;
+    result += time->tm_min * SECONDS_BY_MINUTES;
+    result += time->tm_hour * SECONDS_BY_HOUR;
+    result += (time->tm_mday - 1) * SECONDS_BY_DAY;
+    result += seconds_before_month[_rtc_is_leap_year(time->tm_year, leap_year_support)][time->tm_mon];
+
+    /* Check if we are within valid range. */
+    if (time->tm_year == LAST_VALID_YEAR) {
+        if ((leap_year_support == RTC_FULL_LEAP_YEAR_SUPPORT && result > EDGE_TIMESTAMP_FULL_LEAP_YEAR_SUPPORT) ||
+                (leap_year_support == RTC_4_YEAR_LEAP_YEAR_SUPPORT && result > EDGE_TIMESTAMP_4_YEAR_LEAP_YEAR_SUPPORT)) {
+            return false;
+        }
+    }
+
+    if (time->tm_year > 70) {
+        /* Valid in the range [70:206]. */
+        uint32_t count_of_leap_days = ((time->tm_year - 1) / 4) - (70 / 4);
+        if (leap_year_support == RTC_FULL_LEAP_YEAR_SUPPORT) {
+            if (time->tm_year > 200) {
+                count_of_leap_days--; // 2100 is not a leap year
+            }
+        }
+
+        result += (((time->tm_year - 70) * 365) + count_of_leap_days) * SECONDS_BY_DAY;
+    }
+
+    *seconds = result;
+
+    return true;
+}
+
+bool _rtc_localtime(time_t timestamp, struct tm *time_info, rtc_leap_year_support_t leap_year_support)
+{
+    if (time_info == NULL) {
+        return false;
+    }
+
+    uint32_t seconds = (uint32_t)timestamp;
+
+    time_info->tm_sec = seconds % 60;
+    seconds = seconds / 60;   // timestamp in minutes
+    time_info->tm_min = seconds % 60;
+    seconds = seconds / 60;  // timestamp in hours
+    time_info->tm_hour = seconds % 24;
+    seconds = seconds / 24;  // timestamp in days;
+
+    /* Compute the weekday.
+     * The 1st of January 1970 was a Thursday which is equal to 4 in the weekday representation ranging from [0:6].
+     */
+    time_info->tm_wday = (seconds + 4) % 7;
+
+    /* Years start at 70. */
+    time_info->tm_year = 70;
+    while (true) {
+        if (_rtc_is_leap_year(time_info->tm_year, leap_year_support) && seconds >= 366) {
+            ++time_info->tm_year;
+            seconds -= 366;
+        } else if (!_rtc_is_leap_year(time_info->tm_year, leap_year_support) && seconds >= 365) {
+            ++time_info->tm_year;
+            seconds -= 365;
+        } else {
+            /* The remaining days are less than a years. */
+            break;
+        }
+    }
+
+    time_info->tm_yday = seconds;
+
+    /* Convert days into seconds and find the current month. */
+    seconds *= SECONDS_BY_DAY;
+    time_info->tm_mon = 11;
+    bool leap = _rtc_is_leap_year(time_info->tm_year, leap_year_support);
+    for (uint32_t i = 0; i < 12; ++i) {
+        if ((uint32_t) seconds < seconds_before_month[leap][i]) {
+            time_info->tm_mon = i - 1;
+            break;
+        }
+    }
+
+    /* Remove month from timestamp and compute the number of days.
+     * Note: unlike other fields, days are not 0 indexed.
+     */
+    seconds -= seconds_before_month[leap][time_info->tm_mon];
+    time_info->tm_mday = (seconds / SECONDS_BY_DAY) + 1;
+
+    return true;
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_mktime.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_mktime.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_mktime.h	(revision 429)
@@ -0,0 +1,131 @@
+
+/** \addtogroup platform */
+/** @{*/
+/* mbed Microcontroller Library
+ * Copyright (c) 2017-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MBED_MKTIME_H
+#define MBED_MKTIME_H
+
+#include <time.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup platform_mktime mktime functions
+ * @{
+ */
+
+/* Time range across the whole 32-bit range should be supported which means that years in range 1970 - 2106 can be
+ * encoded. We have two types of RTC devices:
+ * a) RTCs which handles all leap years in the mentioned year range correctly. Leap year is determined by checking if
+ *    the year counter value is divisible by 400, 100, and 4. No problem here.
+ * b) RTCs which handles leap years correctly up to 2100. The RTC does a simple bit comparison to see if the two
+ *    lowest order bits of the year counter are zero. In this case 2100 year will be considered
+ *    incorrectly as a leap year, so the last valid point in time will be 28.02.2100 23:59:59 and next day will be
+ *    29.02.2100 (invalid). So after 28.02.2100 the day counter will be off by a day.
+ */
+typedef enum {
+    RTC_FULL_LEAP_YEAR_SUPPORT,
+    RTC_4_YEAR_LEAP_YEAR_SUPPORT
+} rtc_leap_year_support_t;
+
+/** Compute if a year is a leap year or not.
+ *
+ * @param year The year to test it shall be in the range [70:206]. Year 0 is
+ * translated into year 1900 CE.
+ * @param leap_year_support use RTC_FULL_LEAP_YEAR_SUPPORT if RTC device is able
+ * to correctly detect all leap years in range [70:206] otherwise use RTC_4_YEAR_LEAP_YEAR_SUPPORT.
+ *
+ * @return true if the year in input is a leap year and false otherwise.
+ *
+ * @note For use by the HAL only
+ * @note Year 2100 is treated differently for devices with full leap year support and devices with
+ * partial leap year support. Devices with partial leap year support treats 2100 as a leap year.
+ */
+bool _rtc_is_leap_year(int year, rtc_leap_year_support_t leap_year_support);
+
+/* Convert a calendar time into time since UNIX epoch as a time_t.
+ *
+ * This function is a thread safe (partial) replacement for mktime. It is
+ * tailored around RTC peripherals needs and is not by any mean a complete
+ * replacement of mktime.
+ *
+ * @param time The calendar time to convert into a time_t since epoch.
+ * The fields from tm used for the computation are:
+ *   - tm_sec
+ *   - tm_min
+ *   - tm_hour
+ *   - tm_mday
+ *   - tm_mon
+ *   - tm_year
+ * Other fields are ignored and won't be renormalized by a call to this function.
+ * A valid calendar time is comprised between:
+ * the 1st of January 1970 at 00:00:00 to the 7th of February 2106 at 06:28:15.
+ * @param leap_year_support use RTC_FULL_LEAP_YEAR_SUPPORT if RTC device is able
+ * to correctly detect all leap years in range [70:206] otherwise use RTC_4_YEAR_LEAP_YEAR_SUPPORT.
+ * @param seconds holder for the result - calendar time as seconds since UNIX epoch.
+ *
+ * @return true on success, false if conversion error occurred.
+ *
+ * @note Leap seconds are not supported.
+ * @note Values in output range from 0 to UINT_MAX.
+ * @note Full and partial leap years support.
+ * @note For use by the HAL only
+ */
+bool _rtc_maketime(const struct tm *time, time_t *seconds, rtc_leap_year_support_t leap_year_support);
+
+/* Convert a given time in seconds since epoch into calendar time.
+ *
+ * This function is a thread safe (partial) replacement for localtime. It is
+ * tailored around RTC peripherals specification and is not by any means a
+ * complete of localtime.
+ *
+ * @param timestamp The time (in seconds) to convert into calendar time. Valid
+ * input are in the range [0 : UINT32_MAX].
+ * @param calendar_time Pointer to the object which will contain the result of
+ * the conversion. The tm fields filled by this function are:
+ *   - tm_sec
+ *   - tm_min
+ *   - tm_hour
+ *   - tm_mday
+ *   - tm_mon
+ *   - tm_year
+ *   - tm_wday
+ *   - tm_yday
+ * The object remains untouched if the time in input is invalid.
+ * @param leap_year_support use RTC_FULL_LEAP_YEAR_SUPPORT if RTC device is able
+ * to correctly detect all leap years in range [70:206] otherwise use RTC_4_YEAR_LEAP_YEAR_SUPPORT.
+ * @return true if the conversion was successful, false otherwise.
+ *
+ * @note For use by the HAL only.
+ * @note Full and partial leap years support.
+ */
+bool _rtc_localtime(time_t timestamp, struct tm *time_info, rtc_leap_year_support_t leap_year_support);
+
+/** @}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBED_MKTIME_H */
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_power_mgmt.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_power_mgmt.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_power_mgmt.h	(revision 429)
@@ -0,0 +1,250 @@
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_power_mgmt Power management functions
+ * @{
+ */
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2018 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_POWER_MGMT_H
+#define MBED_POWER_MGMT_H
+
+#include "hal/sleep_api.h"
+#include "platform/mbed_toolchain.h"
+#include "hal/ticker_api.h"
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Sleep manager API
+ * The sleep manager provides API to automatically select sleep mode.
+ *
+ * There are two sleep modes:
+ * - sleep
+ * - deepsleep
+ *
+ * Use locking/unlocking deepsleep for drivers that depend on features that
+ * are not allowed (=disabled) during the deepsleep. For instance, high frequency
+ * clocks.
+ *
+ * Example:
+ * @code
+ *
+ * void driver::handler()
+ * {
+ *     if (_sensor.get_event()) {
+ *         // any event - we are finished, unlock the deepsleep
+ *         sleep_manager_unlock_deep_sleep();
+ *         _callback();
+ *     }
+ * }
+ *
+ * int driver::measure(event_t event, callback_t& callback)
+ * {
+ *      _callback = callback;
+ *      sleep_manager_lock_deep_sleep();
+ *      // start async transaction, we are waiting for an event
+ *      return _sensor.start(event, callback);
+ * }
+ * @endcode
+ */
+#ifdef MBED_SLEEP_TRACING_ENABLED
+
+void sleep_tracker_lock(const char *const filename, int line);
+void sleep_tracker_unlock(const char *const filename, int line);
+
+#define sleep_manager_lock_deep_sleep()              \
+    do                                               \
+    {                                                \
+        sleep_manager_lock_deep_sleep_internal();    \
+        sleep_tracker_lock(MBED_FILENAME, __LINE__); \
+    } while (0);
+
+#define sleep_manager_unlock_deep_sleep()              \
+    do                                                 \
+    {                                                  \
+        sleep_manager_unlock_deep_sleep_internal();    \
+        sleep_tracker_unlock(MBED_FILENAME, __LINE__); \
+    } while (0);
+
+#else
+
+#define sleep_manager_lock_deep_sleep() \
+    sleep_manager_lock_deep_sleep_internal()
+
+#define sleep_manager_unlock_deep_sleep() \
+    sleep_manager_unlock_deep_sleep_internal()
+
+#endif // MBED_SLEEP_TRACING_ENABLED
+
+/** Lock the deep sleep mode
+ *
+ * This locks the automatic deep mode selection.
+ * sleep_manager_sleep_auto() will ignore deepsleep mode if
+ * this function is invoked at least once (the internal counter is non-zero)
+ *
+ * Use this locking mechanism for interrupt driven API that are
+ * running in the background and deepsleep could affect their functionality
+ *
+ * The lock is a counter, can be locked up to USHRT_MAX
+ * This function is IRQ and thread safe
+ */
+void sleep_manager_lock_deep_sleep_internal(void);
+
+/** Unlock the deep sleep mode
+ *
+ * Use unlocking in pair with sleep_manager_lock_deep_sleep().
+ *
+ * The lock is a counter, should be equally unlocked as locked
+ * This function is IRQ and thread safe
+ */
+void sleep_manager_unlock_deep_sleep_internal(void);
+
+/** Get the status of deep sleep allowance for a target
+ *
+ * @return true if a target can go to deepsleep, false otherwise
+ */
+bool sleep_manager_can_deep_sleep(void);
+
+/** Check if the target can deep sleep within a period of time
+ *
+ * This function in intended for use in testing. The amount
+ * of time this functions waits for deeps sleep to be available
+ * is currently 2ms. This may change in the future depending
+ * on testing requirements.
+ *
+ * @return true if a target can go to deepsleep, false otherwise
+ */
+bool sleep_manager_can_deep_sleep_test_check(void);
+
+/** Enter auto selected sleep mode. It chooses the sleep or deeepsleep modes based
+ *  on the deepsleep locking counter
+ *
+ * This function is IRQ and thread safe
+ *
+ * @note
+ * If MBED_DEBUG is defined, only hal_sleep is allowed. This ensures the debugger
+ * to be active for debug modes.
+ *
+ */
+void sleep_manager_sleep_auto(void);
+
+/** Send the microcontroller to sleep
+ *
+ * @note This function can be a noop if not implemented by the platform.
+ * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined).
+ * @note This function will be a noop if the following conditions are met:
+ *   - The RTOS is present
+ *   - The processor turn off the Systick clock during sleep
+ *   - The target does not implement tickless mode
+ *
+ * The processor is setup ready for sleep, and sent to sleep using __WFI(). In this mode, the
+ * system clock to the core is stopped until a reset or an interrupt occurs. This eliminates
+ * dynamic power used by the processor, memory systems and buses. The processor, peripheral and
+ * memory state are maintained, and the peripherals continue to work and can generate interrupts.
+ *
+ * The processor can be woken up by any internal peripheral interrupt or external pin interrupt.
+ *
+ * @note
+ *  The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored.
+ * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be
+ * able to access the LocalFileSystem
+ */
+static inline void mcu_sleep(void)
+{
+#if DEVICE_SLEEP
+#if (MBED_CONF_RTOS_PRESENT == 0) || (DEVICE_STCLK_OFF_DURING_SLEEP == 0) || defined(MBED_TICKLESS)
+    sleep_manager_sleep_auto();
+#endif /* (MBED_CONF_RTOS_PRESENT == 0) || (DEVICE_STCLK_OFF_DURING_SLEEP == 0) || defined(MBED_TICKLESS) */
+#endif /* DEVICE_SLEEP */
+}
+
+/** Send the microcontroller to deep sleep
+ *
+ * @deprecated
+ * Do not use this function. Applications should use sleep() API which puts the system in deepsleep mode if supported.
+ *
+ * @note This function can be a noop if not implemented by the platform.
+ * @note This function will be a noop in debug mode (debug build profile when MBED_DEBUG is defined)
+ *
+ * This processor is setup ready for deep sleep, and sent to sleep. This mode
+ * has the same sleep features as sleep plus it powers down peripherals and clocks. All state
+ * is still maintained.
+ *
+ * The processor can only be woken up by an external interrupt on a pin or a watchdog timer.
+ *
+ * @note
+ *  The mbed interface semihosting is disconnected as part of going to sleep, and can not be restored.
+ * Flash re-programming and the USB serial port will remain active, but the mbed program will no longer be
+ * able to access the LocalFileSystem
+ */
+
+MBED_DEPRECATED_SINCE("mbed-os-5.6", "One entry point for an application, use sleep()")
+static inline void deepsleep(void)
+{
+#if DEVICE_SLEEP
+    sleep_manager_sleep_auto();
+#endif /* DEVICE_SLEEP */
+}
+
+/** Resets the processor and most of the sub-system
+ *
+ * @note Does not affect the debug sub-system
+ */
+static inline void system_reset(void)
+{
+    NVIC_SystemReset();
+}
+
+/** Provides the time spent in sleep mode since boot.
+ *
+ *  @return  Time spent in sleep
+ *  @note  Works only if platform supports LP ticker.
+ */
+us_timestamp_t mbed_time_sleep(void);
+
+/** Provides the time spent in deep sleep mode since boot.
+ *
+ *  @return  Time spent in deep sleep
+ *  @note  Works only if platform supports LP ticker.
+ */
+us_timestamp_t mbed_time_deepsleep(void);
+
+/** Provides the time spent in idle mode since boot.
+ *
+ * @return  Idle thread time.
+ * @note  Works only if platform supports LP ticker.
+ */
+us_timestamp_t mbed_time_idle(void);
+
+/** Provides the time since the system is up i.e. boot.
+ *
+ * @return  System uptime.
+ * @note  Works only if platform supports LP ticker.
+ */
+us_timestamp_t mbed_uptime(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/** @}*/
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_preprocessor.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_preprocessor.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_preprocessor.h	(revision 429)
@@ -0,0 +1,86 @@
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_preprocessor preprocessor macros
+ * @{
+ */
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_PREPROCESSOR_H
+#define MBED_PREPROCESSOR_H
+
+
+/** MBED_CONCAT
+ *  Concatenate tokens together
+ *
+ *  @note
+ *  Expands tokens before concatenation
+ *
+ *  @code
+ *  // Creates a unique label based on the line number
+ *  int MBED_CONCAT(UNIQUE_LABEL_, __LINE__) = 1;
+ *  @endcode
+ */
+#define MBED_CONCAT(a, b) MBED_CONCAT_(a, b)
+#define MBED_CONCAT_(a, b) a##b
+
+/** MBED_STRINGIFY
+ *  Converts tokens into strings
+ *
+ *  @note
+ *  Expands tokens before stringification
+ *
+ *  @code
+ *  // Creates a string based on the parameters
+ *  const char *c = MBED_STRINGIFY(This is a ridiculous way to create a string)
+ *  @endcode
+ */
+#define MBED_STRINGIFY(a) MBED_STRINGIFY_(a)
+#define MBED_STRINGIFY_(a) #a
+
+/** MBED_STRLEN
+ *  Reports string token length
+ *
+ *  @note
+ *  Expands tokens before calculating length
+ *
+ *  @code
+ *  // Get string length
+ *  const int len = MBED_STRLEN("Get the length")
+ *  @endcode
+ */
+#define MBED_STRLEN(a) MBED_STRLEN_(a)
+#define MBED_STRLEN_(a) (sizeof(a) - 1)
+
+/** MBED_COUNT_VA_ARGS(...)
+ *  Reports number of tokens passed
+ *
+ *  @note
+ *  Token limit is 16
+ *
+ *  @code
+ *  // Get number of arguments
+ *  const int count = MBED_COUNT_VA_ARGS("Address 0x%x, Data[0] = %d Data[1] = %d", 0x20001234, 10, 20)
+ *  @endcode
+ */
+#define MBED_COUNT_VA_ARGS(...) GET_NTH_ARG_(__VA_ARGS__, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
+#define GET_NTH_ARG_(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, N, ...) N
+
+#endif
+
+/** @}*/
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_retarget.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_retarget.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_retarget.h	(revision 429)
@@ -0,0 +1,30 @@
+#ifndef RETARGET_H
+#define RETARGET_H
+
+#ifdef __cplusplus
+#include <cstdio>
+#else
+#include <stdio.h>
+#endif //__cplusplus
+
+#include <errno.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/statvfs.h>
+#include <unistd.h>
+
+#ifdef __cplusplus
+namespace mbed {
+
+class FileHandle;
+class DirHandle;
+
+std::FILE *fdopen(FileHandle *fh, const char *mode);
+
+}
+#endif
+
+#endif //RETARGET_H
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_rtc_time.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_rtc_time.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_rtc_time.c	(revision 429)
@@ -0,0 +1,103 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "hal/rtc_api.h"
+
+#include <time.h>
+#include "platform/mbed_critical.h"
+#include "platform/mbed_rtc_time.h"
+#include "hal/us_ticker_api.h"
+//#include "platform/SingletonPtr.h"
+//#include "platform/PlatformMutex.h"
+#include "platform/mbed_critical.h"
+
+//static SingletonPtr<PlatformMutex> _mutex;
+
+#if DEVICE_RTC
+static void (*_rtc_init)(void) = rtc_init;
+static int (*_rtc_isenabled)(void) = rtc_isenabled;
+static time_t (*_rtc_read)(void) = rtc_read;
+static void (*_rtc_write)(time_t t) = rtc_write;
+#else
+static void (*_rtc_init)(void) = NULL;
+static int (*_rtc_isenabled)(void) = NULL;
+static time_t (*_rtc_read)(void) = NULL;
+static void (*_rtc_write)(time_t t) = NULL;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#if defined (__ICCARM__)
+time_t __time32(time_t *timer)
+#else
+time_t get_time(time_t *timer)
+#endif
+
+{
+    //_mutex->lock();
+    if (_rtc_isenabled != NULL) {
+        if (!(_rtc_isenabled())) {
+            set_time(0);
+        }
+    }
+    
+    time_t t = 0;
+    if (_rtc_read != NULL) {
+        t = _rtc_read();
+    }
+
+    if (timer != NULL) {
+        *timer = t;
+    }
+    //_mutex->unlock();
+    return t;
+}
+
+void set_time(time_t t) {
+    //_mutex->lock();
+    if (_rtc_init != NULL) {
+        _rtc_init();
+    }
+    if (_rtc_write != NULL) {
+        _rtc_write(t);
+    }
+    //_mutex->unlock();
+}
+
+clock_t get_clock() {
+    //_mutex->lock();
+    clock_t t = us_ticker_read();
+    t /= 1000000 / CLOCKS_PER_SEC; // convert to processor time
+    //_mutex->unlock();
+    return t;
+}
+
+void attach_rtc(time_t (*read_rtc)(void), void (*write_rtc)(time_t), void (*init_rtc)(void), int (*isenabled_rtc)(void)) {
+    //_mutex->lock();
+    core_util_critical_section_enter();
+    _rtc_read = read_rtc;
+    _rtc_write = write_rtc;
+    _rtc_init = init_rtc;
+    _rtc_isenabled = isenabled_rtc;
+    //_mutex->unlock();
+    core_util_critical_section_exit();
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_rtc_time.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_rtc_time.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_rtc_time.h	(revision 429)
@@ -0,0 +1,97 @@
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_rtc_time rtc_time functions
+ * @{
+ */
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <time.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Implementation of the C time.h functions
+ *
+ * Provides mechanisms to set and read the current time, based
+ * on the microcontroller Real-Time Clock (RTC), plus some
+ * standard C manipulation and formating functions.
+ *
+ * Example:
+ * @code
+ * #include "mbed.h"
+ *
+ * int main() {
+ *     set_time(1256729737);  // Set RTC time to Wed, 28 Oct 2009 11:35:37
+ *
+ *     while(1) {
+ *         time_t seconds = time(NULL);
+ *
+ *         printf("Time as seconds since January 1, 1970 = %d\n", seconds);
+ *
+ *         printf("Time as a basic string = %s", ctime(&seconds));
+ *
+ *         char buffer[32];
+ *         strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));
+ *         printf("Time as a custom formatted string = %s", buffer);
+ *
+ *         wait(1);
+ *     }
+ * }
+ * @endcode
+ */
+
+/** Set the current time
+ *
+ * Initialises and sets the time of the microcontroller Real-Time Clock (RTC)
+ * to the time represented by the number of seconds since January 1, 1970
+ * (the UNIX timestamp).
+ *
+ * @param t Number of seconds since January 1, 1970 (the UNIX timestamp)
+ *
+ * @note Synchronization level: Thread safe
+ *
+ * Example:
+ * @code
+ * #include "mbed.h"
+ *
+ * int main() {
+ *     set_time(1256729737); // Set time to Wed, 28 Oct 2009 11:35:37
+ * }
+ * @endcode
+ */
+void set_time(time_t t);
+
+/** Attach an external RTC to be used for the C time functions
+ *
+ * @note Synchronization level: Thread safe
+ *
+ * @param read_rtc pointer to function which returns current UNIX timestamp
+ * @param write_rtc pointer to function which sets current UNIX timestamp, can be NULL
+ * @param init_rtc pointer to funtion which initializes RTC, can be NULL
+ * @param isenabled_rtc pointer to function wich returns if the rtc is enabled, can be NULL
+ */
+void attach_rtc(time_t (*read_rtc)(void), void (*write_rtc)(time_t), void (*init_rtc)(void), int (*isenabled_rtc)(void));
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @}*/
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_semihost_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_semihost_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_semihost_api.c	(revision 429)
@@ -0,0 +1,183 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "cmsis.h"
+#include "platform/mbed_semihost_api.h"
+
+#include <stdint.h>
+#include <string.h>
+
+#if DEVICE_SEMIHOST
+
+// ARM Semihosting Commands
+#define SYS_OPEN   (0x1)
+#define SYS_CLOSE  (0x2)
+#define SYS_WRITE  (0x5)
+#define SYS_READ   (0x6)
+#define SYS_ISTTY  (0x9)
+#define SYS_SEEK   (0xa)
+#define SYS_ENSURE (0xb)
+#define SYS_FLEN   (0xc)
+#define SYS_REMOVE (0xe)
+#define SYS_RENAME (0xf)
+#define SYS_EXIT   (0x18)
+
+// mbed Semihosting Commands
+#define RESERVED_FOR_USER_APPLICATIONS (0x100) // 0x100 - 0x1ff
+#define USR_XFFIND      (RESERVED_FOR_USER_APPLICATIONS + 0)
+#define USR_UID      (RESERVED_FOR_USER_APPLICATIONS + 1)
+#define USR_RESET     (RESERVED_FOR_USER_APPLICATIONS + 2)
+#define USR_VBUS     (RESERVED_FOR_USER_APPLICATIONS + 3)
+#define USR_POWERDOWN     (RESERVED_FOR_USER_APPLICATIONS + 4)
+#define USR_DISABLEDEBUG (RESERVED_FOR_USER_APPLICATIONS + 5)
+
+#if DEVICE_LOCALFILESYSTEM
+FILEHANDLE semihost_open(const char* name, int openmode)
+{
+    uint32_t args[3];
+    args[0] = (uint32_t)name;
+    args[1] = (uint32_t)openmode;
+    args[2] = (uint32_t)strlen(name);
+    return __semihost(SYS_OPEN, args);
+}
+
+int semihost_close(FILEHANDLE fh)
+{
+    return __semihost(SYS_CLOSE, &fh);
+}
+
+int semihost_write(FILEHANDLE fh, const unsigned char* buffer, unsigned int length, int mode)
+{
+    if (length == 0) {
+        return 0;
+    }
+
+    uint32_t args[3];
+    args[0] = (uint32_t)fh;
+    args[1] = (uint32_t)buffer;
+    args[2] = (uint32_t)length;
+    return __semihost(SYS_WRITE, args);
+}
+
+int semihost_read(FILEHANDLE fh, unsigned char *buffer, unsigned int length, int mode)
+{
+    uint32_t args[3];
+    args[0] = (uint32_t)fh;
+    args[1] = (uint32_t)buffer;
+    args[2] = (uint32_t)length;
+    return __semihost(SYS_READ, args);
+}
+
+int semihost_istty(FILEHANDLE fh)
+{
+    return __semihost(SYS_ISTTY, &fh);
+}
+
+int semihost_seek(FILEHANDLE fh, long position)
+{
+    uint32_t args[2];
+    args[0] = (uint32_t)fh;
+    args[1] = (uint32_t)position;
+    return __semihost(SYS_SEEK, args);
+}
+
+int semihost_ensure(FILEHANDLE fh)
+{
+    return __semihost(SYS_ENSURE, &fh);
+}
+
+long semihost_flen(FILEHANDLE fh)
+{
+    return __semihost(SYS_FLEN, &fh);
+}
+
+int semihost_remove(const char *name)
+{
+    uint32_t args[2];
+    args[0] = (uint32_t)name;
+    args[1] = (uint32_t)strlen(name);
+    return __semihost(SYS_REMOVE, args);
+}
+
+int semihost_rename(const char *old_name, const char *new_name)
+{
+    uint32_t args[4];
+    args[0] = (uint32_t)old_name;
+    args[1] = (uint32_t)strlen(old_name);
+    args[0] = (uint32_t)new_name;
+    args[1] = (uint32_t)strlen(new_name);
+    return __semihost(SYS_RENAME, args);
+}
+#endif
+
+int semihost_exit(void)
+{
+    uint32_t args[4];
+    return __semihost(SYS_EXIT, args);
+}
+
+int semihost_uid(char *uid)
+{
+    uint32_t args[2];
+    args[0] = (uint32_t)uid;
+    args[1] = DEVICE_ID_LENGTH + 1;
+    return __semihost(USR_UID, &args);
+}
+
+int semihost_reset(void)
+{
+    // Does not normally return, however if used with older firmware versions
+    // that do not support this call it will return -1.
+    return __semihost(USR_RESET, NULL);
+}
+
+int semihost_vbus(void)
+{
+    return __semihost(USR_VBUS, NULL);
+}
+
+int semihost_powerdown(void)
+{
+    return __semihost(USR_POWERDOWN, NULL);
+}
+
+#if DEVICE_DEBUG_AWARENESS
+
+int semihost_connected(void)
+{
+    return (CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk) ? 1 : 0;
+}
+
+#else
+// These processors cannot know if the interface is connect, assume so:
+static int is_debugger_attached = 1;
+
+int semihost_connected(void)
+{
+    return is_debugger_attached;
+}
+#endif
+
+int semihost_disabledebug(void)
+{
+    uint32_t args[1];
+#if !(DEVICE_DEBUG_AWARENESS)
+    is_debugger_attached = 0;
+#endif
+    return __semihost(USR_DISABLEDEBUG, &args);
+}
+
+#endif
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_semihost_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_semihost_api.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_semihost_api.h	(revision 429)
@@ -0,0 +1,98 @@
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_SEMIHOST_H
+#define MBED_SEMIHOST_H
+
+#include "device.h"
+#include "platform/mbed_toolchain.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if DEVICE_SEMIHOST
+
+#if !defined(__CC_ARM) && !defined(__ARMCC_VERSION)
+
+#if defined(__ICCARM__)
+static inline int __semihost(int reason, const void *arg)
+{
+    return __semihosting(reason, (void*)arg);
+}
+#else
+
+#ifdef __thumb__
+#   define AngelSWI            0xAB
+#   define AngelSWIInsn        "bkpt"
+#   define AngelSWIAsm          bkpt
+#else
+#   define AngelSWI            0x123456
+#   define AngelSWIInsn        "swi"
+#   define AngelSWIAsm          swi
+#endif
+
+static inline int __semihost(int reason, const void *arg)
+{
+    int value;
+
+    asm volatile (
+       "mov r0, %1"          "\n\t"
+       "mov r1, %2"          "\n\t"
+       AngelSWIInsn " %a3"   "\n\t"
+       "mov %0, r0"
+       : "=r" (value)                                         /* output operands             */
+       : "r" (reason), "r" (arg), "i" (AngelSWI)              /* input operands              */
+       : "r0", "r1", "r2", "r3", "ip", "lr", "memory", "cc"   /* list of clobbered registers */
+    );
+
+    return value;
+}
+#endif
+#endif
+
+#if DEVICE_LOCALFILESYSTEM
+FILEHANDLE semihost_open(const char* name, int openmode);
+int semihost_close (FILEHANDLE fh);
+int semihost_read  (FILEHANDLE fh, unsigned char* buffer, unsigned int length, int mode);
+int semihost_write (FILEHANDLE fh, const unsigned char* buffer, unsigned int length, int mode);
+int semihost_ensure(FILEHANDLE fh);
+long semihost_flen (FILEHANDLE fh);
+int semihost_seek  (FILEHANDLE fh, long position);
+int semihost_istty (FILEHANDLE fh);
+
+int semihost_remove(const char *name);
+int semihost_rename(const char *old_name, const char *new_name);
+#endif
+
+int semihost_uid(char *uid);
+int semihost_reset(void);
+int semihost_vbus(void);
+int semihost_powerdown(void);
+int semihost_exit(void);
+
+int semihost_connected(void);
+int semihost_disabledebug(void);
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_stats.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_stats.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_stats.c	(revision 429)
@@ -0,0 +1,150 @@
+#include "platform/mbed_assert.h"
+#include "mbed_stats.h"
+#include "mbed_power_mgmt.h"
+#include "platform/mbed_version.h"
+#include <string.h>
+#include <stdlib.h>
+
+#include "device.h"
+#if 0 //def MBED_CONF_RTOS_PRESENT
+#include "cmsis_os2.h"
+#include "rtos/rtos_idle.h"
+#elif defined(MBED_STACK_STATS_ENABLED) || defined(MBED_THREAD_STATS_ENABLED) || defined(MBED_CPU_STATS_ENABLED)
+#warning Statistics are currently not supported without the rtos.
+#endif
+
+#if defined(MBED_CPU_STATS_ENABLED) && (!defined(DEVICE_LPTICKER) || !defined(DEVICE_SLEEP))
+#warning CPU statistics are not supported without low power timer support.
+#endif
+
+void mbed_stats_cpu_get(mbed_stats_cpu_t *stats)
+{
+    MBED_ASSERT(stats != NULL);
+    memset(stats, 0, sizeof(mbed_stats_cpu_t));
+#if defined(MBED_CPU_STATS_ENABLED) && defined(DEVICE_LPTICKER) && defined(DEVICE_SLEEP)
+    stats->uptime = mbed_uptime();
+    stats->idle_time = mbed_time_idle();
+    stats->sleep_time = mbed_time_sleep();
+    stats->deep_sleep_time = mbed_time_deepsleep();
+#endif
+}
+
+// note: mbed_stats_heap_get defined in mbed_alloc_wrappers.cpp
+void mbed_stats_stack_get(mbed_stats_stack_t *stats)
+{
+    MBED_ASSERT(stats != NULL);
+    memset(stats, 0, sizeof(mbed_stats_stack_t));
+
+#if defined(MBED_STACK_STATS_ENABLED) && defined(MBED_CONF_RTOS_PRESENT)
+    uint32_t thread_n = osThreadGetCount();
+    unsigned i;
+    osThreadId_t *threads;
+
+    threads = malloc(sizeof(osThreadId_t) * thread_n);
+    // Don't fail on lack of memory
+    if (!threads) {
+        return;
+    }
+
+    osKernelLock();
+    thread_n = osThreadEnumerate(threads, thread_n);
+
+    for (i = 0; i < thread_n; i++) {
+        uint32_t stack_size = osThreadGetStackSize(threads[i]);
+        stats->max_size += stack_size - osThreadGetStackSpace(threads[i]);
+        stats->reserved_size += stack_size;
+        stats->stack_cnt++;
+    }
+    osKernelUnlock();
+
+    free(threads);
+#endif
+}
+
+size_t mbed_stats_stack_get_each(mbed_stats_stack_t *stats, size_t count)
+{
+    MBED_ASSERT(stats != NULL);
+    memset(stats, 0, count * sizeof(mbed_stats_stack_t));
+
+    size_t i = 0;
+
+#if defined(MBED_STACK_STATS_ENABLED) && defined(MBED_CONF_RTOS_PRESENT)
+    osThreadId_t *threads;
+
+    threads = malloc(sizeof(osThreadId_t) * count);
+    // Don't fail on lack of memory
+    if (!threads) {
+        return 0;
+    }
+
+    osKernelLock();
+    count = osThreadEnumerate(threads, count);
+
+    for (i = 0; i < count; i++) {
+        uint32_t stack_size = osThreadGetStackSize(threads[i]);
+        stats[i].max_size = stack_size - osThreadGetStackSpace(threads[i]);
+        stats[i].reserved_size = stack_size;
+        stats[i].thread_id = (uint32_t)threads[i];
+        stats[i].stack_cnt = 1;
+    }
+    osKernelUnlock();
+
+    free(threads);
+#endif
+
+    return i;
+}
+
+size_t mbed_stats_thread_get_each(mbed_stats_thread_t *stats, size_t count)
+{
+    MBED_ASSERT(stats != NULL);
+    memset(stats, 0, count * sizeof(mbed_stats_thread_t));
+    size_t i = 0;
+
+#if defined(MBED_THREAD_STATS_ENABLED) && defined(MBED_CONF_RTOS_PRESENT)
+    osThreadId_t *threads;
+
+    threads = malloc(sizeof(osThreadId_t) * count);
+    MBED_ASSERT(threads != NULL);
+
+    osKernelLock();
+    count = osThreadEnumerate(threads, count);
+
+    for (i = 0; i < count; i++) {
+        stats[i].id = (uint32_t)threads[i];
+        stats[i].state = (uint32_t)osThreadGetState(threads[i]);
+        stats[i].priority = (uint32_t)osThreadGetPriority(threads[i]);
+        stats[i].stack_size = osThreadGetStackSize(threads[i]);
+        stats[i].stack_space = osThreadGetStackSpace(threads[i]);
+        stats[i].name = osThreadGetName(threads[i]);
+    }
+    osKernelUnlock();
+    free(threads);
+#endif
+    return i;
+}
+
+void mbed_stats_sys_get(mbed_stats_sys_t *stats)
+{
+    MBED_ASSERT(stats != NULL);
+    memset(stats, 0, sizeof(mbed_stats_sys_t));
+
+#if defined(MBED_SYS_STATS_ENABLED)
+    stats->os_version = MBED_VERSION;
+#if defined(__CORTEX_M)
+    stats->cpu_id = SCB->CPUID;
+#endif
+#if defined(__IAR_SYSTEMS_ICC__)
+    stats->compiler_id = IAR;
+    stats->compiler_version = __VER__;
+#elif defined(__CC_ARM)
+    stats->compiler_id = ARM;
+    stats->compiler_version = __ARMCC_VERSION;
+#elif defined(__GNUC__)
+    stats->compiler_id = GCC_ARM;
+    stats->compiler_version = (__GNUC__ * 10000 + __GNUC_MINOR__ * 100);
+#endif
+
+#endif
+    return;
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_stats.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_stats.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_stats.h	(revision 429)
@@ -0,0 +1,161 @@
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_stats stats functions
+ * @{
+ */
+/* mbed Microcontroller Library
+ * Copyright (c) 2016-2018 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_STATS_H
+#define MBED_STATS_H
+#include <stdint.h>
+#include <stddef.h>
+#include "hal/ticker_api.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef MBED_ALL_STATS_ENABLED
+#define MBED_SYS_STATS_ENABLED      1
+#define MBED_STACK_STATS_ENABLED    1
+#define MBED_CPU_STATS_ENABLED      1
+#define MBED_HEAP_STATS_ENABLED     1
+#define MBED_THREAD_STATS_ENABLED   1
+#endif
+
+/**
+ * struct mbed_stats_heap_t definition
+ */
+typedef struct {
+    uint32_t current_size;      /**< Bytes allocated currently. */
+    uint32_t max_size;          /**< Max bytes allocated at a given time. */
+    uint32_t total_size;        /**< Cumulative sum of bytes ever allocated. */
+    uint32_t reserved_size;     /**< Current number of bytes allocated for the heap. */
+    uint32_t alloc_cnt;         /**< Current number of allocations. */
+    uint32_t alloc_fail_cnt;    /**< Number of failed allocations. */
+} mbed_stats_heap_t;
+
+/**
+ *  Fill the passed in heap stat structure with heap stats.
+ *
+ *  @param stats    A pointer to the mbed_stats_heap_t structure to fill
+ */
+void mbed_stats_heap_get(mbed_stats_heap_t *stats);
+
+/**
+ * struct mbed_stats_stack_t definition
+ */
+typedef struct {
+    uint32_t thread_id;         /**< Identifier for thread that owns the stack or 0 if multiple threads. */
+    uint32_t max_size;          /**< Maximum number of bytes used on the stack. */
+    uint32_t reserved_size;     /**< Current number of bytes allocated for the stack. */
+    uint32_t stack_cnt;         /**< Number of stacks stats accumulated in the structure. */
+} mbed_stats_stack_t;
+
+/**
+ *  Fill the passed in structure with stack stats accumulated for all threads. The thread_id will be 0
+ *  and stack_cnt will represent number of threads.
+ *
+ *  @param stats    A pointer to the mbed_stats_stack_t structure to fill
+ */
+void mbed_stats_stack_get(mbed_stats_stack_t *stats);
+
+/**
+ *  Fill the passed array of stat structures with the stack stats for each available thread.
+ *
+ *  @param stats    A pointer to an array of mbed_stats_stack_t structures to fill
+ *  @param count    The number of mbed_stats_stack_t structures in the provided array
+ *  @return         The number of mbed_stats_stack_t structures that have been filled,
+ *                  this is equal to the number of stacks on the system.
+ */
+size_t mbed_stats_stack_get_each(mbed_stats_stack_t *stats, size_t count);
+
+/**
+ * struct mbed_stats_cpu_t definition
+ */
+typedef struct {
+    us_timestamp_t uptime;            /**< Time since system is up and running */
+    us_timestamp_t idle_time;         /**< Time spent in idle thread since system is up and running */
+    us_timestamp_t sleep_time;        /**< Time spent in sleep since system is up and running */
+    us_timestamp_t deep_sleep_time;   /**< Time spent in deep sleep since system is up and running */
+} mbed_stats_cpu_t;
+
+/**
+ *  Fill the passed in CPU stat structure with CPU statistics.
+ *
+ *  @param stats    A pointer to the mbed_stats_cpu_t structure to fill
+ */
+void mbed_stats_cpu_get(mbed_stats_cpu_t *stats);
+
+/**
+ * struct mbed_stats_thread_t definition
+ */
+typedef struct {
+    uint32_t id;                /**< Thread Object Identifier */
+    uint32_t state;             /**< Thread Object State */
+    uint32_t priority;          /**< Thread Priority */
+    uint32_t stack_size;        /**< Thread Stack Size */
+    uint32_t stack_space;       /**< Thread remaining stack size */
+    const char   *name;         /**< Thread Object name */
+} mbed_stats_thread_t;
+
+/**
+ *  Fill the passed array of stat structures with the thread stats for each available thread.
+ *
+ *  @param stats    A pointer to an array of mbed_stats_thread_t structures to fill
+ *  @param count    The number of mbed_stats_thread_t structures in the provided array
+ *  @return         The number of mbed_stats_thread_t structures that have been filled,
+ *                  this is equal to the number of threads on the system.
+ */
+size_t mbed_stats_thread_get_each(mbed_stats_thread_t *stats, size_t count);
+
+/**
+ * enum mbed_compiler_id_t definition
+ */
+typedef enum {
+    ARM = 1,                    /**< ARM */
+    GCC_ARM,                    /**< GNU ARM */
+    IAR                         /**< IAR */
+} mbed_compiler_id_t;
+
+/**
+ * struct mbed_stats_sys_t definition
+ */
+typedef struct {
+    uint32_t os_version;                /**< Mbed OS Version (Release only) */
+    uint32_t cpu_id;                    /**< CPUID Register data (Cortex-M only supported) */
+    mbed_compiler_id_t compiler_id;     /**< Compiler ID \ref mbed_compiler_id_t */
+    uint32_t compiler_version;          /**< Compiler version */
+} mbed_stats_sys_t;
+
+/**
+ *  Fill the passed in sys stat structure with system stats.
+ *
+ *  @param stats    A pointer to the mbed_stats_sys_t structure to fill
+ */
+void mbed_stats_sys_get(mbed_stats_sys_t *stats);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/** @}*/
+
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_toolchain.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_toolchain.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_toolchain.h	(revision 429)
@@ -0,0 +1,439 @@
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_toolchain Toolchain functions
+ * @{
+ */
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_TOOLCHAIN_H
+#define MBED_TOOLCHAIN_H
+
+#include "mbed_preprocessor.h"
+
+
+// Warning for unsupported compilers
+#if !defined(__GNUC__)   /* GCC        */ \
+ && !defined(__CC_ARM)   /* ARMCC      */ \
+ && !defined(__clang__)  /* LLVM/Clang */ \
+ && !defined(__ICCARM__) /* IAR        */
+#warning "This compiler is not yet supported."
+#endif
+
+
+// Attributes
+
+/** MBED_PACKED
+ *  Pack a structure, preventing any padding from being added between fields.
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  MBED_PACKED(struct) foo {
+ *      char x;
+ *      int y;
+ *  };
+ *  @endcode
+ */
+#ifndef MBED_PACKED
+#if defined(__ICCARM__)
+#define MBED_PACKED(struct) __packed struct
+#else
+#define MBED_PACKED(struct) struct __attribute__((packed))
+#endif
+#endif
+
+/** MBED_ALIGN(N)
+ *  Declare a variable to be aligned on an N-byte boundary.
+ *
+ *  @note
+ *  IAR does not support alignment greater than word size on the stack
+ *  
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  MBED_ALIGN(16) char a;
+ *  @endcode
+ */
+#ifndef MBED_ALIGN
+#if defined(__ICCARM__)
+#define MBED_ALIGN(N) _Pragma(MBED_STRINGIFY(data_alignment=N))
+#else
+#define MBED_ALIGN(N) __attribute__((aligned(N)))
+#endif
+#endif
+
+/** MBED_UNUSED
+ *  Declare a function argument to be unused, suppressing compiler warnings
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  void foo(MBED_UNUSED int arg) {
+ *
+ *  }
+ *  @endcode
+ */
+#ifndef MBED_UNUSED
+#if defined(__GNUC__) || defined(__clang__) || defined(__CC_ARM)
+#define MBED_UNUSED __attribute__((__unused__))
+#else
+#define MBED_UNUSED
+#endif
+#endif
+
+/** MBED_USED
+ *  Inform the compiler that a static variable is to be retained in the object file, even if it is unreferenced.
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  MBED_USED int foo;
+ *
+ *  @endcode
+ */
+#ifndef MBED_USED
+#if defined(__GNUC__) || defined(__clang__) || defined(__CC_ARM)
+#define MBED_USED __attribute__((used))
+#elif defined(__ICCARM__)
+#define MBED_USED __root
+#else
+#define MBED_USED
+#endif
+#endif
+
+/** MBED_WEAK
+ *  Mark a function as being weak.
+ *  
+ *  @note
+ *  Functions should only be marked as weak in the source file. The header file
+ *  should contain a regular function declaration to insure the function is emitted.
+ *  A function marked weak will not be emitted if an alternative non-weak
+ *  implementation is defined.
+ *
+ *  @note
+ *  Weak functions are not friendly to making code re-usable, as they can only
+ *  be overridden once (and if they are multiply overridden the linker will emit
+ *  no warning). You should not normally use weak symbols as part of the API to
+ *  re-usable modules.
+ *  
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *  
+ *  MBED_WEAK void foo() {
+ *      // a weak implementation of foo that can be overriden by a definition
+ *      // without  __weak
+ *  }
+ *  @endcode
+ */
+#ifndef MBED_WEAK
+#if defined(__ICCARM__)
+#define MBED_WEAK __weak
+#else
+#define MBED_WEAK __attribute__((weak))
+#endif
+#endif
+
+/** MBED_PURE
+ *  Hint to the compiler that a function depends only on parameters
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  MBED_PURE int foo(int arg){
+ *      // no access to global variables
+ *  }
+ *  @endcode
+ */
+#ifndef MBED_PURE
+#if defined(__GNUC__) || defined(__clang__) || defined(__CC_ARM)
+#define MBED_PURE __attribute__((const))
+#else
+#define MBED_PURE
+#endif
+#endif
+
+/** MBED_NOINLINE
+ *  Declare a function that must not be inlined.
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  MBED_NOINLINE void foo() {
+ *
+ *  }
+ *  @endcode
+ */
+#ifndef MBED_NOINLINE
+#if defined(__GNUC__) || defined(__clang__) || defined(__CC_ARM)
+#define MBED_NOINLINE __attribute__((noinline))
+#elif defined(__ICCARM__)
+#define MBED_NOINLINE _Pragma("inline=never")
+#else
+#define MBED_NOINLINE
+#endif
+#endif
+
+/** MBED_FORCEINLINE
+ *  Declare a function that must always be inlined. Failure to inline
+ *  such a function will result in an error.
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *  
+ *  MBED_FORCEINLINE void foo() {
+ *  
+ *  }
+ *  @endcode
+ */
+#ifndef MBED_FORCEINLINE
+#if defined(__GNUC__) || defined(__clang__) || defined(__CC_ARM)
+#define MBED_FORCEINLINE static inline __attribute__((always_inline))
+#elif defined(__ICCARM__)
+#define MBED_FORCEINLINE _Pragma("inline=forced") static
+#else
+#define MBED_FORCEINLINE static inline
+#endif
+#endif
+
+/** MBED_NORETURN
+ *  Declare a function that will never return.
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *  
+ *  MBED_NORETURN void foo() {
+ *      // must never return
+ *      while (1) {}
+ *  }
+ *  @endcode
+ */
+#ifndef MBED_NORETURN
+#if defined(__GNUC__) || defined(__clang__) || defined(__CC_ARM)
+#define MBED_NORETURN __attribute__((noreturn))
+#elif defined(__ICCARM__)
+#define MBED_NORETURN __noreturn
+#else
+#define MBED_NORETURN
+#endif
+#endif
+
+/** MBED_UNREACHABLE
+ *  An unreachable statement. If the statement is reached,
+ *  behaviour is undefined. Useful in situations where the compiler
+ *  cannot deduce the unreachability of code.
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  void foo(int arg) {
+ *      switch (arg) {
+ *          case 1: return 1;
+ *          case 2: return 2;
+ *          ...
+ *      }
+ *      MBED_UNREACHABLE;
+ *  }
+ *  @endcode
+ */
+#ifndef MBED_UNREACHABLE
+#if (defined(__GNUC__) || defined(__clang__)) && !defined(__CC_ARM)
+#define MBED_UNREACHABLE __builtin_unreachable()
+#else
+#define MBED_UNREACHABLE while (1)
+#endif
+#endif
+
+/** MBED_DEPRECATED("message string")
+ *  Mark a function declaration as deprecated, if it used then a warning will be
+ *  issued by the compiler possibly including the provided message. Note that not
+ *  all compilers are able to display the message.
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *  
+ *  MBED_DEPRECATED("don't foo any more, bar instead")
+ *  void foo(int arg);
+ *  @endcode
+ */
+#ifndef MBED_DEPRECATED
+#if defined(__CC_ARM)
+#define MBED_DEPRECATED(M) __attribute__((deprecated))
+#elif defined(__GNUC__) || defined(__clang__)
+#define MBED_DEPRECATED(M) __attribute__((deprecated(M)))
+#else
+#define MBED_DEPRECATED(M)
+#endif
+#endif
+
+/** MBED_DEPRECATED_SINCE("version", "message string")
+ *  Mark a function declaration as deprecated, noting that the declaration was
+ *  deprecated on the specified version. If the function is used then a warning
+ *  will be issued by the compiler possibly including the provided message.
+ *  Note that not all compilers are able to display this message.
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  MBED_DEPRECATED_SINCE("mbed-os-5.1", "don't foo any more, bar instead")
+ *  void foo(int arg);
+ *  @endcode
+ */
+#define MBED_DEPRECATED_SINCE(D, M) MBED_DEPRECATED(M " [since " D "]")
+
+/** MBED_CALLER_ADDR()
+ * Returns the caller of the current function.
+ *
+ * @note
+ * This macro is only implemented for GCC and ARMCC.
+ *
+ * @code
+ * #include "mbed_toolchain.h"
+ *
+ * printf("This function was called from %p", MBED_CALLER_ADDR());
+ * @endcode
+ *
+ * @return Address of the calling function
+ */
+#ifndef MBED_CALLER_ADDR
+#if (defined(__GNUC__) || defined(__clang__)) && !defined(__CC_ARM)
+#define MBED_CALLER_ADDR() __builtin_extract_return_addr(__builtin_return_address(0))
+#elif defined(__CC_ARM)
+#define MBED_CALLER_ADDR() __builtin_return_address(0)
+#else
+#define MBED_CALLER_ADDR() (NULL)
+#endif
+#endif
+
+#ifndef MBED_SECTION
+#if (defined(__GNUC__) || defined(__clang__)) || defined(__CC_ARM)
+#define MBED_SECTION(name) __attribute__ ((section (name)))
+#elif defined(__ICCARM__)
+#define MBED_SECTION(name) _Pragma(MBED_STRINGIFY(location=name))
+#else
+#error "Missing MBED_SECTION directive"
+#endif
+#endif
+
+/**
+ * Macro expanding to a string literal of the enclosing function name.
+ *
+ * The string returned takes into account language specificity and yield human
+ * readable content.
+ *
+ * As an example, if the macro is used within a C++ function then the string
+ * literal containing the function name will contain the complete signature of
+ * the function - including template parameters - and namespace qualifications.
+ */
+#ifndef MBED_PRETTY_FUNCTION
+#define MBED_PRETTY_FUNCTION __PRETTY_FUNCTION__
+#endif
+
+#ifndef MBED_PRINTF
+#if defined(__GNUC__) || defined(__CC_ARM)
+#define MBED_PRINTF(format_idx, first_param_idx) __attribute__ ((__format__(__printf__, format_idx, first_param_idx)))
+#else
+#define MBED_PRINTF(format_idx, first_param_idx)
+#endif
+#endif
+
+#ifndef MBED_PRINTF_METHOD
+#if defined(__GNUC__) || defined(__CC_ARM)
+#define MBED_PRINTF_METHOD(format_idx, first_param_idx) __attribute__ ((__format__(__printf__, format_idx+1, first_param_idx+1)))
+#else
+#define MBED_PRINTF_METHOD(format_idx, first_param_idx)
+#endif
+#endif
+
+#ifndef MBED_SCANF
+#if defined(__GNUC__) || defined(__CC_ARM)
+#define MBED_SCANF(format_idx, first_param_idx) __attribute__ ((__format__(__scanf__, format_idx, first_param_idx)))
+#else
+#define MBED_SCANF(format_idx, first_param_idx)
+#endif
+#endif
+
+#ifndef MBED_SCANF_METHOD
+#if defined(__GNUC__) || defined(__CC_ARM)
+#define MBED_SCANF_METHOD(format_idx, first_param_idx) __attribute__ ((__format__(__scanf__, format_idx+1, first_param_idx+1)))
+#else
+#define MBED_SCANF_METHOD(format_idx, first_param_idx)
+#endif
+#endif
+
+// Macro containing the filename part of the value of __FILE__. Defined as
+// string literal.
+#ifndef MBED_FILENAME
+#if defined(__CC_ARM)
+#define MBED_FILENAME __MODULE__
+#elif defined(__GNUC__)
+#define MBED_FILENAME (__builtin_strrchr(__FILE__, '/') ? __builtin_strrchr(__FILE__, '/') + 1 : __builtin_strrchr(__FILE__, '\\') ? __builtin_strrchr(__FILE__, '\\') + 1 : __FILE__)
+#elif defined(__ICCARM__)
+#define MBED_FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)
+#else
+#define MBED_FILENAME __FILE__
+#endif
+#endif // #ifndef MBED_FILENAME
+
+// FILEHANDLE declaration
+#if defined(TOOLCHAIN_ARM)
+#include <rt_sys.h>
+#endif
+
+#ifndef FILEHANDLE
+typedef int FILEHANDLE;
+#endif
+
+// Backwards compatibility
+#ifndef WEAK
+#define WEAK MBED_WEAK
+#endif
+
+#ifndef PACKED
+#define PACKED MBED_PACKED()
+#endif
+
+#ifndef EXTERN
+#define EXTERN extern
+#endif
+
+/** MBED_NONSECURE_ENTRY
+ *  Declare a function that can be called from non-secure world or secure world
+ *
+ *  @code
+ *  #include "mbed_toolchain.h"
+ *
+ *  MBED_NONSECURE_ENTRY void foo() {
+ *
+ *  }
+ *  @endcode
+ */
+#if defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3L)
+#if defined (__ICCARM__)
+#define MBED_NONSECURE_ENTRY       __cmse_nonsecure_entry
+#else
+#define MBED_NONSECURE_ENTRY       __attribute__((cmse_nonsecure_entry))
+#endif
+#else
+#define MBED_NONSECURE_ENTRY
+#endif
+
+#endif
+
+/** @}*/
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_version.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_version.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_version.h	(revision 429)
@@ -0,0 +1,71 @@
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_version Version macros
+ * @{
+ */
+/* mbed Microcontroller Library
+ * Copyright (c) 2018 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MBED_VERSION_H
+#define MBED_VERSION_H
+
+/** MBED_MAJOR_VERSION
+  * Mbed OS major version
+  *
+  * @note 99 is default value for development version (master branch)
+  */
+#define MBED_MAJOR_VERSION 5
+
+/** MBED_MINOR_VERSION
+  * Mbed OS minor version
+  *
+  * @note 99 is default value for development version (master branch)
+  */
+#define MBED_MINOR_VERSION 10
+
+/** MBED_PATCH_VERSION
+  * Mbed OS patch version
+  *
+  * @note 99 is default value for development version (master branch)
+  */
+#define MBED_PATCH_VERSION 0
+
+#define MBED_ENCODE_VERSION(major, minor, patch) ((major)*10000 + (minor)*100 + (patch))
+
+/** MBED_VERSION
+  * Mbed OS 5 version (MMmmpp - M(Major); m(minor); p(patch))
+  *
+  * @note 999999 is default value for development version (master branch)
+  */
+#define MBED_VERSION MBED_ENCODE_VERSION(MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION)
+
+/** MBED_VERSION_CHECK
+  * Macro can be used to check minimum Mbed OS version required for feature/library. If current version
+  * is less than required, it will assert.
+  *
+  * @note: Version of master branch will be 999999 as default, hence no assert/warning is provided for
+  * master branch code
+  */
+#define MBED_VERSION_CHECK(major, minor, patch) do { \
+                                       MBED_STATIC_ASSERT((MBED_VERSION >= MBED_ENCODE_VERSION((major),(minor),(patch))), "Incompatible mbed-os version detected!!"); \
+                                     } while(0)
+
+#endif
+
+/** @}*/
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_wait_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_wait_api.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_wait_api.h	(revision 429)
@@ -0,0 +1,92 @@
+
+/** \addtogroup platform */
+/** @{*/
+/**
+ * \defgroup platform_wait_api wait_api functions
+ * @{
+ */
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_WAIT_API_H
+#define MBED_WAIT_API_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Generic wait functions.
+ *
+ * These provide simple NOP type wait capabilities.
+ *
+ * Example:
+ * @code
+ * #include "mbed.h"
+ *
+ * DigitalOut heartbeat(LED1);
+ *
+ * int main() {
+ *     while (1) {
+ *         heartbeat = 1;
+ *         wait(0.5);
+ *         heartbeat = 0;
+ *         wait(0.5);
+ *     }
+ * }
+ * @endcode
+ */
+
+/** Waits for a number of seconds, with microsecond resolution (within
+ *  the accuracy of single precision floating point).
+ *
+ *  @param s number of seconds to wait
+ *
+ *  @note
+ *    If the RTOS is present, this function always spins to get the exact number of microseconds,
+ *    which potentially affects power (such as preventing deep sleep) and multithread performance.
+ *    You can avoid it by using Thread::wait().
+ */
+void wait(float s);
+
+/** Waits a number of milliseconds.
+ *
+ *  @param ms the whole number of milliseconds to wait
+ *
+ *  @note
+ *    If the RTOS is present, this function always spins to get the exact number of microseconds,
+ *    which potentially affects power (such as preventing deep sleep) and multithread performance.
+ *    You can avoid it by using Thread::wait().
+ */
+void wait_ms(int ms);
+
+/** Waits a number of microseconds.
+ *
+ *  @param us the whole number of microseconds to wait
+ *
+ *  @note
+ *    If the RTOS is present, this function always spins to get the exact number of microseconds,
+ *    which potentially affects power (such as preventing deep sleep) and multithread performance.
+ */
+void wait_us(int us);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/** @}*/
+/** @}*/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_wait_api_no_rtos.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_wait_api_no_rtos.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/platform/mbed_wait_api_no_rtos.c	(revision 429)
@@ -0,0 +1,42 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// This implementation of the wait functions will be compiled only
+// if the RTOS is not present.
+#ifndef MBED_CONF_RTOS_PRESENT
+
+#include "platform/mbed_wait_api.h"
+#include "hal/us_ticker_api.h"
+
+void wait(float s)
+{
+    wait_us(s * 1000000.0f);
+}
+
+void wait_ms(int ms)
+{
+    wait_us(ms * 1000);
+}
+
+void wait_us(int us)
+{
+    const ticker_data_t *const ticker = get_us_ticker_data();
+    uint32_t start = ticker_read(ticker);
+    while ((ticker_read(ticker) - start) < (uint32_t)us);
+}
+
+#endif // #ifndef MBED_CONF_RTOS_PRESENT
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/rtos/TARGET_CORTEX/mbed_rtx_conf.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/rtos/TARGET_CORTEX/mbed_rtx_conf.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/rtos/TARGET_CORTEX/mbed_rtx_conf.h	(revision 429)
@@ -0,0 +1,251 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2012 ARM Limited
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#ifndef MBED_RTX_CONF_H
+#define MBED_RTX_CONF_H
+
+#include "mbed_rtx.h"
+
+/** Any access to RTX5 specific data structures used in common code should be wrapped in ifdef MBED_OS_BACKEND_RTX5 */
+#define MBED_OS_BACKEND_RTX5
+
+/** The thread's stack size can be configured by the application, if not explicitly specified it'll default to 4K */
+#ifndef MBED_CONF_APP_THREAD_STACK_SIZE
+#define MBED_CONF_APP_THREAD_STACK_SIZE 4096
+#endif
+
+#define OS_STACK_SIZE               MBED_CONF_APP_THREAD_STACK_SIZE
+
+/** The timer thread's stack size can be configured by the application, if not explicitly specified, it'll default to 768 */
+#ifndef MBED_CONF_APP_TIMER_THREAD_STACK_SIZE
+#define MBED_CONF_APP_TIMER_THREAD_STACK_SIZE   768
+#endif
+
+#define OS_TIMER_THREAD_STACK_SIZE  MBED_CONF_APP_TIMER_THREAD_STACK_SIZE
+
+/** The idle thread's stack size can be configured by the application, if not explicitly specified, it'll default to 512 */
+#ifndef MBED_CONF_APP_IDLE_THREAD_STACK_SIZE
+#define MBED_CONF_APP_IDLE_THREAD_STACK_SIZE    512
+#endif
+
+#define OS_IDLE_THREAD_STACK_SIZE   MBED_CONF_APP_IDLE_THREAD_STACK_SIZE
+
+#define OS_DYNAMIC_MEM_SIZE         0
+
+#if defined(OS_TICK_FREQ) && (OS_TICK_FREQ != 1000)
+#error "OS Tickrate must be 1000 for system timing"
+#endif
+
+#if !defined(OS_STACK_WATERMARK) && (defined(MBED_STACK_STATS_ENABLED) || defined(MBED_ALL_STATS_ENABLED))
+#define OS_STACK_WATERMARK          1
+#endif
+
+#if !defined(OS_STACK_WATERMARK) && defined(MBED_THREAD_STATS_ENABLED)
+#define OS_STACK_WATERMARK          1
+#endif
+
+
+#define OS_IDLE_THREAD_TZ_MOD_ID     1
+#define OS_TIMER_THREAD_TZ_MOD_ID    1
+
+
+// Don't adopt default multi-thread support for ARM/ARMC6 toolchains from RTX code base.
+// Provide Mbed-specific instead.
+#define RTX_NO_MULTITHREAD_CLIB
+// LIBSPACE default value set for ARMCC
+#define OS_THREAD_LIBSPACE_NUM      4
+
+#define OS_IDLE_THREAD_NAME         "idle_thread"
+#define OS_TIMER_THREAD_NAME        "timer_thread"
+
+/* Enable only the evr events we use in Mbed-OS to save flash space. */
+//Following events are used by Mbed-OS, DO NOT disable them
+//#define EVR_RTX_KERNEL_ERROR_DISABLE
+//#define EVR_RTX_THREAD_ERROR_DISABLE
+//#define EVR_RTX_THREAD_EXIT_DISABLE
+//#define EVR_RTX_THREAD_TERMINATE_DISABLE
+//#define EVR_RTX_TIMER_ERROR_DISABLE
+//#define EVR_RTX_EVENT_FLAGS_ERROR_DISABLE
+//#define EVR_RTX_MUTEX_ERROR_DISABLE
+//#define EVR_RTX_SEMAPHORE_ERROR_DISABLE
+//#define EVR_RTX_MEMORY_POOL_ERROR_DISABLE
+//#define EVR_RTX_MESSAGE_QUEUE_ERROR_DISABLE
+
+//Following events are NOT used by Mbed-OS, you may enable them if needed for debug purposes
+#define EVR_RTX_MEMORY_INIT_DISABLE
+#define EVR_RTX_MEMORY_ALLOC_DISABLE
+#define EVR_RTX_MEMORY_FREE_DISABLE
+#define EVR_RTX_MEMORY_BLOCK_INIT_DISABLE
+#define EVR_RTX_MEMORY_BLOCK_ALLOC_DISABLE
+#define EVR_RTX_MEMORY_BLOCK_FREE_DISABLE
+#define EVR_RTX_KERNEL_INITIALIZE_DISABLE
+#define EVR_RTX_KERNEL_INITIALIZED_DISABLE
+#define EVR_RTX_KERNEL_GET_INFO_DISABLE
+#define EVR_RTX_KERNEL_INFO_RETRIEVED_DISABLE
+#define EVR_RTX_KERNEL_GET_STATE_DISABLE
+#define EVR_RTX_KERNEL_START_DISABLE
+#define EVR_RTX_KERNEL_STARTED_DISABLE
+#define EVR_RTX_KERNEL_LOCK_DISABLE
+#define EVR_RTX_KERNEL_LOCKED_DISABLE
+#define EVR_RTX_KERNEL_UNLOCK_DISABLE
+#define EVR_RTX_KERNEL_UNLOCKED_DISABLE
+#define EVR_RTX_KERNEL_RESTORE_LOCK_DISABLE
+#define EVR_RTX_KERNEL_LOCK_RESTORED_DISABLE
+#define EVR_RTX_KERNEL_SUSPEND_DISABLE
+#define EVR_RTX_KERNEL_SUSPENDED_DISABLE
+#define EVR_RTX_KERNEL_RESUME_DISABLE
+#define EVR_RTX_KERNEL_RESUMED_DISABLE
+#define EVR_RTX_KERNEL_GET_TICK_COUNT_DISABLE
+#define EVR_RTX_KERNEL_GET_TICK_FREQ_DISABLE
+#define EVR_RTX_KERNEL_GET_SYS_TIMER_COUNT_DISABLE
+#define EVR_RTX_KERNEL_GET_SYS_TIMER_FREQ_DISABLE
+#define EVR_RTX_THREAD_NEW_DISABLE
+#define EVR_RTX_THREAD_CREATED_DISABLE
+#define EVR_RTX_THREAD_GET_NAME_DISABLE
+#define EVR_RTX_THREAD_GET_ID_DISABLE
+#define EVR_RTX_THREAD_GET_STATE_DISABLE
+#define EVR_RTX_THREAD_GET_STACK_SIZE_DISABLE
+#define EVR_RTX_THREAD_GET_STACK_SPACE_DISABLE
+#define EVR_RTX_THREAD_SET_PRIORITY_DISABLE
+#define EVR_RTX_THREAD_GET_PRIORITY_DISABLE
+#define EVR_RTX_THREAD_YIELD_DISABLE
+#define EVR_RTX_THREAD_SUSPEND_DISABLE
+#define EVR_RTX_THREAD_SUSPENDED_DISABLE
+#define EVR_RTX_THREAD_RESUME_DISABLE
+#define EVR_RTX_THREAD_RESUMED_DISABLE
+#define EVR_RTX_THREAD_DETACH_DISABLE
+#define EVR_RTX_THREAD_DETACHED_DISABLE
+#define EVR_RTX_THREAD_JOIN_DISABLE
+#define EVR_RTX_THREAD_JOIN_PENDING_DISABLE
+#define EVR_RTX_THREAD_JOINED_DISABLE
+#define EVR_RTX_THREAD_BLOCKED_DISABLE
+#define EVR_RTX_THREAD_UNBLOCKED_DISABLE
+#define EVR_RTX_THREAD_PREEMPTED_DISABLE
+#define EVR_RTX_THREAD_SWITCHED_DISABLE
+#define EVR_RTX_THREAD_DESTROYED_DISABLE
+#define EVR_RTX_THREAD_GET_COUNT_DISABLE
+#define EVR_RTX_THREAD_ENUMERATE_DISABLE
+#define EVR_RTX_THREAD_FLAGS_SET_DISABLE
+#define EVR_RTX_THREAD_FLAGS_SET_DONE_DISABLE
+#define EVR_RTX_THREAD_FLAGS_CLEAR_DISABLE
+#define EVR_RTX_THREAD_FLAGS_CLEAR_DONE_DISABLE
+#define EVR_RTX_THREAD_FLAGS_GET_DISABLE
+#define EVR_RTX_THREAD_FLAGS_WAIT_DISABLE
+#define EVR_RTX_THREAD_FLAGS_WAIT_PENDING_DISABLE
+#define EVR_RTX_THREAD_FLAGS_WAIT_TIMEOUT_DISABLE
+#define EVR_RTX_THREAD_FLAGS_WAIT_COMPLETED_DISABLE
+#define EVR_RTX_THREAD_FLAGS_WAIT_NOT_COMPLETED_DISABLE
+#define EVR_RTX_THREAD_DELAY_DISABLE
+#define EVR_RTX_THREAD_DELAY_UNTIL_DISABLE
+#define EVR_RTX_THREAD_DELAY_COMPLETED_DISABLE
+#define EVR_RTX_TIMER_CALLBACK_DISABLE
+#define EVR_RTX_TIMER_NEW_DISABLE
+#define EVR_RTX_TIMER_CREATED_DISABLE
+#define EVR_RTX_TIMER_GET_NAME_DISABLE
+#define EVR_RTX_TIMER_START_DISABLE
+#define EVR_RTX_TIMER_STARTED_DISABLE
+#define EVR_RTX_TIMER_STOP_DISABLE
+#define EVR_RTX_TIMER_STOPPED_DISABLE
+#define EVR_RTX_TIMER_IS_RUNNING_DISABLE
+#define EVR_RTX_TIMER_DELETE_DISABLE
+#define EVR_RTX_TIMER_DESTROYED_DISABLE
+#define EVR_RTX_EVENT_FLAGS_NEW_DISABLE
+#define EVR_RTX_EVENT_FLAGS_CREATED_DISABLE
+#define EVR_RTX_EVENT_FLAGS_GET_NAME_DISABLE
+#define EVR_RTX_EVENT_FLAGS_SET_DISABLE
+#define EVR_RTX_EVENT_FLAGS_SET_DONE_DISABLE
+#define EVR_RTX_EVENT_FLAGS_CLEAR_DISABLE
+#define EVR_RTX_EVENT_FLAGS_CLEAR_DONE_DISABLE
+#define EVR_RTX_EVENT_FLAGS_GET_DISABLE
+#define EVR_RTX_EVENT_FLAGS_WAIT_DISABLE
+#define EVR_RTX_EVENT_FLAGS_WAIT_PENDING_DISABLE
+#define EVR_RTX_EVENT_FLAGS_WAIT_TIMEOUT_DISABLE
+#define EVR_RTX_EVENT_FLAGS_WAIT_COMPLETED_DISABLE
+#define EVR_RTX_EVENT_FLAGS_WAIT_NOT_COMPLETED_DISABLE
+#define EVR_RTX_EVENT_FLAGS_DELETE_DISABLE
+#define EVR_RTX_EVENT_FLAGS_DESTROYED_DISABLE
+#define EVR_RTX_MUTEX_NEW_DISABLE
+#define EVR_RTX_MUTEX_CREATED_DISABLE
+#define EVR_RTX_MUTEX_GET_NAME_DISABLE
+#define EVR_RTX_MUTEX_ACQUIRE_DISABLE
+#define EVR_RTX_MUTEX_ACQUIRE_PENDING_DISABLE
+#define EVR_RTX_MUTEX_ACQUIRE_TIMEOUT_DISABLE
+#define EVR_RTX_MUTEX_ACQUIRED_DISABLE
+#define EVR_RTX_MUTEX_NOT_ACQUIRED_DISABLE
+#define EVR_RTX_MUTEX_RELEASE_DISABLE
+#define EVR_RTX_MUTEX_RELEASED_DISABLE
+#define EVR_RTX_MUTEX_GET_OWNER_DISABLE
+#define EVR_RTX_MUTEX_DELETE_DISABLE
+#define EVR_RTX_MUTEX_DESTROYED_DISABLE
+#define EVR_RTX_SEMAPHORE_NEW_DISABLE
+#define EVR_RTX_SEMAPHORE_CREATED_DISABLE
+#define EVR_RTX_SEMAPHORE_GET_NAME_DISABLE
+#define EVR_RTX_SEMAPHORE_ACQUIRE_DISABLE
+#define EVR_RTX_SEMAPHORE_ACQUIRE_PENDING_DISABLE
+#define EVR_RTX_SEMAPHORE_ACQUIRE_TIMEOUT_DISABLE
+#define EVR_RTX_SEMAPHORE_ACQUIRED_DISABLE
+#define EVR_RTX_SEMAPHORE_NOT_ACQUIRED_DISABLE
+#define EVR_RTX_SEMAPHORE_RELEASE_DISABLE
+#define EVR_RTX_SEMAPHORE_RELEASED_DISABLE
+#define EVR_RTX_SEMAPHORE_GET_COUNT_DISABLE
+#define EVR_RTX_SEMAPHORE_DELETE_DISABLE
+#define EVR_RTX_SEMAPHORE_DESTROYED_DISABLE
+#define EVR_RTX_MEMORY_POOL_NEW_DISABLE
+#define EVR_RTX_MEMORY_POOL_CREATED_DISABLE
+#define EVR_RTX_MEMORY_POOL_GET_NAME_DISABLE
+#define EVR_RTX_MEMORY_POOL_ALLOC_DISABLE
+#define EVR_RTX_MEMORY_POOL_ALLOC_PENDING_DISABLE
+#define EVR_RTX_MEMORY_POOL_ALLOC_TIMEOUT_DISABLE
+#define EVR_RTX_MEMORY_POOL_ALLOCATED_DISABLE
+#define EVR_RTX_MEMORY_POOL_ALLOC_FAILED_DISABLE
+#define EVR_RTX_MEMORY_POOL_FREE_DISABLE
+#define EVR_RTX_MEMORY_POOL_DEALLOCATED_DISABLE
+#define EVR_RTX_MEMORY_POOL_FREE_FAILED_DISABLE
+#define EVR_RTX_MEMORY_POOL_GET_CAPACITY_DISABLE
+#define EVR_RTX_MEMORY_POOL_GET_BLOCK_SZIE_DISABLE
+#define EVR_RTX_MEMORY_POOL_GET_COUNT_DISABLE
+#define EVR_RTX_MEMORY_POOL_GET_SPACE_DISABLE
+#define EVR_RTX_MEMORY_POOL_DELETE_DISABLE
+#define EVR_RTX_MEMORY_POOL_DESTROYED_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_NEW_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_CREATED_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_GET_NAME_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_PUT_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_PUT_PENDING_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_PUT_TIMEOUT_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_INSERT_PENDING_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_INSERTED_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_NOT_INSERTED_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_GET_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_GET_PENDING_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_GET_TIMEOUT_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_RETRIEVED_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_NOT_RETRIEVED_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_GET_CAPACITY_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_GET_MSG_SIZE_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_GET_COUNT_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_GET_SPACE_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_RESET_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_RESET_DONE_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_DELETE_DISABLE
+#define EVR_RTX_MESSAGE_QUEUE_DESTROYED_DISABLE
+
+#endif /* MBED_RTX_CONF_H */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/tMbedSerial.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/tMbedSerial.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/tMbedSerial.c	(revision 429)
@@ -0,0 +1,204 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  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$
+ */
+
+/*
+ *		FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
+ */
+
+#include <sil.h>
+#include "tMbedSerial_tecsgen.h"
+#include "serial_api.h"
+
+static void mbed_serial_irq_handler(uint32_t id, SerialIrq event);
+
+/*
+ *  シリアルI/Oポートのオープン
+ */
+void
+eSIOPort_open(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	serial_t *obj = &p_cellcb->serial;
+	uint_t	brr;
+
+	if (VAR_initialized) {
+		/*
+		 *  既に初期化している場合は、二重に初期化しない．
+		 */
+		return;
+	}
+
+	serial_init(obj, ATTR_tx, ATTR_rx);
+	serial_baud(obj, ATTR_baudRate);
+	serial_format(obj, 8, ParityNone, 1);
+
+	serial_irq_handler(obj, mbed_serial_irq_handler, idx);
+
+	VAR_initialized = true;
+}
+
+/*
+ *  シリアルI/Oポートのクローズ
+ */
+void
+eSIOPort_close(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	serial_t *obj = &p_cellcb->serial;
+
+	serial_free(obj);
+}
+
+/*
+ *  シリアルI/Oポートへの文字送信
+ */
+bool_t
+eSIOPort_putChar(CELLIDX idx, char c)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	serial_t *obj = &p_cellcb->serial;
+
+	if (serial_writable(obj)){
+		serial_putc(obj, c);
+		return(true);
+	}
+	return(false);
+}
+
+/*
+ *  シリアルI/Oポートからの文字受信
+ */
+int_t
+eSIOPort_getChar(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	serial_t *obj = &p_cellcb->serial;
+	char	c;
+
+	if (serial_readable(obj)) {
+		return serial_getc(obj);
+	}
+	return(-1);
+}
+
+/*
+ *  シリアルI/Oポートからのコールバックの許可
+ */
+void
+eSIOPort_enableCBR(CELLIDX idx, uint_t cbrtn)
+{
+	CELLCB		*p_cellcb = GET_CELLCB(idx);
+	serial_t *obj = &p_cellcb->serial;
+
+	switch (cbrtn) {
+	case SIOSendReady:
+		serial_irq_set(obj, TxIrq, true);
+		break;
+	case SIOReceiveReady:
+		serial_irq_set(obj, RxIrq, true);
+		break;
+	}
+}
+
+/*
+ *  シリアルI/Oポートからのコールバックの禁止
+ */
+void
+eSIOPort_disableCBR(CELLIDX idx, uint_t cbrtn)
+{
+	CELLCB		*p_cellcb = GET_CELLCB(idx);
+	serial_t *obj = &p_cellcb->serial;
+
+	switch (cbrtn) {
+	case SIOSendReady:
+		serial_irq_set(obj, TxIrq, false);
+		break;
+	case SIOReceiveReady:
+		serial_irq_set(obj, RxIrq, false);
+		break;
+	}
+}
+
+/*
+ *  シリアルI/Oポートに対する受信割込み処理
+ */
+void
+eiRxISR_main(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	serial_t *obj = &p_cellcb->serial;
+
+	if (serial_readable(obj)) {
+		/*
+		 *  受信通知コールバックルーチンを呼び出す．
+		 */
+		ciSIOCBR_readyReceive();
+	}
+}
+
+/*
+ *  シリアルI/Oポートに対する送信割込み処理
+ */
+void
+eiTxISR_main(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	serial_t *obj = &p_cellcb->serial;
+
+	if (serial_writable(obj)) {
+		/*
+		 *  送信可能コールバックルーチンを呼び出す．
+		 */
+		ciSIOCBR_readySend();
+	}
+}
+
+void
+mbed_serial_irq_handler(uint32_t id, SerialIrq event)
+{
+	switch (event) {
+	case TxIrq:
+		eiTxISR_main(id);
+		break;
+	case RxIrq:
+		eiRxISR_main(id);
+		break;
+	}
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/tMbedSerial.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/tMbedSerial.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/tMbedSerial.cdl	(revision 429)
@@ -0,0 +1,70 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2015 by Ushio Laboratory
+ *              Graduate School of Engineering Science, Osaka Univ., 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$
+ */
+
+/*
+ *		FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドラ
+ *		イバのコンポーネント記述
+ */
+
+/*
+ *  FIFO内蔵シリアルコミュニケーションインタフェースに関する定義のイン
+ *  ポート
+ */
+import_C("serial_api.h");
+
+/*
+ *  FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
+ *  のセルタイプ
+ */
+celltype tMbedSerial {
+	entry	sSIOPort	eSIOPort;
+	call	siSIOCBR	ciSIOCBR;
+
+	attr {
+		int32_t tx;
+		int32_t rx;
+		uint32_t	baudRate;		/* ボーレートの設定値 */
+	};
+	var {
+		bool_t		initialized = false;	/* 初期化済み */
+		serial_t	serial;
+	};
+};
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/PeripheralPins.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/PeripheralPins.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/PeripheralPins.h	(revision 429)
@@ -0,0 +1,64 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef MBED_PERIPHERALPINS_H
+#define MBED_PERIPHERALPINS_H
+
+#include "pinmap.h"
+#include "PeripheralNames.h"
+
+typedef struct {
+    PinName pin;
+    int function;
+    int pm;
+} PinFunc;
+
+/************IRQ***************/
+extern const PinMap PinMap_IRQ[];
+
+/************PINMAP***************/
+extern const PinFunc PIPC_0_tbl[];
+
+/************ADC***************/
+extern const PinMap PinMap_ADC[];
+
+/************DAC***************/
+extern const PinMap PinMap_DAC[];
+
+/************I2C***************/
+extern const PinMap PinMap_I2C_SDA[];
+extern const PinMap PinMap_I2C_SCL[];
+
+/************UART***************/
+extern const PinMap PinMap_UART_TX[];
+extern const PinMap PinMap_UART_RX[];
+extern const PinMap PinMap_UART_CTS[];
+extern const PinMap PinMap_UART_RTS[];
+
+/************SPI***************/
+extern const PinMap PinMap_SPI_SCLK[];
+extern const PinMap PinMap_SPI_MOSI[];
+extern const PinMap PinMap_SPI_MISO[];
+extern const PinMap PinMap_SPI_SSEL[];
+
+/************PWM***************/
+extern const PinMap PinMap_PWM[];
+
+/************CAN***************/
+extern const PinMap PinMap_CAN_RD[];
+extern const PinMap PinMap_CAN_TD[];
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PeripheralNames.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PeripheralNames.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PeripheralNames.h	(revision 429)
@@ -0,0 +1,109 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_PERIPHERALNAMES_H
+#define MBED_PERIPHERALNAMES_H
+
+#include "cmsis.h"
+#include "PinNames.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+    UART0,
+    UART1,
+    UART2,
+    UART3,
+    UART4,
+    UART5,
+    UART6,
+    UART7,
+} UARTName;
+
+typedef enum {
+    PWM_PWM1A  = 0,
+    PWM_PWM1B,
+    PWM_PWM1C,
+    PWM_PWM1D,
+    PWM_PWM1E,
+    PWM_PWM1F,
+    PWM_PWM1G,
+    PWM_PWM1H,
+    PWM_PWM2A,
+    PWM_PWM2B,
+    PWM_PWM2C,
+    PWM_PWM2D,
+    PWM_PWM2E,
+    PWM_PWM2F,
+    PWM_PWM2G,
+    PWM_PWM2H,
+    PWM_TIOC0A = 0x20,
+    PWM_TIOC0C,
+    PWM_TIOC1A,
+    PWM_TIOC2A,
+    PWM_TIOC3A,
+    PWM_TIOC3C,
+    PWM_TIOC4A,
+    PWM_TIOC4C,
+} PWMName;
+
+typedef enum {
+    AN0= 0,
+    AN1= 1,
+    AN2= 2,
+    AN3= 3,
+    AN4= 4,
+    AN5= 5,
+    AN6= 6,
+    AN7= 7,
+} ADCName;
+
+typedef enum {
+    SPI_0 = 0,
+    SPI_1,
+    SPI_2,
+    SPI_3,
+    SPI_4,
+} SPIName;
+
+typedef enum {
+    I2C_0 = 0,
+    I2C_1,
+    I2C_2,
+    I2C_3,
+} I2CName;
+
+typedef enum {
+    CAN_0 = 0,
+    CAN_1,
+    CAN_2,
+    CAN_3,
+    CAN_4,
+} CANName;
+
+
+#define STDIO_UART_TX     USBTX
+#define STDIO_UART_RX     USBRX
+#define STDIO_UART        UART2
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PeripheralPins.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PeripheralPins.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PeripheralPins.c	(revision 429)
@@ -0,0 +1,339 @@
+
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#include "PeripheralPins.h"
+
+/************IRQ***************/
+enum {
+    IRQ0,IRQ1,
+    IRQ2,IRQ3,
+    IRQ4,IRQ5,
+    IRQ6,IRQ7,
+} IRQNo;
+const PinMap PinMap_IRQ[] = {
+    {P1_0,  IRQ0, 4}, {P1_1,  IRQ1, 4}, {P1_2,  IRQ2, 4},
+    {P1_3,  IRQ3, 4}, {P1_4,  IRQ4, 4}, {P1_5,  IRQ5, 4},
+    {P1_6,  IRQ6, 4}, {P1_7,  IRQ7, 4}, {P1_8,  IRQ2, 3},
+    {P1_9,  IRQ3, 3}, {P1_10, IRQ4, 3}, {P1_11, IRQ5, 3}, // 11
+    {P2_0,  IRQ5, 6}, {P2_12, IRQ6, 6}, {P2_13, IRQ7, 8},
+    {P2_14, IRQ0, 8}, {P2_15, IRQ1, 8}, // 16
+    {P3_0,  IRQ2, 3}, {P3_1,  IRQ6, 3}, {P3_3,  IRQ4, 3},
+    {P3_9,  IRQ6, 8}, // 20
+    {P4_8,  IRQ0, 8}, {P4_9,  IRQ1, 8}, {P4_10, IRQ2, 8},
+    {P4_11, IRQ3, 8}, {P4_12, IRQ4, 8}, {P4_13, IRQ5, 8},
+    {P4_14, IRQ6, 8}, {P4_15, IRQ7, 8}, // 28
+    {P5_6,  IRQ6, 6}, {P5_8,  IRQ0, 2}, {P5_9,  IRQ2, 4}, // 31
+    {P6_0,  IRQ5, 6}, {P6_1,  IRQ4, 4}, {P6_2,  IRQ7, 4},
+    {P6_3,  IRQ2, 4}, {P6_4,  IRQ3, 4}, {P6_8,  IRQ0, 8},
+    {P6_9,  IRQ1, 8}, {P6_10, IRQ2, 8}, {P6_11, IRQ3, 8},
+    {P6_12, IRQ4, 8}, {P6_13, IRQ5, 8}, {P6_14, IRQ6, 8},
+    {P6_15, IRQ7, 8}, // 44
+    {P7_8,  IRQ1, 8}, {P7_9,  IRQ0, 8}, {P7_10, IRQ2, 8},
+    {P7_11, IRQ3, 8}, {P7_12, IRQ4, 8}, {P7_13, IRQ5, 8},
+    {P7_14, IRQ6, 8}, // 51
+    {P8_2,  IRQ0, 5}, {P8_3,  IRQ1, 6}, {P8_7,  IRQ5, 4},
+    {P9_1,  IRQ0, 4}, // 55
+    {P11_12,IRQ3, 3}, {P11_15,IRQ1, 3}, // 57
+    {NC,    NC,     0}
+};
+
+/************PINMAP***************/
+const PinFunc PIPC_0_tbl[] = {
+//   pin      func     pm
+    {P4_0   , 2      , -1}, /* TIOC0A */
+    {P5_0   , 6      , -1}, /* TIOC0A */
+    {P7_0   , 7      , -1}, /* TIOC0A */
+    {P10_4  , 2      , -1}, /* TIOC0A */
+    {P4_1   , 2      , -1}, /* TIOC0B */
+    {P5_1   , 6      , -1}, /* TIOC0B */
+    {P7_1   , 7      , -1}, /* TIOC0B */
+    {P10_5  , 2      , -1}, /* TIOC0B */
+    {P4_2   , 2      , -1}, /* TIOC0C */
+    {P5_5   , 6      , -1}, /* TIOC0C */
+    {P7_2   , 7      , -1}, /* TIOC0C */
+    {P10_6  , 2      , -1}, /* TIOC0C */
+    {P4_3   , 2      , -1}, /* TIOC0D */
+    {P5_7   , 6      , -1}, /* TIOC0D */
+    {P7_3   , 7      , -1}, /* TIOC0D */
+    {P10_7  , 2      , -1}, /* TIOC0D */
+    {P2_11  , 5      , -1}, /* TIOC1A */
+    {P6_0   , 5      , -1}, /* TIOC1A */
+    {P7_4   , 7      , -1}, /* TIOC1A */
+    {P8_8   , 5      , -1}, /* TIOC1A */
+    {P9_7   , 4      , -1}, /* TIOC1A */
+    {P10_8  , 2      , -1}, /* TIOC1A */
+    {P2_12  , 8      , -1}, /* TIOC1B */
+    {P5_2   , 6      , -1}, /* TIOC1B */
+    {P6_1   , 5      , -1}, /* TIOC1B */
+    {P7_5   , 7      , -1}, /* TIOC1B */
+    {P8_9   , 5      , -1}, /* TIOC1B */
+    {P10_9  , 2      , -1}, /* TIOC1B */
+    {P2_1   , 6      , -1}, /* TIOC2A */
+    {P6_2   , 6      , -1}, /* TIOC2A */
+    {P7_6   , 7      , -1}, /* TIOC2A */
+    {P8_14  , 4      , -1}, /* TIOC2A */
+    {P10_10 , 2      , -1}, /* TIOC2A */
+    {P2_2   , 6      , -1}, /* TIOC2B */
+    {P6_3   , 6      , -1}, /* TIOC2B */
+    {P7_7   , 7      , -1}, /* TIOC2B */
+    {P8_15  , 4      , -1}, /* TIOC2B */
+    {P10_11 , 2      , -1}, /* TIOC2B */
+    {P10_11 , 2      , -1}, /* TIOC2B */
+    {P3_4   , 6      , -1}, /* TIOC3A */
+    {P7_8   , 7      , -1}, /* TIOC3A */
+    {P8_10  , 4      , -1}, /* TIOC3A */
+    {P3_5   , 6      , -1}, /* TIOC3B */
+    {P7_9   , 7      , -1}, /* TIOC3B */
+    {P8_11  , 4      , -1}, /* TIOC3B */
+    {P3_6   , 6      , -1}, /* TIOC3C */
+    {P5_3   , 6      , -1}, /* TIOC3C */
+    {P7_10  , 7      , -1}, /* TIOC3C */
+    {P8_12  , 4      , -1}, /* TIOC3C */
+    {P3_7   , 6      , -1}, /* TIOC3D */
+    {P5_4   , 6      , -1}, /* TIOC3D */
+    {P7_11  , 7      , -1}, /* TIOC3D */
+    {P8_13  , 4      , -1}, /* TIOC3D */
+    {P3_8   , 6      , -1}, /* TIOC4A */
+    {P4_4   , 3      , -1}, /* TIOC4A */
+    {P7_12  , 7      , -1}, /* TIOC4A */
+    {P11_0  , 2      , -1}, /* TIOC4A */
+    {P3_9   , 6      , -1}, /* TIOC4B */
+    {P4_5   , 3      , -1}, /* TIOC4B */
+    {P7_13  , 7      , -1}, /* TIOC4B */
+    {P11_1  , 2      , -1}, /* TIOC4B */
+    {P3_10  , 6      , -1}, /* TIOC4C */
+    {P4_6   , 3      , -1}, /* TIOC4C */
+    {P7_14  , 7      , -1}, /* TIOC4C */
+    {P11_2  , 2      , -1}, /* TIOC4C */
+    {P3_11  , 6      , -1}, /* TIOC4D */
+    {P4_7   , 3      , -1}, /* TIOC4D */
+    {P7_15  , 7      , -1}, /* TIOC4D */
+    {P11_3  , 2      , -1}, /* TIOC4D */
+    {P5_7   , 1      , 1 }, /* TXOUT0M   */
+    {P5_6   , 1      , 1 }, /* TXOUT0P   */
+    {P5_5   , 1      , 1 }, /* TXOUT1M   */
+    {P5_4   , 1      , 1 }, /* TXOUT1P   */
+    {P5_3   , 1      , 1 }, /* TXOUT2M   */
+    {P5_2   , 1      , 1 }, /* TXOUT2P   */
+    {P5_1   , 1      , 1 }, /* TXCLKOUTM */
+    {P5_0   , 1      , 1 }, /* TXCLKOUTP */
+    {P2_11  , 4      , 0 }, /* SSITxD0 */
+    {P4_7   , 5      , 0 }, /* SSITxD0 */
+    {P7_4   , 6      , 0 }, /* SSITxD1 */
+    {P10_15 , 2      , 0 }, /* SSITxD1 */
+    {P4_15  , 6      , 0 }, /* SSITxD3 */
+    {P7_11  , 2      , 0 }, /* SSITxD3 */
+    {P2_7   , 4      , 0 }, /* SSITxD5 */
+    {P4_11  , 5      , 0 }, /* SSITxD5 */
+    {P8_10  , 8      , 0 }, /* SSITxD5 */
+    {P3_7   , 8      , 0 }, /* WDTOVF */
+    {NC     , 0      , -1}
+};
+
+/************ADC***************/
+const PinMap PinMap_ADC[] = {
+    {P1_8,  AN0, 1},
+    {P1_9,  AN1, 1},
+    {P1_10, AN2, 1},
+    {P1_11, AN3, 1},
+    {P1_12, AN4, 1},
+    {P1_13, AN5, 1},
+    {P1_14, AN6, 1},
+    {P1_15, AN7, 1},
+    {NC   , NC , 0}
+};
+
+/************I2C***************/
+const PinMap PinMap_I2C_SDA[] = {
+    {P1_1 , I2C_0, 1},
+    {P1_3 , I2C_1, 1},
+    {P1_7 , I2C_3, 1},
+    {NC   , NC   , 0}
+};
+
+const PinMap PinMap_I2C_SCL[] = {
+    {P1_0 , I2C_0, 1},
+    {P1_2 , I2C_1, 1},
+    {P1_6 , I2C_3, 1},
+    {NC   , NC   , 0}
+};
+
+/************UART***************/
+const PinMap PinMap_UART_TX[] = {
+    {P2_14 , UART0, 6},
+    {P2_5  , UART1, 6},
+    {P4_12 , UART1, 7},
+    {P6_3  , UART2, 7},
+    {P4_14 , UART2, 7},
+    {P5_3  , UART3, 5},
+    {P8_8  , UART3, 7},
+    {P5_0  , UART4, 5},
+    {P8_14 , UART4, 7},
+    {P8_13 , UART5, 5},
+    {P11_10, UART5, 3},
+    {P6_6  , UART5, 5},
+    {P5_6  , UART6, 5},
+    {P11_1 , UART6, 4},
+    {P7_4  , UART7, 4},
+    {NC    , NC   , 0}
+};
+
+const PinMap PinMap_UART_RX[] = {
+    {P2_15 , UART0, 6},
+    {P2_6  , UART1, 6},
+    {P4_13 , UART1, 7},
+    {P6_2  , UART2, 7},
+    {P4_15 , UART2, 7},
+    {P5_4  , UART3, 5},
+    {P8_9  , UART3, 7},
+    {P5_1  , UART4, 5},
+    {P8_15 , UART4, 7},
+    {P8_11 , UART5, 5},
+    {P11_11, UART5, 3},
+    {P6_7  , UART5, 5},
+    {P5_7  , UART6, 5},
+    {P11_2 , UART6, 4},
+    {P7_5  , UART7, 4},
+    {NC    , NC   , 0}
+};
+
+const PinMap PinMap_UART_CTS[] = {
+    {P2_3  , UART1, 6},
+    {P11_7 , UART5, 3},
+    {P7_6  , UART7, 4},
+    {NC    , NC   , 0}
+};
+
+const PinMap PinMap_UART_RTS[] = {
+    {P2_7  , UART1, 6},
+    {P11_8 , UART5, 3},
+    {P7_7  , UART7, 4},
+    {NC    , NC   , 0}
+};
+
+/************SPI***************/
+const PinMap PinMap_SPI_SCLK[] = {
+    {P10_12, SPI_0, 4},
+    {P4_4  , SPI_1, 2},
+    {P6_4  , SPI_1, 7},
+    {P11_12, SPI_1, 2},
+    {P8_3  , SPI_2, 3},
+    {P5_0  , SPI_3, 8},
+    {NC    , NC   , 0}
+};
+
+const PinMap PinMap_SPI_MOSI[] = {
+    {P10_14, SPI_0, 4},
+    {P4_6  , SPI_1, 2},
+    {P6_6  , SPI_1, 7},
+    {P11_14, SPI_1, 2},
+    {P8_5  , SPI_2, 3},
+    {P5_2  , SPI_3, 8},
+    {NC    , NC   , 0}
+};
+
+const PinMap PinMap_SPI_MISO[] = {
+    {P10_15, SPI_0, 4},
+    {P4_7  , SPI_1, 2},
+    {P6_7  , SPI_1, 7},
+    {P11_15, SPI_1, 2},
+    {P8_6  , SPI_2, 3},
+    {P5_3  , SPI_3, 8},
+    {NC    , NC   , 0}
+};
+
+const PinMap PinMap_SPI_SSEL[] = {
+    {P10_13, SPI_0, 4},
+    {P4_5  , SPI_1, 2},
+    {P6_5  , SPI_1, 7},
+    {P11_13, SPI_1, 2},
+    {P8_4  , SPI_2, 3},
+    {P5_1  , SPI_3, 8},
+    {NC    , NC   , 0}
+};
+
+/************PWM***************/
+const PinMap PinMap_PWM[] = {
+    {P2_1  , PWM_TIOC2A, 6},
+    {P2_11 , PWM_TIOC1A, 5},
+    {P3_8  , PWM_TIOC4A, 6},
+    {P3_10 , PWM_TIOC4C, 6},
+    {P4_0  , PWM_TIOC0A, 2},
+    {P4_4  , PWM_TIOC4A, 3},
+    {P4_6  , PWM_TIOC4C, 3},
+    {P5_0  , PWM_TIOC0A, 6},
+    {P5_5  , PWM_TIOC0C, 6},
+    {P7_2  , PWM_TIOC0C, 7},
+    {P7_4  , PWM_TIOC1A, 7},
+    {P7_6  , PWM_TIOC2A, 7},
+    {P7_12 , PWM_TIOC4A, 7},
+    {P7_14 , PWM_TIOC4C, 7},
+    {P8_8  , PWM_TIOC1A, 5},
+    {P8_14 , PWM_TIOC2A, 4},
+    {P11_0 , PWM_TIOC4A, 2},
+    {P11_2 , PWM_TIOC4C, 2},
+    {P4_4  , PWM_PWM2E , 4},
+    {P3_2  , PWM_PWM2C , 7},
+    {P4_6  , PWM_PWM2G , 4},
+    {P4_7  , PWM_PWM2H , 4},
+    {P8_14 , PWM_PWM1G , 6},
+    {P8_15 , PWM_PWM1H , 6},
+    {P8_13 , PWM_PWM1F , 6},
+    {P8_11 , PWM_PWM1D , 6},
+    {P8_8  , PWM_PWM1A , 6},
+    {P10_0 , PWM_PWM2A , 3},
+    {P8_12 , PWM_PWM1E , 6},
+    {P8_9  , PWM_PWM1B , 6},
+    {P8_10 , PWM_PWM1C , 6},
+    {P4_5  , PWM_PWM2F , 4},
+    {NC    , NC        , 0}
+};
+
+/************CAN***************/
+const PinMap PinMap_CAN_RD[] = {
+    {P7_8  , CAN_0, 4},
+    {P9_1  , CAN_0, 3},
+    {P1_4  , CAN_1, 3},
+    {P5_9  , CAN_1, 5},
+    {P7_11 , CAN_1, 4},
+    {P11_12, CAN_1, 1},
+    {P4_9  , CAN_2, 6},
+    {P6_4  , CAN_2, 3},
+    {P7_2  , CAN_2, 5},
+    {P2_12 , CAN_3, 5},
+    {P4_2  , CAN_3, 4},
+    {P1_5  , CAN_4, 3},
+    {P2_14 , CAN_4, 5},
+    {NC    , NC   , 0}
+};
+
+const PinMap PinMap_CAN_TD[] = {
+    {P7_9  , CAN_0, 4},
+    {P9_0  , CAN_0, 3},
+    {P5_10 , CAN_1, 5},
+    {P7_10 , CAN_1, 4},
+    {P11_13, CAN_1, 1},
+    {P4_8  , CAN_2, 6},
+    {P6_5  , CAN_2, 3},
+    {P7_3  , CAN_2, 5},
+    {P2_13 , CAN_3, 5},
+    {P4_3  , CAN_3, 4},
+    {P4_11 , CAN_4, 6},
+    {P8_10 , CAN_4, 5},
+    {NC    , NC   , 0}
+};
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PinNames.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PinNames.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PinNames.h	(revision 429)
@@ -0,0 +1,112 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_PINNAMES_H
+#define MBED_PINNAMES_H
+
+#include "cmsis.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+    PIN_INPUT,
+    PIN_OUTPUT
+} PinDirection;
+
+#define PORT_SHIFT  4
+
+typedef enum {
+    P0_0 = 0,
+          P0_1, P0_2, P0_3, P0_4, P0_5,_P0_6,_P0_7,_P0_8,_P0_9,_P0_10,_P0_11,_P0_12,_P0_13,_P0_14,_P0_15,
+    P1_0, P1_1, P1_2, P1_3, P1_4, P1_5, P1_6, P1_7, P1_8, P1_9, P1_10, P1_11, P1_12, P1_13, P1_14, P1_15, 
+    P2_0, P2_1, P2_2, P2_3, P2_4, P2_5, P2_6, P2_7, P2_8, P2_9, P2_10, P2_11, P2_12, P2_13, P2_14, P2_15, 
+    P3_0, P3_1, P3_2, P3_3, P3_4, P3_5, P3_6, P3_7, P3_8, P3_9, P3_10, P3_11, P3_12, P3_13, P3_14, P3_15, 
+    P4_0, P4_1, P4_2, P4_3, P4_4, P4_5, P4_6, P4_7, P4_8, P4_9, P4_10, P4_11, P4_12, P4_13, P4_14, P4_15, 
+    P5_0, P5_1, P5_2, P5_3, P5_4, P5_5, P5_6, P5_7, P5_8, P5_9, P5_10, P5_11, P5_12, P5_13, P5_14, P5_15, 
+    P6_0, P6_1, P6_2, P6_3, P6_4, P6_5, P6_6, P6_7, P6_8, P6_9, P6_10, P6_11, P6_12, P6_13, P6_14, P6_15, 
+    P7_0, P7_1, P7_2, P7_3, P7_4, P7_5, P7_6, P7_7, P7_8, P7_9, P7_10, P7_11, P7_12, P7_13, P7_14, P7_15, 
+    P8_0, P8_1, P8_2, P8_3, P8_4, P8_5, P8_6, P8_7, P8_8, P8_9, P8_10, P8_11, P8_12, P8_13, P8_14, P8_15, 
+    P9_0, P9_1, P9_2, P9_3, P9_4, P9_5, P9_6, P9_7, P9_8, P9_9, P9_10, P9_11, P9_12, P9_13, P9_14, P9_15, 
+    P10_0,P10_1,P10_2,P10_3,P10_4,P10_5,P10_6,P10_7,P10_8,P10_9,P10_10,P10_11,P10_12,P10_13,P10_14,P10_15,
+    P11_0,P11_1,P11_2,P11_3,P11_4,P11_5,P11_6,P11_7,P11_8,P11_9,P11_10,P11_11,P11_12,P11_13,P11_14,P11_15, 
+
+    // mbed Pin Names
+    LED1 = P6_13,
+    LED2 = P6_14,
+    LED3 = P6_15,
+    LED4 = P6_12,
+
+    LED_RED  = LED1,
+    LED_GREEN= LED2,
+    LED_BLUE = LED3,
+    LED_USER = LED4,
+
+    USBTX = P6_3,
+    USBRX = P6_2,
+
+    // Arduiono Pin Names
+    D0 = P2_15,
+    D1 = P2_14,
+    D2 = P4_7,
+    D3 = P4_6,
+    D4 = P4_5,
+    D5 = P4_4,
+    D6 = P8_13,
+    D7 = P8_11,
+    D8 = P8_15,
+    D9 = P8_14,
+    D10 = P10_13,
+    D11 = P10_14,
+    D12 = P10_15,
+    D13 = P10_12,
+    D14 = P1_3,
+    D15 = P1_2,
+
+    A0 = P1_8,
+    A1 = P1_9,
+    A2 = P1_10,
+    A3 = P1_11,
+    A4 = P1_13,
+    A5 = P1_15,
+
+    I2C_SCL = D15,
+    I2C_SDA = D14,
+
+    USER_BUTTON0 = P6_0,
+    // Standardized button names
+    BUTTON1 = USER_BUTTON0,
+
+    // Not connected
+    NC = (int)0xFFFFFFFF
+} PinName;
+
+typedef enum {
+    PullUp = 0,
+    PullDown = 3,
+    PullNone = 2,
+    OpenDrain = 4,
+    PullDefault = PullDown
+} PinMode;
+
+#define PINGROUP(pin) (((pin)>>PORT_SHIFT)&0x0f)
+#define PINNO(pin) ((pin)&0x0f)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PortNames.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PortNames.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/PortNames.h	(revision 429)
@@ -0,0 +1,41 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_PORTNAMES_H
+#define MBED_PORTNAMES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+    Port0 = 0,
+    Port1 = 1,
+    Port2 = 2,
+    Port3 = 3,
+    Port4 = 4,
+    Port5 = 5,
+    Port6 = 6,
+    Port7 = 7,
+    Port8 = 8,
+    Port9 = 9,
+    Port10 = 10,
+    Port11 = 11
+} PortName;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/TARGET_MBED_MBRZA1H/reserved_pins.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/TARGET_MBED_MBRZA1H/reserved_pins.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/TARGET_MBED_MBRZA1H/reserved_pins.h	(revision 429)
@@ -0,0 +1,22 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef RESERVED_PINS_H
+#define RESERVED_PINS_H
+
+#define TARGET_RESERVED_PINS {}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device.h	(revision 429)
@@ -0,0 +1,50 @@
+// The 'features' section in 'target.json' is now used to create the device's hardware preprocessor switches.
+// Check the 'features' section of the target description in 'targets.json' for more details.
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_DEVICE_H
+#define MBED_DEVICE_H
+
+/* ->Take measures about optimization problems of web compiler */
+   /* Web compiler has problem that inlining code may not be generated correctly */
+   /* when "-O3 -Otime" was specified. */
+#if defined(__CC_ARM) && (__ARMCC_VERSION <= 5040027)
+#pragma Ospace
+#endif
+/* <-Take measures about optimization problems of web compiler */
+
+
+
+
+
+
+#define TRANSACTION_QUEUE_SIZE_SPI 16
+
+
+
+
+
+#define DEVICE_ID_LENGTH            32
+#define DEVICE_MAC_OFFSET           20
+
+
+
+
+
+#include "objects.h"
+#include "hal/dma_api.h"
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/MBRZA1H.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/MBRZA1H.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/MBRZA1H.h	(revision 429)
@@ -0,0 +1,1 @@
+#include "RZ_A1H.h"
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/RZ_A1_Init.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/RZ_A1_Init.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/RZ_A1_Init.c	(revision 429)
@@ -0,0 +1,135 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/**************************************************************************//**
+* @file         RZ_A1_Init.c
+* $Rev: 624 $
+* $Date:: 2013-04-24 13:37:48 +0900#$
+* @brief        RZ_A1 Initialize
+******************************************************************************/
+
+/******************************************************************************
+Includes   <System Includes> , "Project Includes"
+******************************************************************************/
+#include "MBRZA1H.h"
+#include "RZ_A1_Init.h"
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+#define CS2_SDRAM_MODE_16BIT_CAS2_BR_BW (*(volatile uint16_t*)0x3FFFD040)
+#define CS3_SDRAM_MODE_16BIT_CAS2_BR_BW (*(volatile uint16_t*)0x3FFFE040)
+
+#define GPIO_PORT0_BOOTMODE_BITMASK (0x000fu)
+
+/******************************************************************************
+Imported global variables and functions (from other files)
+******************************************************************************/
+
+/******************************************************************************
+Exported global variables and functions (to be accessed by other files)
+******************************************************************************/
+
+/******************************************************************************
+Private global variables and functions
+******************************************************************************/
+
+/**************************************************************************//**
+* Function Name: RZ_A1_SetSramWriteEnable
+* @brief         Initialize Board settings
+*
+*                Description:<br>
+*                Set SRAM write enable
+* @param         none
+* @retval        none
+******************************************************************************/
+void RZ_A1_SetSramWriteEnable(void)
+{
+    /* Enable SRAM write access */
+    CPG.SYSCR3 = 0x0F;
+
+    return;
+}
+
+/**************************************************************************//**
+* Function Name: RZ_A1_InitClock
+* @brief         Initialize Board settings
+*
+*                Description:<br>
+*                Initialize Clock
+* @param         none
+* @retval        none
+******************************************************************************/
+void RZ_A1_InitClock(void)
+{
+    /* Cancel L2C standby status before clock change */
+    L2CREG15_POWER_CTRL = 0x00000001;
+
+    /* Clock settings */
+    /* ClockMode0 */
+    CPG.FRQCR  = 0x1035;    /* CPU Clock =399.99MHz */
+    CPG.FRQCR2 = 0x0001;    /* G Clock   =266.66MHz */
+
+    return;
+}
+
+/**************************************************************************//**
+* Function Name: RZ_A1_IsClockMode0
+* @brief         Query Clock Mode
+*
+*                Description:<br>
+*                Answer ClockMode0 or not
+* @param         none
+* @retval        true  : clock mode 0
+* @retval        false : clock mode 1
+******************************************************************************/
+int RZ_A1_IsClockMode0(void)
+{
+    /* ClockMode0 */
+    return true;
+}
+
+/**************************************************************************//**
+* Function Name: RZ_A1_InitBus
+* @brief         Initialize Bus
+*
+*                Description:<br>
+*                Initialize Pin Setting
+* @param         none
+* @retval        none
+******************************************************************************/
+void RZ_A1_InitBus(void)
+{
+    /*************************************************************************/
+    /* If need Pin Setting before run program, the setting will be wrote here*/
+    /*************************************************************************/
+
+    return;
+}
+
+/******************************************************************************
+End of file
+******************************************************************************/
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/TOOLCHAIN_GCC_ARM/RZA1H.ld
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/TOOLCHAIN_GCC_ARM/RZA1H.ld	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/TOOLCHAIN_GCC_ARM/RZA1H.ld	(revision 429)
@@ -0,0 +1,257 @@
+/* Linker script for mbed RZ_A1H */
+PROVIDE(hardware_init_hook = 0);
+PROVIDE(software_init_hook = 0);
+PROVIDE(software_term_hook = 0);
+PROVIDE(IRQTable = _kernel_inh_table);
+PROVIDE(IRQ_NestLevel = _kernel_excpt_nest_count);
+
+/* Linker script to configure memory regions. */
+MEMORY
+{
+  ROM   (rx)  : ORIGIN = 0x00000000, LENGTH = 0x02000000
+  BOOT_LOADER (rx) : ORIGIN = 0x18000000, LENGTH = 0x00004000 
+  SFLASH (rx) : ORIGIN = 0x18004000, LENGTH = 0x07FFC000 
+  L_TTB (rw)  : ORIGIN = 0x20000000, LENGTH = 0x00004000 
+  RAM (rw) : ORIGIN = 0x20004000, LENGTH = 0x000FC000
+  RAM_CMD (rwx) : ORIGIN = 0x20100000, LENGTH = 0x00800000
+  RAM_NC (rw) : ORIGIN = 0x20900000, LENGTH = 0x00100000
+}
+
+/* Linker script to place sections and symbol values. Should be used together
+ * with other linker script that defines memory regions FLASH and RAM.
+ * It references following symbols, which must be defined in code:
+ *   Reset_Handler : Entry of reset handler
+ * 
+ * It defines following symbols, which code can use without definition:
+ *   __exidx_start
+ *   __exidx_end
+ *   __etext
+ *   __data_start__
+ *   __preinit_array_start
+ *   __preinit_array_end
+ *   __init_array_start
+ *   __init_array_end
+ *   __fini_array_start
+ *   __fini_array_end
+ *   __data_end__
+ *   __bss_start__
+ *   __bss_end__
+ *   __end__
+ *   end
+ *   __HeapLimit
+ *   __StackLimit
+ *   __StackTop
+ *   __stack
+ */
+ENTRY(Reset_Handler)
+
+SECTIONS
+{
+    .boot :
+    {
+        KEEP(*(.boot_loader)) 
+    } > BOOT_LOADER 
+
+    .text :
+    {
+
+        Image$$VECTORS$$Base = .;
+        * (RESET)
+
+        KEEP(*(.isr_vector))
+        *(SVC_TABLE)
+        *(.text*)
+
+        KEEP(*(.init))
+        KEEP(*(.fini))
+
+        /* .ctors */
+        *crtbegin.o(.ctors)
+        *crtbegin?.o(.ctors)
+        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
+        *(SORT(.ctors.*))
+        *(.ctors)
+
+        /* .dtors */
+        *crtbegin.o(.dtors)
+        *crtbegin?.o(.dtors)
+        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
+        *(SORT(.dtors.*))
+        *(.dtors)
+        Image$$VECTORS$$Limit = .;
+
+        Image$$RO_DATA$$Base = .;
+        *(.rodata*)
+        Image$$RO_DATA$$Limit = .;
+
+        KEEP(*(.eh_frame*))
+    } > SFLASH
+
+    .ARM.extab : 
+    {
+        *(.ARM.extab* .gnu.linkonce.armextab.*)
+    } > SFLASH
+
+    __exidx_start = .;
+    .ARM.exidx :
+    {
+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+    } > SFLASH
+    __exidx_end = .;
+
+
+    .copy.table :
+    {
+        . = ALIGN(4);
+        __copy_table_start__ = .;
+        LONG (__etext)
+        LONG (__data_start__)
+        LONG (__data_end__ - __data_start__)
+        LONG (__etext2)
+        LONG (__nc_data_start)
+        LONG (__nc_data_end - __nc_data_start)
+        LONG (LOADADDR(.ram_code))
+        LONG (ADDR(.ram_code))
+        LONG (SIZEOF(.ram_code))
+        __copy_table_end__ = .;
+    } > SFLASH
+
+    .zero.table :
+    {
+        . = ALIGN(4);
+        __zero_table_start__ = .;
+        LONG (__bss_start__)
+        LONG (__bss_end__ - __bss_start__)
+        LONG (__nc_bss_start)
+        LONG (__nc_bss_end - __nc_bss_start)
+        __zero_table_end__ = .;
+    } > SFLASH
+
+    .ram_code : ALIGN( 0x4 ) {
+        __ram_code_load  = .;
+        __ram_code_start = LOADADDR(.ram_code) + ( __ram_code_load - ADDR(.ram_code) );
+
+        *(RAM_CODE)
+
+        *(RAM_CONST)
+
+        . = ALIGN( 0x4 );
+        __ram_code_end = LOADADDR(.ram_code) + ( . - ADDR(.ram_code) );
+    } > RAM AT > SFLASH
+
+    Load$$SEC_RAM_CODE$$Base    = LOADADDR(.ram_code);
+    Image$$SEC_RAM_CODE$$Base   = ADDR(.ram_code);
+    Load$$SEC_RAM_CODE$$Length  = SIZEOF(.ram_code);
+
+    .ttb :
+    {
+        Image$$TTB$$ZI$$Base = .;
+        . += 0x00004000;
+        Image$$TTB$$ZI$$Limit = .;
+    } > L_TTB
+
+    __etext = Load$$SEC_RAM_CODE$$Base + SIZEOF(.ram_code);
+
+    .data : AT (__etext)
+    {
+        Image$$RW_DATA$$Base = .;
+        __data_start__ = .;
+        *(vtable)
+        *(.data*)
+        Image$$RW_DATA$$Limit = .;
+
+        . = ALIGN(4);
+        /* preinit data */
+        PROVIDE (__preinit_array_start = .);
+        KEEP(*(.preinit_array))
+        PROVIDE (__preinit_array_end = .);
+
+        . = ALIGN(4);
+        /* init data */
+        PROVIDE (__init_array_start = .);
+        KEEP(*(SORT(.init_array.*)))
+        KEEP(*(.init_array))
+        PROVIDE (__init_array_end = .);
+
+        . = ALIGN(4);
+        /* finit data */
+        PROVIDE (__fini_array_start = .);
+        KEEP(*(SORT(.fini_array.*)))
+        KEEP(*(.fini_array))
+        PROVIDE (__fini_array_end = .);
+
+        . = ALIGN(4);
+        /* All data end */
+        __data_end__ = .;
+
+    } > RAM
+
+    .bss ALIGN(0x10):
+    {
+        Image$$RW_IRAM1$$Base = .;
+        __bss_start__ = .;
+        *(.bss*)
+        *(COMMON)
+        __bss_end__ = .;
+        Image$$RW_IRAM1$$Limit = .;
+    } > RAM
+
+    /* .stack_dummy section doesn't contains any symbols. It is only
+     * used for linker to calculate size of stack sections, and assign
+     * values to stack symbols later */
+    .stack_dummy (COPY):
+    {
+        *(.stack*)
+    } > RAM
+
+    .heap :
+    {
+        __end__ = .;
+        end = __end__;
+        *(.heap*)
+        __HeapLimit = .;
+    } > RAM
+
+    .cmd_area :
+    {
+        __CmdBase = .;
+        Image$$CMD_AREA$$Base = .;
+        . = . + LENGTH(RAM_CMD);
+        __CmdLimit = .;
+        Image$$CMD_AREA$$Limit = .;
+    } > RAM_CMD
+
+    __etext2 = __etext + SIZEOF(.data);
+    .nc_data : AT (__etext2)
+    {
+        Image$$RW_DATA_NC$$Base = .;
+        __nc_data_start = .;
+        *(NC_DATA)
+
+        . = ALIGN(4);
+        __nc_data_end = .;
+        Image$$RW_DATA_NC$$Limit = .;
+    } > RAM_NC
+
+    .nc_bss (NOLOAD) :
+    {
+        Image$$ZI_DATA_NC$$Base = .;
+        __nc_bss_start = .;
+        *(NC_BSS)
+
+        . = ALIGN(4);
+        __nc_bss_end = .;
+        Image$$ZI_DATA_NC$$Limit = .;
+    } > RAM_NC
+
+    /* Set stack top to end of RAM, and stack limit move down by
+     * size of stack_dummy section */
+    __StackTop = ORIGIN(RAM) + LENGTH(RAM);
+    _estack = __StackTop;
+    __StackLimit = __StackTop - SIZEOF(.stack_dummy);
+    __HeapLimit = __StackLimit;
+    PROVIDE(__stack = __StackTop);
+
+    /* Check if data + heap + stack exceeds RAM limit */
+    ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/TOOLCHAIN_GCC_ARM/startup_RZ1AH.S
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/TOOLCHAIN_GCC_ARM/startup_RZ1AH.S	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/TOOLCHAIN_GCC_ARM/startup_RZ1AH.S	(revision 429)
@@ -0,0 +1,253 @@
+/* File: startup_ARMCM3.s
+ * Purpose: startup file for Cortex-M3/M4 devices. Should use with 
+ *   GNU Tools for ARM Embedded Processors
+ * Version: V1.1
+ * Date: 17 June 2011
+ * 
+ * Copyright (C) 2011 ARM Limited. All rights reserved.
+ * ARM Limited (ARM) is supplying this software for use with Cortex-M3/M4 
+ * processor based microcontrollers.  This file can be freely distributed 
+ * within development tools that are supporting such ARM based processors. 
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
+ * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
+ * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
+ * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
+ */
+    .syntax unified
+    .extern _start
+ 
+@ Standard definitions of mode bits and interrupt (I & F) flags in PSRs
+    .equ    Mode_USR        ,   0x10
+    .equ    Mode_FIQ        ,   0x11
+    .equ    Mode_IRQ        ,   0x12
+    .equ    Mode_SVC        ,   0x13
+    .equ    Mode_ABT        ,   0x17
+    .equ    Mode_UND        ,   0x1B
+    .equ    Mode_SYS        ,   0x1F
+
+    .equ    I_Bit           ,   0x80            @ when I bit is set, IRQ is disabled 
+    .equ    F_Bit           ,   0x40            @ when F bit is set, FIQ is disabled 
+    .equ    T_Bit           ,   0x20            @ when T bit is set, core is in Thumb state 
+
+@ Stack Configuration
+
+    .EQU    UND_Stack_Size  , 0x00000100
+    .EQU    SVC_Stack_Size  , 0x00008000
+    .EQU    ABT_Stack_Size  , 0x00000100
+    .EQU    FIQ_Stack_Size  , 0x00000100
+    .EQU    IRQ_Stack_Size  , 0x00008000
+    .EQU    USR_Stack_Size  , 0x00004000
+
+    .EQU    ISR_Stack_Size, (UND_Stack_Size + SVC_Stack_Size + ABT_Stack_Size + FIQ_Stack_Size + IRQ_Stack_Size)
+
+    .section .stack
+    .align 3
+    .globl    __StackTop
+    .globl    __StackLimit
+__StackLimit:
+    .space    ISR_Stack_Size
+__initial_sp:
+    .space    USR_Stack_Size
+    .size __StackLimit, . - __StackLimit
+__StackTop:
+    .size __StackTop, . - __StackTop
+
+
+@ Heap Configuration
+
+    .EQU    Heap_Size       , 0x00080000
+
+    .section .heap
+    .align 3
+    .globl    __HeapBase
+    .globl    __HeapLimit
+__HeapBase:
+    .space    Heap_Size
+    .size __HeapBase, . - __HeapBase
+__HeapLimit:
+    .size __HeapLimit, . - __HeapLimit
+
+
+    .section .isr_vector
+    .align 2
+    .globl __isr_vector
+__isr_vector:
+    .long   0xe59ff018 /* 0x00 */
+    .long   0xe59ff018 /* 0x04 */
+    .long   0xe59ff018 /* 0x08 */
+    .long   0xe59ff018 /* 0x0c */
+    .long   0xe59ff018 /* 0x10 */
+    .long   0xe59ff018 /* 0x14 */
+    .long   0xe59ff018 /* 0x18 */
+    .long   0xe59ff018 /* 0x1c */
+
+    .long   Reset_Handler         /* 0x20 */
+    .long   _kernel_undef_handler  /* 0x24 */
+    .long   _kernel_svc_handler    /* 0x28 */
+    .long   _kernel_pabort_handler /* 0x2c */
+    .long   _kernel_dabort_handler /* 0x30 */
+    .long   0                     /* Reserved */
+    .long   _kernel_irq_handler    /* IRQ */
+    .long   _kernel_fiq_handler    /* FIQ */
+
+
+    .size    __isr_vector, . - __isr_vector
+
+    .text
+    .align 2
+    .globl          Reset_Handler
+    .type          Reset_Handler, %function
+Reset_Handler:
+    @ Mask interrupts
+    CPSID   if                           
+
+    @ Put any cores other than 0 to sleep
+    mrc     p15, 0, r0, c0, c0, 5   @ Read MPIDR
+    ands    r0, r0, #3
+goToSleep:
+    wfine
+    bne     goToSleep
+
+    @ Reset SCTLR Settings
+    mrc     p15, 0, r0, c1, c0, 0       @ Read CP15 System Control register 
+    bic     r0, r0, #(0x1 << 12)        @ Clear I bit 12 to disable I Cache 
+    bic     r0, r0, #(0x1 <<  2)        @ Clear C bit  2 to disable D Cache 
+    bic     r0, r0, #0x1                @ Clear M bit  0 to disable MMU 
+    bic     r0, r0, #(0x1 << 11)        @ Clear Z bit 11 to disable branch prediction 
+    bic     r0, r0, #(0x1 << 13)        @ Clear V bit 13 to disable hivecs 
+    mcr     p15, 0, r0, c1, c0, 0       @ Write value back to CP15 System Control register 
+    isb
+
+    @ Configure ACTLR
+    MRC     p15, 0, r0, c1, c0, 1       @ Read CP15 Auxiliary Control Register
+    ORR     r0, r0, #(1 <<  1)          @ Enable L2 prefetch hint (UNK/WI since r4p1)
+    MCR     p15, 0, r0, c1, c0, 1       @ Write CP15 Auxiliary Control Register
+
+@ Set Vector Base Address Register (VBAR) to point to this application's vector table
+    ldr     r0, =__isr_vector
+    mcr     p15, 0, r0, c12, c0, 0
+ 
+@ Setup Stack for each exceptional mode 
+/*    ldr     r0, =__StackTop  */
+    ldr     r0, =(__StackTop - USR_Stack_Size)
+
+@ Enter Undefined Instruction Mode and set its Stack Pointer 
+    msr     cpsr_c, #(Mode_UND | I_Bit | F_Bit)
+    mov     sp, r0
+    sub     r0, r0, #UND_Stack_Size
+
+@ Enter Abort Mode and set its Stack Pointer 
+    msr     cpsr_c, #(Mode_ABT | I_Bit | F_Bit)
+    mov     sp, r0 
+    sub     r0, r0, #ABT_Stack_Size
+
+@ Enter FIQ Mode and set its Stack Pointer 
+    msr     cpsr_c, #(Mode_FIQ | I_Bit | F_Bit)
+    mov     sp, r0 
+    sub     r0, r0, #FIQ_Stack_Size
+
+@ Enter IRQ Mode and set its Stack Pointer 
+    msr     cpsr_c, #(Mode_IRQ | I_Bit | F_Bit)
+    mov     sp, r0 
+    sub     r0, r0, #IRQ_Stack_Size
+
+@ Enter Supervisor Mode and set its Stack Pointer 
+    msr     cpsr_c, #(Mode_SVC | I_Bit | F_Bit)
+    mov     sp, r0 
+    sub     r0, r0, #SVC_Stack_Size
+
+@ Enter System Mode to complete initialization and enter kernel 
+    msr     cpsr_c, #(Mode_SYS | I_Bit | F_Bit)
+    mov     sp, r0 
+
+@  USR/SYS stack pointer will be set during kernel init
+    ldr     r0, =SystemInit
+    blx     r0
+
+    @ Unmask interrupts
+    CPSIE  if
+
+@ data sections copy
+    ldr     r4, =__copy_table_start__
+    ldr     r5, =__copy_table_end__
+
+.L_loop0:
+    cmp     r4, r5
+    bge     .L_loop0_done
+    ldr     r1, [r4]
+    ldr     r2, [r4, #4]
+    ldr     r3, [r4, #8]
+
+.L_loop0_0:
+    subs    r3, #4
+    ittt    ge
+    ldrge   r0, [r1, r3]
+    strge   r0, [r2, r3]
+    bge     .L_loop0_0
+
+    adds    r4, #12
+    b       .L_loop0
+
+.L_loop0_done:
+
+@ bss sections clear
+    ldr     r3, =__zero_table_start__
+    ldr     r4, =__zero_table_end__
+
+.L_loop2:
+    cmp     r3, r4
+    bge     .L_loop2_done
+    ldr     r1, [r3]
+    ldr     r2, [r3, #4]
+    movs    r0, 0
+
+.L_loop2_0:
+    subs    r2, #4
+    itt     ge
+    strge   r0, [r1, r2]
+    bge     .L_loop2_0
+
+    adds    r3, #8
+    b       .L_loop2
+.L_loop2_done:
+
+
+    ldr     r0, =_start
+    bx      r0
+
+    ldr     r0, sf_boot     @ dummy to keep boot loader area
+loop_here:
+    b       loop_here
+
+sf_boot: 
+    .word   boot_loader
+
+    .pool
+    .size Reset_Handler, . - Reset_Handler
+
+
+    .text
+
+/*    Macro to define default handlers. Default handler
+ *    will be weak symbol and just dead loops. They can be
+ *    overwritten by other handlers */
+                .macro    def_default_handler    handler_name
+                .align 1
+                .thumb_func
+                .weak    \handler_name
+                .type    \handler_name, %function
+\handler_name :
+                b    .
+                .size    \handler_name, . - \handler_name
+                .endm
+
+                def_default_handler    Undef_Handler
+                def_default_handler    SVC_Handler
+                def_default_handler    PAbt_Handler
+                def_default_handler    DAbt_Handler
+                def_default_handler    IRQ_Handler
+                def_default_handler    FIQ_Handler
+
+                .END
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/cmsis.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/cmsis.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/cmsis.h	(revision 429)
@@ -0,0 +1,13 @@
+/* mbed Microcontroller Library - CMSIS
+ * Copyright (C) 2009-2011 ARM Limited. All rights reserved.
+ *
+ * A generic CMSIS include header, pulling in LPC1768 specifics
+ */
+
+#ifndef MBED_CMSIS_H
+#define MBED_CMSIS_H
+
+#include "MBRZA1H.h"
+#include "cmsis_nvic.h"
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/RZ_A1H.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/RZ_A1H.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/RZ_A1H.h	(revision 429)
@@ -0,0 +1,922 @@
+/******************************************************************************
+ * @file     RZ_A1H.h
+ * @brief    CMSIS Cortex-A9 Core Peripheral Access Layer Header File 
+ * @version  V1.00
+ * @data     10 Mar 2017
+ *
+ * @note
+ *
+ ******************************************************************************/
+/*
+ * Copyright (c) 2013-2014 Renesas Electronics Corporation. All rights reserved.
+ * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __RZ_A1H_H__
+#define __RZ_A1H_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* -------------------------  Interrupt Number Definition  ------------------------ */
+
+typedef enum IRQn
+{
+/******  SGI Interrupts Numbers                 ****************************************/
+  SGI0_IRQn            =  0,
+  SGI1_IRQn            =  1,
+  SGI2_IRQn            =  2,
+  SGI3_IRQn            =  3,
+  SGI4_IRQn            =  4,
+  SGI5_IRQn            =  5,
+  SGI6_IRQn            =  6,
+  SGI7_IRQn            =  7,
+  SGI8_IRQn            =  8,
+  SGI9_IRQn            =  9,
+  SGI10_IRQn           = 10,
+  SGI11_IRQn           = 11,
+  SGI12_IRQn           = 12,
+  SGI13_IRQn           = 13,
+  SGI14_IRQn           = 14,
+  SGI15_IRQn           = 15,
+
+/******  Cortex-A9 Processor Exceptions Numbers ****************************************/
+  /* 16 - 578 */
+  PMUIRQ0_IRQn         = 16,
+  COMMRX0_IRQn         = 17,
+  COMMTX0_IRQn         = 18,
+  CTIIRQ0_IRQn         = 19,
+
+  IRQ0_IRQn            = 32,
+  IRQ1_IRQn            = 33,
+  IRQ2_IRQn            = 34,
+  IRQ3_IRQn            = 35,
+  IRQ4_IRQn            = 36,
+  IRQ5_IRQn            = 37,
+  IRQ6_IRQn            = 38,
+  IRQ7_IRQn            = 39,
+
+  PL310ERR_IRQn        = 40,
+
+  DMAINT0_IRQn         = 41,        /*!< DMAC Interrupt         */
+  DMAINT1_IRQn         = 42,        /*!< DMAC Interrupt         */
+  DMAINT2_IRQn         = 43,        /*!< DMAC Interrupt         */
+  DMAINT3_IRQn         = 44,        /*!< DMAC Interrupt         */
+  DMAINT4_IRQn         = 45,        /*!< DMAC Interrupt         */
+  DMAINT5_IRQn         = 46,        /*!< DMAC Interrupt         */
+  DMAINT6_IRQn         = 47,        /*!< DMAC Interrupt         */
+  DMAINT7_IRQn         = 48,        /*!< DMAC Interrupt         */
+  DMAINT8_IRQn         = 49,        /*!< DMAC Interrupt         */
+  DMAINT9_IRQn         = 50,        /*!< DMAC Interrupt         */
+  DMAINT10_IRQn        = 51,        /*!< DMAC Interrupt         */
+  DMAINT11_IRQn        = 52,        /*!< DMAC Interrupt         */
+  DMAINT12_IRQn        = 53,        /*!< DMAC Interrupt         */
+  DMAINT13_IRQn        = 54,        /*!< DMAC Interrupt         */
+  DMAINT14_IRQn        = 55,        /*!< DMAC Interrupt         */
+  DMAINT15_IRQn        = 56,        /*!< DMAC Interrupt         */
+  DMAERR_IRQn          = 57,        /*!< DMAC Interrupt         */
+
+  /* 58-72 Reserved */
+
+  USBI0_IRQn           = 73,
+  USBI1_IRQn           = 74,
+
+  S0_VI_VSYNC0_IRQn    = 75,
+  S0_LO_VSYNC0_IRQn    = 76,
+  S0_VSYNCERR0_IRQn    = 77,
+  GR3_VLINE0_IRQn      = 78,
+  S0_VFIELD0_IRQn      = 79,
+  IV1_VBUFERR0_IRQn    = 80,
+  IV3_VBUFERR0_IRQn    = 81,
+  IV5_VBUFERR0_IRQn    = 82,
+  IV6_VBUFERR0_IRQn    = 83,
+  S0_WLINE0_IRQn       = 84,
+  S1_VI_VSYNC0_IRQn    = 85,
+  S1_LO_VSYNC0_IRQn    = 86,
+  S1_VSYNCERR0_IRQn    = 87,
+  S1_VFIELD0_IRQn      = 88,
+  IV2_VBUFERR0_IRQn    = 89,
+  IV4_VBUFERR0_IRQn    = 90,
+  S1_WLINE0_IRQn       = 91,
+  OIR_VI_VSYNC0_IRQn   = 92,
+  OIR_LO_VSYNC0_IRQn   = 93,
+  OIR_VSYNCERR0_IRQn   = 94,
+  OIR_VFIELD0_IRQn     = 95,
+  IV7_VBUFERR0_IRQn    = 96,
+  IV8_VBUFERR0_IRQn    = 97,
+  /* 98 Reserved */
+  S0_VI_VSYNC1_IRQn    = 99,
+  S0_LO_VSYNC1_IRQn    = 100,
+  S0_VSYNCERR1_IRQn    = 101,
+  GR3_VLINE1_IRQn      = 102,
+  S0_VFIELD1_IRQn      = 103,
+  IV1_VBUFERR1_IRQn    = 104,
+  IV3_VBUFERR1_IRQn    = 105,
+  IV5_VBUFERR1_IRQn    = 106,
+  IV6_VBUFERR1_IRQn    = 107,
+  S0_WLINE1_IRQn       = 108,
+  S1_VI_VSYNC1_IRQn    = 109,
+  S1_LO_VSYNC1_IRQn    = 110,
+  S1_VSYNCERR1_IRQn    = 111,
+  S1_VFIELD1_IRQn      = 112,
+  IV2_VBUFERR1_IRQn    = 113,
+  IV4_VBUFERR1_IRQn    = 114,
+  S1_WLINE1_IRQn       = 115,
+  OIR_VI_VSYNC1_IRQn   = 116,
+  OIR_LO_VSYNC1_IRQn   = 117,
+  OIR_VSYNCERR1_IRQn   = 118,
+  OIR_VFIELD1_IRQn     = 119,
+  IV7_VBUFERR1_IRQn    = 120,
+  IV8_VBUFERR1_IRQn    = 121,
+  /* Reserved = 122 */
+
+  IMRDI_IRQn           = 123,
+  IMR2I0_IRQn          = 124,
+  IMR2I1_IRQn          = 125,
+
+  JEDI_IRQn            = 126,
+  JDTI_IRQn            = 127,
+
+  CMP0_IRQn            = 128,
+  CMP1_IRQn            = 129,
+
+  INT0_IRQn            = 130,
+  INT1_IRQn            = 131,
+  INT2_IRQn            = 132,
+  INT3_IRQn            = 133,
+
+  OSTMI0TINT_IRQn      = 134,       /*!< OSTM Interrupt         */
+  OSTMI1TINT_IRQn      = 135,       /*!< OSTM Interrupt         */
+
+  CMI_IRQn             = 136,
+  WTOUT_IRQn           = 137,
+
+  ITI_IRQn             = 138,
+
+  TGI0A_IRQn           = 139,
+  TGI0B_IRQn           = 140,
+  TGI0C_IRQn           = 141,
+  TGI0D_IRQn           = 142,
+  TGI0V_IRQn           = 143,
+  TGI0E_IRQn           = 144,
+  TGI0F_IRQn           = 145,
+  TGI1A_IRQn           = 146,
+  TGI1B_IRQn           = 147,
+  TGI1V_IRQn           = 148,
+  TGI1U_IRQn           = 149,
+  TGI2A_IRQn           = 150,
+  TGI2B_IRQn           = 151,
+  TGI2V_IRQn           = 152,
+  TGI2U_IRQn           = 153,
+  TGI3A_IRQn           = 154,
+  TGI3B_IRQn           = 155,
+  TGI3C_IRQn           = 156,
+  TGI3D_IRQn           = 157,
+  TGI3V_IRQn           = 158,
+  TGI4A_IRQn           = 159,
+  TGI4B_IRQn           = 160,
+  TGI4C_IRQn           = 161,
+  TGI4D_IRQn           = 162,
+  TGI4V_IRQn           = 163,
+
+  CMI1_IRQn            = 164,
+  CMI2_IRQn            = 165,
+
+  SGDEI0_IRQn          = 166,
+  SGDEI1_IRQn          = 167,
+  SGDEI2_IRQn          = 168,
+  SGDEI3_IRQn          = 169,
+
+  ADI_IRQn             = 170,
+  LMTI_IRQn            = 171,
+
+  SSII0_IRQn           = 172,       /*!< SSIF Interrupt         */
+  SSIRXI0_IRQn         = 173,       /*!< SSIF Interrupt         */
+  SSITXI0_IRQn         = 174,       /*!< SSIF Interrupt         */
+  SSII1_IRQn           = 175,       /*!< SSIF Interrupt         */
+  SSIRXI1_IRQn         = 176,       /*!< SSIF Interrupt         */
+  SSITXI1_IRQn         = 177,       /*!< SSIF Interrupt         */
+  SSII2_IRQn           = 178,       /*!< SSIF Interrupt         */
+  SSIRTI2_IRQn         = 179,       /*!< SSIF Interrupt         */
+  SSII3_IRQn           = 180,       /*!< SSIF Interrupt         */
+  SSIRXI3_IRQn         = 181,       /*!< SSIF Interrupt         */
+  SSITXI3_IRQn         = 182,       /*!< SSIF Interrupt         */
+  SSII4_IRQn           = 183,       /*!< SSIF Interrupt         */
+  SSIRTI4_IRQn         = 184,       /*!< SSIF Interrupt         */
+  SSII5_IRQn           = 185,       /*!< SSIF Interrupt         */
+  SSIRXI5_IRQn         = 186,       /*!< SSIF Interrupt         */
+  SSITXI5_IRQn         = 187,       /*!< SSIF Interrupt         */
+
+  SPDIFI_IRQn          = 188,
+
+  INTIICTEI0_IRQn      = 189,       /*!< RIIC Interrupt         */
+  INTIICRI0_IRQn       = 190,       /*!< RIIC Interrupt         */
+  INTIICTI0_IRQn       = 191,       /*!< RIIC Interrupt         */
+  INTIICSPI0_IRQn      = 192,       /*!< RIIC Interrupt         */
+  INTIICSTI0_IRQn      = 193,       /*!< RIIC Interrupt         */
+  INTIICNAKI0_IRQn     = 194,       /*!< RIIC Interrupt         */
+  INTIICALI0_IRQn      = 195,       /*!< RIIC Interrupt         */
+  INTIICTMOI0_IRQn     = 196,       /*!< RIIC Interrupt         */
+  INTIICTEI1_IRQn      = 197,       /*!< RIIC Interrupt         */
+  INTIICRI1_IRQn       = 198,       /*!< RIIC Interrupt         */
+  INTIICTI1_IRQn       = 199,       /*!< RIIC Interrupt         */
+  INTIICSPI1_IRQn      = 200,       /*!< RIIC Interrupt         */
+  INTIICSTI1_IRQn      = 201,       /*!< RIIC Interrupt         */
+  INTIICNAKI1_IRQn     = 202,       /*!< RIIC Interrupt         */
+  INTIICALI1_IRQn      = 203,       /*!< RIIC Interrupt         */
+  INTIICTMOI1_IRQn     = 204,       /*!< RIIC Interrupt         */
+  INTIICTEI2_IRQn      = 205,       /*!< RIIC Interrupt         */
+  INTIICRI2_IRQn       = 206,       /*!< RIIC Interrupt         */
+  INTIICTI2_IRQn       = 207,       /*!< RIIC Interrupt         */
+  INTIICSPI2_IRQn      = 208,       /*!< RIIC Interrupt         */
+  INTIICSTI2_IRQn      = 209,       /*!< RIIC Interrupt         */
+  INTIICNAKI2_IRQn     = 210,       /*!< RIIC Interrupt         */
+  INTIICALI2_IRQn      = 211,       /*!< RIIC Interrupt         */
+  INTIICTMOI2_IRQn     = 212,       /*!< RIIC Interrupt         */
+  INTIICTEI3_IRQn      = 213,       /*!< RIIC Interrupt         */
+  INTIICRI3_IRQn       = 214,       /*!< RIIC Interrupt         */
+  INTIICTI3_IRQn       = 215,       /*!< RIIC Interrupt         */
+  INTIICSPI3_IRQn      = 216,       /*!< RIIC Interrupt         */
+  INTIICSTI3_IRQn      = 217,       /*!< RIIC Interrupt         */
+  INTIICNAKI3_IRQn     = 218,       /*!< RIIC Interrupt         */
+  INTIICALI3_IRQn      = 219,       /*!< RIIC Interrupt         */
+  INTIICTMOI3_IRQn     = 220,       /*!< RIIC Interrupt         */
+
+  SCIFBRI0_IRQn        = 221,       /*!< SCIF Interrupt         */
+  SCIFERI0_IRQn        = 222,       /*!< SCIF Interrupt         */
+  SCIFRXI0_IRQn        = 223,       /*!< SCIF Interrupt         */
+  SCIFTXI0_IRQn        = 224,       /*!< SCIF Interrupt         */
+  SCIFBRI1_IRQn        = 225,       /*!< SCIF Interrupt         */
+  SCIFERI1_IRQn        = 226,       /*!< SCIF Interrupt         */
+  SCIFRXI1_IRQn        = 227,       /*!< SCIF Interrupt         */
+  SCIFTXI1_IRQn        = 228,       /*!< SCIF Interrupt         */
+  SCIFBRI2_IRQn        = 229,       /*!< SCIF Interrupt         */
+  SCIFERI2_IRQn        = 230,       /*!< SCIF Interrupt         */
+  SCIFRXI2_IRQn        = 231,       /*!< SCIF Interrupt         */
+  SCIFTXI2_IRQn        = 232,       /*!< SCIF Interrupt         */
+  SCIFBRI3_IRQn        = 233,       /*!< SCIF Interrupt         */
+  SCIFERI3_IRQn        = 234,       /*!< SCIF Interrupt         */
+  SCIFRXI3_IRQn        = 235,       /*!< SCIF Interrupt         */
+  SCIFTXI3_IRQn        = 236,       /*!< SCIF Interrupt         */
+  SCIFBRI4_IRQn        = 237,       /*!< SCIF Interrupt         */
+  SCIFERI4_IRQn        = 238,       /*!< SCIF Interrupt         */
+  SCIFRXI4_IRQn        = 239,       /*!< SCIF Interrupt         */
+  SCIFTXI4_IRQn        = 240,       /*!< SCIF Interrupt         */
+  SCIFBRI5_IRQn        = 241,       /*!< SCIF Interrupt         */
+  SCIFERI5_IRQn        = 242,       /*!< SCIF Interrupt         */
+  SCIFRXI5_IRQn        = 243,       /*!< SCIF Interrupt         */
+  SCIFTXI5_IRQn        = 244,       /*!< SCIF Interrupt         */
+  SCIFBRI6_IRQn        = 245,       /*!< SCIF Interrupt         */
+  SCIFERI6_IRQn        = 246,       /*!< SCIF Interrupt         */
+  SCIFRXI6_IRQn        = 247,       /*!< SCIF Interrupt         */
+  SCIFTXI6_IRQn        = 248,       /*!< SCIF Interrupt         */
+  SCIFBRI7_IRQn        = 249,       /*!< SCIF Interrupt         */
+  SCIFERI7_IRQn        = 250,       /*!< SCIF Interrupt         */
+  SCIFRXI7_IRQn        = 251,       /*!< SCIF Interrupt         */
+  SCIFTXI7_IRQn        = 252,       /*!< SCIF Interrupt         */
+
+  INTRCANGERR_IRQn     = 253,
+  INTRCANGRECC_IRQn    = 254,
+  INTRCAN0REC_IRQn     = 255,
+  INTRCAN0ERR_IRQn     = 256,
+  INTRCAN0TRX_IRQn     = 257,
+  INTRCAN1REC_IRQn     = 258,
+  INTRCAN1ERR_IRQn     = 259,
+  INTRCAN1TRX_IRQn     = 260,
+  INTRCAN2REC_IRQn     = 261,
+  INTRCAN2ERR_IRQn     = 262,
+  INTRCAN2TRX_IRQn     = 263,
+  INTRCAN3REC_IRQn     = 264,
+  INTRCAN3ERR_IRQn     = 265,
+  INTRCAN3TRX_IRQn     = 266,
+  INTRCAN4REC_IRQn     = 267,
+  INTRCAN4ERR_IRQn     = 268,
+  INTRCAN4TRX_IRQn     = 269,
+
+  RSPISPEI0_IRQn       = 270,       /*!< RSPI Interrupt         */
+  RSPISPRI0_IRQn       = 271,       /*!< RSPI Interrupt         */
+  RSPISPTI0_IRQn       = 272,       /*!< RSPI Interrupt         */
+  RSPISPEI1_IRQn       = 273,       /*!< RSPI Interrupt         */
+  RSPISPRI1_IRQn       = 274,       /*!< RSPI Interrupt         */
+  RSPISPTI1_IRQn       = 275,       /*!< RSPI Interrupt         */
+  RSPISPEI2_IRQn       = 276,       /*!< RSPI Interrupt         */
+  RSPISPRI2_IRQn       = 277,       /*!< RSPI Interrupt         */
+  RSPISPTI2_IRQn       = 278,       /*!< RSPI Interrupt         */
+  RSPISPEI3_IRQn       = 279,       /*!< RSPI Interrupt         */
+  RSPISPRI3_IRQn       = 280,       /*!< RSPI Interrupt         */
+  RSPISPTI3_IRQn       = 281,       /*!< RSPI Interrupt         */
+  RSPISPEI4_IRQn       = 282,       /*!< RSPI Interrupt         */
+  RSPISPRI4_IRQn       = 283,       /*!< RSPI Interrupt         */
+  RSPISPTI4_IRQn       = 284,       /*!< RSPI Interrupt         */
+
+  IEBBTD_IRQn          = 285,
+  IEBBTERR_IRQn        = 286,
+  IEBBTSTA_IRQn        = 287,
+  IEBBTV_IRQn          = 288,
+
+  ISY_IRQn             = 289,
+  IERR_IRQn            = 290,
+  ITARG_IRQn           = 291,
+  ISEC_IRQn            = 292,
+  IBUF_IRQn            = 293,
+  IREADY_IRQn          = 294,
+
+  STERB_IRQn           = 295,
+  FLTENDI_IRQn         = 296,
+  FLTREQ0I_IRQn        = 297,
+  FLTREQ1I_IRQn        = 298,
+
+  MMC0_IRQn            = 299,
+  MMC1_IRQn            = 300,
+  MMC2_IRQn            = 301,
+
+  SCHI0_3_IRQn         = 302,
+  SDHI0_0_IRQn         = 303,
+  SDHI0_1_IRQn         = 304,
+  SCHI1_3_IRQn         = 305,
+  SDHI1_0_IRQn         = 306,
+  SDHI1_1_IRQn         = 307,
+
+  ARM_IRQn             = 308,
+  PRD_IRQn             = 309,
+  CUP_IRQn             = 310,
+
+  SCUAI0_IRQn          = 311,
+  SCUAI1_IRQn          = 312,
+  SCUFDI0_IRQn         = 313,
+  SCUFDI1_IRQn         = 314,
+  SCUFDI2_IRQn         = 315,
+  SCUFDI3_IRQn         = 316,
+  SCUFUI0_IRQn         = 317,
+  SCUFUI1_IRQn         = 318,
+  SCUFUI2_IRQn         = 319,
+  SCUFUI3_IRQn         = 320,
+  SCUDVI0_IRQn         = 321,
+  SCUDVI1_IRQn         = 322,
+  SCUDVI2_IRQn         = 323,
+  SCUDVI3_IRQn         = 324,
+
+  MLB_CINT_IRQn        = 325,
+  MLB_SINT_IRQn        = 326,
+
+  DRC10_IRQn           = 327,
+  DRC11_IRQn           = 328,
+
+  /* 329-330 Reserved  */
+
+  LINI0_INT_T_IRQn     = 331,
+  LINI0_INT_R_IRQn     = 332,
+  LINI0_INT_S_IRQn     = 333,
+  LINI0_INT_M_IRQn     = 334,
+  LINI1_INT_T_IRQn     = 335,
+  LINI1_INT_R_IRQn     = 336,
+  LINI1_INT_S_IRQn     = 337,
+  LINI1_INT_M_IRQn     = 338,
+
+  /* 339-346 Reserved */
+
+  SCIERI0_IRQn         = 347,
+  SCIRXI0_IRQn         = 348,
+  SCITXI0_IRQn         = 349,
+  SCITEI0_IRQn         = 350,
+  SCIERI1_IRQn         = 351,
+  SCIRXI1_IRQn         = 352,
+  SCITXI1_IRQn         = 353,
+  SCITEI1_IRQn         = 354,
+
+  AVBI_DATA            = 355,
+  AVBI_ERROR           = 356,
+  AVBI_MANAGE          = 357,
+  AVBI_MAC             = 358,
+
+  ETHERI_IRQn          = 359,
+
+  /* 360-363 Reserved */
+
+  CEUI_IRQn            = 364,
+
+  /* 365-380 Reserved */
+
+  H2XMLB_ERRINT_IRQn   = 381,
+  H2XIC1_ERRINT_IRQn   = 382,
+  X2HPERI1_ERRINT_IRQn = 383,
+  X2HPERR2_ERRINT_IRQn = 384,
+  X2HPERR34_ERRINT_IRQn= 385,
+  X2HPERR5_ERRINT_IRQn = 386,
+  X2HPERR67_ERRINT_IRQn= 387,
+  X2HDBGR_ERRINT_IRQn  = 388,
+  X2HBSC_ERRINT_IRQn   = 389,   
+  X2HSPI1_ERRINT_IRQn  = 390,   
+  X2HSPI2_ERRINT_IRQn  = 391,   
+  PRRI_IRQn            = 392,
+
+  IFEI0_IRQn           = 393,
+  OFFI0_IRQn           = 394,
+  PFVEI0_IRQn          = 395,
+  IFEI1_IRQn           = 396,
+  OFFI1_IRQn           = 397,
+  PFVEI1_IRQn          = 398,
+
+  /* 399-415 Reserved */
+
+  TINT0_IRQn           = 416,
+  TINT1_IRQn           = 417,
+  TINT2_IRQn           = 418,
+  TINT3_IRQn           = 419,
+  TINT4_IRQn           = 420,
+  TINT5_IRQn           = 421,
+  TINT6_IRQn           = 422,
+  TINT7_IRQn           = 423,
+  TINT8_IRQn           = 424,
+  TINT9_IRQn           = 425,
+  TINT10_IRQn          = 426,
+  TINT11_IRQn          = 427,
+  TINT12_IRQn          = 428,
+  TINT13_IRQn          = 429,
+  TINT14_IRQn          = 430,
+  TINT15_IRQn          = 431,
+  TINT16_IRQn          = 432,
+  TINT17_IRQn          = 433,
+  TINT18_IRQn          = 434,
+  TINT19_IRQn          = 435,
+  TINT20_IRQn          = 436,
+  TINT21_IRQn          = 437,
+  TINT22_IRQn          = 438,
+  TINT23_IRQn          = 439,
+  TINT24_IRQn          = 440,
+  TINT25_IRQn          = 441,
+  TINT26_IRQn          = 442,
+  TINT27_IRQn          = 443,
+  TINT28_IRQn          = 444,
+  TINT29_IRQn          = 445,
+  TINT30_IRQn          = 446,
+  TINT31_IRQn          = 447,
+  TINT32_IRQn          = 448,
+  TINT33_IRQn          = 449,
+  TINT34_IRQn          = 450,
+  TINT35_IRQn          = 451,
+  TINT36_IRQn          = 452,
+  TINT37_IRQn          = 453,
+  TINT38_IRQn          = 454,
+  TINT39_IRQn          = 455,
+  TINT40_IRQn          = 456,
+  TINT41_IRQn          = 457,
+  TINT42_IRQn          = 458,
+  TINT43_IRQn          = 459,
+  TINT44_IRQn          = 460,
+  TINT45_IRQn          = 461,
+  TINT46_IRQn          = 462,
+  TINT47_IRQn          = 463,
+  TINT48_IRQn          = 464,
+  TINT49_IRQn          = 465,
+  TINT50_IRQn          = 466,
+  TINT51_IRQn          = 467,
+  TINT52_IRQn          = 468,
+  TINT53_IRQn          = 469,
+  TINT54_IRQn          = 470,
+  TINT55_IRQn          = 471,
+  TINT56_IRQn          = 472,
+  TINT57_IRQn          = 473,
+  TINT58_IRQn          = 474,
+  TINT59_IRQn          = 475,
+  TINT60_IRQn          = 476,
+  TINT61_IRQn          = 477,
+  TINT62_IRQn          = 478,
+  TINT63_IRQn          = 479,
+  TINT64_IRQn          = 480,
+  TINT65_IRQn          = 481,
+  TINT66_IRQn          = 482,
+  TINT67_IRQn          = 483,
+  TINT68_IRQn          = 484,
+  TINT69_IRQn          = 485,
+  TINT70_IRQn          = 486,
+  TINT71_IRQn          = 487,
+  TINT72_IRQn          = 488,
+  TINT73_IRQn          = 489,
+  TINT74_IRQn          = 490,
+  TINT75_IRQn          = 491,
+  TINT76_IRQn          = 492,
+  TINT77_IRQn          = 493,
+  TINT78_IRQn          = 494,
+  TINT79_IRQn          = 495,
+  TINT80_IRQn          = 496,
+  TINT81_IRQn          = 497,
+  TINT82_IRQn          = 498,
+  TINT83_IRQn          = 499,
+  TINT84_IRQn          = 500,
+  TINT85_IRQn          = 501,
+  TINT86_IRQn          = 502,
+  TINT87_IRQn          = 503,
+  TINT88_IRQn          = 504,
+  TINT89_IRQn          = 505,
+  TINT90_IRQn          = 506,
+  TINT91_IRQn          = 507,
+  TINT92_IRQn          = 508,
+  TINT93_IRQn          = 509,
+  TINT94_IRQn          = 510,
+  TINT95_IRQn          = 511,
+  TINT96_IRQn          = 512,
+  TINT97_IRQn          = 513,
+  TINT98_IRQn          = 514,
+  TINT99_IRQn          = 515,
+  TINT100_IRQn         = 516,
+  TINT101_IRQn         = 517,
+  TINT102_IRQn         = 518,
+  TINT103_IRQn         = 519,
+  TINT104_IRQn         = 520,
+  TINT105_IRQn         = 521,
+  TINT106_IRQn         = 522,
+  TINT107_IRQn         = 523,
+  TINT108_IRQn         = 524,
+  TINT109_IRQn         = 525,
+  TINT110_IRQn         = 526,
+  TINT111_IRQn         = 527,
+  TINT112_IRQn         = 528,
+  TINT113_IRQn         = 529,
+  TINT114_IRQn         = 530,
+  TINT115_IRQn         = 531,
+  TINT116_IRQn         = 532,
+  TINT117_IRQn         = 533,
+  TINT118_IRQn         = 534,
+  TINT119_IRQn         = 535,
+  TINT120_IRQn         = 536,
+  TINT121_IRQn         = 537,
+  TINT122_IRQn         = 538,
+  TINT123_IRQn         = 539,
+  TINT124_IRQn         = 540,
+  TINT125_IRQn         = 541,
+  TINT126_IRQn         = 542,
+  TINT127_IRQn         = 543,
+  TINT128_IRQn         = 544,
+  TINT129_IRQn         = 545,
+  TINT130_IRQn         = 546,
+  TINT131_IRQn         = 547,
+  TINT132_IRQn         = 548,
+  TINT133_IRQn         = 549,
+  TINT134_IRQn         = 550,
+  TINT135_IRQn         = 551,
+  TINT136_IRQn         = 552,
+  TINT137_IRQn         = 553,
+  TINT138_IRQn         = 554,
+  TINT139_IRQn         = 555,
+  TINT140_IRQn         = 556,
+  TINT141_IRQn         = 557,
+  TINT142_IRQn         = 558,
+  TINT143_IRQn         = 559,
+  TINT144_IRQn         = 560,
+  TINT145_IRQn         = 561,
+  TINT146_IRQn         = 562,
+  TINT147_IRQn         = 563,
+  TINT148_IRQn         = 564,
+  TINT149_IRQn         = 565,
+  TINT150_IRQn         = 566,
+  TINT151_IRQn         = 567,
+  TINT152_IRQn         = 568,
+  TINT153_IRQn         = 569,
+  TINT154_IRQn         = 570,
+  TINT155_IRQn         = 571,
+  TINT156_IRQn         = 572,
+  TINT157_IRQn         = 573,
+  TINT158_IRQn         = 574,
+  TINT159_IRQn         = 575,
+  TINT160_IRQn         = 576,
+  TINT161_IRQn         = 577,
+  TINT162_IRQn         = 578,
+  TINT163_IRQn         = 579,
+  TINT164_IRQn         = 580,
+  TINT165_IRQn         = 581,
+  TINT166_IRQn         = 582,
+  TINT167_IRQn         = 583,
+  TINT168_IRQn         = 584,
+  TINT169_IRQn         = 585,
+  TINT170_IRQn         = 586
+
+} IRQn_Type;
+
+#define RZ_A1_IRQ_MAX  TINT170_IRQn
+
+/******************************************************************************/
+/*                         Peripheral memory map                              */
+/******************************************************************************/
+
+#define RZ_A1_NORFLASH_BASE0               (0x00000000UL)                        /*!< (FLASH0    ) Base Address */
+#define RZ_A1_NORFLASH_BASE1               (0x04000000UL)                        /*!< (FLASH1    ) Base Address */
+#define RZ_A1_SDRAM_BASE0                  (0x08000000UL)                        /*!< (SDRAM0    ) Base Address */
+#define RZ_A1_SDRAM_BASE1                  (0x0C000000UL)                        /*!< (SDRAM1    ) Base Address */
+#define RZ_A1_USER_AREA0                   (0x10000000UL)                        /*!< (USER0     ) Base Address */
+#define RZ_A1_USER_AREA1                   (0x14000000UL)                        /*!< (USER1     ) Base Address */
+#define RZ_A1_SPI_IO0                      (0x18000000UL)                        /*!< (SPI_IO0   ) Base Address */
+#define RZ_A1_SPI_IO1                      (0x1C000000UL)                        /*!< (SPI_IO1   ) Base Address */
+#define RZ_A1_ONCHIP_SRAM_BASE             (0x20000000UL)                        /*!< (SRAM_OC   ) Base Address */
+#define RZ_A1_SPI_MIO_BASE                 (0x3fe00000UL)                        /*!< (SPI_MIO   ) Base Address */
+#define RZ_A1_BSC_BASE                     (0x3ff00000UL)                        /*!< (BSC       ) Base Address */
+#define RZ_A1_PERIPH_BASE0                 (0xe8000000UL)                        /*!< (PERIPH0   ) Base Address */
+#define RZ_A1_PERIPH_BASE1                 (0xfcf00000UL)                        /*!< (PERIPH1   ) Base Address */
+#define RZ_A1_GIC_DISTRIBUTOR_BASE         (0xe8201000UL)                        /*!< (GIC DIST  ) Base Address */
+#define RZ_A1_GIC_INTERFACE_BASE           (0xe8202000UL)                        /*!< (GIC CPU IF) Base Address */
+#define RZ_A1_PL310_BASE                   (0x3ffff000UL)                        /*!< (PL310     ) Base Address */
+#define RZ_A1_ONCHIP_SRAM_NC_BASE          (0x60000000UL)                        /*!< (SRAM_OC   ) Base Address */
+#define RZ_A1_PRIVATE_TIMER                (0x00000600UL + 0x82000000UL)         /*!< (PTIM      ) Base Address */
+#define GIC_DISTRIBUTOR_BASE               RZ_A1_GIC_DISTRIBUTOR_BASE
+#define GIC_INTERFACE_BASE                 RZ_A1_GIC_INTERFACE_BASE
+#define L2C_310_BASE                       RZ_A1_PL310_BASE
+#define TIMER_BASE                         RZ_A1_PRIVATE_TIMER
+
+/* --------  Configuration of the Cortex-A9 Processor and Core Peripherals  ------- */
+#define __CA_REV        0x0000U    /*!< Core revision r0p0                          */
+#define __CORTEX_A           9U    /*!< Cortex-A9 Core                              */
+#if (__FPU_PRESENT != 1)
+#undef __FPU_PRESENT
+#define __FPU_PRESENT        1U    /* FPU present                                   */
+#endif
+#define __GIC_PRESENT        1U    /* GIC present                                   */
+#define __TIM_PRESENT        0U    /* TIM present                                   */
+#define __L2C_PRESENT        1U    /* L2C present                                   */
+
+#include "core_ca.h"
+#include "nvic_wrapper.h"
+#include <system_RZ_A1H.h>
+#include "iodefine.h"
+
+/******************************************************************************/
+/*                         Clock Settings                                     */
+/******************************************************************************/
+/*
+ * Clock Mode 0 settings
+ * SW1-4(MD_CLK):ON
+ * SW1-5(MD_CLKS):ON
+ * FRQCR=0x1035
+ *   CLKEN2    = 0b - unstable
+ *   CLKEN[1:0]=01b - Output, Low, Low
+ *   IFC[1:0]  =00b - CPU clock is 1/1 PLL clock
+ * FRQCR2=0x0001
+ *   GFC[1:0]  =01b - Graphic clock is 2/3 bus clock
+ */
+#define CM0_RENESAS_RZ_A1_CLKIN  ( 13333333u)
+#define CM0_RENESAS_RZ_A1_CLKO   ( 66666666u)
+#define CM0_RENESAS_RZ_A1_I_CLK  (400000000u)
+#define CM0_RENESAS_RZ_A1_G_CLK  (266666666u)
+#define CM0_RENESAS_RZ_A1_B_CLK  (133333333u)
+#define CM0_RENESAS_RZ_A1_P1_CLK ( 66666666u)
+#define CM0_RENESAS_RZ_A1_P0_CLK ( 33333333u)
+
+/*
+ * Clock Mode 1 settings
+ * SW1-4(MD_CLK):OFF
+ * SW1-5(MD_CLKS):ON
+ * FRQCR=0x1335
+ *   CLKEN2    = 0b - unstable
+ *   CLKEN[1:0]=01b - Output, Low, Low
+ *   IFC[1:0]  =11b - CPU clock is 1/3 PLL clock
+ * FRQCR2=0x0003
+ *   GFC[1:0]  =11b - graphic clock is 1/3 bus clock
+ */
+#define CM1_RENESAS_RZ_A1_CLKIN  ( 48000000u)
+#define CM1_RENESAS_RZ_A1_CLKO   ( 64000000u)
+#define CM1_RENESAS_RZ_A1_I_CLK  (128000000u)
+#define CM1_RENESAS_RZ_A1_G_CLK  (128000000u)
+#define CM1_RENESAS_RZ_A1_B_CLK  (128000000u)
+#define CM1_RENESAS_RZ_A1_P1_CLK ( 64000000u)
+#define CM1_RENESAS_RZ_A1_P0_CLK ( 32000000u)
+
+/******************************************************************************/
+/*                         CPG   Settings                                     */
+/******************************************************************************/
+#define CPG_FRQCR_SHIFT_CKOEN2  (14)
+#define CPG_FRQCR_BIT_CKOEN2    (0x1 << CPG_FRQCR_SHIFT_CKOEN2)
+#define CPG_FRQCR_SHIFT_CKOEN0  (12)
+#define CPG_FRQCR_BITS_CKOEN0   (0x3 << CPG_FRQCR_SHIFT_CKOEN0)
+#define CPG_FRQCR_SHIFT_IFC     (8)
+#define CPG_FRQCR_BITS_IFC      (0x3 << CPG_FRQCR_SHIFT_IFC)
+
+#define CPG_FRQCR2_SHIFT_GFC    (0)
+#define CPG_FRQCR2_BITS_GFC     (0x3 << CPG_FRQCR2_SHIFT_GFC)
+
+
+#define CPG_STBCR1_BIT_STBY     (0x80u)
+#define CPG_STBCR1_BIT_DEEP     (0x40u)
+#define CPG_STBCR2_BIT_HIZ      (0x80u)
+#define CPG_STBCR2_BIT_MSTP20   (0x01u) /* CoreSight */
+#define CPG_STBCR3_BIT_MSTP37   (0x80u) /* IEBus */
+#define CPG_STBCR3_BIT_MSTP36   (0x40u) /* IrDA */
+#define CPG_STBCR3_BIT_MSTP35   (0x20u) /* LIN0 */
+#define CPG_STBCR3_BIT_MSTP34   (0x10u) /* LIN1 */
+#define CPG_STBCR3_BIT_MSTP33   (0x08u) /* Multi-Function Timer */
+#define CPG_STBCR3_BIT_MSTP32   (0x04u) /* CAN */
+#define CPG_STBCR3_BIT_MSTP31   (0x02u) /* A/D converter (analog voltage) */
+#define CPG_STBCR3_BIT_MSTP30   (0x01u) /* Motor Control PWM Timer */
+#define CPG_STBCR4_BIT_MSTP47   (0x80u) /* SCIF0 */
+#define CPG_STBCR4_BIT_MSTP46   (0x40u) /* SCIF1 */
+#define CPG_STBCR4_BIT_MSTP45   (0x20u) /* SCIF2 */
+#define CPG_STBCR4_BIT_MSTP44   (0x10u) /* SCIF3 */
+#define CPG_STBCR4_BIT_MSTP43   (0x08u) /* SCIF4 */
+#define CPG_STBCR4_BIT_MSTP42   (0x04u) /* SCIF5 */
+#define CPG_STBCR4_BIT_MSTP41   (0x02u) /* SCIF6 */
+#define CPG_STBCR4_BIT_MSTP40   (0x01u) /* SCIF7 */
+#define CPG_STBCR5_BIT_MSTP57   (0x80u) /* SCI0 */
+#define CPG_STBCR5_BIT_MSTP56   (0x40u) /* SCI1 */
+#define CPG_STBCR5_BIT_MSTP55   (0x20u) /* Sound Generator0 */
+#define CPG_STBCR5_BIT_MSTP54   (0x10u) /* Sound Generator1 */
+#define CPG_STBCR5_BIT_MSTP53   (0x08u) /* Sound Generator2 */
+#define CPG_STBCR5_BIT_MSTP52   (0x04u) /* Sound Generator3 */
+#define CPG_STBCR5_BIT_MSTP51   (0x02u) /* OSTM0 */
+#define CPG_STBCR5_BIT_MSTP50   (0x01u) /* OSTM1 */
+#define CPG_STBCR6_BIT_MSTP67   (0x80u) /* A/D converter (clock) */
+#define CPG_STBCR6_BIT_MSTP66   (0x40u) /* Capture Engine */
+#define CPG_STBCR6_BIT_MSTP65   (0x20u) /* Display out comparison0 */
+#define CPG_STBCR6_BIT_MSTP64   (0x10u) /* Display out comparison1 */   
+#define CPG_STBCR6_BIT_MSTP63   (0x08u) /* Dynamic Range compression0 */
+#define CPG_STBCR6_BIT_MSTP62   (0x04u) /* Dynamic Range compression1 */
+#define CPG_STBCR6_BIT_MSTP61   (0x02u) /* JPEG Decoder */
+#define CPG_STBCR6_BIT_MSTP60   (0x01u) /* Realtime Clock */
+#define CPG_STBCR7_BIT_MSTP77   (0x80u) /* Video Decoder0 */
+#define CPG_STBCR7_BIT_MSTP76   (0x40u) /* Video Decoder1 */
+#define CPG_STBCR7_BIT_MSTP74   (0x10u) /* Ethernet */
+#define CPG_STBCR7_BIT_MSTP73   (0x04u) /* NAND Flash Memory Controller */
+#define CPG_STBCR7_BIT_MSTP71   (0x02u) /* USB0 */
+#define CPG_STBCR7_BIT_MSTP70   (0x01u) /* USB1 */
+#define CPG_STBCR8_BIT_MSTP87   (0x80u) /* IMR-LS2_0 */
+#define CPG_STBCR8_BIT_MSTP86   (0x40u) /* IMR-LS2_1 */
+#define CPG_STBCR8_BIT_MSTP85   (0x20u) /* IMR-LSD */
+#define CPG_STBCR8_BIT_MSTP84   (0x10u) /* MMC Host Interface */
+#define CPG_STBCR8_BIT_MSTP83   (0x08u) /* MediaLB */
+#define CPG_STBCR8_BIT_MSTP82   (0x04u) /* EthernetAVB */
+#define CPG_STBCR8_BIT_MSTP81   (0x02u) /* SCUX */
+#define CPG_STBCR9_BIT_MSTP97   (0x80u) /* RIIC0 */
+#define CPG_STBCR9_BIT_MSTP96   (0x40u) /* RIIC1 */
+#define CPG_STBCR9_BIT_MSTP95   (0x20u) /* RIIC2 */
+#define CPG_STBCR9_BIT_MSTP94   (0x10u) /* RIIC3 */
+#define CPG_STBCR9_BIT_MSTP93   (0x08u) /* SPI Multi I/O Bus Controller0 */
+#define CPG_STBCR9_BIT_MSTP92   (0x04u) /* SPI Multi I/O Bus Controller1 */
+#define CPG_STBCR9_BIT_MSTP91   (0x02u) /* VDC5_0 */
+#define CPG_STBCR9_BIT_MSTP90   (0x01u) /* VDC5_1 */
+#define CPG_STBCR10_BIT_MSTP107 (0x80u) /* RSPI0 */
+#define CPG_STBCR10_BIT_MSTP106 (0x40u) /* RSPI1 */
+#define CPG_STBCR10_BIT_MSTP105 (0x20u) /* RSPI2 */
+#define CPG_STBCR10_BIT_MSTP104 (0x10u) /* RSPI3 */
+#define CPG_STBCR10_BIT_MSTP103 (0x08u) /* RSPI4 */
+#define CPG_STBCR10_BIT_MSTP102 (0x04u) /* ROMDEC */
+#define CPG_STBCR10_BIT_MSTP101 (0x02u) /* SPIDF */
+#define CPG_STBCR10_BIT_MSTP100 (0x01u) /* OpenVG */
+#define CPG_STBCR11_BIT_MSTP115 (0x20u) /* SSIF0 */
+#define CPG_STBCR11_BIT_MSTP114 (0x10u) /* SSIF1 */
+#define CPG_STBCR11_BIT_MSTP113 (0x08u) /* SSIF2 */
+#define CPG_STBCR11_BIT_MSTP112 (0x04u) /* SSIF3 */
+#define CPG_STBCR11_BIT_MSTP111 (0x02u) /* SSIF4 */
+#define CPG_STBCR11_BIT_MSTP110 (0x01u) /* SSIF5 */
+#define CPG_STBCR12_BIT_MSTP123 (0x08u) /* SD Host Interface00 */
+#define CPG_STBCR12_BIT_MSTP122 (0x04u) /* SD Host Interface01 */
+#define CPG_STBCR12_BIT_MSTP121 (0x02u) /* SD Host Interface10 */
+#define CPG_STBCR12_BIT_MSTP120 (0x01u) /* SD Host Interface11 */
+#define CPG_STBCR13_BIT_MSTP132 (0x04u) /* PFV1 */
+#define CPG_STBCR13_BIT_MSTP131 (0x02u) /* PFV0 */
+#define CPG_SWRSTCR1_BIT_AXTALE (0x80u) /* AUDIO_X1 */
+#define CPG_SWRSTCR1_BIT_SRST16 (0x40u) /* SSIF0 */
+#define CPG_SWRSTCR1_BIT_SRST15 (0x20u) /* SSIF1 */
+#define CPG_SWRSTCR1_BIT_SRST14 (0x10u) /* SSIF2 */
+#define CPG_SWRSTCR1_BIT_SRST13 (0x08u) /* SSIF3 */
+#define CPG_SWRSTCR1_BIT_SRST12 (0x04u) /* SSIF4 */
+#define CPG_SWRSTCR1_BIT_SRST11 (0x02u) /* SSIF5 */
+#define CPG_SWRSTCR2_BIT_SRST21 (0x02u) /* JPEG Decoder */
+#define CPG_SWRSTCR3_BIT_SRST32 (0x04u) /* OpenVG */
+#define CPG_SYSCR1_BIT_VRAME4   (0x10u) /* VRAM E Page4 */
+#define CPG_SYSCR1_BIT_VRAME3   (0x08u) /* VRAM E Page3 */
+#define CPG_SYSCR1_BIT_VRAME2   (0x04u) /* VRAM E Page2 */
+#define CPG_SYSCR1_BIT_VRAME1   (0x02u) /* VRAM E Page1 */
+#define CPG_SYSCR1_BIT_VRAME0   (0x01u) /* VRAM E Page0 */
+#define CPG_SYSCR2_BIT_VRAMWE4  (0x10u) /* VRAM WE Page4 */
+#define CPG_SYSCR2_BIT_VRAMWE3  (0x08u) /* VRAM WE Page3 */
+#define CPG_SYSCR2_BIT_VRAMWE2  (0x04u) /* VRAM WE Page2 */
+#define CPG_SYSCR2_BIT_VRAMWE1  (0x02u) /* VRAM WE Page1 */
+#define CPG_SYSCR2_BIT_VRAMWE0  (0x01u) /* VRAM WE Page0 */
+#define CPG_SYSCR3_BIT_RRAMWE3  (0x08u) /* RRAM WE Page3 */
+#define CPG_SYSCR3_BIT_RRAMWE2  (0x04u) /* RRAM WE Page2 */
+#define CPG_SYSCR3_BIT_RRAMWE1  (0x02u) /* RRAM WE Page1 */
+#define CPG_SYSCR3_BIT_RRAMWE0  (0x01u) /* RRAM WE Page0 */
+#define CPG_CPUSTS_BIT_ISBUSY   (0x10u) /* State during Changing of the Frequency of CPU and Return from Software Standby */
+#define CPG_STBREQ1_BIT_STBRQ15 (0x20u) /* CoreSight */
+#define CPG_STBREQ1_BIT_STBRQ13 (0x08u) /* JPEG Control */
+#define CPG_STBREQ1_BIT_STBRQ12 (0x04u) /* EthernetAVB */
+#define CPG_STBREQ1_BIT_STBRQ10 (0x01u) /* Capture Engine */
+#define CPG_STBREQ2_BIT_STBRQ27 (0x80u) /* MediaLB */
+#define CPG_STBREQ2_BIT_STBRQ26 (0x40u) /* Ethernet */
+#define CPG_STBREQ2_BIT_STBRQ25 (0x20u) /* VDC5_0 */
+#define CPG_STBREQ2_BIT_STBRQ24 (0x10u) /* VCD5_1 */
+#define CPG_STBREQ2_BIT_STBRQ23 (0x08u) /* IMR_LS2_0 */
+#define CPG_STBREQ2_BIT_STBRQ22 (0x04u) /* IMR_LS2_1 */
+#define CPG_STBREQ2_BIT_STBRQ21 (0x02u) /* IMR_LSD */
+#define CPG_STBREQ2_BIT_STBRQ20 (0x01u) /* OpenVG */
+#define CPG_STBACK1_BIT_STBAK15 (0x20u) /* CoreSight */
+#define CPG_STBACK1_BIT_STBAK13 (0x08u) /* JPEG Control */
+#define CPG_STBACK1_BIT_STBAK12 (0x04u) /* EthernetAVB */
+#define CPG_STBACK1_BIT_STBAK10 (0x01u) /* Capture Engine */
+#define CPG_STBACK2_BIT_STBAK27 (0x80u) /* MediaLB */
+#define CPG_STBACK2_BIT_STBAK26 (0x40u) /* Ethernet */
+#define CPG_STBACK2_BIT_STBAK25 (0x20u) /* VDC5_0 */
+#define CPG_STBACK2_BIT_STBAK24 (0x10u) /* VCD5_1 */
+#define CPG_STBACK2_BIT_STBAK23 (0x08u) /* IMR_LS2_0 */
+#define CPG_STBACK2_BIT_STBAK22 (0x04u) /* IMR_LS2_1 */
+#define CPG_STBACK2_BIT_STBAK21 (0x02u) /* IMR_LSD */
+#define CPG_STBACK2_BIT_STBAK20 (0x01u) /* OpenVG */
+#define CPG_RRAMKP_BIT_RRAMKP3  (0x08u) /* RRAM KP Page3 */
+#define CPG_RRAMKP_BIT_RRAMKP2  (0x04u) /* RRAM KP Page2 */
+#define CPG_RRAMKP_BIT_RRAMKP1  (0x02u) /* RRAM KP Page1 */
+#define CPG_RRAMKP_BIT_RRAMKP0  (0x01u) /* RRAM KP Page0 */
+#define CPG_DSCTR_BIT_EBUSKEEPE (0x80u) /* Retention of External Memory Control Pin State */
+#define CPG_DSCTR_BIT_RAMBOOT   (0x40u) /* Selection of Method after Returning from Deep Standby Mode */
+#define CPG_DSSSR_BIT_P6_2      (0x4000u) /* P6_2 */
+#define CPG_DSSSR_BIT_P3_9      (0x2000u) /* P3_9 */
+#define CPG_DSSSR_BIT_P3_1      (0x1000u) /* P3_1 */
+#define CPG_DSSSR_BIT_P2_12     (0x0800u) /* P2_12 */
+#define CPG_DSSSR_BIT_P8_7      (0x0400u) /* P8_7 */
+#define CPG_DSSSR_BIT_P3_3      (0x0200u) /* P3_3 */
+#define CPG_DSSSR_BIT_NMI       (0x0100u) /* NMI */
+#define CPG_DSSSR_BIT_RTCAR     (0x0040u) /* RTCAR */
+#define CPG_DSSSR_BIT_P6_4      (0x0020u) /* P6_4 */
+#define CPG_DSSSR_BIT_P5_9      (0x0010u) /* P5_9 */
+#define CPG_DSSSR_BIT_P7_8      (0x0008u) /* P7_8 */
+#define CPG_DSSSR_BIT_P2_15     (0x0004u) /* P2_15 */
+#define CPG_DSSSR_BIT_P9_1      (0x0002u) /* P9_1 */
+#define CPG_DSSSR_BIT_P8_2      (0x0001u) /* P8_2 */
+#define CPG_DSESR_BIT_P6_2E     (0x4000u) /* P6_2 */
+#define CPG_DSESR_BIT_P3_9E     (0x2000u) /* P3_9 */
+#define CPG_DSESR_BIT_P3_1E     (0x1000u) /* P3_1 */
+#define CPG_DSESR_BIT_P2_12E    (0x0800u) /* P2_12 */
+#define CPG_DSESR_BIT_P8_7E     (0x0400u) /* P8_7 */
+#define CPG_DSESR_BIT_P3_3E     (0x0200u) /* P3_3 */
+#define CPG_DSESR_BIT_NMIE      (0x0100u) /* NMI */
+#define CPG_DSESR_BIT_P6_4E     (0x0020u) /* P6_4 */
+#define CPG_DSESR_BIT_P5_9E     (0x0010u) /* P5_9 */
+#define CPG_DSESR_BIT_P7_8E     (0x0008u) /* P7_8 */
+#define CPG_DSESR_BIT_P2_15E    (0x0004u) /* P2_15 */
+#define CPG_DSESR_BIT_P9_1E     (0x0002u) /* P9_1 */
+#define CPG_DSESR_BIT_P8_2E     (0x0001u) /* P8_2 */
+#define CPG_DSFR_BIT_IOKEEP     (0x8000u) /* Release of Pin State Retention */
+#define CPG_DSFR_BIT_P6_2F      (0x4000u) /* P6_2 */
+#define CPG_DSFR_BIT_P3_9F      (0x2000u) /* P3_9 */
+#define CPG_DSFR_BIT_P3_1F      (0x1000u) /* P3_1 */
+#define CPG_DSFR_BIT_P2_12F     (0x0800u) /* P2_12 */
+#define CPG_DSFR_BIT_P8_7F      (0x0400u) /* P8_7 */
+#define CPG_DSFR_BIT_P3_3F      (0x0200u) /* P3_3 */
+#define CPG_DSFR_BIT_NMIF       (0x0100u) /* NMI */
+#define CPG_DSFR_BIT_RTCARF     (0x0040u) /* RTCAR */
+#define CPG_DSFR_BIT_P6_4F      (0x0020u) /* P6_4 */
+#define CPG_DSFR_BIT_P5_9F      (0x0010u) /* P5_9 */
+#define CPG_DSFR_BIT_P7_8F      (0x0008u) /* P7_8 */
+#define CPG_DSFR_BIT_P2_15F     (0x0004u) /* P2_15 */
+#define CPG_DSFR_BIT_P9_1F      (0x0002u) /* P9_1 */
+#define CPG_DSFR_BIT_P8_2F      (0x0001u) /* P8_2 */
+#define CPG_XTALCTR_BIT_GAIN1   (0x02u)   /* RTC_X3, RTC_X4 */
+#define CPG_XTALCTR_BIT_GAIN0   (0x01u)   /* EXTAL, XTAL */
+
+/******************************************************************************/
+/*                        GPIO   Settings                                     */
+/******************************************************************************/
+#define GPIO_BIT_N0  (1u <<  0)
+#define GPIO_BIT_N1  (1u <<  1)
+#define GPIO_BIT_N2  (1u <<  2)
+#define GPIO_BIT_N3  (1u <<  3)
+#define GPIO_BIT_N4  (1u <<  4)
+#define GPIO_BIT_N5  (1u <<  5)
+#define GPIO_BIT_N6  (1u <<  6)
+#define GPIO_BIT_N7  (1u <<  7)
+#define GPIO_BIT_N8  (1u <<  8)
+#define GPIO_BIT_N9  (1u <<  9)
+#define GPIO_BIT_N10 (1u << 10)
+#define GPIO_BIT_N11 (1u << 11)
+#define GPIO_BIT_N12 (1u << 12)
+#define GPIO_BIT_N13 (1u << 13)
+#define GPIO_BIT_N14 (1u << 14)
+#define GPIO_BIT_N15 (1u << 15)
+
+#define MD_BOOT10_MASK    (0x3)
+
+#define MD_BOOT10_BM0     (0x0)
+#define MD_BOOT10_BM1     (0x2)
+#define MD_BOOT10_BM3     (0x1)
+#define MD_BOOT10_BM4_5   (0x3)
+
+#define MD_CLK        (1u << 2)
+#define MD_CLKS       (1u << 3)
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // __RZ_A1H_H__
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/bsc_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/bsc_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/bsc_iobitmask.h	(revision 429)
@@ -0,0 +1,357 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : bsc_iobitmask.h
+* $Rev: 1115 $
+* $Date:: 2014-07-09 15:35:02 +0900#$
+* Description : BSC register define header
+*******************************************************************************/
+#ifndef BSC_IOBITMASK_H
+#define BSC_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+#define BSC_CMNCR_HIZCNT                (0x00000001uL)
+#define BSC_CMNCR_HIZMEM                (0x00000002uL)
+#define BSC_CMNCR_DPRTY                 (0x00000600uL)
+#define BSC_CMNCR_AL0                   (0x01000000uL)
+#define BSC_CMNCR_TL0                   (0x10000000uL)
+
+#define BSC_CS0BCR_BSZ                  (0x00000600uL)
+#define BSC_CS0BCR_TYPE                 (0x00007000uL)
+#define BSC_CS0BCR_IWRRS                (0x00070000uL)
+#define BSC_CS0BCR_IWRRD                (0x00380000uL)
+#define BSC_CS0BCR_IWRWS                (0x01C00000uL)
+#define BSC_CS0BCR_IWRWD                (0x0E000000uL)
+#define BSC_CS0BCR_IWW                  (0x70000000uL)
+
+#define BSC_CS1BCR_BSZ                  (0x00000600uL)
+#define BSC_CS1BCR_TYPE                 (0x00007000uL)
+#define BSC_CS1BCR_IWRRS                (0x00070000uL)
+#define BSC_CS1BCR_IWRRD                (0x00380000uL)
+#define BSC_CS1BCR_IWRWS                (0x01C00000uL)
+#define BSC_CS1BCR_IWRWD                (0x0E000000uL)
+#define BSC_CS1BCR_IWW                  (0x70000000uL)
+
+#define BSC_CS2BCR_BSZ                  (0x00000600uL)
+#define BSC_CS2BCR_TYPE                 (0x00007000uL)
+#define BSC_CS2BCR_IWRRS                (0x00070000uL)
+#define BSC_CS2BCR_IWRRD                (0x00380000uL)
+#define BSC_CS2BCR_IWRWS                (0x01C00000uL)
+#define BSC_CS2BCR_IWRWD                (0x0E000000uL)
+#define BSC_CS2BCR_IWW                  (0x70000000uL)
+
+#define BSC_CS3BCR_BSZ                  (0x00000600uL)
+#define BSC_CS3BCR_TYPE                 (0x00007000uL)
+#define BSC_CS3BCR_IWRRS                (0x00070000uL)
+#define BSC_CS3BCR_IWRRD                (0x00380000uL)
+#define BSC_CS3BCR_IWRWS                (0x01C00000uL)
+#define BSC_CS3BCR_IWRWD                (0x0E000000uL)
+#define BSC_CS3BCR_IWW                  (0x70000000uL)
+
+#define BSC_CS4BCR_BSZ                  (0x00000600uL)
+#define BSC_CS4BCR_TYPE                 (0x00007000uL)
+#define BSC_CS4BCR_IWRRS                (0x00070000uL)
+#define BSC_CS4BCR_IWRRD                (0x00380000uL)
+#define BSC_CS4BCR_IWRWS                (0x01C00000uL)
+#define BSC_CS4BCR_IWRWD                (0x0E000000uL)
+#define BSC_CS4BCR_IWW                  (0x70000000uL)
+
+#define BSC_CS5BCR_BSZ                  (0x00000600uL)
+#define BSC_CS5BCR_TYPE                 (0x00007000uL)
+#define BSC_CS5BCR_IWRRS                (0x00070000uL)
+#define BSC_CS5BCR_IWRRD                (0x00380000uL)
+#define BSC_CS5BCR_IWRWS                (0x01C00000uL)
+#define BSC_CS5BCR_IWRWD                (0x0E000000uL)
+#define BSC_CS5BCR_IWW                  (0x70000000uL)
+
+#define BSC_CS0WCR_NORMAL_HW            (0x00000003uL)
+#define BSC_CS0WCR_NORMAL_WM            (0x00000040uL)
+#define BSC_CS0WCR_NORMAL_WR            (0x00000780uL)
+#define BSC_CS0WCR_NORMAL_SW            (0x00001800uL)
+#define BSC_CS0WCR_NORMAL_BAS           (0x00100000uL)
+
+#define BSC_CS1WCR_NORMAL_HW            (0x00000003uL)
+#define BSC_CS1WCR_NORMAL_WM            (0x00000040uL)
+#define BSC_CS1WCR_NORMAL_WR            (0x00000780uL)
+#define BSC_CS1WCR_NORMAL_SW            (0x00001800uL)
+#define BSC_CS1WCR_NORMAL_WW            (0x00070000uL)
+#define BSC_CS1WCR_NORMAL_BAS           (0x00100000uL)
+
+#define BSC_CS2WCR_NORMAL_WM            (0x00000040uL)
+#define BSC_CS2WCR_NORMAL_WR            (0x00000780uL)
+#define BSC_CS2WCR_NORMAL_BAS           (0x00100000uL)
+
+#define BSC_CS3WCR_NORMAL_WM            (0x00000040uL)
+#define BSC_CS3WCR_NORMAL_WR            (0x00000780uL)
+#define BSC_CS3WCR_NORMAL_BAS           (0x00100000uL)
+
+#define BSC_CS4WCR_NORMAL_HW            (0x00000003uL)
+#define BSC_CS4WCR_NORMAL_WM            (0x00000040uL)
+#define BSC_CS4WCR_NORMAL_WR            (0x00000780uL)
+#define BSC_CS4WCR_NORMAL_SW            (0x00001800uL)
+#define BSC_CS4WCR_NORMAL_WW            (0x00070000uL)
+#define BSC_CS4WCR_NORMAL_BAS           (0x00100000uL)
+
+#define BSC_CS5WCR_NORMAL_HW            (0x00000003uL)
+#define BSC_CS5WCR_NORMAL_WM            (0x00000040uL)
+#define BSC_CS5WCR_NORMAL_WR            (0x00000780uL)
+#define BSC_CS5WCR_NORMAL_SW            (0x00001800uL)
+#define BSC_CS5WCR_NORMAL_WW            (0x00070000uL)
+#define BSC_CS5WCR_NORMAL_MPXWBAS       (0x00100000uL)
+#define BSC_CS5WCR_NORMAL_SZSEL         (0x00200000uL)
+
+#define BSC_CS0WCR_BROM_ASY_WM          (0x00000040uL)
+#define BSC_CS0WCR_BROM_ASY_W           (0x00000780uL)
+#define BSC_CS0WCR_BROM_ASY_BW          (0x00030000uL)
+#define BSC_CS0WCR_BROM_ASY_BST         (0x00300000uL)
+
+#define BSC_CS4WCR_BROM_ASY_HW          (0x00000003uL)
+#define BSC_CS4WCR_BROM_ASY_WM          (0x00000040uL)
+#define BSC_CS4WCR_BROM_ASY_W           (0x00000780uL)
+#define BSC_CS4WCR_BROM_ASY_SW          (0x00001800uL)
+#define BSC_CS4WCR_BROM_ASY_BW          (0x00030000uL)
+#define BSC_CS4WCR_BROM_ASY_BST         (0x00300000uL)
+
+#define BSC_CS2WCR_SDRAM_A2CL           (0x00000180uL)
+
+#define BSC_CS3WCR_SDRAM_WTRC           (0x00000003uL)
+#define BSC_CS3WCR_SDRAM_TRWL           (0x00000018uL)
+#define BSC_CS3WCR_SDRAM_A3CL           (0x00000180uL)
+#define BSC_CS3WCR_SDRAM_WTRCD          (0x00000C00uL)
+#define BSC_CS3WCR_SDRAM_WTRP           (0x00006000uL)
+
+#define BSC_CS0WCR_BROM_SY_WM           (0x00000040uL)
+#define BSC_CS0WCR_BROM_SY_W            (0x00000780uL)
+#define BSC_CS0WCR_BROM_SY_BW           (0x00030000uL)
+
+#define BSC_SDCR_A3COL                  (0x00000003uL)
+#define BSC_SDCR_A3ROW                  (0x00000018uL)
+#define BSC_SDCR_BACTV                  (0x00000100uL)
+#define BSC_SDCR_PDOWN                  (0x00000200uL)
+#define BSC_SDCR_RMODE                  (0x00000400uL)
+#define BSC_SDCR_RFSH                   (0x00000800uL)
+#define BSC_SDCR_DEEP                   (0x00002000uL)
+#define BSC_SDCR_A2COL                  (0x00030000uL)
+#define BSC_SDCR_A2ROW                  (0x00180000uL)
+
+#define BSC_RTCSR_RRC                   (0x00000007uL)
+#define BSC_RTCSR_CKS                   (0x00000038uL)
+#define BSC_RTCSR_CMIE                  (0x00000040uL)
+#define BSC_RTCSR_CMF                   (0x00000080uL)
+
+#define BSC_RTCNT_D                     (0xFFFFFFFFuL)
+
+#define BSC_RTCOR_D                     (0xFFFFFFFFuL)
+
+#define BSC_TOSCOR0_D                   (0x0000FFFFuL)
+
+#define BSC_TOSCOR1_D                   (0x0000FFFFuL)
+
+#define BSC_TOSCOR2_D                   (0x0000FFFFuL)
+
+#define BSC_TOSCOR3_D                   (0x0000FFFFuL)
+
+#define BSC_TOSCOR4_D                   (0x0000FFFFuL)
+
+#define BSC_TOSCOR5_D                   (0x0000FFFFuL)
+
+#define BSC_TOSTR_CS0TOSTF              (0x00000001uL)
+#define BSC_TOSTR_CS1TOSTF              (0x00000002uL)
+#define BSC_TOSTR_CS2TOSTF              (0x00000004uL)
+#define BSC_TOSTR_CS3TOSTF              (0x00000008uL)
+#define BSC_TOSTR_CS4TOSTF              (0x00000010uL)
+#define BSC_TOSTR_CS5TOSTF              (0x00000020uL)
+
+#define BSC_TOENR_CS0TOEN               (0x00000001uL)
+#define BSC_TOENR_CS1TOEN               (0x00000002uL)
+#define BSC_TOENR_CS2TOEN               (0x00000004uL)
+#define BSC_TOENR_CS3TOEN               (0x00000008uL)
+#define BSC_TOENR_CS4TOEN               (0x00000010uL)
+#define BSC_TOENR_CS5TOEN               (0x00000020uL)
+
+
+/* ==== Shift values for IO registers ==== */
+#define BSC_CMNCR_HIZCNT_SHIFT          (0u)
+#define BSC_CMNCR_HIZMEM_SHIFT          (1u)
+#define BSC_CMNCR_DPRTY_SHIFT           (9u)
+#define BSC_CMNCR_AL0_SHIFT             (24u)
+#define BSC_CMNCR_TL0_SHIFT             (28u)
+
+#define BSC_CS0BCR_BSZ_SHIFT            (9u)
+#define BSC_CS0BCR_TYPE_SHIFT           (12u)
+#define BSC_CS0BCR_IWRRS_SHIFT          (16u)
+#define BSC_CS0BCR_IWRRD_SHIFT          (19u)
+#define BSC_CS0BCR_IWRWS_SHIFT          (22u)
+#define BSC_CS0BCR_IWRWD_SHIFT          (25u)
+#define BSC_CS0BCR_IWW_SHIFT            (28u)
+
+#define BSC_CS1BCR_BSZ_SHIFT            (9u)
+#define BSC_CS1BCR_TYPE_SHIFT           (12u)
+#define BSC_CS1BCR_IWRRS_SHIFT          (16u)
+#define BSC_CS1BCR_IWRRD_SHIFT          (19u)
+#define BSC_CS1BCR_IWRWS_SHIFT          (22u)
+#define BSC_CS1BCR_IWRWD_SHIFT          (25u)
+#define BSC_CS1BCR_IWW_SHIFT            (28u)
+
+#define BSC_CS2BCR_BSZ_SHIFT            (9u)
+#define BSC_CS2BCR_TYPE_SHIFT           (12u)
+#define BSC_CS2BCR_IWRRS_SHIFT          (16u)
+#define BSC_CS2BCR_IWRRD_SHIFT          (19u)
+#define BSC_CS2BCR_IWRWS_SHIFT          (22u)
+#define BSC_CS2BCR_IWRWD_SHIFT          (25u)
+#define BSC_CS2BCR_IWW_SHIFT            (28u)
+
+#define BSC_CS3BCR_BSZ_SHIFT            (9u)
+#define BSC_CS3BCR_TYPE_SHIFT           (12u)
+#define BSC_CS3BCR_IWRRS_SHIFT          (16u)
+#define BSC_CS3BCR_IWRRD_SHIFT          (19u)
+#define BSC_CS3BCR_IWRWS_SHIFT          (22u)
+#define BSC_CS3BCR_IWRWD_SHIFT          (25u)
+#define BSC_CS3BCR_IWW_SHIFT            (28u)
+
+#define BSC_CS4BCR_BSZ_SHIFT            (9u)
+#define BSC_CS4BCR_TYPE_SHIFT           (12u)
+#define BSC_CS4BCR_IWRRS_SHIFT          (16u)
+#define BSC_CS4BCR_IWRRD_SHIFT          (19u)
+#define BSC_CS4BCR_IWRWS_SHIFT          (22u)
+#define BSC_CS4BCR_IWRWD_SHIFT          (25u)
+#define BSC_CS4BCR_IWW_SHIFT            (28u)
+
+#define BSC_CS5BCR_BSZ_SHIFT            (9u)
+#define BSC_CS5BCR_TYPE_SHIFT           (12u)
+#define BSC_CS5BCR_IWRRS_SHIFT          (16u)
+#define BSC_CS5BCR_IWRRD_SHIFT          (19u)
+#define BSC_CS5BCR_IWRWS_SHIFT          (22u)
+#define BSC_CS5BCR_IWRWD_SHIFT          (25u)
+#define BSC_CS5BCR_IWW_SHIFT            (28u)
+
+#define BSC_CS0WCR_NORMAL_HW_SHIFT      (0u)
+#define BSC_CS0WCR_NORMAL_WM_SHIFT      (6u)
+#define BSC_CS0WCR_NORMAL_WR_SHIFT      (7u)
+#define BSC_CS0WCR_NORMAL_SW_SHIFT      (11u)
+#define BSC_CS0WCR_NORMAL_BAS_SHIFT     (20u)
+
+#define BSC_CS1WCR_NORMAL_HW_SHIFT      (0u)
+#define BSC_CS1WCR_NORMAL_WM_SHIFT      (6u)
+#define BSC_CS1WCR_NORMAL_WR_SHIFT      (7u)
+#define BSC_CS1WCR_NORMAL_SW_SHIFT      (11u)
+#define BSC_CS1WCR_NORMAL_WW_SHIFT      (16u)
+#define BSC_CS1WCR_NORMAL_BAS_SHIFT     (20u)
+
+#define BSC_CS2WCR_NORMAL_WM_SHIFT      (6u)
+#define BSC_CS2WCR_NORMAL_WR_SHIFT      (7u)
+#define BSC_CS2WCR_NORMAL_BAS_SHIFT     (20u)
+
+#define BSC_CS3WCR_NORMAL_WM_SHIFT      (6u)
+#define BSC_CS3WCR_NORMAL_WR_SHIFT      (7u)
+#define BSC_CS3WCR_NORMAL_BAS_SHIFT     (20u)
+
+#define BSC_CS4WCR_NORMAL_HW_SHIFT      (0u)
+#define BSC_CS4WCR_NORMAL_WM_SHIFT      (6u)
+#define BSC_CS4WCR_NORMAL_WR_SHIFT      (7u)
+#define BSC_CS4WCR_NORMAL_SW_SHIFT      (11u)
+#define BSC_CS4WCR_NORMAL_WW_SHIFT      (16u)
+#define BSC_CS4WCR_NORMAL_BAS_SHIFT     (20u)
+
+#define BSC_CS5WCR_NORMAL_HW_SHIFT      (0u)
+#define BSC_CS5WCR_NORMAL_WM_SHIFT      (6u)
+#define BSC_CS5WCR_NORMAL_WR_SHIFT      (7u)
+#define BSC_CS5WCR_NORMAL_SW_SHIFT      (11u)
+#define BSC_CS5WCR_NORMAL_WW_SHIFT      (16u)
+#define BSC_CS5WCR_NORMAL_MPXWBAS_SHIFT (20u)
+#define BSC_CS5WCR_NORMAL_SZSEL_SHIFT   (21u)
+
+#define BSC_CS0WCR_BROM_ASY_WM_SHIFT    (6u)
+#define BSC_CS0WCR_BROM_ASY_W_SHIFT     (7u)
+#define BSC_CS0WCR_BROM_ASY_BW_SHIFT    (16u)
+#define BSC_CS0WCR_BROM_ASY_BST_SHIFT   (20u)
+
+#define BSC_CS4WCR_BROM_ASY_HW_SHIFT    (0u)
+#define BSC_CS4WCR_BROM_ASY_WM_SHIFT    (6u)
+#define BSC_CS4WCR_BROM_ASY_W_SHIFT     (7u)
+#define BSC_CS4WCR_BROM_ASY_SW_SHIFT    (11u)
+#define BSC_CS4WCR_BROM_ASY_BW_SHIFT    (16u)
+#define BSC_CS4WCR_BROM_ASY_BST_SHIFT   (20u)
+
+#define BSC_CS2WCR_SDRAM_A2CL_SHIFT     (7u)
+
+#define BSC_CS3WCR_SDRAM_WTRC_SHIFT     (0u)
+#define BSC_CS3WCR_SDRAM_TRWL_SHIFT     (3u)
+#define BSC_CS3WCR_SDRAM_A3CL_SHIFT     (7u)
+#define BSC_CS3WCR_SDRAM_WTRCD_SHIFT    (10u)
+#define BSC_CS3WCR_SDRAM_WTRP_SHIFT     (13u)
+
+#define BSC_CS0WCR_BROM_SY_WM_SHIFT     (6u)
+#define BSC_CS0WCR_BROM_SY_W_SHIFT      (7u)
+#define BSC_CS0WCR_BROM_SY_BW_SHIFT     (16u)
+
+#define BSC_SDCR_A3COL_SHIFT            (0u)
+#define BSC_SDCR_A3ROW_SHIFT            (3u)
+#define BSC_SDCR_BACTV_SHIFT            (8u)
+#define BSC_SDCR_PDOWN_SHIFT            (9u)
+#define BSC_SDCR_RMODE_SHIFT            (10u)
+#define BSC_SDCR_RFSH_SHIFT             (11u)
+#define BSC_SDCR_DEEP_SHIFT             (13u)
+#define BSC_SDCR_A2COL_SHIFT            (16u)
+#define BSC_SDCR_A2ROW_SHIFT            (19u)
+
+#define BSC_RTCSR_RRC_SHIFT             (0u)
+#define BSC_RTCSR_CKS_SHIFT             (3u)
+#define BSC_RTCSR_CMIE_SHIFT            (6u)
+#define BSC_RTCSR_CMF_SHIFT             (7u)
+
+#define BSC_RTCNT_D_SHIFT               (0u)
+
+#define BSC_RTCOR_D_SHIFT               (0u)
+
+#define BSC_TOSCOR0_D_SHIFT             (0u)
+
+#define BSC_TOSCOR1_D_SHIFT             (0u)
+
+#define BSC_TOSCOR2_D_SHIFT             (0u)
+
+#define BSC_TOSCOR3_D_SHIFT             (0u)
+
+#define BSC_TOSCOR4_D_SHIFT             (0u)
+
+#define BSC_TOSCOR5_D_SHIFT             (0u)
+
+#define BSC_TOSTR_CS0TOSTF_SHIFT        (0u)
+#define BSC_TOSTR_CS1TOSTF_SHIFT        (1u)
+#define BSC_TOSTR_CS2TOSTF_SHIFT        (2u)
+#define BSC_TOSTR_CS3TOSTF_SHIFT        (3u)
+#define BSC_TOSTR_CS4TOSTF_SHIFT        (4u)
+#define BSC_TOSTR_CS5TOSTF_SHIFT        (5u)
+
+#define BSC_TOENR_CS0TOEN_SHIFT         (0u)
+#define BSC_TOENR_CS1TOEN_SHIFT         (1u)
+#define BSC_TOENR_CS2TOEN_SHIFT         (2u)
+#define BSC_TOENR_CS3TOEN_SHIFT         (3u)
+#define BSC_TOENR_CS4TOEN_SHIFT         (4u)
+#define BSC_TOENR_CS5TOEN_SHIFT         (5u)
+
+
+#endif /* BSC_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/cpg_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/cpg_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/cpg_iobitmask.h	(revision 429)
@@ -0,0 +1,461 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : cpg_iobitmask.h
+* $Rev: 1115 $
+* $Date:: 2014-07-09 15:35:02 +0900#$
+* Description : CPG register define header
+*******************************************************************************/
+#ifndef CPG_IOBITMASK_H
+#define CPG_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+#define CPG_FRQCR_IFC                   (0x0300u)
+#define CPG_FRQCR_CKOEN                 (0x3000u)
+#define CPG_FRQCR_CKOEN2                (0x4000u)
+
+#define CPG_FRQCR2_GFC                  (0x0003u)
+
+#define CPG_CPUSTS_ISBUSY               (0x10u)
+
+#define CPG_STBCR1_DEEP                 (0x40u)
+#define CPG_STBCR1_STBY                 (0x80u)
+
+#define CPG_STBCR2_MSTP20               (0x01u)
+#define CPG_STBCR2_HIZ                  (0x80u)
+
+#define CPG_STBREQ1_STBRQ10             (0x01u)
+#define CPG_STBREQ1_STBRQ12             (0x04u)
+#define CPG_STBREQ1_STBRQ13             (0x08u)
+#define CPG_STBREQ1_STBRQ15             (0x20u)
+
+#define CPG_STBREQ2_STBRQ20             (0x01u)
+#define CPG_STBREQ2_STBRQ21             (0x02u)
+#define CPG_STBREQ2_STBRQ22             (0x04u)
+#define CPG_STBREQ2_STBRQ23             (0x08u)
+#define CPG_STBREQ2_STBRQ24             (0x10u)
+#define CPG_STBREQ2_STBRQ25             (0x20u)
+#define CPG_STBREQ2_STBRQ26             (0x40u)
+#define CPG_STBREQ2_STBRQ27             (0x80u)
+
+#define CPG_STBACK1_STBAK10             (0x01u)
+#define CPG_STBACK1_STBAK12             (0x04u)
+#define CPG_STBACK1_STBAK13             (0x08u)
+#define CPG_STBACK1_STBAK15             (0x20u)
+
+#define CPG_STBACK2_STBAK20             (0x01u)
+#define CPG_STBACK2_STBAK21             (0x02u)
+#define CPG_STBACK2_STBAK22             (0x04u)
+#define CPG_STBACK2_STBAK23             (0x08u)
+#define CPG_STBACK2_STBAK24             (0x10u)
+#define CPG_STBACK2_STBAK25             (0x20u)
+#define CPG_STBACK2_STBAK26             (0x40u)
+#define CPG_STBACK2_STBAK27             (0x80u)
+
+#define CPG_SYSCR1_VRAME0               (0x01u)
+#define CPG_SYSCR1_VRAME1               (0x02u)
+#define CPG_SYSCR1_VRAME2               (0x04u)
+#define CPG_SYSCR1_VRAME3               (0x08u)
+#define CPG_SYSCR1_VRAME4               (0x10u)
+
+#define CPG_SYSCR2_VRAMWE0              (0x01u)
+#define CPG_SYSCR2_VRAMWE1              (0x02u)
+#define CPG_SYSCR2_VRAMWE2              (0x04u)
+#define CPG_SYSCR2_VRAMWE3              (0x08u)
+#define CPG_SYSCR2_VRAMWE4              (0x10u)
+
+#define CPG_SYSCR3_RRAMWE0              (0x01u)
+#define CPG_SYSCR3_RRAMWE1              (0x02u)
+#define CPG_SYSCR3_RRAMWE2              (0x04u)
+#define CPG_SYSCR3_RRAMWE3              (0x08u)
+
+#define CPG_STBCR3_MSTP30               (0x01u)
+#define CPG_STBCR3_MSTP31               (0x02u)
+#define CPG_STBCR3_MSTP32               (0x04u)
+#define CPG_STBCR3_MSTP33               (0x08u)
+#define CPG_STBCR3_MSTP34               (0x10u)
+#define CPG_STBCR3_MSTP35               (0x20u)
+#define CPG_STBCR3_MSTP36               (0x40u)
+#define CPG_STBCR3_MSTP37               (0x80u)
+
+#define CPG_STBCR4_MSTP40               (0x01u)
+#define CPG_STBCR4_MSTP41               (0x02u)
+#define CPG_STBCR4_MSTP42               (0x04u)
+#define CPG_STBCR4_MSTP43               (0x08u)
+#define CPG_STBCR4_MSTP44               (0x10u)
+#define CPG_STBCR4_MSTP45               (0x20u)
+#define CPG_STBCR4_MSTP46               (0x40u)
+#define CPG_STBCR4_MSTP47               (0x80u)
+
+#define CPG_STBCR5_MSTP50               (0x01u)
+#define CPG_STBCR5_MSTP51               (0x02u)
+#define CPG_STBCR5_MSTP52               (0x04u)
+#define CPG_STBCR5_MSTP53               (0x08u)
+#define CPG_STBCR5_MSTP54               (0x10u)
+#define CPG_STBCR5_MSTP55               (0x20u)
+#define CPG_STBCR5_MSTP56               (0x40u)
+#define CPG_STBCR5_MSTP57               (0x80u)
+
+#define CPG_STBCR6_MSTP60               (0x01u)
+#define CPG_STBCR6_MSTP61               (0x02u)
+#define CPG_STBCR6_MSTP62               (0x04u)
+#define CPG_STBCR6_MSTP63               (0x08u)
+#define CPG_STBCR6_MSTP64               (0x10u)
+#define CPG_STBCR6_MSTP65               (0x20u)
+#define CPG_STBCR6_MSTP66               (0x40u)
+#define CPG_STBCR6_MSTP67               (0x80u)
+
+#define CPG_STBCR7_MSTP70               (0x01u)
+#define CPG_STBCR7_MSTP71               (0x02u)
+#define CPG_STBCR7_MSTP73               (0x08u)
+#define CPG_STBCR7_MSTP74               (0x10u)
+#define CPG_STBCR7_MSTP76               (0x40u)
+#define CPG_STBCR7_MSTP77               (0x80u)
+
+#define CPG_STBCR8_MSTP81               (0x02u)
+#define CPG_STBCR8_MSTP82               (0x04u)
+#define CPG_STBCR8_MSTP83               (0x08u)
+#define CPG_STBCR8_MSTP84               (0x10u)
+#define CPG_STBCR8_MSTP85               (0x20u)
+#define CPG_STBCR8_MSTP86               (0x40u)
+#define CPG_STBCR8_MSTP87               (0x80u)
+
+#define CPG_STBCR9_MSTP90               (0x01u)
+#define CPG_STBCR9_MSTP91               (0x02u)
+#define CPG_STBCR9_MSTP92               (0x04u)
+#define CPG_STBCR9_MSTP93               (0x08u)
+#define CPG_STBCR9_MSTP94               (0x10u)
+#define CPG_STBCR9_MSTP95               (0x20u)
+#define CPG_STBCR9_MSTP96               (0x40u)
+#define CPG_STBCR9_MSTP97               (0x80u)
+
+#define CPG_STBCR10_MSTP100             (0x01u)
+#define CPG_STBCR10_MSTP101             (0x02u)
+#define CPG_STBCR10_MSTP102             (0x04u)
+#define CPG_STBCR10_MSTP103             (0x08u)
+#define CPG_STBCR10_MSTP104             (0x10u)
+#define CPG_STBCR10_MSTP105             (0x20u)
+#define CPG_STBCR10_MSTP106             (0x40u)
+#define CPG_STBCR10_MSTP107             (0x80u)
+
+#define CPG_STBCR11_MSTP110             (0x01u)
+#define CPG_STBCR11_MSTP111             (0x02u)
+#define CPG_STBCR11_MSTP112             (0x04u)
+#define CPG_STBCR11_MSTP113             (0x08u)
+#define CPG_STBCR11_MSTP114             (0x10u)
+#define CPG_STBCR11_MSTP115             (0x20u)
+
+#define CPG_STBCR12_MSTP120             (0x01u)
+#define CPG_STBCR12_MSTP121             (0x02u)
+#define CPG_STBCR12_MSTP122             (0x04u)
+#define CPG_STBCR12_MSTP123             (0x08u)
+
+#define CPG_STBCR13_MSTP131             (0x02u)
+#define CPG_STBCR13_MSTP132             (0x04u)
+
+#define CPG_SWRSTCR1_SRST11             (0x02u)
+#define CPG_SWRSTCR1_SRST12             (0x04u)
+#define CPG_SWRSTCR1_SRST13             (0x08u)
+#define CPG_SWRSTCR1_SRST14             (0x10u)
+#define CPG_SWRSTCR1_SRST15             (0x20u)
+#define CPG_SWRSTCR1_SRST16             (0x40u)
+#define CPG_SWRSTCR1_AXTALE             (0x80u)
+
+#define CPG_SWRSTCR2_SRST21             (0x02u)
+
+#define CPG_SWRSTCR3_SRST32             (0x04u)
+
+#define CPG_RRAMKP_RRAMKP0              (0x01u)
+#define CPG_RRAMKP_RRAMKP1              (0x02u)
+#define CPG_RRAMKP_RRAMKP2              (0x04u)
+#define CPG_RRAMKP_RRAMKP3              (0x08u)
+
+#define CPG_DSCTR_RAMBOOT               (0x40u)
+#define CPG_DSCTR_EBUSKEEPE             (0x80u)
+
+#define CPG_DSSSR_P8_2                  (0x0001u)
+#define CPG_DSSSR_P9_1                  (0x0002u)
+#define CPG_DSSSR_P2_15                 (0x0004u)
+#define CPG_DSSSR_P7_8                  (0x0008u)
+#define CPG_DSSSR_P5_9                  (0x0010u)
+#define CPG_DSSSR_P6_4                  (0x0020u)
+#define CPG_DSSSR_RTCAR                 (0x0040u)
+#define CPG_DSSSR_NMI                   (0x0100u)
+#define CPG_DSSSR_P3_3                  (0x0200u)
+#define CPG_DSSSR_P8_7                  (0x0400u)
+#define CPG_DSSSR_P2_12                 (0x0800u)
+#define CPG_DSSSR_P3_1                  (0x1000u)
+#define CPG_DSSSR_P3_9                  (0x2000u)
+#define CPG_DSSSR_P6_2                  (0x4000u)
+
+#define CPG_DSESR_P8_2E                 (0x0001u)
+#define CPG_DSESR_P9_1E                 (0x0002u)
+#define CPG_DSESR_P2_15E                (0x0004u)
+#define CPG_DSESR_P7_8E                 (0x0008u)
+#define CPG_DSESR_P5_9E                 (0x0010u)
+#define CPG_DSESR_P6_4E                 (0x0020u)
+#define CPG_DSESR_NMIE                  (0x0100u)
+#define CPG_DSESR_P3_3E                 (0x0200u)
+#define CPG_DSESR_P8_7E                 (0x0400u)
+#define CPG_DSESR_P2_12E                (0x0800u)
+#define CPG_DSESR_P3_1E                 (0x1000u)
+#define CPG_DSESR_P3_9E                 (0x2000u)
+#define CPG_DSESR_P6_2E                 (0x4000u)
+
+#define CPG_DSFR_P8_2F                  (0x0001u)
+#define CPG_DSFR_P9_1F                  (0x0002u)
+#define CPG_DSFR_P2_15F                 (0x0004u)
+#define CPG_DSFR_P7_8F                  (0x0008u)
+#define CPG_DSFR_P5_9F                  (0x0010u)
+#define CPG_DSFR_P6_4F                  (0x0020u)
+#define CPG_DSFR_RTCARF                 (0x0040u)
+#define CPG_DSFR_NMIF                   (0x0100u)
+#define CPG_DSFR_P3_3F                  (0x0200u)
+#define CPG_DSFR_P8_7F                  (0x0400u)
+#define CPG_DSFR_P2_12F                 (0x0800u)
+#define CPG_DSFR_P3_1F                  (0x1000u)
+#define CPG_DSFR_P3_9F                  (0x2000u)
+#define CPG_DSFR_P6_2F                  (0x4000u)
+#define CPG_DSFR_IOKEEP                 (0x8000u)
+
+#define CPG_XTALCTR_GAIN0               (0x01u)
+#define CPG_XTALCTR_GAIN1               (0x02u)
+
+
+/* ==== Shift values for IO registers ==== */
+#define CPG_FRQCR_IFC_SHIFT             (8u)
+#define CPG_FRQCR_CKOEN_SHIFT           (12u)
+#define CPG_FRQCR_CKOEN2_SHIFT          (14u)
+
+#define CPG_FRQCR2_GFC_SHIFT            (0u)
+
+#define CPG_CPUSTS_ISBUSY_SHIFT         (4u)
+
+#define CPG_STBCR1_DEEP_SHIFT           (6u)
+#define CPG_STBCR1_STBY_SHIFT           (7u)
+
+#define CPG_STBCR2_MSTP20_SHIFT         (0u)
+#define CPG_STBCR2_HIZ_SHIFT            (7u)
+
+#define CPG_STBREQ1_STBRQ10_SHIFT       (0u)
+#define CPG_STBREQ1_STBRQ12_SHIFT       (2u)
+#define CPG_STBREQ1_STBRQ13_SHIFT       (3u)
+#define CPG_STBREQ1_STBRQ15_SHIFT       (5u)
+
+#define CPG_STBREQ2_STBRQ20_SHIFT       (0u)
+#define CPG_STBREQ2_STBRQ21_SHIFT       (1u)
+#define CPG_STBREQ2_STBRQ22_SHIFT       (2u)
+#define CPG_STBREQ2_STBRQ23_SHIFT       (3u)
+#define CPG_STBREQ2_STBRQ24_SHIFT       (4u)
+#define CPG_STBREQ2_STBRQ25_SHIFT       (5u)
+#define CPG_STBREQ2_STBRQ26_SHIFT       (6u)
+#define CPG_STBREQ2_STBRQ27_SHIFT       (7u)
+
+#define CPG_STBACK1_STBAK10_SHIFT       (0u)
+#define CPG_STBACK1_STBAK12_SHIFT       (2u)
+#define CPG_STBACK1_STBAK13_SHIFT       (3u)
+#define CPG_STBACK1_STBAK15_SHIFT       (5u)
+
+#define CPG_STBACK2_STBAK20_SHIFT       (0u)
+#define CPG_STBACK2_STBAK21_SHIFT       (1u)
+#define CPG_STBACK2_STBAK22_SHIFT       (2u)
+#define CPG_STBACK2_STBAK23_SHIFT       (3u)
+#define CPG_STBACK2_STBAK24_SHIFT       (4u)
+#define CPG_STBACK2_STBAK25_SHIFT       (5u)
+#define CPG_STBACK2_STBAK26_SHIFT       (6u)
+#define CPG_STBACK2_STBAK27_SHIFT       (7u)
+
+#define CPG_SYSCR1_VRAME0_SHIFT         (0u)
+#define CPG_SYSCR1_VRAME1_SHIFT         (1u)
+#define CPG_SYSCR1_VRAME2_SHIFT         (2u)
+#define CPG_SYSCR1_VRAME3_SHIFT         (3u)
+#define CPG_SYSCR1_VRAME4_SHIFT         (4u)
+
+#define CPG_SYSCR2_VRAMWE0_SHIFT        (0u)
+#define CPG_SYSCR2_VRAMWE1_SHIFT        (1u)
+#define CPG_SYSCR2_VRAMWE2_SHIFT        (2u)
+#define CPG_SYSCR2_VRAMWE3_SHIFT        (3u)
+#define CPG_SYSCR2_VRAMWE4_SHIFT        (4u)
+
+#define CPG_SYSCR3_RRAMWE0_SHIFT        (0u)
+#define CPG_SYSCR3_RRAMWE1_SHIFT        (1u)
+#define CPG_SYSCR3_RRAMWE2_SHIFT        (2u)
+#define CPG_SYSCR3_RRAMWE3_SHIFT        (3u)
+
+#define CPG_STBCR3_MSTP30_SHIFT         (0u)
+#define CPG_STBCR3_MSTP31_SHIFT         (1u)
+#define CPG_STBCR3_MSTP32_SHIFT         (2u)
+#define CPG_STBCR3_MSTP33_SHIFT         (3u)
+#define CPG_STBCR3_MSTP34_SHIFT         (4u)
+#define CPG_STBCR3_MSTP35_SHIFT         (5u)
+#define CPG_STBCR3_MSTP36_SHIFT         (6u)
+#define CPG_STBCR3_MSTP37_SHIFT         (7u)
+
+#define CPG_STBCR4_MSTP40_SHIFT         (0u)
+#define CPG_STBCR4_MSTP41_SHIFT         (1u)
+#define CPG_STBCR4_MSTP42_SHIFT         (2u)
+#define CPG_STBCR4_MSTP43_SHIFT         (3u)
+#define CPG_STBCR4_MSTP44_SHIFT         (4u)
+#define CPG_STBCR4_MSTP45_SHIFT         (5u)
+#define CPG_STBCR4_MSTP46_SHIFT         (6u)
+#define CPG_STBCR4_MSTP47_SHIFT         (7u)
+
+#define CPG_STBCR5_MSTP50_SHIFT         (0u)
+#define CPG_STBCR5_MSTP51_SHIFT         (1u)
+#define CPG_STBCR5_MSTP52_SHIFT         (2u)
+#define CPG_STBCR5_MSTP53_SHIFT         (3u)
+#define CPG_STBCR5_MSTP54_SHIFT         (4u)
+#define CPG_STBCR5_MSTP55_SHIFT         (5u)
+#define CPG_STBCR5_MSTP56_SHIFT         (6u)
+#define CPG_STBCR5_MSTP57_SHIFT         (7u)
+
+#define CPG_STBCR6_MSTP60_SHIFT         (0u)
+#define CPG_STBCR6_MSTP61_SHIFT         (1u)
+#define CPG_STBCR6_MSTP62_SHIFT         (2u)
+#define CPG_STBCR6_MSTP63_SHIFT         (3u)
+#define CPG_STBCR6_MSTP64_SHIFT         (4u)
+#define CPG_STBCR6_MSTP65_SHIFT         (5u)
+#define CPG_STBCR6_MSTP66_SHIFT         (6u)
+#define CPG_STBCR6_MSTP67_SHIFT         (7u)
+
+#define CPG_STBCR7_MSTP70_SHIFT         (0u)
+#define CPG_STBCR7_MSTP71_SHIFT         (1u)
+#define CPG_STBCR7_MSTP73_SHIFT         (3u)
+#define CPG_STBCR7_MSTP74_SHIFT         (4u)
+#define CPG_STBCR7_MSTP76_SHIFT         (6u)
+#define CPG_STBCR7_MSTP77_SHIFT         (7u)
+
+#define CPG_STBCR8_MSTP81_SHIFT         (1u)
+#define CPG_STBCR8_MSTP82_SHIFT         (2u)
+#define CPG_STBCR8_MSTP83_SHIFT         (3u)
+#define CPG_STBCR8_MSTP84_SHIFT         (4u)
+#define CPG_STBCR8_MSTP85_SHIFT         (5u)
+#define CPG_STBCR8_MSTP86_SHIFT         (6u)
+#define CPG_STBCR8_MSTP87_SHIFT         (7u)
+
+#define CPG_STBCR9_MSTP90_SHIFT         (0u)
+#define CPG_STBCR9_MSTP91_SHIFT         (1u)
+#define CPG_STBCR9_MSTP92_SHIFT         (2u)
+#define CPG_STBCR9_MSTP93_SHIFT         (3u)
+#define CPG_STBCR9_MSTP94_SHIFT         (4u)
+#define CPG_STBCR9_MSTP95_SHIFT         (5u)
+#define CPG_STBCR9_MSTP96_SHIFT         (6u)
+#define CPG_STBCR9_MSTP97_SHIFT         (7u)
+
+#define CPG_STBCR10_MSTP100_SHIFT       (0u)
+#define CPG_STBCR10_MSTP101_SHIFT       (1u)
+#define CPG_STBCR10_MSTP102_SHIFT       (2u)
+#define CPG_STBCR10_MSTP103_SHIFT       (3u)
+#define CPG_STBCR10_MSTP104_SHIFT       (4u)
+#define CPG_STBCR10_MSTP105_SHIFT       (5u)
+#define CPG_STBCR10_MSTP106_SHIFT       (6u)
+#define CPG_STBCR10_MSTP107_SHIFT       (7u)
+
+#define CPG_STBCR11_MSTP110_SHIFT       (0u)
+#define CPG_STBCR11_MSTP111_SHIFT       (1u)
+#define CPG_STBCR11_MSTP112_SHIFT       (2u)
+#define CPG_STBCR11_MSTP113_SHIFT       (3u)
+#define CPG_STBCR11_MSTP114_SHIFT       (4u)
+#define CPG_STBCR11_MSTP115_SHIFT       (5u)
+
+#define CPG_STBCR12_MSTP120_SHIFT       (0u)
+#define CPG_STBCR12_MSTP121_SHIFT       (1u)
+#define CPG_STBCR12_MSTP122_SHIFT       (2u)
+#define CPG_STBCR12_MSTP123_SHIFT       (3u)
+
+#define CPG_STBCR13_MSTP131_SHIFT       (1u)
+#define CPG_STBCR13_MSTP132_SHIFT       (2u)
+
+#define CPG_SWRSTCR1_SRST11_SHIFT       (1u)
+#define CPG_SWRSTCR1_SRST12_SHIFT       (2u)
+#define CPG_SWRSTCR1_SRST13_SHIFT       (3u)
+#define CPG_SWRSTCR1_SRST14_SHIFT       (4u)
+#define CPG_SWRSTCR1_SRST15_SHIFT       (5u)
+#define CPG_SWRSTCR1_SRST16_SHIFT       (6u)
+#define CPG_SWRSTCR1_AXTALE_SHIFT       (7u)
+
+#define CPG_SWRSTCR2_SRST21_SHIFT       (1u)
+
+#define CPG_SWRSTCR3_SRST32_SHIFT       (2u)
+
+#define CPG_RRAMKP_RRAMKP0_SHIFT        (0u)
+#define CPG_RRAMKP_RRAMKP1_SHIFT        (1u)
+#define CPG_RRAMKP_RRAMKP2_SHIFT        (2u)
+#define CPG_RRAMKP_RRAMKP3_SHIFT        (3u)
+
+#define CPG_DSCTR_RAMBOOT_SHIFT         (6u)
+#define CPG_DSCTR_EBUSKEEPE_SHIFT       (7u)
+
+#define CPG_DSSSR_P8_2_SHIFT            (0u)
+#define CPG_DSSSR_P9_1_SHIFT            (1u)
+#define CPG_DSSSR_P2_15_SHIFT           (2u)
+#define CPG_DSSSR_P7_8_SHIFT            (3u)
+#define CPG_DSSSR_P5_9_SHIFT            (4u)
+#define CPG_DSSSR_P6_4_SHIFT            (5u)
+#define CPG_DSSSR_RTCAR_SHIFT           (6u)
+#define CPG_DSSSR_NMI_SHIFT             (8u)
+#define CPG_DSSSR_P3_3_SHIFT            (9u)
+#define CPG_DSSSR_P8_7_SHIFT            (10u)
+#define CPG_DSSSR_P2_12_SHIFT           (11u)
+#define CPG_DSSSR_P3_1_SHIFT            (12u)
+#define CPG_DSSSR_P3_9_SHIFT            (13u)
+#define CPG_DSSSR_P6_2_SHIFT            (14u)
+
+#define CPG_DSESR_P8_2E_SHIFT           (0u)
+#define CPG_DSESR_P9_1E_SHIFT           (1u)
+#define CPG_DSESR_P2_15E_SHIFT          (2u)
+#define CPG_DSESR_P7_8E_SHIFT           (3u)
+#define CPG_DSESR_P5_9E_SHIFT           (4u)
+#define CPG_DSESR_P6_4E_SHIFT           (5u)
+#define CPG_DSESR_NMIE_SHIFT            (8u)
+#define CPG_DSESR_P3_3E_SHIFT           (9u)
+#define CPG_DSESR_P8_7E_SHIFT           (10u)
+#define CPG_DSESR_P2_12E_SHIFT          (11u)
+#define CPG_DSESR_P3_1E_SHIFT           (12u)
+#define CPG_DSESR_P3_9E_SHIFT           (13u)
+#define CPG_DSESR_P6_2E_SHIFT           (14u)
+
+#define CPG_DSFR_P8_2F_SHIFT            (0u)
+#define CPG_DSFR_P9_1F_SHIFT            (1u)
+#define CPG_DSFR_P2_15F_SHIFT           (2u)
+#define CPG_DSFR_P7_8F_SHIFT            (3u)
+#define CPG_DSFR_P5_9F_SHIFT            (4u)
+#define CPG_DSFR_P6_4F_SHIFT            (5u)
+#define CPG_DSFR_RTCARF_SHIFT           (6u)
+#define CPG_DSFR_NMIF_SHIFT             (8u)
+#define CPG_DSFR_P3_3F_SHIFT            (9u)
+#define CPG_DSFR_P8_7F_SHIFT            (10u)
+#define CPG_DSFR_P2_12F_SHIFT           (11u)
+#define CPG_DSFR_P3_1F_SHIFT            (12u)
+#define CPG_DSFR_P3_9F_SHIFT            (13u)
+#define CPG_DSFR_P6_2F_SHIFT            (14u)
+#define CPG_DSFR_IOKEEP_SHIFT           (15u)
+
+#define CPG_XTALCTR_GAIN0_SHIFT         (0u)
+#define CPG_XTALCTR_GAIN1_SHIFT         (1u)
+
+
+#endif /* CPG_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/dmac_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/dmac_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/dmac_iobitmask.h	(revision 429)
@@ -0,0 +1,2675 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : dmac_iobitmask.h
+* $Rev: 1114 $
+* $Date:: 2014-07-09 14:56:39 +0900#$
+* Description : DMAC register define header
+*******************************************************************************/
+#ifndef DMAC_IOBITMASK_H
+#define DMAC_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+/* ---- DMAC0 ---- */
+#define DMAC0_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC0_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC0_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC0_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC0_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC0_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC0_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC0_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC0_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC0_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC0_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC0_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC0_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC0_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC0_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC0_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC0_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC0_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC0_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC0_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC0_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC0_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC0_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC0_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC0_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC0_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC0_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC0_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC0_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC0_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC0_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC0_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC0_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC0_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC0_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC0_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC0_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC0_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC0_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC0_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC0_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC0_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC0_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC0_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC0_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC0_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC0_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC0_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC0_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC0_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC0_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC0_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC0_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC0_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC0_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC0_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC1 ---- */
+#define DMAC1_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC1_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC1_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC1_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC1_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC1_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC1_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC1_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC1_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC1_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC1_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC1_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC1_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC1_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC1_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC1_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC1_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC1_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC1_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC1_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC1_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC1_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC1_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC1_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC1_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC1_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC1_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC1_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC1_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC1_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC1_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC1_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC1_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC1_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC1_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC1_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC1_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC1_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC1_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC1_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC1_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC1_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC1_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC1_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC1_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC1_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC1_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC1_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC1_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC1_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC1_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC1_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC1_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC1_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC1_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC1_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC2 ---- */
+#define DMAC2_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC2_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC2_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC2_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC2_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC2_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC2_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC2_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC2_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC2_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC2_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC2_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC2_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC2_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC2_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC2_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC2_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC2_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC2_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC2_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC2_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC2_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC2_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC2_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC2_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC2_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC2_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC2_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC2_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC2_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC2_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC2_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC2_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC2_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC2_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC2_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC2_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC2_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC2_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC2_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC2_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC2_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC2_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC2_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC2_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC2_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC2_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC2_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC2_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC2_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC2_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC2_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC2_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC2_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC2_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC2_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC3 ---- */
+#define DMAC3_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC3_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC3_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC3_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC3_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC3_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC3_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC3_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC3_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC3_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC3_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC3_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC3_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC3_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC3_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC3_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC3_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC3_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC3_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC3_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC3_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC3_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC3_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC3_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC3_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC3_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC3_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC3_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC3_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC3_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC3_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC3_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC3_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC3_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC3_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC3_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC3_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC3_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC3_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC3_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC3_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC3_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC3_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC3_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC3_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC3_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC3_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC3_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC3_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC3_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC3_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC3_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC3_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC3_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC3_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC3_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC4 ---- */
+#define DMAC4_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC4_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC4_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC4_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC4_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC4_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC4_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC4_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC4_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC4_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC4_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC4_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC4_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC4_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC4_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC4_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC4_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC4_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC4_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC4_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC4_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC4_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC4_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC4_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC4_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC4_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC4_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC4_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC4_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC4_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC4_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC4_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC4_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC4_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC4_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC4_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC4_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC4_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC4_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC4_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC4_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC4_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC4_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC4_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC4_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC4_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC4_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC4_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC4_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC4_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC4_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC4_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC4_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC4_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC4_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC4_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC5 ---- */
+#define DMAC5_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC5_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC5_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC5_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC5_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC5_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC5_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC5_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC5_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC5_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC5_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC5_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC5_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC5_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC5_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC5_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC5_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC5_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC5_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC5_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC5_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC5_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC5_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC5_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC5_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC5_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC5_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC5_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC5_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC5_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC5_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC5_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC5_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC5_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC5_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC5_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC5_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC5_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC5_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC5_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC5_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC5_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC5_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC5_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC5_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC5_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC5_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC5_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC5_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC5_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC5_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC5_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC5_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC5_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC5_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC5_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC6 ---- */
+#define DMAC6_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC6_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC6_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC6_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC6_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC6_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC6_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC6_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC6_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC6_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC6_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC6_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC6_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC6_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC6_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC6_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC6_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC6_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC6_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC6_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC6_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC6_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC6_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC6_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC6_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC6_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC6_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC6_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC6_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC6_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC6_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC6_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC6_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC6_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC6_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC6_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC6_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC6_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC6_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC6_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC6_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC6_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC6_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC6_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC6_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC6_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC6_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC6_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC6_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC6_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC6_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC6_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC6_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC6_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC6_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC6_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC7 ---- */
+#define DMAC7_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC7_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC7_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC7_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC7_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC7_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC7_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC7_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC7_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC7_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC7_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC7_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC7_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC7_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC7_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC7_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC7_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC7_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC7_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC7_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC7_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC7_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC7_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC7_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC7_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC7_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC7_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC7_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC7_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC7_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC7_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC7_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC7_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC7_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC7_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC7_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC7_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC7_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC7_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC7_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC7_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC7_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC7_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC7_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC7_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC7_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC7_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC7_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC7_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC7_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC7_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC7_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC7_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC7_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC7_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC7_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC0-7 ---- */
+#define DMAC07_DCTRL_0_7_PR                 (0x00000001uL)
+#define DMAC07_DCTRL_0_7_LVINT              (0x00000002uL)
+#define DMAC07_DCTRL_0_7_LDCA               (0x0000003CuL)
+#define DMAC07_DCTRL_0_7_LWCA               (0x000003C0uL)
+
+#define DMAC07_DSTAT_EN_0_7_EN0             (0x00000001uL)
+#define DMAC07_DSTAT_EN_0_7_EN1             (0x00000002uL)
+#define DMAC07_DSTAT_EN_0_7_EN2             (0x00000004uL)
+#define DMAC07_DSTAT_EN_0_7_EN3             (0x00000008uL)
+#define DMAC07_DSTAT_EN_0_7_EN4             (0x00000010uL)
+#define DMAC07_DSTAT_EN_0_7_EN5             (0x00000020uL)
+#define DMAC07_DSTAT_EN_0_7_EN6             (0x00000040uL)
+#define DMAC07_DSTAT_EN_0_7_EN7             (0x00000080uL)
+
+#define DMAC07_DSTAT_ER_0_7_ER0             (0x00000001uL)
+#define DMAC07_DSTAT_ER_0_7_ER1             (0x00000002uL)
+#define DMAC07_DSTAT_ER_0_7_ER2             (0x00000004uL)
+#define DMAC07_DSTAT_ER_0_7_ER3             (0x00000008uL)
+#define DMAC07_DSTAT_ER_0_7_ER4             (0x00000010uL)
+#define DMAC07_DSTAT_ER_0_7_ER5             (0x00000020uL)
+#define DMAC07_DSTAT_ER_0_7_ER6             (0x00000040uL)
+#define DMAC07_DSTAT_ER_0_7_ER7             (0x00000080uL)
+
+#define DMAC07_DSTAT_END_0_7_END0           (0x00000001uL)
+#define DMAC07_DSTAT_END_0_7_END1           (0x00000002uL)
+#define DMAC07_DSTAT_END_0_7_END2           (0x00000004uL)
+#define DMAC07_DSTAT_END_0_7_END3           (0x00000008uL)
+#define DMAC07_DSTAT_END_0_7_END4           (0x00000010uL)
+#define DMAC07_DSTAT_END_0_7_END5           (0x00000020uL)
+#define DMAC07_DSTAT_END_0_7_END6           (0x00000040uL)
+#define DMAC07_DSTAT_END_0_7_END7           (0x00000080uL)
+
+#define DMAC07_DSTAT_TC_0_7_TC0             (0x00000001uL)
+#define DMAC07_DSTAT_TC_0_7_TC1             (0x00000002uL)
+#define DMAC07_DSTAT_TC_0_7_TC2             (0x00000004uL)
+#define DMAC07_DSTAT_TC_0_7_TC3             (0x00000008uL)
+#define DMAC07_DSTAT_TC_0_7_TC4             (0x00000010uL)
+#define DMAC07_DSTAT_TC_0_7_TC5             (0x00000020uL)
+#define DMAC07_DSTAT_TC_0_7_TC6             (0x00000040uL)
+#define DMAC07_DSTAT_TC_0_7_TC7             (0x00000080uL)
+
+#define DMAC07_DSTAT_SUS_0_7_SUS0           (0x00000001uL)
+#define DMAC07_DSTAT_SUS_0_7_SUS1           (0x00000002uL)
+#define DMAC07_DSTAT_SUS_0_7_SUS2           (0x00000004uL)
+#define DMAC07_DSTAT_SUS_0_7_SUS3           (0x00000008uL)
+#define DMAC07_DSTAT_SUS_0_7_SUS4           (0x00000010uL)
+#define DMAC07_DSTAT_SUS_0_7_SUS5           (0x00000020uL)
+#define DMAC07_DSTAT_SUS_0_7_SUS6           (0x00000040uL)
+#define DMAC07_DSTAT_SUS_0_7_SUS7           (0x00000080uL)
+
+/* ---- DMAC8 ---- */
+#define DMAC8_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC8_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC8_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC8_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC8_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC8_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC8_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC8_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC8_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC8_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC8_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC8_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC8_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC8_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC8_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC8_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC8_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC8_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC8_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC8_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC8_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC8_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC8_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC8_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC8_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC8_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC8_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC8_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC8_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC8_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC8_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC8_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC8_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC8_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC8_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC8_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC8_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC8_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC8_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC8_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC8_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC8_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC8_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC8_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC8_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC8_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC8_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC8_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC8_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC8_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC8_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC8_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC8_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC8_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC8_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC8_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC9 ---- */
+#define DMAC9_N0SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC9_N0DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC9_N0TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC9_N1SA_n_SA                     (0xFFFFFFFFuL)
+
+#define DMAC9_N1DA_n_DA                     (0xFFFFFFFFuL)
+
+#define DMAC9_N1TB_n_TB                     (0xFFFFFFFFuL)
+
+#define DMAC9_CRSA_n_CRSA                   (0xFFFFFFFFuL)
+
+#define DMAC9_CRDA_n_CRDA                   (0xFFFFFFFFuL)
+
+#define DMAC9_CRTB_n_CRTB                   (0xFFFFFFFFuL)
+
+#define DMAC9_CHSTAT_n_EN                   (0x00000001uL)
+#define DMAC9_CHSTAT_n_RQST                 (0x00000002uL)
+#define DMAC9_CHSTAT_n_TACT                 (0x00000004uL)
+#define DMAC9_CHSTAT_n_SUS                  (0x00000008uL)
+#define DMAC9_CHSTAT_n_ER                   (0x00000010uL)
+#define DMAC9_CHSTAT_n_END                  (0x00000020uL)
+#define DMAC9_CHSTAT_n_TC                   (0x00000040uL)
+#define DMAC9_CHSTAT_n_SR                   (0x00000080uL)
+#define DMAC9_CHSTAT_n_DL                   (0x00000100uL)
+#define DMAC9_CHSTAT_n_DW                   (0x00000200uL)
+#define DMAC9_CHSTAT_n_DER                  (0x00000400uL)
+#define DMAC9_CHSTAT_n_MODE                 (0x00000800uL)
+#define DMAC9_CHSTAT_n_INTMSK               (0x00010000uL)
+
+#define DMAC9_CHCTRL_n_SETEN                (0x00000001uL)
+#define DMAC9_CHCTRL_n_CLREN                (0x00000002uL)
+#define DMAC9_CHCTRL_n_STG                  (0x00000004uL)
+#define DMAC9_CHCTRL_n_SWRST                (0x00000008uL)
+#define DMAC9_CHCTRL_n_CLRRQ                (0x00000010uL)
+#define DMAC9_CHCTRL_n_CLREND               (0x00000020uL)
+#define DMAC9_CHCTRL_n_CLRTC                (0x00000040uL)
+#define DMAC9_CHCTRL_n_SETSUS               (0x00000100uL)
+#define DMAC9_CHCTRL_n_CLRSUS               (0x00000200uL)
+#define DMAC9_CHCTRL_n_SETINTMSK            (0x00010000uL)
+#define DMAC9_CHCTRL_n_CLRINTMSK            (0x00020000uL)
+
+#define DMAC9_CHCFG_n_SEL                   (0x00000007uL)
+#define DMAC9_CHCFG_n_REQD                  (0x00000008uL)
+#define DMAC9_CHCFG_n_LOEN                  (0x00000010uL)
+#define DMAC9_CHCFG_n_HIEN                  (0x00000020uL)
+#define DMAC9_CHCFG_n_LVL                   (0x00000040uL)
+#define DMAC9_CHCFG_n_AM                    (0x00000700uL)
+#define DMAC9_CHCFG_n_SDS                   (0x0000F000uL)
+#define DMAC9_CHCFG_n_DDS                   (0x000F0000uL)
+#define DMAC9_CHCFG_n_SAD                   (0x00100000uL)
+#define DMAC9_CHCFG_n_DAD                   (0x00200000uL)
+#define DMAC9_CHCFG_n_TM                    (0x00400000uL)
+#define DMAC9_CHCFG_n_DEM                   (0x01000000uL)
+#define DMAC9_CHCFG_n_TCM                   (0x02000000uL)
+#define DMAC9_CHCFG_n_SBE                   (0x08000000uL)
+#define DMAC9_CHCFG_n_RSEL                  (0x10000000uL)
+#define DMAC9_CHCFG_n_RSW                   (0x20000000uL)
+#define DMAC9_CHCFG_n_REN                   (0x40000000uL)
+#define DMAC9_CHCFG_n_DMS                   (0x80000000uL)
+
+#define DMAC9_CHITVL_n_ITVL                 (0x0000FFFFuL)
+
+#define DMAC9_CHEXT_n_SCA                   (0x000000F0uL)
+#define DMAC9_CHEXT_n_DCA                   (0x0000F000uL)
+
+#define DMAC9_NXLA_n_NXLA                   (0xFFFFFFFFuL)
+
+#define DMAC9_CRLA_n_CRLA                   (0xFFFFFFFFuL)
+
+/* ---- DMAC10 ---- */
+#define DMAC10_N0SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC10_N0DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC10_N0TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC10_N1SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC10_N1DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC10_N1TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC10_CRSA_n_CRSA                  (0xFFFFFFFFuL)
+
+#define DMAC10_CRDA_n_CRDA                  (0xFFFFFFFFuL)
+
+#define DMAC10_CRTB_n_CRTB                  (0xFFFFFFFFuL)
+
+#define DMAC10_CHSTAT_n_EN                  (0x00000001uL)
+#define DMAC10_CHSTAT_n_RQST                (0x00000002uL)
+#define DMAC10_CHSTAT_n_TACT                (0x00000004uL)
+#define DMAC10_CHSTAT_n_SUS                 (0x00000008uL)
+#define DMAC10_CHSTAT_n_ER                  (0x00000010uL)
+#define DMAC10_CHSTAT_n_END                 (0x00000020uL)
+#define DMAC10_CHSTAT_n_TC                  (0x00000040uL)
+#define DMAC10_CHSTAT_n_SR                  (0x00000080uL)
+#define DMAC10_CHSTAT_n_DL                  (0x00000100uL)
+#define DMAC10_CHSTAT_n_DW                  (0x00000200uL)
+#define DMAC10_CHSTAT_n_DER                 (0x00000400uL)
+#define DMAC10_CHSTAT_n_MODE                (0x00000800uL)
+#define DMAC10_CHSTAT_n_INTMSK              (0x00010000uL)
+
+#define DMAC10_CHCTRL_n_SETEN               (0x00000001uL)
+#define DMAC10_CHCTRL_n_CLREN               (0x00000002uL)
+#define DMAC10_CHCTRL_n_STG                 (0x00000004uL)
+#define DMAC10_CHCTRL_n_SWRST               (0x00000008uL)
+#define DMAC10_CHCTRL_n_CLRRQ               (0x00000010uL)
+#define DMAC10_CHCTRL_n_CLREND              (0x00000020uL)
+#define DMAC10_CHCTRL_n_CLRTC               (0x00000040uL)
+#define DMAC10_CHCTRL_n_SETSUS              (0x00000100uL)
+#define DMAC10_CHCTRL_n_CLRSUS              (0x00000200uL)
+#define DMAC10_CHCTRL_n_SETINTMSK           (0x00010000uL)
+#define DMAC10_CHCTRL_n_CLRINTMSK           (0x00020000uL)
+
+#define DMAC10_CHCFG_n_SEL                  (0x00000007uL)
+#define DMAC10_CHCFG_n_REQD                 (0x00000008uL)
+#define DMAC10_CHCFG_n_LOEN                 (0x00000010uL)
+#define DMAC10_CHCFG_n_HIEN                 (0x00000020uL)
+#define DMAC10_CHCFG_n_LVL                  (0x00000040uL)
+#define DMAC10_CHCFG_n_AM                   (0x00000700uL)
+#define DMAC10_CHCFG_n_SDS                  (0x0000F000uL)
+#define DMAC10_CHCFG_n_DDS                  (0x000F0000uL)
+#define DMAC10_CHCFG_n_SAD                  (0x00100000uL)
+#define DMAC10_CHCFG_n_DAD                  (0x00200000uL)
+#define DMAC10_CHCFG_n_TM                   (0x00400000uL)
+#define DMAC10_CHCFG_n_DEM                  (0x01000000uL)
+#define DMAC10_CHCFG_n_TCM                  (0x02000000uL)
+#define DMAC10_CHCFG_n_SBE                  (0x08000000uL)
+#define DMAC10_CHCFG_n_RSEL                 (0x10000000uL)
+#define DMAC10_CHCFG_n_RSW                  (0x20000000uL)
+#define DMAC10_CHCFG_n_REN                  (0x40000000uL)
+#define DMAC10_CHCFG_n_DMS                  (0x80000000uL)
+
+#define DMAC10_CHITVL_n_ITVL                (0x0000FFFFuL)
+
+#define DMAC10_CHEXT_n_SCA                  (0x000000F0uL)
+#define DMAC10_CHEXT_n_DCA                  (0x0000F000uL)
+
+#define DMAC10_NXLA_n_NXLA                  (0xFFFFFFFFuL)
+
+#define DMAC10_CRLA_n_CRLA                  (0xFFFFFFFFuL)
+
+/* ---- DMAC11 ---- */
+#define DMAC11_N0SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC11_N0DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC11_N0TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC11_N1SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC11_N1DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC11_N1TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC11_CRSA_n_CRSA                  (0xFFFFFFFFuL)
+
+#define DMAC11_CRDA_n_CRDA                  (0xFFFFFFFFuL)
+
+#define DMAC11_CRTB_n_CRTB                  (0xFFFFFFFFuL)
+
+#define DMAC11_CHSTAT_n_EN                  (0x00000001uL)
+#define DMAC11_CHSTAT_n_RQST                (0x00000002uL)
+#define DMAC11_CHSTAT_n_TACT                (0x00000004uL)
+#define DMAC11_CHSTAT_n_SUS                 (0x00000008uL)
+#define DMAC11_CHSTAT_n_ER                  (0x00000010uL)
+#define DMAC11_CHSTAT_n_END                 (0x00000020uL)
+#define DMAC11_CHSTAT_n_TC                  (0x00000040uL)
+#define DMAC11_CHSTAT_n_SR                  (0x00000080uL)
+#define DMAC11_CHSTAT_n_DL                  (0x00000100uL)
+#define DMAC11_CHSTAT_n_DW                  (0x00000200uL)
+#define DMAC11_CHSTAT_n_DER                 (0x00000400uL)
+#define DMAC11_CHSTAT_n_MODE                (0x00000800uL)
+#define DMAC11_CHSTAT_n_INTMSK              (0x00010000uL)
+
+#define DMAC11_CHCTRL_n_SETEN               (0x00000001uL)
+#define DMAC11_CHCTRL_n_CLREN               (0x00000002uL)
+#define DMAC11_CHCTRL_n_STG                 (0x00000004uL)
+#define DMAC11_CHCTRL_n_SWRST               (0x00000008uL)
+#define DMAC11_CHCTRL_n_CLRRQ               (0x00000010uL)
+#define DMAC11_CHCTRL_n_CLREND              (0x00000020uL)
+#define DMAC11_CHCTRL_n_CLRTC               (0x00000040uL)
+#define DMAC11_CHCTRL_n_SETSUS              (0x00000100uL)
+#define DMAC11_CHCTRL_n_CLRSUS              (0x00000200uL)
+#define DMAC11_CHCTRL_n_SETINTMSK           (0x00010000uL)
+#define DMAC11_CHCTRL_n_CLRINTMSK           (0x00020000uL)
+
+#define DMAC11_CHCFG_n_SEL                  (0x00000007uL)
+#define DMAC11_CHCFG_n_REQD                 (0x00000008uL)
+#define DMAC11_CHCFG_n_LOEN                 (0x00000010uL)
+#define DMAC11_CHCFG_n_HIEN                 (0x00000020uL)
+#define DMAC11_CHCFG_n_LVL                  (0x00000040uL)
+#define DMAC11_CHCFG_n_AM                   (0x00000700uL)
+#define DMAC11_CHCFG_n_SDS                  (0x0000F000uL)
+#define DMAC11_CHCFG_n_DDS                  (0x000F0000uL)
+#define DMAC11_CHCFG_n_SAD                  (0x00100000uL)
+#define DMAC11_CHCFG_n_DAD                  (0x00200000uL)
+#define DMAC11_CHCFG_n_TM                   (0x00400000uL)
+#define DMAC11_CHCFG_n_DEM                  (0x01000000uL)
+#define DMAC11_CHCFG_n_TCM                  (0x02000000uL)
+#define DMAC11_CHCFG_n_SBE                  (0x08000000uL)
+#define DMAC11_CHCFG_n_RSEL                 (0x10000000uL)
+#define DMAC11_CHCFG_n_RSW                  (0x20000000uL)
+#define DMAC11_CHCFG_n_REN                  (0x40000000uL)
+#define DMAC11_CHCFG_n_DMS                  (0x80000000uL)
+
+#define DMAC11_CHITVL_n_ITVL                (0x0000FFFFuL)
+
+#define DMAC11_CHEXT_n_SCA                  (0x000000F0uL)
+#define DMAC11_CHEXT_n_DCA                  (0x0000F000uL)
+
+#define DMAC11_NXLA_n_NXLA                  (0xFFFFFFFFuL)
+
+#define DMAC11_CRLA_n_CRLA                  (0xFFFFFFFFuL)
+
+/* ---- DMAC12 ---- */
+#define DMAC12_N0SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC12_N0DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC12_N0TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC12_N1SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC12_N1DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC12_N1TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC12_CRSA_n_CRSA                  (0xFFFFFFFFuL)
+
+#define DMAC12_CRDA_n_CRDA                  (0xFFFFFFFFuL)
+
+#define DMAC12_CRTB_n_CRTB                  (0xFFFFFFFFuL)
+
+#define DMAC12_CHSTAT_n_EN                  (0x00000001uL)
+#define DMAC12_CHSTAT_n_RQST                (0x00000002uL)
+#define DMAC12_CHSTAT_n_TACT                (0x00000004uL)
+#define DMAC12_CHSTAT_n_SUS                 (0x00000008uL)
+#define DMAC12_CHSTAT_n_ER                  (0x00000010uL)
+#define DMAC12_CHSTAT_n_END                 (0x00000020uL)
+#define DMAC12_CHSTAT_n_TC                  (0x00000040uL)
+#define DMAC12_CHSTAT_n_SR                  (0x00000080uL)
+#define DMAC12_CHSTAT_n_DL                  (0x00000100uL)
+#define DMAC12_CHSTAT_n_DW                  (0x00000200uL)
+#define DMAC12_CHSTAT_n_DER                 (0x00000400uL)
+#define DMAC12_CHSTAT_n_MODE                (0x00000800uL)
+#define DMAC12_CHSTAT_n_INTMSK              (0x00010000uL)
+
+#define DMAC12_CHCTRL_n_SETEN               (0x00000001uL)
+#define DMAC12_CHCTRL_n_CLREN               (0x00000002uL)
+#define DMAC12_CHCTRL_n_STG                 (0x00000004uL)
+#define DMAC12_CHCTRL_n_SWRST               (0x00000008uL)
+#define DMAC12_CHCTRL_n_CLRRQ               (0x00000010uL)
+#define DMAC12_CHCTRL_n_CLREND              (0x00000020uL)
+#define DMAC12_CHCTRL_n_CLRTC               (0x00000040uL)
+#define DMAC12_CHCTRL_n_SETSUS              (0x00000100uL)
+#define DMAC12_CHCTRL_n_CLRSUS              (0x00000200uL)
+#define DMAC12_CHCTRL_n_SETINTMSK           (0x00010000uL)
+#define DMAC12_CHCTRL_n_CLRINTMSK           (0x00020000uL)
+
+#define DMAC12_CHCFG_n_SEL                  (0x00000007uL)
+#define DMAC12_CHCFG_n_REQD                 (0x00000008uL)
+#define DMAC12_CHCFG_n_LOEN                 (0x00000010uL)
+#define DMAC12_CHCFG_n_HIEN                 (0x00000020uL)
+#define DMAC12_CHCFG_n_LVL                  (0x00000040uL)
+#define DMAC12_CHCFG_n_AM                   (0x00000700uL)
+#define DMAC12_CHCFG_n_SDS                  (0x0000F000uL)
+#define DMAC12_CHCFG_n_DDS                  (0x000F0000uL)
+#define DMAC12_CHCFG_n_SAD                  (0x00100000uL)
+#define DMAC12_CHCFG_n_DAD                  (0x00200000uL)
+#define DMAC12_CHCFG_n_TM                   (0x00400000uL)
+#define DMAC12_CHCFG_n_DEM                  (0x01000000uL)
+#define DMAC12_CHCFG_n_TCM                  (0x02000000uL)
+#define DMAC12_CHCFG_n_SBE                  (0x08000000uL)
+#define DMAC12_CHCFG_n_RSEL                 (0x10000000uL)
+#define DMAC12_CHCFG_n_RSW                  (0x20000000uL)
+#define DMAC12_CHCFG_n_REN                  (0x40000000uL)
+#define DMAC12_CHCFG_n_DMS                  (0x80000000uL)
+
+#define DMAC12_CHITVL_n_ITVL                (0x0000FFFFuL)
+
+#define DMAC12_CHEXT_n_SCA                  (0x000000F0uL)
+#define DMAC12_CHEXT_n_DCA                  (0x0000F000uL)
+
+#define DMAC12_NXLA_n_NXLA                  (0xFFFFFFFFuL)
+
+#define DMAC12_CRLA_n_CRLA                  (0xFFFFFFFFuL)
+
+/* ---- DMAC13 ---- */
+#define DMAC13_N0SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC13_N0DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC13_N0TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC13_N1SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC13_N1DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC13_N1TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC13_CRSA_n_CRSA                  (0xFFFFFFFFuL)
+
+#define DMAC13_CRDA_n_CRDA                  (0xFFFFFFFFuL)
+
+#define DMAC13_CRTB_n_CRTB                  (0xFFFFFFFFuL)
+
+#define DMAC13_CHSTAT_n_EN                  (0x00000001uL)
+#define DMAC13_CHSTAT_n_RQST                (0x00000002uL)
+#define DMAC13_CHSTAT_n_TACT                (0x00000004uL)
+#define DMAC13_CHSTAT_n_SUS                 (0x00000008uL)
+#define DMAC13_CHSTAT_n_ER                  (0x00000010uL)
+#define DMAC13_CHSTAT_n_END                 (0x00000020uL)
+#define DMAC13_CHSTAT_n_TC                  (0x00000040uL)
+#define DMAC13_CHSTAT_n_SR                  (0x00000080uL)
+#define DMAC13_CHSTAT_n_DL                  (0x00000100uL)
+#define DMAC13_CHSTAT_n_DW                  (0x00000200uL)
+#define DMAC13_CHSTAT_n_DER                 (0x00000400uL)
+#define DMAC13_CHSTAT_n_MODE                (0x00000800uL)
+#define DMAC13_CHSTAT_n_INTMSK              (0x00010000uL)
+
+#define DMAC13_CHCTRL_n_SETEN               (0x00000001uL)
+#define DMAC13_CHCTRL_n_CLREN               (0x00000002uL)
+#define DMAC13_CHCTRL_n_STG                 (0x00000004uL)
+#define DMAC13_CHCTRL_n_SWRST               (0x00000008uL)
+#define DMAC13_CHCTRL_n_CLRRQ               (0x00000010uL)
+#define DMAC13_CHCTRL_n_CLREND              (0x00000020uL)
+#define DMAC13_CHCTRL_n_CLRTC               (0x00000040uL)
+#define DMAC13_CHCTRL_n_SETSUS              (0x00000100uL)
+#define DMAC13_CHCTRL_n_CLRSUS              (0x00000200uL)
+#define DMAC13_CHCTRL_n_SETINTMSK           (0x00010000uL)
+#define DMAC13_CHCTRL_n_CLRINTMSK           (0x00020000uL)
+
+#define DMAC13_CHCFG_n_SEL                  (0x00000007uL)
+#define DMAC13_CHCFG_n_REQD                 (0x00000008uL)
+#define DMAC13_CHCFG_n_LOEN                 (0x00000010uL)
+#define DMAC13_CHCFG_n_HIEN                 (0x00000020uL)
+#define DMAC13_CHCFG_n_LVL                  (0x00000040uL)
+#define DMAC13_CHCFG_n_AM                   (0x00000700uL)
+#define DMAC13_CHCFG_n_SDS                  (0x0000F000uL)
+#define DMAC13_CHCFG_n_DDS                  (0x000F0000uL)
+#define DMAC13_CHCFG_n_SAD                  (0x00100000uL)
+#define DMAC13_CHCFG_n_DAD                  (0x00200000uL)
+#define DMAC13_CHCFG_n_TM                   (0x00400000uL)
+#define DMAC13_CHCFG_n_DEM                  (0x01000000uL)
+#define DMAC13_CHCFG_n_TCM                  (0x02000000uL)
+#define DMAC13_CHCFG_n_SBE                  (0x08000000uL)
+#define DMAC13_CHCFG_n_RSEL                 (0x10000000uL)
+#define DMAC13_CHCFG_n_RSW                  (0x20000000uL)
+#define DMAC13_CHCFG_n_REN                  (0x40000000uL)
+#define DMAC13_CHCFG_n_DMS                  (0x80000000uL)
+
+#define DMAC13_CHITVL_n_ITVL                (0x0000FFFFuL)
+
+#define DMAC13_CHEXT_n_SCA                  (0x000000F0uL)
+#define DMAC13_CHEXT_n_DCA                  (0x0000F000uL)
+
+#define DMAC13_NXLA_n_NXLA                  (0xFFFFFFFFuL)
+
+#define DMAC13_CRLA_n_CRLA                  (0xFFFFFFFFuL)
+
+/* ---- DMAC14 ---- */
+#define DMAC14_N0SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC14_N0DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC14_N0TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC14_N1SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC14_N1DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC14_N1TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC14_CRSA_n_CRSA                  (0xFFFFFFFFuL)
+
+#define DMAC14_CRDA_n_CRDA                  (0xFFFFFFFFuL)
+
+#define DMAC14_CRTB_n_CRTB                  (0xFFFFFFFFuL)
+
+#define DMAC14_CHSTAT_n_EN                  (0x00000001uL)
+#define DMAC14_CHSTAT_n_RQST                (0x00000002uL)
+#define DMAC14_CHSTAT_n_TACT                (0x00000004uL)
+#define DMAC14_CHSTAT_n_SUS                 (0x00000008uL)
+#define DMAC14_CHSTAT_n_ER                  (0x00000010uL)
+#define DMAC14_CHSTAT_n_END                 (0x00000020uL)
+#define DMAC14_CHSTAT_n_TC                  (0x00000040uL)
+#define DMAC14_CHSTAT_n_SR                  (0x00000080uL)
+#define DMAC14_CHSTAT_n_DL                  (0x00000100uL)
+#define DMAC14_CHSTAT_n_DW                  (0x00000200uL)
+#define DMAC14_CHSTAT_n_DER                 (0x00000400uL)
+#define DMAC14_CHSTAT_n_MODE                (0x00000800uL)
+#define DMAC14_CHSTAT_n_INTMSK              (0x00010000uL)
+
+#define DMAC14_CHCTRL_n_SETEN               (0x00000001uL)
+#define DMAC14_CHCTRL_n_CLREN               (0x00000002uL)
+#define DMAC14_CHCTRL_n_STG                 (0x00000004uL)
+#define DMAC14_CHCTRL_n_SWRST               (0x00000008uL)
+#define DMAC14_CHCTRL_n_CLRRQ               (0x00000010uL)
+#define DMAC14_CHCTRL_n_CLREND              (0x00000020uL)
+#define DMAC14_CHCTRL_n_CLRTC               (0x00000040uL)
+#define DMAC14_CHCTRL_n_SETSUS              (0x00000100uL)
+#define DMAC14_CHCTRL_n_CLRSUS              (0x00000200uL)
+#define DMAC14_CHCTRL_n_SETINTMSK           (0x00010000uL)
+#define DMAC14_CHCTRL_n_CLRINTMSK           (0x00020000uL)
+
+#define DMAC14_CHCFG_n_SEL                  (0x00000007uL)
+#define DMAC14_CHCFG_n_REQD                 (0x00000008uL)
+#define DMAC14_CHCFG_n_LOEN                 (0x00000010uL)
+#define DMAC14_CHCFG_n_HIEN                 (0x00000020uL)
+#define DMAC14_CHCFG_n_LVL                  (0x00000040uL)
+#define DMAC14_CHCFG_n_AM                   (0x00000700uL)
+#define DMAC14_CHCFG_n_SDS                  (0x0000F000uL)
+#define DMAC14_CHCFG_n_DDS                  (0x000F0000uL)
+#define DMAC14_CHCFG_n_SAD                  (0x00100000uL)
+#define DMAC14_CHCFG_n_DAD                  (0x00200000uL)
+#define DMAC14_CHCFG_n_TM                   (0x00400000uL)
+#define DMAC14_CHCFG_n_DEM                  (0x01000000uL)
+#define DMAC14_CHCFG_n_TCM                  (0x02000000uL)
+#define DMAC14_CHCFG_n_SBE                  (0x08000000uL)
+#define DMAC14_CHCFG_n_RSEL                 (0x10000000uL)
+#define DMAC14_CHCFG_n_RSW                  (0x20000000uL)
+#define DMAC14_CHCFG_n_REN                  (0x40000000uL)
+#define DMAC14_CHCFG_n_DMS                  (0x80000000uL)
+
+#define DMAC14_CHITVL_n_ITVL                (0x0000FFFFuL)
+
+#define DMAC14_CHEXT_n_SCA                  (0x000000F0uL)
+#define DMAC14_CHEXT_n_DCA                  (0x0000F000uL)
+
+#define DMAC14_NXLA_n_NXLA                  (0xFFFFFFFFuL)
+
+#define DMAC14_CRLA_n_CRLA                  (0xFFFFFFFFuL)
+
+/* ---- DMAC15 ---- */
+#define DMAC15_N0SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC15_N0DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC15_N0TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC15_N1SA_n_SA                    (0xFFFFFFFFuL)
+
+#define DMAC15_N1DA_n_DA                    (0xFFFFFFFFuL)
+
+#define DMAC15_N1TB_n_TB                    (0xFFFFFFFFuL)
+
+#define DMAC15_CRSA_n_CRSA                  (0xFFFFFFFFuL)
+
+#define DMAC15_CRDA_n_CRDA                  (0xFFFFFFFFuL)
+
+#define DMAC15_CRTB_n_CRTB                  (0xFFFFFFFFuL)
+
+#define DMAC15_CHSTAT_n_EN                  (0x00000001uL)
+#define DMAC15_CHSTAT_n_RQST                (0x00000002uL)
+#define DMAC15_CHSTAT_n_TACT                (0x00000004uL)
+#define DMAC15_CHSTAT_n_SUS                 (0x00000008uL)
+#define DMAC15_CHSTAT_n_ER                  (0x00000010uL)
+#define DMAC15_CHSTAT_n_END                 (0x00000020uL)
+#define DMAC15_CHSTAT_n_TC                  (0x00000040uL)
+#define DMAC15_CHSTAT_n_SR                  (0x00000080uL)
+#define DMAC15_CHSTAT_n_DL                  (0x00000100uL)
+#define DMAC15_CHSTAT_n_DW                  (0x00000200uL)
+#define DMAC15_CHSTAT_n_DER                 (0x00000400uL)
+#define DMAC15_CHSTAT_n_MODE                (0x00000800uL)
+#define DMAC15_CHSTAT_n_INTMSK              (0x00010000uL)
+
+#define DMAC15_CHCTRL_n_SETEN               (0x00000001uL)
+#define DMAC15_CHCTRL_n_CLREN               (0x00000002uL)
+#define DMAC15_CHCTRL_n_STG                 (0x00000004uL)
+#define DMAC15_CHCTRL_n_SWRST               (0x00000008uL)
+#define DMAC15_CHCTRL_n_CLRRQ               (0x00000010uL)
+#define DMAC15_CHCTRL_n_CLREND              (0x00000020uL)
+#define DMAC15_CHCTRL_n_CLRTC               (0x00000040uL)
+#define DMAC15_CHCTRL_n_SETSUS              (0x00000100uL)
+#define DMAC15_CHCTRL_n_CLRSUS              (0x00000200uL)
+#define DMAC15_CHCTRL_n_SETINTMSK           (0x00010000uL)
+#define DMAC15_CHCTRL_n_CLRINTMSK           (0x00020000uL)
+
+#define DMAC15_CHCFG_n_SEL                  (0x00000007uL)
+#define DMAC15_CHCFG_n_REQD                 (0x00000008uL)
+#define DMAC15_CHCFG_n_LOEN                 (0x00000010uL)
+#define DMAC15_CHCFG_n_HIEN                 (0x00000020uL)
+#define DMAC15_CHCFG_n_LVL                  (0x00000040uL)
+#define DMAC15_CHCFG_n_AM                   (0x00000700uL)
+#define DMAC15_CHCFG_n_SDS                  (0x0000F000uL)
+#define DMAC15_CHCFG_n_DDS                  (0x000F0000uL)
+#define DMAC15_CHCFG_n_SAD                  (0x00100000uL)
+#define DMAC15_CHCFG_n_DAD                  (0x00200000uL)
+#define DMAC15_CHCFG_n_TM                   (0x00400000uL)
+#define DMAC15_CHCFG_n_DEM                  (0x01000000uL)
+#define DMAC15_CHCFG_n_TCM                  (0x02000000uL)
+#define DMAC15_CHCFG_n_SBE                  (0x08000000uL)
+#define DMAC15_CHCFG_n_RSEL                 (0x10000000uL)
+#define DMAC15_CHCFG_n_RSW                  (0x20000000uL)
+#define DMAC15_CHCFG_n_REN                  (0x40000000uL)
+#define DMAC15_CHCFG_n_DMS                  (0x80000000uL)
+
+#define DMAC15_CHITVL_n_ITVL                (0x0000FFFFuL)
+
+#define DMAC15_CHEXT_n_SCA                  (0x000000F0uL)
+#define DMAC15_CHEXT_n_DCA                  (0x0000F000uL)
+
+#define DMAC15_NXLA_n_NXLA                  (0xFFFFFFFFuL)
+
+#define DMAC15_CRLA_n_CRLA                  (0xFFFFFFFFuL)
+
+/* ---- DMAC8-15 ---- */
+#define DMAC815_DCTRL_8_15_PR               (0x00000001uL)
+#define DMAC815_DCTRL_8_15_LVINT            (0x00000002uL)
+#define DMAC815_DCTRL_8_15_LDCA             (0x0000003CuL)
+#define DMAC815_DCTRL_8_15_LWCA             (0x00003C00uL)
+
+#define DMAC815_DSTAT_EN_8_15_EN8           (0x00000001uL)
+#define DMAC815_DSTAT_EN_8_15_EN9           (0x00000002uL)
+#define DMAC815_DSTAT_EN_8_15_EN10          (0x00000004uL)
+#define DMAC815_DSTAT_EN_8_15_EN11          (0x00000008uL)
+#define DMAC815_DSTAT_EN_8_15_EN12          (0x00000010uL)
+#define DMAC815_DSTAT_EN_8_15_EN13          (0x00000020uL)
+#define DMAC815_DSTAT_EN_8_15_EN14          (0x00000040uL)
+#define DMAC815_DSTAT_EN_8_15_EN15          (0x00000080uL)
+
+#define DMAC815_DSTAT_ER_8_15_ER8           (0x00000001uL)
+#define DMAC815_DSTAT_ER_8_15_ER9           (0x00000002uL)
+#define DMAC815_DSTAT_ER_8_15_ER10          (0x00000004uL)
+#define DMAC815_DSTAT_ER_8_15_ER11          (0x00000008uL)
+#define DMAC815_DSTAT_ER_8_15_ER12          (0x00000010uL)
+#define DMAC815_DSTAT_ER_8_15_ER13          (0x00000020uL)
+#define DMAC815_DSTAT_ER_8_15_ER14          (0x00000040uL)
+#define DMAC815_DSTAT_ER_8_15_ER15          (0x00000080uL)
+
+#define DMAC815_DSTAT_END_8_15_END8         (0x00000001uL)
+#define DMAC815_DSTAT_END_8_15_END9         (0x00000002uL)
+#define DMAC815_DSTAT_END_8_15_END10        (0x00000004uL)
+#define DMAC815_DSTAT_END_8_15_END11        (0x00000008uL)
+#define DMAC815_DSTAT_END_8_15_END12        (0x00000010uL)
+#define DMAC815_DSTAT_END_8_15_END13        (0x00000020uL)
+#define DMAC815_DSTAT_END_8_15_END14        (0x00000040uL)
+#define DMAC815_DSTAT_END_8_15_END15        (0x00000080uL)
+
+#define DMAC815_DSTAT_TC_8_15_TC8           (0x00000001uL)
+#define DMAC815_DSTAT_TC_8_15_TC9           (0x00000002uL)
+#define DMAC815_DSTAT_TC_8_15_TC10          (0x00000004uL)
+#define DMAC815_DSTAT_TC_8_15_TC11          (0x00000008uL)
+#define DMAC815_DSTAT_TC_8_15_TC12          (0x00000010uL)
+#define DMAC815_DSTAT_TC_8_15_TC13          (0x00000020uL)
+#define DMAC815_DSTAT_TC_8_15_TC14          (0x00000040uL)
+#define DMAC815_DSTAT_TC_8_15_TC15          (0x00000080uL)
+
+#define DMAC815_DSTAT_SUS_8_15_SUS8         (0x00000001uL)
+#define DMAC815_DSTAT_SUS_8_15_SUS9         (0x00000002uL)
+#define DMAC815_DSTAT_SUS_8_15_SUS10        (0x00000004uL)
+#define DMAC815_DSTAT_SUS_8_15_SUS11        (0x00000008uL)
+#define DMAC815_DSTAT_SUS_8_15_SUS12        (0x00000010uL)
+#define DMAC815_DSTAT_SUS_8_15_SUS13        (0x00000020uL)
+#define DMAC815_DSTAT_SUS_8_15_SUS14        (0x00000040uL)
+#define DMAC815_DSTAT_SUS_8_15_SUS15        (0x00000080uL)
+
+/* ---- DMAC0-1 ---- */
+#define DMAC01_DMARS_CH0_RID                (0x00000003uL)
+#define DMAC01_DMARS_CH0_MID                (0x000001FCuL)
+#define DMAC01_DMARS_CH1_RID                (0x00030000uL)
+#define DMAC01_DMARS_CH1_MID                (0x01FC0000uL)
+
+/* ---- DMAC2-3 ---- */
+#define DMAC23_DMARS_CH2_RID                (0x00000003uL)
+#define DMAC23_DMARS_CH2_MID                (0x000001FCuL)
+#define DMAC23_DMARS_CH3_RID                (0x00030000uL)
+#define DMAC23_DMARS_CH3_MID                (0x01FC0000uL)
+
+/* ---- DMAC4-5 ---- */
+#define DMAC45_DMARS_CH4_RID                (0x00000003uL)
+#define DMAC45_DMARS_CH4_MID                (0x000001FCuL)
+#define DMAC45_DMARS_CH5_RID                (0x00030000uL)
+#define DMAC45_DMARS_CH5_MID                (0x01FC0000uL)
+
+/* ---- DMAC6-7 ---- */
+#define DMAC67_DMARS_CH6_RID                (0x00000003uL)
+#define DMAC67_DMARS_CH6_MID                (0x000001FCuL)
+#define DMAC67_DMARS_CH7_RID                (0x00030000uL)
+#define DMAC67_DMARS_CH7_MID                (0x01FC0000uL)
+
+/* ---- DMAC8-9 ---- */
+#define DMAC89_DMARS_CH8_RID                (0x00000003uL)
+#define DMAC89_DMARS_CH8_MID                (0x000001FCuL)
+#define DMAC89_DMARS_CH9_RID                (0x00030000uL)
+#define DMAC89_DMARS_CH9_MID                (0x01FC0000uL)
+
+/* ---- DMAC10-11 ---- */
+#define DMAC1011_DMARS_CH10_RID             (0x00000003uL)
+#define DMAC1011_DMARS_CH10_MID             (0x000001FCuL)
+#define DMAC1011_DMARS_CH11_RID             (0x00030000uL)
+#define DMAC1011_DMARS_CH11_MID             (0x01FC0000uL)
+
+/* ---- DMAC12-13 ---- */
+#define DMAC1213_DMARS_CH12_RID             (0x00000003uL)
+#define DMAC1213_DMARS_CH12_MID             (0x000001FCuL)
+#define DMAC1213_DMARS_CH13_RID             (0x00030000uL)
+#define DMAC1213_DMARS_CH13_MID             (0x01FC0000uL)
+
+/* ---- DMAC14-15 ---- */
+#define DMAC1415_DMARS_CH14_RID             (0x00000003uL)
+#define DMAC1415_DMARS_CH14_MID             (0x000001FCuL)
+#define DMAC1415_DMARS_CH15_RID             (0x00030000uL)
+#define DMAC1415_DMARS_CH15_MID             (0x01FC0000uL)
+
+
+/* ==== Shift values for IO registers ==== */
+/* ---- DMAC0 ---- */
+#define DMAC0_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC0_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC0_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC0_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC0_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC0_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC0_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC0_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC0_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC0_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC0_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC0_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC0_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC0_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC0_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC0_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC0_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC0_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC0_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC0_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC0_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC0_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC0_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC0_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC0_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC0_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC0_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC0_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC0_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC0_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC0_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC0_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC0_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC0_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC0_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC0_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC0_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC0_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC0_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC0_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC0_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC0_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC0_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC0_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC0_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC0_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC0_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC0_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC0_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC0_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC0_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC0_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC0_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC0_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC0_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC0_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC1 ---- */
+#define DMAC1_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC1_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC1_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC1_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC1_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC1_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC1_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC1_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC1_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC1_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC1_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC1_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC1_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC1_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC1_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC1_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC1_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC1_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC1_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC1_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC1_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC1_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC1_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC1_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC1_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC1_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC1_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC1_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC1_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC1_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC1_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC1_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC1_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC1_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC1_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC1_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC1_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC1_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC1_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC1_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC1_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC1_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC1_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC1_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC1_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC1_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC1_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC1_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC1_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC1_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC1_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC1_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC1_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC1_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC1_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC1_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC2 ---- */
+#define DMAC2_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC2_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC2_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC2_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC2_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC2_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC2_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC2_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC2_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC2_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC2_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC2_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC2_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC2_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC2_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC2_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC2_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC2_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC2_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC2_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC2_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC2_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC2_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC2_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC2_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC2_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC2_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC2_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC2_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC2_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC2_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC2_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC2_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC2_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC2_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC2_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC2_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC2_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC2_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC2_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC2_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC2_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC2_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC2_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC2_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC2_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC2_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC2_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC2_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC2_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC2_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC2_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC2_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC2_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC2_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC2_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC3 ---- */
+#define DMAC3_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC3_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC3_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC3_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC3_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC3_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC3_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC3_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC3_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC3_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC3_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC3_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC3_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC3_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC3_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC3_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC3_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC3_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC3_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC3_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC3_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC3_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC3_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC3_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC3_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC3_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC3_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC3_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC3_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC3_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC3_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC3_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC3_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC3_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC3_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC3_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC3_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC3_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC3_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC3_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC3_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC3_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC3_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC3_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC3_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC3_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC3_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC3_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC3_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC3_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC3_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC3_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC3_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC3_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC3_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC3_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC4 ---- */
+#define DMAC4_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC4_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC4_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC4_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC4_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC4_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC4_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC4_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC4_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC4_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC4_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC4_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC4_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC4_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC4_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC4_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC4_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC4_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC4_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC4_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC4_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC4_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC4_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC4_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC4_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC4_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC4_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC4_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC4_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC4_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC4_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC4_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC4_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC4_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC4_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC4_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC4_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC4_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC4_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC4_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC4_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC4_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC4_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC4_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC4_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC4_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC4_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC4_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC4_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC4_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC4_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC4_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC4_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC4_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC4_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC4_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC5 ---- */
+#define DMAC5_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC5_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC5_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC5_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC5_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC5_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC5_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC5_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC5_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC5_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC5_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC5_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC5_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC5_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC5_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC5_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC5_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC5_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC5_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC5_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC5_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC5_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC5_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC5_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC5_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC5_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC5_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC5_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC5_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC5_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC5_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC5_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC5_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC5_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC5_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC5_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC5_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC5_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC5_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC5_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC5_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC5_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC5_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC5_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC5_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC5_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC5_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC5_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC5_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC5_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC5_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC5_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC5_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC5_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC5_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC5_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC6 ---- */
+#define DMAC6_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC6_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC6_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC6_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC6_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC6_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC6_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC6_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC6_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC6_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC6_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC6_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC6_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC6_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC6_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC6_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC6_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC6_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC6_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC6_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC6_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC6_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC6_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC6_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC6_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC6_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC6_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC6_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC6_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC6_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC6_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC6_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC6_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC6_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC6_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC6_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC6_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC6_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC6_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC6_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC6_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC6_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC6_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC6_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC6_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC6_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC6_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC6_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC6_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC6_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC6_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC6_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC6_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC6_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC6_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC6_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC7 ---- */
+#define DMAC7_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC7_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC7_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC7_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC7_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC7_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC7_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC7_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC7_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC7_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC7_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC7_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC7_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC7_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC7_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC7_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC7_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC7_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC7_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC7_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC7_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC7_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC7_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC7_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC7_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC7_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC7_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC7_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC7_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC7_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC7_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC7_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC7_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC7_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC7_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC7_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC7_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC7_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC7_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC7_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC7_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC7_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC7_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC7_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC7_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC7_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC7_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC7_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC7_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC7_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC7_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC7_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC7_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC7_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC7_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC7_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC0-7 ---- */
+#define DMAC07_DCTRL_0_7_PR_SHIFT           (0u)
+#define DMAC07_DCTRL_0_7_LVINT_SHIFT        (1u)
+#define DMAC07_DCTRL_0_7_LDCA_SHIFT         (2u)
+#define DMAC07_DCTRL_0_7_LWCA_SHIFT         (6u)
+
+#define DMAC07_DSTAT_EN_0_7_EN0_SHIFT       (0u)
+#define DMAC07_DSTAT_EN_0_7_EN1_SHIFT       (1u)
+#define DMAC07_DSTAT_EN_0_7_EN2_SHIFT       (2u)
+#define DMAC07_DSTAT_EN_0_7_EN3_SHIFT       (3u)
+#define DMAC07_DSTAT_EN_0_7_EN4_SHIFT       (4u)
+#define DMAC07_DSTAT_EN_0_7_EN5_SHIFT       (5u)
+#define DMAC07_DSTAT_EN_0_7_EN6_SHIFT       (6u)
+#define DMAC07_DSTAT_EN_0_7_EN7_SHIFT       (7u)
+
+#define DMAC07_DSTAT_ER_0_7_ER0_SHIFT       (0u)
+#define DMAC07_DSTAT_ER_0_7_ER1_SHIFT       (1u)
+#define DMAC07_DSTAT_ER_0_7_ER2_SHIFT       (2u)
+#define DMAC07_DSTAT_ER_0_7_ER3_SHIFT       (3u)
+#define DMAC07_DSTAT_ER_0_7_ER4_SHIFT       (4u)
+#define DMAC07_DSTAT_ER_0_7_ER5_SHIFT       (5u)
+#define DMAC07_DSTAT_ER_0_7_ER6_SHIFT       (6u)
+#define DMAC07_DSTAT_ER_0_7_ER7_SHIFT       (7u)
+
+#define DMAC07_DSTAT_END_0_7_END0_SHIFT     (0u)
+#define DMAC07_DSTAT_END_0_7_END1_SHIFT     (1u)
+#define DMAC07_DSTAT_END_0_7_END2_SHIFT     (2u)
+#define DMAC07_DSTAT_END_0_7_END3_SHIFT     (3u)
+#define DMAC07_DSTAT_END_0_7_END4_SHIFT     (4u)
+#define DMAC07_DSTAT_END_0_7_END5_SHIFT     (5u)
+#define DMAC07_DSTAT_END_0_7_END6_SHIFT     (6u)
+#define DMAC07_DSTAT_END_0_7_END7_SHIFT     (7u)
+
+#define DMAC07_DSTAT_TC_0_7_TC0_SHIFT       (0u)
+#define DMAC07_DSTAT_TC_0_7_TC1_SHIFT       (1u)
+#define DMAC07_DSTAT_TC_0_7_TC2_SHIFT       (2u)
+#define DMAC07_DSTAT_TC_0_7_TC3_SHIFT       (3u)
+#define DMAC07_DSTAT_TC_0_7_TC4_SHIFT       (4u)
+#define DMAC07_DSTAT_TC_0_7_TC5_SHIFT       (5u)
+#define DMAC07_DSTAT_TC_0_7_TC6_SHIFT       (6u)
+#define DMAC07_DSTAT_TC_0_7_TC7_SHIFT       (7u)
+
+#define DMAC07_DSTAT_SUS_0_7_SUS0_SHIFT     (0u)
+#define DMAC07_DSTAT_SUS_0_7_SUS1_SHIFT     (1u)
+#define DMAC07_DSTAT_SUS_0_7_SUS2_SHIFT     (2u)
+#define DMAC07_DSTAT_SUS_0_7_SUS3_SHIFT     (3u)
+#define DMAC07_DSTAT_SUS_0_7_SUS4_SHIFT     (4u)
+#define DMAC07_DSTAT_SUS_0_7_SUS5_SHIFT     (5u)
+#define DMAC07_DSTAT_SUS_0_7_SUS6_SHIFT     (6u)
+#define DMAC07_DSTAT_SUS_0_7_SUS7_SHIFT     (7u)
+
+/* ---- DMAC8 ---- */
+#define DMAC8_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC8_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC8_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC8_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC8_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC8_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC8_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC8_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC8_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC8_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC8_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC8_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC8_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC8_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC8_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC8_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC8_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC8_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC8_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC8_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC8_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC8_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC8_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC8_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC8_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC8_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC8_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC8_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC8_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC8_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC8_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC8_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC8_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC8_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC8_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC8_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC8_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC8_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC8_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC8_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC8_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC8_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC8_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC8_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC8_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC8_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC8_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC8_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC8_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC8_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC8_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC8_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC8_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC8_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC8_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC8_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC9 ---- */
+#define DMAC9_N0SA_n_SA_SHIFT               (0u)
+
+#define DMAC9_N0DA_n_DA_SHIFT               (0u)
+
+#define DMAC9_N0TB_n_TB_SHIFT               (0u)
+
+#define DMAC9_N1SA_n_SA_SHIFT               (0u)
+
+#define DMAC9_N1DA_n_DA_SHIFT               (0u)
+
+#define DMAC9_N1TB_n_TB_SHIFT               (0u)
+
+#define DMAC9_CRSA_n_CRSA_SHIFT             (0u)
+
+#define DMAC9_CRDA_n_CRDA_SHIFT             (0u)
+
+#define DMAC9_CRTB_n_CRTB_SHIFT             (0u)
+
+#define DMAC9_CHSTAT_n_EN_SHIFT             (0u)
+#define DMAC9_CHSTAT_n_RQST_SHIFT           (1u)
+#define DMAC9_CHSTAT_n_TACT_SHIFT           (2u)
+#define DMAC9_CHSTAT_n_SUS_SHIFT            (3u)
+#define DMAC9_CHSTAT_n_ER_SHIFT             (4u)
+#define DMAC9_CHSTAT_n_END_SHIFT            (5u)
+#define DMAC9_CHSTAT_n_TC_SHIFT             (6u)
+#define DMAC9_CHSTAT_n_SR_SHIFT             (7u)
+#define DMAC9_CHSTAT_n_DL_SHIFT             (8u)
+#define DMAC9_CHSTAT_n_DW_SHIFT             (9u)
+#define DMAC9_CHSTAT_n_DER_SHIFT            (10u)
+#define DMAC9_CHSTAT_n_MODE_SHIFT           (11u)
+#define DMAC9_CHSTAT_n_INTMSK_SHIFT         (16u)
+
+#define DMAC9_CHCTRL_n_SETEN_SHIFT          (0u)
+#define DMAC9_CHCTRL_n_CLREN_SHIFT          (1u)
+#define DMAC9_CHCTRL_n_STG_SHIFT            (2u)
+#define DMAC9_CHCTRL_n_SWRST_SHIFT          (3u)
+#define DMAC9_CHCTRL_n_CLRRQ_SHIFT          (4u)
+#define DMAC9_CHCTRL_n_CLREND_SHIFT         (5u)
+#define DMAC9_CHCTRL_n_CLRTC_SHIFT          (6u)
+#define DMAC9_CHCTRL_n_SETSUS_SHIFT         (8u)
+#define DMAC9_CHCTRL_n_CLRSUS_SHIFT         (9u)
+#define DMAC9_CHCTRL_n_SETINTMSK_SHIFT      (16u)
+#define DMAC9_CHCTRL_n_CLRINTMSK_SHIFT      (17u)
+
+#define DMAC9_CHCFG_n_SEL_SHIFT             (0u)
+#define DMAC9_CHCFG_n_REQD_SHIFT            (3u)
+#define DMAC9_CHCFG_n_LOEN_SHIFT            (4u)
+#define DMAC9_CHCFG_n_HIEN_SHIFT            (5u)
+#define DMAC9_CHCFG_n_LVL_SHIFT             (6u)
+#define DMAC9_CHCFG_n_AM_SHIFT              (8u)
+#define DMAC9_CHCFG_n_SDS_SHIFT             (12u)
+#define DMAC9_CHCFG_n_DDS_SHIFT             (16u)
+#define DMAC9_CHCFG_n_SAD_SHIFT             (20u)
+#define DMAC9_CHCFG_n_DAD_SHIFT             (21u)
+#define DMAC9_CHCFG_n_TM_SHIFT              (22u)
+#define DMAC9_CHCFG_n_DEM_SHIFT             (24u)
+#define DMAC9_CHCFG_n_TCM_SHIFT             (25u)
+#define DMAC9_CHCFG_n_SBE_SHIFT             (27u)
+#define DMAC9_CHCFG_n_RSEL_SHIFT            (28u)
+#define DMAC9_CHCFG_n_RSW_SHIFT             (29u)
+#define DMAC9_CHCFG_n_REN_SHIFT             (30u)
+#define DMAC9_CHCFG_n_DMS_SHIFT             (31u)
+
+#define DMAC9_CHITVL_n_ITVL_SHIFT           (0u)
+
+#define DMAC9_CHEXT_n_SCA_SHIFT             (4u)
+#define DMAC9_CHEXT_n_DCA_SHIFT             (12u)
+
+#define DMAC9_NXLA_n_NXLA_SHIFT             (0u)
+
+#define DMAC9_CRLA_n_CRLA_SHIFT             (0u)
+
+/* ---- DMAC10 ---- */
+#define DMAC10_N0SA_n_SA_SHIFT              (0u)
+
+#define DMAC10_N0DA_n_DA_SHIFT              (0u)
+
+#define DMAC10_N0TB_n_TB_SHIFT              (0u)
+
+#define DMAC10_N1SA_n_SA_SHIFT              (0u)
+
+#define DMAC10_N1DA_n_DA_SHIFT              (0u)
+
+#define DMAC10_N1TB_n_TB_SHIFT              (0u)
+
+#define DMAC10_CRSA_n_CRSA_SHIFT            (0u)
+
+#define DMAC10_CRDA_n_CRDA_SHIFT            (0u)
+
+#define DMAC10_CRTB_n_CRTB_SHIFT            (0u)
+
+#define DMAC10_CHSTAT_n_EN_SHIFT            (0u)
+#define DMAC10_CHSTAT_n_RQST_SHIFT          (1u)
+#define DMAC10_CHSTAT_n_TACT_SHIFT          (2u)
+#define DMAC10_CHSTAT_n_SUS_SHIFT           (3u)
+#define DMAC10_CHSTAT_n_ER_SHIFT            (4u)
+#define DMAC10_CHSTAT_n_END_SHIFT           (5u)
+#define DMAC10_CHSTAT_n_TC_SHIFT            (6u)
+#define DMAC10_CHSTAT_n_SR_SHIFT            (7u)
+#define DMAC10_CHSTAT_n_DL_SHIFT            (8u)
+#define DMAC10_CHSTAT_n_DW_SHIFT            (9u)
+#define DMAC10_CHSTAT_n_DER_SHIFT           (10u)
+#define DMAC10_CHSTAT_n_MODE_SHIFT          (11u)
+#define DMAC10_CHSTAT_n_INTMSK_SHIFT        (16u)
+
+#define DMAC10_CHCTRL_n_SETEN_SHIFT         (0u)
+#define DMAC10_CHCTRL_n_CLREN_SHIFT         (1u)
+#define DMAC10_CHCTRL_n_STG_SHIFT           (2u)
+#define DMAC10_CHCTRL_n_SWRST_SHIFT         (3u)
+#define DMAC10_CHCTRL_n_CLRRQ_SHIFT         (4u)
+#define DMAC10_CHCTRL_n_CLREND_SHIFT        (5u)
+#define DMAC10_CHCTRL_n_CLRTC_SHIFT         (6u)
+#define DMAC10_CHCTRL_n_SETSUS_SHIFT        (8u)
+#define DMAC10_CHCTRL_n_CLRSUS_SHIFT        (9u)
+#define DMAC10_CHCTRL_n_SETINTMSK_SHIFT     (16u)
+#define DMAC10_CHCTRL_n_CLRINTMSK_SHIFT     (17u)
+
+#define DMAC10_CHCFG_n_SEL_SHIFT            (0u)
+#define DMAC10_CHCFG_n_REQD_SHIFT           (3u)
+#define DMAC10_CHCFG_n_LOEN_SHIFT           (4u)
+#define DMAC10_CHCFG_n_HIEN_SHIFT           (5u)
+#define DMAC10_CHCFG_n_LVL_SHIFT            (6u)
+#define DMAC10_CHCFG_n_AM_SHIFT             (8u)
+#define DMAC10_CHCFG_n_SDS_SHIFT            (12u)
+#define DMAC10_CHCFG_n_DDS_SHIFT            (16u)
+#define DMAC10_CHCFG_n_SAD_SHIFT            (20u)
+#define DMAC10_CHCFG_n_DAD_SHIFT            (21u)
+#define DMAC10_CHCFG_n_TM_SHIFT             (22u)
+#define DMAC10_CHCFG_n_DEM_SHIFT            (24u)
+#define DMAC10_CHCFG_n_TCM_SHIFT            (25u)
+#define DMAC10_CHCFG_n_SBE_SHIFT            (27u)
+#define DMAC10_CHCFG_n_RSEL_SHIFT           (28u)
+#define DMAC10_CHCFG_n_RSW_SHIFT            (29u)
+#define DMAC10_CHCFG_n_REN_SHIFT            (30u)
+#define DMAC10_CHCFG_n_DMS_SHIFT            (31u)
+
+#define DMAC10_CHITVL_n_ITVL_SHIFT          (0u)
+
+#define DMAC10_CHEXT_n_SCA_SHIFT            (4u)
+#define DMAC10_CHEXT_n_DCA_SHIFT            (12u)
+
+#define DMAC10_NXLA_n_NXLA_SHIFT            (0u)
+
+#define DMAC10_CRLA_n_CRLA_SHIFT            (0u)
+
+/* ---- DMAC11 ---- */
+#define DMAC11_N0SA_n_SA_SHIFT              (0u)
+
+#define DMAC11_N0DA_n_DA_SHIFT              (0u)
+
+#define DMAC11_N0TB_n_TB_SHIFT              (0u)
+
+#define DMAC11_N1SA_n_SA_SHIFT              (0u)
+
+#define DMAC11_N1DA_n_DA_SHIFT              (0u)
+
+#define DMAC11_N1TB_n_TB_SHIFT              (0u)
+
+#define DMAC11_CRSA_n_CRSA_SHIFT            (0u)
+
+#define DMAC11_CRDA_n_CRDA_SHIFT            (0u)
+
+#define DMAC11_CRTB_n_CRTB_SHIFT            (0u)
+
+#define DMAC11_CHSTAT_n_EN_SHIFT            (0u)
+#define DMAC11_CHSTAT_n_RQST_SHIFT          (1u)
+#define DMAC11_CHSTAT_n_TACT_SHIFT          (2u)
+#define DMAC11_CHSTAT_n_SUS_SHIFT           (3u)
+#define DMAC11_CHSTAT_n_ER_SHIFT            (4u)
+#define DMAC11_CHSTAT_n_END_SHIFT           (5u)
+#define DMAC11_CHSTAT_n_TC_SHIFT            (6u)
+#define DMAC11_CHSTAT_n_SR_SHIFT            (7u)
+#define DMAC11_CHSTAT_n_DL_SHIFT            (8u)
+#define DMAC11_CHSTAT_n_DW_SHIFT            (9u)
+#define DMAC11_CHSTAT_n_DER_SHIFT           (10u)
+#define DMAC11_CHSTAT_n_MODE_SHIFT          (11u)
+#define DMAC11_CHSTAT_n_INTMSK_SHIFT        (16u)
+
+#define DMAC11_CHCTRL_n_SETEN_SHIFT         (0u)
+#define DMAC11_CHCTRL_n_CLREN_SHIFT         (1u)
+#define DMAC11_CHCTRL_n_STG_SHIFT           (2u)
+#define DMAC11_CHCTRL_n_SWRST_SHIFT         (3u)
+#define DMAC11_CHCTRL_n_CLRRQ_SHIFT         (4u)
+#define DMAC11_CHCTRL_n_CLREND_SHIFT        (5u)
+#define DMAC11_CHCTRL_n_CLRTC_SHIFT         (6u)
+#define DMAC11_CHCTRL_n_SETSUS_SHIFT        (8u)
+#define DMAC11_CHCTRL_n_CLRSUS_SHIFT        (9u)
+#define DMAC11_CHCTRL_n_SETINTMSK_SHIFT     (16u)
+#define DMAC11_CHCTRL_n_CLRINTMSK_SHIFT     (17u)
+
+#define DMAC11_CHCFG_n_SEL_SHIFT            (0u)
+#define DMAC11_CHCFG_n_REQD_SHIFT           (3u)
+#define DMAC11_CHCFG_n_LOEN_SHIFT           (4u)
+#define DMAC11_CHCFG_n_HIEN_SHIFT           (5u)
+#define DMAC11_CHCFG_n_LVL_SHIFT            (6u)
+#define DMAC11_CHCFG_n_AM_SHIFT             (8u)
+#define DMAC11_CHCFG_n_SDS_SHIFT            (12u)
+#define DMAC11_CHCFG_n_DDS_SHIFT            (16u)
+#define DMAC11_CHCFG_n_SAD_SHIFT            (20u)
+#define DMAC11_CHCFG_n_DAD_SHIFT            (21u)
+#define DMAC11_CHCFG_n_TM_SHIFT             (22u)
+#define DMAC11_CHCFG_n_DEM_SHIFT            (24u)
+#define DMAC11_CHCFG_n_TCM_SHIFT            (25u)
+#define DMAC11_CHCFG_n_SBE_SHIFT            (27u)
+#define DMAC11_CHCFG_n_RSEL_SHIFT           (28u)
+#define DMAC11_CHCFG_n_RSW_SHIFT            (29u)
+#define DMAC11_CHCFG_n_REN_SHIFT            (30u)
+#define DMAC11_CHCFG_n_DMS_SHIFT            (31u)
+
+#define DMAC11_CHITVL_n_ITVL_SHIFT          (0u)
+
+#define DMAC11_CHEXT_n_SCA_SHIFT            (4u)
+#define DMAC11_CHEXT_n_DCA_SHIFT            (12u)
+
+#define DMAC11_NXLA_n_NXLA_SHIFT            (0u)
+
+#define DMAC11_CRLA_n_CRLA_SHIFT            (0u)
+
+/* ---- DMAC12 ---- */
+#define DMAC12_N0SA_n_SA_SHIFT              (0u)
+
+#define DMAC12_N0DA_n_DA_SHIFT              (0u)
+
+#define DMAC12_N0TB_n_TB_SHIFT              (0u)
+
+#define DMAC12_N1SA_n_SA_SHIFT              (0u)
+
+#define DMAC12_N1DA_n_DA_SHIFT              (0u)
+
+#define DMAC12_N1TB_n_TB_SHIFT              (0u)
+
+#define DMAC12_CRSA_n_CRSA_SHIFT            (0u)
+
+#define DMAC12_CRDA_n_CRDA_SHIFT            (0u)
+
+#define DMAC12_CRTB_n_CRTB_SHIFT            (0u)
+
+#define DMAC12_CHSTAT_n_EN_SHIFT            (0u)
+#define DMAC12_CHSTAT_n_RQST_SHIFT          (1u)
+#define DMAC12_CHSTAT_n_TACT_SHIFT          (2u)
+#define DMAC12_CHSTAT_n_SUS_SHIFT           (3u)
+#define DMAC12_CHSTAT_n_ER_SHIFT            (4u)
+#define DMAC12_CHSTAT_n_END_SHIFT           (5u)
+#define DMAC12_CHSTAT_n_TC_SHIFT            (6u)
+#define DMAC12_CHSTAT_n_SR_SHIFT            (7u)
+#define DMAC12_CHSTAT_n_DL_SHIFT            (8u)
+#define DMAC12_CHSTAT_n_DW_SHIFT            (9u)
+#define DMAC12_CHSTAT_n_DER_SHIFT           (10u)
+#define DMAC12_CHSTAT_n_MODE_SHIFT          (11u)
+#define DMAC12_CHSTAT_n_INTMSK_SHIFT        (16u)
+
+#define DMAC12_CHCTRL_n_SETEN_SHIFT         (0u)
+#define DMAC12_CHCTRL_n_CLREN_SHIFT         (1u)
+#define DMAC12_CHCTRL_n_STG_SHIFT           (2u)
+#define DMAC12_CHCTRL_n_SWRST_SHIFT         (3u)
+#define DMAC12_CHCTRL_n_CLRRQ_SHIFT         (4u)
+#define DMAC12_CHCTRL_n_CLREND_SHIFT        (5u)
+#define DMAC12_CHCTRL_n_CLRTC_SHIFT         (6u)
+#define DMAC12_CHCTRL_n_SETSUS_SHIFT        (8u)
+#define DMAC12_CHCTRL_n_CLRSUS_SHIFT        (9u)
+#define DMAC12_CHCTRL_n_SETINTMSK_SHIFT     (16u)
+#define DMAC12_CHCTRL_n_CLRINTMSK_SHIFT     (17u)
+
+#define DMAC12_CHCFG_n_SEL_SHIFT            (0u)
+#define DMAC12_CHCFG_n_REQD_SHIFT           (3u)
+#define DMAC12_CHCFG_n_LOEN_SHIFT           (4u)
+#define DMAC12_CHCFG_n_HIEN_SHIFT           (5u)
+#define DMAC12_CHCFG_n_LVL_SHIFT            (6u)
+#define DMAC12_CHCFG_n_AM_SHIFT             (8u)
+#define DMAC12_CHCFG_n_SDS_SHIFT            (12u)
+#define DMAC12_CHCFG_n_DDS_SHIFT            (16u)
+#define DMAC12_CHCFG_n_SAD_SHIFT            (20u)
+#define DMAC12_CHCFG_n_DAD_SHIFT            (21u)
+#define DMAC12_CHCFG_n_TM_SHIFT             (22u)
+#define DMAC12_CHCFG_n_DEM_SHIFT            (24u)
+#define DMAC12_CHCFG_n_TCM_SHIFT            (25u)
+#define DMAC12_CHCFG_n_SBE_SHIFT            (27u)
+#define DMAC12_CHCFG_n_RSEL_SHIFT           (28u)
+#define DMAC12_CHCFG_n_RSW_SHIFT            (29u)
+#define DMAC12_CHCFG_n_REN_SHIFT            (30u)
+#define DMAC12_CHCFG_n_DMS_SHIFT            (31u)
+
+#define DMAC12_CHITVL_n_ITVL_SHIFT          (0u)
+
+#define DMAC12_CHEXT_n_SCA_SHIFT            (4u)
+#define DMAC12_CHEXT_n_DCA_SHIFT            (12u)
+
+#define DMAC12_NXLA_n_NXLA_SHIFT            (0u)
+
+#define DMAC12_CRLA_n_CRLA_SHIFT            (0u)
+
+/* ---- DMAC13 ---- */
+#define DMAC13_N0SA_n_SA_SHIFT              (0u)
+
+#define DMAC13_N0DA_n_DA_SHIFT              (0u)
+
+#define DMAC13_N0TB_n_TB_SHIFT              (0u)
+
+#define DMAC13_N1SA_n_SA_SHIFT              (0u)
+
+#define DMAC13_N1DA_n_DA_SHIFT              (0u)
+
+#define DMAC13_N1TB_n_TB_SHIFT              (0u)
+
+#define DMAC13_CRSA_n_CRSA_SHIFT            (0u)
+
+#define DMAC13_CRDA_n_CRDA_SHIFT            (0u)
+
+#define DMAC13_CRTB_n_CRTB_SHIFT            (0u)
+
+#define DMAC13_CHSTAT_n_EN_SHIFT            (0u)
+#define DMAC13_CHSTAT_n_RQST_SHIFT          (1u)
+#define DMAC13_CHSTAT_n_TACT_SHIFT          (2u)
+#define DMAC13_CHSTAT_n_SUS_SHIFT           (3u)
+#define DMAC13_CHSTAT_n_ER_SHIFT            (4u)
+#define DMAC13_CHSTAT_n_END_SHIFT           (5u)
+#define DMAC13_CHSTAT_n_TC_SHIFT            (6u)
+#define DMAC13_CHSTAT_n_SR_SHIFT            (7u)
+#define DMAC13_CHSTAT_n_DL_SHIFT            (8u)
+#define DMAC13_CHSTAT_n_DW_SHIFT            (9u)
+#define DMAC13_CHSTAT_n_DER_SHIFT           (10u)
+#define DMAC13_CHSTAT_n_MODE_SHIFT          (11u)
+#define DMAC13_CHSTAT_n_INTMSK_SHIFT        (16u)
+
+#define DMAC13_CHCTRL_n_SETEN_SHIFT         (0u)
+#define DMAC13_CHCTRL_n_CLREN_SHIFT         (1u)
+#define DMAC13_CHCTRL_n_STG_SHIFT           (2u)
+#define DMAC13_CHCTRL_n_SWRST_SHIFT         (3u)
+#define DMAC13_CHCTRL_n_CLRRQ_SHIFT         (4u)
+#define DMAC13_CHCTRL_n_CLREND_SHIFT        (5u)
+#define DMAC13_CHCTRL_n_CLRTC_SHIFT         (6u)
+#define DMAC13_CHCTRL_n_SETSUS_SHIFT        (8u)
+#define DMAC13_CHCTRL_n_CLRSUS_SHIFT        (9u)
+#define DMAC13_CHCTRL_n_SETINTMSK_SHIFT     (16u)
+#define DMAC13_CHCTRL_n_CLRINTMSK_SHIFT     (17u)
+
+#define DMAC13_CHCFG_n_SEL_SHIFT            (0u)
+#define DMAC13_CHCFG_n_REQD_SHIFT           (3u)
+#define DMAC13_CHCFG_n_LOEN_SHIFT           (4u)
+#define DMAC13_CHCFG_n_HIEN_SHIFT           (5u)
+#define DMAC13_CHCFG_n_LVL_SHIFT            (6u)
+#define DMAC13_CHCFG_n_AM_SHIFT             (8u)
+#define DMAC13_CHCFG_n_SDS_SHIFT            (12u)
+#define DMAC13_CHCFG_n_DDS_SHIFT            (16u)
+#define DMAC13_CHCFG_n_SAD_SHIFT            (20u)
+#define DMAC13_CHCFG_n_DAD_SHIFT            (21u)
+#define DMAC13_CHCFG_n_TM_SHIFT             (22u)
+#define DMAC13_CHCFG_n_DEM_SHIFT            (24u)
+#define DMAC13_CHCFG_n_TCM_SHIFT            (25u)
+#define DMAC13_CHCFG_n_SBE_SHIFT            (27u)
+#define DMAC13_CHCFG_n_RSEL_SHIFT           (28u)
+#define DMAC13_CHCFG_n_RSW_SHIFT            (29u)
+#define DMAC13_CHCFG_n_REN_SHIFT            (30u)
+#define DMAC13_CHCFG_n_DMS_SHIFT            (31u)
+
+#define DMAC13_CHITVL_n_ITVL_SHIFT          (0u)
+
+#define DMAC13_CHEXT_n_SCA_SHIFT            (4u)
+#define DMAC13_CHEXT_n_DCA_SHIFT            (12u)
+
+#define DMAC13_NXLA_n_NXLA_SHIFT            (0u)
+
+#define DMAC13_CRLA_n_CRLA_SHIFT            (0u)
+
+/* ---- DMAC14 ---- */
+#define DMAC14_N0SA_n_SA_SHIFT              (0u)
+
+#define DMAC14_N0DA_n_DA_SHIFT              (0u)
+
+#define DMAC14_N0TB_n_TB_SHIFT              (0u)
+
+#define DMAC14_N1SA_n_SA_SHIFT              (0u)
+
+#define DMAC14_N1DA_n_DA_SHIFT              (0u)
+
+#define DMAC14_N1TB_n_TB_SHIFT              (0u)
+
+#define DMAC14_CRSA_n_CRSA_SHIFT            (0u)
+
+#define DMAC14_CRDA_n_CRDA_SHIFT            (0u)
+
+#define DMAC14_CRTB_n_CRTB_SHIFT            (0u)
+
+#define DMAC14_CHSTAT_n_EN_SHIFT            (0u)
+#define DMAC14_CHSTAT_n_RQST_SHIFT          (1u)
+#define DMAC14_CHSTAT_n_TACT_SHIFT          (2u)
+#define DMAC14_CHSTAT_n_SUS_SHIFT           (3u)
+#define DMAC14_CHSTAT_n_ER_SHIFT            (4u)
+#define DMAC14_CHSTAT_n_END_SHIFT           (5u)
+#define DMAC14_CHSTAT_n_TC_SHIFT            (6u)
+#define DMAC14_CHSTAT_n_SR_SHIFT            (7u)
+#define DMAC14_CHSTAT_n_DL_SHIFT            (8u)
+#define DMAC14_CHSTAT_n_DW_SHIFT            (9u)
+#define DMAC14_CHSTAT_n_DER_SHIFT           (10u)
+#define DMAC14_CHSTAT_n_MODE_SHIFT          (11u)
+#define DMAC14_CHSTAT_n_INTMSK_SHIFT        (16u)
+
+#define DMAC14_CHCTRL_n_SETEN_SHIFT         (0u)
+#define DMAC14_CHCTRL_n_CLREN_SHIFT         (1u)
+#define DMAC14_CHCTRL_n_STG_SHIFT           (2u)
+#define DMAC14_CHCTRL_n_SWRST_SHIFT         (3u)
+#define DMAC14_CHCTRL_n_CLRRQ_SHIFT         (4u)
+#define DMAC14_CHCTRL_n_CLREND_SHIFT        (5u)
+#define DMAC14_CHCTRL_n_CLRTC_SHIFT         (6u)
+#define DMAC14_CHCTRL_n_SETSUS_SHIFT        (8u)
+#define DMAC14_CHCTRL_n_CLRSUS_SHIFT        (9u)
+#define DMAC14_CHCTRL_n_SETINTMSK_SHIFT     (16u)
+#define DMAC14_CHCTRL_n_CLRINTMSK_SHIFT     (17u)
+
+#define DMAC14_CHCFG_n_SEL_SHIFT            (0u)
+#define DMAC14_CHCFG_n_REQD_SHIFT           (3u)
+#define DMAC14_CHCFG_n_LOEN_SHIFT           (4u)
+#define DMAC14_CHCFG_n_HIEN_SHIFT           (5u)
+#define DMAC14_CHCFG_n_LVL_SHIFT            (6u)
+#define DMAC14_CHCFG_n_AM_SHIFT             (8u)
+#define DMAC14_CHCFG_n_SDS_SHIFT            (12u)
+#define DMAC14_CHCFG_n_DDS_SHIFT            (16u)
+#define DMAC14_CHCFG_n_SAD_SHIFT            (20u)
+#define DMAC14_CHCFG_n_DAD_SHIFT            (21u)
+#define DMAC14_CHCFG_n_TM_SHIFT             (22u)
+#define DMAC14_CHCFG_n_DEM_SHIFT            (24u)
+#define DMAC14_CHCFG_n_TCM_SHIFT            (25u)
+#define DMAC14_CHCFG_n_SBE_SHIFT            (27u)
+#define DMAC14_CHCFG_n_RSEL_SHIFT           (28u)
+#define DMAC14_CHCFG_n_RSW_SHIFT            (29u)
+#define DMAC14_CHCFG_n_REN_SHIFT            (30u)
+#define DMAC14_CHCFG_n_DMS_SHIFT            (31u)
+
+#define DMAC14_CHITVL_n_ITVL_SHIFT          (0u)
+
+#define DMAC14_CHEXT_n_SCA_SHIFT            (4u)
+#define DMAC14_CHEXT_n_DCA_SHIFT            (12u)
+
+#define DMAC14_NXLA_n_NXLA_SHIFT            (0u)
+
+#define DMAC14_CRLA_n_CRLA_SHIFT            (0u)
+
+/* ---- DMAC15 ---- */
+#define DMAC15_N0SA_n_SA_SHIFT              (0u)
+
+#define DMAC15_N0DA_n_DA_SHIFT              (0u)
+
+#define DMAC15_N0TB_n_TB_SHIFT              (0u)
+
+#define DMAC15_N1SA_n_SA_SHIFT              (0u)
+
+#define DMAC15_N1DA_n_DA_SHIFT              (0u)
+
+#define DMAC15_N1TB_n_TB_SHIFT              (0u)
+
+#define DMAC15_CRSA_n_CRSA_SHIFT            (0u)
+
+#define DMAC15_CRDA_n_CRDA_SHIFT            (0u)
+
+#define DMAC15_CRTB_n_CRTB_SHIFT            (0u)
+
+#define DMAC15_CHSTAT_n_EN_SHIFT            (0u)
+#define DMAC15_CHSTAT_n_RQST_SHIFT          (1u)
+#define DMAC15_CHSTAT_n_TACT_SHIFT          (2u)
+#define DMAC15_CHSTAT_n_SUS_SHIFT           (3u)
+#define DMAC15_CHSTAT_n_ER_SHIFT            (4u)
+#define DMAC15_CHSTAT_n_END_SHIFT           (5u)
+#define DMAC15_CHSTAT_n_TC_SHIFT            (6u)
+#define DMAC15_CHSTAT_n_SR_SHIFT            (7u)
+#define DMAC15_CHSTAT_n_DL_SHIFT            (8u)
+#define DMAC15_CHSTAT_n_DW_SHIFT            (9u)
+#define DMAC15_CHSTAT_n_DER_SHIFT           (10u)
+#define DMAC15_CHSTAT_n_MODE_SHIFT          (11u)
+#define DMAC15_CHSTAT_n_INTMSK_SHIFT        (16u)
+
+#define DMAC15_CHCTRL_n_SETEN_SHIFT         (0u)
+#define DMAC15_CHCTRL_n_CLREN_SHIFT         (1u)
+#define DMAC15_CHCTRL_n_STG_SHIFT           (2u)
+#define DMAC15_CHCTRL_n_SWRST_SHIFT         (3u)
+#define DMAC15_CHCTRL_n_CLRRQ_SHIFT         (4u)
+#define DMAC15_CHCTRL_n_CLREND_SHIFT        (5u)
+#define DMAC15_CHCTRL_n_CLRTC_SHIFT         (6u)
+#define DMAC15_CHCTRL_n_SETSUS_SHIFT        (8u)
+#define DMAC15_CHCTRL_n_CLRSUS_SHIFT        (9u)
+#define DMAC15_CHCTRL_n_SETINTMSK_SHIFT     (16u)
+#define DMAC15_CHCTRL_n_CLRINTMSK_SHIFT     (17u)
+
+#define DMAC15_CHCFG_n_SEL_SHIFT            (0u)
+#define DMAC15_CHCFG_n_REQD_SHIFT           (3u)
+#define DMAC15_CHCFG_n_LOEN_SHIFT           (4u)
+#define DMAC15_CHCFG_n_HIEN_SHIFT           (5u)
+#define DMAC15_CHCFG_n_LVL_SHIFT            (6u)
+#define DMAC15_CHCFG_n_AM_SHIFT             (8u)
+#define DMAC15_CHCFG_n_SDS_SHIFT            (12u)
+#define DMAC15_CHCFG_n_DDS_SHIFT            (16u)
+#define DMAC15_CHCFG_n_SAD_SHIFT            (20u)
+#define DMAC15_CHCFG_n_DAD_SHIFT            (21u)
+#define DMAC15_CHCFG_n_TM_SHIFT             (22u)
+#define DMAC15_CHCFG_n_DEM_SHIFT            (24u)
+#define DMAC15_CHCFG_n_TCM_SHIFT            (25u)
+#define DMAC15_CHCFG_n_SBE_SHIFT            (27u)
+#define DMAC15_CHCFG_n_RSEL_SHIFT           (28u)
+#define DMAC15_CHCFG_n_RSW_SHIFT            (29u)
+#define DMAC15_CHCFG_n_REN_SHIFT            (30u)
+#define DMAC15_CHCFG_n_DMS_SHIFT            (31u)
+
+#define DMAC15_CHITVL_n_ITVL_SHIFT          (0u)
+
+#define DMAC15_CHEXT_n_SCA_SHIFT            (4u)
+#define DMAC15_CHEXT_n_DCA_SHIFT            (12u)
+
+#define DMAC15_NXLA_n_NXLA_SHIFT            (0u)
+
+#define DMAC15_CRLA_n_CRLA_SHIFT            (0u)
+
+/* ---- DMAC8-15 ---- */
+#define DMAC815_DCTRL_8_15_PR_SHIFT         (0u)
+#define DMAC815_DCTRL_8_15_LVINT_SHIFT      (1u)
+#define DMAC815_DCTRL_8_15_LDCA_SHIFT       (2u)
+#define DMAC815_DCTRL_8_15_LWCA_SHIFT       (10u)
+
+#define DMAC815_DSTAT_EN_8_15_EN8_SHIFT     (0u)
+#define DMAC815_DSTAT_EN_8_15_EN9_SHIFT     (1u)
+#define DMAC815_DSTAT_EN_8_15_EN10_SHIFT    (2u)
+#define DMAC815_DSTAT_EN_8_15_EN11_SHIFT    (3u)
+#define DMAC815_DSTAT_EN_8_15_EN12_SHIFT    (4u)
+#define DMAC815_DSTAT_EN_8_15_EN13_SHIFT    (5u)
+#define DMAC815_DSTAT_EN_8_15_EN14_SHIFT    (6u)
+#define DMAC815_DSTAT_EN_8_15_EN15_SHIFT    (7u)
+
+#define DMAC815_DSTAT_ER_8_15_ER8_SHIFT     (0u)
+#define DMAC815_DSTAT_ER_8_15_ER9_SHIFT     (1u)
+#define DMAC815_DSTAT_ER_8_15_ER10_SHIFT    (2u)
+#define DMAC815_DSTAT_ER_8_15_ER11_SHIFT    (3u)
+#define DMAC815_DSTAT_ER_8_15_ER12_SHIFT    (4u)
+#define DMAC815_DSTAT_ER_8_15_ER13_SHIFT    (5u)
+#define DMAC815_DSTAT_ER_8_15_ER14_SHIFT    (6u)
+#define DMAC815_DSTAT_ER_8_15_ER15_SHIFT    (7u)
+
+#define DMAC815_DSTAT_END_8_15_END8_SHIFT   (0u)
+#define DMAC815_DSTAT_END_8_15_END9_SHIFT   (1u)
+#define DMAC815_DSTAT_END_8_15_END10_SHIFT  (2u)
+#define DMAC815_DSTAT_END_8_15_END11_SHIFT  (3u)
+#define DMAC815_DSTAT_END_8_15_END12_SHIFT  (4u)
+#define DMAC815_DSTAT_END_8_15_END13_SHIFT  (5u)
+#define DMAC815_DSTAT_END_8_15_END14_SHIFT  (6u)
+#define DMAC815_DSTAT_END_8_15_END15_SHIFT  (7u)
+
+#define DMAC815_DSTAT_TC_8_15_TC8_SHIFT     (0u)
+#define DMAC815_DSTAT_TC_8_15_TC9_SHIFT     (1u)
+#define DMAC815_DSTAT_TC_8_15_TC10_SHIFT    (2u)
+#define DMAC815_DSTAT_TC_8_15_TC11_SHIFT    (3u)
+#define DMAC815_DSTAT_TC_8_15_TC12_SHIFT    (4u)
+#define DMAC815_DSTAT_TC_8_15_TC13_SHIFT    (5u)
+#define DMAC815_DSTAT_TC_8_15_TC14_SHIFT    (6u)
+#define DMAC815_DSTAT_TC_8_15_TC15_SHIFT    (7u)
+
+#define DMAC815_DSTAT_SUS_8_15_SUS8_SHIFT   (0u)
+#define DMAC815_DSTAT_SUS_8_15_SUS9_SHIFT   (1u)
+#define DMAC815_DSTAT_SUS_8_15_SUS10_SHIFT  (2u)
+#define DMAC815_DSTAT_SUS_8_15_SUS11_SHIFT  (3u)
+#define DMAC815_DSTAT_SUS_8_15_SUS12_SHIFT  (4u)
+#define DMAC815_DSTAT_SUS_8_15_SUS13_SHIFT  (5u)
+#define DMAC815_DSTAT_SUS_8_15_SUS14_SHIFT  (6u)
+#define DMAC815_DSTAT_SUS_8_15_SUS15_SHIFT  (7u)
+
+/* ---- DMAC0-1 ---- */
+#define DMAC01_DMARS_CH0_RID_SHIFT          (0u)
+#define DMAC01_DMARS_CH0_MID_SHIFT          (2u)
+#define DMAC01_DMARS_CH1_RID_SHIFT          (16u)
+#define DMAC01_DMARS_CH1_MID_SHIFT          (18u)
+
+/* ---- DMAC2-3 ---- */
+#define DMAC23_DMARS_CH2_RID_SHIFT          (0u)
+#define DMAC23_DMARS_CH2_MID_SHIFT          (2u)
+#define DMAC23_DMARS_CH3_RID_SHIFT          (16u)
+#define DMAC23_DMARS_CH3_MID_SHIFT          (18u)
+
+/* ---- DMAC4-5 ---- */
+#define DMAC45_DMARS_CH4_RID_SHIFT          (0u)
+#define DMAC45_DMARS_CH4_MID_SHIFT          (2u)
+#define DMAC45_DMARS_CH5_RID_SHIFT          (16u)
+#define DMAC45_DMARS_CH5_MID_SHIFT          (18u)
+
+/* ---- DMAC6-7 ---- */
+#define DMAC67_DMARS_CH6_RID_SHIFT          (0u)
+#define DMAC67_DMARS_CH6_MID_SHIFT          (2u)
+#define DMAC67_DMARS_CH7_RID_SHIFT          (16u)
+#define DMAC67_DMARS_CH7_MID_SHIFT          (18u)
+
+/* ---- DMAC8-9 ---- */
+#define DMAC89_DMARS_CH8_RID_SHIFT          (0u)
+#define DMAC89_DMARS_CH8_MID_SHIFT          (2u)
+#define DMAC89_DMARS_CH9_RID_SHIFT          (16u)
+#define DMAC89_DMARS_CH9_MID_SHIFT          (18u)
+
+/* ---- DMAC10-11 ---- */
+#define DMAC1011_DMARS_CH10_RID_SHIFT       (0u)
+#define DMAC1011_DMARS_CH10_MID_SHIFT       (2u)
+#define DMAC1011_DMARS_CH11_RID_SHIFT       (16u)
+#define DMAC1011_DMARS_CH11_MID_SHIFT       (18u)
+
+/* ---- DMAC12-13 ---- */
+#define DMAC1213_DMARS_CH12_RID_SHIFT       (0u)
+#define DMAC1213_DMARS_CH12_MID_SHIFT       (2u)
+#define DMAC1213_DMARS_CH13_RID_SHIFT       (16u)
+#define DMAC1213_DMARS_CH13_MID_SHIFT       (18u)
+
+/* ---- DMAC14-15 ---- */
+#define DMAC1415_DMARS_CH14_RID_SHIFT       (0u)
+#define DMAC1415_DMARS_CH14_MID_SHIFT       (2u)
+#define DMAC1415_DMARS_CH15_RID_SHIFT       (16u)
+#define DMAC1415_DMARS_CH15_MID_SHIFT       (18u)
+
+
+#endif /* DMAC_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/gpio_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/gpio_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/gpio_iobitmask.h	(revision 429)
@@ -0,0 +1,5793 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : gpio_iobitmask.h
+* $Rev: 1115 $
+* $Date:: 2014-07-09 15:35:02 +0900#$
+* Description : General purpose I/O ports register define header
+*******************************************************************************/
+#ifndef GPIO_IOBITMASK_H
+#define GPIO_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+/* ---- P0 ---- */
+#define GPIO_PPR0_PPR00                         (0x0001u)
+#define GPIO_PPR0_PPR01                         (0x0002u)
+#define GPIO_PPR0_PPR02                         (0x0004u)
+#define GPIO_PPR0_PPR03                         (0x0008u)
+#define GPIO_PPR0_PPR04                         (0x0010u)
+#define GPIO_PPR0_PPR05                         (0x0020u)
+
+#define GPIO_PMC0_PMC04                         (0x0010u)
+#define GPIO_PMC0_PMC05                         (0x0020u)
+
+#define GPIO_PMCSR0_PMCSR04                     (0x00000010uL)
+#define GPIO_PMCSR0_PMCSR05                     (0x00000020uL)
+
+#define GPIO_PIBC0_PIBC00                       (0x0001u)
+#define GPIO_PIBC0_PIBC01                       (0x0002u)
+#define GPIO_PIBC0_PIBC02                       (0x0004u)
+#define GPIO_PIBC0_PIBC03                       (0x0008u)
+#define GPIO_PIBC0_PIBC04                       (0x0010u)
+#define GPIO_PIBC0_PIBC05                       (0x0020u)
+
+/* ---- P1 ---- */
+#define GPIO_P1_P10                             (0x0001u)
+#define GPIO_P1_P11                             (0x0002u)
+#define GPIO_P1_P12                             (0x0004u)
+#define GPIO_P1_P13                             (0x0008u)
+#define GPIO_P1_P14                             (0x0010u)
+#define GPIO_P1_P15                             (0x0020u)
+#define GPIO_P1_P16                             (0x0040u)
+#define GPIO_P1_P17                             (0x0080u)
+
+#define GPIO_PSR1_PSR10                         (0x00000001uL)
+#define GPIO_PSR1_PSR11                         (0x00000002uL)
+#define GPIO_PSR1_PSR12                         (0x00000004uL)
+#define GPIO_PSR1_PSR13                         (0x00000008uL)
+#define GPIO_PSR1_PSR14                         (0x00000010uL)
+#define GPIO_PSR1_PSR15                         (0x00000020uL)
+#define GPIO_PSR1_PSR16                         (0x00000040uL)
+#define GPIO_PSR1_PSR17                         (0x00000080uL)
+#define GPIO_PSR1_PSR116                        (0x00010000uL)
+#define GPIO_PSR1_PSR117                        (0x00020000uL)
+#define GPIO_PSR1_PSR118                        (0x00040000uL)
+#define GPIO_PSR1_PSR119                        (0x00080000uL)
+#define GPIO_PSR1_PSR120                        (0x00100000uL)
+#define GPIO_PSR1_PSR121                        (0x00200000uL)
+#define GPIO_PSR1_PSR122                        (0x00400000uL)
+#define GPIO_PSR1_PSR123                        (0x00800000uL)
+
+#define GPIO_PPR1_PPR10                         (0x0001u)
+#define GPIO_PPR1_PPR11                         (0x0002u)
+#define GPIO_PPR1_PPR12                         (0x0004u)
+#define GPIO_PPR1_PPR13                         (0x0008u)
+#define GPIO_PPR1_PPR14                         (0x0010u)
+#define GPIO_PPR1_PPR15                         (0x0020u)
+#define GPIO_PPR1_PPR16                         (0x0040u)
+#define GPIO_PPR1_PPR17                         (0x0080u)
+#define GPIO_PPR1_PPR18                         (0x0100u)
+#define GPIO_PPR1_PPR19                         (0x0200u)
+#define GPIO_PPR1_PPR110                        (0x0400u)
+#define GPIO_PPR1_PPR111                        (0x0800u)
+#define GPIO_PPR1_PPR112                        (0x1000u)
+#define GPIO_PPR1_PPR113                        (0x2000u)
+#define GPIO_PPR1_PPR114                        (0x4000u)
+#define GPIO_PPR1_PPR115                        (0x8000u)
+
+#define GPIO_PM1_PM10                           (0x0001u)
+#define GPIO_PM1_PM11                           (0x0002u)
+#define GPIO_PM1_PM12                           (0x0004u)
+#define GPIO_PM1_PM13                           (0x0008u)
+#define GPIO_PM1_PM14                           (0x0010u)
+#define GPIO_PM1_PM15                           (0x0020u)
+#define GPIO_PM1_PM16                           (0x0040u)
+#define GPIO_PM1_PM17                           (0x0080u)
+
+#define GPIO_PMC1_PMC10                         (0x0001u)
+#define GPIO_PMC1_PMC11                         (0x0002u)
+#define GPIO_PMC1_PMC12                         (0x0004u)
+#define GPIO_PMC1_PMC13                         (0x0008u)
+#define GPIO_PMC1_PMC14                         (0x0010u)
+#define GPIO_PMC1_PMC15                         (0x0020u)
+#define GPIO_PMC1_PMC16                         (0x0040u)
+#define GPIO_PMC1_PMC17                         (0x0080u)
+#define GPIO_PMC1_PMC18                         (0x0100u)
+#define GPIO_PMC1_PMC19                         (0x0200u)
+#define GPIO_PMC1_PMC110                        (0x0400u)
+#define GPIO_PMC1_PMC111                        (0x0800u)
+#define GPIO_PMC1_PMC112                        (0x1000u)
+#define GPIO_PMC1_PMC113                        (0x2000u)
+#define GPIO_PMC1_PMC114                        (0x4000u)
+#define GPIO_PMC1_PMC115                        (0x8000u)
+
+#define GPIO_PFC1_PFC10                         (0x0001u)
+#define GPIO_PFC1_PFC11                         (0x0002u)
+#define GPIO_PFC1_PFC12                         (0x0004u)
+#define GPIO_PFC1_PFC13                         (0x0008u)
+#define GPIO_PFC1_PFC14                         (0x0010u)
+#define GPIO_PFC1_PFC15                         (0x0020u)
+#define GPIO_PFC1_PFC16                         (0x0040u)
+#define GPIO_PFC1_PFC17                         (0x0080u)
+#define GPIO_PFC1_PFC18                         (0x0100u)
+#define GPIO_PFC1_PFC19                         (0x0200u)
+#define GPIO_PFC1_PFC110                        (0x0400u)
+#define GPIO_PFC1_PFC111                        (0x0800u)
+#define GPIO_PFC1_PFC112                        (0x1000u)
+#define GPIO_PFC1_PFC113                        (0x2000u)
+#define GPIO_PFC1_PFC114                        (0x4000u)
+#define GPIO_PFC1_PFC115                        (0x8000u)
+
+#define GPIO_PFCE1_PFCE10                       (0x0001u)
+#define GPIO_PFCE1_PFCE11                       (0x0002u)
+#define GPIO_PFCE1_PFCE12                       (0x0004u)
+#define GPIO_PFCE1_PFCE13                       (0x0008u)
+#define GPIO_PFCE1_PFCE14                       (0x0010u)
+#define GPIO_PFCE1_PFCE15                       (0x0020u)
+#define GPIO_PFCE1_PFCE16                       (0x0040u)
+#define GPIO_PFCE1_PFCE17                       (0x0080u)
+#define GPIO_PFCE1_PFCE18                       (0x0100u)
+#define GPIO_PFCE1_PFCE19                       (0x0200u)
+#define GPIO_PFCE1_PFCE110                      (0x0400u)
+#define GPIO_PFCE1_PFCE111                      (0x0800u)
+#define GPIO_PFCE1_PFCE112                      (0x1000u)
+#define GPIO_PFCE1_PFCE113                      (0x2000u)
+#define GPIO_PFCE1_PFCE114                      (0x4000u)
+#define GPIO_PFCE1_PFCE115                      (0x8000u)
+
+#define GPIO_PNOT1_PNOT10                       (0x0001u)
+#define GPIO_PNOT1_PNOT11                       (0x0002u)
+#define GPIO_PNOT1_PNOT12                       (0x0004u)
+#define GPIO_PNOT1_PNOT13                       (0x0008u)
+#define GPIO_PNOT1_PNOT14                       (0x0010u)
+#define GPIO_PNOT1_PNOT15                       (0x0020u)
+#define GPIO_PNOT1_PNOT16                       (0x0040u)
+#define GPIO_PNOT1_PNOT17                       (0x0080u)
+
+#define GPIO_PMSR1_PMSR10                       (0x00000001uL)
+#define GPIO_PMSR1_PMSR11                       (0x00000002uL)
+#define GPIO_PMSR1_PMSR12                       (0x00000004uL)
+#define GPIO_PMSR1_PMSR13                       (0x00000008uL)
+#define GPIO_PMSR1_PMSR14                       (0x00000010uL)
+#define GPIO_PMSR1_PMSR15                       (0x00000020uL)
+#define GPIO_PMSR1_PMSR16                       (0x00000040uL)
+#define GPIO_PMSR1_PMSR17                       (0x00000080uL)
+#define GPIO_PMSR1_PMSR116                      (0x00010000uL)
+#define GPIO_PMSR1_PMSR117                      (0x00020000uL)
+#define GPIO_PMSR1_PMSR118                      (0x00040000uL)
+#define GPIO_PMSR1_PMSR119                      (0x00080000uL)
+#define GPIO_PMSR1_PMSR120                      (0x00100000uL)
+#define GPIO_PMSR1_PMSR121                      (0x00200000uL)
+#define GPIO_PMSR1_PMSR122                      (0x00400000uL)
+#define GPIO_PMSR1_PMSR123                      (0x00800000uL)
+
+#define GPIO_PMCSR1_PMCSR10                     (0x00000001uL)
+#define GPIO_PMCSR1_PMCSR11                     (0x00000002uL)
+#define GPIO_PMCSR1_PMCSR12                     (0x00000004uL)
+#define GPIO_PMCSR1_PMCSR13                     (0x00000008uL)
+#define GPIO_PMCSR1_PMCSR14                     (0x00000010uL)
+#define GPIO_PMCSR1_PMCSR15                     (0x00000020uL)
+#define GPIO_PMCSR1_PMCSR16                     (0x00000040uL)
+#define GPIO_PMCSR1_PMCSR17                     (0x00000080uL)
+#define GPIO_PMCSR1_PMCSR116                    (0x00010000uL)
+#define GPIO_PMCSR1_PMCSR117                    (0x00020000uL)
+#define GPIO_PMCSR1_PMCSR118                    (0x00040000uL)
+#define GPIO_PMCSR1_PMCSR119                    (0x00080000uL)
+#define GPIO_PMCSR1_PMCSR120                    (0x00100000uL)
+#define GPIO_PMCSR1_PMCSR121                    (0x00200000uL)
+#define GPIO_PMCSR1_PMCSR122                    (0x00400000uL)
+#define GPIO_PMCSR1_PMCSR123                    (0x00800000uL)
+
+#define GPIO_PFCAE1_PFCAE10                     (0x0001u)
+#define GPIO_PFCAE1_PFCAE11                     (0x0002u)
+#define GPIO_PFCAE1_PFCAE12                     (0x0004u)
+#define GPIO_PFCAE1_PFCAE13                     (0x0008u)
+#define GPIO_PFCAE1_PFCAE14                     (0x0010u)
+#define GPIO_PFCAE1_PFCAE15                     (0x0020u)
+#define GPIO_PFCAE1_PFCAE16                     (0x0040u)
+#define GPIO_PFCAE1_PFCAE17                     (0x0080u)
+#define GPIO_PFCAE1_PFCAE18                     (0x0100u)
+#define GPIO_PFCAE1_PFCAE19                     (0x0200u)
+#define GPIO_PFCAE1_PFCAE110                    (0x0400u)
+#define GPIO_PFCAE1_PFCAE111                    (0x0800u)
+#define GPIO_PFCAE1_PFCAE112                    (0x1000u)
+#define GPIO_PFCAE1_PFCAE113                    (0x2000u)
+#define GPIO_PFCAE1_PFCAE114                    (0x4000u)
+#define GPIO_PFCAE1_PFCAE115                    (0x8000u)
+
+#define GPIO_PIBC1_PIBC10                       (0x0001u)
+#define GPIO_PIBC1_PIBC11                       (0x0002u)
+#define GPIO_PIBC1_PIBC12                       (0x0004u)
+#define GPIO_PIBC1_PIBC13                       (0x0008u)
+#define GPIO_PIBC1_PIBC14                       (0x0010u)
+#define GPIO_PIBC1_PIBC15                       (0x0020u)
+#define GPIO_PIBC1_PIBC16                       (0x0040u)
+#define GPIO_PIBC1_PIBC17                       (0x0080u)
+#define GPIO_PIBC1_PIBC18                       (0x0100u)
+#define GPIO_PIBC1_PIBC19                       (0x0200u)
+#define GPIO_PIBC1_PIBC110                      (0x0400u)
+#define GPIO_PIBC1_PIBC111                      (0x0800u)
+#define GPIO_PIBC1_PIBC112                      (0x1000u)
+#define GPIO_PIBC1_PIBC113                      (0x2000u)
+#define GPIO_PIBC1_PIBC114                      (0x4000u)
+#define GPIO_PIBC1_PIBC115                      (0x8000u)
+
+#define GPIO_PBDC1_PBDC10                       (0x0001u)
+#define GPIO_PBDC1_PBDC11                       (0x0002u)
+#define GPIO_PBDC1_PBDC12                       (0x0004u)
+#define GPIO_PBDC1_PBDC13                       (0x0008u)
+#define GPIO_PBDC1_PBDC14                       (0x0010u)
+#define GPIO_PBDC1_PBDC15                       (0x0020u)
+#define GPIO_PBDC1_PBDC16                       (0x0040u)
+#define GPIO_PBDC1_PBDC17                       (0x0080u)
+#define GPIO_PBDC1_PBDC18                       (0x0100u)
+#define GPIO_PBDC1_PBDC19                       (0x0200u)
+#define GPIO_PBDC1_PBDC110                      (0x0400u)
+#define GPIO_PBDC1_PBDC111                      (0x0800u)
+#define GPIO_PBDC1_PBDC112                      (0x1000u)
+#define GPIO_PBDC1_PBDC113                      (0x2000u)
+#define GPIO_PBDC1_PBDC114                      (0x4000u)
+#define GPIO_PBDC1_PBDC115                      (0x8000u)
+
+#define GPIO_PIPC1_PIPC10                       (0x0001u)
+#define GPIO_PIPC1_PIPC11                       (0x0002u)
+#define GPIO_PIPC1_PIPC12                       (0x0004u)
+#define GPIO_PIPC1_PIPC13                       (0x0008u)
+#define GPIO_PIPC1_PIPC14                       (0x0010u)
+#define GPIO_PIPC1_PIPC15                       (0x0020u)
+#define GPIO_PIPC1_PIPC16                       (0x0040u)
+#define GPIO_PIPC1_PIPC17                       (0x0080u)
+
+/* ---- P2 ---- */
+#define GPIO_P2_P20                             (0x0001u)
+#define GPIO_P2_P21                             (0x0002u)
+#define GPIO_P2_P22                             (0x0004u)
+#define GPIO_P2_P23                             (0x0008u)
+#define GPIO_P2_P24                             (0x0010u)
+#define GPIO_P2_P25                             (0x0020u)
+#define GPIO_P2_P26                             (0x0040u)
+#define GPIO_P2_P27                             (0x0080u)
+#define GPIO_P2_P28                             (0x0100u)
+#define GPIO_P2_P29                             (0x0200u)
+#define GPIO_P2_P210                            (0x0400u)
+#define GPIO_P2_P211                            (0x0800u)
+#define GPIO_P2_P212                            (0x1000u)
+#define GPIO_P2_P213                            (0x2000u)
+#define GPIO_P2_P214                            (0x4000u)
+#define GPIO_P2_P215                            (0x8000u)
+
+#define GPIO_PSR2_PSR20                         (0x00000001uL)
+#define GPIO_PSR2_PSR21                         (0x00000002uL)
+#define GPIO_PSR2_PSR22                         (0x00000004uL)
+#define GPIO_PSR2_PSR23                         (0x00000008uL)
+#define GPIO_PSR2_PSR24                         (0x00000010uL)
+#define GPIO_PSR2_PSR25                         (0x00000020uL)
+#define GPIO_PSR2_PSR26                         (0x00000040uL)
+#define GPIO_PSR2_PSR27                         (0x00000080uL)
+#define GPIO_PSR2_PSR28                         (0x00000100uL)
+#define GPIO_PSR2_PSR29                         (0x00000200uL)
+#define GPIO_PSR2_PSR210                        (0x00000400uL)
+#define GPIO_PSR2_PSR211                        (0x00000800uL)
+#define GPIO_PSR2_PSR212                        (0x00001000uL)
+#define GPIO_PSR2_PSR213                        (0x00002000uL)
+#define GPIO_PSR2_PSR214                        (0x00004000uL)
+#define GPIO_PSR2_PSR215                        (0x00008000uL)
+#define GPIO_PSR2_PSR216                        (0x00010000uL)
+#define GPIO_PSR2_PSR217                        (0x00020000uL)
+#define GPIO_PSR2_PSR218                        (0x00040000uL)
+#define GPIO_PSR2_PSR219                        (0x00080000uL)
+#define GPIO_PSR2_PSR220                        (0x00100000uL)
+#define GPIO_PSR2_PSR221                        (0x00200000uL)
+#define GPIO_PSR2_PSR222                        (0x00400000uL)
+#define GPIO_PSR2_PSR223                        (0x00800000uL)
+#define GPIO_PSR2_PSR224                        (0x01000000uL)
+#define GPIO_PSR2_PSR225                        (0x02000000uL)
+#define GPIO_PSR2_PSR226                        (0x04000000uL)
+#define GPIO_PSR2_PSR227                        (0x08000000uL)
+#define GPIO_PSR2_PSR228                        (0x10000000uL)
+#define GPIO_PSR2_PSR229                        (0x20000000uL)
+#define GPIO_PSR2_PSR230                        (0x40000000uL)
+#define GPIO_PSR2_PSR231                        (0x80000000uL)
+
+#define GPIO_PPR2_PPR20                         (0x0001u)
+#define GPIO_PPR2_PPR21                         (0x0002u)
+#define GPIO_PPR2_PPR22                         (0x0004u)
+#define GPIO_PPR2_PPR23                         (0x0008u)
+#define GPIO_PPR2_PPR24                         (0x0010u)
+#define GPIO_PPR2_PPR25                         (0x0020u)
+#define GPIO_PPR2_PPR26                         (0x0040u)
+#define GPIO_PPR2_PPR27                         (0x0080u)
+#define GPIO_PPR2_PPR28                         (0x0100u)
+#define GPIO_PPR2_PPR29                         (0x0200u)
+#define GPIO_PPR2_PPR210                        (0x0400u)
+#define GPIO_PPR2_PPR211                        (0x0800u)
+#define GPIO_PPR2_PPR212                        (0x1000u)
+#define GPIO_PPR2_PPR213                        (0x2000u)
+#define GPIO_PPR2_PPR214                        (0x4000u)
+#define GPIO_PPR2_PPR215                        (0x8000u)
+
+#define GPIO_PM2_PM20                           (0x0001u)
+#define GPIO_PM2_PM21                           (0x0002u)
+#define GPIO_PM2_PM22                           (0x0004u)
+#define GPIO_PM2_PM23                           (0x0008u)
+#define GPIO_PM2_PM24                           (0x0010u)
+#define GPIO_PM2_PM25                           (0x0020u)
+#define GPIO_PM2_PM26                           (0x0040u)
+#define GPIO_PM2_PM27                           (0x0080u)
+#define GPIO_PM2_PM28                           (0x0100u)
+#define GPIO_PM2_PM29                           (0x0200u)
+#define GPIO_PM2_PM210                          (0x0400u)
+#define GPIO_PM2_PM211                          (0x0800u)
+#define GPIO_PM2_PM212                          (0x1000u)
+#define GPIO_PM2_PM213                          (0x2000u)
+#define GPIO_PM2_PM214                          (0x4000u)
+#define GPIO_PM2_PM215                          (0x8000u)
+
+#define GPIO_PMC2_PMC20                         (0x0001u)
+#define GPIO_PMC2_PMC21                         (0x0002u)
+#define GPIO_PMC2_PMC22                         (0x0004u)
+#define GPIO_PMC2_PMC23                         (0x0008u)
+#define GPIO_PMC2_PMC24                         (0x0010u)
+#define GPIO_PMC2_PMC25                         (0x0020u)
+#define GPIO_PMC2_PMC26                         (0x0040u)
+#define GPIO_PMC2_PMC27                         (0x0080u)
+#define GPIO_PMC2_PMC28                         (0x0100u)
+#define GPIO_PMC2_PMC29                         (0x0200u)
+#define GPIO_PMC2_PMC210                        (0x0400u)
+#define GPIO_PMC2_PMC211                        (0x0800u)
+#define GPIO_PMC2_PMC212                        (0x1000u)
+#define GPIO_PMC2_PMC213                        (0x2000u)
+#define GPIO_PMC2_PMC214                        (0x4000u)
+#define GPIO_PMC2_PMC215                        (0x8000u)
+
+#define GPIO_PFC2_PFC20                         (0x0001u)
+#define GPIO_PFC2_PFC21                         (0x0002u)
+#define GPIO_PFC2_PFC22                         (0x0004u)
+#define GPIO_PFC2_PFC23                         (0x0008u)
+#define GPIO_PFC2_PFC24                         (0x0010u)
+#define GPIO_PFC2_PFC25                         (0x0020u)
+#define GPIO_PFC2_PFC26                         (0x0040u)
+#define GPIO_PFC2_PFC27                         (0x0080u)
+#define GPIO_PFC2_PFC28                         (0x0100u)
+#define GPIO_PFC2_PFC29                         (0x0200u)
+#define GPIO_PFC2_PFC210                        (0x0400u)
+#define GPIO_PFC2_PFC211                        (0x0800u)
+#define GPIO_PFC2_PFC212                        (0x1000u)
+#define GPIO_PFC2_PFC213                        (0x2000u)
+#define GPIO_PFC2_PFC214                        (0x4000u)
+#define GPIO_PFC2_PFC215                        (0x8000u)
+
+#define GPIO_PFCE2_PFCE20                       (0x0001u)
+#define GPIO_PFCE2_PFCE21                       (0x0002u)
+#define GPIO_PFCE2_PFCE22                       (0x0004u)
+#define GPIO_PFCE2_PFCE23                       (0x0008u)
+#define GPIO_PFCE2_PFCE24                       (0x0010u)
+#define GPIO_PFCE2_PFCE25                       (0x0020u)
+#define GPIO_PFCE2_PFCE26                       (0x0040u)
+#define GPIO_PFCE2_PFCE27                       (0x0080u)
+#define GPIO_PFCE2_PFCE28                       (0x0100u)
+#define GPIO_PFCE2_PFCE29                       (0x0200u)
+#define GPIO_PFCE2_PFCE210                      (0x0400u)
+#define GPIO_PFCE2_PFCE211                      (0x0800u)
+#define GPIO_PFCE2_PFCE212                      (0x1000u)
+#define GPIO_PFCE2_PFCE213                      (0x2000u)
+#define GPIO_PFCE2_PFCE214                      (0x4000u)
+#define GPIO_PFCE2_PFCE215                      (0x8000u)
+
+#define GPIO_PNOT2_PNOT20                       (0x0001u)
+#define GPIO_PNOT2_PNOT21                       (0x0002u)
+#define GPIO_PNOT2_PNOT22                       (0x0004u)
+#define GPIO_PNOT2_PNOT23                       (0x0008u)
+#define GPIO_PNOT2_PNOT24                       (0x0010u)
+#define GPIO_PNOT2_PNOT25                       (0x0020u)
+#define GPIO_PNOT2_PNOT26                       (0x0040u)
+#define GPIO_PNOT2_PNOT27                       (0x0080u)
+#define GPIO_PNOT2_PNOT28                       (0x0100u)
+#define GPIO_PNOT2_PNOT29                       (0x0200u)
+#define GPIO_PNOT2_PNOT210                      (0x0400u)
+#define GPIO_PNOT2_PNOT211                      (0x0800u)
+#define GPIO_PNOT2_PNOT212                      (0x1000u)
+#define GPIO_PNOT2_PNOT213                      (0x2000u)
+#define GPIO_PNOT2_PNOT214                      (0x4000u)
+#define GPIO_PNOT2_PNOT215                      (0x8000u)
+
+#define GPIO_PMSR2_PMSR20                       (0x00000001uL)
+#define GPIO_PMSR2_PMSR21                       (0x00000002uL)
+#define GPIO_PMSR2_PMSR22                       (0x00000004uL)
+#define GPIO_PMSR2_PMSR23                       (0x00000008uL)
+#define GPIO_PMSR2_PMSR24                       (0x00000010uL)
+#define GPIO_PMSR2_PMSR25                       (0x00000020uL)
+#define GPIO_PMSR2_PMSR26                       (0x00000040uL)
+#define GPIO_PMSR2_PMSR27                       (0x00000080uL)
+#define GPIO_PMSR2_PMSR28                       (0x00000100uL)
+#define GPIO_PMSR2_PMSR29                       (0x00000200uL)
+#define GPIO_PMSR2_PMSR210                      (0x00000400uL)
+#define GPIO_PMSR2_PMSR211                      (0x00000800uL)
+#define GPIO_PMSR2_PMSR212                      (0x00001000uL)
+#define GPIO_PMSR2_PMSR213                      (0x00002000uL)
+#define GPIO_PMSR2_PMSR214                      (0x00004000uL)
+#define GPIO_PMSR2_PMSR215                      (0x00008000uL)
+#define GPIO_PMSR2_PMSR216                      (0x00010000uL)
+#define GPIO_PMSR2_PMSR217                      (0x00020000uL)
+#define GPIO_PMSR2_PMSR218                      (0x00040000uL)
+#define GPIO_PMSR2_PMSR219                      (0x00080000uL)
+#define GPIO_PMSR2_PMSR220                      (0x00100000uL)
+#define GPIO_PMSR2_PMSR221                      (0x00200000uL)
+#define GPIO_PMSR2_PMSR222                      (0x00400000uL)
+#define GPIO_PMSR2_PMSR223                      (0x00800000uL)
+#define GPIO_PMSR2_PMSR224                      (0x01000000uL)
+#define GPIO_PMSR2_PMSR225                      (0x02000000uL)
+#define GPIO_PMSR2_PMSR226                      (0x04000000uL)
+#define GPIO_PMSR2_PMSR227                      (0x08000000uL)
+#define GPIO_PMSR2_PMSR228                      (0x10000000uL)
+#define GPIO_PMSR2_PMSR229                      (0x20000000uL)
+#define GPIO_PMSR2_PMSR230                      (0x40000000uL)
+#define GPIO_PMSR2_PMSR231                      (0x80000000uL)
+
+#define GPIO_PMCSR2_PMCSR20                     (0x00000001uL)
+#define GPIO_PMCSR2_PMCSR21                     (0x00000002uL)
+#define GPIO_PMCSR2_PMCSR22                     (0x00000004uL)
+#define GPIO_PMCSR2_PMCSR23                     (0x00000008uL)
+#define GPIO_PMCSR2_PMCSR24                     (0x00000010uL)
+#define GPIO_PMCSR2_PMCSR25                     (0x00000020uL)
+#define GPIO_PMCSR2_PMCSR26                     (0x00000040uL)
+#define GPIO_PMCSR2_PMCSR27                     (0x00000080uL)
+#define GPIO_PMCSR2_PMCSR28                     (0x00000100uL)
+#define GPIO_PMCSR2_PMCSR29                     (0x00000200uL)
+#define GPIO_PMCSR2_PMCSR210                    (0x00000400uL)
+#define GPIO_PMCSR2_PMCSR211                    (0x00000800uL)
+#define GPIO_PMCSR2_PMCSR212                    (0x00001000uL)
+#define GPIO_PMCSR2_PMCSR213                    (0x00002000uL)
+#define GPIO_PMCSR2_PMCSR214                    (0x00004000uL)
+#define GPIO_PMCSR2_PMCSR215                    (0x00008000uL)
+#define GPIO_PMCSR2_PMCSR216                    (0x00010000uL)
+#define GPIO_PMCSR2_PMCSR217                    (0x00020000uL)
+#define GPIO_PMCSR2_PMCSR218                    (0x00040000uL)
+#define GPIO_PMCSR2_PMCSR219                    (0x00080000uL)
+#define GPIO_PMCSR2_PMCSR220                    (0x00100000uL)
+#define GPIO_PMCSR2_PMCSR221                    (0x00200000uL)
+#define GPIO_PMCSR2_PMCSR222                    (0x00400000uL)
+#define GPIO_PMCSR2_PMCSR223                    (0x00800000uL)
+#define GPIO_PMCSR2_PMCSR224                    (0x01000000uL)
+#define GPIO_PMCSR2_PMCSR225                    (0x02000000uL)
+#define GPIO_PMCSR2_PMCSR226                    (0x04000000uL)
+#define GPIO_PMCSR2_PMCSR227                    (0x08000000uL)
+#define GPIO_PMCSR2_PMCSR228                    (0x10000000uL)
+#define GPIO_PMCSR2_PMCSR229                    (0x20000000uL)
+#define GPIO_PMCSR2_PMCSR230                    (0x40000000uL)
+#define GPIO_PMCSR2_PMCSR231                    (0x80000000uL)
+
+#define GPIO_PFCAE2_PFCAE20                     (0x0001u)
+#define GPIO_PFCAE2_PFCAE21                     (0x0002u)
+#define GPIO_PFCAE2_PFCAE22                     (0x0004u)
+#define GPIO_PFCAE2_PFCAE23                     (0x0008u)
+#define GPIO_PFCAE2_PFCAE24                     (0x0010u)
+#define GPIO_PFCAE2_PFCAE25                     (0x0020u)
+#define GPIO_PFCAE2_PFCAE26                     (0x0040u)
+#define GPIO_PFCAE2_PFCAE27                     (0x0080u)
+#define GPIO_PFCAE2_PFCAE28                     (0x0100u)
+#define GPIO_PFCAE2_PFCAE29                     (0x0200u)
+#define GPIO_PFCAE2_PFCAE210                    (0x0400u)
+#define GPIO_PFCAE2_PFCAE211                    (0x0800u)
+#define GPIO_PFCAE2_PFCAE212                    (0x1000u)
+#define GPIO_PFCAE2_PFCAE213                    (0x2000u)
+#define GPIO_PFCAE2_PFCAE214                    (0x4000u)
+#define GPIO_PFCAE2_PFCAE215                    (0x8000u)
+
+#define GPIO_PIBC2_PIBC20                       (0x0001u)
+#define GPIO_PIBC2_PIBC21                       (0x0002u)
+#define GPIO_PIBC2_PIBC22                       (0x0004u)
+#define GPIO_PIBC2_PIBC23                       (0x0008u)
+#define GPIO_PIBC2_PIBC24                       (0x0010u)
+#define GPIO_PIBC2_PIBC25                       (0x0020u)
+#define GPIO_PIBC2_PIBC26                       (0x0040u)
+#define GPIO_PIBC2_PIBC27                       (0x0080u)
+#define GPIO_PIBC2_PIBC28                       (0x0100u)
+#define GPIO_PIBC2_PIBC29                       (0x0200u)
+#define GPIO_PIBC2_PIBC210                      (0x0400u)
+#define GPIO_PIBC2_PIBC211                      (0x0800u)
+#define GPIO_PIBC2_PIBC212                      (0x1000u)
+#define GPIO_PIBC2_PIBC213                      (0x2000u)
+#define GPIO_PIBC2_PIBC214                      (0x4000u)
+#define GPIO_PIBC2_PIBC215                      (0x8000u)
+
+#define GPIO_PBDC2_PBDC20                       (0x0001u)
+#define GPIO_PBDC2_PBDC21                       (0x0002u)
+#define GPIO_PBDC2_PBDC22                       (0x0004u)
+#define GPIO_PBDC2_PBDC23                       (0x0008u)
+#define GPIO_PBDC2_PBDC24                       (0x0010u)
+#define GPIO_PBDC2_PBDC25                       (0x0020u)
+#define GPIO_PBDC2_PBDC26                       (0x0040u)
+#define GPIO_PBDC2_PBDC27                       (0x0080u)
+#define GPIO_PBDC2_PBDC28                       (0x0100u)
+#define GPIO_PBDC2_PBDC29                       (0x0200u)
+#define GPIO_PBDC2_PBDC210                      (0x0400u)
+#define GPIO_PBDC2_PBDC211                      (0x0800u)
+#define GPIO_PBDC2_PBDC212                      (0x1000u)
+#define GPIO_PBDC2_PBDC213                      (0x2000u)
+#define GPIO_PBDC2_PBDC214                      (0x4000u)
+#define GPIO_PBDC2_PBDC215                      (0x8000u)
+
+#define GPIO_PIPC2_PIPC20                       (0x0001u)
+#define GPIO_PIPC2_PIPC21                       (0x0002u)
+#define GPIO_PIPC2_PIPC22                       (0x0004u)
+#define GPIO_PIPC2_PIPC23                       (0x0008u)
+#define GPIO_PIPC2_PIPC24                       (0x0010u)
+#define GPIO_PIPC2_PIPC25                       (0x0020u)
+#define GPIO_PIPC2_PIPC26                       (0x0040u)
+#define GPIO_PIPC2_PIPC27                       (0x0080u)
+#define GPIO_PIPC2_PIPC28                       (0x0100u)
+#define GPIO_PIPC2_PIPC29                       (0x0200u)
+#define GPIO_PIPC2_PIPC210                      (0x0400u)
+#define GPIO_PIPC2_PIPC211                      (0x0800u)
+#define GPIO_PIPC2_PIPC212                      (0x1000u)
+#define GPIO_PIPC2_PIPC213                      (0x2000u)
+#define GPIO_PIPC2_PIPC214                      (0x4000u)
+#define GPIO_PIPC2_PIPC215                      (0x8000u)
+
+/* ---- P3 ---- */
+#define GPIO_P3_P30                             (0x0001u)
+#define GPIO_P3_P31                             (0x0002u)
+#define GPIO_P3_P32                             (0x0004u)
+#define GPIO_P3_P33                             (0x0008u)
+#define GPIO_P3_P34                             (0x0010u)
+#define GPIO_P3_P35                             (0x0020u)
+#define GPIO_P3_P36                             (0x0040u)
+#define GPIO_P3_P37                             (0x0080u)
+#define GPIO_P3_P38                             (0x0100u)
+#define GPIO_P3_P39                             (0x0200u)
+#define GPIO_P3_P310                            (0x0400u)
+#define GPIO_P3_P311                            (0x0800u)
+#define GPIO_P3_P312                            (0x1000u)
+#define GPIO_P3_P313                            (0x2000u)
+#define GPIO_P3_P314                            (0x4000u)
+#define GPIO_P3_P315                            (0x8000u)
+
+#define GPIO_PSR3_PSR30                         (0x00000001uL)
+#define GPIO_PSR3_PSR31                         (0x00000002uL)
+#define GPIO_PSR3_PSR32                         (0x00000004uL)
+#define GPIO_PSR3_PSR33                         (0x00000008uL)
+#define GPIO_PSR3_PSR34                         (0x00000010uL)
+#define GPIO_PSR3_PSR35                         (0x00000020uL)
+#define GPIO_PSR3_PSR36                         (0x00000040uL)
+#define GPIO_PSR3_PSR37                         (0x00000080uL)
+#define GPIO_PSR3_PSR38                         (0x00000100uL)
+#define GPIO_PSR3_PSR39                         (0x00000200uL)
+#define GPIO_PSR3_PSR310                        (0x00000400uL)
+#define GPIO_PSR3_PSR311                        (0x00000800uL)
+#define GPIO_PSR3_PSR312                        (0x00001000uL)
+#define GPIO_PSR3_PSR313                        (0x00002000uL)
+#define GPIO_PSR3_PSR314                        (0x00004000uL)
+#define GPIO_PSR3_PSR315                        (0x00008000uL)
+#define GPIO_PSR3_PSR316                        (0x00010000uL)
+#define GPIO_PSR3_PSR317                        (0x00020000uL)
+#define GPIO_PSR3_PSR318                        (0x00040000uL)
+#define GPIO_PSR3_PSR319                        (0x00080000uL)
+#define GPIO_PSR3_PSR320                        (0x00100000uL)
+#define GPIO_PSR3_PSR321                        (0x00200000uL)
+#define GPIO_PSR3_PSR322                        (0x00400000uL)
+#define GPIO_PSR3_PSR323                        (0x00800000uL)
+#define GPIO_PSR3_PSR324                        (0x01000000uL)
+#define GPIO_PSR3_PSR325                        (0x02000000uL)
+#define GPIO_PSR3_PSR326                        (0x04000000uL)
+#define GPIO_PSR3_PSR327                        (0x08000000uL)
+#define GPIO_PSR3_PSR328                        (0x10000000uL)
+#define GPIO_PSR3_PSR329                        (0x20000000uL)
+#define GPIO_PSR3_PSR330                        (0x40000000uL)
+#define GPIO_PSR3_PSR331                        (0x80000000uL)
+
+#define GPIO_PPR3_PPR30                         (0x0001u)
+#define GPIO_PPR3_PPR31                         (0x0002u)
+#define GPIO_PPR3_PPR32                         (0x0004u)
+#define GPIO_PPR3_PPR33                         (0x0008u)
+#define GPIO_PPR3_PPR34                         (0x0010u)
+#define GPIO_PPR3_PPR35                         (0x0020u)
+#define GPIO_PPR3_PPR36                         (0x0040u)
+#define GPIO_PPR3_PPR37                         (0x0080u)
+#define GPIO_PPR3_PPR38                         (0x0100u)
+#define GPIO_PPR3_PPR39                         (0x0200u)
+#define GPIO_PPR3_PPR310                        (0x0400u)
+#define GPIO_PPR3_PPR311                        (0x0800u)
+#define GPIO_PPR3_PPR312                        (0x1000u)
+#define GPIO_PPR3_PPR313                        (0x2000u)
+#define GPIO_PPR3_PPR314                        (0x4000u)
+#define GPIO_PPR3_PPR315                        (0x8000u)
+
+#define GPIO_PM3_PM30                           (0x0001u)
+#define GPIO_PM3_PM31                           (0x0002u)
+#define GPIO_PM3_PM32                           (0x0004u)
+#define GPIO_PM3_PM33                           (0x0008u)
+#define GPIO_PM3_PM34                           (0x0010u)
+#define GPIO_PM3_PM35                           (0x0020u)
+#define GPIO_PM3_PM36                           (0x0040u)
+#define GPIO_PM3_PM37                           (0x0080u)
+#define GPIO_PM3_PM38                           (0x0100u)
+#define GPIO_PM3_PM39                           (0x0200u)
+#define GPIO_PM3_PM310                          (0x0400u)
+#define GPIO_PM3_PM311                          (0x0800u)
+#define GPIO_PM3_PM312                          (0x1000u)
+#define GPIO_PM3_PM313                          (0x2000u)
+#define GPIO_PM3_PM314                          (0x4000u)
+#define GPIO_PM3_PM315                          (0x8000u)
+
+#define GPIO_PMC3_PMC30                         (0x0001u)
+#define GPIO_PMC3_PMC31                         (0x0002u)
+#define GPIO_PMC3_PMC32                         (0x0004u)
+#define GPIO_PMC3_PMC33                         (0x0008u)
+#define GPIO_PMC3_PMC34                         (0x0010u)
+#define GPIO_PMC3_PMC35                         (0x0020u)
+#define GPIO_PMC3_PMC36                         (0x0040u)
+#define GPIO_PMC3_PMC37                         (0x0080u)
+#define GPIO_PMC3_PMC38                         (0x0100u)
+#define GPIO_PMC3_PMC39                         (0x0200u)
+#define GPIO_PMC3_PMC310                        (0x0400u)
+#define GPIO_PMC3_PMC311                        (0x0800u)
+#define GPIO_PMC3_PMC312                        (0x1000u)
+#define GPIO_PMC3_PMC313                        (0x2000u)
+#define GPIO_PMC3_PMC314                        (0x4000u)
+#define GPIO_PMC3_PMC315                        (0x8000u)
+
+#define GPIO_PFC3_PFC30                         (0x0001u)
+#define GPIO_PFC3_PFC31                         (0x0002u)
+#define GPIO_PFC3_PFC32                         (0x0004u)
+#define GPIO_PFC3_PFC33                         (0x0008u)
+#define GPIO_PFC3_PFC34                         (0x0010u)
+#define GPIO_PFC3_PFC35                         (0x0020u)
+#define GPIO_PFC3_PFC36                         (0x0040u)
+#define GPIO_PFC3_PFC37                         (0x0080u)
+#define GPIO_PFC3_PFC38                         (0x0100u)
+#define GPIO_PFC3_PFC39                         (0x0200u)
+#define GPIO_PFC3_PFC310                        (0x0400u)
+#define GPIO_PFC3_PFC311                        (0x0800u)
+#define GPIO_PFC3_PFC312                        (0x1000u)
+#define GPIO_PFC3_PFC313                        (0x2000u)
+#define GPIO_PFC3_PFC314                        (0x4000u)
+#define GPIO_PFC3_PFC315                        (0x8000u)
+
+#define GPIO_PFCE3_PFCE30                       (0x0001u)
+#define GPIO_PFCE3_PFCE31                       (0x0002u)
+#define GPIO_PFCE3_PFCE32                       (0x0004u)
+#define GPIO_PFCE3_PFCE33                       (0x0008u)
+#define GPIO_PFCE3_PFCE34                       (0x0010u)
+#define GPIO_PFCE3_PFCE35                       (0x0020u)
+#define GPIO_PFCE3_PFCE36                       (0x0040u)
+#define GPIO_PFCE3_PFCE37                       (0x0080u)
+#define GPIO_PFCE3_PFCE38                       (0x0100u)
+#define GPIO_PFCE3_PFCE39                       (0x0200u)
+#define GPIO_PFCE3_PFCE310                      (0x0400u)
+#define GPIO_PFCE3_PFCE311                      (0x0800u)
+#define GPIO_PFCE3_PFCE312                      (0x1000u)
+#define GPIO_PFCE3_PFCE313                      (0x2000u)
+#define GPIO_PFCE3_PFCE314                      (0x4000u)
+#define GPIO_PFCE3_PFCE315                      (0x8000u)
+
+#define GPIO_PNOT3_PNOT30                       (0x0001u)
+#define GPIO_PNOT3_PNOT31                       (0x0002u)
+#define GPIO_PNOT3_PNOT32                       (0x0004u)
+#define GPIO_PNOT3_PNOT33                       (0x0008u)
+#define GPIO_PNOT3_PNOT34                       (0x0010u)
+#define GPIO_PNOT3_PNOT35                       (0x0020u)
+#define GPIO_PNOT3_PNOT36                       (0x0040u)
+#define GPIO_PNOT3_PNOT37                       (0x0080u)
+#define GPIO_PNOT3_PNOT38                       (0x0100u)
+#define GPIO_PNOT3_PNOT39                       (0x0200u)
+#define GPIO_PNOT3_PNOT310                      (0x0400u)
+#define GPIO_PNOT3_PNOT311                      (0x0800u)
+#define GPIO_PNOT3_PNOT312                      (0x1000u)
+#define GPIO_PNOT3_PNOT313                      (0x2000u)
+#define GPIO_PNOT3_PNOT314                      (0x4000u)
+#define GPIO_PNOT3_PNOT315                      (0x8000u)
+
+#define GPIO_PMSR3_PMSR30                       (0x00000001uL)
+#define GPIO_PMSR3_PMSR31                       (0x00000002uL)
+#define GPIO_PMSR3_PMSR32                       (0x00000004uL)
+#define GPIO_PMSR3_PMSR33                       (0x00000008uL)
+#define GPIO_PMSR3_PMSR34                       (0x00000010uL)
+#define GPIO_PMSR3_PMSR35                       (0x00000020uL)
+#define GPIO_PMSR3_PMSR36                       (0x00000040uL)
+#define GPIO_PMSR3_PMSR37                       (0x00000080uL)
+#define GPIO_PMSR3_PMSR38                       (0x00000100uL)
+#define GPIO_PMSR3_PMSR39                       (0x00000200uL)
+#define GPIO_PMSR3_PMSR310                      (0x00000400uL)
+#define GPIO_PMSR3_PMSR311                      (0x00000800uL)
+#define GPIO_PMSR3_PMSR312                      (0x00001000uL)
+#define GPIO_PMSR3_PMSR313                      (0x00002000uL)
+#define GPIO_PMSR3_PMSR314                      (0x00004000uL)
+#define GPIO_PMSR3_PMSR315                      (0x00008000uL)
+#define GPIO_PMSR3_PMSR316                      (0x00010000uL)
+#define GPIO_PMSR3_PMSR317                      (0x00020000uL)
+#define GPIO_PMSR3_PMSR318                      (0x00040000uL)
+#define GPIO_PMSR3_PMSR319                      (0x00080000uL)
+#define GPIO_PMSR3_PMSR320                      (0x00100000uL)
+#define GPIO_PMSR3_PMSR321                      (0x00200000uL)
+#define GPIO_PMSR3_PMSR322                      (0x00400000uL)
+#define GPIO_PMSR3_PMSR323                      (0x00800000uL)
+#define GPIO_PMSR3_PMSR324                      (0x01000000uL)
+#define GPIO_PMSR3_PMSR325                      (0x02000000uL)
+#define GPIO_PMSR3_PMSR326                      (0x04000000uL)
+#define GPIO_PMSR3_PMSR327                      (0x08000000uL)
+#define GPIO_PMSR3_PMSR328                      (0x10000000uL)
+#define GPIO_PMSR3_PMSR329                      (0x20000000uL)
+#define GPIO_PMSR3_PMSR330                      (0x40000000uL)
+#define GPIO_PMSR3_PMSR331                      (0x80000000uL)
+
+#define GPIO_PMCSR3_PMCSR30                     (0x00000001uL)
+#define GPIO_PMCSR3_PMCSR31                     (0x00000002uL)
+#define GPIO_PMCSR3_PMCSR32                     (0x00000004uL)
+#define GPIO_PMCSR3_PMCSR33                     (0x00000008uL)
+#define GPIO_PMCSR3_PMCSR34                     (0x00000010uL)
+#define GPIO_PMCSR3_PMCSR35                     (0x00000020uL)
+#define GPIO_PMCSR3_PMCSR36                     (0x00000040uL)
+#define GPIO_PMCSR3_PMCSR37                     (0x00000080uL)
+#define GPIO_PMCSR3_PMCSR38                     (0x00000100uL)
+#define GPIO_PMCSR3_PMCSR39                     (0x00000200uL)
+#define GPIO_PMCSR3_PMCSR310                    (0x00000400uL)
+#define GPIO_PMCSR3_PMCSR311                    (0x00000800uL)
+#define GPIO_PMCSR3_PMCSR312                    (0x00001000uL)
+#define GPIO_PMCSR3_PMCSR313                    (0x00002000uL)
+#define GPIO_PMCSR3_PMCSR314                    (0x00004000uL)
+#define GPIO_PMCSR3_PMCSR315                    (0x00008000uL)
+#define GPIO_PMCSR3_PMCSR316                    (0x00010000uL)
+#define GPIO_PMCSR3_PMCSR317                    (0x00020000uL)
+#define GPIO_PMCSR3_PMCSR318                    (0x00040000uL)
+#define GPIO_PMCSR3_PMCSR319                    (0x00080000uL)
+#define GPIO_PMCSR3_PMCSR320                    (0x00100000uL)
+#define GPIO_PMCSR3_PMCSR321                    (0x00200000uL)
+#define GPIO_PMCSR3_PMCSR322                    (0x00400000uL)
+#define GPIO_PMCSR3_PMCSR323                    (0x00800000uL)
+#define GPIO_PMCSR3_PMCSR324                    (0x01000000uL)
+#define GPIO_PMCSR3_PMCSR325                    (0x02000000uL)
+#define GPIO_PMCSR3_PMCSR326                    (0x04000000uL)
+#define GPIO_PMCSR3_PMCSR327                    (0x08000000uL)
+#define GPIO_PMCSR3_PMCSR328                    (0x10000000uL)
+#define GPIO_PMCSR3_PMCSR329                    (0x20000000uL)
+#define GPIO_PMCSR3_PMCSR330                    (0x40000000uL)
+#define GPIO_PMCSR3_PMCSR331                    (0x80000000uL)
+
+#define GPIO_PFCAE3_PFCAE30                     (0x0001u)
+#define GPIO_PFCAE3_PFCAE31                     (0x0002u)
+#define GPIO_PFCAE3_PFCAE32                     (0x0004u)
+#define GPIO_PFCAE3_PFCAE33                     (0x0008u)
+#define GPIO_PFCAE3_PFCAE34                     (0x0010u)
+#define GPIO_PFCAE3_PFCAE35                     (0x0020u)
+#define GPIO_PFCAE3_PFCAE36                     (0x0040u)
+#define GPIO_PFCAE3_PFCAE37                     (0x0080u)
+#define GPIO_PFCAE3_PFCAE38                     (0x0100u)
+#define GPIO_PFCAE3_PFCAE39                     (0x0200u)
+#define GPIO_PFCAE3_PFCAE310                    (0x0400u)
+#define GPIO_PFCAE3_PFCAE311                    (0x0800u)
+#define GPIO_PFCAE3_PFCAE312                    (0x1000u)
+#define GPIO_PFCAE3_PFCAE313                    (0x2000u)
+#define GPIO_PFCAE3_PFCAE314                    (0x4000u)
+#define GPIO_PFCAE3_PFCAE315                    (0x8000u)
+
+#define GPIO_PIBC3_PIBC30                       (0x0001u)
+#define GPIO_PIBC3_PIBC31                       (0x0002u)
+#define GPIO_PIBC3_PIBC32                       (0x0004u)
+#define GPIO_PIBC3_PIBC33                       (0x0008u)
+#define GPIO_PIBC3_PIBC34                       (0x0010u)
+#define GPIO_PIBC3_PIBC35                       (0x0020u)
+#define GPIO_PIBC3_PIBC36                       (0x0040u)
+#define GPIO_PIBC3_PIBC37                       (0x0080u)
+#define GPIO_PIBC3_PIBC38                       (0x0100u)
+#define GPIO_PIBC3_PIBC39                       (0x0200u)
+#define GPIO_PIBC3_PIBC310                      (0x0400u)
+#define GPIO_PIBC3_PIBC311                      (0x0800u)
+#define GPIO_PIBC3_PIBC312                      (0x1000u)
+#define GPIO_PIBC3_PIBC313                      (0x2000u)
+#define GPIO_PIBC3_PIBC314                      (0x4000u)
+#define GPIO_PIBC3_PIBC315                      (0x8000u)
+
+#define GPIO_PBDC3_PBDC30                       (0x0001u)
+#define GPIO_PBDC3_PBDC31                       (0x0002u)
+#define GPIO_PBDC3_PBDC32                       (0x0004u)
+#define GPIO_PBDC3_PBDC33                       (0x0008u)
+#define GPIO_PBDC3_PBDC34                       (0x0010u)
+#define GPIO_PBDC3_PBDC35                       (0x0020u)
+#define GPIO_PBDC3_PBDC36                       (0x0040u)
+#define GPIO_PBDC3_PBDC37                       (0x0080u)
+#define GPIO_PBDC3_PBDC38                       (0x0100u)
+#define GPIO_PBDC3_PBDC39                       (0x0200u)
+#define GPIO_PBDC3_PBDC310                      (0x0400u)
+#define GPIO_PBDC3_PBDC311                      (0x0800u)
+#define GPIO_PBDC3_PBDC312                      (0x1000u)
+#define GPIO_PBDC3_PBDC313                      (0x2000u)
+#define GPIO_PBDC3_PBDC314                      (0x4000u)
+#define GPIO_PBDC3_PBDC315                      (0x8000u)
+
+#define GPIO_PIPC3_PIPC30                       (0x0001u)
+#define GPIO_PIPC3_PIPC31                       (0x0002u)
+#define GPIO_PIPC3_PIPC32                       (0x0004u)
+#define GPIO_PIPC3_PIPC33                       (0x0008u)
+#define GPIO_PIPC3_PIPC34                       (0x0010u)
+#define GPIO_PIPC3_PIPC35                       (0x0020u)
+#define GPIO_PIPC3_PIPC36                       (0x0040u)
+#define GPIO_PIPC3_PIPC37                       (0x0080u)
+#define GPIO_PIPC3_PIPC38                       (0x0100u)
+#define GPIO_PIPC3_PIPC39                       (0x0200u)
+#define GPIO_PIPC3_PIPC310                      (0x0400u)
+#define GPIO_PIPC3_PIPC311                      (0x0800u)
+#define GPIO_PIPC3_PIPC312                      (0x1000u)
+#define GPIO_PIPC3_PIPC313                      (0x2000u)
+#define GPIO_PIPC3_PIPC314                      (0x4000u)
+#define GPIO_PIPC3_PIPC315                      (0x8000u)
+
+/* ---- P4 ---- */
+#define GPIO_P4_P40                             (0x0001u)
+#define GPIO_P4_P41                             (0x0002u)
+#define GPIO_P4_P42                             (0x0004u)
+#define GPIO_P4_P43                             (0x0008u)
+#define GPIO_P4_P44                             (0x0010u)
+#define GPIO_P4_P45                             (0x0020u)
+#define GPIO_P4_P46                             (0x0040u)
+#define GPIO_P4_P47                             (0x0080u)
+#define GPIO_P4_P48                             (0x0100u)
+#define GPIO_P4_P49                             (0x0200u)
+#define GPIO_P4_P410                            (0x0400u)
+#define GPIO_P4_P411                            (0x0800u)
+#define GPIO_P4_P412                            (0x1000u)
+#define GPIO_P4_P413                            (0x2000u)
+#define GPIO_P4_P414                            (0x4000u)
+#define GPIO_P4_P415                            (0x8000u)
+
+#define GPIO_PSR4_PSR40                         (0x00000001uL)
+#define GPIO_PSR4_PSR41                         (0x00000002uL)
+#define GPIO_PSR4_PSR42                         (0x00000004uL)
+#define GPIO_PSR4_PSR43                         (0x00000008uL)
+#define GPIO_PSR4_PSR44                         (0x00000010uL)
+#define GPIO_PSR4_PSR45                         (0x00000020uL)
+#define GPIO_PSR4_PSR46                         (0x00000040uL)
+#define GPIO_PSR4_PSR47                         (0x00000080uL)
+#define GPIO_PSR4_PSR48                         (0x00000100uL)
+#define GPIO_PSR4_PSR49                         (0x00000200uL)
+#define GPIO_PSR4_PSR410                        (0x00000400uL)
+#define GPIO_PSR4_PSR411                        (0x00000800uL)
+#define GPIO_PSR4_PSR412                        (0x00001000uL)
+#define GPIO_PSR4_PSR413                        (0x00002000uL)
+#define GPIO_PSR4_PSR414                        (0x00004000uL)
+#define GPIO_PSR4_PSR415                        (0x00008000uL)
+#define GPIO_PSR4_PSR416                        (0x00010000uL)
+#define GPIO_PSR4_PSR417                        (0x00020000uL)
+#define GPIO_PSR4_PSR418                        (0x00040000uL)
+#define GPIO_PSR4_PSR419                        (0x00080000uL)
+#define GPIO_PSR4_PSR420                        (0x00100000uL)
+#define GPIO_PSR4_PSR421                        (0x00200000uL)
+#define GPIO_PSR4_PSR422                        (0x00400000uL)
+#define GPIO_PSR4_PSR423                        (0x00800000uL)
+#define GPIO_PSR4_PSR424                        (0x01000000uL)
+#define GPIO_PSR4_PSR425                        (0x02000000uL)
+#define GPIO_PSR4_PSR426                        (0x04000000uL)
+#define GPIO_PSR4_PSR427                        (0x08000000uL)
+#define GPIO_PSR4_PSR428                        (0x10000000uL)
+#define GPIO_PSR4_PSR429                        (0x20000000uL)
+#define GPIO_PSR4_PSR430                        (0x40000000uL)
+#define GPIO_PSR4_PSR431                        (0x80000000uL)
+
+#define GPIO_PPR4_PPR40                         (0x0001u)
+#define GPIO_PPR4_PPR41                         (0x0002u)
+#define GPIO_PPR4_PPR42                         (0x0004u)
+#define GPIO_PPR4_PPR43                         (0x0008u)
+#define GPIO_PPR4_PPR44                         (0x0010u)
+#define GPIO_PPR4_PPR45                         (0x0020u)
+#define GPIO_PPR4_PPR46                         (0x0040u)
+#define GPIO_PPR4_PPR47                         (0x0080u)
+#define GPIO_PPR4_PPR48                         (0x0100u)
+#define GPIO_PPR4_PPR49                         (0x0200u)
+#define GPIO_PPR4_PPR410                        (0x0400u)
+#define GPIO_PPR4_PPR411                        (0x0800u)
+#define GPIO_PPR4_PPR412                        (0x1000u)
+#define GPIO_PPR4_PPR413                        (0x2000u)
+#define GPIO_PPR4_PPR414                        (0x4000u)
+#define GPIO_PPR4_PPR415                        (0x8000u)
+
+#define GPIO_PM4_PM40                           (0x0001u)
+#define GPIO_PM4_PM41                           (0x0002u)
+#define GPIO_PM4_PM42                           (0x0004u)
+#define GPIO_PM4_PM43                           (0x0008u)
+#define GPIO_PM4_PM44                           (0x0010u)
+#define GPIO_PM4_PM45                           (0x0020u)
+#define GPIO_PM4_PM46                           (0x0040u)
+#define GPIO_PM4_PM47                           (0x0080u)
+#define GPIO_PM4_PM48                           (0x0100u)
+#define GPIO_PM4_PM49                           (0x0200u)
+#define GPIO_PM4_PM410                          (0x0400u)
+#define GPIO_PM4_PM411                          (0x0800u)
+#define GPIO_PM4_PM412                          (0x1000u)
+#define GPIO_PM4_PM413                          (0x2000u)
+#define GPIO_PM4_PM414                          (0x4000u)
+#define GPIO_PM4_PM415                          (0x8000u)
+
+#define GPIO_PMC4_PMC40                         (0x0001u)
+#define GPIO_PMC4_PMC41                         (0x0002u)
+#define GPIO_PMC4_PMC42                         (0x0004u)
+#define GPIO_PMC4_PMC43                         (0x0008u)
+#define GPIO_PMC4_PMC44                         (0x0010u)
+#define GPIO_PMC4_PMC45                         (0x0020u)
+#define GPIO_PMC4_PMC46                         (0x0040u)
+#define GPIO_PMC4_PMC47                         (0x0080u)
+#define GPIO_PMC4_PMC48                         (0x0100u)
+#define GPIO_PMC4_PMC49                         (0x0200u)
+#define GPIO_PMC4_PMC410                        (0x0400u)
+#define GPIO_PMC4_PMC411                        (0x0800u)
+#define GPIO_PMC4_PMC412                        (0x1000u)
+#define GPIO_PMC4_PMC413                        (0x2000u)
+#define GPIO_PMC4_PMC414                        (0x4000u)
+#define GPIO_PMC4_PMC415                        (0x8000u)
+
+#define GPIO_PFC4_PFC40                         (0x0001u)
+#define GPIO_PFC4_PFC41                         (0x0002u)
+#define GPIO_PFC4_PFC42                         (0x0004u)
+#define GPIO_PFC4_PFC43                         (0x0008u)
+#define GPIO_PFC4_PFC44                         (0x0010u)
+#define GPIO_PFC4_PFC45                         (0x0020u)
+#define GPIO_PFC4_PFC46                         (0x0040u)
+#define GPIO_PFC4_PFC47                         (0x0080u)
+#define GPIO_PFC4_PFC48                         (0x0100u)
+#define GPIO_PFC4_PFC49                         (0x0200u)
+#define GPIO_PFC4_PFC410                        (0x0400u)
+#define GPIO_PFC4_PFC411                        (0x0800u)
+#define GPIO_PFC4_PFC412                        (0x1000u)
+#define GPIO_PFC4_PFC413                        (0x2000u)
+#define GPIO_PFC4_PFC414                        (0x4000u)
+#define GPIO_PFC4_PFC415                        (0x8000u)
+
+#define GPIO_PFCE4_PFCE40                       (0x0001u)
+#define GPIO_PFCE4_PFCE41                       (0x0002u)
+#define GPIO_PFCE4_PFCE42                       (0x0004u)
+#define GPIO_PFCE4_PFCE43                       (0x0008u)
+#define GPIO_PFCE4_PFCE44                       (0x0010u)
+#define GPIO_PFCE4_PFCE45                       (0x0020u)
+#define GPIO_PFCE4_PFCE46                       (0x0040u)
+#define GPIO_PFCE4_PFCE47                       (0x0080u)
+#define GPIO_PFCE4_PFCE48                       (0x0100u)
+#define GPIO_PFCE4_PFCE49                       (0x0200u)
+#define GPIO_PFCE4_PFCE410                      (0x0400u)
+#define GPIO_PFCE4_PFCE411                      (0x0800u)
+#define GPIO_PFCE4_PFCE412                      (0x1000u)
+#define GPIO_PFCE4_PFCE413                      (0x2000u)
+#define GPIO_PFCE4_PFCE414                      (0x4000u)
+#define GPIO_PFCE4_PFCE415                      (0x8000u)
+
+#define GPIO_PNOT4_PNOT40                       (0x0001u)
+#define GPIO_PNOT4_PNOT41                       (0x0002u)
+#define GPIO_PNOT4_PNOT42                       (0x0004u)
+#define GPIO_PNOT4_PNOT43                       (0x0008u)
+#define GPIO_PNOT4_PNOT44                       (0x0010u)
+#define GPIO_PNOT4_PNOT45                       (0x0020u)
+#define GPIO_PNOT4_PNOT46                       (0x0040u)
+#define GPIO_PNOT4_PNOT47                       (0x0080u)
+#define GPIO_PNOT4_PNOT48                       (0x0100u)
+#define GPIO_PNOT4_PNOT49                       (0x0200u)
+#define GPIO_PNOT4_PNOT410                      (0x0400u)
+#define GPIO_PNOT4_PNOT411                      (0x0800u)
+#define GPIO_PNOT4_PNOT412                      (0x1000u)
+#define GPIO_PNOT4_PNOT413                      (0x2000u)
+#define GPIO_PNOT4_PNOT414                      (0x4000u)
+#define GPIO_PNOT4_PNOT415                      (0x8000u)
+
+#define GPIO_PMSR4_PMSR40                       (0x00000001uL)
+#define GPIO_PMSR4_PMSR41                       (0x00000002uL)
+#define GPIO_PMSR4_PMSR42                       (0x00000004uL)
+#define GPIO_PMSR4_PMSR43                       (0x00000008uL)
+#define GPIO_PMSR4_PMSR44                       (0x00000010uL)
+#define GPIO_PMSR4_PMSR45                       (0x00000020uL)
+#define GPIO_PMSR4_PMSR46                       (0x00000040uL)
+#define GPIO_PMSR4_PMSR47                       (0x00000080uL)
+#define GPIO_PMSR4_PMSR48                       (0x00000100uL)
+#define GPIO_PMSR4_PMSR49                       (0x00000200uL)
+#define GPIO_PMSR4_PMSR410                      (0x00000400uL)
+#define GPIO_PMSR4_PMSR411                      (0x00000800uL)
+#define GPIO_PMSR4_PMSR412                      (0x00001000uL)
+#define GPIO_PMSR4_PMSR413                      (0x00002000uL)
+#define GPIO_PMSR4_PMSR414                      (0x00004000uL)
+#define GPIO_PMSR4_PMSR415                      (0x00008000uL)
+#define GPIO_PMSR4_PMSR416                      (0x00010000uL)
+#define GPIO_PMSR4_PMSR417                      (0x00020000uL)
+#define GPIO_PMSR4_PMSR418                      (0x00040000uL)
+#define GPIO_PMSR4_PMSR419                      (0x00080000uL)
+#define GPIO_PMSR4_PMSR420                      (0x00100000uL)
+#define GPIO_PMSR4_PMSR421                      (0x00200000uL)
+#define GPIO_PMSR4_PMSR422                      (0x00400000uL)
+#define GPIO_PMSR4_PMSR423                      (0x00800000uL)
+#define GPIO_PMSR4_PMSR424                      (0x01000000uL)
+#define GPIO_PMSR4_PMSR425                      (0x02000000uL)
+#define GPIO_PMSR4_PMSR426                      (0x04000000uL)
+#define GPIO_PMSR4_PMSR427                      (0x08000000uL)
+#define GPIO_PMSR4_PMSR428                      (0x10000000uL)
+#define GPIO_PMSR4_PMSR429                      (0x20000000uL)
+#define GPIO_PMSR4_PMSR430                      (0x40000000uL)
+#define GPIO_PMSR4_PMSR431                      (0x80000000uL)
+
+#define GPIO_PMCSR4_PMCSR40                     (0x00000001uL)
+#define GPIO_PMCSR4_PMCSR41                     (0x00000002uL)
+#define GPIO_PMCSR4_PMCSR42                     (0x00000004uL)
+#define GPIO_PMCSR4_PMCSR43                     (0x00000008uL)
+#define GPIO_PMCSR4_PMCSR44                     (0x00000010uL)
+#define GPIO_PMCSR4_PMCSR45                     (0x00000020uL)
+#define GPIO_PMCSR4_PMCSR46                     (0x00000040uL)
+#define GPIO_PMCSR4_PMCSR47                     (0x00000080uL)
+#define GPIO_PMCSR4_PMCSR48                     (0x00000100uL)
+#define GPIO_PMCSR4_PMCSR49                     (0x00000200uL)
+#define GPIO_PMCSR4_PMCSR410                    (0x00000400uL)
+#define GPIO_PMCSR4_PMCSR411                    (0x00000800uL)
+#define GPIO_PMCSR4_PMCSR412                    (0x00001000uL)
+#define GPIO_PMCSR4_PMCSR413                    (0x00002000uL)
+#define GPIO_PMCSR4_PMCSR414                    (0x00004000uL)
+#define GPIO_PMCSR4_PMCSR415                    (0x00008000uL)
+#define GPIO_PMCSR4_PMCSR416                    (0x00010000uL)
+#define GPIO_PMCSR4_PMCSR417                    (0x00020000uL)
+#define GPIO_PMCSR4_PMCSR418                    (0x00040000uL)
+#define GPIO_PMCSR4_PMCSR419                    (0x00080000uL)
+#define GPIO_PMCSR4_PMCSR420                    (0x00100000uL)
+#define GPIO_PMCSR4_PMCSR421                    (0x00200000uL)
+#define GPIO_PMCSR4_PMCSR422                    (0x00400000uL)
+#define GPIO_PMCSR4_PMCSR423                    (0x00800000uL)
+#define GPIO_PMCSR4_PMCSR424                    (0x01000000uL)
+#define GPIO_PMCSR4_PMCSR425                    (0x02000000uL)
+#define GPIO_PMCSR4_PMCSR426                    (0x04000000uL)
+#define GPIO_PMCSR4_PMCSR427                    (0x08000000uL)
+#define GPIO_PMCSR4_PMCSR428                    (0x10000000uL)
+#define GPIO_PMCSR4_PMCSR429                    (0x20000000uL)
+#define GPIO_PMCSR4_PMCSR430                    (0x40000000uL)
+#define GPIO_PMCSR4_PMCSR431                    (0x80000000uL)
+
+#define GPIO_PFCAE4_PFCAE40                     (0x0001u)
+#define GPIO_PFCAE4_PFCAE41                     (0x0002u)
+#define GPIO_PFCAE4_PFCAE42                     (0x0004u)
+#define GPIO_PFCAE4_PFCAE43                     (0x0008u)
+#define GPIO_PFCAE4_PFCAE44                     (0x0010u)
+#define GPIO_PFCAE4_PFCAE45                     (0x0020u)
+#define GPIO_PFCAE4_PFCAE46                     (0x0040u)
+#define GPIO_PFCAE4_PFCAE47                     (0x0080u)
+#define GPIO_PFCAE4_PFCAE48                     (0x0100u)
+#define GPIO_PFCAE4_PFCAE49                     (0x0200u)
+#define GPIO_PFCAE4_PFCAE410                    (0x0400u)
+#define GPIO_PFCAE4_PFCAE411                    (0x0800u)
+#define GPIO_PFCAE4_PFCAE412                    (0x1000u)
+#define GPIO_PFCAE4_PFCAE413                    (0x2000u)
+#define GPIO_PFCAE4_PFCAE414                    (0x4000u)
+#define GPIO_PFCAE4_PFCAE415                    (0x8000u)
+
+#define GPIO_PIBC4_PIBC40                       (0x0001u)
+#define GPIO_PIBC4_PIBC41                       (0x0002u)
+#define GPIO_PIBC4_PIBC42                       (0x0004u)
+#define GPIO_PIBC4_PIBC43                       (0x0008u)
+#define GPIO_PIBC4_PIBC44                       (0x0010u)
+#define GPIO_PIBC4_PIBC45                       (0x0020u)
+#define GPIO_PIBC4_PIBC46                       (0x0040u)
+#define GPIO_PIBC4_PIBC47                       (0x0080u)
+#define GPIO_PIBC4_PIBC48                       (0x0100u)
+#define GPIO_PIBC4_PIBC49                       (0x0200u)
+#define GPIO_PIBC4_PIBC410                      (0x0400u)
+#define GPIO_PIBC4_PIBC411                      (0x0800u)
+#define GPIO_PIBC4_PIBC412                      (0x1000u)
+#define GPIO_PIBC4_PIBC413                      (0x2000u)
+#define GPIO_PIBC4_PIBC414                      (0x4000u)
+#define GPIO_PIBC4_PIBC415                      (0x8000u)
+
+#define GPIO_PBDC4_PBDC40                       (0x0001u)
+#define GPIO_PBDC4_PBDC41                       (0x0002u)
+#define GPIO_PBDC4_PBDC42                       (0x0004u)
+#define GPIO_PBDC4_PBDC43                       (0x0008u)
+#define GPIO_PBDC4_PBDC44                       (0x0010u)
+#define GPIO_PBDC4_PBDC45                       (0x0020u)
+#define GPIO_PBDC4_PBDC46                       (0x0040u)
+#define GPIO_PBDC4_PBDC47                       (0x0080u)
+#define GPIO_PBDC4_PBDC48                       (0x0100u)
+#define GPIO_PBDC4_PBDC49                       (0x0200u)
+#define GPIO_PBDC4_PBDC410                      (0x0400u)
+#define GPIO_PBDC4_PBDC411                      (0x0800u)
+#define GPIO_PBDC4_PBDC412                      (0x1000u)
+#define GPIO_PBDC4_PBDC413                      (0x2000u)
+#define GPIO_PBDC4_PBDC414                      (0x4000u)
+#define GPIO_PBDC4_PBDC415                      (0x8000u)
+
+#define GPIO_PIPC4_PIPC40                       (0x0001u)
+#define GPIO_PIPC4_PIPC41                       (0x0002u)
+#define GPIO_PIPC4_PIPC42                       (0x0004u)
+#define GPIO_PIPC4_PIPC43                       (0x0008u)
+#define GPIO_PIPC4_PIPC44                       (0x0010u)
+#define GPIO_PIPC4_PIPC45                       (0x0020u)
+#define GPIO_PIPC4_PIPC46                       (0x0040u)
+#define GPIO_PIPC4_PIPC47                       (0x0080u)
+#define GPIO_PIPC4_PIPC48                       (0x0100u)
+#define GPIO_PIPC4_PIPC49                       (0x0200u)
+#define GPIO_PIPC4_PIPC410                      (0x0400u)
+#define GPIO_PIPC4_PIPC411                      (0x0800u)
+#define GPIO_PIPC4_PIPC412                      (0x1000u)
+#define GPIO_PIPC4_PIPC413                      (0x2000u)
+#define GPIO_PIPC4_PIPC414                      (0x4000u)
+#define GPIO_PIPC4_PIPC415                      (0x8000u)
+
+/* ---- P5 ---- */
+#define GPIO_P5_P50                             (0x0001u)
+#define GPIO_P5_P51                             (0x0002u)
+#define GPIO_P5_P52                             (0x0004u)
+#define GPIO_P5_P53                             (0x0008u)
+#define GPIO_P5_P54                             (0x0010u)
+#define GPIO_P5_P55                             (0x0020u)
+#define GPIO_P5_P56                             (0x0040u)
+#define GPIO_P5_P57                             (0x0080u)
+#define GPIO_P5_P58                             (0x0100u)
+#define GPIO_P5_P59                             (0x0200u)
+#define GPIO_P5_P510                            (0x0400u)
+
+#define GPIO_PSR5_PSR50                         (0x00000001uL)
+#define GPIO_PSR5_PSR51                         (0x00000002uL)
+#define GPIO_PSR5_PSR52                         (0x00000004uL)
+#define GPIO_PSR5_PSR53                         (0x00000008uL)
+#define GPIO_PSR5_PSR54                         (0x00000010uL)
+#define GPIO_PSR5_PSR55                         (0x00000020uL)
+#define GPIO_PSR5_PSR56                         (0x00000040uL)
+#define GPIO_PSR5_PSR57                         (0x00000080uL)
+#define GPIO_PSR5_PSR58                         (0x00000100uL)
+#define GPIO_PSR5_PSR59                         (0x00000200uL)
+#define GPIO_PSR5_PSR510                        (0x00000400uL)
+#define GPIO_PSR5_PSR516                        (0x00010000uL)
+#define GPIO_PSR5_PSR517                        (0x00020000uL)
+#define GPIO_PSR5_PSR518                        (0x00040000uL)
+#define GPIO_PSR5_PSR519                        (0x00080000uL)
+#define GPIO_PSR5_PSR520                        (0x00100000uL)
+#define GPIO_PSR5_PSR521                        (0x00200000uL)
+#define GPIO_PSR5_PSR522                        (0x00400000uL)
+#define GPIO_PSR5_PSR523                        (0x00800000uL)
+#define GPIO_PSR5_PSR524                        (0x01000000uL)
+#define GPIO_PSR5_PSR525                        (0x02000000uL)
+#define GPIO_PSR5_PSR526                        (0x04000000uL)
+
+#define GPIO_PPR5_PPR50                         (0x0001u)
+#define GPIO_PPR5_PPR51                         (0x0002u)
+#define GPIO_PPR5_PPR52                         (0x0004u)
+#define GPIO_PPR5_PPR53                         (0x0008u)
+#define GPIO_PPR5_PPR54                         (0x0010u)
+#define GPIO_PPR5_PPR55                         (0x0020u)
+#define GPIO_PPR5_PPR56                         (0x0040u)
+#define GPIO_PPR5_PPR57                         (0x0080u)
+#define GPIO_PPR5_PPR58                         (0x0100u)
+#define GPIO_PPR5_PPR59                         (0x0200u)
+#define GPIO_PPR5_PPR510                        (0x0400u)
+
+#define GPIO_PM5_PM50                           (0x0001u)
+#define GPIO_PM5_PM51                           (0x0002u)
+#define GPIO_PM5_PM52                           (0x0004u)
+#define GPIO_PM5_PM53                           (0x0008u)
+#define GPIO_PM5_PM54                           (0x0010u)
+#define GPIO_PM5_PM55                           (0x0020u)
+#define GPIO_PM5_PM56                           (0x0040u)
+#define GPIO_PM5_PM57                           (0x0080u)
+#define GPIO_PM5_PM58                           (0x0100u)
+#define GPIO_PM5_PM59                           (0x0200u)
+#define GPIO_PM5_PM510                          (0x0400u)
+
+#define GPIO_PMC5_PMC50                         (0x0001u)
+#define GPIO_PMC5_PMC51                         (0x0002u)
+#define GPIO_PMC5_PMC52                         (0x0004u)
+#define GPIO_PMC5_PMC53                         (0x0008u)
+#define GPIO_PMC5_PMC54                         (0x0010u)
+#define GPIO_PMC5_PMC55                         (0x0020u)
+#define GPIO_PMC5_PMC56                         (0x0040u)
+#define GPIO_PMC5_PMC57                         (0x0080u)
+#define GPIO_PMC5_PMC58                         (0x0100u)
+#define GPIO_PMC5_PMC59                         (0x0200u)
+#define GPIO_PMC5_PMC510                        (0x0400u)
+
+#define GPIO_PFC5_PFC50                         (0x0001u)
+#define GPIO_PFC5_PFC51                         (0x0002u)
+#define GPIO_PFC5_PFC52                         (0x0004u)
+#define GPIO_PFC5_PFC53                         (0x0008u)
+#define GPIO_PFC5_PFC54                         (0x0010u)
+#define GPIO_PFC5_PFC55                         (0x0020u)
+#define GPIO_PFC5_PFC56                         (0x0040u)
+#define GPIO_PFC5_PFC57                         (0x0080u)
+#define GPIO_PFC5_PFC58                         (0x0100u)
+#define GPIO_PFC5_PFC59                         (0x0200u)
+#define GPIO_PFC5_PFC510                        (0x0400u)
+
+#define GPIO_PFCE5_PFCE50                       (0x0001u)
+#define GPIO_PFCE5_PFCE51                       (0x0002u)
+#define GPIO_PFCE5_PFCE52                       (0x0004u)
+#define GPIO_PFCE5_PFCE53                       (0x0008u)
+#define GPIO_PFCE5_PFCE54                       (0x0010u)
+#define GPIO_PFCE5_PFCE55                       (0x0020u)
+#define GPIO_PFCE5_PFCE56                       (0x0040u)
+#define GPIO_PFCE5_PFCE57                       (0x0080u)
+#define GPIO_PFCE5_PFCE58                       (0x0100u)
+#define GPIO_PFCE5_PFCE59                       (0x0200u)
+#define GPIO_PFCE5_PFCE510                      (0x0400u)
+
+#define GPIO_PNOT5_PNOT50                       (0x0001u)
+#define GPIO_PNOT5_PNOT51                       (0x0002u)
+#define GPIO_PNOT5_PNOT52                       (0x0004u)
+#define GPIO_PNOT5_PNOT53                       (0x0008u)
+#define GPIO_PNOT5_PNOT54                       (0x0010u)
+#define GPIO_PNOT5_PNOT55                       (0x0020u)
+#define GPIO_PNOT5_PNOT56                       (0x0040u)
+#define GPIO_PNOT5_PNOT57                       (0x0080u)
+#define GPIO_PNOT5_PNOT58                       (0x0100u)
+#define GPIO_PNOT5_PNOT59                       (0x0200u)
+#define GPIO_PNOT5_PNOT510                      (0x0400u)
+
+#define GPIO_PMSR5_PMSR50                       (0x00000001uL)
+#define GPIO_PMSR5_PMSR51                       (0x00000002uL)
+#define GPIO_PMSR5_PMSR52                       (0x00000004uL)
+#define GPIO_PMSR5_PMSR53                       (0x00000008uL)
+#define GPIO_PMSR5_PMSR54                       (0x00000010uL)
+#define GPIO_PMSR5_PMSR55                       (0x00000020uL)
+#define GPIO_PMSR5_PMSR56                       (0x00000040uL)
+#define GPIO_PMSR5_PMSR57                       (0x00000080uL)
+#define GPIO_PMSR5_PMSR58                       (0x00000100uL)
+#define GPIO_PMSR5_PMSR59                       (0x00000200uL)
+#define GPIO_PMSR5_PMSR510                      (0x00000400uL)
+#define GPIO_PMSR5_PMSR516                      (0x00010000uL)
+#define GPIO_PMSR5_PMSR517                      (0x00020000uL)
+#define GPIO_PMSR5_PMSR518                      (0x00040000uL)
+#define GPIO_PMSR5_PMSR519                      (0x00080000uL)
+#define GPIO_PMSR5_PMSR520                      (0x00100000uL)
+#define GPIO_PMSR5_PMSR521                      (0x00200000uL)
+#define GPIO_PMSR5_PMSR522                      (0x00400000uL)
+#define GPIO_PMSR5_PMSR523                      (0x00800000uL)
+#define GPIO_PMSR5_PMSR524                      (0x01000000uL)
+#define GPIO_PMSR5_PMSR525                      (0x02000000uL)
+#define GPIO_PMSR5_PMSR526                      (0x04000000uL)
+
+#define GPIO_PMCSR5_PMCSR50                     (0x00000001uL)
+#define GPIO_PMCSR5_PMCSR51                     (0x00000002uL)
+#define GPIO_PMCSR5_PMCSR52                     (0x00000004uL)
+#define GPIO_PMCSR5_PMCSR53                     (0x00000008uL)
+#define GPIO_PMCSR5_PMCSR54                     (0x00000010uL)
+#define GPIO_PMCSR5_PMCSR55                     (0x00000020uL)
+#define GPIO_PMCSR5_PMCSR56                     (0x00000040uL)
+#define GPIO_PMCSR5_PMCSR57                     (0x00000080uL)
+#define GPIO_PMCSR5_PMCSR58                     (0x00000100uL)
+#define GPIO_PMCSR5_PMCSR59                     (0x00000200uL)
+#define GPIO_PMCSR5_PMCSR510                    (0x00000400uL)
+#define GPIO_PMCSR5_PMCSR516                    (0x00010000uL)
+#define GPIO_PMCSR5_PMCSR517                    (0x00020000uL)
+#define GPIO_PMCSR5_PMCSR518                    (0x00040000uL)
+#define GPIO_PMCSR5_PMCSR519                    (0x00080000uL)
+#define GPIO_PMCSR5_PMCSR520                    (0x00100000uL)
+#define GPIO_PMCSR5_PMCSR521                    (0x00200000uL)
+#define GPIO_PMCSR5_PMCSR522                    (0x00400000uL)
+#define GPIO_PMCSR5_PMCSR523                    (0x00800000uL)
+#define GPIO_PMCSR5_PMCSR524                    (0x01000000uL)
+#define GPIO_PMCSR5_PMCSR525                    (0x02000000uL)
+#define GPIO_PMCSR5_PMCSR526                    (0x04000000uL)
+
+#define GPIO_PFCAE5_PFCAE50                     (0x0001u)
+#define GPIO_PFCAE5_PFCAE51                     (0x0002u)
+#define GPIO_PFCAE5_PFCAE52                     (0x0004u)
+#define GPIO_PFCAE5_PFCAE53                     (0x0008u)
+#define GPIO_PFCAE5_PFCAE54                     (0x0010u)
+#define GPIO_PFCAE5_PFCAE55                     (0x0020u)
+#define GPIO_PFCAE5_PFCAE56                     (0x0040u)
+#define GPIO_PFCAE5_PFCAE57                     (0x0080u)
+#define GPIO_PFCAE5_PFCAE58                     (0x0100u)
+#define GPIO_PFCAE5_PFCAE59                     (0x0200u)
+#define GPIO_PFCAE5_PFCAE510                    (0x0400u)
+
+#define GPIO_PIBC5_PIBC50                       (0x0001u)
+#define GPIO_PIBC5_PIBC51                       (0x0002u)
+#define GPIO_PIBC5_PIBC52                       (0x0004u)
+#define GPIO_PIBC5_PIBC53                       (0x0008u)
+#define GPIO_PIBC5_PIBC54                       (0x0010u)
+#define GPIO_PIBC5_PIBC55                       (0x0020u)
+#define GPIO_PIBC5_PIBC56                       (0x0040u)
+#define GPIO_PIBC5_PIBC57                       (0x0080u)
+#define GPIO_PIBC5_PIBC58                       (0x0100u)
+#define GPIO_PIBC5_PIBC59                       (0x0200u)
+#define GPIO_PIBC5_PIBC510                      (0x0400u)
+
+#define GPIO_PBDC5_PBDC50                       (0x0001u)
+#define GPIO_PBDC5_PBDC51                       (0x0002u)
+#define GPIO_PBDC5_PBDC52                       (0x0004u)
+#define GPIO_PBDC5_PBDC53                       (0x0008u)
+#define GPIO_PBDC5_PBDC54                       (0x0010u)
+#define GPIO_PBDC5_PBDC55                       (0x0020u)
+#define GPIO_PBDC5_PBDC56                       (0x0040u)
+#define GPIO_PBDC5_PBDC57                       (0x0080u)
+#define GPIO_PBDC5_PBDC58                       (0x0100u)
+#define GPIO_PBDC5_PBDC59                       (0x0200u)
+#define GPIO_PBDC5_PBDC510                      (0x0400u)
+
+#define GPIO_PIPC5_PIPC50                       (0x0001u)
+#define GPIO_PIPC5_PIPC51                       (0x0002u)
+#define GPIO_PIPC5_PIPC52                       (0x0004u)
+#define GPIO_PIPC5_PIPC53                       (0x0008u)
+#define GPIO_PIPC5_PIPC54                       (0x0010u)
+#define GPIO_PIPC5_PIPC55                       (0x0020u)
+#define GPIO_PIPC5_PIPC56                       (0x0040u)
+#define GPIO_PIPC5_PIPC57                       (0x0080u)
+#define GPIO_PIPC5_PIPC58                       (0x0100u)
+#define GPIO_PIPC5_PIPC59                       (0x0200u)
+#define GPIO_PIPC5_PIPC510                      (0x0400u)
+
+/* ---- P6 ---- */
+#define GPIO_P6_P60                             (0x0001u)
+#define GPIO_P6_P61                             (0x0002u)
+#define GPIO_P6_P62                             (0x0004u)
+#define GPIO_P6_P63                             (0x0008u)
+#define GPIO_P6_P64                             (0x0010u)
+#define GPIO_P6_P65                             (0x0020u)
+#define GPIO_P6_P66                             (0x0040u)
+#define GPIO_P6_P67                             (0x0080u)
+#define GPIO_P6_P68                             (0x0100u)
+#define GPIO_P6_P69                             (0x0200u)
+#define GPIO_P6_P610                            (0x0400u)
+#define GPIO_P6_P611                            (0x0800u)
+#define GPIO_P6_P612                            (0x1000u)
+#define GPIO_P6_P613                            (0x2000u)
+#define GPIO_P6_P614                            (0x4000u)
+#define GPIO_P6_P615                            (0x8000u)
+
+#define GPIO_PSR6_PSR60                         (0x00000001uL)
+#define GPIO_PSR6_PSR61                         (0x00000002uL)
+#define GPIO_PSR6_PSR62                         (0x00000004uL)
+#define GPIO_PSR6_PSR63                         (0x00000008uL)
+#define GPIO_PSR6_PSR64                         (0x00000010uL)
+#define GPIO_PSR6_PSR65                         (0x00000020uL)
+#define GPIO_PSR6_PSR66                         (0x00000040uL)
+#define GPIO_PSR6_PSR67                         (0x00000080uL)
+#define GPIO_PSR6_PSR68                         (0x00000100uL)
+#define GPIO_PSR6_PSR69                         (0x00000200uL)
+#define GPIO_PSR6_PSR610                        (0x00000400uL)
+#define GPIO_PSR6_PSR611                        (0x00000800uL)
+#define GPIO_PSR6_PSR612                        (0x00001000uL)
+#define GPIO_PSR6_PSR613                        (0x00002000uL)
+#define GPIO_PSR6_PSR614                        (0x00004000uL)
+#define GPIO_PSR6_PSR615                        (0x00008000uL)
+#define GPIO_PSR6_PSR616                        (0x00010000uL)
+#define GPIO_PSR6_PSR617                        (0x00020000uL)
+#define GPIO_PSR6_PSR618                        (0x00040000uL)
+#define GPIO_PSR6_PSR619                        (0x00080000uL)
+#define GPIO_PSR6_PSR620                        (0x00100000uL)
+#define GPIO_PSR6_PSR621                        (0x00200000uL)
+#define GPIO_PSR6_PSR622                        (0x00400000uL)
+#define GPIO_PSR6_PSR623                        (0x00800000uL)
+#define GPIO_PSR6_PSR624                        (0x01000000uL)
+#define GPIO_PSR6_PSR625                        (0x02000000uL)
+#define GPIO_PSR6_PSR626                        (0x04000000uL)
+#define GPIO_PSR6_PSR627                        (0x08000000uL)
+#define GPIO_PSR6_PSR628                        (0x10000000uL)
+#define GPIO_PSR6_PSR629                        (0x20000000uL)
+#define GPIO_PSR6_PSR630                        (0x40000000uL)
+#define GPIO_PSR6_PSR631                        (0x80000000uL)
+
+#define GPIO_PPR6_PPR60                         (0x0001u)
+#define GPIO_PPR6_PPR61                         (0x0002u)
+#define GPIO_PPR6_PPR62                         (0x0004u)
+#define GPIO_PPR6_PPR63                         (0x0008u)
+#define GPIO_PPR6_PPR64                         (0x0010u)
+#define GPIO_PPR6_PPR65                         (0x0020u)
+#define GPIO_PPR6_PPR66                         (0x0040u)
+#define GPIO_PPR6_PPR67                         (0x0080u)
+#define GPIO_PPR6_PPR68                         (0x0100u)
+#define GPIO_PPR6_PPR69                         (0x0200u)
+#define GPIO_PPR6_PPR610                        (0x0400u)
+#define GPIO_PPR6_PPR611                        (0x0800u)
+#define GPIO_PPR6_PPR612                        (0x1000u)
+#define GPIO_PPR6_PPR613                        (0x2000u)
+#define GPIO_PPR6_PPR614                        (0x4000u)
+#define GPIO_PPR6_PPR615                        (0x8000u)
+
+#define GPIO_PM6_PM60                           (0x0001u)
+#define GPIO_PM6_PM61                           (0x0002u)
+#define GPIO_PM6_PM62                           (0x0004u)
+#define GPIO_PM6_PM63                           (0x0008u)
+#define GPIO_PM6_PM64                           (0x0010u)
+#define GPIO_PM6_PM65                           (0x0020u)
+#define GPIO_PM6_PM66                           (0x0040u)
+#define GPIO_PM6_PM67                           (0x0080u)
+#define GPIO_PM6_PM68                           (0x0100u)
+#define GPIO_PM6_PM69                           (0x0200u)
+#define GPIO_PM6_PM610                          (0x0400u)
+#define GPIO_PM6_PM611                          (0x0800u)
+#define GPIO_PM6_PM612                          (0x1000u)
+#define GPIO_PM6_PM613                          (0x2000u)
+#define GPIO_PM6_PM614                          (0x4000u)
+#define GPIO_PM6_PM615                          (0x8000u)
+
+#define GPIO_PMC6_PMC60                         (0x0001u)
+#define GPIO_PMC6_PMC61                         (0x0002u)
+#define GPIO_PMC6_PMC62                         (0x0004u)
+#define GPIO_PMC6_PMC63                         (0x0008u)
+#define GPIO_PMC6_PMC64                         (0x0010u)
+#define GPIO_PMC6_PMC65                         (0x0020u)
+#define GPIO_PMC6_PMC66                         (0x0040u)
+#define GPIO_PMC6_PMC67                         (0x0080u)
+#define GPIO_PMC6_PMC68                         (0x0100u)
+#define GPIO_PMC6_PMC69                         (0x0200u)
+#define GPIO_PMC6_PMC610                        (0x0400u)
+#define GPIO_PMC6_PMC611                        (0x0800u)
+#define GPIO_PMC6_PMC612                        (0x1000u)
+#define GPIO_PMC6_PMC613                        (0x2000u)
+#define GPIO_PMC6_PMC614                        (0x4000u)
+#define GPIO_PMC6_PMC615                        (0x8000u)
+
+#define GPIO_PFC6_PFC60                         (0x0001u)
+#define GPIO_PFC6_PFC61                         (0x0002u)
+#define GPIO_PFC6_PFC62                         (0x0004u)
+#define GPIO_PFC6_PFC63                         (0x0008u)
+#define GPIO_PFC6_PFC64                         (0x0010u)
+#define GPIO_PFC6_PFC65                         (0x0020u)
+#define GPIO_PFC6_PFC66                         (0x0040u)
+#define GPIO_PFC6_PFC67                         (0x0080u)
+#define GPIO_PFC6_PFC68                         (0x0100u)
+#define GPIO_PFC6_PFC69                         (0x0200u)
+#define GPIO_PFC6_PFC610                        (0x0400u)
+#define GPIO_PFC6_PFC611                        (0x0800u)
+#define GPIO_PFC6_PFC612                        (0x1000u)
+#define GPIO_PFC6_PFC613                        (0x2000u)
+#define GPIO_PFC6_PFC614                        (0x4000u)
+#define GPIO_PFC6_PFC615                        (0x8000u)
+
+#define GPIO_PFCE6_PFCE60                       (0x0001u)
+#define GPIO_PFCE6_PFCE61                       (0x0002u)
+#define GPIO_PFCE6_PFCE62                       (0x0004u)
+#define GPIO_PFCE6_PFCE63                       (0x0008u)
+#define GPIO_PFCE6_PFCE64                       (0x0010u)
+#define GPIO_PFCE6_PFCE65                       (0x0020u)
+#define GPIO_PFCE6_PFCE66                       (0x0040u)
+#define GPIO_PFCE6_PFCE67                       (0x0080u)
+#define GPIO_PFCE6_PFCE68                       (0x0100u)
+#define GPIO_PFCE6_PFCE69                       (0x0200u)
+#define GPIO_PFCE6_PFCE610                      (0x0400u)
+#define GPIO_PFCE6_PFCE611                      (0x0800u)
+#define GPIO_PFCE6_PFCE612                      (0x1000u)
+#define GPIO_PFCE6_PFCE613                      (0x2000u)
+#define GPIO_PFCE6_PFCE614                      (0x4000u)
+#define GPIO_PFCE6_PFCE615                      (0x8000u)
+
+#define GPIO_PNOT6_PNOT60                       (0x0001u)
+#define GPIO_PNOT6_PNOT61                       (0x0002u)
+#define GPIO_PNOT6_PNOT62                       (0x0004u)
+#define GPIO_PNOT6_PNOT63                       (0x0008u)
+#define GPIO_PNOT6_PNOT64                       (0x0010u)
+#define GPIO_PNOT6_PNOT65                       (0x0020u)
+#define GPIO_PNOT6_PNOT66                       (0x0040u)
+#define GPIO_PNOT6_PNOT67                       (0x0080u)
+#define GPIO_PNOT6_PNOT68                       (0x0100u)
+#define GPIO_PNOT6_PNOT69                       (0x0200u)
+#define GPIO_PNOT6_PNOT610                      (0x0400u)
+#define GPIO_PNOT6_PNOT611                      (0x0800u)
+#define GPIO_PNOT6_PNOT612                      (0x1000u)
+#define GPIO_PNOT6_PNOT613                      (0x2000u)
+#define GPIO_PNOT6_PNOT614                      (0x4000u)
+#define GPIO_PNOT6_PNOT615                      (0x8000u)
+
+#define GPIO_PMSR6_PMSR60                       (0x00000001uL)
+#define GPIO_PMSR6_PMSR61                       (0x00000002uL)
+#define GPIO_PMSR6_PMSR62                       (0x00000004uL)
+#define GPIO_PMSR6_PMSR63                       (0x00000008uL)
+#define GPIO_PMSR6_PMSR64                       (0x00000010uL)
+#define GPIO_PMSR6_PMSR65                       (0x00000020uL)
+#define GPIO_PMSR6_PMSR66                       (0x00000040uL)
+#define GPIO_PMSR6_PMSR67                       (0x00000080uL)
+#define GPIO_PMSR6_PMSR68                       (0x00000100uL)
+#define GPIO_PMSR6_PMSR69                       (0x00000200uL)
+#define GPIO_PMSR6_PMSR610                      (0x00000400uL)
+#define GPIO_PMSR6_PMSR611                      (0x00000800uL)
+#define GPIO_PMSR6_PMSR612                      (0x00001000uL)
+#define GPIO_PMSR6_PMSR613                      (0x00002000uL)
+#define GPIO_PMSR6_PMSR614                      (0x00004000uL)
+#define GPIO_PMSR6_PMSR615                      (0x00008000uL)
+#define GPIO_PMSR6_PMSR616                      (0x00010000uL)
+#define GPIO_PMSR6_PMSR617                      (0x00020000uL)
+#define GPIO_PMSR6_PMSR618                      (0x00040000uL)
+#define GPIO_PMSR6_PMSR619                      (0x00080000uL)
+#define GPIO_PMSR6_PMSR620                      (0x00100000uL)
+#define GPIO_PMSR6_PMSR621                      (0x00200000uL)
+#define GPIO_PMSR6_PMSR622                      (0x00400000uL)
+#define GPIO_PMSR6_PMSR623                      (0x00800000uL)
+#define GPIO_PMSR6_PMSR624                      (0x01000000uL)
+#define GPIO_PMSR6_PMSR625                      (0x02000000uL)
+#define GPIO_PMSR6_PMSR626                      (0x04000000uL)
+#define GPIO_PMSR6_PMSR627                      (0x08000000uL)
+#define GPIO_PMSR6_PMSR628                      (0x10000000uL)
+#define GPIO_PMSR6_PMSR629                      (0x20000000uL)
+#define GPIO_PMSR6_PMSR630                      (0x40000000uL)
+#define GPIO_PMSR6_PMSR631                      (0x80000000uL)
+
+#define GPIO_PMCSR6_PMCSR60                     (0x00000001uL)
+#define GPIO_PMCSR6_PMCSR61                     (0x00000002uL)
+#define GPIO_PMCSR6_PMCSR62                     (0x00000004uL)
+#define GPIO_PMCSR6_PMCSR63                     (0x00000008uL)
+#define GPIO_PMCSR6_PMCSR64                     (0x00000010uL)
+#define GPIO_PMCSR6_PMCSR65                     (0x00000020uL)
+#define GPIO_PMCSR6_PMCSR66                     (0x00000040uL)
+#define GPIO_PMCSR6_PMCSR67                     (0x00000080uL)
+#define GPIO_PMCSR6_PMCSR68                     (0x00000100uL)
+#define GPIO_PMCSR6_PMCSR69                     (0x00000200uL)
+#define GPIO_PMCSR6_PMCSR610                    (0x00000400uL)
+#define GPIO_PMCSR6_PMCSR611                    (0x00000800uL)
+#define GPIO_PMCSR6_PMCSR612                    (0x00001000uL)
+#define GPIO_PMCSR6_PMCSR613                    (0x00002000uL)
+#define GPIO_PMCSR6_PMCSR614                    (0x00004000uL)
+#define GPIO_PMCSR6_PMCSR615                    (0x00008000uL)
+#define GPIO_PMCSR6_PMCSR616                    (0x00010000uL)
+#define GPIO_PMCSR6_PMCSR617                    (0x00020000uL)
+#define GPIO_PMCSR6_PMCSR618                    (0x00040000uL)
+#define GPIO_PMCSR6_PMCSR619                    (0x00080000uL)
+#define GPIO_PMCSR6_PMCSR620                    (0x00100000uL)
+#define GPIO_PMCSR6_PMCSR621                    (0x00200000uL)
+#define GPIO_PMCSR6_PMCSR622                    (0x00400000uL)
+#define GPIO_PMCSR6_PMCSR623                    (0x00800000uL)
+#define GPIO_PMCSR6_PMCSR624                    (0x01000000uL)
+#define GPIO_PMCSR6_PMCSR625                    (0x02000000uL)
+#define GPIO_PMCSR6_PMCSR626                    (0x04000000uL)
+#define GPIO_PMCSR6_PMCSR627                    (0x08000000uL)
+#define GPIO_PMCSR6_PMCSR628                    (0x10000000uL)
+#define GPIO_PMCSR6_PMCSR629                    (0x20000000uL)
+#define GPIO_PMCSR6_PMCSR630                    (0x40000000uL)
+#define GPIO_PMCSR6_PMCSR631                    (0x80000000uL)
+
+#define GPIO_PFCAE6_PFCAE60                     (0x0001u)
+#define GPIO_PFCAE6_PFCAE61                     (0x0002u)
+#define GPIO_PFCAE6_PFCAE62                     (0x0004u)
+#define GPIO_PFCAE6_PFCAE63                     (0x0008u)
+#define GPIO_PFCAE6_PFCAE64                     (0x0010u)
+#define GPIO_PFCAE6_PFCAE65                     (0x0020u)
+#define GPIO_PFCAE6_PFCAE66                     (0x0040u)
+#define GPIO_PFCAE6_PFCAE67                     (0x0080u)
+#define GPIO_PFCAE6_PFCAE68                     (0x0100u)
+#define GPIO_PFCAE6_PFCAE69                     (0x0200u)
+#define GPIO_PFCAE6_PFCAE610                    (0x0400u)
+#define GPIO_PFCAE6_PFCAE611                    (0x0800u)
+#define GPIO_PFCAE6_PFCAE612                    (0x1000u)
+#define GPIO_PFCAE6_PFCAE613                    (0x2000u)
+#define GPIO_PFCAE6_PFCAE614                    (0x4000u)
+#define GPIO_PFCAE6_PFCAE615                    (0x8000u)
+
+#define GPIO_PIBC6_PIBC60                       (0x0001u)
+#define GPIO_PIBC6_PIBC61                       (0x0002u)
+#define GPIO_PIBC6_PIBC62                       (0x0004u)
+#define GPIO_PIBC6_PIBC63                       (0x0008u)
+#define GPIO_PIBC6_PIBC64                       (0x0010u)
+#define GPIO_PIBC6_PIBC65                       (0x0020u)
+#define GPIO_PIBC6_PIBC66                       (0x0040u)
+#define GPIO_PIBC6_PIBC67                       (0x0080u)
+#define GPIO_PIBC6_PIBC68                       (0x0100u)
+#define GPIO_PIBC6_PIBC69                       (0x0200u)
+#define GPIO_PIBC6_PIBC610                      (0x0400u)
+#define GPIO_PIBC6_PIBC611                      (0x0800u)
+#define GPIO_PIBC6_PIBC612                      (0x1000u)
+#define GPIO_PIBC6_PIBC613                      (0x2000u)
+#define GPIO_PIBC6_PIBC614                      (0x4000u)
+#define GPIO_PIBC6_PIBC615                      (0x8000u)
+
+#define GPIO_PBDC6_PBDC60                       (0x0001u)
+#define GPIO_PBDC6_PBDC61                       (0x0002u)
+#define GPIO_PBDC6_PBDC62                       (0x0004u)
+#define GPIO_PBDC6_PBDC63                       (0x0008u)
+#define GPIO_PBDC6_PBDC64                       (0x0010u)
+#define GPIO_PBDC6_PBDC65                       (0x0020u)
+#define GPIO_PBDC6_PBDC66                       (0x0040u)
+#define GPIO_PBDC6_PBDC67                       (0x0080u)
+#define GPIO_PBDC6_PBDC68                       (0x0100u)
+#define GPIO_PBDC6_PBDC69                       (0x0200u)
+#define GPIO_PBDC6_PBDC610                      (0x0400u)
+#define GPIO_PBDC6_PBDC611                      (0x0800u)
+#define GPIO_PBDC6_PBDC612                      (0x1000u)
+#define GPIO_PBDC6_PBDC613                      (0x2000u)
+#define GPIO_PBDC6_PBDC614                      (0x4000u)
+#define GPIO_PBDC6_PBDC615                      (0x8000u)
+
+#define GPIO_PIPC6_PIPC60                       (0x0001u)
+#define GPIO_PIPC6_PIPC61                       (0x0002u)
+#define GPIO_PIPC6_PIPC62                       (0x0004u)
+#define GPIO_PIPC6_PIPC63                       (0x0008u)
+#define GPIO_PIPC6_PIPC64                       (0x0010u)
+#define GPIO_PIPC6_PIPC65                       (0x0020u)
+#define GPIO_PIPC6_PIPC66                       (0x0040u)
+#define GPIO_PIPC6_PIPC67                       (0x0080u)
+#define GPIO_PIPC6_PIPC68                       (0x0100u)
+#define GPIO_PIPC6_PIPC69                       (0x0200u)
+#define GPIO_PIPC6_PIPC610                      (0x0400u)
+#define GPIO_PIPC6_PIPC611                      (0x0800u)
+#define GPIO_PIPC6_PIPC612                      (0x1000u)
+#define GPIO_PIPC6_PIPC613                      (0x2000u)
+#define GPIO_PIPC6_PIPC614                      (0x4000u)
+#define GPIO_PIPC6_PIPC615                      (0x8000u)
+
+/* ---- P7 ---- */
+#define GPIO_P7_P70                             (0x0001u)
+#define GPIO_P7_P71                             (0x0002u)
+#define GPIO_P7_P72                             (0x0004u)
+#define GPIO_P7_P73                             (0x0008u)
+#define GPIO_P7_P74                             (0x0010u)
+#define GPIO_P7_P75                             (0x0020u)
+#define GPIO_P7_P76                             (0x0040u)
+#define GPIO_P7_P77                             (0x0080u)
+#define GPIO_P7_P78                             (0x0100u)
+#define GPIO_P7_P79                             (0x0200u)
+#define GPIO_P7_P710                            (0x0400u)
+#define GPIO_P7_P711                            (0x0800u)
+#define GPIO_P7_P712                            (0x1000u)
+#define GPIO_P7_P713                            (0x2000u)
+#define GPIO_P7_P714                            (0x4000u)
+#define GPIO_P7_P715                            (0x8000u)
+
+#define GPIO_PSR7_PSR70                         (0x00000001uL)
+#define GPIO_PSR7_PSR71                         (0x00000002uL)
+#define GPIO_PSR7_PSR72                         (0x00000004uL)
+#define GPIO_PSR7_PSR73                         (0x00000008uL)
+#define GPIO_PSR7_PSR74                         (0x00000010uL)
+#define GPIO_PSR7_PSR75                         (0x00000020uL)
+#define GPIO_PSR7_PSR76                         (0x00000040uL)
+#define GPIO_PSR7_PSR77                         (0x00000080uL)
+#define GPIO_PSR7_PSR78                         (0x00000100uL)
+#define GPIO_PSR7_PSR79                         (0x00000200uL)
+#define GPIO_PSR7_PSR710                        (0x00000400uL)
+#define GPIO_PSR7_PSR711                        (0x00000800uL)
+#define GPIO_PSR7_PSR712                        (0x00001000uL)
+#define GPIO_PSR7_PSR713                        (0x00002000uL)
+#define GPIO_PSR7_PSR714                        (0x00004000uL)
+#define GPIO_PSR7_PSR715                        (0x00008000uL)
+#define GPIO_PSR7_PSR716                        (0x00010000uL)
+#define GPIO_PSR7_PSR717                        (0x00020000uL)
+#define GPIO_PSR7_PSR718                        (0x00040000uL)
+#define GPIO_PSR7_PSR719                        (0x00080000uL)
+#define GPIO_PSR7_PSR720                        (0x00100000uL)
+#define GPIO_PSR7_PSR721                        (0x00200000uL)
+#define GPIO_PSR7_PSR722                        (0x00400000uL)
+#define GPIO_PSR7_PSR723                        (0x00800000uL)
+#define GPIO_PSR7_PSR724                        (0x01000000uL)
+#define GPIO_PSR7_PSR725                        (0x02000000uL)
+#define GPIO_PSR7_PSR726                        (0x04000000uL)
+#define GPIO_PSR7_PSR727                        (0x08000000uL)
+#define GPIO_PSR7_PSR728                        (0x10000000uL)
+#define GPIO_PSR7_PSR729                        (0x20000000uL)
+#define GPIO_PSR7_PSR730                        (0x40000000uL)
+#define GPIO_PSR7_PSR731                        (0x80000000uL)
+
+#define GPIO_PPR7_PPR70                         (0x0001u)
+#define GPIO_PPR7_PPR71                         (0x0002u)
+#define GPIO_PPR7_PPR72                         (0x0004u)
+#define GPIO_PPR7_PPR73                         (0x0008u)
+#define GPIO_PPR7_PPR74                         (0x0010u)
+#define GPIO_PPR7_PPR75                         (0x0020u)
+#define GPIO_PPR7_PPR76                         (0x0040u)
+#define GPIO_PPR7_PPR77                         (0x0080u)
+#define GPIO_PPR7_PPR78                         (0x0100u)
+#define GPIO_PPR7_PPR79                         (0x0200u)
+#define GPIO_PPR7_PPR710                        (0x0400u)
+#define GPIO_PPR7_PPR711                        (0x0800u)
+#define GPIO_PPR7_PPR712                        (0x1000u)
+#define GPIO_PPR7_PPR713                        (0x2000u)
+#define GPIO_PPR7_PPR714                        (0x4000u)
+#define GPIO_PPR7_PPR715                        (0x8000u)
+
+#define GPIO_PM7_PM70                           (0x0001u)
+#define GPIO_PM7_PM71                           (0x0002u)
+#define GPIO_PM7_PM72                           (0x0004u)
+#define GPIO_PM7_PM73                           (0x0008u)
+#define GPIO_PM7_PM74                           (0x0010u)
+#define GPIO_PM7_PM75                           (0x0020u)
+#define GPIO_PM7_PM76                           (0x0040u)
+#define GPIO_PM7_PM77                           (0x0080u)
+#define GPIO_PM7_PM78                           (0x0100u)
+#define GPIO_PM7_PM79                           (0x0200u)
+#define GPIO_PM7_PM710                          (0x0400u)
+#define GPIO_PM7_PM711                          (0x0800u)
+#define GPIO_PM7_PM712                          (0x1000u)
+#define GPIO_PM7_PM713                          (0x2000u)
+#define GPIO_PM7_PM714                          (0x4000u)
+#define GPIO_PM7_PM715                          (0x8000u)
+
+#define GPIO_PMC7_PMC70                         (0x0001u)
+#define GPIO_PMC7_PMC71                         (0x0002u)
+#define GPIO_PMC7_PMC72                         (0x0004u)
+#define GPIO_PMC7_PMC73                         (0x0008u)
+#define GPIO_PMC7_PMC74                         (0x0010u)
+#define GPIO_PMC7_PMC75                         (0x0020u)
+#define GPIO_PMC7_PMC76                         (0x0040u)
+#define GPIO_PMC7_PMC77                         (0x0080u)
+#define GPIO_PMC7_PMC78                         (0x0100u)
+#define GPIO_PMC7_PMC79                         (0x0200u)
+#define GPIO_PMC7_PMC710                        (0x0400u)
+#define GPIO_PMC7_PMC711                        (0x0800u)
+#define GPIO_PMC7_PMC712                        (0x1000u)
+#define GPIO_PMC7_PMC713                        (0x2000u)
+#define GPIO_PMC7_PMC714                        (0x4000u)
+#define GPIO_PMC7_PMC715                        (0x8000u)
+
+#define GPIO_PFC7_PFC70                         (0x0001u)
+#define GPIO_PFC7_PFC71                         (0x0002u)
+#define GPIO_PFC7_PFC72                         (0x0004u)
+#define GPIO_PFC7_PFC73                         (0x0008u)
+#define GPIO_PFC7_PFC74                         (0x0010u)
+#define GPIO_PFC7_PFC75                         (0x0020u)
+#define GPIO_PFC7_PFC76                         (0x0040u)
+#define GPIO_PFC7_PFC77                         (0x0080u)
+#define GPIO_PFC7_PFC78                         (0x0100u)
+#define GPIO_PFC7_PFC79                         (0x0200u)
+#define GPIO_PFC7_PFC710                        (0x0400u)
+#define GPIO_PFC7_PFC711                        (0x0800u)
+#define GPIO_PFC7_PFC712                        (0x1000u)
+#define GPIO_PFC7_PFC713                        (0x2000u)
+#define GPIO_PFC7_PFC714                        (0x4000u)
+#define GPIO_PFC7_PFC715                        (0x8000u)
+
+#define GPIO_PFCE7_PFCE70                       (0x0001u)
+#define GPIO_PFCE7_PFCE71                       (0x0002u)
+#define GPIO_PFCE7_PFCE72                       (0x0004u)
+#define GPIO_PFCE7_PFCE73                       (0x0008u)
+#define GPIO_PFCE7_PFCE74                       (0x0010u)
+#define GPIO_PFCE7_PFCE75                       (0x0020u)
+#define GPIO_PFCE7_PFCE76                       (0x0040u)
+#define GPIO_PFCE7_PFCE77                       (0x0080u)
+#define GPIO_PFCE7_PFCE78                       (0x0100u)
+#define GPIO_PFCE7_PFCE79                       (0x0200u)
+#define GPIO_PFCE7_PFCE710                      (0x0400u)
+#define GPIO_PFCE7_PFCE711                      (0x0800u)
+#define GPIO_PFCE7_PFCE712                      (0x1000u)
+#define GPIO_PFCE7_PFCE713                      (0x2000u)
+#define GPIO_PFCE7_PFCE714                      (0x4000u)
+#define GPIO_PFCE7_PFCE715                      (0x8000u)
+
+#define GPIO_PNOT7_PNOT70                       (0x0001u)
+#define GPIO_PNOT7_PNOT71                       (0x0002u)
+#define GPIO_PNOT7_PNOT72                       (0x0004u)
+#define GPIO_PNOT7_PNOT73                       (0x0008u)
+#define GPIO_PNOT7_PNOT74                       (0x0010u)
+#define GPIO_PNOT7_PNOT75                       (0x0020u)
+#define GPIO_PNOT7_PNOT76                       (0x0040u)
+#define GPIO_PNOT7_PNOT77                       (0x0080u)
+#define GPIO_PNOT7_PNOT78                       (0x0100u)
+#define GPIO_PNOT7_PNOT79                       (0x0200u)
+#define GPIO_PNOT7_PNOT710                      (0x0400u)
+#define GPIO_PNOT7_PNOT711                      (0x0800u)
+#define GPIO_PNOT7_PNOT712                      (0x1000u)
+#define GPIO_PNOT7_PNOT713                      (0x2000u)
+#define GPIO_PNOT7_PNOT714                      (0x4000u)
+#define GPIO_PNOT7_PNOT715                      (0x8000u)
+
+#define GPIO_PMSR7_PMSR70                       (0x00000001uL)
+#define GPIO_PMSR7_PMSR71                       (0x00000002uL)
+#define GPIO_PMSR7_PMSR72                       (0x00000004uL)
+#define GPIO_PMSR7_PMSR73                       (0x00000008uL)
+#define GPIO_PMSR7_PMSR74                       (0x00000010uL)
+#define GPIO_PMSR7_PMSR75                       (0x00000020uL)
+#define GPIO_PMSR7_PMSR76                       (0x00000040uL)
+#define GPIO_PMSR7_PMSR77                       (0x00000080uL)
+#define GPIO_PMSR7_PMSR78                       (0x00000100uL)
+#define GPIO_PMSR7_PMSR79                       (0x00000200uL)
+#define GPIO_PMSR7_PMSR710                      (0x00000400uL)
+#define GPIO_PMSR7_PMSR711                      (0x00000800uL)
+#define GPIO_PMSR7_PMSR712                      (0x00001000uL)
+#define GPIO_PMSR7_PMSR713                      (0x00002000uL)
+#define GPIO_PMSR7_PMSR714                      (0x00004000uL)
+#define GPIO_PMSR7_PMSR715                      (0x00008000uL)
+#define GPIO_PMSR7_PMSR716                      (0x00010000uL)
+#define GPIO_PMSR7_PMSR717                      (0x00020000uL)
+#define GPIO_PMSR7_PMSR718                      (0x00040000uL)
+#define GPIO_PMSR7_PMSR719                      (0x00080000uL)
+#define GPIO_PMSR7_PMSR720                      (0x00100000uL)
+#define GPIO_PMSR7_PMSR721                      (0x00200000uL)
+#define GPIO_PMSR7_PMSR722                      (0x00400000uL)
+#define GPIO_PMSR7_PMSR723                      (0x00800000uL)
+#define GPIO_PMSR7_PMSR724                      (0x01000000uL)
+#define GPIO_PMSR7_PMSR725                      (0x02000000uL)
+#define GPIO_PMSR7_PMSR726                      (0x04000000uL)
+#define GPIO_PMSR7_PMSR727                      (0x08000000uL)
+#define GPIO_PMSR7_PMSR728                      (0x10000000uL)
+#define GPIO_PMSR7_PMSR729                      (0x20000000uL)
+#define GPIO_PMSR7_PMSR730                      (0x40000000uL)
+#define GPIO_PMSR7_PMSR731                      (0x80000000uL)
+
+#define GPIO_PMCSR7_PMCSR70                     (0x00000001uL)
+#define GPIO_PMCSR7_PMCSR71                     (0x00000002uL)
+#define GPIO_PMCSR7_PMCSR72                     (0x00000004uL)
+#define GPIO_PMCSR7_PMCSR73                     (0x00000008uL)
+#define GPIO_PMCSR7_PMCSR74                     (0x00000010uL)
+#define GPIO_PMCSR7_PMCSR75                     (0x00000020uL)
+#define GPIO_PMCSR7_PMCSR76                     (0x00000040uL)
+#define GPIO_PMCSR7_PMCSR77                     (0x00000080uL)
+#define GPIO_PMCSR7_PMCSR78                     (0x00000100uL)
+#define GPIO_PMCSR7_PMCSR79                     (0x00000200uL)
+#define GPIO_PMCSR7_PMCSR710                    (0x00000400uL)
+#define GPIO_PMCSR7_PMCSR711                    (0x00000800uL)
+#define GPIO_PMCSR7_PMCSR712                    (0x00001000uL)
+#define GPIO_PMCSR7_PMCSR713                    (0x00002000uL)
+#define GPIO_PMCSR7_PMCSR714                    (0x00004000uL)
+#define GPIO_PMCSR7_PMCSR715                    (0x00008000uL)
+#define GPIO_PMCSR7_PMCSR716                    (0x00010000uL)
+#define GPIO_PMCSR7_PMCSR717                    (0x00020000uL)
+#define GPIO_PMCSR7_PMCSR718                    (0x00040000uL)
+#define GPIO_PMCSR7_PMCSR719                    (0x00080000uL)
+#define GPIO_PMCSR7_PMCSR720                    (0x00100000uL)
+#define GPIO_PMCSR7_PMCSR721                    (0x00200000uL)
+#define GPIO_PMCSR7_PMCSR722                    (0x00400000uL)
+#define GPIO_PMCSR7_PMCSR723                    (0x00800000uL)
+#define GPIO_PMCSR7_PMCSR724                    (0x01000000uL)
+#define GPIO_PMCSR7_PMCSR725                    (0x02000000uL)
+#define GPIO_PMCSR7_PMCSR726                    (0x04000000uL)
+#define GPIO_PMCSR7_PMCSR727                    (0x08000000uL)
+#define GPIO_PMCSR7_PMCSR728                    (0x10000000uL)
+#define GPIO_PMCSR7_PMCSR729                    (0x20000000uL)
+#define GPIO_PMCSR7_PMCSR730                    (0x40000000uL)
+#define GPIO_PMCSR7_PMCSR731                    (0x80000000uL)
+
+#define GPIO_PFCAE7_PFCAE70                     (0x0001u)
+#define GPIO_PFCAE7_PFCAE71                     (0x0002u)
+#define GPIO_PFCAE7_PFCAE72                     (0x0004u)
+#define GPIO_PFCAE7_PFCAE73                     (0x0008u)
+#define GPIO_PFCAE7_PFCAE74                     (0x0010u)
+#define GPIO_PFCAE7_PFCAE75                     (0x0020u)
+#define GPIO_PFCAE7_PFCAE76                     (0x0040u)
+#define GPIO_PFCAE7_PFCAE77                     (0x0080u)
+#define GPIO_PFCAE7_PFCAE78                     (0x0100u)
+#define GPIO_PFCAE7_PFCAE79                     (0x0200u)
+#define GPIO_PFCAE7_PFCAE710                    (0x0400u)
+#define GPIO_PFCAE7_PFCAE711                    (0x0800u)
+#define GPIO_PFCAE7_PFCAE712                    (0x1000u)
+#define GPIO_PFCAE7_PFCAE713                    (0x2000u)
+#define GPIO_PFCAE7_PFCAE714                    (0x4000u)
+#define GPIO_PFCAE7_PFCAE715                    (0x8000u)
+
+#define GPIO_PIBC7_PIBC70                       (0x0001u)
+#define GPIO_PIBC7_PIBC71                       (0x0002u)
+#define GPIO_PIBC7_PIBC72                       (0x0004u)
+#define GPIO_PIBC7_PIBC73                       (0x0008u)
+#define GPIO_PIBC7_PIBC74                       (0x0010u)
+#define GPIO_PIBC7_PIBC75                       (0x0020u)
+#define GPIO_PIBC7_PIBC76                       (0x0040u)
+#define GPIO_PIBC7_PIBC77                       (0x0080u)
+#define GPIO_PIBC7_PIBC78                       (0x0100u)
+#define GPIO_PIBC7_PIBC79                       (0x0200u)
+#define GPIO_PIBC7_PIBC710                      (0x0400u)
+#define GPIO_PIBC7_PIBC711                      (0x0800u)
+#define GPIO_PIBC7_PIBC712                      (0x1000u)
+#define GPIO_PIBC7_PIBC713                      (0x2000u)
+#define GPIO_PIBC7_PIBC714                      (0x4000u)
+#define GPIO_PIBC7_PIBC715                      (0x8000u)
+
+#define GPIO_PBDC7_PBDC70                       (0x0001u)
+#define GPIO_PBDC7_PBDC71                       (0x0002u)
+#define GPIO_PBDC7_PBDC72                       (0x0004u)
+#define GPIO_PBDC7_PBDC73                       (0x0008u)
+#define GPIO_PBDC7_PBDC74                       (0x0010u)
+#define GPIO_PBDC7_PBDC75                       (0x0020u)
+#define GPIO_PBDC7_PBDC76                       (0x0040u)
+#define GPIO_PBDC7_PBDC77                       (0x0080u)
+#define GPIO_PBDC7_PBDC78                       (0x0100u)
+#define GPIO_PBDC7_PBDC79                       (0x0200u)
+#define GPIO_PBDC7_PBDC710                      (0x0400u)
+#define GPIO_PBDC7_PBDC711                      (0x0800u)
+#define GPIO_PBDC7_PBDC712                      (0x1000u)
+#define GPIO_PBDC7_PBDC713                      (0x2000u)
+#define GPIO_PBDC7_PBDC714                      (0x4000u)
+#define GPIO_PBDC7_PBDC715                      (0x8000u)
+
+#define GPIO_PIPC7_PIPC70                       (0x0001u)
+#define GPIO_PIPC7_PIPC71                       (0x0002u)
+#define GPIO_PIPC7_PIPC72                       (0x0004u)
+#define GPIO_PIPC7_PIPC73                       (0x0008u)
+#define GPIO_PIPC7_PIPC74                       (0x0010u)
+#define GPIO_PIPC7_PIPC75                       (0x0020u)
+#define GPIO_PIPC7_PIPC76                       (0x0040u)
+#define GPIO_PIPC7_PIPC77                       (0x0080u)
+#define GPIO_PIPC7_PIPC78                       (0x0100u)
+#define GPIO_PIPC7_PIPC79                       (0x0200u)
+#define GPIO_PIPC7_PIPC710                      (0x0400u)
+#define GPIO_PIPC7_PIPC711                      (0x0800u)
+#define GPIO_PIPC7_PIPC712                      (0x1000u)
+#define GPIO_PIPC7_PIPC713                      (0x2000u)
+#define GPIO_PIPC7_PIPC714                      (0x4000u)
+#define GPIO_PIPC7_PIPC715                      (0x8000u)
+
+/* ---- P8 ---- */
+#define GPIO_P8_P80                             (0x0001u)
+#define GPIO_P8_P81                             (0x0002u)
+#define GPIO_P8_P82                             (0x0004u)
+#define GPIO_P8_P83                             (0x0008u)
+#define GPIO_P8_P84                             (0x0010u)
+#define GPIO_P8_P85                             (0x0020u)
+#define GPIO_P8_P86                             (0x0040u)
+#define GPIO_P8_P87                             (0x0080u)
+#define GPIO_P8_P88                             (0x0100u)
+#define GPIO_P8_P89                             (0x0200u)
+#define GPIO_P8_P810                            (0x0400u)
+#define GPIO_P8_P811                            (0x0800u)
+#define GPIO_P8_P812                            (0x1000u)
+#define GPIO_P8_P813                            (0x2000u)
+#define GPIO_P8_P814                            (0x4000u)
+#define GPIO_P8_P815                            (0x8000u)
+
+#define GPIO_PSR8_PSR80                         (0x00000001uL)
+#define GPIO_PSR8_PSR81                         (0x00000002uL)
+#define GPIO_PSR8_PSR82                         (0x00000004uL)
+#define GPIO_PSR8_PSR83                         (0x00000008uL)
+#define GPIO_PSR8_PSR84                         (0x00000010uL)
+#define GPIO_PSR8_PSR85                         (0x00000020uL)
+#define GPIO_PSR8_PSR86                         (0x00000040uL)
+#define GPIO_PSR8_PSR87                         (0x00000080uL)
+#define GPIO_PSR8_PSR88                         (0x00000100uL)
+#define GPIO_PSR8_PSR89                         (0x00000200uL)
+#define GPIO_PSR8_PSR810                        (0x00000400uL)
+#define GPIO_PSR8_PSR811                        (0x00000800uL)
+#define GPIO_PSR8_PSR812                        (0x00001000uL)
+#define GPIO_PSR8_PSR813                        (0x00002000uL)
+#define GPIO_PSR8_PSR814                        (0x00004000uL)
+#define GPIO_PSR8_PSR815                        (0x00008000uL)
+#define GPIO_PSR8_PSR816                        (0x00010000uL)
+#define GPIO_PSR8_PSR817                        (0x00020000uL)
+#define GPIO_PSR8_PSR818                        (0x00040000uL)
+#define GPIO_PSR8_PSR819                        (0x00080000uL)
+#define GPIO_PSR8_PSR820                        (0x00100000uL)
+#define GPIO_PSR8_PSR821                        (0x00200000uL)
+#define GPIO_PSR8_PSR822                        (0x00400000uL)
+#define GPIO_PSR8_PSR823                        (0x00800000uL)
+#define GPIO_PSR8_PSR824                        (0x01000000uL)
+#define GPIO_PSR8_PSR825                        (0x02000000uL)
+#define GPIO_PSR8_PSR826                        (0x04000000uL)
+#define GPIO_PSR8_PSR827                        (0x08000000uL)
+#define GPIO_PSR8_PSR828                        (0x10000000uL)
+#define GPIO_PSR8_PSR829                        (0x20000000uL)
+#define GPIO_PSR8_PSR830                        (0x40000000uL)
+#define GPIO_PSR8_PSR831                        (0x80000000uL)
+
+#define GPIO_PPR8_PPR80                         (0x0001u)
+#define GPIO_PPR8_PPR81                         (0x0002u)
+#define GPIO_PPR8_PPR82                         (0x0004u)
+#define GPIO_PPR8_PPR83                         (0x0008u)
+#define GPIO_PPR8_PPR84                         (0x0010u)
+#define GPIO_PPR8_PPR85                         (0x0020u)
+#define GPIO_PPR8_PPR86                         (0x0040u)
+#define GPIO_PPR8_PPR87                         (0x0080u)
+#define GPIO_PPR8_PPR88                         (0x0100u)
+#define GPIO_PPR8_PPR89                         (0x0200u)
+#define GPIO_PPR8_PPR810                        (0x0400u)
+#define GPIO_PPR8_PPR811                        (0x0800u)
+#define GPIO_PPR8_PPR812                        (0x1000u)
+#define GPIO_PPR8_PPR813                        (0x2000u)
+#define GPIO_PPR8_PPR814                        (0x4000u)
+#define GPIO_PPR8_PPR815                        (0x8000u)
+
+#define GPIO_PM8_PM80                           (0x0001u)
+#define GPIO_PM8_PM81                           (0x0002u)
+#define GPIO_PM8_PM82                           (0x0004u)
+#define GPIO_PM8_PM83                           (0x0008u)
+#define GPIO_PM8_PM84                           (0x0010u)
+#define GPIO_PM8_PM85                           (0x0020u)
+#define GPIO_PM8_PM86                           (0x0040u)
+#define GPIO_PM8_PM87                           (0x0080u)
+#define GPIO_PM8_PM88                           (0x0100u)
+#define GPIO_PM8_PM89                           (0x0200u)
+#define GPIO_PM8_PM810                          (0x0400u)
+#define GPIO_PM8_PM811                          (0x0800u)
+#define GPIO_PM8_PM812                          (0x1000u)
+#define GPIO_PM8_PM813                          (0x2000u)
+#define GPIO_PM8_PM814                          (0x4000u)
+#define GPIO_PM8_PM815                          (0x8000u)
+
+#define GPIO_PMC8_PMC80                         (0x0001u)
+#define GPIO_PMC8_PMC81                         (0x0002u)
+#define GPIO_PMC8_PMC82                         (0x0004u)
+#define GPIO_PMC8_PMC83                         (0x0008u)
+#define GPIO_PMC8_PMC84                         (0x0010u)
+#define GPIO_PMC8_PMC85                         (0x0020u)
+#define GPIO_PMC8_PMC86                         (0x0040u)
+#define GPIO_PMC8_PMC87                         (0x0080u)
+#define GPIO_PMC8_PMC88                         (0x0100u)
+#define GPIO_PMC8_PMC89                         (0x0200u)
+#define GPIO_PMC8_PMC810                        (0x0400u)
+#define GPIO_PMC8_PMC811                        (0x0800u)
+#define GPIO_PMC8_PMC812                        (0x1000u)
+#define GPIO_PMC8_PMC813                        (0x2000u)
+#define GPIO_PMC8_PMC814                        (0x4000u)
+#define GPIO_PMC8_PMC815                        (0x8000u)
+
+#define GPIO_PFC8_PFC80                         (0x0001u)
+#define GPIO_PFC8_PFC81                         (0x0002u)
+#define GPIO_PFC8_PFC82                         (0x0004u)
+#define GPIO_PFC8_PFC83                         (0x0008u)
+#define GPIO_PFC8_PFC84                         (0x0010u)
+#define GPIO_PFC8_PFC85                         (0x0020u)
+#define GPIO_PFC8_PFC86                         (0x0040u)
+#define GPIO_PFC8_PFC87                         (0x0080u)
+#define GPIO_PFC8_PFC88                         (0x0100u)
+#define GPIO_PFC8_PFC89                         (0x0200u)
+#define GPIO_PFC8_PFC810                        (0x0400u)
+#define GPIO_PFC8_PFC811                        (0x0800u)
+#define GPIO_PFC8_PFC812                        (0x1000u)
+#define GPIO_PFC8_PFC813                        (0x2000u)
+#define GPIO_PFC8_PFC814                        (0x4000u)
+#define GPIO_PFC8_PFC815                        (0x8000u)
+
+#define GPIO_PFCE8_PFCE80                       (0x0001u)
+#define GPIO_PFCE8_PFCE81                       (0x0002u)
+#define GPIO_PFCE8_PFCE82                       (0x0004u)
+#define GPIO_PFCE8_PFCE83                       (0x0008u)
+#define GPIO_PFCE8_PFCE84                       (0x0010u)
+#define GPIO_PFCE8_PFCE85                       (0x0020u)
+#define GPIO_PFCE8_PFCE86                       (0x0040u)
+#define GPIO_PFCE8_PFCE87                       (0x0080u)
+#define GPIO_PFCE8_PFCE88                       (0x0100u)
+#define GPIO_PFCE8_PFCE89                       (0x0200u)
+#define GPIO_PFCE8_PFCE810                      (0x0400u)
+#define GPIO_PFCE8_PFCE811                      (0x0800u)
+#define GPIO_PFCE8_PFCE812                      (0x1000u)
+#define GPIO_PFCE8_PFCE813                      (0x2000u)
+#define GPIO_PFCE8_PFCE814                      (0x4000u)
+#define GPIO_PFCE8_PFCE815                      (0x8000u)
+
+#define GPIO_PNOT8_PNOT80                       (0x0001u)
+#define GPIO_PNOT8_PNOT81                       (0x0002u)
+#define GPIO_PNOT8_PNOT82                       (0x0004u)
+#define GPIO_PNOT8_PNOT83                       (0x0008u)
+#define GPIO_PNOT8_PNOT84                       (0x0010u)
+#define GPIO_PNOT8_PNOT85                       (0x0020u)
+#define GPIO_PNOT8_PNOT86                       (0x0040u)
+#define GPIO_PNOT8_PNOT87                       (0x0080u)
+#define GPIO_PNOT8_PNOT88                       (0x0100u)
+#define GPIO_PNOT8_PNOT89                       (0x0200u)
+#define GPIO_PNOT8_PNOT810                      (0x0400u)
+#define GPIO_PNOT8_PNOT811                      (0x0800u)
+#define GPIO_PNOT8_PNOT812                      (0x1000u)
+#define GPIO_PNOT8_PNOT813                      (0x2000u)
+#define GPIO_PNOT8_PNOT814                      (0x4000u)
+#define GPIO_PNOT8_PNOT815                      (0x8000u)
+
+#define GPIO_PMSR8_PMSR80                       (0x00000001uL)
+#define GPIO_PMSR8_PMSR81                       (0x00000002uL)
+#define GPIO_PMSR8_PMSR82                       (0x00000004uL)
+#define GPIO_PMSR8_PMSR83                       (0x00000008uL)
+#define GPIO_PMSR8_PMSR84                       (0x00000010uL)
+#define GPIO_PMSR8_PMSR85                       (0x00000020uL)
+#define GPIO_PMSR8_PMSR86                       (0x00000040uL)
+#define GPIO_PMSR8_PMSR87                       (0x00000080uL)
+#define GPIO_PMSR8_PMSR88                       (0x00000100uL)
+#define GPIO_PMSR8_PMSR89                       (0x00000200uL)
+#define GPIO_PMSR8_PMSR810                      (0x00000400uL)
+#define GPIO_PMSR8_PMSR811                      (0x00000800uL)
+#define GPIO_PMSR8_PMSR812                      (0x00001000uL)
+#define GPIO_PMSR8_PMSR813                      (0x00002000uL)
+#define GPIO_PMSR8_PMSR814                      (0x00004000uL)
+#define GPIO_PMSR8_PMSR815                      (0x00008000uL)
+#define GPIO_PMSR8_PMSR816                      (0x00010000uL)
+#define GPIO_PMSR8_PMSR817                      (0x00020000uL)
+#define GPIO_PMSR8_PMSR818                      (0x00040000uL)
+#define GPIO_PMSR8_PMSR819                      (0x00080000uL)
+#define GPIO_PMSR8_PMSR820                      (0x00100000uL)
+#define GPIO_PMSR8_PMSR821                      (0x00200000uL)
+#define GPIO_PMSR8_PMSR822                      (0x00400000uL)
+#define GPIO_PMSR8_PMSR823                      (0x00800000uL)
+#define GPIO_PMSR8_PMSR824                      (0x01000000uL)
+#define GPIO_PMSR8_PMSR825                      (0x02000000uL)
+#define GPIO_PMSR8_PMSR826                      (0x04000000uL)
+#define GPIO_PMSR8_PMSR827                      (0x08000000uL)
+#define GPIO_PMSR8_PMSR828                      (0x10000000uL)
+#define GPIO_PMSR8_PMSR829                      (0x20000000uL)
+#define GPIO_PMSR8_PMSR830                      (0x40000000uL)
+#define GPIO_PMSR8_PMSR831                      (0x80000000uL)
+
+#define GPIO_PMCSR8_PMCSR80                     (0x00000001uL)
+#define GPIO_PMCSR8_PMCSR81                     (0x00000002uL)
+#define GPIO_PMCSR8_PMCSR82                     (0x00000004uL)
+#define GPIO_PMCSR8_PMCSR83                     (0x00000008uL)
+#define GPIO_PMCSR8_PMCSR84                     (0x00000010uL)
+#define GPIO_PMCSR8_PMCSR85                     (0x00000020uL)
+#define GPIO_PMCSR8_PMCSR86                     (0x00000040uL)
+#define GPIO_PMCSR8_PMCSR87                     (0x00000080uL)
+#define GPIO_PMCSR8_PMCSR88                     (0x00000100uL)
+#define GPIO_PMCSR8_PMCSR89                     (0x00000200uL)
+#define GPIO_PMCSR8_PMCSR810                    (0x00000400uL)
+#define GPIO_PMCSR8_PMCSR811                    (0x00000800uL)
+#define GPIO_PMCSR8_PMCSR812                    (0x00001000uL)
+#define GPIO_PMCSR8_PMCSR813                    (0x00002000uL)
+#define GPIO_PMCSR8_PMCSR814                    (0x00004000uL)
+#define GPIO_PMCSR8_PMCSR815                    (0x00008000uL)
+#define GPIO_PMCSR8_PMCSR816                    (0x00010000uL)
+#define GPIO_PMCSR8_PMCSR817                    (0x00020000uL)
+#define GPIO_PMCSR8_PMCSR818                    (0x00040000uL)
+#define GPIO_PMCSR8_PMCSR819                    (0x00080000uL)
+#define GPIO_PMCSR8_PMCSR820                    (0x00100000uL)
+#define GPIO_PMCSR8_PMCSR821                    (0x00200000uL)
+#define GPIO_PMCSR8_PMCSR822                    (0x00400000uL)
+#define GPIO_PMCSR8_PMCSR823                    (0x00800000uL)
+#define GPIO_PMCSR8_PMCSR824                    (0x01000000uL)
+#define GPIO_PMCSR8_PMCSR825                    (0x02000000uL)
+#define GPIO_PMCSR8_PMCSR826                    (0x04000000uL)
+#define GPIO_PMCSR8_PMCSR827                    (0x08000000uL)
+#define GPIO_PMCSR8_PMCSR828                    (0x10000000uL)
+#define GPIO_PMCSR8_PMCSR829                    (0x20000000uL)
+#define GPIO_PMCSR8_PMCSR830                    (0x40000000uL)
+#define GPIO_PMCSR8_PMCSR831                    (0x80000000uL)
+
+#define GPIO_PFCAE8_PFCAE80                     (0x0001u)
+#define GPIO_PFCAE8_PFCAE81                     (0x0002u)
+#define GPIO_PFCAE8_PFCAE82                     (0x0004u)
+#define GPIO_PFCAE8_PFCAE83                     (0x0008u)
+#define GPIO_PFCAE8_PFCAE84                     (0x0010u)
+#define GPIO_PFCAE8_PFCAE85                     (0x0020u)
+#define GPIO_PFCAE8_PFCAE86                     (0x0040u)
+#define GPIO_PFCAE8_PFCAE87                     (0x0080u)
+#define GPIO_PFCAE8_PFCAE88                     (0x0100u)
+#define GPIO_PFCAE8_PFCAE89                     (0x0200u)
+#define GPIO_PFCAE8_PFCAE810                    (0x0400u)
+#define GPIO_PFCAE8_PFCAE811                    (0x0800u)
+#define GPIO_PFCAE8_PFCAE812                    (0x1000u)
+#define GPIO_PFCAE8_PFCAE813                    (0x2000u)
+#define GPIO_PFCAE8_PFCAE814                    (0x4000u)
+#define GPIO_PFCAE8_PFCAE815                    (0x8000u)
+
+#define GPIO_PIBC8_PIBC80                       (0x0001u)
+#define GPIO_PIBC8_PIBC81                       (0x0002u)
+#define GPIO_PIBC8_PIBC82                       (0x0004u)
+#define GPIO_PIBC8_PIBC83                       (0x0008u)
+#define GPIO_PIBC8_PIBC84                       (0x0010u)
+#define GPIO_PIBC8_PIBC85                       (0x0020u)
+#define GPIO_PIBC8_PIBC86                       (0x0040u)
+#define GPIO_PIBC8_PIBC87                       (0x0080u)
+#define GPIO_PIBC8_PIBC88                       (0x0100u)
+#define GPIO_PIBC8_PIBC89                       (0x0200u)
+#define GPIO_PIBC8_PIBC810                      (0x0400u)
+#define GPIO_PIBC8_PIBC811                      (0x0800u)
+#define GPIO_PIBC8_PIBC812                      (0x1000u)
+#define GPIO_PIBC8_PIBC813                      (0x2000u)
+#define GPIO_PIBC8_PIBC814                      (0x4000u)
+#define GPIO_PIBC8_PIBC815                      (0x8000u)
+
+#define GPIO_PBDC8_PBDC80                       (0x0001u)
+#define GPIO_PBDC8_PBDC81                       (0x0002u)
+#define GPIO_PBDC8_PBDC82                       (0x0004u)
+#define GPIO_PBDC8_PBDC83                       (0x0008u)
+#define GPIO_PBDC8_PBDC84                       (0x0010u)
+#define GPIO_PBDC8_PBDC85                       (0x0020u)
+#define GPIO_PBDC8_PBDC86                       (0x0040u)
+#define GPIO_PBDC8_PBDC87                       (0x0080u)
+#define GPIO_PBDC8_PBDC88                       (0x0100u)
+#define GPIO_PBDC8_PBDC89                       (0x0200u)
+#define GPIO_PBDC8_PBDC810                      (0x0400u)
+#define GPIO_PBDC8_PBDC811                      (0x0800u)
+#define GPIO_PBDC8_PBDC812                      (0x1000u)
+#define GPIO_PBDC8_PBDC813                      (0x2000u)
+#define GPIO_PBDC8_PBDC814                      (0x4000u)
+#define GPIO_PBDC8_PBDC815                      (0x8000u)
+
+#define GPIO_PIPC8_PIPC80                       (0x0001u)
+#define GPIO_PIPC8_PIPC81                       (0x0002u)
+#define GPIO_PIPC8_PIPC82                       (0x0004u)
+#define GPIO_PIPC8_PIPC83                       (0x0008u)
+#define GPIO_PIPC8_PIPC84                       (0x0010u)
+#define GPIO_PIPC8_PIPC85                       (0x0020u)
+#define GPIO_PIPC8_PIPC86                       (0x0040u)
+#define GPIO_PIPC8_PIPC87                       (0x0080u)
+#define GPIO_PIPC8_PIPC88                       (0x0100u)
+#define GPIO_PIPC8_PIPC89                       (0x0200u)
+#define GPIO_PIPC8_PIPC810                      (0x0400u)
+#define GPIO_PIPC8_PIPC811                      (0x0800u)
+#define GPIO_PIPC8_PIPC812                      (0x1000u)
+#define GPIO_PIPC8_PIPC813                      (0x2000u)
+#define GPIO_PIPC8_PIPC814                      (0x4000u)
+#define GPIO_PIPC8_PIPC815                      (0x8000u)
+
+/* ---- P9 ---- */
+#define GPIO_P9_P90                             (0x0001u)
+#define GPIO_P9_P91                             (0x0002u)
+#define GPIO_P9_P92                             (0x0004u)
+#define GPIO_P9_P93                             (0x0008u)
+#define GPIO_P9_P94                             (0x0010u)
+#define GPIO_P9_P95                             (0x0020u)
+#define GPIO_P9_P96                             (0x0040u)
+#define GPIO_P9_P97                             (0x0080u)
+
+#define GPIO_PSR9_PSR90                         (0x00000001uL)
+#define GPIO_PSR9_PSR91                         (0x00000002uL)
+#define GPIO_PSR9_PSR92                         (0x00000004uL)
+#define GPIO_PSR9_PSR93                         (0x00000008uL)
+#define GPIO_PSR9_PSR94                         (0x00000010uL)
+#define GPIO_PSR9_PSR95                         (0x00000020uL)
+#define GPIO_PSR9_PSR96                         (0x00000040uL)
+#define GPIO_PSR9_PSR97                         (0x00000080uL)
+#define GPIO_PSR9_PSR916                        (0x00010000uL)
+#define GPIO_PSR9_PSR917                        (0x00020000uL)
+#define GPIO_PSR9_PSR918                        (0x00040000uL)
+#define GPIO_PSR9_PSR919                        (0x00080000uL)
+#define GPIO_PSR9_PSR920                        (0x00100000uL)
+#define GPIO_PSR9_PSR921                        (0x00200000uL)
+#define GPIO_PSR9_PSR922                        (0x00400000uL)
+#define GPIO_PSR9_PSR923                        (0x00800000uL)
+
+#define GPIO_PPR9_PPR90                         (0x0001u)
+#define GPIO_PPR9_PPR91                         (0x0002u)
+#define GPIO_PPR9_PPR92                         (0x0004u)
+#define GPIO_PPR9_PPR93                         (0x0008u)
+#define GPIO_PPR9_PPR94                         (0x0010u)
+#define GPIO_PPR9_PPR95                         (0x0020u)
+#define GPIO_PPR9_PPR96                         (0x0040u)
+#define GPIO_PPR9_PPR97                         (0x0080u)
+
+#define GPIO_PM9_PM90                           (0x0001u)
+#define GPIO_PM9_PM91                           (0x0002u)
+#define GPIO_PM9_PM92                           (0x0004u)
+#define GPIO_PM9_PM93                           (0x0008u)
+#define GPIO_PM9_PM94                           (0x0010u)
+#define GPIO_PM9_PM95                           (0x0020u)
+#define GPIO_PM9_PM96                           (0x0040u)
+#define GPIO_PM9_PM97                           (0x0080u)
+
+#define GPIO_PMC9_PMC90                         (0x0001u)
+#define GPIO_PMC9_PMC91                         (0x0002u)
+#define GPIO_PMC9_PMC92                         (0x0004u)
+#define GPIO_PMC9_PMC93                         (0x0008u)
+#define GPIO_PMC9_PMC94                         (0x0010u)
+#define GPIO_PMC9_PMC95                         (0x0020u)
+#define GPIO_PMC9_PMC96                         (0x0040u)
+#define GPIO_PMC9_PMC97                         (0x0080u)
+
+#define GPIO_PFC9_PFC90                         (0x0001u)
+#define GPIO_PFC9_PFC91                         (0x0002u)
+#define GPIO_PFC9_PFC92                         (0x0004u)
+#define GPIO_PFC9_PFC93                         (0x0008u)
+#define GPIO_PFC9_PFC94                         (0x0010u)
+#define GPIO_PFC9_PFC95                         (0x0020u)
+#define GPIO_PFC9_PFC96                         (0x0040u)
+#define GPIO_PFC9_PFC97                         (0x0080u)
+
+#define GPIO_PFCE9_PFCE90                       (0x0001u)
+#define GPIO_PFCE9_PFCE91                       (0x0002u)
+#define GPIO_PFCE9_PFCE92                       (0x0004u)
+#define GPIO_PFCE9_PFCE93                       (0x0008u)
+#define GPIO_PFCE9_PFCE94                       (0x0010u)
+#define GPIO_PFCE9_PFCE95                       (0x0020u)
+#define GPIO_PFCE9_PFCE96                       (0x0040u)
+#define GPIO_PFCE9_PFCE97                       (0x0080u)
+
+#define GPIO_PNOT9_PNOT90                       (0x0001u)
+#define GPIO_PNOT9_PNOT91                       (0x0002u)
+#define GPIO_PNOT9_PNOT92                       (0x0004u)
+#define GPIO_PNOT9_PNOT93                       (0x0008u)
+#define GPIO_PNOT9_PNOT94                       (0x0010u)
+#define GPIO_PNOT9_PNOT95                       (0x0020u)
+#define GPIO_PNOT9_PNOT96                       (0x0040u)
+#define GPIO_PNOT9_PNOT97                       (0x0080u)
+
+#define GPIO_PMSR9_PMSR90                       (0x00000001uL)
+#define GPIO_PMSR9_PMSR91                       (0x00000002uL)
+#define GPIO_PMSR9_PMSR92                       (0x00000004uL)
+#define GPIO_PMSR9_PMSR93                       (0x00000008uL)
+#define GPIO_PMSR9_PMSR94                       (0x00000010uL)
+#define GPIO_PMSR9_PMSR95                       (0x00000020uL)
+#define GPIO_PMSR9_PMSR96                       (0x00000040uL)
+#define GPIO_PMSR9_PMSR97                       (0x00000080uL)
+#define GPIO_PMSR9_PMSR916                      (0x00010000uL)
+#define GPIO_PMSR9_PMSR917                      (0x00020000uL)
+#define GPIO_PMSR9_PMSR918                      (0x00040000uL)
+#define GPIO_PMSR9_PMSR919                      (0x00080000uL)
+#define GPIO_PMSR9_PMSR920                      (0x00100000uL)
+#define GPIO_PMSR9_PMSR921                      (0x00200000uL)
+#define GPIO_PMSR9_PMSR922                      (0x00400000uL)
+#define GPIO_PMSR9_PMSR923                      (0x00800000uL)
+
+#define GPIO_PMCSR9_PMCSR90                     (0x00000001uL)
+#define GPIO_PMCSR9_PMCSR91                     (0x00000002uL)
+#define GPIO_PMCSR9_PMCSR92                     (0x00000004uL)
+#define GPIO_PMCSR9_PMCSR93                     (0x00000008uL)
+#define GPIO_PMCSR9_PMCSR94                     (0x00000010uL)
+#define GPIO_PMCSR9_PMCSR95                     (0x00000020uL)
+#define GPIO_PMCSR9_PMCSR96                     (0x00000040uL)
+#define GPIO_PMCSR9_PMCSR97                     (0x00000080uL)
+#define GPIO_PMCSR9_PMCSR916                    (0x00010000uL)
+#define GPIO_PMCSR9_PMCSR917                    (0x00020000uL)
+#define GPIO_PMCSR9_PMCSR918                    (0x00040000uL)
+#define GPIO_PMCSR9_PMCSR919                    (0x00080000uL)
+#define GPIO_PMCSR9_PMCSR920                    (0x00100000uL)
+#define GPIO_PMCSR9_PMCSR921                    (0x00200000uL)
+#define GPIO_PMCSR9_PMCSR922                    (0x00400000uL)
+#define GPIO_PMCSR9_PMCSR923                    (0x00800000uL)
+
+#define GPIO_PFCAE9_PFCAE90                     (0x0001u)
+#define GPIO_PFCAE9_PFCAE91                     (0x0002u)
+#define GPIO_PFCAE9_PFCAE92                     (0x0004u)
+#define GPIO_PFCAE9_PFCAE93                     (0x0008u)
+#define GPIO_PFCAE9_PFCAE94                     (0x0010u)
+#define GPIO_PFCAE9_PFCAE95                     (0x0020u)
+#define GPIO_PFCAE9_PFCAE96                     (0x0040u)
+#define GPIO_PFCAE9_PFCAE97                     (0x0080u)
+
+#define GPIO_PIBC9_PIBC90                       (0x0001u)
+#define GPIO_PIBC9_PIBC91                       (0x0002u)
+#define GPIO_PIBC9_PIBC92                       (0x0004u)
+#define GPIO_PIBC9_PIBC93                       (0x0008u)
+#define GPIO_PIBC9_PIBC94                       (0x0010u)
+#define GPIO_PIBC9_PIBC95                       (0x0020u)
+#define GPIO_PIBC9_PIBC96                       (0x0040u)
+#define GPIO_PIBC9_PIBC97                       (0x0080u)
+
+#define GPIO_PBDC9_PBDC90                       (0x0001u)
+#define GPIO_PBDC9_PBDC91                       (0x0002u)
+#define GPIO_PBDC9_PBDC92                       (0x0004u)
+#define GPIO_PBDC9_PBDC93                       (0x0008u)
+#define GPIO_PBDC9_PBDC94                       (0x0010u)
+#define GPIO_PBDC9_PBDC95                       (0x0020u)
+#define GPIO_PBDC9_PBDC96                       (0x0040u)
+#define GPIO_PBDC9_PBDC97                       (0x0080u)
+
+#define GPIO_PIPC9_PIPC90                       (0x0001u)
+#define GPIO_PIPC9_PIPC91                       (0x0002u)
+#define GPIO_PIPC9_PIPC92                       (0x0004u)
+#define GPIO_PIPC9_PIPC93                       (0x0008u)
+#define GPIO_PIPC9_PIPC94                       (0x0010u)
+#define GPIO_PIPC9_PIPC95                       (0x0020u)
+#define GPIO_PIPC9_PIPC96                       (0x0040u)
+#define GPIO_PIPC9_PIPC97                       (0x0080u)
+
+/* ---- P10 ---- */
+#define GPIO_P10_P100                           (0x0001u)
+#define GPIO_P10_P101                           (0x0002u)
+#define GPIO_P10_P102                           (0x0004u)
+#define GPIO_P10_P103                           (0x0008u)
+#define GPIO_P10_P104                           (0x0010u)
+#define GPIO_P10_P105                           (0x0020u)
+#define GPIO_P10_P106                           (0x0040u)
+#define GPIO_P10_P107                           (0x0080u)
+#define GPIO_P10_P108                           (0x0100u)
+#define GPIO_P10_P109                           (0x0200u)
+#define GPIO_P10_P1010                          (0x0400u)
+#define GPIO_P10_P1011                          (0x0800u)
+#define GPIO_P10_P1012                          (0x1000u)
+#define GPIO_P10_P1013                          (0x2000u)
+#define GPIO_P10_P1014                          (0x4000u)
+#define GPIO_P10_P1015                          (0x8000u)
+
+#define GPIO_PSR10_PSR100                       (0x00000001uL)
+#define GPIO_PSR10_PSR101                       (0x00000002uL)
+#define GPIO_PSR10_PSR102                       (0x00000004uL)
+#define GPIO_PSR10_PSR103                       (0x00000008uL)
+#define GPIO_PSR10_PSR104                       (0x00000010uL)
+#define GPIO_PSR10_PSR105                       (0x00000020uL)
+#define GPIO_PSR10_PSR106                       (0x00000040uL)
+#define GPIO_PSR10_PSR107                       (0x00000080uL)
+#define GPIO_PSR10_PSR108                       (0x00000100uL)
+#define GPIO_PSR10_PSR109                       (0x00000200uL)
+#define GPIO_PSR10_PSR1010                      (0x00000400uL)
+#define GPIO_PSR10_PSR1011                      (0x00000800uL)
+#define GPIO_PSR10_PSR1012                      (0x00001000uL)
+#define GPIO_PSR10_PSR1013                      (0x00002000uL)
+#define GPIO_PSR10_PSR1014                      (0x00004000uL)
+#define GPIO_PSR10_PSR1015                      (0x00008000uL)
+#define GPIO_PSR10_PSR1016                      (0x00010000uL)
+#define GPIO_PSR10_PSR1017                      (0x00020000uL)
+#define GPIO_PSR10_PSR1018                      (0x00040000uL)
+#define GPIO_PSR10_PSR1019                      (0x00080000uL)
+#define GPIO_PSR10_PSR1020                      (0x00100000uL)
+#define GPIO_PSR10_PSR1021                      (0x00200000uL)
+#define GPIO_PSR10_PSR1022                      (0x00400000uL)
+#define GPIO_PSR10_PSR1023                      (0x00800000uL)
+#define GPIO_PSR10_PSR1024                      (0x01000000uL)
+#define GPIO_PSR10_PSR1025                      (0x02000000uL)
+#define GPIO_PSR10_PSR1026                      (0x04000000uL)
+#define GPIO_PSR10_PSR1027                      (0x08000000uL)
+#define GPIO_PSR10_PSR1028                      (0x10000000uL)
+#define GPIO_PSR10_PSR1029                      (0x20000000uL)
+#define GPIO_PSR10_PSR1030                      (0x40000000uL)
+#define GPIO_PSR10_PSR1031                      (0x80000000uL)
+
+#define GPIO_PPR10_PPR100                       (0x0001u)
+#define GPIO_PPR10_PPR101                       (0x0002u)
+#define GPIO_PPR10_PPR102                       (0x0004u)
+#define GPIO_PPR10_PPR103                       (0x0008u)
+#define GPIO_PPR10_PPR104                       (0x0010u)
+#define GPIO_PPR10_PPR105                       (0x0020u)
+#define GPIO_PPR10_PPR106                       (0x0040u)
+#define GPIO_PPR10_PPR107                       (0x0080u)
+#define GPIO_PPR10_PPR108                       (0x0100u)
+#define GPIO_PPR10_PPR109                       (0x0200u)
+#define GPIO_PPR10_PPR1010                      (0x0400u)
+#define GPIO_PPR10_PPR1011                      (0x0800u)
+#define GPIO_PPR10_PPR1012                      (0x1000u)
+#define GPIO_PPR10_PPR1013                      (0x2000u)
+#define GPIO_PPR10_PPR1014                      (0x4000u)
+#define GPIO_PPR10_PPR1015                      (0x8000u)
+
+#define GPIO_PM10_PM100                         (0x0001u)
+#define GPIO_PM10_PM101                         (0x0002u)
+#define GPIO_PM10_PM102                         (0x0004u)
+#define GPIO_PM10_PM103                         (0x0008u)
+#define GPIO_PM10_PM104                         (0x0010u)
+#define GPIO_PM10_PM105                         (0x0020u)
+#define GPIO_PM10_PM106                         (0x0040u)
+#define GPIO_PM10_PM107                         (0x0080u)
+#define GPIO_PM10_PM108                         (0x0100u)
+#define GPIO_PM10_PM109                         (0x0200u)
+#define GPIO_PM10_PM1010                        (0x0400u)
+#define GPIO_PM10_PM1011                        (0x0800u)
+#define GPIO_PM10_PM1012                        (0x1000u)
+#define GPIO_PM10_PM1013                        (0x2000u)
+#define GPIO_PM10_PM1014                        (0x4000u)
+#define GPIO_PM10_PM1015                        (0x8000u)
+
+#define GPIO_PMC10_PMC100                       (0x0001u)
+#define GPIO_PMC10_PMC101                       (0x0002u)
+#define GPIO_PMC10_PMC102                       (0x0004u)
+#define GPIO_PMC10_PMC103                       (0x0008u)
+#define GPIO_PMC10_PMC104                       (0x0010u)
+#define GPIO_PMC10_PMC105                       (0x0020u)
+#define GPIO_PMC10_PMC106                       (0x0040u)
+#define GPIO_PMC10_PMC107                       (0x0080u)
+#define GPIO_PMC10_PMC108                       (0x0100u)
+#define GPIO_PMC10_PMC109                       (0x0200u)
+#define GPIO_PMC10_PMC1010                      (0x0400u)
+#define GPIO_PMC10_PMC1011                      (0x0800u)
+#define GPIO_PMC10_PMC1012                      (0x1000u)
+#define GPIO_PMC10_PMC1013                      (0x2000u)
+#define GPIO_PMC10_PMC1014                      (0x4000u)
+#define GPIO_PMC10_PMC1015                      (0x8000u)
+
+#define GPIO_PFC10_PFC100                       (0x0001u)
+#define GPIO_PFC10_PFC101                       (0x0002u)
+#define GPIO_PFC10_PFC102                       (0x0004u)
+#define GPIO_PFC10_PFC103                       (0x0008u)
+#define GPIO_PFC10_PFC104                       (0x0010u)
+#define GPIO_PFC10_PFC105                       (0x0020u)
+#define GPIO_PFC10_PFC106                       (0x0040u)
+#define GPIO_PFC10_PFC107                       (0x0080u)
+#define GPIO_PFC10_PFC108                       (0x0100u)
+#define GPIO_PFC10_PFC109                       (0x0200u)
+#define GPIO_PFC10_PFC1010                      (0x0400u)
+#define GPIO_PFC10_PFC1011                      (0x0800u)
+#define GPIO_PFC10_PFC1012                      (0x1000u)
+#define GPIO_PFC10_PFC1013                      (0x2000u)
+#define GPIO_PFC10_PFC1014                      (0x4000u)
+#define GPIO_PFC10_PFC1015                      (0x8000u)
+
+#define GPIO_PFCE10_PFCE100                     (0x0001u)
+#define GPIO_PFCE10_PFCE101                     (0x0002u)
+#define GPIO_PFCE10_PFCE102                     (0x0004u)
+#define GPIO_PFCE10_PFCE103                     (0x0008u)
+#define GPIO_PFCE10_PFCE104                     (0x0010u)
+#define GPIO_PFCE10_PFCE105                     (0x0020u)
+#define GPIO_PFCE10_PFCE106                     (0x0040u)
+#define GPIO_PFCE10_PFCE107                     (0x0080u)
+#define GPIO_PFCE10_PFCE108                     (0x0100u)
+#define GPIO_PFCE10_PFCE109                     (0x0200u)
+#define GPIO_PFCE10_PFCE1010                    (0x0400u)
+#define GPIO_PFCE10_PFCE1011                    (0x0800u)
+#define GPIO_PFCE10_PFCE1012                    (0x1000u)
+#define GPIO_PFCE10_PFCE1013                    (0x2000u)
+#define GPIO_PFCE10_PFCE1014                    (0x4000u)
+#define GPIO_PFCE10_PFCE1015                    (0x8000u)
+
+#define GPIO_PNOT10_PNOT100                     (0x0001u)
+#define GPIO_PNOT10_PNOT101                     (0x0002u)
+#define GPIO_PNOT10_PNOT102                     (0x0004u)
+#define GPIO_PNOT10_PNOT103                     (0x0008u)
+#define GPIO_PNOT10_PNOT104                     (0x0010u)
+#define GPIO_PNOT10_PNOT105                     (0x0020u)
+#define GPIO_PNOT10_PNOT106                     (0x0040u)
+#define GPIO_PNOT10_PNOT107                     (0x0080u)
+#define GPIO_PNOT10_PNOT108                     (0x0100u)
+#define GPIO_PNOT10_PNOT109                     (0x0200u)
+#define GPIO_PNOT10_PNOT1010                    (0x0400u)
+#define GPIO_PNOT10_PNOT1011                    (0x0800u)
+#define GPIO_PNOT10_PNOT1012                    (0x1000u)
+#define GPIO_PNOT10_PNOT1013                    (0x2000u)
+#define GPIO_PNOT10_PNOT1014                    (0x4000u)
+#define GPIO_PNOT10_PNOT1015                    (0x8000u)
+
+#define GPIO_PMSR10_PMSR100                     (0x00000001uL)
+#define GPIO_PMSR10_PMSR101                     (0x00000002uL)
+#define GPIO_PMSR10_PMSR102                     (0x00000004uL)
+#define GPIO_PMSR10_PMSR103                     (0x00000008uL)
+#define GPIO_PMSR10_PMSR104                     (0x00000010uL)
+#define GPIO_PMSR10_PMSR105                     (0x00000020uL)
+#define GPIO_PMSR10_PMSR106                     (0x00000040uL)
+#define GPIO_PMSR10_PMSR107                     (0x00000080uL)
+#define GPIO_PMSR10_PMSR108                     (0x00000100uL)
+#define GPIO_PMSR10_PMSR109                     (0x00000200uL)
+#define GPIO_PMSR10_PMSR1010                    (0x00000400uL)
+#define GPIO_PMSR10_PMSR1011                    (0x00000800uL)
+#define GPIO_PMSR10_PMSR1012                    (0x00001000uL)
+#define GPIO_PMSR10_PMSR1013                    (0x00002000uL)
+#define GPIO_PMSR10_PMSR1014                    (0x00004000uL)
+#define GPIO_PMSR10_PMSR1015                    (0x00008000uL)
+#define GPIO_PMSR10_PMSR1016                    (0x00010000uL)
+#define GPIO_PMSR10_PMSR1017                    (0x00020000uL)
+#define GPIO_PMSR10_PMSR1018                    (0x00040000uL)
+#define GPIO_PMSR10_PMSR1019                    (0x00080000uL)
+#define GPIO_PMSR10_PMSR1020                    (0x00100000uL)
+#define GPIO_PMSR10_PMSR1021                    (0x00200000uL)
+#define GPIO_PMSR10_PMSR1022                    (0x00400000uL)
+#define GPIO_PMSR10_PMSR1023                    (0x00800000uL)
+#define GPIO_PMSR10_PMSR1024                    (0x01000000uL)
+#define GPIO_PMSR10_PMSR1025                    (0x02000000uL)
+#define GPIO_PMSR10_PMSR1026                    (0x04000000uL)
+#define GPIO_PMSR10_PMSR1027                    (0x08000000uL)
+#define GPIO_PMSR10_PMSR1028                    (0x10000000uL)
+#define GPIO_PMSR10_PMSR1029                    (0x20000000uL)
+#define GPIO_PMSR10_PMSR1030                    (0x40000000uL)
+#define GPIO_PMSR10_PMSR1031                    (0x80000000uL)
+
+#define GPIO_PMCSR10_PMCSR100                   (0x00000001uL)
+#define GPIO_PMCSR10_PMCSR101                   (0x00000002uL)
+#define GPIO_PMCSR10_PMCSR102                   (0x00000004uL)
+#define GPIO_PMCSR10_PMCSR103                   (0x00000008uL)
+#define GPIO_PMCSR10_PMCSR104                   (0x00000010uL)
+#define GPIO_PMCSR10_PMCSR105                   (0x00000020uL)
+#define GPIO_PMCSR10_PMCSR106                   (0x00000040uL)
+#define GPIO_PMCSR10_PMCSR107                   (0x00000080uL)
+#define GPIO_PMCSR10_PMCSR108                   (0x00000100uL)
+#define GPIO_PMCSR10_PMCSR109                   (0x00000200uL)
+#define GPIO_PMCSR10_PMCSR1010                  (0x00000400uL)
+#define GPIO_PMCSR10_PMCSR1011                  (0x00000800uL)
+#define GPIO_PMCSR10_PMCSR1012                  (0x00001000uL)
+#define GPIO_PMCSR10_PMCSR1013                  (0x00002000uL)
+#define GPIO_PMCSR10_PMCSR1014                  (0x00004000uL)
+#define GPIO_PMCSR10_PMCSR1015                  (0x00008000uL)
+#define GPIO_PMCSR10_PMCSR1016                  (0x00010000uL)
+#define GPIO_PMCSR10_PMCSR1017                  (0x00020000uL)
+#define GPIO_PMCSR10_PMCSR1018                  (0x00040000uL)
+#define GPIO_PMCSR10_PMCSR1019                  (0x00080000uL)
+#define GPIO_PMCSR10_PMCSR1020                  (0x00100000uL)
+#define GPIO_PMCSR10_PMCSR1021                  (0x00200000uL)
+#define GPIO_PMCSR10_PMCSR1022                  (0x00400000uL)
+#define GPIO_PMCSR10_PMCSR1023                  (0x00800000uL)
+#define GPIO_PMCSR10_PMCSR1024                  (0x01000000uL)
+#define GPIO_PMCSR10_PMCSR1025                  (0x02000000uL)
+#define GPIO_PMCSR10_PMCSR1026                  (0x04000000uL)
+#define GPIO_PMCSR10_PMCSR1027                  (0x08000000uL)
+#define GPIO_PMCSR10_PMCSR1028                  (0x10000000uL)
+#define GPIO_PMCSR10_PMCSR1029                  (0x20000000uL)
+#define GPIO_PMCSR10_PMCSR1030                  (0x40000000uL)
+#define GPIO_PMCSR10_PMCSR1031                  (0x80000000uL)
+
+#define GPIO_PFCAE10_PFCAE100                   (0x0001u)
+#define GPIO_PFCAE10_PFCAE101                   (0x0002u)
+#define GPIO_PFCAE10_PFCAE102                   (0x0004u)
+#define GPIO_PFCAE10_PFCAE103                   (0x0008u)
+#define GPIO_PFCAE10_PFCAE104                   (0x0010u)
+#define GPIO_PFCAE10_PFCAE105                   (0x0020u)
+#define GPIO_PFCAE10_PFCAE106                   (0x0040u)
+#define GPIO_PFCAE10_PFCAE107                   (0x0080u)
+#define GPIO_PFCAE10_PFCAE108                   (0x0100u)
+#define GPIO_PFCAE10_PFCAE109                   (0x0200u)
+#define GPIO_PFCAE10_PFCAE1010                  (0x0400u)
+#define GPIO_PFCAE10_PFCAE1011                  (0x0800u)
+#define GPIO_PFCAE10_PFCAE1012                  (0x1000u)
+#define GPIO_PFCAE10_PFCAE1013                  (0x2000u)
+#define GPIO_PFCAE10_PFCAE1014                  (0x4000u)
+#define GPIO_PFCAE10_PFCAE1015                  (0x8000u)
+
+#define GPIO_PIBC10_PIBC100                     (0x0001u)
+#define GPIO_PIBC10_PIBC101                     (0x0002u)
+#define GPIO_PIBC10_PIBC102                     (0x0004u)
+#define GPIO_PIBC10_PIBC103                     (0x0008u)
+#define GPIO_PIBC10_PIBC104                     (0x0010u)
+#define GPIO_PIBC10_PIBC105                     (0x0020u)
+#define GPIO_PIBC10_PIBC106                     (0x0040u)
+#define GPIO_PIBC10_PIBC107                     (0x0080u)
+#define GPIO_PIBC10_PIBC108                     (0x0100u)
+#define GPIO_PIBC10_PIBC109                     (0x0200u)
+#define GPIO_PIBC10_PIBC1010                    (0x0400u)
+#define GPIO_PIBC10_PIBC1011                    (0x0800u)
+#define GPIO_PIBC10_PIBC1012                    (0x1000u)
+#define GPIO_PIBC10_PIBC1013                    (0x2000u)
+#define GPIO_PIBC10_PIBC1014                    (0x4000u)
+#define GPIO_PIBC10_PIBC1015                    (0x8000u)
+
+#define GPIO_PBDC10_PBDC100                     (0x0001u)
+#define GPIO_PBDC10_PBDC101                     (0x0002u)
+#define GPIO_PBDC10_PBDC102                     (0x0004u)
+#define GPIO_PBDC10_PBDC103                     (0x0008u)
+#define GPIO_PBDC10_PBDC104                     (0x0010u)
+#define GPIO_PBDC10_PBDC105                     (0x0020u)
+#define GPIO_PBDC10_PBDC106                     (0x0040u)
+#define GPIO_PBDC10_PBDC107                     (0x0080u)
+#define GPIO_PBDC10_PBDC108                     (0x0100u)
+#define GPIO_PBDC10_PBDC109                     (0x0200u)
+#define GPIO_PBDC10_PBDC1010                    (0x0400u)
+#define GPIO_PBDC10_PBDC1011                    (0x0800u)
+#define GPIO_PBDC10_PBDC1012                    (0x1000u)
+#define GPIO_PBDC10_PBDC1013                    (0x2000u)
+#define GPIO_PBDC10_PBDC1014                    (0x4000u)
+#define GPIO_PBDC10_PBDC1015                    (0x8000u)
+
+#define GPIO_PIPC10_PIPC100                     (0x0001u)
+#define GPIO_PIPC10_PIPC101                     (0x0002u)
+#define GPIO_PIPC10_PIPC102                     (0x0004u)
+#define GPIO_PIPC10_PIPC103                     (0x0008u)
+#define GPIO_PIPC10_PIPC104                     (0x0010u)
+#define GPIO_PIPC10_PIPC105                     (0x0020u)
+#define GPIO_PIPC10_PIPC106                     (0x0040u)
+#define GPIO_PIPC10_PIPC107                     (0x0080u)
+#define GPIO_PIPC10_PIPC108                     (0x0100u)
+#define GPIO_PIPC10_PIPC109                     (0x0200u)
+#define GPIO_PIPC10_PIPC1010                    (0x0400u)
+#define GPIO_PIPC10_PIPC1011                    (0x0800u)
+#define GPIO_PIPC10_PIPC1012                    (0x1000u)
+#define GPIO_PIPC10_PIPC1013                    (0x2000u)
+#define GPIO_PIPC10_PIPC1014                    (0x4000u)
+#define GPIO_PIPC10_PIPC1015                    (0x8000u)
+
+/* ---- P11 ---- */
+#define GPIO_P11_P110                           (0x0001u)
+#define GPIO_P11_P111                           (0x0002u)
+#define GPIO_P11_P112                           (0x0004u)
+#define GPIO_P11_P113                           (0x0008u)
+#define GPIO_P11_P114                           (0x0010u)
+#define GPIO_P11_P115                           (0x0020u)
+#define GPIO_P11_P116                           (0x0040u)
+#define GPIO_P11_P117                           (0x0080u)
+#define GPIO_P11_P118                           (0x0100u)
+#define GPIO_P11_P119                           (0x0200u)
+#define GPIO_P11_P1110                          (0x0400u)
+#define GPIO_P11_P1111                          (0x0800u)
+#define GPIO_P11_P1112                          (0x1000u)
+#define GPIO_P11_P1113                          (0x2000u)
+#define GPIO_P11_P1114                          (0x4000u)
+#define GPIO_P11_P1115                          (0x8000u)
+
+#define GPIO_PSR11_PSR110                       (0x00000001uL)
+#define GPIO_PSR11_PSR111                       (0x00000002uL)
+#define GPIO_PSR11_PSR112                       (0x00000004uL)
+#define GPIO_PSR11_PSR113                       (0x00000008uL)
+#define GPIO_PSR11_PSR114                       (0x00000010uL)
+#define GPIO_PSR11_PSR115                       (0x00000020uL)
+#define GPIO_PSR11_PSR116                       (0x00000040uL)
+#define GPIO_PSR11_PSR117                       (0x00000080uL)
+#define GPIO_PSR11_PSR118                       (0x00000100uL)
+#define GPIO_PSR11_PSR119                       (0x00000200uL)
+#define GPIO_PSR11_PSR1110                      (0x00000400uL)
+#define GPIO_PSR11_PSR1111                      (0x00000800uL)
+#define GPIO_PSR11_PSR1112                      (0x00001000uL)
+#define GPIO_PSR11_PSR1113                      (0x00002000uL)
+#define GPIO_PSR11_PSR1114                      (0x00004000uL)
+#define GPIO_PSR11_PSR1115                      (0x00008000uL)
+#define GPIO_PSR11_PSR1116                      (0x00010000uL)
+#define GPIO_PSR11_PSR1117                      (0x00020000uL)
+#define GPIO_PSR11_PSR1118                      (0x00040000uL)
+#define GPIO_PSR11_PSR1119                      (0x00080000uL)
+#define GPIO_PSR11_PSR1120                      (0x00100000uL)
+#define GPIO_PSR11_PSR1121                      (0x00200000uL)
+#define GPIO_PSR11_PSR1122                      (0x00400000uL)
+#define GPIO_PSR11_PSR1123                      (0x00800000uL)
+#define GPIO_PSR11_PSR1124                      (0x01000000uL)
+#define GPIO_PSR11_PSR1125                      (0x02000000uL)
+#define GPIO_PSR11_PSR1126                      (0x04000000uL)
+#define GPIO_PSR11_PSR1127                      (0x08000000uL)
+#define GPIO_PSR11_PSR1128                      (0x10000000uL)
+#define GPIO_PSR11_PSR1129                      (0x20000000uL)
+#define GPIO_PSR11_PSR1130                      (0x40000000uL)
+#define GPIO_PSR11_PSR1131                      (0x80000000uL)
+
+#define GPIO_PPR11_PPR110                       (0x0001u)
+#define GPIO_PPR11_PPR111                       (0x0002u)
+#define GPIO_PPR11_PPR112                       (0x0004u)
+#define GPIO_PPR11_PPR113                       (0x0008u)
+#define GPIO_PPR11_PPR114                       (0x0010u)
+#define GPIO_PPR11_PPR115                       (0x0020u)
+#define GPIO_PPR11_PPR116                       (0x0040u)
+#define GPIO_PPR11_PPR117                       (0x0080u)
+#define GPIO_PPR11_PPR118                       (0x0100u)
+#define GPIO_PPR11_PPR119                       (0x0200u)
+#define GPIO_PPR11_PPR1110                      (0x0400u)
+#define GPIO_PPR11_PPR1111                      (0x0800u)
+#define GPIO_PPR11_PPR1112                      (0x1000u)
+#define GPIO_PPR11_PPR1113                      (0x2000u)
+#define GPIO_PPR11_PPR1114                      (0x4000u)
+#define GPIO_PPR11_PPR1115                      (0x8000u)
+
+#define GPIO_PM11_PM110                         (0x0001u)
+#define GPIO_PM11_PM111                         (0x0002u)
+#define GPIO_PM11_PM112                         (0x0004u)
+#define GPIO_PM11_PM113                         (0x0008u)
+#define GPIO_PM11_PM114                         (0x0010u)
+#define GPIO_PM11_PM115                         (0x0020u)
+#define GPIO_PM11_PM116                         (0x0040u)
+#define GPIO_PM11_PM117                         (0x0080u)
+#define GPIO_PM11_PM118                         (0x0100u)
+#define GPIO_PM11_PM119                         (0x0200u)
+#define GPIO_PM11_PM1110                        (0x0400u)
+#define GPIO_PM11_PM1111                        (0x0800u)
+#define GPIO_PM11_PM1112                        (0x1000u)
+#define GPIO_PM11_PM1113                        (0x2000u)
+#define GPIO_PM11_PM1114                        (0x4000u)
+#define GPIO_PM11_PM1115                        (0x8000u)
+
+#define GPIO_PMC11_PMC110                       (0x0001u)
+#define GPIO_PMC11_PMC111                       (0x0002u)
+#define GPIO_PMC11_PMC112                       (0x0004u)
+#define GPIO_PMC11_PMC113                       (0x0008u)
+#define GPIO_PMC11_PMC114                       (0x0010u)
+#define GPIO_PMC11_PMC115                       (0x0020u)
+#define GPIO_PMC11_PMC116                       (0x0040u)
+#define GPIO_PMC11_PMC117                       (0x0080u)
+#define GPIO_PMC11_PMC118                       (0x0100u)
+#define GPIO_PMC11_PMC119                       (0x0200u)
+#define GPIO_PMC11_PMC1110                      (0x0400u)
+#define GPIO_PMC11_PMC1111                      (0x0800u)
+#define GPIO_PMC11_PMC1112                      (0x1000u)
+#define GPIO_PMC11_PMC1113                      (0x2000u)
+#define GPIO_PMC11_PMC1114                      (0x4000u)
+#define GPIO_PMC11_PMC1115                      (0x8000u)
+
+#define GPIO_PFC11_PFC110                       (0x0001u)
+#define GPIO_PFC11_PFC111                       (0x0002u)
+#define GPIO_PFC11_PFC112                       (0x0004u)
+#define GPIO_PFC11_PFC113                       (0x0008u)
+#define GPIO_PFC11_PFC114                       (0x0010u)
+#define GPIO_PFC11_PFC115                       (0x0020u)
+#define GPIO_PFC11_PFC116                       (0x0040u)
+#define GPIO_PFC11_PFC117                       (0x0080u)
+#define GPIO_PFC11_PFC118                       (0x0100u)
+#define GPIO_PFC11_PFC119                       (0x0200u)
+#define GPIO_PFC11_PFC1110                      (0x0400u)
+#define GPIO_PFC11_PFC1111                      (0x0800u)
+#define GPIO_PFC11_PFC1112                      (0x1000u)
+#define GPIO_PFC11_PFC1113                      (0x2000u)
+#define GPIO_PFC11_PFC1114                      (0x4000u)
+#define GPIO_PFC11_PFC1115                      (0x8000u)
+
+#define GPIO_PFCE11_PFCE110                     (0x0001u)
+#define GPIO_PFCE11_PFCE111                     (0x0002u)
+#define GPIO_PFCE11_PFCE112                     (0x0004u)
+#define GPIO_PFCE11_PFCE113                     (0x0008u)
+#define GPIO_PFCE11_PFCE114                     (0x0010u)
+#define GPIO_PFCE11_PFCE115                     (0x0020u)
+#define GPIO_PFCE11_PFCE116                     (0x0040u)
+#define GPIO_PFCE11_PFCE117                     (0x0080u)
+#define GPIO_PFCE11_PFCE118                     (0x0100u)
+#define GPIO_PFCE11_PFCE119                     (0x0200u)
+#define GPIO_PFCE11_PFCE1110                    (0x0400u)
+#define GPIO_PFCE11_PFCE1111                    (0x0800u)
+#define GPIO_PFCE11_PFCE1112                    (0x1000u)
+#define GPIO_PFCE11_PFCE1113                    (0x2000u)
+#define GPIO_PFCE11_PFCE1114                    (0x4000u)
+#define GPIO_PFCE11_PFCE1115                    (0x8000u)
+
+#define GPIO_PNOT11_PNOT110                     (0x0001u)
+#define GPIO_PNOT11_PNOT111                     (0x0002u)
+#define GPIO_PNOT11_PNOT112                     (0x0004u)
+#define GPIO_PNOT11_PNOT113                     (0x0008u)
+#define GPIO_PNOT11_PNOT114                     (0x0010u)
+#define GPIO_PNOT11_PNOT115                     (0x0020u)
+#define GPIO_PNOT11_PNOT116                     (0x0040u)
+#define GPIO_PNOT11_PNOT117                     (0x0080u)
+#define GPIO_PNOT11_PNOT118                     (0x0100u)
+#define GPIO_PNOT11_PNOT119                     (0x0200u)
+#define GPIO_PNOT11_PNOT1110                    (0x0400u)
+#define GPIO_PNOT11_PNOT1111                    (0x0800u)
+#define GPIO_PNOT11_PNOT1112                    (0x1000u)
+#define GPIO_PNOT11_PNOT1113                    (0x2000u)
+#define GPIO_PNOT11_PNOT1114                    (0x4000u)
+#define GPIO_PNOT11_PNOT1115                    (0x8000u)
+
+#define GPIO_PMSR11_PMSR110                     (0x00000001uL)
+#define GPIO_PMSR11_PMSR111                     (0x00000002uL)
+#define GPIO_PMSR11_PMSR112                     (0x00000004uL)
+#define GPIO_PMSR11_PMSR113                     (0x00000008uL)
+#define GPIO_PMSR11_PMSR114                     (0x00000010uL)
+#define GPIO_PMSR11_PMSR115                     (0x00000020uL)
+#define GPIO_PMSR11_PMSR116                     (0x00000040uL)
+#define GPIO_PMSR11_PMSR117                     (0x00000080uL)
+#define GPIO_PMSR11_PMSR118                     (0x00000100uL)
+#define GPIO_PMSR11_PMSR119                     (0x00000200uL)
+#define GPIO_PMSR11_PMSR1110                    (0x00000400uL)
+#define GPIO_PMSR11_PMSR1111                    (0x00000800uL)
+#define GPIO_PMSR11_PMSR1112                    (0x00001000uL)
+#define GPIO_PMSR11_PMSR1113                    (0x00002000uL)
+#define GPIO_PMSR11_PMSR1114                    (0x00004000uL)
+#define GPIO_PMSR11_PMSR1115                    (0x00008000uL)
+#define GPIO_PMSR11_PMSR1116                    (0x00010000uL)
+#define GPIO_PMSR11_PMSR1117                    (0x00020000uL)
+#define GPIO_PMSR11_PMSR1118                    (0x00040000uL)
+#define GPIO_PMSR11_PMSR1119                    (0x00080000uL)
+#define GPIO_PMSR11_PMSR1120                    (0x00100000uL)
+#define GPIO_PMSR11_PMSR1121                    (0x00200000uL)
+#define GPIO_PMSR11_PMSR1122                    (0x00400000uL)
+#define GPIO_PMSR11_PMSR1123                    (0x00800000uL)
+#define GPIO_PMSR11_PMSR1124                    (0x01000000uL)
+#define GPIO_PMSR11_PMSR1125                    (0x02000000uL)
+#define GPIO_PMSR11_PMSR1126                    (0x04000000uL)
+#define GPIO_PMSR11_PMSR1127                    (0x08000000uL)
+#define GPIO_PMSR11_PMSR1128                    (0x10000000uL)
+#define GPIO_PMSR11_PMSR1129                    (0x20000000uL)
+#define GPIO_PMSR11_PMSR1130                    (0x40000000uL)
+#define GPIO_PMSR11_PMSR1131                    (0x80000000uL)
+
+#define GPIO_PMCSR11_PMCSR110                   (0x00000001uL)
+#define GPIO_PMCSR11_PMCSR111                   (0x00000002uL)
+#define GPIO_PMCSR11_PMCSR112                   (0x00000004uL)
+#define GPIO_PMCSR11_PMCSR113                   (0x00000008uL)
+#define GPIO_PMCSR11_PMCSR114                   (0x00000010uL)
+#define GPIO_PMCSR11_PMCSR115                   (0x00000020uL)
+#define GPIO_PMCSR11_PMCSR116                   (0x00000040uL)
+#define GPIO_PMCSR11_PMCSR117                   (0x00000080uL)
+#define GPIO_PMCSR11_PMCSR118                   (0x00000100uL)
+#define GPIO_PMCSR11_PMCSR119                   (0x00000200uL)
+#define GPIO_PMCSR11_PMCSR1110                  (0x00000400uL)
+#define GPIO_PMCSR11_PMCSR1111                  (0x00000800uL)
+#define GPIO_PMCSR11_PMCSR1112                  (0x00001000uL)
+#define GPIO_PMCSR11_PMCSR1113                  (0x00002000uL)
+#define GPIO_PMCSR11_PMCSR1114                  (0x00004000uL)
+#define GPIO_PMCSR11_PMCSR1115                  (0x00008000uL)
+#define GPIO_PMCSR11_PMCSR1116                  (0x00010000uL)
+#define GPIO_PMCSR11_PMCSR1117                  (0x00020000uL)
+#define GPIO_PMCSR11_PMCSR1118                  (0x00040000uL)
+#define GPIO_PMCSR11_PMCSR1119                  (0x00080000uL)
+#define GPIO_PMCSR11_PMCSR1120                  (0x00100000uL)
+#define GPIO_PMCSR11_PMCSR1121                  (0x00200000uL)
+#define GPIO_PMCSR11_PMCSR1122                  (0x00400000uL)
+#define GPIO_PMCSR11_PMCSR1123                  (0x00800000uL)
+#define GPIO_PMCSR11_PMCSR1124                  (0x01000000uL)
+#define GPIO_PMCSR11_PMCSR1125                  (0x02000000uL)
+#define GPIO_PMCSR11_PMCSR1126                  (0x04000000uL)
+#define GPIO_PMCSR11_PMCSR1127                  (0x08000000uL)
+#define GPIO_PMCSR11_PMCSR1128                  (0x10000000uL)
+#define GPIO_PMCSR11_PMCSR1129                  (0x20000000uL)
+#define GPIO_PMCSR11_PMCSR1130                  (0x40000000uL)
+#define GPIO_PMCSR11_PMCSR1131                  (0x80000000uL)
+
+#define GPIO_PFCAE11_PFCAE110                   (0x0001u)
+#define GPIO_PFCAE11_PFCAE111                   (0x0002u)
+#define GPIO_PFCAE11_PFCAE112                   (0x0004u)
+#define GPIO_PFCAE11_PFCAE113                   (0x0008u)
+#define GPIO_PFCAE11_PFCAE114                   (0x0010u)
+#define GPIO_PFCAE11_PFCAE115                   (0x0020u)
+#define GPIO_PFCAE11_PFCAE116                   (0x0040u)
+#define GPIO_PFCAE11_PFCAE117                   (0x0080u)
+#define GPIO_PFCAE11_PFCAE118                   (0x0100u)
+#define GPIO_PFCAE11_PFCAE119                   (0x0200u)
+#define GPIO_PFCAE11_PFCAE1110                  (0x0400u)
+#define GPIO_PFCAE11_PFCAE1111                  (0x0800u)
+#define GPIO_PFCAE11_PFCAE1112                  (0x1000u)
+#define GPIO_PFCAE11_PFCAE1113                  (0x2000u)
+#define GPIO_PFCAE11_PFCAE1114                  (0x4000u)
+#define GPIO_PFCAE11_PFCAE1115                  (0x8000u)
+
+#define GPIO_PIBC11_PIBC110                     (0x0001u)
+#define GPIO_PIBC11_PIBC111                     (0x0002u)
+#define GPIO_PIBC11_PIBC112                     (0x0004u)
+#define GPIO_PIBC11_PIBC113                     (0x0008u)
+#define GPIO_PIBC11_PIBC114                     (0x0010u)
+#define GPIO_PIBC11_PIBC115                     (0x0020u)
+#define GPIO_PIBC11_PIBC116                     (0x0040u)
+#define GPIO_PIBC11_PIBC117                     (0x0080u)
+#define GPIO_PIBC11_PIBC118                     (0x0100u)
+#define GPIO_PIBC11_PIBC119                     (0x0200u)
+#define GPIO_PIBC11_PIBC1110                    (0x0400u)
+#define GPIO_PIBC11_PIBC1111                    (0x0800u)
+#define GPIO_PIBC11_PIBC1112                    (0x1000u)
+#define GPIO_PIBC11_PIBC1113                    (0x2000u)
+#define GPIO_PIBC11_PIBC1114                    (0x4000u)
+#define GPIO_PIBC11_PIBC1115                    (0x8000u)
+
+#define GPIO_PBDC11_PBDC110                     (0x0001u)
+#define GPIO_PBDC11_PBDC111                     (0x0002u)
+#define GPIO_PBDC11_PBDC112                     (0x0004u)
+#define GPIO_PBDC11_PBDC113                     (0x0008u)
+#define GPIO_PBDC11_PBDC114                     (0x0010u)
+#define GPIO_PBDC11_PBDC115                     (0x0020u)
+#define GPIO_PBDC11_PBDC116                     (0x0040u)
+#define GPIO_PBDC11_PBDC117                     (0x0080u)
+#define GPIO_PBDC11_PBDC118                     (0x0100u)
+#define GPIO_PBDC11_PBDC119                     (0x0200u)
+#define GPIO_PBDC11_PBDC1110                    (0x0400u)
+#define GPIO_PBDC11_PBDC1111                    (0x0800u)
+#define GPIO_PBDC11_PBDC1112                    (0x1000u)
+#define GPIO_PBDC11_PBDC1113                    (0x2000u)
+#define GPIO_PBDC11_PBDC1114                    (0x4000u)
+#define GPIO_PBDC11_PBDC1115                    (0x8000u)
+
+#define GPIO_PIPC11_PIPC110                     (0x0001u)
+#define GPIO_PIPC11_PIPC111                     (0x0002u)
+#define GPIO_PIPC11_PIPC112                     (0x0004u)
+#define GPIO_PIPC11_PIPC113                     (0x0008u)
+#define GPIO_PIPC11_PIPC114                     (0x0010u)
+#define GPIO_PIPC11_PIPC115                     (0x0020u)
+#define GPIO_PIPC11_PIPC116                     (0x0040u)
+#define GPIO_PIPC11_PIPC117                     (0x0080u)
+#define GPIO_PIPC11_PIPC118                     (0x0100u)
+#define GPIO_PIPC11_PIPC119                     (0x0200u)
+#define GPIO_PIPC11_PIPC1110                    (0x0400u)
+#define GPIO_PIPC11_PIPC1111                    (0x0800u)
+#define GPIO_PIPC11_PIPC1112                    (0x1000u)
+#define GPIO_PIPC11_PIPC1113                    (0x2000u)
+#define GPIO_PIPC11_PIPC1114                    (0x4000u)
+#define GPIO_PIPC11_PIPC1115                    (0x8000u)
+
+
+/* ==== Shift values for IO registers ==== */
+/* ---- P0 ---- */
+#define GPIO_PPR0_PPR00_SHIFT                   (0u)
+#define GPIO_PPR0_PPR01_SHIFT                   (1u)
+#define GPIO_PPR0_PPR02_SHIFT                   (2u)
+#define GPIO_PPR0_PPR03_SHIFT                   (3u)
+#define GPIO_PPR0_PPR04_SHIFT                   (4u)
+#define GPIO_PPR0_PPR05_SHIFT                   (5u)
+
+#define GPIO_PMC0_PMC04_SHIFT                   (4u)
+#define GPIO_PMC0_PMC05_SHIFT                   (5u)
+
+#define GPIO_PMCSR0_PMCSR04_SHIFT               (4u)
+#define GPIO_PMCSR0_PMCSR05_SHIFT               (5u)
+
+#define GPIO_PIBC0_PIBC00_SHIFT                 (0u)
+#define GPIO_PIBC0_PIBC01_SHIFT                 (1u)
+#define GPIO_PIBC0_PIBC02_SHIFT                 (2u)
+#define GPIO_PIBC0_PIBC03_SHIFT                 (3u)
+#define GPIO_PIBC0_PIBC04_SHIFT                 (4u)
+#define GPIO_PIBC0_PIBC05_SHIFT                 (5u)
+
+/* ---- P1 ---- */
+#define GPIO_P1_P10_SHIFT                       (0u)
+#define GPIO_P1_P11_SHIFT                       (1u)
+#define GPIO_P1_P12_SHIFT                       (2u)
+#define GPIO_P1_P13_SHIFT                       (3u)
+#define GPIO_P1_P14_SHIFT                       (4u)
+#define GPIO_P1_P15_SHIFT                       (5u)
+#define GPIO_P1_P16_SHIFT                       (6u)
+#define GPIO_P1_P17_SHIFT                       (7u)
+
+#define GPIO_PSR1_PSR10_SHIFT                   (0u)
+#define GPIO_PSR1_PSR11_SHIFT                   (1u)
+#define GPIO_PSR1_PSR12_SHIFT                   (2u)
+#define GPIO_PSR1_PSR13_SHIFT                   (3u)
+#define GPIO_PSR1_PSR14_SHIFT                   (4u)
+#define GPIO_PSR1_PSR15_SHIFT                   (5u)
+#define GPIO_PSR1_PSR16_SHIFT                   (6u)
+#define GPIO_PSR1_PSR17_SHIFT                   (7u)
+#define GPIO_PSR1_PSR116_SHIFT                  (16u)
+#define GPIO_PSR1_PSR117_SHIFT                  (17u)
+#define GPIO_PSR1_PSR118_SHIFT                  (18u)
+#define GPIO_PSR1_PSR119_SHIFT                  (19u)
+#define GPIO_PSR1_PSR120_SHIFT                  (20u)
+#define GPIO_PSR1_PSR121_SHIFT                  (21u)
+#define GPIO_PSR1_PSR122_SHIFT                  (22u)
+#define GPIO_PSR1_PSR123_SHIFT                  (23u)
+
+#define GPIO_PPR1_PPR10_SHIFT                   (0u)
+#define GPIO_PPR1_PPR11_SHIFT                   (1u)
+#define GPIO_PPR1_PPR12_SHIFT                   (2u)
+#define GPIO_PPR1_PPR13_SHIFT                   (3u)
+#define GPIO_PPR1_PPR14_SHIFT                   (4u)
+#define GPIO_PPR1_PPR15_SHIFT                   (5u)
+#define GPIO_PPR1_PPR16_SHIFT                   (6u)
+#define GPIO_PPR1_PPR17_SHIFT                   (7u)
+#define GPIO_PPR1_PPR18_SHIFT                   (8u)
+#define GPIO_PPR1_PPR19_SHIFT                   (9u)
+#define GPIO_PPR1_PPR110_SHIFT                  (10u)
+#define GPIO_PPR1_PPR111_SHIFT                  (11u)
+#define GPIO_PPR1_PPR112_SHIFT                  (12u)
+#define GPIO_PPR1_PPR113_SHIFT                  (13u)
+#define GPIO_PPR1_PPR114_SHIFT                  (14u)
+#define GPIO_PPR1_PPR115_SHIFT                  (15u)
+
+#define GPIO_PM1_PM10_SHIFT                     (0u)
+#define GPIO_PM1_PM11_SHIFT                     (1u)
+#define GPIO_PM1_PM12_SHIFT                     (2u)
+#define GPIO_PM1_PM13_SHIFT                     (3u)
+#define GPIO_PM1_PM14_SHIFT                     (4u)
+#define GPIO_PM1_PM15_SHIFT                     (5u)
+#define GPIO_PM1_PM16_SHIFT                     (6u)
+#define GPIO_PM1_PM17_SHIFT                     (7u)
+
+#define GPIO_PMC1_PMC10_SHIFT                   (0u)
+#define GPIO_PMC1_PMC11_SHIFT                   (1u)
+#define GPIO_PMC1_PMC12_SHIFT                   (2u)
+#define GPIO_PMC1_PMC13_SHIFT                   (3u)
+#define GPIO_PMC1_PMC14_SHIFT                   (4u)
+#define GPIO_PMC1_PMC15_SHIFT                   (5u)
+#define GPIO_PMC1_PMC16_SHIFT                   (6u)
+#define GPIO_PMC1_PMC17_SHIFT                   (7u)
+#define GPIO_PMC1_PMC18_SHIFT                   (8u)
+#define GPIO_PMC1_PMC19_SHIFT                   (9u)
+#define GPIO_PMC1_PMC110_SHIFT                  (10u)
+#define GPIO_PMC1_PMC111_SHIFT                  (11u)
+#define GPIO_PMC1_PMC112_SHIFT                  (12u)
+#define GPIO_PMC1_PMC113_SHIFT                  (13u)
+#define GPIO_PMC1_PMC114_SHIFT                  (14u)
+#define GPIO_PMC1_PMC115_SHIFT                  (15u)
+
+#define GPIO_PFC1_PFC10_SHIFT                   (0u)
+#define GPIO_PFC1_PFC11_SHIFT                   (1u)
+#define GPIO_PFC1_PFC12_SHIFT                   (2u)
+#define GPIO_PFC1_PFC13_SHIFT                   (3u)
+#define GPIO_PFC1_PFC14_SHIFT                   (4u)
+#define GPIO_PFC1_PFC15_SHIFT                   (5u)
+#define GPIO_PFC1_PFC16_SHIFT                   (6u)
+#define GPIO_PFC1_PFC17_SHIFT                   (7u)
+#define GPIO_PFC1_PFC18_SHIFT                   (8u)
+#define GPIO_PFC1_PFC19_SHIFT                   (9u)
+#define GPIO_PFC1_PFC110_SHIFT                  (10u)
+#define GPIO_PFC1_PFC111_SHIFT                  (11u)
+#define GPIO_PFC1_PFC112_SHIFT                  (12u)
+#define GPIO_PFC1_PFC113_SHIFT                  (13u)
+#define GPIO_PFC1_PFC114_SHIFT                  (14u)
+#define GPIO_PFC1_PFC115_SHIFT                  (15u)
+
+#define GPIO_PFCE1_PFCE10_SHIFT                 (0u)
+#define GPIO_PFCE1_PFCE11_SHIFT                 (1u)
+#define GPIO_PFCE1_PFCE12_SHIFT                 (2u)
+#define GPIO_PFCE1_PFCE13_SHIFT                 (3u)
+#define GPIO_PFCE1_PFCE14_SHIFT                 (4u)
+#define GPIO_PFCE1_PFCE15_SHIFT                 (5u)
+#define GPIO_PFCE1_PFCE16_SHIFT                 (6u)
+#define GPIO_PFCE1_PFCE17_SHIFT                 (7u)
+#define GPIO_PFCE1_PFCE18_SHIFT                 (8u)
+#define GPIO_PFCE1_PFCE19_SHIFT                 (9u)
+#define GPIO_PFCE1_PFCE110_SHIFT                (10u)
+#define GPIO_PFCE1_PFCE111_SHIFT                (11u)
+#define GPIO_PFCE1_PFCE112_SHIFT                (12u)
+#define GPIO_PFCE1_PFCE113_SHIFT                (13u)
+#define GPIO_PFCE1_PFCE114_SHIFT                (14u)
+#define GPIO_PFCE1_PFCE115_SHIFT                (15u)
+
+#define GPIO_PNOT1_PNOT10_SHIFT                 (0u)
+#define GPIO_PNOT1_PNOT11_SHIFT                 (1u)
+#define GPIO_PNOT1_PNOT12_SHIFT                 (2u)
+#define GPIO_PNOT1_PNOT13_SHIFT                 (3u)
+#define GPIO_PNOT1_PNOT14_SHIFT                 (4u)
+#define GPIO_PNOT1_PNOT15_SHIFT                 (5u)
+#define GPIO_PNOT1_PNOT16_SHIFT                 (6u)
+#define GPIO_PNOT1_PNOT17_SHIFT                 (7u)
+
+#define GPIO_PMSR1_PMSR10_SHIFT                 (0u)
+#define GPIO_PMSR1_PMSR11_SHIFT                 (1u)
+#define GPIO_PMSR1_PMSR12_SHIFT                 (2u)
+#define GPIO_PMSR1_PMSR13_SHIFT                 (3u)
+#define GPIO_PMSR1_PMSR14_SHIFT                 (4u)
+#define GPIO_PMSR1_PMSR15_SHIFT                 (5u)
+#define GPIO_PMSR1_PMSR16_SHIFT                 (6u)
+#define GPIO_PMSR1_PMSR17_SHIFT                 (7u)
+#define GPIO_PMSR1_PMSR116_SHIFT                (16u)
+#define GPIO_PMSR1_PMSR117_SHIFT                (17u)
+#define GPIO_PMSR1_PMSR118_SHIFT                (18u)
+#define GPIO_PMSR1_PMSR119_SHIFT                (19u)
+#define GPIO_PMSR1_PMSR120_SHIFT                (20u)
+#define GPIO_PMSR1_PMSR121_SHIFT                (21u)
+#define GPIO_PMSR1_PMSR122_SHIFT                (22u)
+#define GPIO_PMSR1_PMSR123_SHIFT                (23u)
+
+#define GPIO_PMCSR1_PMCSR10_SHIFT               (0u)
+#define GPIO_PMCSR1_PMCSR11_SHIFT               (1u)
+#define GPIO_PMCSR1_PMCSR12_SHIFT               (2u)
+#define GPIO_PMCSR1_PMCSR13_SHIFT               (3u)
+#define GPIO_PMCSR1_PMCSR14_SHIFT               (4u)
+#define GPIO_PMCSR1_PMCSR15_SHIFT               (5u)
+#define GPIO_PMCSR1_PMCSR16_SHIFT               (6u)
+#define GPIO_PMCSR1_PMCSR17_SHIFT               (7u)
+#define GPIO_PMCSR1_PMCSR116_SHIFT              (16u)
+#define GPIO_PMCSR1_PMCSR117_SHIFT              (17u)
+#define GPIO_PMCSR1_PMCSR118_SHIFT              (18u)
+#define GPIO_PMCSR1_PMCSR119_SHIFT              (19u)
+#define GPIO_PMCSR1_PMCSR120_SHIFT              (20u)
+#define GPIO_PMCSR1_PMCSR121_SHIFT              (21u)
+#define GPIO_PMCSR1_PMCSR122_SHIFT              (22u)
+#define GPIO_PMCSR1_PMCSR123_SHIFT              (23u)
+
+#define GPIO_PFCAE1_PFCAE10_SHIFT               (0u)
+#define GPIO_PFCAE1_PFCAE11_SHIFT               (1u)
+#define GPIO_PFCAE1_PFCAE12_SHIFT               (2u)
+#define GPIO_PFCAE1_PFCAE13_SHIFT               (3u)
+#define GPIO_PFCAE1_PFCAE14_SHIFT               (4u)
+#define GPIO_PFCAE1_PFCAE15_SHIFT               (5u)
+#define GPIO_PFCAE1_PFCAE16_SHIFT               (6u)
+#define GPIO_PFCAE1_PFCAE17_SHIFT               (7u)
+#define GPIO_PFCAE1_PFCAE18_SHIFT               (8u)
+#define GPIO_PFCAE1_PFCAE19_SHIFT               (9u)
+#define GPIO_PFCAE1_PFCAE110_SHIFT              (10u)
+#define GPIO_PFCAE1_PFCAE111_SHIFT              (11u)
+#define GPIO_PFCAE1_PFCAE112_SHIFT              (12u)
+#define GPIO_PFCAE1_PFCAE113_SHIFT              (13u)
+#define GPIO_PFCAE1_PFCAE114_SHIFT              (14u)
+#define GPIO_PFCAE1_PFCAE115_SHIFT              (15u)
+
+#define GPIO_PIBC1_PIBC10_SHIFT                 (0u)
+#define GPIO_PIBC1_PIBC11_SHIFT                 (1u)
+#define GPIO_PIBC1_PIBC12_SHIFT                 (2u)
+#define GPIO_PIBC1_PIBC13_SHIFT                 (3u)
+#define GPIO_PIBC1_PIBC14_SHIFT                 (4u)
+#define GPIO_PIBC1_PIBC15_SHIFT                 (5u)
+#define GPIO_PIBC1_PIBC16_SHIFT                 (6u)
+#define GPIO_PIBC1_PIBC17_SHIFT                 (7u)
+#define GPIO_PIBC1_PIBC18_SHIFT                 (8u)
+#define GPIO_PIBC1_PIBC19_SHIFT                 (9u)
+#define GPIO_PIBC1_PIBC110_SHIFT                (10u)
+#define GPIO_PIBC1_PIBC111_SHIFT                (11u)
+#define GPIO_PIBC1_PIBC112_SHIFT                (12u)
+#define GPIO_PIBC1_PIBC113_SHIFT                (13u)
+#define GPIO_PIBC1_PIBC114_SHIFT                (14u)
+#define GPIO_PIBC1_PIBC115_SHIFT                (15u)
+
+#define GPIO_PBDC1_PBDC10_SHIFT                 (0u)
+#define GPIO_PBDC1_PBDC11_SHIFT                 (1u)
+#define GPIO_PBDC1_PBDC12_SHIFT                 (2u)
+#define GPIO_PBDC1_PBDC13_SHIFT                 (3u)
+#define GPIO_PBDC1_PBDC14_SHIFT                 (4u)
+#define GPIO_PBDC1_PBDC15_SHIFT                 (5u)
+#define GPIO_PBDC1_PBDC16_SHIFT                 (6u)
+#define GPIO_PBDC1_PBDC17_SHIFT                 (7u)
+#define GPIO_PBDC1_PBDC18_SHIFT                 (8u)
+#define GPIO_PBDC1_PBDC19_SHIFT                 (9u)
+#define GPIO_PBDC1_PBDC110_SHIFT                (10u)
+#define GPIO_PBDC1_PBDC111_SHIFT                (11u)
+#define GPIO_PBDC1_PBDC112_SHIFT                (12u)
+#define GPIO_PBDC1_PBDC113_SHIFT                (13u)
+#define GPIO_PBDC1_PBDC114_SHIFT                (14u)
+#define GPIO_PBDC1_PBDC115_SHIFT                (15u)
+
+#define GPIO_PIPC1_PIPC10_SHIFT                 (0u)
+#define GPIO_PIPC1_PIPC11_SHIFT                 (1u)
+#define GPIO_PIPC1_PIPC12_SHIFT                 (2u)
+#define GPIO_PIPC1_PIPC13_SHIFT                 (3u)
+#define GPIO_PIPC1_PIPC14_SHIFT                 (4u)
+#define GPIO_PIPC1_PIPC15_SHIFT                 (5u)
+#define GPIO_PIPC1_PIPC16_SHIFT                 (6u)
+#define GPIO_PIPC1_PIPC17_SHIFT                 (7u)
+
+/* ---- P2 ---- */
+#define GPIO_P2_P20_SHIFT                       (0u)
+#define GPIO_P2_P21_SHIFT                       (1u)
+#define GPIO_P2_P22_SHIFT                       (2u)
+#define GPIO_P2_P23_SHIFT                       (3u)
+#define GPIO_P2_P24_SHIFT                       (4u)
+#define GPIO_P2_P25_SHIFT                       (5u)
+#define GPIO_P2_P26_SHIFT                       (6u)
+#define GPIO_P2_P27_SHIFT                       (7u)
+#define GPIO_P2_P28_SHIFT                       (8u)
+#define GPIO_P2_P29_SHIFT                       (9u)
+#define GPIO_P2_P210_SHIFT                      (10u)
+#define GPIO_P2_P211_SHIFT                      (11u)
+#define GPIO_P2_P212_SHIFT                      (12u)
+#define GPIO_P2_P213_SHIFT                      (13u)
+#define GPIO_P2_P214_SHIFT                      (14u)
+#define GPIO_P2_P215_SHIFT                      (15u)
+
+#define GPIO_PSR2_PSR20_SHIFT                   (0u)
+#define GPIO_PSR2_PSR21_SHIFT                   (1u)
+#define GPIO_PSR2_PSR22_SHIFT                   (2u)
+#define GPIO_PSR2_PSR23_SHIFT                   (3u)
+#define GPIO_PSR2_PSR24_SHIFT                   (4u)
+#define GPIO_PSR2_PSR25_SHIFT                   (5u)
+#define GPIO_PSR2_PSR26_SHIFT                   (6u)
+#define GPIO_PSR2_PSR27_SHIFT                   (7u)
+#define GPIO_PSR2_PSR28_SHIFT                   (8u)
+#define GPIO_PSR2_PSR29_SHIFT                   (9u)
+#define GPIO_PSR2_PSR210_SHIFT                  (10u)
+#define GPIO_PSR2_PSR211_SHIFT                  (11u)
+#define GPIO_PSR2_PSR212_SHIFT                  (12u)
+#define GPIO_PSR2_PSR213_SHIFT                  (13u)
+#define GPIO_PSR2_PSR214_SHIFT                  (14u)
+#define GPIO_PSR2_PSR215_SHIFT                  (15u)
+#define GPIO_PSR2_PSR216_SHIFT                  (16u)
+#define GPIO_PSR2_PSR217_SHIFT                  (17u)
+#define GPIO_PSR2_PSR218_SHIFT                  (18u)
+#define GPIO_PSR2_PSR219_SHIFT                  (19u)
+#define GPIO_PSR2_PSR220_SHIFT                  (20u)
+#define GPIO_PSR2_PSR221_SHIFT                  (21u)
+#define GPIO_PSR2_PSR222_SHIFT                  (22u)
+#define GPIO_PSR2_PSR223_SHIFT                  (23u)
+#define GPIO_PSR2_PSR224_SHIFT                  (24u)
+#define GPIO_PSR2_PSR225_SHIFT                  (25u)
+#define GPIO_PSR2_PSR226_SHIFT                  (26u)
+#define GPIO_PSR2_PSR227_SHIFT                  (27u)
+#define GPIO_PSR2_PSR228_SHIFT                  (28u)
+#define GPIO_PSR2_PSR229_SHIFT                  (29u)
+#define GPIO_PSR2_PSR230_SHIFT                  (30u)
+#define GPIO_PSR2_PSR231_SHIFT                  (31u)
+
+#define GPIO_PPR2_PPR20_SHIFT                   (0u)
+#define GPIO_PPR2_PPR21_SHIFT                   (1u)
+#define GPIO_PPR2_PPR22_SHIFT                   (2u)
+#define GPIO_PPR2_PPR23_SHIFT                   (3u)
+#define GPIO_PPR2_PPR24_SHIFT                   (4u)
+#define GPIO_PPR2_PPR25_SHIFT                   (5u)
+#define GPIO_PPR2_PPR26_SHIFT                   (6u)
+#define GPIO_PPR2_PPR27_SHIFT                   (7u)
+#define GPIO_PPR2_PPR28_SHIFT                   (8u)
+#define GPIO_PPR2_PPR29_SHIFT                   (9u)
+#define GPIO_PPR2_PPR210_SHIFT                  (10u)
+#define GPIO_PPR2_PPR211_SHIFT                  (11u)
+#define GPIO_PPR2_PPR212_SHIFT                  (12u)
+#define GPIO_PPR2_PPR213_SHIFT                  (13u)
+#define GPIO_PPR2_PPR214_SHIFT                  (14u)
+#define GPIO_PPR2_PPR215_SHIFT                  (15u)
+
+#define GPIO_PM2_PM20_SHIFT                     (0u)
+#define GPIO_PM2_PM21_SHIFT                     (1u)
+#define GPIO_PM2_PM22_SHIFT                     (2u)
+#define GPIO_PM2_PM23_SHIFT                     (3u)
+#define GPIO_PM2_PM24_SHIFT                     (4u)
+#define GPIO_PM2_PM25_SHIFT                     (5u)
+#define GPIO_PM2_PM26_SHIFT                     (6u)
+#define GPIO_PM2_PM27_SHIFT                     (7u)
+#define GPIO_PM2_PM28_SHIFT                     (8u)
+#define GPIO_PM2_PM29_SHIFT                     (9u)
+#define GPIO_PM2_PM210_SHIFT                    (10u)
+#define GPIO_PM2_PM211_SHIFT                    (11u)
+#define GPIO_PM2_PM212_SHIFT                    (12u)
+#define GPIO_PM2_PM213_SHIFT                    (13u)
+#define GPIO_PM2_PM214_SHIFT                    (14u)
+#define GPIO_PM2_PM215_SHIFT                    (15u)
+
+#define GPIO_PMC2_PMC20_SHIFT                   (0u)
+#define GPIO_PMC2_PMC21_SHIFT                   (1u)
+#define GPIO_PMC2_PMC22_SHIFT                   (2u)
+#define GPIO_PMC2_PMC23_SHIFT                   (3u)
+#define GPIO_PMC2_PMC24_SHIFT                   (4u)
+#define GPIO_PMC2_PMC25_SHIFT                   (5u)
+#define GPIO_PMC2_PMC26_SHIFT                   (6u)
+#define GPIO_PMC2_PMC27_SHIFT                   (7u)
+#define GPIO_PMC2_PMC28_SHIFT                   (8u)
+#define GPIO_PMC2_PMC29_SHIFT                   (9u)
+#define GPIO_PMC2_PMC210_SHIFT                  (10u)
+#define GPIO_PMC2_PMC211_SHIFT                  (11u)
+#define GPIO_PMC2_PMC212_SHIFT                  (12u)
+#define GPIO_PMC2_PMC213_SHIFT                  (13u)
+#define GPIO_PMC2_PMC214_SHIFT                  (14u)
+#define GPIO_PMC2_PMC215_SHIFT                  (15u)
+
+#define GPIO_PFC2_PFC20_SHIFT                   (0u)
+#define GPIO_PFC2_PFC21_SHIFT                   (1u)
+#define GPIO_PFC2_PFC22_SHIFT                   (2u)
+#define GPIO_PFC2_PFC23_SHIFT                   (3u)
+#define GPIO_PFC2_PFC24_SHIFT                   (4u)
+#define GPIO_PFC2_PFC25_SHIFT                   (5u)
+#define GPIO_PFC2_PFC26_SHIFT                   (6u)
+#define GPIO_PFC2_PFC27_SHIFT                   (7u)
+#define GPIO_PFC2_PFC28_SHIFT                   (8u)
+#define GPIO_PFC2_PFC29_SHIFT                   (9u)
+#define GPIO_PFC2_PFC210_SHIFT                  (10u)
+#define GPIO_PFC2_PFC211_SHIFT                  (11u)
+#define GPIO_PFC2_PFC212_SHIFT                  (12u)
+#define GPIO_PFC2_PFC213_SHIFT                  (13u)
+#define GPIO_PFC2_PFC214_SHIFT                  (14u)
+#define GPIO_PFC2_PFC215_SHIFT                  (15u)
+
+#define GPIO_PFCE2_PFCE20_SHIFT                 (0u)
+#define GPIO_PFCE2_PFCE21_SHIFT                 (1u)
+#define GPIO_PFCE2_PFCE22_SHIFT                 (2u)
+#define GPIO_PFCE2_PFCE23_SHIFT                 (3u)
+#define GPIO_PFCE2_PFCE24_SHIFT                 (4u)
+#define GPIO_PFCE2_PFCE25_SHIFT                 (5u)
+#define GPIO_PFCE2_PFCE26_SHIFT                 (6u)
+#define GPIO_PFCE2_PFCE27_SHIFT                 (7u)
+#define GPIO_PFCE2_PFCE28_SHIFT                 (8u)
+#define GPIO_PFCE2_PFCE29_SHIFT                 (9u)
+#define GPIO_PFCE2_PFCE210_SHIFT                (10u)
+#define GPIO_PFCE2_PFCE211_SHIFT                (11u)
+#define GPIO_PFCE2_PFCE212_SHIFT                (12u)
+#define GPIO_PFCE2_PFCE213_SHIFT                (13u)
+#define GPIO_PFCE2_PFCE214_SHIFT                (14u)
+#define GPIO_PFCE2_PFCE215_SHIFT                (15u)
+
+#define GPIO_PNOT2_PNOT20_SHIFT                 (0u)
+#define GPIO_PNOT2_PNOT21_SHIFT                 (1u)
+#define GPIO_PNOT2_PNOT22_SHIFT                 (2u)
+#define GPIO_PNOT2_PNOT23_SHIFT                 (3u)
+#define GPIO_PNOT2_PNOT24_SHIFT                 (4u)
+#define GPIO_PNOT2_PNOT25_SHIFT                 (5u)
+#define GPIO_PNOT2_PNOT26_SHIFT                 (6u)
+#define GPIO_PNOT2_PNOT27_SHIFT                 (7u)
+#define GPIO_PNOT2_PNOT28_SHIFT                 (8u)
+#define GPIO_PNOT2_PNOT29_SHIFT                 (9u)
+#define GPIO_PNOT2_PNOT210_SHIFT                (10u)
+#define GPIO_PNOT2_PNOT211_SHIFT                (11u)
+#define GPIO_PNOT2_PNOT212_SHIFT                (12u)
+#define GPIO_PNOT2_PNOT213_SHIFT                (13u)
+#define GPIO_PNOT2_PNOT214_SHIFT                (14u)
+#define GPIO_PNOT2_PNOT215_SHIFT                (15u)
+
+#define GPIO_PMSR2_PMSR20_SHIFT                 (0u)
+#define GPIO_PMSR2_PMSR21_SHIFT                 (1u)
+#define GPIO_PMSR2_PMSR22_SHIFT                 (2u)
+#define GPIO_PMSR2_PMSR23_SHIFT                 (3u)
+#define GPIO_PMSR2_PMSR24_SHIFT                 (4u)
+#define GPIO_PMSR2_PMSR25_SHIFT                 (5u)
+#define GPIO_PMSR2_PMSR26_SHIFT                 (6u)
+#define GPIO_PMSR2_PMSR27_SHIFT                 (7u)
+#define GPIO_PMSR2_PMSR28_SHIFT                 (8u)
+#define GPIO_PMSR2_PMSR29_SHIFT                 (9u)
+#define GPIO_PMSR2_PMSR210_SHIFT                (10u)
+#define GPIO_PMSR2_PMSR211_SHIFT                (11u)
+#define GPIO_PMSR2_PMSR212_SHIFT                (12u)
+#define GPIO_PMSR2_PMSR213_SHIFT                (13u)
+#define GPIO_PMSR2_PMSR214_SHIFT                (14u)
+#define GPIO_PMSR2_PMSR215_SHIFT                (15u)
+#define GPIO_PMSR2_PMSR216_SHIFT                (16u)
+#define GPIO_PMSR2_PMSR217_SHIFT                (17u)
+#define GPIO_PMSR2_PMSR218_SHIFT                (18u)
+#define GPIO_PMSR2_PMSR219_SHIFT                (19u)
+#define GPIO_PMSR2_PMSR220_SHIFT                (20u)
+#define GPIO_PMSR2_PMSR221_SHIFT                (21u)
+#define GPIO_PMSR2_PMSR222_SHIFT                (22u)
+#define GPIO_PMSR2_PMSR223_SHIFT                (23u)
+#define GPIO_PMSR2_PMSR224_SHIFT                (24u)
+#define GPIO_PMSR2_PMSR225_SHIFT                (25u)
+#define GPIO_PMSR2_PMSR226_SHIFT                (26u)
+#define GPIO_PMSR2_PMSR227_SHIFT                (27u)
+#define GPIO_PMSR2_PMSR228_SHIFT                (28u)
+#define GPIO_PMSR2_PMSR229_SHIFT                (29u)
+#define GPIO_PMSR2_PMSR230_SHIFT                (30u)
+#define GPIO_PMSR2_PMSR231_SHIFT                (31u)
+
+#define GPIO_PMCSR2_PMCSR20_SHIFT               (0u)
+#define GPIO_PMCSR2_PMCSR21_SHIFT               (1u)
+#define GPIO_PMCSR2_PMCSR22_SHIFT               (2u)
+#define GPIO_PMCSR2_PMCSR23_SHIFT               (3u)
+#define GPIO_PMCSR2_PMCSR24_SHIFT               (4u)
+#define GPIO_PMCSR2_PMCSR25_SHIFT               (5u)
+#define GPIO_PMCSR2_PMCSR26_SHIFT               (6u)
+#define GPIO_PMCSR2_PMCSR27_SHIFT               (7u)
+#define GPIO_PMCSR2_PMCSR28_SHIFT               (8u)
+#define GPIO_PMCSR2_PMCSR29_SHIFT               (9u)
+#define GPIO_PMCSR2_PMCSR210_SHIFT              (10u)
+#define GPIO_PMCSR2_PMCSR211_SHIFT              (11u)
+#define GPIO_PMCSR2_PMCSR212_SHIFT              (12u)
+#define GPIO_PMCSR2_PMCSR213_SHIFT              (13u)
+#define GPIO_PMCSR2_PMCSR214_SHIFT              (14u)
+#define GPIO_PMCSR2_PMCSR215_SHIFT              (15u)
+#define GPIO_PMCSR2_PMCSR216_SHIFT              (16u)
+#define GPIO_PMCSR2_PMCSR217_SHIFT              (17u)
+#define GPIO_PMCSR2_PMCSR218_SHIFT              (18u)
+#define GPIO_PMCSR2_PMCSR219_SHIFT              (19u)
+#define GPIO_PMCSR2_PMCSR220_SHIFT              (20u)
+#define GPIO_PMCSR2_PMCSR221_SHIFT              (21u)
+#define GPIO_PMCSR2_PMCSR222_SHIFT              (22u)
+#define GPIO_PMCSR2_PMCSR223_SHIFT              (23u)
+#define GPIO_PMCSR2_PMCSR224_SHIFT              (24u)
+#define GPIO_PMCSR2_PMCSR225_SHIFT              (25u)
+#define GPIO_PMCSR2_PMCSR226_SHIFT              (26u)
+#define GPIO_PMCSR2_PMCSR227_SHIFT              (27u)
+#define GPIO_PMCSR2_PMCSR228_SHIFT              (28u)
+#define GPIO_PMCSR2_PMCSR229_SHIFT              (29u)
+#define GPIO_PMCSR2_PMCSR230_SHIFT              (30u)
+#define GPIO_PMCSR2_PMCSR231_SHIFT              (31u)
+
+#define GPIO_PFCAE2_PFCAE20_SHIFT               (0u)
+#define GPIO_PFCAE2_PFCAE21_SHIFT               (1u)
+#define GPIO_PFCAE2_PFCAE22_SHIFT               (2u)
+#define GPIO_PFCAE2_PFCAE23_SHIFT               (3u)
+#define GPIO_PFCAE2_PFCAE24_SHIFT               (4u)
+#define GPIO_PFCAE2_PFCAE25_SHIFT               (5u)
+#define GPIO_PFCAE2_PFCAE26_SHIFT               (6u)
+#define GPIO_PFCAE2_PFCAE27_SHIFT               (7u)
+#define GPIO_PFCAE2_PFCAE28_SHIFT               (8u)
+#define GPIO_PFCAE2_PFCAE29_SHIFT               (9u)
+#define GPIO_PFCAE2_PFCAE210_SHIFT              (10u)
+#define GPIO_PFCAE2_PFCAE211_SHIFT              (11u)
+#define GPIO_PFCAE2_PFCAE212_SHIFT              (12u)
+#define GPIO_PFCAE2_PFCAE213_SHIFT              (13u)
+#define GPIO_PFCAE2_PFCAE214_SHIFT              (14u)
+#define GPIO_PFCAE2_PFCAE215_SHIFT              (15u)
+
+#define GPIO_PIBC2_PIBC20_SHIFT                 (0u)
+#define GPIO_PIBC2_PIBC21_SHIFT                 (1u)
+#define GPIO_PIBC2_PIBC22_SHIFT                 (2u)
+#define GPIO_PIBC2_PIBC23_SHIFT                 (3u)
+#define GPIO_PIBC2_PIBC24_SHIFT                 (4u)
+#define GPIO_PIBC2_PIBC25_SHIFT                 (5u)
+#define GPIO_PIBC2_PIBC26_SHIFT                 (6u)
+#define GPIO_PIBC2_PIBC27_SHIFT                 (7u)
+#define GPIO_PIBC2_PIBC28_SHIFT                 (8u)
+#define GPIO_PIBC2_PIBC29_SHIFT                 (9u)
+#define GPIO_PIBC2_PIBC210_SHIFT                (10u)
+#define GPIO_PIBC2_PIBC211_SHIFT                (11u)
+#define GPIO_PIBC2_PIBC212_SHIFT                (12u)
+#define GPIO_PIBC2_PIBC213_SHIFT                (13u)
+#define GPIO_PIBC2_PIBC214_SHIFT                (14u)
+#define GPIO_PIBC2_PIBC215_SHIFT                (15u)
+
+#define GPIO_PBDC2_PBDC20_SHIFT                 (0u)
+#define GPIO_PBDC2_PBDC21_SHIFT                 (1u)
+#define GPIO_PBDC2_PBDC22_SHIFT                 (2u)
+#define GPIO_PBDC2_PBDC23_SHIFT                 (3u)
+#define GPIO_PBDC2_PBDC24_SHIFT                 (4u)
+#define GPIO_PBDC2_PBDC25_SHIFT                 (5u)
+#define GPIO_PBDC2_PBDC26_SHIFT                 (6u)
+#define GPIO_PBDC2_PBDC27_SHIFT                 (7u)
+#define GPIO_PBDC2_PBDC28_SHIFT                 (8u)
+#define GPIO_PBDC2_PBDC29_SHIFT                 (9u)
+#define GPIO_PBDC2_PBDC210_SHIFT                (10u)
+#define GPIO_PBDC2_PBDC211_SHIFT                (11u)
+#define GPIO_PBDC2_PBDC212_SHIFT                (12u)
+#define GPIO_PBDC2_PBDC213_SHIFT                (13u)
+#define GPIO_PBDC2_PBDC214_SHIFT                (14u)
+#define GPIO_PBDC2_PBDC215_SHIFT                (15u)
+
+#define GPIO_PIPC2_PIPC20_SHIFT                 (0u)
+#define GPIO_PIPC2_PIPC21_SHIFT                 (1u)
+#define GPIO_PIPC2_PIPC22_SHIFT                 (2u)
+#define GPIO_PIPC2_PIPC23_SHIFT                 (3u)
+#define GPIO_PIPC2_PIPC24_SHIFT                 (4u)
+#define GPIO_PIPC2_PIPC25_SHIFT                 (5u)
+#define GPIO_PIPC2_PIPC26_SHIFT                 (6u)
+#define GPIO_PIPC2_PIPC27_SHIFT                 (7u)
+#define GPIO_PIPC2_PIPC28_SHIFT                 (8u)
+#define GPIO_PIPC2_PIPC29_SHIFT                 (9u)
+#define GPIO_PIPC2_PIPC210_SHIFT                (10u)
+#define GPIO_PIPC2_PIPC211_SHIFT                (11u)
+#define GPIO_PIPC2_PIPC212_SHIFT                (12u)
+#define GPIO_PIPC2_PIPC213_SHIFT                (13u)
+#define GPIO_PIPC2_PIPC214_SHIFT                (14u)
+#define GPIO_PIPC2_PIPC215_SHIFT                (15u)
+
+/* ---- P3 ---- */
+#define GPIO_P3_P30_SHIFT                       (0u)
+#define GPIO_P3_P31_SHIFT                       (1u)
+#define GPIO_P3_P32_SHIFT                       (2u)
+#define GPIO_P3_P33_SHIFT                       (3u)
+#define GPIO_P3_P34_SHIFT                       (4u)
+#define GPIO_P3_P35_SHIFT                       (5u)
+#define GPIO_P3_P36_SHIFT                       (6u)
+#define GPIO_P3_P37_SHIFT                       (7u)
+#define GPIO_P3_P38_SHIFT                       (8u)
+#define GPIO_P3_P39_SHIFT                       (9u)
+#define GPIO_P3_P310_SHIFT                      (10u)
+#define GPIO_P3_P311_SHIFT                      (11u)
+#define GPIO_P3_P312_SHIFT                      (12u)
+#define GPIO_P3_P313_SHIFT                      (13u)
+#define GPIO_P3_P314_SHIFT                      (14u)
+#define GPIO_P3_P315_SHIFT                      (15u)
+
+#define GPIO_PSR3_PSR30_SHIFT                   (0u)
+#define GPIO_PSR3_PSR31_SHIFT                   (1u)
+#define GPIO_PSR3_PSR32_SHIFT                   (2u)
+#define GPIO_PSR3_PSR33_SHIFT                   (3u)
+#define GPIO_PSR3_PSR34_SHIFT                   (4u)
+#define GPIO_PSR3_PSR35_SHIFT                   (5u)
+#define GPIO_PSR3_PSR36_SHIFT                   (6u)
+#define GPIO_PSR3_PSR37_SHIFT                   (7u)
+#define GPIO_PSR3_PSR38_SHIFT                   (8u)
+#define GPIO_PSR3_PSR39_SHIFT                   (9u)
+#define GPIO_PSR3_PSR310_SHIFT                  (10u)
+#define GPIO_PSR3_PSR311_SHIFT                  (11u)
+#define GPIO_PSR3_PSR312_SHIFT                  (12u)
+#define GPIO_PSR3_PSR313_SHIFT                  (13u)
+#define GPIO_PSR3_PSR314_SHIFT                  (14u)
+#define GPIO_PSR3_PSR315_SHIFT                  (15u)
+#define GPIO_PSR3_PSR316_SHIFT                  (16u)
+#define GPIO_PSR3_PSR317_SHIFT                  (17u)
+#define GPIO_PSR3_PSR318_SHIFT                  (18u)
+#define GPIO_PSR3_PSR319_SHIFT                  (19u)
+#define GPIO_PSR3_PSR320_SHIFT                  (20u)
+#define GPIO_PSR3_PSR321_SHIFT                  (21u)
+#define GPIO_PSR3_PSR322_SHIFT                  (22u)
+#define GPIO_PSR3_PSR323_SHIFT                  (23u)
+#define GPIO_PSR3_PSR324_SHIFT                  (24u)
+#define GPIO_PSR3_PSR325_SHIFT                  (25u)
+#define GPIO_PSR3_PSR326_SHIFT                  (26u)
+#define GPIO_PSR3_PSR327_SHIFT                  (27u)
+#define GPIO_PSR3_PSR328_SHIFT                  (28u)
+#define GPIO_PSR3_PSR329_SHIFT                  (29u)
+#define GPIO_PSR3_PSR330_SHIFT                  (30u)
+#define GPIO_PSR3_PSR331_SHIFT                  (31u)
+
+#define GPIO_PPR3_PPR30_SHIFT                   (0u)
+#define GPIO_PPR3_PPR31_SHIFT                   (1u)
+#define GPIO_PPR3_PPR32_SHIFT                   (2u)
+#define GPIO_PPR3_PPR33_SHIFT                   (3u)
+#define GPIO_PPR3_PPR34_SHIFT                   (4u)
+#define GPIO_PPR3_PPR35_SHIFT                   (5u)
+#define GPIO_PPR3_PPR36_SHIFT                   (6u)
+#define GPIO_PPR3_PPR37_SHIFT                   (7u)
+#define GPIO_PPR3_PPR38_SHIFT                   (8u)
+#define GPIO_PPR3_PPR39_SHIFT                   (9u)
+#define GPIO_PPR3_PPR310_SHIFT                  (10u)
+#define GPIO_PPR3_PPR311_SHIFT                  (11u)
+#define GPIO_PPR3_PPR312_SHIFT                  (12u)
+#define GPIO_PPR3_PPR313_SHIFT                  (13u)
+#define GPIO_PPR3_PPR314_SHIFT                  (14u)
+#define GPIO_PPR3_PPR315_SHIFT                  (15u)
+
+#define GPIO_PM3_PM30_SHIFT                     (0u)
+#define GPIO_PM3_PM31_SHIFT                     (1u)
+#define GPIO_PM3_PM32_SHIFT                     (2u)
+#define GPIO_PM3_PM33_SHIFT                     (3u)
+#define GPIO_PM3_PM34_SHIFT                     (4u)
+#define GPIO_PM3_PM35_SHIFT                     (5u)
+#define GPIO_PM3_PM36_SHIFT                     (6u)
+#define GPIO_PM3_PM37_SHIFT                     (7u)
+#define GPIO_PM3_PM38_SHIFT                     (8u)
+#define GPIO_PM3_PM39_SHIFT                     (9u)
+#define GPIO_PM3_PM310_SHIFT                    (10u)
+#define GPIO_PM3_PM311_SHIFT                    (11u)
+#define GPIO_PM3_PM312_SHIFT                    (12u)
+#define GPIO_PM3_PM313_SHIFT                    (13u)
+#define GPIO_PM3_PM314_SHIFT                    (14u)
+#define GPIO_PM3_PM315_SHIFT                    (15u)
+
+#define GPIO_PMC3_PMC30_SHIFT                   (0u)
+#define GPIO_PMC3_PMC31_SHIFT                   (1u)
+#define GPIO_PMC3_PMC32_SHIFT                   (2u)
+#define GPIO_PMC3_PMC33_SHIFT                   (3u)
+#define GPIO_PMC3_PMC34_SHIFT                   (4u)
+#define GPIO_PMC3_PMC35_SHIFT                   (5u)
+#define GPIO_PMC3_PMC36_SHIFT                   (6u)
+#define GPIO_PMC3_PMC37_SHIFT                   (7u)
+#define GPIO_PMC3_PMC38_SHIFT                   (8u)
+#define GPIO_PMC3_PMC39_SHIFT                   (9u)
+#define GPIO_PMC3_PMC310_SHIFT                  (10u)
+#define GPIO_PMC3_PMC311_SHIFT                  (11u)
+#define GPIO_PMC3_PMC312_SHIFT                  (12u)
+#define GPIO_PMC3_PMC313_SHIFT                  (13u)
+#define GPIO_PMC3_PMC314_SHIFT                  (14u)
+#define GPIO_PMC3_PMC315_SHIFT                  (15u)
+
+#define GPIO_PFC3_PFC30_SHIFT                   (0u)
+#define GPIO_PFC3_PFC31_SHIFT                   (1u)
+#define GPIO_PFC3_PFC32_SHIFT                   (2u)
+#define GPIO_PFC3_PFC33_SHIFT                   (3u)
+#define GPIO_PFC3_PFC34_SHIFT                   (4u)
+#define GPIO_PFC3_PFC35_SHIFT                   (5u)
+#define GPIO_PFC3_PFC36_SHIFT                   (6u)
+#define GPIO_PFC3_PFC37_SHIFT                   (7u)
+#define GPIO_PFC3_PFC38_SHIFT                   (8u)
+#define GPIO_PFC3_PFC39_SHIFT                   (9u)
+#define GPIO_PFC3_PFC310_SHIFT                  (10u)
+#define GPIO_PFC3_PFC311_SHIFT                  (11u)
+#define GPIO_PFC3_PFC312_SHIFT                  (12u)
+#define GPIO_PFC3_PFC313_SHIFT                  (13u)
+#define GPIO_PFC3_PFC314_SHIFT                  (14u)
+#define GPIO_PFC3_PFC315_SHIFT                  (15u)
+
+#define GPIO_PFCE3_PFCE30_SHIFT                 (0u)
+#define GPIO_PFCE3_PFCE31_SHIFT                 (1u)
+#define GPIO_PFCE3_PFCE32_SHIFT                 (2u)
+#define GPIO_PFCE3_PFCE33_SHIFT                 (3u)
+#define GPIO_PFCE3_PFCE34_SHIFT                 (4u)
+#define GPIO_PFCE3_PFCE35_SHIFT                 (5u)
+#define GPIO_PFCE3_PFCE36_SHIFT                 (6u)
+#define GPIO_PFCE3_PFCE37_SHIFT                 (7u)
+#define GPIO_PFCE3_PFCE38_SHIFT                 (8u)
+#define GPIO_PFCE3_PFCE39_SHIFT                 (9u)
+#define GPIO_PFCE3_PFCE310_SHIFT                (10u)
+#define GPIO_PFCE3_PFCE311_SHIFT                (11u)
+#define GPIO_PFCE3_PFCE312_SHIFT                (12u)
+#define GPIO_PFCE3_PFCE313_SHIFT                (13u)
+#define GPIO_PFCE3_PFCE314_SHIFT                (14u)
+#define GPIO_PFCE3_PFCE315_SHIFT                (15u)
+
+#define GPIO_PNOT3_PNOT30_SHIFT                 (0u)
+#define GPIO_PNOT3_PNOT31_SHIFT                 (1u)
+#define GPIO_PNOT3_PNOT32_SHIFT                 (2u)
+#define GPIO_PNOT3_PNOT33_SHIFT                 (3u)
+#define GPIO_PNOT3_PNOT34_SHIFT                 (4u)
+#define GPIO_PNOT3_PNOT35_SHIFT                 (5u)
+#define GPIO_PNOT3_PNOT36_SHIFT                 (6u)
+#define GPIO_PNOT3_PNOT37_SHIFT                 (7u)
+#define GPIO_PNOT3_PNOT38_SHIFT                 (8u)
+#define GPIO_PNOT3_PNOT39_SHIFT                 (9u)
+#define GPIO_PNOT3_PNOT310_SHIFT                (10u)
+#define GPIO_PNOT3_PNOT311_SHIFT                (11u)
+#define GPIO_PNOT3_PNOT312_SHIFT                (12u)
+#define GPIO_PNOT3_PNOT313_SHIFT                (13u)
+#define GPIO_PNOT3_PNOT314_SHIFT                (14u)
+#define GPIO_PNOT3_PNOT315_SHIFT                (15u)
+
+#define GPIO_PMSR3_PMSR30_SHIFT                 (0u)
+#define GPIO_PMSR3_PMSR31_SHIFT                 (1u)
+#define GPIO_PMSR3_PMSR32_SHIFT                 (2u)
+#define GPIO_PMSR3_PMSR33_SHIFT                 (3u)
+#define GPIO_PMSR3_PMSR34_SHIFT                 (4u)
+#define GPIO_PMSR3_PMSR35_SHIFT                 (5u)
+#define GPIO_PMSR3_PMSR36_SHIFT                 (6u)
+#define GPIO_PMSR3_PMSR37_SHIFT                 (7u)
+#define GPIO_PMSR3_PMSR38_SHIFT                 (8u)
+#define GPIO_PMSR3_PMSR39_SHIFT                 (9u)
+#define GPIO_PMSR3_PMSR310_SHIFT                (10u)
+#define GPIO_PMSR3_PMSR311_SHIFT                (11u)
+#define GPIO_PMSR3_PMSR312_SHIFT                (12u)
+#define GPIO_PMSR3_PMSR313_SHIFT                (13u)
+#define GPIO_PMSR3_PMSR314_SHIFT                (14u)
+#define GPIO_PMSR3_PMSR315_SHIFT                (15u)
+#define GPIO_PMSR3_PMSR316_SHIFT                (16u)
+#define GPIO_PMSR3_PMSR317_SHIFT                (17u)
+#define GPIO_PMSR3_PMSR318_SHIFT                (18u)
+#define GPIO_PMSR3_PMSR319_SHIFT                (19u)
+#define GPIO_PMSR3_PMSR320_SHIFT                (20u)
+#define GPIO_PMSR3_PMSR321_SHIFT                (21u)
+#define GPIO_PMSR3_PMSR322_SHIFT                (22u)
+#define GPIO_PMSR3_PMSR323_SHIFT                (23u)
+#define GPIO_PMSR3_PMSR324_SHIFT                (24u)
+#define GPIO_PMSR3_PMSR325_SHIFT                (25u)
+#define GPIO_PMSR3_PMSR326_SHIFT                (26u)
+#define GPIO_PMSR3_PMSR327_SHIFT                (27u)
+#define GPIO_PMSR3_PMSR328_SHIFT                (28u)
+#define GPIO_PMSR3_PMSR329_SHIFT                (29u)
+#define GPIO_PMSR3_PMSR330_SHIFT                (30u)
+#define GPIO_PMSR3_PMSR331_SHIFT                (31u)
+
+#define GPIO_PMCSR3_PMCSR30_SHIFT               (0u)
+#define GPIO_PMCSR3_PMCSR31_SHIFT               (1u)
+#define GPIO_PMCSR3_PMCSR32_SHIFT               (2u)
+#define GPIO_PMCSR3_PMCSR33_SHIFT               (3u)
+#define GPIO_PMCSR3_PMCSR34_SHIFT               (4u)
+#define GPIO_PMCSR3_PMCSR35_SHIFT               (5u)
+#define GPIO_PMCSR3_PMCSR36_SHIFT               (6u)
+#define GPIO_PMCSR3_PMCSR37_SHIFT               (7u)
+#define GPIO_PMCSR3_PMCSR38_SHIFT               (8u)
+#define GPIO_PMCSR3_PMCSR39_SHIFT               (9u)
+#define GPIO_PMCSR3_PMCSR310_SHIFT              (10u)
+#define GPIO_PMCSR3_PMCSR311_SHIFT              (11u)
+#define GPIO_PMCSR3_PMCSR312_SHIFT              (12u)
+#define GPIO_PMCSR3_PMCSR313_SHIFT              (13u)
+#define GPIO_PMCSR3_PMCSR314_SHIFT              (14u)
+#define GPIO_PMCSR3_PMCSR315_SHIFT              (15u)
+#define GPIO_PMCSR3_PMCSR316_SHIFT              (16u)
+#define GPIO_PMCSR3_PMCSR317_SHIFT              (17u)
+#define GPIO_PMCSR3_PMCSR318_SHIFT              (18u)
+#define GPIO_PMCSR3_PMCSR319_SHIFT              (19u)
+#define GPIO_PMCSR3_PMCSR320_SHIFT              (20u)
+#define GPIO_PMCSR3_PMCSR321_SHIFT              (21u)
+#define GPIO_PMCSR3_PMCSR322_SHIFT              (22u)
+#define GPIO_PMCSR3_PMCSR323_SHIFT              (23u)
+#define GPIO_PMCSR3_PMCSR324_SHIFT              (24u)
+#define GPIO_PMCSR3_PMCSR325_SHIFT              (25u)
+#define GPIO_PMCSR3_PMCSR326_SHIFT              (26u)
+#define GPIO_PMCSR3_PMCSR327_SHIFT              (27u)
+#define GPIO_PMCSR3_PMCSR328_SHIFT              (28u)
+#define GPIO_PMCSR3_PMCSR329_SHIFT              (29u)
+#define GPIO_PMCSR3_PMCSR330_SHIFT              (30u)
+#define GPIO_PMCSR3_PMCSR331_SHIFT              (31u)
+
+#define GPIO_PFCAE3_PFCAE30_SHIFT               (0u)
+#define GPIO_PFCAE3_PFCAE31_SHIFT               (1u)
+#define GPIO_PFCAE3_PFCAE32_SHIFT               (2u)
+#define GPIO_PFCAE3_PFCAE33_SHIFT               (3u)
+#define GPIO_PFCAE3_PFCAE34_SHIFT               (4u)
+#define GPIO_PFCAE3_PFCAE35_SHIFT               (5u)
+#define GPIO_PFCAE3_PFCAE36_SHIFT               (6u)
+#define GPIO_PFCAE3_PFCAE37_SHIFT               (7u)
+#define GPIO_PFCAE3_PFCAE38_SHIFT               (8u)
+#define GPIO_PFCAE3_PFCAE39_SHIFT               (9u)
+#define GPIO_PFCAE3_PFCAE310_SHIFT              (10u)
+#define GPIO_PFCAE3_PFCAE311_SHIFT              (11u)
+#define GPIO_PFCAE3_PFCAE312_SHIFT              (12u)
+#define GPIO_PFCAE3_PFCAE313_SHIFT              (13u)
+#define GPIO_PFCAE3_PFCAE314_SHIFT              (14u)
+#define GPIO_PFCAE3_PFCAE315_SHIFT              (15u)
+
+#define GPIO_PIBC3_PIBC30_SHIFT                 (0u)
+#define GPIO_PIBC3_PIBC31_SHIFT                 (1u)
+#define GPIO_PIBC3_PIBC32_SHIFT                 (2u)
+#define GPIO_PIBC3_PIBC33_SHIFT                 (3u)
+#define GPIO_PIBC3_PIBC34_SHIFT                 (4u)
+#define GPIO_PIBC3_PIBC35_SHIFT                 (5u)
+#define GPIO_PIBC3_PIBC36_SHIFT                 (6u)
+#define GPIO_PIBC3_PIBC37_SHIFT                 (7u)
+#define GPIO_PIBC3_PIBC38_SHIFT                 (8u)
+#define GPIO_PIBC3_PIBC39_SHIFT                 (9u)
+#define GPIO_PIBC3_PIBC310_SHIFT                (10u)
+#define GPIO_PIBC3_PIBC311_SHIFT                (11u)
+#define GPIO_PIBC3_PIBC312_SHIFT                (12u)
+#define GPIO_PIBC3_PIBC313_SHIFT                (13u)
+#define GPIO_PIBC3_PIBC314_SHIFT                (14u)
+#define GPIO_PIBC3_PIBC315_SHIFT                (15u)
+
+#define GPIO_PBDC3_PBDC30_SHIFT                 (0u)
+#define GPIO_PBDC3_PBDC31_SHIFT                 (1u)
+#define GPIO_PBDC3_PBDC32_SHIFT                 (2u)
+#define GPIO_PBDC3_PBDC33_SHIFT                 (3u)
+#define GPIO_PBDC3_PBDC34_SHIFT                 (4u)
+#define GPIO_PBDC3_PBDC35_SHIFT                 (5u)
+#define GPIO_PBDC3_PBDC36_SHIFT                 (6u)
+#define GPIO_PBDC3_PBDC37_SHIFT                 (7u)
+#define GPIO_PBDC3_PBDC38_SHIFT                 (8u)
+#define GPIO_PBDC3_PBDC39_SHIFT                 (9u)
+#define GPIO_PBDC3_PBDC310_SHIFT                (10u)
+#define GPIO_PBDC3_PBDC311_SHIFT                (11u)
+#define GPIO_PBDC3_PBDC312_SHIFT                (12u)
+#define GPIO_PBDC3_PBDC313_SHIFT                (13u)
+#define GPIO_PBDC3_PBDC314_SHIFT                (14u)
+#define GPIO_PBDC3_PBDC315_SHIFT                (15u)
+
+#define GPIO_PIPC3_PIPC30_SHIFT                 (0u)
+#define GPIO_PIPC3_PIPC31_SHIFT                 (1u)
+#define GPIO_PIPC3_PIPC32_SHIFT                 (2u)
+#define GPIO_PIPC3_PIPC33_SHIFT                 (3u)
+#define GPIO_PIPC3_PIPC34_SHIFT                 (4u)
+#define GPIO_PIPC3_PIPC35_SHIFT                 (5u)
+#define GPIO_PIPC3_PIPC36_SHIFT                 (6u)
+#define GPIO_PIPC3_PIPC37_SHIFT                 (7u)
+#define GPIO_PIPC3_PIPC38_SHIFT                 (8u)
+#define GPIO_PIPC3_PIPC39_SHIFT                 (9u)
+#define GPIO_PIPC3_PIPC310_SHIFT                (10u)
+#define GPIO_PIPC3_PIPC311_SHIFT                (11u)
+#define GPIO_PIPC3_PIPC312_SHIFT                (12u)
+#define GPIO_PIPC3_PIPC313_SHIFT                (13u)
+#define GPIO_PIPC3_PIPC314_SHIFT                (14u)
+#define GPIO_PIPC3_PIPC315_SHIFT                (15u)
+
+/* ---- P4 ---- */
+#define GPIO_P4_P40_SHIFT                       (0u)
+#define GPIO_P4_P41_SHIFT                       (1u)
+#define GPIO_P4_P42_SHIFT                       (2u)
+#define GPIO_P4_P43_SHIFT                       (3u)
+#define GPIO_P4_P44_SHIFT                       (4u)
+#define GPIO_P4_P45_SHIFT                       (5u)
+#define GPIO_P4_P46_SHIFT                       (6u)
+#define GPIO_P4_P47_SHIFT                       (7u)
+#define GPIO_P4_P48_SHIFT                       (8u)
+#define GPIO_P4_P49_SHIFT                       (9u)
+#define GPIO_P4_P410_SHIFT                      (10u)
+#define GPIO_P4_P411_SHIFT                      (11u)
+#define GPIO_P4_P412_SHIFT                      (12u)
+#define GPIO_P4_P413_SHIFT                      (13u)
+#define GPIO_P4_P414_SHIFT                      (14u)
+#define GPIO_P4_P415_SHIFT                      (15u)
+
+#define GPIO_PSR4_PSR40_SHIFT                   (0u)
+#define GPIO_PSR4_PSR41_SHIFT                   (1u)
+#define GPIO_PSR4_PSR42_SHIFT                   (2u)
+#define GPIO_PSR4_PSR43_SHIFT                   (3u)
+#define GPIO_PSR4_PSR44_SHIFT                   (4u)
+#define GPIO_PSR4_PSR45_SHIFT                   (5u)
+#define GPIO_PSR4_PSR46_SHIFT                   (6u)
+#define GPIO_PSR4_PSR47_SHIFT                   (7u)
+#define GPIO_PSR4_PSR48_SHIFT                   (8u)
+#define GPIO_PSR4_PSR49_SHIFT                   (9u)
+#define GPIO_PSR4_PSR410_SHIFT                  (10u)
+#define GPIO_PSR4_PSR411_SHIFT                  (11u)
+#define GPIO_PSR4_PSR412_SHIFT                  (12u)
+#define GPIO_PSR4_PSR413_SHIFT                  (13u)
+#define GPIO_PSR4_PSR414_SHIFT                  (14u)
+#define GPIO_PSR4_PSR415_SHIFT                  (15u)
+#define GPIO_PSR4_PSR416_SHIFT                  (16u)
+#define GPIO_PSR4_PSR417_SHIFT                  (17u)
+#define GPIO_PSR4_PSR418_SHIFT                  (18u)
+#define GPIO_PSR4_PSR419_SHIFT                  (19u)
+#define GPIO_PSR4_PSR420_SHIFT                  (20u)
+#define GPIO_PSR4_PSR421_SHIFT                  (21u)
+#define GPIO_PSR4_PSR422_SHIFT                  (22u)
+#define GPIO_PSR4_PSR423_SHIFT                  (23u)
+#define GPIO_PSR4_PSR424_SHIFT                  (24u)
+#define GPIO_PSR4_PSR425_SHIFT                  (25u)
+#define GPIO_PSR4_PSR426_SHIFT                  (26u)
+#define GPIO_PSR4_PSR427_SHIFT                  (27u)
+#define GPIO_PSR4_PSR428_SHIFT                  (28u)
+#define GPIO_PSR4_PSR429_SHIFT                  (29u)
+#define GPIO_PSR4_PSR430_SHIFT                  (30u)
+#define GPIO_PSR4_PSR431_SHIFT                  (31u)
+
+#define GPIO_PPR4_PPR40_SHIFT                   (0u)
+#define GPIO_PPR4_PPR41_SHIFT                   (1u)
+#define GPIO_PPR4_PPR42_SHIFT                   (2u)
+#define GPIO_PPR4_PPR43_SHIFT                   (3u)
+#define GPIO_PPR4_PPR44_SHIFT                   (4u)
+#define GPIO_PPR4_PPR45_SHIFT                   (5u)
+#define GPIO_PPR4_PPR46_SHIFT                   (6u)
+#define GPIO_PPR4_PPR47_SHIFT                   (7u)
+#define GPIO_PPR4_PPR48_SHIFT                   (8u)
+#define GPIO_PPR4_PPR49_SHIFT                   (9u)
+#define GPIO_PPR4_PPR410_SHIFT                  (10u)
+#define GPIO_PPR4_PPR411_SHIFT                  (11u)
+#define GPIO_PPR4_PPR412_SHIFT                  (12u)
+#define GPIO_PPR4_PPR413_SHIFT                  (13u)
+#define GPIO_PPR4_PPR414_SHIFT                  (14u)
+#define GPIO_PPR4_PPR415_SHIFT                  (15u)
+
+#define GPIO_PM4_PM40_SHIFT                     (0u)
+#define GPIO_PM4_PM41_SHIFT                     (1u)
+#define GPIO_PM4_PM42_SHIFT                     (2u)
+#define GPIO_PM4_PM43_SHIFT                     (3u)
+#define GPIO_PM4_PM44_SHIFT                     (4u)
+#define GPIO_PM4_PM45_SHIFT                     (5u)
+#define GPIO_PM4_PM46_SHIFT                     (6u)
+#define GPIO_PM4_PM47_SHIFT                     (7u)
+#define GPIO_PM4_PM48_SHIFT                     (8u)
+#define GPIO_PM4_PM49_SHIFT                     (9u)
+#define GPIO_PM4_PM410_SHIFT                    (10u)
+#define GPIO_PM4_PM411_SHIFT                    (11u)
+#define GPIO_PM4_PM412_SHIFT                    (12u)
+#define GPIO_PM4_PM413_SHIFT                    (13u)
+#define GPIO_PM4_PM414_SHIFT                    (14u)
+#define GPIO_PM4_PM415_SHIFT                    (15u)
+
+#define GPIO_PMC4_PMC40_SHIFT                   (0u)
+#define GPIO_PMC4_PMC41_SHIFT                   (1u)
+#define GPIO_PMC4_PMC42_SHIFT                   (2u)
+#define GPIO_PMC4_PMC43_SHIFT                   (3u)
+#define GPIO_PMC4_PMC44_SHIFT                   (4u)
+#define GPIO_PMC4_PMC45_SHIFT                   (5u)
+#define GPIO_PMC4_PMC46_SHIFT                   (6u)
+#define GPIO_PMC4_PMC47_SHIFT                   (7u)
+#define GPIO_PMC4_PMC48_SHIFT                   (8u)
+#define GPIO_PMC4_PMC49_SHIFT                   (9u)
+#define GPIO_PMC4_PMC410_SHIFT                  (10u)
+#define GPIO_PMC4_PMC411_SHIFT                  (11u)
+#define GPIO_PMC4_PMC412_SHIFT                  (12u)
+#define GPIO_PMC4_PMC413_SHIFT                  (13u)
+#define GPIO_PMC4_PMC414_SHIFT                  (14u)
+#define GPIO_PMC4_PMC415_SHIFT                  (15u)
+
+#define GPIO_PFC4_PFC40_SHIFT                   (0u)
+#define GPIO_PFC4_PFC41_SHIFT                   (1u)
+#define GPIO_PFC4_PFC42_SHIFT                   (2u)
+#define GPIO_PFC4_PFC43_SHIFT                   (3u)
+#define GPIO_PFC4_PFC44_SHIFT                   (4u)
+#define GPIO_PFC4_PFC45_SHIFT                   (5u)
+#define GPIO_PFC4_PFC46_SHIFT                   (6u)
+#define GPIO_PFC4_PFC47_SHIFT                   (7u)
+#define GPIO_PFC4_PFC48_SHIFT                   (8u)
+#define GPIO_PFC4_PFC49_SHIFT                   (9u)
+#define GPIO_PFC4_PFC410_SHIFT                  (10u)
+#define GPIO_PFC4_PFC411_SHIFT                  (11u)
+#define GPIO_PFC4_PFC412_SHIFT                  (12u)
+#define GPIO_PFC4_PFC413_SHIFT                  (13u)
+#define GPIO_PFC4_PFC414_SHIFT                  (14u)
+#define GPIO_PFC4_PFC415_SHIFT                  (15u)
+
+#define GPIO_PFCE4_PFCE40_SHIFT                 (0u)
+#define GPIO_PFCE4_PFCE41_SHIFT                 (1u)
+#define GPIO_PFCE4_PFCE42_SHIFT                 (2u)
+#define GPIO_PFCE4_PFCE43_SHIFT                 (3u)
+#define GPIO_PFCE4_PFCE44_SHIFT                 (4u)
+#define GPIO_PFCE4_PFCE45_SHIFT                 (5u)
+#define GPIO_PFCE4_PFCE46_SHIFT                 (6u)
+#define GPIO_PFCE4_PFCE47_SHIFT                 (7u)
+#define GPIO_PFCE4_PFCE48_SHIFT                 (8u)
+#define GPIO_PFCE4_PFCE49_SHIFT                 (9u)
+#define GPIO_PFCE4_PFCE410_SHIFT                (10u)
+#define GPIO_PFCE4_PFCE411_SHIFT                (11u)
+#define GPIO_PFCE4_PFCE412_SHIFT                (12u)
+#define GPIO_PFCE4_PFCE413_SHIFT                (13u)
+#define GPIO_PFCE4_PFCE414_SHIFT                (14u)
+#define GPIO_PFCE4_PFCE415_SHIFT                (15u)
+
+#define GPIO_PNOT4_PNOT40_SHIFT                 (0u)
+#define GPIO_PNOT4_PNOT41_SHIFT                 (1u)
+#define GPIO_PNOT4_PNOT42_SHIFT                 (2u)
+#define GPIO_PNOT4_PNOT43_SHIFT                 (3u)
+#define GPIO_PNOT4_PNOT44_SHIFT                 (4u)
+#define GPIO_PNOT4_PNOT45_SHIFT                 (5u)
+#define GPIO_PNOT4_PNOT46_SHIFT                 (6u)
+#define GPIO_PNOT4_PNOT47_SHIFT                 (7u)
+#define GPIO_PNOT4_PNOT48_SHIFT                 (8u)
+#define GPIO_PNOT4_PNOT49_SHIFT                 (9u)
+#define GPIO_PNOT4_PNOT410_SHIFT                (10u)
+#define GPIO_PNOT4_PNOT411_SHIFT                (11u)
+#define GPIO_PNOT4_PNOT412_SHIFT                (12u)
+#define GPIO_PNOT4_PNOT413_SHIFT                (13u)
+#define GPIO_PNOT4_PNOT414_SHIFT                (14u)
+#define GPIO_PNOT4_PNOT415_SHIFT                (15u)
+
+#define GPIO_PMSR4_PMSR40_SHIFT                 (0u)
+#define GPIO_PMSR4_PMSR41_SHIFT                 (1u)
+#define GPIO_PMSR4_PMSR42_SHIFT                 (2u)
+#define GPIO_PMSR4_PMSR43_SHIFT                 (3u)
+#define GPIO_PMSR4_PMSR44_SHIFT                 (4u)
+#define GPIO_PMSR4_PMSR45_SHIFT                 (5u)
+#define GPIO_PMSR4_PMSR46_SHIFT                 (6u)
+#define GPIO_PMSR4_PMSR47_SHIFT                 (7u)
+#define GPIO_PMSR4_PMSR48_SHIFT                 (8u)
+#define GPIO_PMSR4_PMSR49_SHIFT                 (9u)
+#define GPIO_PMSR4_PMSR410_SHIFT                (10u)
+#define GPIO_PMSR4_PMSR411_SHIFT                (11u)
+#define GPIO_PMSR4_PMSR412_SHIFT                (12u)
+#define GPIO_PMSR4_PMSR413_SHIFT                (13u)
+#define GPIO_PMSR4_PMSR414_SHIFT                (14u)
+#define GPIO_PMSR4_PMSR415_SHIFT                (15u)
+#define GPIO_PMSR4_PMSR416_SHIFT                (16u)
+#define GPIO_PMSR4_PMSR417_SHIFT                (17u)
+#define GPIO_PMSR4_PMSR418_SHIFT                (18u)
+#define GPIO_PMSR4_PMSR419_SHIFT                (19u)
+#define GPIO_PMSR4_PMSR420_SHIFT                (20u)
+#define GPIO_PMSR4_PMSR421_SHIFT                (21u)
+#define GPIO_PMSR4_PMSR422_SHIFT                (22u)
+#define GPIO_PMSR4_PMSR423_SHIFT                (23u)
+#define GPIO_PMSR4_PMSR424_SHIFT                (24u)
+#define GPIO_PMSR4_PMSR425_SHIFT                (25u)
+#define GPIO_PMSR4_PMSR426_SHIFT                (26u)
+#define GPIO_PMSR4_PMSR427_SHIFT                (27u)
+#define GPIO_PMSR4_PMSR428_SHIFT                (28u)
+#define GPIO_PMSR4_PMSR429_SHIFT                (29u)
+#define GPIO_PMSR4_PMSR430_SHIFT                (30u)
+#define GPIO_PMSR4_PMSR431_SHIFT                (31u)
+
+#define GPIO_PMCSR4_PMCSR40_SHIFT               (0u)
+#define GPIO_PMCSR4_PMCSR41_SHIFT               (1u)
+#define GPIO_PMCSR4_PMCSR42_SHIFT               (2u)
+#define GPIO_PMCSR4_PMCSR43_SHIFT               (3u)
+#define GPIO_PMCSR4_PMCSR44_SHIFT               (4u)
+#define GPIO_PMCSR4_PMCSR45_SHIFT               (5u)
+#define GPIO_PMCSR4_PMCSR46_SHIFT               (6u)
+#define GPIO_PMCSR4_PMCSR47_SHIFT               (7u)
+#define GPIO_PMCSR4_PMCSR48_SHIFT               (8u)
+#define GPIO_PMCSR4_PMCSR49_SHIFT               (9u)
+#define GPIO_PMCSR4_PMCSR410_SHIFT              (10u)
+#define GPIO_PMCSR4_PMCSR411_SHIFT              (11u)
+#define GPIO_PMCSR4_PMCSR412_SHIFT              (12u)
+#define GPIO_PMCSR4_PMCSR413_SHIFT              (13u)
+#define GPIO_PMCSR4_PMCSR414_SHIFT              (14u)
+#define GPIO_PMCSR4_PMCSR415_SHIFT              (15u)
+#define GPIO_PMCSR4_PMCSR416_SHIFT              (16u)
+#define GPIO_PMCSR4_PMCSR417_SHIFT              (17u)
+#define GPIO_PMCSR4_PMCSR418_SHIFT              (18u)
+#define GPIO_PMCSR4_PMCSR419_SHIFT              (19u)
+#define GPIO_PMCSR4_PMCSR420_SHIFT              (20u)
+#define GPIO_PMCSR4_PMCSR421_SHIFT              (21u)
+#define GPIO_PMCSR4_PMCSR422_SHIFT              (22u)
+#define GPIO_PMCSR4_PMCSR423_SHIFT              (23u)
+#define GPIO_PMCSR4_PMCSR424_SHIFT              (24u)
+#define GPIO_PMCSR4_PMCSR425_SHIFT              (25u)
+#define GPIO_PMCSR4_PMCSR426_SHIFT              (26u)
+#define GPIO_PMCSR4_PMCSR427_SHIFT              (27u)
+#define GPIO_PMCSR4_PMCSR428_SHIFT              (28u)
+#define GPIO_PMCSR4_PMCSR429_SHIFT              (29u)
+#define GPIO_PMCSR4_PMCSR430_SHIFT              (30u)
+#define GPIO_PMCSR4_PMCSR431_SHIFT              (31u)
+
+#define GPIO_PFCAE4_PFCAE40_SHIFT               (0u)
+#define GPIO_PFCAE4_PFCAE41_SHIFT               (1u)
+#define GPIO_PFCAE4_PFCAE42_SHIFT               (2u)
+#define GPIO_PFCAE4_PFCAE43_SHIFT               (3u)
+#define GPIO_PFCAE4_PFCAE44_SHIFT               (4u)
+#define GPIO_PFCAE4_PFCAE45_SHIFT               (5u)
+#define GPIO_PFCAE4_PFCAE46_SHIFT               (6u)
+#define GPIO_PFCAE4_PFCAE47_SHIFT               (7u)
+#define GPIO_PFCAE4_PFCAE48_SHIFT               (8u)
+#define GPIO_PFCAE4_PFCAE49_SHIFT               (9u)
+#define GPIO_PFCAE4_PFCAE410_SHIFT              (10u)
+#define GPIO_PFCAE4_PFCAE411_SHIFT              (11u)
+#define GPIO_PFCAE4_PFCAE412_SHIFT              (12u)
+#define GPIO_PFCAE4_PFCAE413_SHIFT              (13u)
+#define GPIO_PFCAE4_PFCAE414_SHIFT              (14u)
+#define GPIO_PFCAE4_PFCAE415_SHIFT              (15u)
+
+#define GPIO_PIBC4_PIBC40_SHIFT                 (0u)
+#define GPIO_PIBC4_PIBC41_SHIFT                 (1u)
+#define GPIO_PIBC4_PIBC42_SHIFT                 (2u)
+#define GPIO_PIBC4_PIBC43_SHIFT                 (3u)
+#define GPIO_PIBC4_PIBC44_SHIFT                 (4u)
+#define GPIO_PIBC4_PIBC45_SHIFT                 (5u)
+#define GPIO_PIBC4_PIBC46_SHIFT                 (6u)
+#define GPIO_PIBC4_PIBC47_SHIFT                 (7u)
+#define GPIO_PIBC4_PIBC48_SHIFT                 (8u)
+#define GPIO_PIBC4_PIBC49_SHIFT                 (9u)
+#define GPIO_PIBC4_PIBC410_SHIFT                (10u)
+#define GPIO_PIBC4_PIBC411_SHIFT                (11u)
+#define GPIO_PIBC4_PIBC412_SHIFT                (12u)
+#define GPIO_PIBC4_PIBC413_SHIFT                (13u)
+#define GPIO_PIBC4_PIBC414_SHIFT                (14u)
+#define GPIO_PIBC4_PIBC415_SHIFT                (15u)
+
+#define GPIO_PBDC4_PBDC40_SHIFT                 (0u)
+#define GPIO_PBDC4_PBDC41_SHIFT                 (1u)
+#define GPIO_PBDC4_PBDC42_SHIFT                 (2u)
+#define GPIO_PBDC4_PBDC43_SHIFT                 (3u)
+#define GPIO_PBDC4_PBDC44_SHIFT                 (4u)
+#define GPIO_PBDC4_PBDC45_SHIFT                 (5u)
+#define GPIO_PBDC4_PBDC46_SHIFT                 (6u)
+#define GPIO_PBDC4_PBDC47_SHIFT                 (7u)
+#define GPIO_PBDC4_PBDC48_SHIFT                 (8u)
+#define GPIO_PBDC4_PBDC49_SHIFT                 (9u)
+#define GPIO_PBDC4_PBDC410_SHIFT                (10u)
+#define GPIO_PBDC4_PBDC411_SHIFT                (11u)
+#define GPIO_PBDC4_PBDC412_SHIFT                (12u)
+#define GPIO_PBDC4_PBDC413_SHIFT                (13u)
+#define GPIO_PBDC4_PBDC414_SHIFT                (14u)
+#define GPIO_PBDC4_PBDC415_SHIFT                (15u)
+
+#define GPIO_PIPC4_PIPC40_SHIFT                 (0u)
+#define GPIO_PIPC4_PIPC41_SHIFT                 (1u)
+#define GPIO_PIPC4_PIPC42_SHIFT                 (2u)
+#define GPIO_PIPC4_PIPC43_SHIFT                 (3u)
+#define GPIO_PIPC4_PIPC44_SHIFT                 (4u)
+#define GPIO_PIPC4_PIPC45_SHIFT                 (5u)
+#define GPIO_PIPC4_PIPC46_SHIFT                 (6u)
+#define GPIO_PIPC4_PIPC47_SHIFT                 (7u)
+#define GPIO_PIPC4_PIPC48_SHIFT                 (8u)
+#define GPIO_PIPC4_PIPC49_SHIFT                 (9u)
+#define GPIO_PIPC4_PIPC410_SHIFT                (10u)
+#define GPIO_PIPC4_PIPC411_SHIFT                (11u)
+#define GPIO_PIPC4_PIPC412_SHIFT                (12u)
+#define GPIO_PIPC4_PIPC413_SHIFT                (13u)
+#define GPIO_PIPC4_PIPC414_SHIFT                (14u)
+#define GPIO_PIPC4_PIPC415_SHIFT                (15u)
+
+/* ---- P5 ---- */
+#define GPIO_P5_P50_SHIFT                       (0u)
+#define GPIO_P5_P51_SHIFT                       (1u)
+#define GPIO_P5_P52_SHIFT                       (2u)
+#define GPIO_P5_P53_SHIFT                       (3u)
+#define GPIO_P5_P54_SHIFT                       (4u)
+#define GPIO_P5_P55_SHIFT                       (5u)
+#define GPIO_P5_P56_SHIFT                       (6u)
+#define GPIO_P5_P57_SHIFT                       (7u)
+#define GPIO_P5_P58_SHIFT                       (8u)
+#define GPIO_P5_P59_SHIFT                       (9u)
+#define GPIO_P5_P510_SHIFT                      (10u)
+
+#define GPIO_PSR5_PSR50_SHIFT                   (0u)
+#define GPIO_PSR5_PSR51_SHIFT                   (1u)
+#define GPIO_PSR5_PSR52_SHIFT                   (2u)
+#define GPIO_PSR5_PSR53_SHIFT                   (3u)
+#define GPIO_PSR5_PSR54_SHIFT                   (4u)
+#define GPIO_PSR5_PSR55_SHIFT                   (5u)
+#define GPIO_PSR5_PSR56_SHIFT                   (6u)
+#define GPIO_PSR5_PSR57_SHIFT                   (7u)
+#define GPIO_PSR5_PSR58_SHIFT                   (8u)
+#define GPIO_PSR5_PSR59_SHIFT                   (9u)
+#define GPIO_PSR5_PSR510_SHIFT                  (10u)
+#define GPIO_PSR5_PSR516_SHIFT                  (16u)
+#define GPIO_PSR5_PSR517_SHIFT                  (17u)
+#define GPIO_PSR5_PSR518_SHIFT                  (18u)
+#define GPIO_PSR5_PSR519_SHIFT                  (19u)
+#define GPIO_PSR5_PSR520_SHIFT                  (20u)
+#define GPIO_PSR5_PSR521_SHIFT                  (21u)
+#define GPIO_PSR5_PSR522_SHIFT                  (22u)
+#define GPIO_PSR5_PSR523_SHIFT                  (23u)
+#define GPIO_PSR5_PSR524_SHIFT                  (24u)
+#define GPIO_PSR5_PSR525_SHIFT                  (25u)
+#define GPIO_PSR5_PSR526_SHIFT                  (26u)
+
+#define GPIO_PPR5_PPR50_SHIFT                   (0u)
+#define GPIO_PPR5_PPR51_SHIFT                   (1u)
+#define GPIO_PPR5_PPR52_SHIFT                   (2u)
+#define GPIO_PPR5_PPR53_SHIFT                   (3u)
+#define GPIO_PPR5_PPR54_SHIFT                   (4u)
+#define GPIO_PPR5_PPR55_SHIFT                   (5u)
+#define GPIO_PPR5_PPR56_SHIFT                   (6u)
+#define GPIO_PPR5_PPR57_SHIFT                   (7u)
+#define GPIO_PPR5_PPR58_SHIFT                   (8u)
+#define GPIO_PPR5_PPR59_SHIFT                   (9u)
+#define GPIO_PPR5_PPR510_SHIFT                  (10u)
+
+#define GPIO_PM5_PM50_SHIFT                     (0u)
+#define GPIO_PM5_PM51_SHIFT                     (1u)
+#define GPIO_PM5_PM52_SHIFT                     (2u)
+#define GPIO_PM5_PM53_SHIFT                     (3u)
+#define GPIO_PM5_PM54_SHIFT                     (4u)
+#define GPIO_PM5_PM55_SHIFT                     (5u)
+#define GPIO_PM5_PM56_SHIFT                     (6u)
+#define GPIO_PM5_PM57_SHIFT                     (7u)
+#define GPIO_PM5_PM58_SHIFT                     (8u)
+#define GPIO_PM5_PM59_SHIFT                     (9u)
+#define GPIO_PM5_PM510_SHIFT                    (10u)
+
+#define GPIO_PMC5_PMC50_SHIFT                   (0u)
+#define GPIO_PMC5_PMC51_SHIFT                   (1u)
+#define GPIO_PMC5_PMC52_SHIFT                   (2u)
+#define GPIO_PMC5_PMC53_SHIFT                   (3u)
+#define GPIO_PMC5_PMC54_SHIFT                   (4u)
+#define GPIO_PMC5_PMC55_SHIFT                   (5u)
+#define GPIO_PMC5_PMC56_SHIFT                   (6u)
+#define GPIO_PMC5_PMC57_SHIFT                   (7u)
+#define GPIO_PMC5_PMC58_SHIFT                   (8u)
+#define GPIO_PMC5_PMC59_SHIFT                   (9u)
+#define GPIO_PMC5_PMC510_SHIFT                  (10u)
+
+#define GPIO_PFC5_PFC50_SHIFT                   (0u)
+#define GPIO_PFC5_PFC51_SHIFT                   (1u)
+#define GPIO_PFC5_PFC52_SHIFT                   (2u)
+#define GPIO_PFC5_PFC53_SHIFT                   (3u)
+#define GPIO_PFC5_PFC54_SHIFT                   (4u)
+#define GPIO_PFC5_PFC55_SHIFT                   (5u)
+#define GPIO_PFC5_PFC56_SHIFT                   (6u)
+#define GPIO_PFC5_PFC57_SHIFT                   (7u)
+#define GPIO_PFC5_PFC58_SHIFT                   (8u)
+#define GPIO_PFC5_PFC59_SHIFT                   (9u)
+#define GPIO_PFC5_PFC510_SHIFT                  (10u)
+
+#define GPIO_PFCE5_PFCE50_SHIFT                 (0u)
+#define GPIO_PFCE5_PFCE51_SHIFT                 (1u)
+#define GPIO_PFCE5_PFCE52_SHIFT                 (2u)
+#define GPIO_PFCE5_PFCE53_SHIFT                 (3u)
+#define GPIO_PFCE5_PFCE54_SHIFT                 (4u)
+#define GPIO_PFCE5_PFCE55_SHIFT                 (5u)
+#define GPIO_PFCE5_PFCE56_SHIFT                 (6u)
+#define GPIO_PFCE5_PFCE57_SHIFT                 (7u)
+#define GPIO_PFCE5_PFCE58_SHIFT                 (8u)
+#define GPIO_PFCE5_PFCE59_SHIFT                 (9u)
+#define GPIO_PFCE5_PFCE510_SHIFT                (10u)
+
+#define GPIO_PNOT5_PNOT50_SHIFT                 (0u)
+#define GPIO_PNOT5_PNOT51_SHIFT                 (1u)
+#define GPIO_PNOT5_PNOT52_SHIFT                 (2u)
+#define GPIO_PNOT5_PNOT53_SHIFT                 (3u)
+#define GPIO_PNOT5_PNOT54_SHIFT                 (4u)
+#define GPIO_PNOT5_PNOT55_SHIFT                 (5u)
+#define GPIO_PNOT5_PNOT56_SHIFT                 (6u)
+#define GPIO_PNOT5_PNOT57_SHIFT                 (7u)
+#define GPIO_PNOT5_PNOT58_SHIFT                 (8u)
+#define GPIO_PNOT5_PNOT59_SHIFT                 (9u)
+#define GPIO_PNOT5_PNOT510_SHIFT                (10u)
+
+#define GPIO_PMSR5_PMSR50_SHIFT                 (0u)
+#define GPIO_PMSR5_PMSR51_SHIFT                 (1u)
+#define GPIO_PMSR5_PMSR52_SHIFT                 (2u)
+#define GPIO_PMSR5_PMSR53_SHIFT                 (3u)
+#define GPIO_PMSR5_PMSR54_SHIFT                 (4u)
+#define GPIO_PMSR5_PMSR55_SHIFT                 (5u)
+#define GPIO_PMSR5_PMSR56_SHIFT                 (6u)
+#define GPIO_PMSR5_PMSR57_SHIFT                 (7u)
+#define GPIO_PMSR5_PMSR58_SHIFT                 (8u)
+#define GPIO_PMSR5_PMSR59_SHIFT                 (9u)
+#define GPIO_PMSR5_PMSR510_SHIFT                (10u)
+#define GPIO_PMSR5_PMSR516_SHIFT                (16u)
+#define GPIO_PMSR5_PMSR517_SHIFT                (17u)
+#define GPIO_PMSR5_PMSR518_SHIFT                (18u)
+#define GPIO_PMSR5_PMSR519_SHIFT                (19u)
+#define GPIO_PMSR5_PMSR520_SHIFT                (20u)
+#define GPIO_PMSR5_PMSR521_SHIFT                (21u)
+#define GPIO_PMSR5_PMSR522_SHIFT                (22u)
+#define GPIO_PMSR5_PMSR523_SHIFT                (23u)
+#define GPIO_PMSR5_PMSR524_SHIFT                (24u)
+#define GPIO_PMSR5_PMSR525_SHIFT                (25u)
+#define GPIO_PMSR5_PMSR526_SHIFT                (26u)
+
+#define GPIO_PMCSR5_PMCSR50_SHIFT               (0u)
+#define GPIO_PMCSR5_PMCSR51_SHIFT               (1u)
+#define GPIO_PMCSR5_PMCSR52_SHIFT               (2u)
+#define GPIO_PMCSR5_PMCSR53_SHIFT               (3u)
+#define GPIO_PMCSR5_PMCSR54_SHIFT               (4u)
+#define GPIO_PMCSR5_PMCSR55_SHIFT               (5u)
+#define GPIO_PMCSR5_PMCSR56_SHIFT               (6u)
+#define GPIO_PMCSR5_PMCSR57_SHIFT               (7u)
+#define GPIO_PMCSR5_PMCSR58_SHIFT               (8u)
+#define GPIO_PMCSR5_PMCSR59_SHIFT               (9u)
+#define GPIO_PMCSR5_PMCSR510_SHIFT              (10u)
+#define GPIO_PMCSR5_PMCSR516_SHIFT              (16u)
+#define GPIO_PMCSR5_PMCSR517_SHIFT              (17u)
+#define GPIO_PMCSR5_PMCSR518_SHIFT              (18u)
+#define GPIO_PMCSR5_PMCSR519_SHIFT              (19u)
+#define GPIO_PMCSR5_PMCSR520_SHIFT              (20u)
+#define GPIO_PMCSR5_PMCSR521_SHIFT              (21u)
+#define GPIO_PMCSR5_PMCSR522_SHIFT              (22u)
+#define GPIO_PMCSR5_PMCSR523_SHIFT              (23u)
+#define GPIO_PMCSR5_PMCSR524_SHIFT              (24u)
+#define GPIO_PMCSR5_PMCSR525_SHIFT              (25u)
+#define GPIO_PMCSR5_PMCSR526_SHIFT              (26u)
+
+#define GPIO_PFCAE5_PFCAE50_SHIFT               (0u)
+#define GPIO_PFCAE5_PFCAE51_SHIFT               (1u)
+#define GPIO_PFCAE5_PFCAE52_SHIFT               (2u)
+#define GPIO_PFCAE5_PFCAE53_SHIFT               (3u)
+#define GPIO_PFCAE5_PFCAE54_SHIFT               (4u)
+#define GPIO_PFCAE5_PFCAE55_SHIFT               (5u)
+#define GPIO_PFCAE5_PFCAE56_SHIFT               (6u)
+#define GPIO_PFCAE5_PFCAE57_SHIFT               (7u)
+#define GPIO_PFCAE5_PFCAE58_SHIFT               (8u)
+#define GPIO_PFCAE5_PFCAE59_SHIFT               (9u)
+#define GPIO_PFCAE5_PFCAE510_SHIFT              (10u)
+
+#define GPIO_PIBC5_PIBC50_SHIFT                 (0u)
+#define GPIO_PIBC5_PIBC51_SHIFT                 (1u)
+#define GPIO_PIBC5_PIBC52_SHIFT                 (2u)
+#define GPIO_PIBC5_PIBC53_SHIFT                 (3u)
+#define GPIO_PIBC5_PIBC54_SHIFT                 (4u)
+#define GPIO_PIBC5_PIBC55_SHIFT                 (5u)
+#define GPIO_PIBC5_PIBC56_SHIFT                 (6u)
+#define GPIO_PIBC5_PIBC57_SHIFT                 (7u)
+#define GPIO_PIBC5_PIBC58_SHIFT                 (8u)
+#define GPIO_PIBC5_PIBC59_SHIFT                 (9u)
+#define GPIO_PIBC5_PIBC510_SHIFT                (10u)
+
+#define GPIO_PBDC5_PBDC50_SHIFT                 (0u)
+#define GPIO_PBDC5_PBDC51_SHIFT                 (1u)
+#define GPIO_PBDC5_PBDC52_SHIFT                 (2u)
+#define GPIO_PBDC5_PBDC53_SHIFT                 (3u)
+#define GPIO_PBDC5_PBDC54_SHIFT                 (4u)
+#define GPIO_PBDC5_PBDC55_SHIFT                 (5u)
+#define GPIO_PBDC5_PBDC56_SHIFT                 (6u)
+#define GPIO_PBDC5_PBDC57_SHIFT                 (7u)
+#define GPIO_PBDC5_PBDC58_SHIFT                 (8u)
+#define GPIO_PBDC5_PBDC59_SHIFT                 (9u)
+#define GPIO_PBDC5_PBDC510_SHIFT                (10u)
+
+#define GPIO_PIPC5_PIPC50_SHIFT                 (0u)
+#define GPIO_PIPC5_PIPC51_SHIFT                 (1u)
+#define GPIO_PIPC5_PIPC52_SHIFT                 (2u)
+#define GPIO_PIPC5_PIPC53_SHIFT                 (3u)
+#define GPIO_PIPC5_PIPC54_SHIFT                 (4u)
+#define GPIO_PIPC5_PIPC55_SHIFT                 (5u)
+#define GPIO_PIPC5_PIPC56_SHIFT                 (6u)
+#define GPIO_PIPC5_PIPC57_SHIFT                 (7u)
+#define GPIO_PIPC5_PIPC58_SHIFT                 (8u)
+#define GPIO_PIPC5_PIPC59_SHIFT                 (9u)
+#define GPIO_PIPC5_PIPC510_SHIFT                (10u)
+
+/* ---- P6 ---- */
+#define GPIO_P6_P60_SHIFT                       (0u)
+#define GPIO_P6_P61_SHIFT                       (1u)
+#define GPIO_P6_P62_SHIFT                       (2u)
+#define GPIO_P6_P63_SHIFT                       (3u)
+#define GPIO_P6_P64_SHIFT                       (4u)
+#define GPIO_P6_P65_SHIFT                       (5u)
+#define GPIO_P6_P66_SHIFT                       (6u)
+#define GPIO_P6_P67_SHIFT                       (7u)
+#define GPIO_P6_P68_SHIFT                       (8u)
+#define GPIO_P6_P69_SHIFT                       (9u)
+#define GPIO_P6_P610_SHIFT                      (10u)
+#define GPIO_P6_P611_SHIFT                      (11u)
+#define GPIO_P6_P612_SHIFT                      (12u)
+#define GPIO_P6_P613_SHIFT                      (13u)
+#define GPIO_P6_P614_SHIFT                      (14u)
+#define GPIO_P6_P615_SHIFT                      (15u)
+
+#define GPIO_PSR6_PSR60_SHIFT                   (0u)
+#define GPIO_PSR6_PSR61_SHIFT                   (1u)
+#define GPIO_PSR6_PSR62_SHIFT                   (2u)
+#define GPIO_PSR6_PSR63_SHIFT                   (3u)
+#define GPIO_PSR6_PSR64_SHIFT                   (4u)
+#define GPIO_PSR6_PSR65_SHIFT                   (5u)
+#define GPIO_PSR6_PSR66_SHIFT                   (6u)
+#define GPIO_PSR6_PSR67_SHIFT                   (7u)
+#define GPIO_PSR6_PSR68_SHIFT                   (8u)
+#define GPIO_PSR6_PSR69_SHIFT                   (9u)
+#define GPIO_PSR6_PSR610_SHIFT                  (10u)
+#define GPIO_PSR6_PSR611_SHIFT                  (11u)
+#define GPIO_PSR6_PSR612_SHIFT                  (12u)
+#define GPIO_PSR6_PSR613_SHIFT                  (13u)
+#define GPIO_PSR6_PSR614_SHIFT                  (14u)
+#define GPIO_PSR6_PSR615_SHIFT                  (15u)
+#define GPIO_PSR6_PSR616_SHIFT                  (16u)
+#define GPIO_PSR6_PSR617_SHIFT                  (17u)
+#define GPIO_PSR6_PSR618_SHIFT                  (18u)
+#define GPIO_PSR6_PSR619_SHIFT                  (19u)
+#define GPIO_PSR6_PSR620_SHIFT                  (20u)
+#define GPIO_PSR6_PSR621_SHIFT                  (21u)
+#define GPIO_PSR6_PSR622_SHIFT                  (22u)
+#define GPIO_PSR6_PSR623_SHIFT                  (23u)
+#define GPIO_PSR6_PSR624_SHIFT                  (24u)
+#define GPIO_PSR6_PSR625_SHIFT                  (25u)
+#define GPIO_PSR6_PSR626_SHIFT                  (26u)
+#define GPIO_PSR6_PSR627_SHIFT                  (27u)
+#define GPIO_PSR6_PSR628_SHIFT                  (28u)
+#define GPIO_PSR6_PSR629_SHIFT                  (29u)
+#define GPIO_PSR6_PSR630_SHIFT                  (30u)
+#define GPIO_PSR6_PSR631_SHIFT                  (31u)
+
+#define GPIO_PPR6_PPR60_SHIFT                   (0u)
+#define GPIO_PPR6_PPR61_SHIFT                   (1u)
+#define GPIO_PPR6_PPR62_SHIFT                   (2u)
+#define GPIO_PPR6_PPR63_SHIFT                   (3u)
+#define GPIO_PPR6_PPR64_SHIFT                   (4u)
+#define GPIO_PPR6_PPR65_SHIFT                   (5u)
+#define GPIO_PPR6_PPR66_SHIFT                   (6u)
+#define GPIO_PPR6_PPR67_SHIFT                   (7u)
+#define GPIO_PPR6_PPR68_SHIFT                   (8u)
+#define GPIO_PPR6_PPR69_SHIFT                   (9u)
+#define GPIO_PPR6_PPR610_SHIFT                  (10u)
+#define GPIO_PPR6_PPR611_SHIFT                  (11u)
+#define GPIO_PPR6_PPR612_SHIFT                  (12u)
+#define GPIO_PPR6_PPR613_SHIFT                  (13u)
+#define GPIO_PPR6_PPR614_SHIFT                  (14u)
+#define GPIO_PPR6_PPR615_SHIFT                  (15u)
+
+#define GPIO_PM6_PM60_SHIFT                     (0u)
+#define GPIO_PM6_PM61_SHIFT                     (1u)
+#define GPIO_PM6_PM62_SHIFT                     (2u)
+#define GPIO_PM6_PM63_SHIFT                     (3u)
+#define GPIO_PM6_PM64_SHIFT                     (4u)
+#define GPIO_PM6_PM65_SHIFT                     (5u)
+#define GPIO_PM6_PM66_SHIFT                     (6u)
+#define GPIO_PM6_PM67_SHIFT                     (7u)
+#define GPIO_PM6_PM68_SHIFT                     (8u)
+#define GPIO_PM6_PM69_SHIFT                     (9u)
+#define GPIO_PM6_PM610_SHIFT                    (10u)
+#define GPIO_PM6_PM611_SHIFT                    (11u)
+#define GPIO_PM6_PM612_SHIFT                    (12u)
+#define GPIO_PM6_PM613_SHIFT                    (13u)
+#define GPIO_PM6_PM614_SHIFT                    (14u)
+#define GPIO_PM6_PM615_SHIFT                    (15u)
+
+#define GPIO_PMC6_PMC60_SHIFT                   (0u)
+#define GPIO_PMC6_PMC61_SHIFT                   (1u)
+#define GPIO_PMC6_PMC62_SHIFT                   (2u)
+#define GPIO_PMC6_PMC63_SHIFT                   (3u)
+#define GPIO_PMC6_PMC64_SHIFT                   (4u)
+#define GPIO_PMC6_PMC65_SHIFT                   (5u)
+#define GPIO_PMC6_PMC66_SHIFT                   (6u)
+#define GPIO_PMC6_PMC67_SHIFT                   (7u)
+#define GPIO_PMC6_PMC68_SHIFT                   (8u)
+#define GPIO_PMC6_PMC69_SHIFT                   (9u)
+#define GPIO_PMC6_PMC610_SHIFT                  (10u)
+#define GPIO_PMC6_PMC611_SHIFT                  (11u)
+#define GPIO_PMC6_PMC612_SHIFT                  (12u)
+#define GPIO_PMC6_PMC613_SHIFT                  (13u)
+#define GPIO_PMC6_PMC614_SHIFT                  (14u)
+#define GPIO_PMC6_PMC615_SHIFT                  (15u)
+
+#define GPIO_PFC6_PFC60_SHIFT                   (0u)
+#define GPIO_PFC6_PFC61_SHIFT                   (1u)
+#define GPIO_PFC6_PFC62_SHIFT                   (2u)
+#define GPIO_PFC6_PFC63_SHIFT                   (3u)
+#define GPIO_PFC6_PFC64_SHIFT                   (4u)
+#define GPIO_PFC6_PFC65_SHIFT                   (5u)
+#define GPIO_PFC6_PFC66_SHIFT                   (6u)
+#define GPIO_PFC6_PFC67_SHIFT                   (7u)
+#define GPIO_PFC6_PFC68_SHIFT                   (8u)
+#define GPIO_PFC6_PFC69_SHIFT                   (9u)
+#define GPIO_PFC6_PFC610_SHIFT                  (10u)
+#define GPIO_PFC6_PFC611_SHIFT                  (11u)
+#define GPIO_PFC6_PFC612_SHIFT                  (12u)
+#define GPIO_PFC6_PFC613_SHIFT                  (13u)
+#define GPIO_PFC6_PFC614_SHIFT                  (14u)
+#define GPIO_PFC6_PFC615_SHIFT                  (15u)
+
+#define GPIO_PFCE6_PFCE60_SHIFT                 (0u)
+#define GPIO_PFCE6_PFCE61_SHIFT                 (1u)
+#define GPIO_PFCE6_PFCE62_SHIFT                 (2u)
+#define GPIO_PFCE6_PFCE63_SHIFT                 (3u)
+#define GPIO_PFCE6_PFCE64_SHIFT                 (4u)
+#define GPIO_PFCE6_PFCE65_SHIFT                 (5u)
+#define GPIO_PFCE6_PFCE66_SHIFT                 (6u)
+#define GPIO_PFCE6_PFCE67_SHIFT                 (7u)
+#define GPIO_PFCE6_PFCE68_SHIFT                 (8u)
+#define GPIO_PFCE6_PFCE69_SHIFT                 (9u)
+#define GPIO_PFCE6_PFCE610_SHIFT                (10u)
+#define GPIO_PFCE6_PFCE611_SHIFT                (11u)
+#define GPIO_PFCE6_PFCE612_SHIFT                (12u)
+#define GPIO_PFCE6_PFCE613_SHIFT                (13u)
+#define GPIO_PFCE6_PFCE614_SHIFT                (14u)
+#define GPIO_PFCE6_PFCE615_SHIFT                (15u)
+
+#define GPIO_PNOT6_PNOT60_SHIFT                 (0u)
+#define GPIO_PNOT6_PNOT61_SHIFT                 (1u)
+#define GPIO_PNOT6_PNOT62_SHIFT                 (2u)
+#define GPIO_PNOT6_PNOT63_SHIFT                 (3u)
+#define GPIO_PNOT6_PNOT64_SHIFT                 (4u)
+#define GPIO_PNOT6_PNOT65_SHIFT                 (5u)
+#define GPIO_PNOT6_PNOT66_SHIFT                 (6u)
+#define GPIO_PNOT6_PNOT67_SHIFT                 (7u)
+#define GPIO_PNOT6_PNOT68_SHIFT                 (8u)
+#define GPIO_PNOT6_PNOT69_SHIFT                 (9u)
+#define GPIO_PNOT6_PNOT610_SHIFT                (10u)
+#define GPIO_PNOT6_PNOT611_SHIFT                (11u)
+#define GPIO_PNOT6_PNOT612_SHIFT                (12u)
+#define GPIO_PNOT6_PNOT613_SHIFT                (13u)
+#define GPIO_PNOT6_PNOT614_SHIFT                (14u)
+#define GPIO_PNOT6_PNOT615_SHIFT                (15u)
+
+#define GPIO_PMSR6_PMSR60_SHIFT                 (0u)
+#define GPIO_PMSR6_PMSR61_SHIFT                 (1u)
+#define GPIO_PMSR6_PMSR62_SHIFT                 (2u)
+#define GPIO_PMSR6_PMSR63_SHIFT                 (3u)
+#define GPIO_PMSR6_PMSR64_SHIFT                 (4u)
+#define GPIO_PMSR6_PMSR65_SHIFT                 (5u)
+#define GPIO_PMSR6_PMSR66_SHIFT                 (6u)
+#define GPIO_PMSR6_PMSR67_SHIFT                 (7u)
+#define GPIO_PMSR6_PMSR68_SHIFT                 (8u)
+#define GPIO_PMSR6_PMSR69_SHIFT                 (9u)
+#define GPIO_PMSR6_PMSR610_SHIFT                (10u)
+#define GPIO_PMSR6_PMSR611_SHIFT                (11u)
+#define GPIO_PMSR6_PMSR612_SHIFT                (12u)
+#define GPIO_PMSR6_PMSR613_SHIFT                (13u)
+#define GPIO_PMSR6_PMSR614_SHIFT                (14u)
+#define GPIO_PMSR6_PMSR615_SHIFT                (15u)
+#define GPIO_PMSR6_PMSR616_SHIFT                (16u)
+#define GPIO_PMSR6_PMSR617_SHIFT                (17u)
+#define GPIO_PMSR6_PMSR618_SHIFT                (18u)
+#define GPIO_PMSR6_PMSR619_SHIFT                (19u)
+#define GPIO_PMSR6_PMSR620_SHIFT                (20u)
+#define GPIO_PMSR6_PMSR621_SHIFT                (21u)
+#define GPIO_PMSR6_PMSR622_SHIFT                (22u)
+#define GPIO_PMSR6_PMSR623_SHIFT                (23u)
+#define GPIO_PMSR6_PMSR624_SHIFT                (24u)
+#define GPIO_PMSR6_PMSR625_SHIFT                (25u)
+#define GPIO_PMSR6_PMSR626_SHIFT                (26u)
+#define GPIO_PMSR6_PMSR627_SHIFT                (27u)
+#define GPIO_PMSR6_PMSR628_SHIFT                (28u)
+#define GPIO_PMSR6_PMSR629_SHIFT                (29u)
+#define GPIO_PMSR6_PMSR630_SHIFT                (30u)
+#define GPIO_PMSR6_PMSR631_SHIFT                (31u)
+
+#define GPIO_PMCSR6_PMCSR60_SHIFT               (0u)
+#define GPIO_PMCSR6_PMCSR61_SHIFT               (1u)
+#define GPIO_PMCSR6_PMCSR62_SHIFT               (2u)
+#define GPIO_PMCSR6_PMCSR63_SHIFT               (3u)
+#define GPIO_PMCSR6_PMCSR64_SHIFT               (4u)
+#define GPIO_PMCSR6_PMCSR65_SHIFT               (5u)
+#define GPIO_PMCSR6_PMCSR66_SHIFT               (6u)
+#define GPIO_PMCSR6_PMCSR67_SHIFT               (7u)
+#define GPIO_PMCSR6_PMCSR68_SHIFT               (8u)
+#define GPIO_PMCSR6_PMCSR69_SHIFT               (9u)
+#define GPIO_PMCSR6_PMCSR610_SHIFT              (10u)
+#define GPIO_PMCSR6_PMCSR611_SHIFT              (11u)
+#define GPIO_PMCSR6_PMCSR612_SHIFT              (12u)
+#define GPIO_PMCSR6_PMCSR613_SHIFT              (13u)
+#define GPIO_PMCSR6_PMCSR614_SHIFT              (14u)
+#define GPIO_PMCSR6_PMCSR615_SHIFT              (15u)
+#define GPIO_PMCSR6_PMCSR616_SHIFT              (16u)
+#define GPIO_PMCSR6_PMCSR617_SHIFT              (17u)
+#define GPIO_PMCSR6_PMCSR618_SHIFT              (18u)
+#define GPIO_PMCSR6_PMCSR619_SHIFT              (19u)
+#define GPIO_PMCSR6_PMCSR620_SHIFT              (20u)
+#define GPIO_PMCSR6_PMCSR621_SHIFT              (21u)
+#define GPIO_PMCSR6_PMCSR622_SHIFT              (22u)
+#define GPIO_PMCSR6_PMCSR623_SHIFT              (23u)
+#define GPIO_PMCSR6_PMCSR624_SHIFT              (24u)
+#define GPIO_PMCSR6_PMCSR625_SHIFT              (25u)
+#define GPIO_PMCSR6_PMCSR626_SHIFT              (26u)
+#define GPIO_PMCSR6_PMCSR627_SHIFT              (27u)
+#define GPIO_PMCSR6_PMCSR628_SHIFT              (28u)
+#define GPIO_PMCSR6_PMCSR629_SHIFT              (29u)
+#define GPIO_PMCSR6_PMCSR630_SHIFT              (30u)
+#define GPIO_PMCSR6_PMCSR631_SHIFT              (31u)
+
+#define GPIO_PFCAE6_PFCAE60_SHIFT               (0u)
+#define GPIO_PFCAE6_PFCAE61_SHIFT               (1u)
+#define GPIO_PFCAE6_PFCAE62_SHIFT               (2u)
+#define GPIO_PFCAE6_PFCAE63_SHIFT               (3u)
+#define GPIO_PFCAE6_PFCAE64_SHIFT               (4u)
+#define GPIO_PFCAE6_PFCAE65_SHIFT               (5u)
+#define GPIO_PFCAE6_PFCAE66_SHIFT               (6u)
+#define GPIO_PFCAE6_PFCAE67_SHIFT               (7u)
+#define GPIO_PFCAE6_PFCAE68_SHIFT               (8u)
+#define GPIO_PFCAE6_PFCAE69_SHIFT               (9u)
+#define GPIO_PFCAE6_PFCAE610_SHIFT              (10u)
+#define GPIO_PFCAE6_PFCAE611_SHIFT              (11u)
+#define GPIO_PFCAE6_PFCAE612_SHIFT              (12u)
+#define GPIO_PFCAE6_PFCAE613_SHIFT              (13u)
+#define GPIO_PFCAE6_PFCAE614_SHIFT              (14u)
+#define GPIO_PFCAE6_PFCAE615_SHIFT              (15u)
+
+#define GPIO_PIBC6_PIBC60_SHIFT                 (0u)
+#define GPIO_PIBC6_PIBC61_SHIFT                 (1u)
+#define GPIO_PIBC6_PIBC62_SHIFT                 (2u)
+#define GPIO_PIBC6_PIBC63_SHIFT                 (3u)
+#define GPIO_PIBC6_PIBC64_SHIFT                 (4u)
+#define GPIO_PIBC6_PIBC65_SHIFT                 (5u)
+#define GPIO_PIBC6_PIBC66_SHIFT                 (6u)
+#define GPIO_PIBC6_PIBC67_SHIFT                 (7u)
+#define GPIO_PIBC6_PIBC68_SHIFT                 (8u)
+#define GPIO_PIBC6_PIBC69_SHIFT                 (9u)
+#define GPIO_PIBC6_PIBC610_SHIFT                (10u)
+#define GPIO_PIBC6_PIBC611_SHIFT                (11u)
+#define GPIO_PIBC6_PIBC612_SHIFT                (12u)
+#define GPIO_PIBC6_PIBC613_SHIFT                (13u)
+#define GPIO_PIBC6_PIBC614_SHIFT                (14u)
+#define GPIO_PIBC6_PIBC615_SHIFT                (15u)
+
+#define GPIO_PBDC6_PBDC60_SHIFT                 (0u)
+#define GPIO_PBDC6_PBDC61_SHIFT                 (1u)
+#define GPIO_PBDC6_PBDC62_SHIFT                 (2u)
+#define GPIO_PBDC6_PBDC63_SHIFT                 (3u)
+#define GPIO_PBDC6_PBDC64_SHIFT                 (4u)
+#define GPIO_PBDC6_PBDC65_SHIFT                 (5u)
+#define GPIO_PBDC6_PBDC66_SHIFT                 (6u)
+#define GPIO_PBDC6_PBDC67_SHIFT                 (7u)
+#define GPIO_PBDC6_PBDC68_SHIFT                 (8u)
+#define GPIO_PBDC6_PBDC69_SHIFT                 (9u)
+#define GPIO_PBDC6_PBDC610_SHIFT                (10u)
+#define GPIO_PBDC6_PBDC611_SHIFT                (11u)
+#define GPIO_PBDC6_PBDC612_SHIFT                (12u)
+#define GPIO_PBDC6_PBDC613_SHIFT                (13u)
+#define GPIO_PBDC6_PBDC614_SHIFT                (14u)
+#define GPIO_PBDC6_PBDC615_SHIFT                (15u)
+
+#define GPIO_PIPC6_PIPC60_SHIFT                 (0u)
+#define GPIO_PIPC6_PIPC61_SHIFT                 (1u)
+#define GPIO_PIPC6_PIPC62_SHIFT                 (2u)
+#define GPIO_PIPC6_PIPC63_SHIFT                 (3u)
+#define GPIO_PIPC6_PIPC64_SHIFT                 (4u)
+#define GPIO_PIPC6_PIPC65_SHIFT                 (5u)
+#define GPIO_PIPC6_PIPC66_SHIFT                 (6u)
+#define GPIO_PIPC6_PIPC67_SHIFT                 (7u)
+#define GPIO_PIPC6_PIPC68_SHIFT                 (8u)
+#define GPIO_PIPC6_PIPC69_SHIFT                 (9u)
+#define GPIO_PIPC6_PIPC610_SHIFT                (10u)
+#define GPIO_PIPC6_PIPC611_SHIFT                (11u)
+#define GPIO_PIPC6_PIPC612_SHIFT                (12u)
+#define GPIO_PIPC6_PIPC613_SHIFT                (13u)
+#define GPIO_PIPC6_PIPC614_SHIFT                (14u)
+#define GPIO_PIPC6_PIPC615_SHIFT                (15u)
+
+/* ---- P7 ---- */
+#define GPIO_P7_P70_SHIFT                       (0u)
+#define GPIO_P7_P71_SHIFT                       (1u)
+#define GPIO_P7_P72_SHIFT                       (2u)
+#define GPIO_P7_P73_SHIFT                       (3u)
+#define GPIO_P7_P74_SHIFT                       (4u)
+#define GPIO_P7_P75_SHIFT                       (5u)
+#define GPIO_P7_P76_SHIFT                       (6u)
+#define GPIO_P7_P77_SHIFT                       (7u)
+#define GPIO_P7_P78_SHIFT                       (8u)
+#define GPIO_P7_P79_SHIFT                       (9u)
+#define GPIO_P7_P710_SHIFT                      (10u)
+#define GPIO_P7_P711_SHIFT                      (11u)
+#define GPIO_P7_P712_SHIFT                      (12u)
+#define GPIO_P7_P713_SHIFT                      (13u)
+#define GPIO_P7_P714_SHIFT                      (14u)
+#define GPIO_P7_P715_SHIFT                      (15u)
+
+#define GPIO_PSR7_PSR70_SHIFT                   (0u)
+#define GPIO_PSR7_PSR71_SHIFT                   (1u)
+#define GPIO_PSR7_PSR72_SHIFT                   (2u)
+#define GPIO_PSR7_PSR73_SHIFT                   (3u)
+#define GPIO_PSR7_PSR74_SHIFT                   (4u)
+#define GPIO_PSR7_PSR75_SHIFT                   (5u)
+#define GPIO_PSR7_PSR76_SHIFT                   (6u)
+#define GPIO_PSR7_PSR77_SHIFT                   (7u)
+#define GPIO_PSR7_PSR78_SHIFT                   (8u)
+#define GPIO_PSR7_PSR79_SHIFT                   (9u)
+#define GPIO_PSR7_PSR710_SHIFT                  (10u)
+#define GPIO_PSR7_PSR711_SHIFT                  (11u)
+#define GPIO_PSR7_PSR712_SHIFT                  (12u)
+#define GPIO_PSR7_PSR713_SHIFT                  (13u)
+#define GPIO_PSR7_PSR714_SHIFT                  (14u)
+#define GPIO_PSR7_PSR715_SHIFT                  (15u)
+#define GPIO_PSR7_PSR716_SHIFT                  (16u)
+#define GPIO_PSR7_PSR717_SHIFT                  (17u)
+#define GPIO_PSR7_PSR718_SHIFT                  (18u)
+#define GPIO_PSR7_PSR719_SHIFT                  (19u)
+#define GPIO_PSR7_PSR720_SHIFT                  (20u)
+#define GPIO_PSR7_PSR721_SHIFT                  (21u)
+#define GPIO_PSR7_PSR722_SHIFT                  (22u)
+#define GPIO_PSR7_PSR723_SHIFT                  (23u)
+#define GPIO_PSR7_PSR724_SHIFT                  (24u)
+#define GPIO_PSR7_PSR725_SHIFT                  (25u)
+#define GPIO_PSR7_PSR726_SHIFT                  (26u)
+#define GPIO_PSR7_PSR727_SHIFT                  (27u)
+#define GPIO_PSR7_PSR728_SHIFT                  (28u)
+#define GPIO_PSR7_PSR729_SHIFT                  (29u)
+#define GPIO_PSR7_PSR730_SHIFT                  (30u)
+#define GPIO_PSR7_PSR731_SHIFT                  (31u)
+
+#define GPIO_PPR7_PPR70_SHIFT                   (0u)
+#define GPIO_PPR7_PPR71_SHIFT                   (1u)
+#define GPIO_PPR7_PPR72_SHIFT                   (2u)
+#define GPIO_PPR7_PPR73_SHIFT                   (3u)
+#define GPIO_PPR7_PPR74_SHIFT                   (4u)
+#define GPIO_PPR7_PPR75_SHIFT                   (5u)
+#define GPIO_PPR7_PPR76_SHIFT                   (6u)
+#define GPIO_PPR7_PPR77_SHIFT                   (7u)
+#define GPIO_PPR7_PPR78_SHIFT                   (8u)
+#define GPIO_PPR7_PPR79_SHIFT                   (9u)
+#define GPIO_PPR7_PPR710_SHIFT                  (10u)
+#define GPIO_PPR7_PPR711_SHIFT                  (11u)
+#define GPIO_PPR7_PPR712_SHIFT                  (12u)
+#define GPIO_PPR7_PPR713_SHIFT                  (13u)
+#define GPIO_PPR7_PPR714_SHIFT                  (14u)
+#define GPIO_PPR7_PPR715_SHIFT                  (15u)
+
+#define GPIO_PM7_PM70_SHIFT                     (0u)
+#define GPIO_PM7_PM71_SHIFT                     (1u)
+#define GPIO_PM7_PM72_SHIFT                     (2u)
+#define GPIO_PM7_PM73_SHIFT                     (3u)
+#define GPIO_PM7_PM74_SHIFT                     (4u)
+#define GPIO_PM7_PM75_SHIFT                     (5u)
+#define GPIO_PM7_PM76_SHIFT                     (6u)
+#define GPIO_PM7_PM77_SHIFT                     (7u)
+#define GPIO_PM7_PM78_SHIFT                     (8u)
+#define GPIO_PM7_PM79_SHIFT                     (9u)
+#define GPIO_PM7_PM710_SHIFT                    (10u)
+#define GPIO_PM7_PM711_SHIFT                    (11u)
+#define GPIO_PM7_PM712_SHIFT                    (12u)
+#define GPIO_PM7_PM713_SHIFT                    (13u)
+#define GPIO_PM7_PM714_SHIFT                    (14u)
+#define GPIO_PM7_PM715_SHIFT                    (15u)
+
+#define GPIO_PMC7_PMC70_SHIFT                   (0u)
+#define GPIO_PMC7_PMC71_SHIFT                   (1u)
+#define GPIO_PMC7_PMC72_SHIFT                   (2u)
+#define GPIO_PMC7_PMC73_SHIFT                   (3u)
+#define GPIO_PMC7_PMC74_SHIFT                   (4u)
+#define GPIO_PMC7_PMC75_SHIFT                   (5u)
+#define GPIO_PMC7_PMC76_SHIFT                   (6u)
+#define GPIO_PMC7_PMC77_SHIFT                   (7u)
+#define GPIO_PMC7_PMC78_SHIFT                   (8u)
+#define GPIO_PMC7_PMC79_SHIFT                   (9u)
+#define GPIO_PMC7_PMC710_SHIFT                  (10u)
+#define GPIO_PMC7_PMC711_SHIFT                  (11u)
+#define GPIO_PMC7_PMC712_SHIFT                  (12u)
+#define GPIO_PMC7_PMC713_SHIFT                  (13u)
+#define GPIO_PMC7_PMC714_SHIFT                  (14u)
+#define GPIO_PMC7_PMC715_SHIFT                  (15u)
+
+#define GPIO_PFC7_PFC70_SHIFT                   (0u)
+#define GPIO_PFC7_PFC71_SHIFT                   (1u)
+#define GPIO_PFC7_PFC72_SHIFT                   (2u)
+#define GPIO_PFC7_PFC73_SHIFT                   (3u)
+#define GPIO_PFC7_PFC74_SHIFT                   (4u)
+#define GPIO_PFC7_PFC75_SHIFT                   (5u)
+#define GPIO_PFC7_PFC76_SHIFT                   (6u)
+#define GPIO_PFC7_PFC77_SHIFT                   (7u)
+#define GPIO_PFC7_PFC78_SHIFT                   (8u)
+#define GPIO_PFC7_PFC79_SHIFT                   (9u)
+#define GPIO_PFC7_PFC710_SHIFT                  (10u)
+#define GPIO_PFC7_PFC711_SHIFT                  (11u)
+#define GPIO_PFC7_PFC712_SHIFT                  (12u)
+#define GPIO_PFC7_PFC713_SHIFT                  (13u)
+#define GPIO_PFC7_PFC714_SHIFT                  (14u)
+#define GPIO_PFC7_PFC715_SHIFT                  (15u)
+
+#define GPIO_PFCE7_PFCE70_SHIFT                 (0u)
+#define GPIO_PFCE7_PFCE71_SHIFT                 (1u)
+#define GPIO_PFCE7_PFCE72_SHIFT                 (2u)
+#define GPIO_PFCE7_PFCE73_SHIFT                 (3u)
+#define GPIO_PFCE7_PFCE74_SHIFT                 (4u)
+#define GPIO_PFCE7_PFCE75_SHIFT                 (5u)
+#define GPIO_PFCE7_PFCE76_SHIFT                 (6u)
+#define GPIO_PFCE7_PFCE77_SHIFT                 (7u)
+#define GPIO_PFCE7_PFCE78_SHIFT                 (8u)
+#define GPIO_PFCE7_PFCE79_SHIFT                 (9u)
+#define GPIO_PFCE7_PFCE710_SHIFT                (10u)
+#define GPIO_PFCE7_PFCE711_SHIFT                (11u)
+#define GPIO_PFCE7_PFCE712_SHIFT                (12u)
+#define GPIO_PFCE7_PFCE713_SHIFT                (13u)
+#define GPIO_PFCE7_PFCE714_SHIFT                (14u)
+#define GPIO_PFCE7_PFCE715_SHIFT                (15u)
+
+#define GPIO_PNOT7_PNOT70_SHIFT                 (0u)
+#define GPIO_PNOT7_PNOT71_SHIFT                 (1u)
+#define GPIO_PNOT7_PNOT72_SHIFT                 (2u)
+#define GPIO_PNOT7_PNOT73_SHIFT                 (3u)
+#define GPIO_PNOT7_PNOT74_SHIFT                 (4u)
+#define GPIO_PNOT7_PNOT75_SHIFT                 (5u)
+#define GPIO_PNOT7_PNOT76_SHIFT                 (6u)
+#define GPIO_PNOT7_PNOT77_SHIFT                 (7u)
+#define GPIO_PNOT7_PNOT78_SHIFT                 (8u)
+#define GPIO_PNOT7_PNOT79_SHIFT                 (9u)
+#define GPIO_PNOT7_PNOT710_SHIFT                (10u)
+#define GPIO_PNOT7_PNOT711_SHIFT                (11u)
+#define GPIO_PNOT7_PNOT712_SHIFT                (12u)
+#define GPIO_PNOT7_PNOT713_SHIFT                (13u)
+#define GPIO_PNOT7_PNOT714_SHIFT                (14u)
+#define GPIO_PNOT7_PNOT715_SHIFT                (15u)
+
+#define GPIO_PMSR7_PMSR70_SHIFT                 (0u)
+#define GPIO_PMSR7_PMSR71_SHIFT                 (1u)
+#define GPIO_PMSR7_PMSR72_SHIFT                 (2u)
+#define GPIO_PMSR7_PMSR73_SHIFT                 (3u)
+#define GPIO_PMSR7_PMSR74_SHIFT                 (4u)
+#define GPIO_PMSR7_PMSR75_SHIFT                 (5u)
+#define GPIO_PMSR7_PMSR76_SHIFT                 (6u)
+#define GPIO_PMSR7_PMSR77_SHIFT                 (7u)
+#define GPIO_PMSR7_PMSR78_SHIFT                 (8u)
+#define GPIO_PMSR7_PMSR79_SHIFT                 (9u)
+#define GPIO_PMSR7_PMSR710_SHIFT                (10u)
+#define GPIO_PMSR7_PMSR711_SHIFT                (11u)
+#define GPIO_PMSR7_PMSR712_SHIFT                (12u)
+#define GPIO_PMSR7_PMSR713_SHIFT                (13u)
+#define GPIO_PMSR7_PMSR714_SHIFT                (14u)
+#define GPIO_PMSR7_PMSR715_SHIFT                (15u)
+#define GPIO_PMSR7_PMSR716_SHIFT                (16u)
+#define GPIO_PMSR7_PMSR717_SHIFT                (17u)
+#define GPIO_PMSR7_PMSR718_SHIFT                (18u)
+#define GPIO_PMSR7_PMSR719_SHIFT                (19u)
+#define GPIO_PMSR7_PMSR720_SHIFT                (20u)
+#define GPIO_PMSR7_PMSR721_SHIFT                (21u)
+#define GPIO_PMSR7_PMSR722_SHIFT                (22u)
+#define GPIO_PMSR7_PMSR723_SHIFT                (23u)
+#define GPIO_PMSR7_PMSR724_SHIFT                (24u)
+#define GPIO_PMSR7_PMSR725_SHIFT                (25u)
+#define GPIO_PMSR7_PMSR726_SHIFT                (26u)
+#define GPIO_PMSR7_PMSR727_SHIFT                (27u)
+#define GPIO_PMSR7_PMSR728_SHIFT                (28u)
+#define GPIO_PMSR7_PMSR729_SHIFT                (29u)
+#define GPIO_PMSR7_PMSR730_SHIFT                (30u)
+#define GPIO_PMSR7_PMSR731_SHIFT                (31u)
+
+#define GPIO_PMCSR7_PMCSR70_SHIFT               (0u)
+#define GPIO_PMCSR7_PMCSR71_SHIFT               (1u)
+#define GPIO_PMCSR7_PMCSR72_SHIFT               (2u)
+#define GPIO_PMCSR7_PMCSR73_SHIFT               (3u)
+#define GPIO_PMCSR7_PMCSR74_SHIFT               (4u)
+#define GPIO_PMCSR7_PMCSR75_SHIFT               (5u)
+#define GPIO_PMCSR7_PMCSR76_SHIFT               (6u)
+#define GPIO_PMCSR7_PMCSR77_SHIFT               (7u)
+#define GPIO_PMCSR7_PMCSR78_SHIFT               (8u)
+#define GPIO_PMCSR7_PMCSR79_SHIFT               (9u)
+#define GPIO_PMCSR7_PMCSR710_SHIFT              (10u)
+#define GPIO_PMCSR7_PMCSR711_SHIFT              (11u)
+#define GPIO_PMCSR7_PMCSR712_SHIFT              (12u)
+#define GPIO_PMCSR7_PMCSR713_SHIFT              (13u)
+#define GPIO_PMCSR7_PMCSR714_SHIFT              (14u)
+#define GPIO_PMCSR7_PMCSR715_SHIFT              (15u)
+#define GPIO_PMCSR7_PMCSR716_SHIFT              (16u)
+#define GPIO_PMCSR7_PMCSR717_SHIFT              (17u)
+#define GPIO_PMCSR7_PMCSR718_SHIFT              (18u)
+#define GPIO_PMCSR7_PMCSR719_SHIFT              (19u)
+#define GPIO_PMCSR7_PMCSR720_SHIFT              (20u)
+#define GPIO_PMCSR7_PMCSR721_SHIFT              (21u)
+#define GPIO_PMCSR7_PMCSR722_SHIFT              (22u)
+#define GPIO_PMCSR7_PMCSR723_SHIFT              (23u)
+#define GPIO_PMCSR7_PMCSR724_SHIFT              (24u)
+#define GPIO_PMCSR7_PMCSR725_SHIFT              (25u)
+#define GPIO_PMCSR7_PMCSR726_SHIFT              (26u)
+#define GPIO_PMCSR7_PMCSR727_SHIFT              (27u)
+#define GPIO_PMCSR7_PMCSR728_SHIFT              (28u)
+#define GPIO_PMCSR7_PMCSR729_SHIFT              (29u)
+#define GPIO_PMCSR7_PMCSR730_SHIFT              (30u)
+#define GPIO_PMCSR7_PMCSR731_SHIFT              (31u)
+
+#define GPIO_PFCAE7_PFCAE70_SHIFT               (0u)
+#define GPIO_PFCAE7_PFCAE71_SHIFT               (1u)
+#define GPIO_PFCAE7_PFCAE72_SHIFT               (2u)
+#define GPIO_PFCAE7_PFCAE73_SHIFT               (3u)
+#define GPIO_PFCAE7_PFCAE74_SHIFT               (4u)
+#define GPIO_PFCAE7_PFCAE75_SHIFT               (5u)
+#define GPIO_PFCAE7_PFCAE76_SHIFT               (6u)
+#define GPIO_PFCAE7_PFCAE77_SHIFT               (7u)
+#define GPIO_PFCAE7_PFCAE78_SHIFT               (8u)
+#define GPIO_PFCAE7_PFCAE79_SHIFT               (9u)
+#define GPIO_PFCAE7_PFCAE710_SHIFT              (10u)
+#define GPIO_PFCAE7_PFCAE711_SHIFT              (11u)
+#define GPIO_PFCAE7_PFCAE712_SHIFT              (12u)
+#define GPIO_PFCAE7_PFCAE713_SHIFT              (13u)
+#define GPIO_PFCAE7_PFCAE714_SHIFT              (14u)
+#define GPIO_PFCAE7_PFCAE715_SHIFT              (15u)
+
+#define GPIO_PIBC7_PIBC70_SHIFT                 (0u)
+#define GPIO_PIBC7_PIBC71_SHIFT                 (1u)
+#define GPIO_PIBC7_PIBC72_SHIFT                 (2u)
+#define GPIO_PIBC7_PIBC73_SHIFT                 (3u)
+#define GPIO_PIBC7_PIBC74_SHIFT                 (4u)
+#define GPIO_PIBC7_PIBC75_SHIFT                 (5u)
+#define GPIO_PIBC7_PIBC76_SHIFT                 (6u)
+#define GPIO_PIBC7_PIBC77_SHIFT                 (7u)
+#define GPIO_PIBC7_PIBC78_SHIFT                 (8u)
+#define GPIO_PIBC7_PIBC79_SHIFT                 (9u)
+#define GPIO_PIBC7_PIBC710_SHIFT                (10u)
+#define GPIO_PIBC7_PIBC711_SHIFT                (11u)
+#define GPIO_PIBC7_PIBC712_SHIFT                (12u)
+#define GPIO_PIBC7_PIBC713_SHIFT                (13u)
+#define GPIO_PIBC7_PIBC714_SHIFT                (14u)
+#define GPIO_PIBC7_PIBC715_SHIFT                (15u)
+
+#define GPIO_PBDC7_PBDC70_SHIFT                 (0u)
+#define GPIO_PBDC7_PBDC71_SHIFT                 (1u)
+#define GPIO_PBDC7_PBDC72_SHIFT                 (2u)
+#define GPIO_PBDC7_PBDC73_SHIFT                 (3u)
+#define GPIO_PBDC7_PBDC74_SHIFT                 (4u)
+#define GPIO_PBDC7_PBDC75_SHIFT                 (5u)
+#define GPIO_PBDC7_PBDC76_SHIFT                 (6u)
+#define GPIO_PBDC7_PBDC77_SHIFT                 (7u)
+#define GPIO_PBDC7_PBDC78_SHIFT                 (8u)
+#define GPIO_PBDC7_PBDC79_SHIFT                 (9u)
+#define GPIO_PBDC7_PBDC710_SHIFT                (10u)
+#define GPIO_PBDC7_PBDC711_SHIFT                (11u)
+#define GPIO_PBDC7_PBDC712_SHIFT                (12u)
+#define GPIO_PBDC7_PBDC713_SHIFT                (13u)
+#define GPIO_PBDC7_PBDC714_SHIFT                (14u)
+#define GPIO_PBDC7_PBDC715_SHIFT                (15u)
+
+#define GPIO_PIPC7_PIPC70_SHIFT                 (0u)
+#define GPIO_PIPC7_PIPC71_SHIFT                 (1u)
+#define GPIO_PIPC7_PIPC72_SHIFT                 (2u)
+#define GPIO_PIPC7_PIPC73_SHIFT                 (3u)
+#define GPIO_PIPC7_PIPC74_SHIFT                 (4u)
+#define GPIO_PIPC7_PIPC75_SHIFT                 (5u)
+#define GPIO_PIPC7_PIPC76_SHIFT                 (6u)
+#define GPIO_PIPC7_PIPC77_SHIFT                 (7u)
+#define GPIO_PIPC7_PIPC78_SHIFT                 (8u)
+#define GPIO_PIPC7_PIPC79_SHIFT                 (9u)
+#define GPIO_PIPC7_PIPC710_SHIFT                (10u)
+#define GPIO_PIPC7_PIPC711_SHIFT                (11u)
+#define GPIO_PIPC7_PIPC712_SHIFT                (12u)
+#define GPIO_PIPC7_PIPC713_SHIFT                (13u)
+#define GPIO_PIPC7_PIPC714_SHIFT                (14u)
+#define GPIO_PIPC7_PIPC715_SHIFT                (15u)
+
+/* ---- P8 ---- */
+#define GPIO_P8_P80_SHIFT                       (0u)
+#define GPIO_P8_P81_SHIFT                       (1u)
+#define GPIO_P8_P82_SHIFT                       (2u)
+#define GPIO_P8_P83_SHIFT                       (3u)
+#define GPIO_P8_P84_SHIFT                       (4u)
+#define GPIO_P8_P85_SHIFT                       (5u)
+#define GPIO_P8_P86_SHIFT                       (6u)
+#define GPIO_P8_P87_SHIFT                       (7u)
+#define GPIO_P8_P88_SHIFT                       (8u)
+#define GPIO_P8_P89_SHIFT                       (9u)
+#define GPIO_P8_P810_SHIFT                      (10u)
+#define GPIO_P8_P811_SHIFT                      (11u)
+#define GPIO_P8_P812_SHIFT                      (12u)
+#define GPIO_P8_P813_SHIFT                      (13u)
+#define GPIO_P8_P814_SHIFT                      (14u)
+#define GPIO_P8_P815_SHIFT                      (15u)
+
+#define GPIO_PSR8_PSR80_SHIFT                   (0u)
+#define GPIO_PSR8_PSR81_SHIFT                   (1u)
+#define GPIO_PSR8_PSR82_SHIFT                   (2u)
+#define GPIO_PSR8_PSR83_SHIFT                   (3u)
+#define GPIO_PSR8_PSR84_SHIFT                   (4u)
+#define GPIO_PSR8_PSR85_SHIFT                   (5u)
+#define GPIO_PSR8_PSR86_SHIFT                   (6u)
+#define GPIO_PSR8_PSR87_SHIFT                   (7u)
+#define GPIO_PSR8_PSR88_SHIFT                   (8u)
+#define GPIO_PSR8_PSR89_SHIFT                   (9u)
+#define GPIO_PSR8_PSR810_SHIFT                  (10u)
+#define GPIO_PSR8_PSR811_SHIFT                  (11u)
+#define GPIO_PSR8_PSR812_SHIFT                  (12u)
+#define GPIO_PSR8_PSR813_SHIFT                  (13u)
+#define GPIO_PSR8_PSR814_SHIFT                  (14u)
+#define GPIO_PSR8_PSR815_SHIFT                  (15u)
+#define GPIO_PSR8_PSR816_SHIFT                  (16u)
+#define GPIO_PSR8_PSR817_SHIFT                  (17u)
+#define GPIO_PSR8_PSR818_SHIFT                  (18u)
+#define GPIO_PSR8_PSR819_SHIFT                  (19u)
+#define GPIO_PSR8_PSR820_SHIFT                  (20u)
+#define GPIO_PSR8_PSR821_SHIFT                  (21u)
+#define GPIO_PSR8_PSR822_SHIFT                  (22u)
+#define GPIO_PSR8_PSR823_SHIFT                  (23u)
+#define GPIO_PSR8_PSR824_SHIFT                  (24u)
+#define GPIO_PSR8_PSR825_SHIFT                  (25u)
+#define GPIO_PSR8_PSR826_SHIFT                  (26u)
+#define GPIO_PSR8_PSR827_SHIFT                  (27u)
+#define GPIO_PSR8_PSR828_SHIFT                  (28u)
+#define GPIO_PSR8_PSR829_SHIFT                  (29u)
+#define GPIO_PSR8_PSR830_SHIFT                  (30u)
+#define GPIO_PSR8_PSR831_SHIFT                  (31u)
+
+#define GPIO_PPR8_PPR80_SHIFT                   (0u)
+#define GPIO_PPR8_PPR81_SHIFT                   (1u)
+#define GPIO_PPR8_PPR82_SHIFT                   (2u)
+#define GPIO_PPR8_PPR83_SHIFT                   (3u)
+#define GPIO_PPR8_PPR84_SHIFT                   (4u)
+#define GPIO_PPR8_PPR85_SHIFT                   (5u)
+#define GPIO_PPR8_PPR86_SHIFT                   (6u)
+#define GPIO_PPR8_PPR87_SHIFT                   (7u)
+#define GPIO_PPR8_PPR88_SHIFT                   (8u)
+#define GPIO_PPR8_PPR89_SHIFT                   (9u)
+#define GPIO_PPR8_PPR810_SHIFT                  (10u)
+#define GPIO_PPR8_PPR811_SHIFT                  (11u)
+#define GPIO_PPR8_PPR812_SHIFT                  (12u)
+#define GPIO_PPR8_PPR813_SHIFT                  (13u)
+#define GPIO_PPR8_PPR814_SHIFT                  (14u)
+#define GPIO_PPR8_PPR815_SHIFT                  (15u)
+
+#define GPIO_PM8_PM80_SHIFT                     (0u)
+#define GPIO_PM8_PM81_SHIFT                     (1u)
+#define GPIO_PM8_PM82_SHIFT                     (2u)
+#define GPIO_PM8_PM83_SHIFT                     (3u)
+#define GPIO_PM8_PM84_SHIFT                     (4u)
+#define GPIO_PM8_PM85_SHIFT                     (5u)
+#define GPIO_PM8_PM86_SHIFT                     (6u)
+#define GPIO_PM8_PM87_SHIFT                     (7u)
+#define GPIO_PM8_PM88_SHIFT                     (8u)
+#define GPIO_PM8_PM89_SHIFT                     (9u)
+#define GPIO_PM8_PM810_SHIFT                    (10u)
+#define GPIO_PM8_PM811_SHIFT                    (11u)
+#define GPIO_PM8_PM812_SHIFT                    (12u)
+#define GPIO_PM8_PM813_SHIFT                    (13u)
+#define GPIO_PM8_PM814_SHIFT                    (14u)
+#define GPIO_PM8_PM815_SHIFT                    (15u)
+
+#define GPIO_PMC8_PMC80_SHIFT                   (0u)
+#define GPIO_PMC8_PMC81_SHIFT                   (1u)
+#define GPIO_PMC8_PMC82_SHIFT                   (2u)
+#define GPIO_PMC8_PMC83_SHIFT                   (3u)
+#define GPIO_PMC8_PMC84_SHIFT                   (4u)
+#define GPIO_PMC8_PMC85_SHIFT                   (5u)
+#define GPIO_PMC8_PMC86_SHIFT                   (6u)
+#define GPIO_PMC8_PMC87_SHIFT                   (7u)
+#define GPIO_PMC8_PMC88_SHIFT                   (8u)
+#define GPIO_PMC8_PMC89_SHIFT                   (9u)
+#define GPIO_PMC8_PMC810_SHIFT                  (10u)
+#define GPIO_PMC8_PMC811_SHIFT                  (11u)
+#define GPIO_PMC8_PMC812_SHIFT                  (12u)
+#define GPIO_PMC8_PMC813_SHIFT                  (13u)
+#define GPIO_PMC8_PMC814_SHIFT                  (14u)
+#define GPIO_PMC8_PMC815_SHIFT                  (15u)
+
+#define GPIO_PFC8_PFC80_SHIFT                   (0u)
+#define GPIO_PFC8_PFC81_SHIFT                   (1u)
+#define GPIO_PFC8_PFC82_SHIFT                   (2u)
+#define GPIO_PFC8_PFC83_SHIFT                   (3u)
+#define GPIO_PFC8_PFC84_SHIFT                   (4u)
+#define GPIO_PFC8_PFC85_SHIFT                   (5u)
+#define GPIO_PFC8_PFC86_SHIFT                   (6u)
+#define GPIO_PFC8_PFC87_SHIFT                   (7u)
+#define GPIO_PFC8_PFC88_SHIFT                   (8u)
+#define GPIO_PFC8_PFC89_SHIFT                   (9u)
+#define GPIO_PFC8_PFC810_SHIFT                  (10u)
+#define GPIO_PFC8_PFC811_SHIFT                  (11u)
+#define GPIO_PFC8_PFC812_SHIFT                  (12u)
+#define GPIO_PFC8_PFC813_SHIFT                  (13u)
+#define GPIO_PFC8_PFC814_SHIFT                  (14u)
+#define GPIO_PFC8_PFC815_SHIFT                  (15u)
+
+#define GPIO_PFCE8_PFCE80_SHIFT                 (0u)
+#define GPIO_PFCE8_PFCE81_SHIFT                 (1u)
+#define GPIO_PFCE8_PFCE82_SHIFT                 (2u)
+#define GPIO_PFCE8_PFCE83_SHIFT                 (3u)
+#define GPIO_PFCE8_PFCE84_SHIFT                 (4u)
+#define GPIO_PFCE8_PFCE85_SHIFT                 (5u)
+#define GPIO_PFCE8_PFCE86_SHIFT                 (6u)
+#define GPIO_PFCE8_PFCE87_SHIFT                 (7u)
+#define GPIO_PFCE8_PFCE88_SHIFT                 (8u)
+#define GPIO_PFCE8_PFCE89_SHIFT                 (9u)
+#define GPIO_PFCE8_PFCE810_SHIFT                (10u)
+#define GPIO_PFCE8_PFCE811_SHIFT                (11u)
+#define GPIO_PFCE8_PFCE812_SHIFT                (12u)
+#define GPIO_PFCE8_PFCE813_SHIFT                (13u)
+#define GPIO_PFCE8_PFCE814_SHIFT                (14u)
+#define GPIO_PFCE8_PFCE815_SHIFT                (15u)
+
+#define GPIO_PNOT8_PNOT80_SHIFT                 (0u)
+#define GPIO_PNOT8_PNOT81_SHIFT                 (1u)
+#define GPIO_PNOT8_PNOT82_SHIFT                 (2u)
+#define GPIO_PNOT8_PNOT83_SHIFT                 (3u)
+#define GPIO_PNOT8_PNOT84_SHIFT                 (4u)
+#define GPIO_PNOT8_PNOT85_SHIFT                 (5u)
+#define GPIO_PNOT8_PNOT86_SHIFT                 (6u)
+#define GPIO_PNOT8_PNOT87_SHIFT                 (7u)
+#define GPIO_PNOT8_PNOT88_SHIFT                 (8u)
+#define GPIO_PNOT8_PNOT89_SHIFT                 (9u)
+#define GPIO_PNOT8_PNOT810_SHIFT                (10u)
+#define GPIO_PNOT8_PNOT811_SHIFT                (11u)
+#define GPIO_PNOT8_PNOT812_SHIFT                (12u)
+#define GPIO_PNOT8_PNOT813_SHIFT                (13u)
+#define GPIO_PNOT8_PNOT814_SHIFT                (14u)
+#define GPIO_PNOT8_PNOT815_SHIFT                (15u)
+
+#define GPIO_PMSR8_PMSR80_SHIFT                 (0u)
+#define GPIO_PMSR8_PMSR81_SHIFT                 (1u)
+#define GPIO_PMSR8_PMSR82_SHIFT                 (2u)
+#define GPIO_PMSR8_PMSR83_SHIFT                 (3u)
+#define GPIO_PMSR8_PMSR84_SHIFT                 (4u)
+#define GPIO_PMSR8_PMSR85_SHIFT                 (5u)
+#define GPIO_PMSR8_PMSR86_SHIFT                 (6u)
+#define GPIO_PMSR8_PMSR87_SHIFT                 (7u)
+#define GPIO_PMSR8_PMSR88_SHIFT                 (8u)
+#define GPIO_PMSR8_PMSR89_SHIFT                 (9u)
+#define GPIO_PMSR8_PMSR810_SHIFT                (10u)
+#define GPIO_PMSR8_PMSR811_SHIFT                (11u)
+#define GPIO_PMSR8_PMSR812_SHIFT                (12u)
+#define GPIO_PMSR8_PMSR813_SHIFT                (13u)
+#define GPIO_PMSR8_PMSR814_SHIFT                (14u)
+#define GPIO_PMSR8_PMSR815_SHIFT                (15u)
+#define GPIO_PMSR8_PMSR816_SHIFT                (16u)
+#define GPIO_PMSR8_PMSR817_SHIFT                (17u)
+#define GPIO_PMSR8_PMSR818_SHIFT                (18u)
+#define GPIO_PMSR8_PMSR819_SHIFT                (19u)
+#define GPIO_PMSR8_PMSR820_SHIFT                (20u)
+#define GPIO_PMSR8_PMSR821_SHIFT                (21u)
+#define GPIO_PMSR8_PMSR822_SHIFT                (22u)
+#define GPIO_PMSR8_PMSR823_SHIFT                (23u)
+#define GPIO_PMSR8_PMSR824_SHIFT                (24u)
+#define GPIO_PMSR8_PMSR825_SHIFT                (25u)
+#define GPIO_PMSR8_PMSR826_SHIFT                (26u)
+#define GPIO_PMSR8_PMSR827_SHIFT                (27u)
+#define GPIO_PMSR8_PMSR828_SHIFT                (28u)
+#define GPIO_PMSR8_PMSR829_SHIFT                (29u)
+#define GPIO_PMSR8_PMSR830_SHIFT                (30u)
+#define GPIO_PMSR8_PMSR831_SHIFT                (31u)
+
+#define GPIO_PMCSR8_PMCSR80_SHIFT               (0u)
+#define GPIO_PMCSR8_PMCSR81_SHIFT               (1u)
+#define GPIO_PMCSR8_PMCSR82_SHIFT               (2u)
+#define GPIO_PMCSR8_PMCSR83_SHIFT               (3u)
+#define GPIO_PMCSR8_PMCSR84_SHIFT               (4u)
+#define GPIO_PMCSR8_PMCSR85_SHIFT               (5u)
+#define GPIO_PMCSR8_PMCSR86_SHIFT               (6u)
+#define GPIO_PMCSR8_PMCSR87_SHIFT               (7u)
+#define GPIO_PMCSR8_PMCSR88_SHIFT               (8u)
+#define GPIO_PMCSR8_PMCSR89_SHIFT               (9u)
+#define GPIO_PMCSR8_PMCSR810_SHIFT              (10u)
+#define GPIO_PMCSR8_PMCSR811_SHIFT              (11u)
+#define GPIO_PMCSR8_PMCSR812_SHIFT              (12u)
+#define GPIO_PMCSR8_PMCSR813_SHIFT              (13u)
+#define GPIO_PMCSR8_PMCSR814_SHIFT              (14u)
+#define GPIO_PMCSR8_PMCSR815_SHIFT              (15u)
+#define GPIO_PMCSR8_PMCSR816_SHIFT              (16u)
+#define GPIO_PMCSR8_PMCSR817_SHIFT              (17u)
+#define GPIO_PMCSR8_PMCSR818_SHIFT              (18u)
+#define GPIO_PMCSR8_PMCSR819_SHIFT              (19u)
+#define GPIO_PMCSR8_PMCSR820_SHIFT              (20u)
+#define GPIO_PMCSR8_PMCSR821_SHIFT              (21u)
+#define GPIO_PMCSR8_PMCSR822_SHIFT              (22u)
+#define GPIO_PMCSR8_PMCSR823_SHIFT              (23u)
+#define GPIO_PMCSR8_PMCSR824_SHIFT              (24u)
+#define GPIO_PMCSR8_PMCSR825_SHIFT              (25u)
+#define GPIO_PMCSR8_PMCSR826_SHIFT              (26u)
+#define GPIO_PMCSR8_PMCSR827_SHIFT              (27u)
+#define GPIO_PMCSR8_PMCSR828_SHIFT              (28u)
+#define GPIO_PMCSR8_PMCSR829_SHIFT              (29u)
+#define GPIO_PMCSR8_PMCSR830_SHIFT              (30u)
+#define GPIO_PMCSR8_PMCSR831_SHIFT              (31u)
+
+#define GPIO_PFCAE8_PFCAE80_SHIFT               (0u)
+#define GPIO_PFCAE8_PFCAE81_SHIFT               (1u)
+#define GPIO_PFCAE8_PFCAE82_SHIFT               (2u)
+#define GPIO_PFCAE8_PFCAE83_SHIFT               (3u)
+#define GPIO_PFCAE8_PFCAE84_SHIFT               (4u)
+#define GPIO_PFCAE8_PFCAE85_SHIFT               (5u)
+#define GPIO_PFCAE8_PFCAE86_SHIFT               (6u)
+#define GPIO_PFCAE8_PFCAE87_SHIFT               (7u)
+#define GPIO_PFCAE8_PFCAE88_SHIFT               (8u)
+#define GPIO_PFCAE8_PFCAE89_SHIFT               (9u)
+#define GPIO_PFCAE8_PFCAE810_SHIFT              (10u)
+#define GPIO_PFCAE8_PFCAE811_SHIFT              (11u)
+#define GPIO_PFCAE8_PFCAE812_SHIFT              (12u)
+#define GPIO_PFCAE8_PFCAE813_SHIFT              (13u)
+#define GPIO_PFCAE8_PFCAE814_SHIFT              (14u)
+#define GPIO_PFCAE8_PFCAE815_SHIFT              (15u)
+
+#define GPIO_PIBC8_PIBC80_SHIFT                 (0u)
+#define GPIO_PIBC8_PIBC81_SHIFT                 (1u)
+#define GPIO_PIBC8_PIBC82_SHIFT                 (2u)
+#define GPIO_PIBC8_PIBC83_SHIFT                 (3u)
+#define GPIO_PIBC8_PIBC84_SHIFT                 (4u)
+#define GPIO_PIBC8_PIBC85_SHIFT                 (5u)
+#define GPIO_PIBC8_PIBC86_SHIFT                 (6u)
+#define GPIO_PIBC8_PIBC87_SHIFT                 (7u)
+#define GPIO_PIBC8_PIBC88_SHIFT                 (8u)
+#define GPIO_PIBC8_PIBC89_SHIFT                 (9u)
+#define GPIO_PIBC8_PIBC810_SHIFT                (10u)
+#define GPIO_PIBC8_PIBC811_SHIFT                (11u)
+#define GPIO_PIBC8_PIBC812_SHIFT                (12u)
+#define GPIO_PIBC8_PIBC813_SHIFT                (13u)
+#define GPIO_PIBC8_PIBC814_SHIFT                (14u)
+#define GPIO_PIBC8_PIBC815_SHIFT                (15u)
+
+#define GPIO_PBDC8_PBDC80_SHIFT                 (0u)
+#define GPIO_PBDC8_PBDC81_SHIFT                 (1u)
+#define GPIO_PBDC8_PBDC82_SHIFT                 (2u)
+#define GPIO_PBDC8_PBDC83_SHIFT                 (3u)
+#define GPIO_PBDC8_PBDC84_SHIFT                 (4u)
+#define GPIO_PBDC8_PBDC85_SHIFT                 (5u)
+#define GPIO_PBDC8_PBDC86_SHIFT                 (6u)
+#define GPIO_PBDC8_PBDC87_SHIFT                 (7u)
+#define GPIO_PBDC8_PBDC88_SHIFT                 (8u)
+#define GPIO_PBDC8_PBDC89_SHIFT                 (9u)
+#define GPIO_PBDC8_PBDC810_SHIFT                (10u)
+#define GPIO_PBDC8_PBDC811_SHIFT                (11u)
+#define GPIO_PBDC8_PBDC812_SHIFT                (12u)
+#define GPIO_PBDC8_PBDC813_SHIFT                (13u)
+#define GPIO_PBDC8_PBDC814_SHIFT                (14u)
+#define GPIO_PBDC8_PBDC815_SHIFT                (15u)
+
+#define GPIO_PIPC8_PIPC80_SHIFT                 (0u)
+#define GPIO_PIPC8_PIPC81_SHIFT                 (1u)
+#define GPIO_PIPC8_PIPC82_SHIFT                 (2u)
+#define GPIO_PIPC8_PIPC83_SHIFT                 (3u)
+#define GPIO_PIPC8_PIPC84_SHIFT                 (4u)
+#define GPIO_PIPC8_PIPC85_SHIFT                 (5u)
+#define GPIO_PIPC8_PIPC86_SHIFT                 (6u)
+#define GPIO_PIPC8_PIPC87_SHIFT                 (7u)
+#define GPIO_PIPC8_PIPC88_SHIFT                 (8u)
+#define GPIO_PIPC8_PIPC89_SHIFT                 (9u)
+#define GPIO_PIPC8_PIPC810_SHIFT                (10u)
+#define GPIO_PIPC8_PIPC811_SHIFT                (11u)
+#define GPIO_PIPC8_PIPC812_SHIFT                (12u)
+#define GPIO_PIPC8_PIPC813_SHIFT                (13u)
+#define GPIO_PIPC8_PIPC814_SHIFT                (14u)
+#define GPIO_PIPC8_PIPC815_SHIFT                (15u)
+
+/* ---- P9 ---- */
+#define GPIO_P9_P90_SHIFT                       (0u)
+#define GPIO_P9_P91_SHIFT                       (1u)
+#define GPIO_P9_P92_SHIFT                       (2u)
+#define GPIO_P9_P93_SHIFT                       (3u)
+#define GPIO_P9_P94_SHIFT                       (4u)
+#define GPIO_P9_P95_SHIFT                       (5u)
+#define GPIO_P9_P96_SHIFT                       (6u)
+#define GPIO_P9_P97_SHIFT                       (7u)
+
+#define GPIO_PSR9_PSR90_SHIFT                   (0u)
+#define GPIO_PSR9_PSR91_SHIFT                   (1u)
+#define GPIO_PSR9_PSR92_SHIFT                   (2u)
+#define GPIO_PSR9_PSR93_SHIFT                   (3u)
+#define GPIO_PSR9_PSR94_SHIFT                   (4u)
+#define GPIO_PSR9_PSR95_SHIFT                   (5u)
+#define GPIO_PSR9_PSR96_SHIFT                   (6u)
+#define GPIO_PSR9_PSR97_SHIFT                   (7u)
+#define GPIO_PSR9_PSR916_SHIFT                  (16u)
+#define GPIO_PSR9_PSR917_SHIFT                  (17u)
+#define GPIO_PSR9_PSR918_SHIFT                  (18u)
+#define GPIO_PSR9_PSR919_SHIFT                  (19u)
+#define GPIO_PSR9_PSR920_SHIFT                  (20u)
+#define GPIO_PSR9_PSR921_SHIFT                  (21u)
+#define GPIO_PSR9_PSR922_SHIFT                  (22u)
+#define GPIO_PSR9_PSR923_SHIFT                  (23u)
+
+#define GPIO_PPR9_PPR90_SHIFT                   (0u)
+#define GPIO_PPR9_PPR91_SHIFT                   (1u)
+#define GPIO_PPR9_PPR92_SHIFT                   (2u)
+#define GPIO_PPR9_PPR93_SHIFT                   (3u)
+#define GPIO_PPR9_PPR94_SHIFT                   (4u)
+#define GPIO_PPR9_PPR95_SHIFT                   (5u)
+#define GPIO_PPR9_PPR96_SHIFT                   (6u)
+#define GPIO_PPR9_PPR97_SHIFT                   (7u)
+
+#define GPIO_PM9_PM90_SHIFT                     (0u)
+#define GPIO_PM9_PM91_SHIFT                     (1u)
+#define GPIO_PM9_PM92_SHIFT                     (2u)
+#define GPIO_PM9_PM93_SHIFT                     (3u)
+#define GPIO_PM9_PM94_SHIFT                     (4u)
+#define GPIO_PM9_PM95_SHIFT                     (5u)
+#define GPIO_PM9_PM96_SHIFT                     (6u)
+#define GPIO_PM9_PM97_SHIFT                     (7u)
+
+#define GPIO_PMC9_PMC90_SHIFT                   (0u)
+#define GPIO_PMC9_PMC91_SHIFT                   (1u)
+#define GPIO_PMC9_PMC92_SHIFT                   (2u)
+#define GPIO_PMC9_PMC93_SHIFT                   (3u)
+#define GPIO_PMC9_PMC94_SHIFT                   (4u)
+#define GPIO_PMC9_PMC95_SHIFT                   (5u)
+#define GPIO_PMC9_PMC96_SHIFT                   (6u)
+#define GPIO_PMC9_PMC97_SHIFT                   (7u)
+
+#define GPIO_PFC9_PFC90_SHIFT                   (0u)
+#define GPIO_PFC9_PFC91_SHIFT                   (1u)
+#define GPIO_PFC9_PFC92_SHIFT                   (2u)
+#define GPIO_PFC9_PFC93_SHIFT                   (3u)
+#define GPIO_PFC9_PFC94_SHIFT                   (4u)
+#define GPIO_PFC9_PFC95_SHIFT                   (5u)
+#define GPIO_PFC9_PFC96_SHIFT                   (6u)
+#define GPIO_PFC9_PFC97_SHIFT                   (7u)
+
+#define GPIO_PFCE9_PFCE90_SHIFT                 (0u)
+#define GPIO_PFCE9_PFCE91_SHIFT                 (1u)
+#define GPIO_PFCE9_PFCE92_SHIFT                 (2u)
+#define GPIO_PFCE9_PFCE93_SHIFT                 (3u)
+#define GPIO_PFCE9_PFCE94_SHIFT                 (4u)
+#define GPIO_PFCE9_PFCE95_SHIFT                 (5u)
+#define GPIO_PFCE9_PFCE96_SHIFT                 (6u)
+#define GPIO_PFCE9_PFCE97_SHIFT                 (7u)
+
+#define GPIO_PNOT9_PNOT90_SHIFT                 (0u)
+#define GPIO_PNOT9_PNOT91_SHIFT                 (1u)
+#define GPIO_PNOT9_PNOT92_SHIFT                 (2u)
+#define GPIO_PNOT9_PNOT93_SHIFT                 (3u)
+#define GPIO_PNOT9_PNOT94_SHIFT                 (4u)
+#define GPIO_PNOT9_PNOT95_SHIFT                 (5u)
+#define GPIO_PNOT9_PNOT96_SHIFT                 (6u)
+#define GPIO_PNOT9_PNOT97_SHIFT                 (7u)
+
+#define GPIO_PMSR9_PMSR90_SHIFT                 (0u)
+#define GPIO_PMSR9_PMSR91_SHIFT                 (1u)
+#define GPIO_PMSR9_PMSR92_SHIFT                 (2u)
+#define GPIO_PMSR9_PMSR93_SHIFT                 (3u)
+#define GPIO_PMSR9_PMSR94_SHIFT                 (4u)
+#define GPIO_PMSR9_PMSR95_SHIFT                 (5u)
+#define GPIO_PMSR9_PMSR96_SHIFT                 (6u)
+#define GPIO_PMSR9_PMSR97_SHIFT                 (7u)
+#define GPIO_PMSR9_PMSR916_SHIFT                (16u)
+#define GPIO_PMSR9_PMSR917_SHIFT                (17u)
+#define GPIO_PMSR9_PMSR918_SHIFT                (18u)
+#define GPIO_PMSR9_PMSR919_SHIFT                (19u)
+#define GPIO_PMSR9_PMSR920_SHIFT                (20u)
+#define GPIO_PMSR9_PMSR921_SHIFT                (21u)
+#define GPIO_PMSR9_PMSR922_SHIFT                (22u)
+#define GPIO_PMSR9_PMSR923_SHIFT                (23u)
+
+#define GPIO_PMCSR9_PMCSR90_SHIFT               (0u)
+#define GPIO_PMCSR9_PMCSR91_SHIFT               (1u)
+#define GPIO_PMCSR9_PMCSR92_SHIFT               (2u)
+#define GPIO_PMCSR9_PMCSR93_SHIFT               (3u)
+#define GPIO_PMCSR9_PMCSR94_SHIFT               (4u)
+#define GPIO_PMCSR9_PMCSR95_SHIFT               (5u)
+#define GPIO_PMCSR9_PMCSR96_SHIFT               (6u)
+#define GPIO_PMCSR9_PMCSR97_SHIFT               (7u)
+#define GPIO_PMCSR9_PMCSR916_SHIFT              (16u)
+#define GPIO_PMCSR9_PMCSR917_SHIFT              (17u)
+#define GPIO_PMCSR9_PMCSR918_SHIFT              (18u)
+#define GPIO_PMCSR9_PMCSR919_SHIFT              (19u)
+#define GPIO_PMCSR9_PMCSR920_SHIFT              (20u)
+#define GPIO_PMCSR9_PMCSR921_SHIFT              (21u)
+#define GPIO_PMCSR9_PMCSR922_SHIFT              (22u)
+#define GPIO_PMCSR9_PMCSR923_SHIFT              (23u)
+
+#define GPIO_PFCAE9_PFCAE90_SHIFT               (0u)
+#define GPIO_PFCAE9_PFCAE91_SHIFT               (1u)
+#define GPIO_PFCAE9_PFCAE92_SHIFT               (2u)
+#define GPIO_PFCAE9_PFCAE93_SHIFT               (3u)
+#define GPIO_PFCAE9_PFCAE94_SHIFT               (4u)
+#define GPIO_PFCAE9_PFCAE95_SHIFT               (5u)
+#define GPIO_PFCAE9_PFCAE96_SHIFT               (6u)
+#define GPIO_PFCAE9_PFCAE97_SHIFT               (7u)
+
+#define GPIO_PIBC9_PIBC90_SHIFT                 (0u)
+#define GPIO_PIBC9_PIBC91_SHIFT                 (1u)
+#define GPIO_PIBC9_PIBC92_SHIFT                 (2u)
+#define GPIO_PIBC9_PIBC93_SHIFT                 (3u)
+#define GPIO_PIBC9_PIBC94_SHIFT                 (4u)
+#define GPIO_PIBC9_PIBC95_SHIFT                 (5u)
+#define GPIO_PIBC9_PIBC96_SHIFT                 (6u)
+#define GPIO_PIBC9_PIBC97_SHIFT                 (7u)
+
+#define GPIO_PBDC9_PBDC90_SHIFT                 (0u)
+#define GPIO_PBDC9_PBDC91_SHIFT                 (1u)
+#define GPIO_PBDC9_PBDC92_SHIFT                 (2u)
+#define GPIO_PBDC9_PBDC93_SHIFT                 (3u)
+#define GPIO_PBDC9_PBDC94_SHIFT                 (4u)
+#define GPIO_PBDC9_PBDC95_SHIFT                 (5u)
+#define GPIO_PBDC9_PBDC96_SHIFT                 (6u)
+#define GPIO_PBDC9_PBDC97_SHIFT                 (7u)
+
+#define GPIO_PIPC9_PIPC90_SHIFT                 (0u)
+#define GPIO_PIPC9_PIPC91_SHIFT                 (1u)
+#define GPIO_PIPC9_PIPC92_SHIFT                 (2u)
+#define GPIO_PIPC9_PIPC93_SHIFT                 (3u)
+#define GPIO_PIPC9_PIPC94_SHIFT                 (4u)
+#define GPIO_PIPC9_PIPC95_SHIFT                 (5u)
+#define GPIO_PIPC9_PIPC96_SHIFT                 (6u)
+#define GPIO_PIPC9_PIPC97_SHIFT                 (7u)
+
+/* ---- P10 ---- */
+#define GPIO_P10_P100_SHIFT                     (0u)
+#define GPIO_P10_P101_SHIFT                     (1u)
+#define GPIO_P10_P102_SHIFT                     (2u)
+#define GPIO_P10_P103_SHIFT                     (3u)
+#define GPIO_P10_P104_SHIFT                     (4u)
+#define GPIO_P10_P105_SHIFT                     (5u)
+#define GPIO_P10_P106_SHIFT                     (6u)
+#define GPIO_P10_P107_SHIFT                     (7u)
+#define GPIO_P10_P108_SHIFT                     (8u)
+#define GPIO_P10_P109_SHIFT                     (9u)
+#define GPIO_P10_P1010_SHIFT                    (10u)
+#define GPIO_P10_P1011_SHIFT                    (11u)
+#define GPIO_P10_P1012_SHIFT                    (12u)
+#define GPIO_P10_P1013_SHIFT                    (13u)
+#define GPIO_P10_P1014_SHIFT                    (14u)
+#define GPIO_P10_P1015_SHIFT                    (15u)
+
+#define GPIO_PSR10_PSR100_SHIFT                 (0u)
+#define GPIO_PSR10_PSR101_SHIFT                 (1u)
+#define GPIO_PSR10_PSR102_SHIFT                 (2u)
+#define GPIO_PSR10_PSR103_SHIFT                 (3u)
+#define GPIO_PSR10_PSR104_SHIFT                 (4u)
+#define GPIO_PSR10_PSR105_SHIFT                 (5u)
+#define GPIO_PSR10_PSR106_SHIFT                 (6u)
+#define GPIO_PSR10_PSR107_SHIFT                 (7u)
+#define GPIO_PSR10_PSR108_SHIFT                 (8u)
+#define GPIO_PSR10_PSR109_SHIFT                 (9u)
+#define GPIO_PSR10_PSR1010_SHIFT                (10u)
+#define GPIO_PSR10_PSR1011_SHIFT                (11u)
+#define GPIO_PSR10_PSR1012_SHIFT                (12u)
+#define GPIO_PSR10_PSR1013_SHIFT                (13u)
+#define GPIO_PSR10_PSR1014_SHIFT                (14u)
+#define GPIO_PSR10_PSR1015_SHIFT                (15u)
+#define GPIO_PSR10_PSR1016_SHIFT                (16u)
+#define GPIO_PSR10_PSR1017_SHIFT                (17u)
+#define GPIO_PSR10_PSR1018_SHIFT                (18u)
+#define GPIO_PSR10_PSR1019_SHIFT                (19u)
+#define GPIO_PSR10_PSR1020_SHIFT                (20u)
+#define GPIO_PSR10_PSR1021_SHIFT                (21u)
+#define GPIO_PSR10_PSR1022_SHIFT                (22u)
+#define GPIO_PSR10_PSR1023_SHIFT                (23u)
+#define GPIO_PSR10_PSR1024_SHIFT                (24u)
+#define GPIO_PSR10_PSR1025_SHIFT                (25u)
+#define GPIO_PSR10_PSR1026_SHIFT                (26u)
+#define GPIO_PSR10_PSR1027_SHIFT                (27u)
+#define GPIO_PSR10_PSR1028_SHIFT                (28u)
+#define GPIO_PSR10_PSR1029_SHIFT                (29u)
+#define GPIO_PSR10_PSR1030_SHIFT                (30u)
+#define GPIO_PSR10_PSR1031_SHIFT                (31u)
+
+#define GPIO_PPR10_PPR100_SHIFT                 (0u)
+#define GPIO_PPR10_PPR101_SHIFT                 (1u)
+#define GPIO_PPR10_PPR102_SHIFT                 (2u)
+#define GPIO_PPR10_PPR103_SHIFT                 (3u)
+#define GPIO_PPR10_PPR104_SHIFT                 (4u)
+#define GPIO_PPR10_PPR105_SHIFT                 (5u)
+#define GPIO_PPR10_PPR106_SHIFT                 (6u)
+#define GPIO_PPR10_PPR107_SHIFT                 (7u)
+#define GPIO_PPR10_PPR108_SHIFT                 (8u)
+#define GPIO_PPR10_PPR109_SHIFT                 (9u)
+#define GPIO_PPR10_PPR1010_SHIFT                (10u)
+#define GPIO_PPR10_PPR1011_SHIFT                (11u)
+#define GPIO_PPR10_PPR1012_SHIFT                (12u)
+#define GPIO_PPR10_PPR1013_SHIFT                (13u)
+#define GPIO_PPR10_PPR1014_SHIFT                (14u)
+#define GPIO_PPR10_PPR1015_SHIFT                (15u)
+
+#define GPIO_PM10_PM100_SHIFT                   (0u)
+#define GPIO_PM10_PM101_SHIFT                   (1u)
+#define GPIO_PM10_PM102_SHIFT                   (2u)
+#define GPIO_PM10_PM103_SHIFT                   (3u)
+#define GPIO_PM10_PM104_SHIFT                   (4u)
+#define GPIO_PM10_PM105_SHIFT                   (5u)
+#define GPIO_PM10_PM106_SHIFT                   (6u)
+#define GPIO_PM10_PM107_SHIFT                   (7u)
+#define GPIO_PM10_PM108_SHIFT                   (8u)
+#define GPIO_PM10_PM109_SHIFT                   (9u)
+#define GPIO_PM10_PM1010_SHIFT                  (10u)
+#define GPIO_PM10_PM1011_SHIFT                  (11u)
+#define GPIO_PM10_PM1012_SHIFT                  (12u)
+#define GPIO_PM10_PM1013_SHIFT                  (13u)
+#define GPIO_PM10_PM1014_SHIFT                  (14u)
+#define GPIO_PM10_PM1015_SHIFT                  (15u)
+
+#define GPIO_PMC10_PMC100_SHIFT                 (0u)
+#define GPIO_PMC10_PMC101_SHIFT                 (1u)
+#define GPIO_PMC10_PMC102_SHIFT                 (2u)
+#define GPIO_PMC10_PMC103_SHIFT                 (3u)
+#define GPIO_PMC10_PMC104_SHIFT                 (4u)
+#define GPIO_PMC10_PMC105_SHIFT                 (5u)
+#define GPIO_PMC10_PMC106_SHIFT                 (6u)
+#define GPIO_PMC10_PMC107_SHIFT                 (7u)
+#define GPIO_PMC10_PMC108_SHIFT                 (8u)
+#define GPIO_PMC10_PMC109_SHIFT                 (9u)
+#define GPIO_PMC10_PMC1010_SHIFT                (10u)
+#define GPIO_PMC10_PMC1011_SHIFT                (11u)
+#define GPIO_PMC10_PMC1012_SHIFT                (12u)
+#define GPIO_PMC10_PMC1013_SHIFT                (13u)
+#define GPIO_PMC10_PMC1014_SHIFT                (14u)
+#define GPIO_PMC10_PMC1015_SHIFT                (15u)
+
+#define GPIO_PFC10_PFC100_SHIFT                 (0u)
+#define GPIO_PFC10_PFC101_SHIFT                 (1u)
+#define GPIO_PFC10_PFC102_SHIFT                 (2u)
+#define GPIO_PFC10_PFC103_SHIFT                 (3u)
+#define GPIO_PFC10_PFC104_SHIFT                 (4u)
+#define GPIO_PFC10_PFC105_SHIFT                 (5u)
+#define GPIO_PFC10_PFC106_SHIFT                 (6u)
+#define GPIO_PFC10_PFC107_SHIFT                 (7u)
+#define GPIO_PFC10_PFC108_SHIFT                 (8u)
+#define GPIO_PFC10_PFC109_SHIFT                 (9u)
+#define GPIO_PFC10_PFC1010_SHIFT                (10u)
+#define GPIO_PFC10_PFC1011_SHIFT                (11u)
+#define GPIO_PFC10_PFC1012_SHIFT                (12u)
+#define GPIO_PFC10_PFC1013_SHIFT                (13u)
+#define GPIO_PFC10_PFC1014_SHIFT                (14u)
+#define GPIO_PFC10_PFC1015_SHIFT                (15u)
+
+#define GPIO_PFCE10_PFCE100_SHIFT               (0u)
+#define GPIO_PFCE10_PFCE101_SHIFT               (1u)
+#define GPIO_PFCE10_PFCE102_SHIFT               (2u)
+#define GPIO_PFCE10_PFCE103_SHIFT               (3u)
+#define GPIO_PFCE10_PFCE104_SHIFT               (4u)
+#define GPIO_PFCE10_PFCE105_SHIFT               (5u)
+#define GPIO_PFCE10_PFCE106_SHIFT               (6u)
+#define GPIO_PFCE10_PFCE107_SHIFT               (7u)
+#define GPIO_PFCE10_PFCE108_SHIFT               (8u)
+#define GPIO_PFCE10_PFCE109_SHIFT               (9u)
+#define GPIO_PFCE10_PFCE1010_SHIFT              (10u)
+#define GPIO_PFCE10_PFCE1011_SHIFT              (11u)
+#define GPIO_PFCE10_PFCE1012_SHIFT              (12u)
+#define GPIO_PFCE10_PFCE1013_SHIFT              (13u)
+#define GPIO_PFCE10_PFCE1014_SHIFT              (14u)
+#define GPIO_PFCE10_PFCE1015_SHIFT              (15u)
+
+#define GPIO_PNOT10_PNOT100_SHIFT               (0u)
+#define GPIO_PNOT10_PNOT101_SHIFT               (1u)
+#define GPIO_PNOT10_PNOT102_SHIFT               (2u)
+#define GPIO_PNOT10_PNOT103_SHIFT               (3u)
+#define GPIO_PNOT10_PNOT104_SHIFT               (4u)
+#define GPIO_PNOT10_PNOT105_SHIFT               (5u)
+#define GPIO_PNOT10_PNOT106_SHIFT               (6u)
+#define GPIO_PNOT10_PNOT107_SHIFT               (7u)
+#define GPIO_PNOT10_PNOT108_SHIFT               (8u)
+#define GPIO_PNOT10_PNOT109_SHIFT               (9u)
+#define GPIO_PNOT10_PNOT1010_SHIFT              (10u)
+#define GPIO_PNOT10_PNOT1011_SHIFT              (11u)
+#define GPIO_PNOT10_PNOT1012_SHIFT              (12u)
+#define GPIO_PNOT10_PNOT1013_SHIFT              (13u)
+#define GPIO_PNOT10_PNOT1014_SHIFT              (14u)
+#define GPIO_PNOT10_PNOT1015_SHIFT              (15u)
+
+#define GPIO_PMSR10_PMSR100_SHIFT               (0u)
+#define GPIO_PMSR10_PMSR101_SHIFT               (1u)
+#define GPIO_PMSR10_PMSR102_SHIFT               (2u)
+#define GPIO_PMSR10_PMSR103_SHIFT               (3u)
+#define GPIO_PMSR10_PMSR104_SHIFT               (4u)
+#define GPIO_PMSR10_PMSR105_SHIFT               (5u)
+#define GPIO_PMSR10_PMSR106_SHIFT               (6u)
+#define GPIO_PMSR10_PMSR107_SHIFT               (7u)
+#define GPIO_PMSR10_PMSR108_SHIFT               (8u)
+#define GPIO_PMSR10_PMSR109_SHIFT               (9u)
+#define GPIO_PMSR10_PMSR1010_SHIFT              (10u)
+#define GPIO_PMSR10_PMSR1011_SHIFT              (11u)
+#define GPIO_PMSR10_PMSR1012_SHIFT              (12u)
+#define GPIO_PMSR10_PMSR1013_SHIFT              (13u)
+#define GPIO_PMSR10_PMSR1014_SHIFT              (14u)
+#define GPIO_PMSR10_PMSR1015_SHIFT              (15u)
+#define GPIO_PMSR10_PMSR1016_SHIFT              (16u)
+#define GPIO_PMSR10_PMSR1017_SHIFT              (17u)
+#define GPIO_PMSR10_PMSR1018_SHIFT              (18u)
+#define GPIO_PMSR10_PMSR1019_SHIFT              (19u)
+#define GPIO_PMSR10_PMSR1020_SHIFT              (20u)
+#define GPIO_PMSR10_PMSR1021_SHIFT              (21u)
+#define GPIO_PMSR10_PMSR1022_SHIFT              (22u)
+#define GPIO_PMSR10_PMSR1023_SHIFT              (23u)
+#define GPIO_PMSR10_PMSR1024_SHIFT              (24u)
+#define GPIO_PMSR10_PMSR1025_SHIFT              (25u)
+#define GPIO_PMSR10_PMSR1026_SHIFT              (26u)
+#define GPIO_PMSR10_PMSR1027_SHIFT              (27u)
+#define GPIO_PMSR10_PMSR1028_SHIFT              (28u)
+#define GPIO_PMSR10_PMSR1029_SHIFT              (29u)
+#define GPIO_PMSR10_PMSR1030_SHIFT              (30u)
+#define GPIO_PMSR10_PMSR1031_SHIFT              (31u)
+
+#define GPIO_PMCSR10_PMCSR100_SHIFT             (0u)
+#define GPIO_PMCSR10_PMCSR101_SHIFT             (1u)
+#define GPIO_PMCSR10_PMCSR102_SHIFT             (2u)
+#define GPIO_PMCSR10_PMCSR103_SHIFT             (3u)
+#define GPIO_PMCSR10_PMCSR104_SHIFT             (4u)
+#define GPIO_PMCSR10_PMCSR105_SHIFT             (5u)
+#define GPIO_PMCSR10_PMCSR106_SHIFT             (6u)
+#define GPIO_PMCSR10_PMCSR107_SHIFT             (7u)
+#define GPIO_PMCSR10_PMCSR108_SHIFT             (8u)
+#define GPIO_PMCSR10_PMCSR109_SHIFT             (9u)
+#define GPIO_PMCSR10_PMCSR1010_SHIFT            (10u)
+#define GPIO_PMCSR10_PMCSR1011_SHIFT            (11u)
+#define GPIO_PMCSR10_PMCSR1012_SHIFT            (12u)
+#define GPIO_PMCSR10_PMCSR1013_SHIFT            (13u)
+#define GPIO_PMCSR10_PMCSR1014_SHIFT            (14u)
+#define GPIO_PMCSR10_PMCSR1015_SHIFT            (15u)
+#define GPIO_PMCSR10_PMCSR1016_SHIFT            (16u)
+#define GPIO_PMCSR10_PMCSR1017_SHIFT            (17u)
+#define GPIO_PMCSR10_PMCSR1018_SHIFT            (18u)
+#define GPIO_PMCSR10_PMCSR1019_SHIFT            (19u)
+#define GPIO_PMCSR10_PMCSR1020_SHIFT            (20u)
+#define GPIO_PMCSR10_PMCSR1021_SHIFT            (21u)
+#define GPIO_PMCSR10_PMCSR1022_SHIFT            (22u)
+#define GPIO_PMCSR10_PMCSR1023_SHIFT            (23u)
+#define GPIO_PMCSR10_PMCSR1024_SHIFT            (24u)
+#define GPIO_PMCSR10_PMCSR1025_SHIFT            (25u)
+#define GPIO_PMCSR10_PMCSR1026_SHIFT            (26u)
+#define GPIO_PMCSR10_PMCSR1027_SHIFT            (27u)
+#define GPIO_PMCSR10_PMCSR1028_SHIFT            (28u)
+#define GPIO_PMCSR10_PMCSR1029_SHIFT            (29u)
+#define GPIO_PMCSR10_PMCSR1030_SHIFT            (30u)
+#define GPIO_PMCSR10_PMCSR1031_SHIFT            (31u)
+
+#define GPIO_PFCAE10_PFCAE100_SHIFT             (0u)
+#define GPIO_PFCAE10_PFCAE101_SHIFT             (1u)
+#define GPIO_PFCAE10_PFCAE102_SHIFT             (2u)
+#define GPIO_PFCAE10_PFCAE103_SHIFT             (3u)
+#define GPIO_PFCAE10_PFCAE104_SHIFT             (4u)
+#define GPIO_PFCAE10_PFCAE105_SHIFT             (5u)
+#define GPIO_PFCAE10_PFCAE106_SHIFT             (6u)
+#define GPIO_PFCAE10_PFCAE107_SHIFT             (7u)
+#define GPIO_PFCAE10_PFCAE108_SHIFT             (8u)
+#define GPIO_PFCAE10_PFCAE109_SHIFT             (9u)
+#define GPIO_PFCAE10_PFCAE1010_SHIFT            (10u)
+#define GPIO_PFCAE10_PFCAE1011_SHIFT            (11u)
+#define GPIO_PFCAE10_PFCAE1012_SHIFT            (12u)
+#define GPIO_PFCAE10_PFCAE1013_SHIFT            (13u)
+#define GPIO_PFCAE10_PFCAE1014_SHIFT            (14u)
+#define GPIO_PFCAE10_PFCAE1015_SHIFT            (15u)
+
+#define GPIO_PIBC10_PIBC100_SHIFT               (0u)
+#define GPIO_PIBC10_PIBC101_SHIFT               (1u)
+#define GPIO_PIBC10_PIBC102_SHIFT               (2u)
+#define GPIO_PIBC10_PIBC103_SHIFT               (3u)
+#define GPIO_PIBC10_PIBC104_SHIFT               (4u)
+#define GPIO_PIBC10_PIBC105_SHIFT               (5u)
+#define GPIO_PIBC10_PIBC106_SHIFT               (6u)
+#define GPIO_PIBC10_PIBC107_SHIFT               (7u)
+#define GPIO_PIBC10_PIBC108_SHIFT               (8u)
+#define GPIO_PIBC10_PIBC109_SHIFT               (9u)
+#define GPIO_PIBC10_PIBC1010_SHIFT              (10u)
+#define GPIO_PIBC10_PIBC1011_SHIFT              (11u)
+#define GPIO_PIBC10_PIBC1012_SHIFT              (12u)
+#define GPIO_PIBC10_PIBC1013_SHIFT              (13u)
+#define GPIO_PIBC10_PIBC1014_SHIFT              (14u)
+#define GPIO_PIBC10_PIBC1015_SHIFT              (15u)
+
+#define GPIO_PBDC10_PBDC100_SHIFT               (0u)
+#define GPIO_PBDC10_PBDC101_SHIFT               (1u)
+#define GPIO_PBDC10_PBDC102_SHIFT               (2u)
+#define GPIO_PBDC10_PBDC103_SHIFT               (3u)
+#define GPIO_PBDC10_PBDC104_SHIFT               (4u)
+#define GPIO_PBDC10_PBDC105_SHIFT               (5u)
+#define GPIO_PBDC10_PBDC106_SHIFT               (6u)
+#define GPIO_PBDC10_PBDC107_SHIFT               (7u)
+#define GPIO_PBDC10_PBDC108_SHIFT               (8u)
+#define GPIO_PBDC10_PBDC109_SHIFT               (9u)
+#define GPIO_PBDC10_PBDC1010_SHIFT              (10u)
+#define GPIO_PBDC10_PBDC1011_SHIFT              (11u)
+#define GPIO_PBDC10_PBDC1012_SHIFT              (12u)
+#define GPIO_PBDC10_PBDC1013_SHIFT              (13u)
+#define GPIO_PBDC10_PBDC1014_SHIFT              (14u)
+#define GPIO_PBDC10_PBDC1015_SHIFT              (15u)
+
+#define GPIO_PIPC10_PIPC100_SHIFT               (0u)
+#define GPIO_PIPC10_PIPC101_SHIFT               (1u)
+#define GPIO_PIPC10_PIPC102_SHIFT               (2u)
+#define GPIO_PIPC10_PIPC103_SHIFT               (3u)
+#define GPIO_PIPC10_PIPC104_SHIFT               (4u)
+#define GPIO_PIPC10_PIPC105_SHIFT               (5u)
+#define GPIO_PIPC10_PIPC106_SHIFT               (6u)
+#define GPIO_PIPC10_PIPC107_SHIFT               (7u)
+#define GPIO_PIPC10_PIPC108_SHIFT               (8u)
+#define GPIO_PIPC10_PIPC109_SHIFT               (9u)
+#define GPIO_PIPC10_PIPC1010_SHIFT              (10u)
+#define GPIO_PIPC10_PIPC1011_SHIFT              (11u)
+#define GPIO_PIPC10_PIPC1012_SHIFT              (12u)
+#define GPIO_PIPC10_PIPC1013_SHIFT              (13u)
+#define GPIO_PIPC10_PIPC1014_SHIFT              (14u)
+#define GPIO_PIPC10_PIPC1015_SHIFT              (15u)
+
+/* ---- P11 ---- */
+#define GPIO_P11_P110_SHIFT                     (0u)
+#define GPIO_P11_P111_SHIFT                     (1u)
+#define GPIO_P11_P112_SHIFT                     (2u)
+#define GPIO_P11_P113_SHIFT                     (3u)
+#define GPIO_P11_P114_SHIFT                     (4u)
+#define GPIO_P11_P115_SHIFT                     (5u)
+#define GPIO_P11_P116_SHIFT                     (6u)
+#define GPIO_P11_P117_SHIFT                     (7u)
+#define GPIO_P11_P118_SHIFT                     (8u)
+#define GPIO_P11_P119_SHIFT                     (9u)
+#define GPIO_P11_P1110_SHIFT                    (10u)
+#define GPIO_P11_P1111_SHIFT                    (11u)
+#define GPIO_P11_P1112_SHIFT                    (12u)
+#define GPIO_P11_P1113_SHIFT                    (13u)
+#define GPIO_P11_P1114_SHIFT                    (14u)
+#define GPIO_P11_P1115_SHIFT                    (15u)
+
+#define GPIO_PSR11_PSR110_SHIFT                 (0u)
+#define GPIO_PSR11_PSR111_SHIFT                 (1u)
+#define GPIO_PSR11_PSR112_SHIFT                 (2u)
+#define GPIO_PSR11_PSR113_SHIFT                 (3u)
+#define GPIO_PSR11_PSR114_SHIFT                 (4u)
+#define GPIO_PSR11_PSR115_SHIFT                 (5u)
+#define GPIO_PSR11_PSR116_SHIFT                 (6u)
+#define GPIO_PSR11_PSR117_SHIFT                 (7u)
+#define GPIO_PSR11_PSR118_SHIFT                 (8u)
+#define GPIO_PSR11_PSR119_SHIFT                 (9u)
+#define GPIO_PSR11_PSR1110_SHIFT                (10u)
+#define GPIO_PSR11_PSR1111_SHIFT                (11u)
+#define GPIO_PSR11_PSR1112_SHIFT                (12u)
+#define GPIO_PSR11_PSR1113_SHIFT                (13u)
+#define GPIO_PSR11_PSR1114_SHIFT                (14u)
+#define GPIO_PSR11_PSR1115_SHIFT                (15u)
+#define GPIO_PSR11_PSR1116_SHIFT                (16u)
+#define GPIO_PSR11_PSR1117_SHIFT                (17u)
+#define GPIO_PSR11_PSR1118_SHIFT                (18u)
+#define GPIO_PSR11_PSR1119_SHIFT                (19u)
+#define GPIO_PSR11_PSR1120_SHIFT                (20u)
+#define GPIO_PSR11_PSR1121_SHIFT                (21u)
+#define GPIO_PSR11_PSR1122_SHIFT                (22u)
+#define GPIO_PSR11_PSR1123_SHIFT                (23u)
+#define GPIO_PSR11_PSR1124_SHIFT                (24u)
+#define GPIO_PSR11_PSR1125_SHIFT                (25u)
+#define GPIO_PSR11_PSR1126_SHIFT                (26u)
+#define GPIO_PSR11_PSR1127_SHIFT                (27u)
+#define GPIO_PSR11_PSR1128_SHIFT                (28u)
+#define GPIO_PSR11_PSR1129_SHIFT                (29u)
+#define GPIO_PSR11_PSR1130_SHIFT                (30u)
+#define GPIO_PSR11_PSR1131_SHIFT                (31u)
+
+#define GPIO_PPR11_PPR110_SHIFT                 (0u)
+#define GPIO_PPR11_PPR111_SHIFT                 (1u)
+#define GPIO_PPR11_PPR112_SHIFT                 (2u)
+#define GPIO_PPR11_PPR113_SHIFT                 (3u)
+#define GPIO_PPR11_PPR114_SHIFT                 (4u)
+#define GPIO_PPR11_PPR115_SHIFT                 (5u)
+#define GPIO_PPR11_PPR116_SHIFT                 (6u)
+#define GPIO_PPR11_PPR117_SHIFT                 (7u)
+#define GPIO_PPR11_PPR118_SHIFT                 (8u)
+#define GPIO_PPR11_PPR119_SHIFT                 (9u)
+#define GPIO_PPR11_PPR1110_SHIFT                (10u)
+#define GPIO_PPR11_PPR1111_SHIFT                (11u)
+#define GPIO_PPR11_PPR1112_SHIFT                (12u)
+#define GPIO_PPR11_PPR1113_SHIFT                (13u)
+#define GPIO_PPR11_PPR1114_SHIFT                (14u)
+#define GPIO_PPR11_PPR1115_SHIFT                (15u)
+
+#define GPIO_PM11_PM110_SHIFT                   (0u)
+#define GPIO_PM11_PM111_SHIFT                   (1u)
+#define GPIO_PM11_PM112_SHIFT                   (2u)
+#define GPIO_PM11_PM113_SHIFT                   (3u)
+#define GPIO_PM11_PM114_SHIFT                   (4u)
+#define GPIO_PM11_PM115_SHIFT                   (5u)
+#define GPIO_PM11_PM116_SHIFT                   (6u)
+#define GPIO_PM11_PM117_SHIFT                   (7u)
+#define GPIO_PM11_PM118_SHIFT                   (8u)
+#define GPIO_PM11_PM119_SHIFT                   (9u)
+#define GPIO_PM11_PM1110_SHIFT                  (10u)
+#define GPIO_PM11_PM1111_SHIFT                  (11u)
+#define GPIO_PM11_PM1112_SHIFT                  (12u)
+#define GPIO_PM11_PM1113_SHIFT                  (13u)
+#define GPIO_PM11_PM1114_SHIFT                  (14u)
+#define GPIO_PM11_PM1115_SHIFT                  (15u)
+
+#define GPIO_PMC11_PMC110_SHIFT                 (0u)
+#define GPIO_PMC11_PMC111_SHIFT                 (1u)
+#define GPIO_PMC11_PMC112_SHIFT                 (2u)
+#define GPIO_PMC11_PMC113_SHIFT                 (3u)
+#define GPIO_PMC11_PMC114_SHIFT                 (4u)
+#define GPIO_PMC11_PMC115_SHIFT                 (5u)
+#define GPIO_PMC11_PMC116_SHIFT                 (6u)
+#define GPIO_PMC11_PMC117_SHIFT                 (7u)
+#define GPIO_PMC11_PMC118_SHIFT                 (8u)
+#define GPIO_PMC11_PMC119_SHIFT                 (9u)
+#define GPIO_PMC11_PMC1110_SHIFT                (10u)
+#define GPIO_PMC11_PMC1111_SHIFT                (11u)
+#define GPIO_PMC11_PMC1112_SHIFT                (12u)
+#define GPIO_PMC11_PMC1113_SHIFT                (13u)
+#define GPIO_PMC11_PMC1114_SHIFT                (14u)
+#define GPIO_PMC11_PMC1115_SHIFT                (15u)
+
+#define GPIO_PFC11_PFC110_SHIFT                 (0u)
+#define GPIO_PFC11_PFC111_SHIFT                 (1u)
+#define GPIO_PFC11_PFC112_SHIFT                 (2u)
+#define GPIO_PFC11_PFC113_SHIFT                 (3u)
+#define GPIO_PFC11_PFC114_SHIFT                 (4u)
+#define GPIO_PFC11_PFC115_SHIFT                 (5u)
+#define GPIO_PFC11_PFC116_SHIFT                 (6u)
+#define GPIO_PFC11_PFC117_SHIFT                 (7u)
+#define GPIO_PFC11_PFC118_SHIFT                 (8u)
+#define GPIO_PFC11_PFC119_SHIFT                 (9u)
+#define GPIO_PFC11_PFC1110_SHIFT                (10u)
+#define GPIO_PFC11_PFC1111_SHIFT                (11u)
+#define GPIO_PFC11_PFC1112_SHIFT                (12u)
+#define GPIO_PFC11_PFC1113_SHIFT                (13u)
+#define GPIO_PFC11_PFC1114_SHIFT                (14u)
+#define GPIO_PFC11_PFC1115_SHIFT                (15u)
+
+#define GPIO_PFCE11_PFCE110_SHIFT               (0u)
+#define GPIO_PFCE11_PFCE111_SHIFT               (1u)
+#define GPIO_PFCE11_PFCE112_SHIFT               (2u)
+#define GPIO_PFCE11_PFCE113_SHIFT               (3u)
+#define GPIO_PFCE11_PFCE114_SHIFT               (4u)
+#define GPIO_PFCE11_PFCE115_SHIFT               (5u)
+#define GPIO_PFCE11_PFCE116_SHIFT               (6u)
+#define GPIO_PFCE11_PFCE117_SHIFT               (7u)
+#define GPIO_PFCE11_PFCE118_SHIFT               (8u)
+#define GPIO_PFCE11_PFCE119_SHIFT               (9u)
+#define GPIO_PFCE11_PFCE1110_SHIFT              (10u)
+#define GPIO_PFCE11_PFCE1111_SHIFT              (11u)
+#define GPIO_PFCE11_PFCE1112_SHIFT              (12u)
+#define GPIO_PFCE11_PFCE1113_SHIFT              (13u)
+#define GPIO_PFCE11_PFCE1114_SHIFT              (14u)
+#define GPIO_PFCE11_PFCE1115_SHIFT              (15u)
+
+#define GPIO_PNOT11_PNOT110_SHIFT               (0u)
+#define GPIO_PNOT11_PNOT111_SHIFT               (1u)
+#define GPIO_PNOT11_PNOT112_SHIFT               (2u)
+#define GPIO_PNOT11_PNOT113_SHIFT               (3u)
+#define GPIO_PNOT11_PNOT114_SHIFT               (4u)
+#define GPIO_PNOT11_PNOT115_SHIFT               (5u)
+#define GPIO_PNOT11_PNOT116_SHIFT               (6u)
+#define GPIO_PNOT11_PNOT117_SHIFT               (7u)
+#define GPIO_PNOT11_PNOT118_SHIFT               (8u)
+#define GPIO_PNOT11_PNOT119_SHIFT               (9u)
+#define GPIO_PNOT11_PNOT1110_SHIFT              (10u)
+#define GPIO_PNOT11_PNOT1111_SHIFT              (11u)
+#define GPIO_PNOT11_PNOT1112_SHIFT              (12u)
+#define GPIO_PNOT11_PNOT1113_SHIFT              (13u)
+#define GPIO_PNOT11_PNOT1114_SHIFT              (14u)
+#define GPIO_PNOT11_PNOT1115_SHIFT              (15u)
+
+#define GPIO_PMSR11_PMSR110_SHIFT               (0u)
+#define GPIO_PMSR11_PMSR111_SHIFT               (1u)
+#define GPIO_PMSR11_PMSR112_SHIFT               (2u)
+#define GPIO_PMSR11_PMSR113_SHIFT               (3u)
+#define GPIO_PMSR11_PMSR114_SHIFT               (4u)
+#define GPIO_PMSR11_PMSR115_SHIFT               (5u)
+#define GPIO_PMSR11_PMSR116_SHIFT               (6u)
+#define GPIO_PMSR11_PMSR117_SHIFT               (7u)
+#define GPIO_PMSR11_PMSR118_SHIFT               (8u)
+#define GPIO_PMSR11_PMSR119_SHIFT               (9u)
+#define GPIO_PMSR11_PMSR1110_SHIFT              (10u)
+#define GPIO_PMSR11_PMSR1111_SHIFT              (11u)
+#define GPIO_PMSR11_PMSR1112_SHIFT              (12u)
+#define GPIO_PMSR11_PMSR1113_SHIFT              (13u)
+#define GPIO_PMSR11_PMSR1114_SHIFT              (14u)
+#define GPIO_PMSR11_PMSR1115_SHIFT              (15u)
+#define GPIO_PMSR11_PMSR1116_SHIFT              (16u)
+#define GPIO_PMSR11_PMSR1117_SHIFT              (17u)
+#define GPIO_PMSR11_PMSR1118_SHIFT              (18u)
+#define GPIO_PMSR11_PMSR1119_SHIFT              (19u)
+#define GPIO_PMSR11_PMSR1120_SHIFT              (20u)
+#define GPIO_PMSR11_PMSR1121_SHIFT              (21u)
+#define GPIO_PMSR11_PMSR1122_SHIFT              (22u)
+#define GPIO_PMSR11_PMSR1123_SHIFT              (23u)
+#define GPIO_PMSR11_PMSR1124_SHIFT              (24u)
+#define GPIO_PMSR11_PMSR1125_SHIFT              (25u)
+#define GPIO_PMSR11_PMSR1126_SHIFT              (26u)
+#define GPIO_PMSR11_PMSR1127_SHIFT              (27u)
+#define GPIO_PMSR11_PMSR1128_SHIFT              (28u)
+#define GPIO_PMSR11_PMSR1129_SHIFT              (29u)
+#define GPIO_PMSR11_PMSR1130_SHIFT              (30u)
+#define GPIO_PMSR11_PMSR1131_SHIFT              (31u)
+
+#define GPIO_PMCSR11_PMCSR110_SHIFT             (0u)
+#define GPIO_PMCSR11_PMCSR111_SHIFT             (1u)
+#define GPIO_PMCSR11_PMCSR112_SHIFT             (2u)
+#define GPIO_PMCSR11_PMCSR113_SHIFT             (3u)
+#define GPIO_PMCSR11_PMCSR114_SHIFT             (4u)
+#define GPIO_PMCSR11_PMCSR115_SHIFT             (5u)
+#define GPIO_PMCSR11_PMCSR116_SHIFT             (6u)
+#define GPIO_PMCSR11_PMCSR117_SHIFT             (7u)
+#define GPIO_PMCSR11_PMCSR118_SHIFT             (8u)
+#define GPIO_PMCSR11_PMCSR119_SHIFT             (9u)
+#define GPIO_PMCSR11_PMCSR1110_SHIFT            (10u)
+#define GPIO_PMCSR11_PMCSR1111_SHIFT            (11u)
+#define GPIO_PMCSR11_PMCSR1112_SHIFT            (12u)
+#define GPIO_PMCSR11_PMCSR1113_SHIFT            (13u)
+#define GPIO_PMCSR11_PMCSR1114_SHIFT            (14u)
+#define GPIO_PMCSR11_PMCSR1115_SHIFT            (15u)
+#define GPIO_PMCSR11_PMCSR1116_SHIFT            (16u)
+#define GPIO_PMCSR11_PMCSR1117_SHIFT            (17u)
+#define GPIO_PMCSR11_PMCSR1118_SHIFT            (18u)
+#define GPIO_PMCSR11_PMCSR1119_SHIFT            (19u)
+#define GPIO_PMCSR11_PMCSR1120_SHIFT            (20u)
+#define GPIO_PMCSR11_PMCSR1121_SHIFT            (21u)
+#define GPIO_PMCSR11_PMCSR1122_SHIFT            (22u)
+#define GPIO_PMCSR11_PMCSR1123_SHIFT            (23u)
+#define GPIO_PMCSR11_PMCSR1124_SHIFT            (24u)
+#define GPIO_PMCSR11_PMCSR1125_SHIFT            (25u)
+#define GPIO_PMCSR11_PMCSR1126_SHIFT            (26u)
+#define GPIO_PMCSR11_PMCSR1127_SHIFT            (27u)
+#define GPIO_PMCSR11_PMCSR1128_SHIFT            (28u)
+#define GPIO_PMCSR11_PMCSR1129_SHIFT            (29u)
+#define GPIO_PMCSR11_PMCSR1130_SHIFT            (30u)
+#define GPIO_PMCSR11_PMCSR1131_SHIFT            (31u)
+
+#define GPIO_PFCAE11_PFCAE110_SHIFT             (0u)
+#define GPIO_PFCAE11_PFCAE111_SHIFT             (1u)
+#define GPIO_PFCAE11_PFCAE112_SHIFT             (2u)
+#define GPIO_PFCAE11_PFCAE113_SHIFT             (3u)
+#define GPIO_PFCAE11_PFCAE114_SHIFT             (4u)
+#define GPIO_PFCAE11_PFCAE115_SHIFT             (5u)
+#define GPIO_PFCAE11_PFCAE116_SHIFT             (6u)
+#define GPIO_PFCAE11_PFCAE117_SHIFT             (7u)
+#define GPIO_PFCAE11_PFCAE118_SHIFT             (8u)
+#define GPIO_PFCAE11_PFCAE119_SHIFT             (9u)
+#define GPIO_PFCAE11_PFCAE1110_SHIFT            (10u)
+#define GPIO_PFCAE11_PFCAE1111_SHIFT            (11u)
+#define GPIO_PFCAE11_PFCAE1112_SHIFT            (12u)
+#define GPIO_PFCAE11_PFCAE1113_SHIFT            (13u)
+#define GPIO_PFCAE11_PFCAE1114_SHIFT            (14u)
+#define GPIO_PFCAE11_PFCAE1115_SHIFT            (15u)
+
+#define GPIO_PIBC11_PIBC110_SHIFT               (0u)
+#define GPIO_PIBC11_PIBC111_SHIFT               (1u)
+#define GPIO_PIBC11_PIBC112_SHIFT               (2u)
+#define GPIO_PIBC11_PIBC113_SHIFT               (3u)
+#define GPIO_PIBC11_PIBC114_SHIFT               (4u)
+#define GPIO_PIBC11_PIBC115_SHIFT               (5u)
+#define GPIO_PIBC11_PIBC116_SHIFT               (6u)
+#define GPIO_PIBC11_PIBC117_SHIFT               (7u)
+#define GPIO_PIBC11_PIBC118_SHIFT               (8u)
+#define GPIO_PIBC11_PIBC119_SHIFT               (9u)
+#define GPIO_PIBC11_PIBC1110_SHIFT              (10u)
+#define GPIO_PIBC11_PIBC1111_SHIFT              (11u)
+#define GPIO_PIBC11_PIBC1112_SHIFT              (12u)
+#define GPIO_PIBC11_PIBC1113_SHIFT              (13u)
+#define GPIO_PIBC11_PIBC1114_SHIFT              (14u)
+#define GPIO_PIBC11_PIBC1115_SHIFT              (15u)
+
+#define GPIO_PBDC11_PBDC110_SHIFT               (0u)
+#define GPIO_PBDC11_PBDC111_SHIFT               (1u)
+#define GPIO_PBDC11_PBDC112_SHIFT               (2u)
+#define GPIO_PBDC11_PBDC113_SHIFT               (3u)
+#define GPIO_PBDC11_PBDC114_SHIFT               (4u)
+#define GPIO_PBDC11_PBDC115_SHIFT               (5u)
+#define GPIO_PBDC11_PBDC116_SHIFT               (6u)
+#define GPIO_PBDC11_PBDC117_SHIFT               (7u)
+#define GPIO_PBDC11_PBDC118_SHIFT               (8u)
+#define GPIO_PBDC11_PBDC119_SHIFT               (9u)
+#define GPIO_PBDC11_PBDC1110_SHIFT              (10u)
+#define GPIO_PBDC11_PBDC1111_SHIFT              (11u)
+#define GPIO_PBDC11_PBDC1112_SHIFT              (12u)
+#define GPIO_PBDC11_PBDC1113_SHIFT              (13u)
+#define GPIO_PBDC11_PBDC1114_SHIFT              (14u)
+#define GPIO_PBDC11_PBDC1115_SHIFT              (15u)
+
+#define GPIO_PIPC11_PIPC110_SHIFT               (0u)
+#define GPIO_PIPC11_PIPC111_SHIFT               (1u)
+#define GPIO_PIPC11_PIPC112_SHIFT               (2u)
+#define GPIO_PIPC11_PIPC113_SHIFT               (3u)
+#define GPIO_PIPC11_PIPC114_SHIFT               (4u)
+#define GPIO_PIPC11_PIPC115_SHIFT               (5u)
+#define GPIO_PIPC11_PIPC116_SHIFT               (6u)
+#define GPIO_PIPC11_PIPC117_SHIFT               (7u)
+#define GPIO_PIPC11_PIPC118_SHIFT               (8u)
+#define GPIO_PIPC11_PIPC119_SHIFT               (9u)
+#define GPIO_PIPC11_PIPC1110_SHIFT              (10u)
+#define GPIO_PIPC11_PIPC1111_SHIFT              (11u)
+#define GPIO_PIPC11_PIPC1112_SHIFT              (12u)
+#define GPIO_PIPC11_PIPC1113_SHIFT              (13u)
+#define GPIO_PIPC11_PIPC1114_SHIFT              (14u)
+#define GPIO_PIPC11_PIPC1115_SHIFT              (15u)
+
+
+#endif /* GPIO_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/intc_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/intc_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/intc_iobitmask.h	(revision 429)
@@ -0,0 +1,11236 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : intc_iobitmask.h
+* $Rev: 1115 $
+* $Date:: 2014-07-09 15:35:02 +0900#$
+* Description : INTC register define header
+*******************************************************************************/
+#ifndef INTC_IOBITMASK_H
+#define INTC_IOBITMASK_H
+
+/* ==== Mask values for IO registers ==== */
+#define INTC_ICDDCR_Enable                      (0x00000001uL)
+
+#define INTC_ICDICTR_ITLinesNumber              (0x0000001FuL)
+#define INTC_ICDICTR_CPUNumber                  (0x000000E0uL)
+#define INTC_ICDICTR_SecurityExtn               (0x00000400uL)
+#define INTC_ICDICTR_LSPI                       (0x0000F800uL)
+
+#define INTC_ICDIIDR_Implementer                (0x00000FFFuL)
+#define INTC_ICDIIDR_Revision                   (0x0000F000uL)
+#define INTC_ICDIIDR_Variant                    (0x000F0000uL)
+#define INTC_ICDIIDR_ProductID                  (0xFF000000uL)
+
+#define INTC_ICDISR0_SW0                        (0x00000001uL)
+#define INTC_ICDISR0_SW1                        (0x00000002uL)
+#define INTC_ICDISR0_SW2                        (0x00000004uL)
+#define INTC_ICDISR0_SW3                        (0x00000008uL)
+#define INTC_ICDISR0_SW4                        (0x00000010uL)
+#define INTC_ICDISR0_SW5                        (0x00000020uL)
+#define INTC_ICDISR0_SW6                        (0x00000040uL)
+#define INTC_ICDISR0_SW7                        (0x00000080uL)
+#define INTC_ICDISR0_SW8                        (0x00000100uL)
+#define INTC_ICDISR0_SW9                        (0x00000200uL)
+#define INTC_ICDISR0_SW10                       (0x00000400uL)
+#define INTC_ICDISR0_SW11                       (0x00000800uL)
+#define INTC_ICDISR0_SW12                       (0x00001000uL)
+#define INTC_ICDISR0_SW13                       (0x00002000uL)
+#define INTC_ICDISR0_SW14                       (0x00004000uL)
+#define INTC_ICDISR0_SW15                       (0x00008000uL)
+#define INTC_ICDISR0_PMUIRQ0                    (0x00010000uL)
+#define INTC_ICDISR0_COMMRX0                    (0x00020000uL)
+#define INTC_ICDISR0_COMMTX0                    (0x00040000uL)
+#define INTC_ICDISR0_CTIIRQ0                    (0x00080000uL)
+
+#define INTC_ICDISR1_IRQ0                       (0x00000001uL)
+#define INTC_ICDISR1_IRQ1                       (0x00000002uL)
+#define INTC_ICDISR1_IRQ2                       (0x00000004uL)
+#define INTC_ICDISR1_IRQ3                       (0x00000008uL)
+#define INTC_ICDISR1_IRQ4                       (0x00000010uL)
+#define INTC_ICDISR1_IRQ5                       (0x00000020uL)
+#define INTC_ICDISR1_IRQ6                       (0x00000040uL)
+#define INTC_ICDISR1_IRQ7                       (0x00000080uL)
+#define INTC_ICDISR1_PL310ERR                   (0x00000100uL)
+#define INTC_ICDISR1_DMAINT0                    (0x00000200uL)
+#define INTC_ICDISR1_DMAINT1                    (0x00000400uL)
+#define INTC_ICDISR1_DMAINT2                    (0x00000800uL)
+#define INTC_ICDISR1_DMAINT3                    (0x00001000uL)
+#define INTC_ICDISR1_DMAINT4                    (0x00002000uL)
+#define INTC_ICDISR1_DMAINT5                    (0x00004000uL)
+#define INTC_ICDISR1_DMAINT6                    (0x00008000uL)
+#define INTC_ICDISR1_DMAINT7                    (0x00010000uL)
+#define INTC_ICDISR1_DMAINT8                    (0x00020000uL)
+#define INTC_ICDISR1_DMAINT9                    (0x00040000uL)
+#define INTC_ICDISR1_DMAINT10                   (0x00080000uL)
+#define INTC_ICDISR1_DMAINT11                   (0x00100000uL)
+#define INTC_ICDISR1_DMAINT12                   (0x00200000uL)
+#define INTC_ICDISR1_DMAINT13                   (0x00400000uL)
+#define INTC_ICDISR1_DMAINT14                   (0x00800000uL)
+#define INTC_ICDISR1_DMAINT15                   (0x01000000uL)
+#define INTC_ICDISR1_DMAERR                     (0x02000000uL)
+
+#define INTC_ICDISR2_USBI0                      (0x00000200uL)
+#define INTC_ICDISR2_USBI1                      (0x00000400uL)
+#define INTC_ICDISR2_S0_VI_VSYNC0               (0x00000800uL)
+#define INTC_ICDISR2_S0_LO_VSYNC0               (0x00001000uL)
+#define INTC_ICDISR2_S0_VSYNCERR0               (0x00002000uL)
+#define INTC_ICDISR2_GR3_VLINE0                 (0x00004000uL)
+#define INTC_ICDISR2_S0_VFIELD0                 (0x00008000uL)
+#define INTC_ICDISR2_IV1_VBUFERR0               (0x00010000uL)
+#define INTC_ICDISR2_IV3_VBUFERR0               (0x00020000uL)
+#define INTC_ICDISR2_IV5_VBUFERR0               (0x00040000uL)
+#define INTC_ICDISR2_IV6_VBUFERR0               (0x00080000uL)
+#define INTC_ICDISR2_S0_WLINE0                  (0x00100000uL)
+#define INTC_ICDISR2_S1_VI_VSYNC0               (0x00200000uL)
+#define INTC_ICDISR2_S1_LO_VSYNC0               (0x00400000uL)
+#define INTC_ICDISR2_S1_VSYNCERR0               (0x00800000uL)
+#define INTC_ICDISR2_S1_VFIELD0                 (0x01000000uL)
+#define INTC_ICDISR2_IV2_VBUFERR0               (0x02000000uL)
+#define INTC_ICDISR2_IV4_VBUFERR0               (0x04000000uL)
+#define INTC_ICDISR2_S1_WLINE0                  (0x08000000uL)
+#define INTC_ICDISR2_OIR_VI_VSYNC0              (0x10000000uL)
+#define INTC_ICDISR2_OIR_LO_VSYNC0              (0x20000000uL)
+#define INTC_ICDISR2_OIR_VSYNCERR0              (0x40000000uL)
+#define INTC_ICDISR2_OIR_VFIELD0                (0x80000000uL)
+
+#define INTC_ICDISR3_IV7_VBUFERR0               (0x00000001uL)
+#define INTC_ICDISR3_IV8_VBUFERR0               (0x00000002uL)
+#define INTC_ICDISR3_S0_VI_VSYNC1               (0x00000008uL)
+#define INTC_ICDISR3_S0_LO_VSYNC1               (0x00000010uL)
+#define INTC_ICDISR3_S0_VSYNCERR1               (0x00000020uL)
+#define INTC_ICDISR3_GR3_VLINE1                 (0x00000040uL)
+#define INTC_ICDISR3_S0_VFIELD1                 (0x00000080uL)
+#define INTC_ICDISR3_IV1_VBUFERR1               (0x00000100uL)
+#define INTC_ICDISR3_IV3_VBUFERR1               (0x00000200uL)
+#define INTC_ICDISR3_IV5_VBUFERR1               (0x00000400uL)
+#define INTC_ICDISR3_IV6_VBUFERR1               (0x00000800uL)
+#define INTC_ICDISR3_S0_WLINE1                  (0x00001000uL)
+#define INTC_ICDISR3_S1_VI_VSYNC1               (0x00002000uL)
+#define INTC_ICDISR3_S1_LO_VSYNC1               (0x00004000uL)
+#define INTC_ICDISR3_S1_VSYNCERR1               (0x00008000uL)
+#define INTC_ICDISR3_S1_VFIELD1                 (0x00010000uL)
+#define INTC_ICDISR3_IV2_VBUFERR1               (0x00020000uL)
+#define INTC_ICDISR3_IV4_VBUFERR1               (0x00040000uL)
+#define INTC_ICDISR3_S1_WLINE1                  (0x00080000uL)
+#define INTC_ICDISR3_OIR_VI_VSYNC1              (0x00100000uL)
+#define INTC_ICDISR3_OIR_LO_VSYNC1              (0x00200000uL)
+#define INTC_ICDISR3_OIR_VLINE1                 (0x00400000uL)
+#define INTC_ICDISR3_OIR_VFIELD1                (0x00800000uL)
+#define INTC_ICDISR3_IV7_VBUFERR1               (0x01000000uL)
+#define INTC_ICDISR3_IV8_VBUFERR1               (0x02000000uL)
+#define INTC_ICDISR3_IMRDI                      (0x08000000uL)
+#define INTC_ICDISR3_IMR2I0                     (0x10000000uL)
+#define INTC_ICDISR3_IMR2I1                     (0x20000000uL)
+#define INTC_ICDISR3_JEDI                       (0x40000000uL)
+#define INTC_ICDISR3_JDTI                       (0x80000000uL)
+
+#define INTC_ICDISR4_CMP0                       (0x00000001uL)
+#define INTC_ICDISR4_CMP1                       (0x00000002uL)
+#define INTC_ICDISR4_INT0                       (0x00000004uL)
+#define INTC_ICDISR4_INT1                       (0x00000008uL)
+#define INTC_ICDISR4_INT2                       (0x00000010uL)
+#define INTC_ICDISR4_INT3                       (0x00000020uL)
+#define INTC_ICDISR4_OSTM0TINT                  (0x00000040uL)
+#define INTC_ICDISR4_OSTM1TINT                  (0x00000080uL)
+#define INTC_ICDISR4_CMI                        (0x00000100uL)
+#define INTC_ICDISR4_WTOUT                      (0x00000200uL)
+#define INTC_ICDISR4_ITI                        (0x00000400uL)
+#define INTC_ICDISR4_TGI0A                      (0x00000800uL)
+#define INTC_ICDISR4_TGI0B                      (0x00001000uL)
+#define INTC_ICDISR4_TGI0C                      (0x00002000uL)
+#define INTC_ICDISR4_TGI0D                      (0x00004000uL)
+#define INTC_ICDISR4_TGI0V                      (0x00008000uL)
+#define INTC_ICDISR4_TGI0E                      (0x00010000uL)
+#define INTC_ICDISR4_TGI0F                      (0x00020000uL)
+#define INTC_ICDISR4_TGI1A                      (0x00040000uL)
+#define INTC_ICDISR4_TGI1B                      (0x00080000uL)
+#define INTC_ICDISR4_TGI1V                      (0x00100000uL)
+#define INTC_ICDISR4_TGI1U                      (0x00200000uL)
+#define INTC_ICDISR4_TGI2A                      (0x00400000uL)
+#define INTC_ICDISR4_TGI2B                      (0x00800000uL)
+#define INTC_ICDISR4_TGI2V                      (0x01000000uL)
+#define INTC_ICDISR4_TGI2U                      (0x02000000uL)
+#define INTC_ICDISR4_TGI3A                      (0x04000000uL)
+#define INTC_ICDISR4_TGI3B                      (0x08000000uL)
+#define INTC_ICDISR4_TGI3C                      (0x10000000uL)
+#define INTC_ICDISR4_TGI3D                      (0x20000000uL)
+#define INTC_ICDISR4_TGI3V                      (0x40000000uL)
+#define INTC_ICDISR4_TGI4A                      (0x80000000uL)
+
+#define INTC_ICDISR5_TGI4B                      (0x00000001uL)
+#define INTC_ICDISR5_TGI4C                      (0x00000002uL)
+#define INTC_ICDISR5_TGI4D                      (0x00000004uL)
+#define INTC_ICDISR5_TGI4V                      (0x00000008uL)
+#define INTC_ICDISR5_CMI1                       (0x00000010uL)
+#define INTC_ICDISR5_CMI2                       (0x00000020uL)
+#define INTC_ICDISR5_SGDEI0                     (0x00000040uL)
+#define INTC_ICDISR5_SGDEI1                     (0x00000080uL)
+#define INTC_ICDISR5_SGDEI2                     (0x00000100uL)
+#define INTC_ICDISR5_SGDEI3                     (0x00000200uL)
+#define INTC_ICDISR5_ADI                        (0x00000400uL)
+#define INTC_ICDISR5_LMTI                       (0x00000800uL)
+#define INTC_ICDISR5_SSII0                      (0x00001000uL)
+#define INTC_ICDISR5_SSIRXI0                    (0x00002000uL)
+#define INTC_ICDISR5_SSITXI0                    (0x00004000uL)
+#define INTC_ICDISR5_SSII1                      (0x00008000uL)
+#define INTC_ICDISR5_SSIRXI1                    (0x00010000uL)
+#define INTC_ICDISR5_SSITXI1                    (0x00020000uL)
+#define INTC_ICDISR5_SSII2                      (0x00040000uL)
+#define INTC_ICDISR5_SSIRTI2                    (0x00080000uL)
+#define INTC_ICDISR5_SSII3                      (0x00100000uL)
+#define INTC_ICDISR5_SSIRXI3                    (0x00200000uL)
+#define INTC_ICDISR5_SSITXI3                    (0x00400000uL)
+#define INTC_ICDISR5_SSII4                      (0x00800000uL)
+#define INTC_ICDISR5_SSIRTI4                    (0x01000000uL)
+#define INTC_ICDISR5_SSII5                      (0x02000000uL)
+#define INTC_ICDISR5_SSIRXI5                    (0x04000000uL)
+#define INTC_ICDISR5_SSITXI5                    (0x08000000uL)
+#define INTC_ICDISR5_SPDIFI                     (0x10000000uL)
+#define INTC_ICDISR5_INTIICTEI0                 (0x20000000uL)
+#define INTC_ICDISR5_INTIICRI0                  (0x40000000uL)
+#define INTC_ICDISR5_INTIICTI0                  (0x80000000uL)
+
+#define INTC_ICDISR6_INTIICSPI0                 (0x00000001uL)
+#define INTC_ICDISR6_INTIICSTI0                 (0x00000002uL)
+#define INTC_ICDISR6_INTIICNAKI0                (0x00000004uL)
+#define INTC_ICDISR6_INTIICALI0                 (0x00000008uL)
+#define INTC_ICDISR6_INTIICTMOI0                (0x00000010uL)
+#define INTC_ICDISR6_INTIICTEI1                 (0x00000020uL)
+#define INTC_ICDISR6_INTIICRI1                  (0x00000040uL)
+#define INTC_ICDISR6_INTIICTI1                  (0x00000080uL)
+#define INTC_ICDISR6_INTIICSPI1                 (0x00000100uL)
+#define INTC_ICDISR6_INTIICSTI1                 (0x00000200uL)
+#define INTC_ICDISR6_INTIICNAKI1                (0x00000400uL)
+#define INTC_ICDISR6_INTIICALI1                 (0x00000800uL)
+#define INTC_ICDISR6_INTIICTMOI1                (0x00001000uL)
+#define INTC_ICDISR6_INTIICTEI2                 (0x00002000uL)
+#define INTC_ICDISR6_INTIICRI2                  (0x00004000uL)
+#define INTC_ICDISR6_INTIICTI2                  (0x00008000uL)
+#define INTC_ICDISR6_INTIICSPI2                 (0x00010000uL)
+#define INTC_ICDISR6_INTIICSTI2                 (0x00020000uL)
+#define INTC_ICDISR6_INTIICNAKI2                (0x00040000uL)
+#define INTC_ICDISR6_INTIICALI2                 (0x00080000uL)
+#define INTC_ICDISR6_INTIICTMOI2                (0x00100000uL)
+#define INTC_ICDISR6_INTIICTEI3                 (0x00200000uL)
+#define INTC_ICDISR6_INTIICRI3                  (0x00400000uL)
+#define INTC_ICDISR6_INTIICTI3                  (0x00800000uL)
+#define INTC_ICDISR6_INTIICSPI3                 (0x01000000uL)
+#define INTC_ICDISR6_INTIICSTI3                 (0x02000000uL)
+#define INTC_ICDISR6_INTIICNAKI3                (0x04000000uL)
+#define INTC_ICDISR6_INTIICALI3                 (0x08000000uL)
+#define INTC_ICDISR6_INTIICTMOI3                (0x10000000uL)
+#define INTC_ICDISR6_BRI0                       (0x20000000uL)
+#define INTC_ICDISR6_ERI0                       (0x40000000uL)
+#define INTC_ICDISR6_RXI0                       (0x80000000uL)
+
+#define INTC_ICDISR7_TXI0                       (0x00000001uL)
+#define INTC_ICDISR7_BRI1                       (0x00000002uL)
+#define INTC_ICDISR7_ERI1                       (0x00000004uL)
+#define INTC_ICDISR7_RXI1                       (0x00000008uL)
+#define INTC_ICDISR7_TXI1                       (0x00000010uL)
+#define INTC_ICDISR7_BRI2                       (0x00000020uL)
+#define INTC_ICDISR7_ERI2                       (0x00000040uL)
+#define INTC_ICDISR7_RXI2                       (0x00000080uL)
+#define INTC_ICDISR7_TXI2                       (0x00000100uL)
+#define INTC_ICDISR7_BRI3                       (0x00000200uL)
+#define INTC_ICDISR7_ERI3                       (0x00000400uL)
+#define INTC_ICDISR7_RXI3                       (0x00000800uL)
+#define INTC_ICDISR7_TXI3                       (0x00001000uL)
+#define INTC_ICDISR7_BRI4                       (0x00002000uL)
+#define INTC_ICDISR7_ERI4                       (0x00004000uL)
+#define INTC_ICDISR7_RXI4                       (0x00008000uL)
+#define INTC_ICDISR7_TXI4                       (0x00010000uL)
+#define INTC_ICDISR7_BRI5                       (0x00020000uL)
+#define INTC_ICDISR7_ERI5                       (0x00040000uL)
+#define INTC_ICDISR7_RXI5                       (0x00080000uL)
+#define INTC_ICDISR7_TXI5                       (0x00100000uL)
+#define INTC_ICDISR7_BRI6                       (0x00200000uL)
+#define INTC_ICDISR7_ERI6                       (0x00400000uL)
+#define INTC_ICDISR7_RXI6                       (0x00800000uL)
+#define INTC_ICDISR7_TXI6                       (0x01000000uL)
+#define INTC_ICDISR7_BRI7                       (0x02000000uL)
+#define INTC_ICDISR7_ERI7                       (0x04000000uL)
+#define INTC_ICDISR7_RXI7                       (0x08000000uL)
+#define INTC_ICDISR7_TXI7                       (0x10000000uL)
+#define INTC_ICDISR7_INTRCANGERR                (0x20000000uL)
+#define INTC_ICDISR7_INTRCANGRECC               (0x40000000uL)
+#define INTC_ICDISR7_INTRCAN0REC                (0x80000000uL)
+
+#define INTC_ICDISR8_INTRCAN0ERR                (0x00000001uL)
+#define INTC_ICDISR8_INTRCAN0TRX                (0x00000002uL)
+#define INTC_ICDISR8_INTRCAN1REC                (0x00000004uL)
+#define INTC_ICDISR8_INTRCAN1ERR                (0x00000008uL)
+#define INTC_ICDISR8_INTRCAN1TRX                (0x00000010uL)
+#define INTC_ICDISR8_INTRCAN2REC                (0x00000020uL)
+#define INTC_ICDISR8_INTRCAN2ERR                (0x00000040uL)
+#define INTC_ICDISR8_INTRCAN2TRX                (0x00000080uL)
+#define INTC_ICDISR8_INTRCAN3REC                (0x00000100uL)
+#define INTC_ICDISR8_INTRCAN3ERR                (0x00000200uL)
+#define INTC_ICDISR8_INTRCAN3TRX                (0x00000400uL)
+#define INTC_ICDISR8_INTRCAN4REC                (0x00000800uL)
+#define INTC_ICDISR8_INTRCAN4ERR                (0x00001000uL)
+#define INTC_ICDISR8_INTRCAN4TRX                (0x00002000uL)
+#define INTC_ICDISR8_SPEI0                      (0x00004000uL)
+#define INTC_ICDISR8_SPRI0                      (0x00008000uL)
+#define INTC_ICDISR8_SPTI0                      (0x00010000uL)
+#define INTC_ICDISR8_SPEI1                      (0x00020000uL)
+#define INTC_ICDISR8_SPRI1                      (0x00040000uL)
+#define INTC_ICDISR8_SPTI1                      (0x00080000uL)
+#define INTC_ICDISR8_SPEI2                      (0x00100000uL)
+#define INTC_ICDISR8_SPRI2                      (0x00200000uL)
+#define INTC_ICDISR8_SPTI2                      (0x00400000uL)
+#define INTC_ICDISR8_SPEI3                      (0x00800000uL)
+#define INTC_ICDISR8_SPRI3                      (0x01000000uL)
+#define INTC_ICDISR8_SPTI3                      (0x02000000uL)
+#define INTC_ICDISR8_SPEI4                      (0x04000000uL)
+#define INTC_ICDISR8_SPRI4                      (0x08000000uL)
+#define INTC_ICDISR8_SPTI4                      (0x10000000uL)
+#define INTC_ICDISR8_IEBBTD                     (0x20000000uL)
+#define INTC_ICDISR8_IEBBTERR                   (0x40000000uL)
+#define INTC_ICDISR8_IEBBTSTA                   (0x80000000uL)
+
+#define INTC_ICDISR9_IEBBTV                     (0x00000001uL)
+#define INTC_ICDISR9_ISY                        (0x00000002uL)
+#define INTC_ICDISR9_IERR                       (0x00000004uL)
+#define INTC_ICDISR9_ITARG                      (0x00000008uL)
+#define INTC_ICDISR9_ISEC                       (0x00000010uL)
+#define INTC_ICDISR9_IBUF                       (0x00000020uL)
+#define INTC_ICDISR9_IREADY                     (0x00000040uL)
+#define INTC_ICDISR9_FLSTE                      (0x00000080uL)
+#define INTC_ICDISR9_FLTENDI                    (0x00000100uL)
+#define INTC_ICDISR9_FLTREQ0I                   (0x00000200uL)
+#define INTC_ICDISR9_FLTREQ1I                   (0x00000400uL)
+#define INTC_ICDISR9_MMC0                       (0x00000800uL)
+#define INTC_ICDISR9_MMC1                       (0x00001000uL)
+#define INTC_ICDISR9_MMC2                       (0x00002000uL)
+#define INTC_ICDISR9_SDHI0_3                    (0x00004000uL)
+#define INTC_ICDISR9_SDHI0_0                    (0x00008000uL)
+#define INTC_ICDISR9_SDHI0_1                    (0x00010000uL)
+#define INTC_ICDISR9_SDHI1_3                    (0x00020000uL)
+#define INTC_ICDISR9_SDHI1_0                    (0x00040000uL)
+#define INTC_ICDISR9_SDHI1_1                    (0x00080000uL)
+#define INTC_ICDISR9_ARM                        (0x00100000uL)
+#define INTC_ICDISR9_PRD                        (0x00200000uL)
+#define INTC_ICDISR9_CUP                        (0x00400000uL)
+#define INTC_ICDISR9_SCUAI0                     (0x00800000uL)
+#define INTC_ICDISR9_SCUAI1                     (0x01000000uL)
+#define INTC_ICDISR9_SCUFDI0                    (0x02000000uL)
+#define INTC_ICDISR9_SCUFDI1                    (0x04000000uL)
+#define INTC_ICDISR9_SCUFDI2                    (0x08000000uL)
+#define INTC_ICDISR9_SCUFDI3                    (0x10000000uL)
+#define INTC_ICDISR9_SCUFUI0                    (0x20000000uL)
+#define INTC_ICDISR9_SCUFUI1                    (0x40000000uL)
+#define INTC_ICDISR9_SCUFUI2                    (0x80000000uL)
+
+#define INTC_ICDISR10_SCUFUI3                   (0x00000001uL)
+#define INTC_ICDISR10_SCUDVI0                   (0x00000002uL)
+#define INTC_ICDISR10_SCUDVI1                   (0x00000004uL)
+#define INTC_ICDISR10_SCUDVI2                   (0x00000008uL)
+#define INTC_ICDISR10_SCUDVI3                   (0x00000010uL)
+#define INTC_ICDISR10_MLB_CINT                  (0x00000020uL)
+#define INTC_ICDISR10_MLB_SINT                  (0x00000040uL)
+#define INTC_ICDISR10_DRC0                      (0x00000080uL)
+#define INTC_ICDISR10_DRC1                      (0x00000100uL)
+#define INTC_ICDISR10_LINI0_INT_T               (0x00000800uL)
+#define INTC_ICDISR10_LINI0_INT_R               (0x00001000uL)
+#define INTC_ICDISR10_LINI0_INT_S               (0x00002000uL)
+#define INTC_ICDISR10_LINI0_INT_M               (0x00004000uL)
+#define INTC_ICDISR10_LINI1_INT_T               (0x00008000uL)
+#define INTC_ICDISR10_LINI1_INT_R               (0x00010000uL)
+#define INTC_ICDISR10_LINI1_INT_S               (0x00020000uL)
+#define INTC_ICDISR10_LINI1_INT_M               (0x00040000uL)
+#define INTC_ICDISR10_ERI0                      (0x08000000uL)
+#define INTC_ICDISR10_RXI0                      (0x10000000uL)
+#define INTC_ICDISR10_TXI0                      (0x20000000uL)
+#define INTC_ICDISR10_TEI0                      (0x40000000uL)
+#define INTC_ICDISR10_ERI1                      (0x80000000uL)
+
+#define INTC_ICDISR11_RXI1                      (0x00000001uL)
+#define INTC_ICDISR11_TXI1                      (0x00000002uL)
+#define INTC_ICDISR11_TEI1                      (0x00000004uL)
+#define INTC_ICDISR11_AVBI_DATA                 (0x00000008uL)
+#define INTC_ICDISR11_AVBI_ERROR                (0x00000010uL)
+#define INTC_ICDISR11_AVBI_MANAGE               (0x00000020uL)
+#define INTC_ICDISR11_AVBI_MAC                  (0x00000040uL)
+#define INTC_ICDISR11_ETHERI                    (0x00000080uL)
+#define INTC_ICDISR11_CEUI                      (0x00001000uL)
+#define INTC_ICDISR11_H2XMLB_ERRINT             (0x20000000uL)
+#define INTC_ICDISR11_H2XIC1_ERRINT             (0x40000000uL)
+#define INTC_ICDISR11_X2HPERI1_ERRINT           (0x80000000uL)
+
+#define INTC_ICDISR12_X2HPERI2_ERRINT           (0x00000001uL)
+#define INTC_ICDISR12_X2HPERI34_ERRINT          (0x00000002uL)
+#define INTC_ICDISR12_X2HPERI5_ERRINT           (0x00000004uL)
+#define INTC_ICDISR12_X2HPERI67_ERRINT          (0x00000008uL)
+#define INTC_ICDISR12_X2HDBGR_ERRINT            (0x00000010uL)
+#define INTC_ICDISR12_X2HBSC_ERRINT             (0x00000020uL)
+#define INTC_ICDISR12_X2HSPI1_ERRINT            (0x00000040uL)
+#define INTC_ICDISR12_X2HSPI2_ERRINT            (0x00000080uL)
+#define INTC_ICDISR12_PRRI                      (0x00000100uL)
+#define INTC_ICDISR12_IFEI0                     (0x00000200uL)
+#define INTC_ICDISR12_OFFI0                     (0x00000400uL)
+#define INTC_ICDISR12_PFVEI0                    (0x00000800uL)
+#define INTC_ICDISR12_IFEI1                     (0x00001000uL)
+#define INTC_ICDISR12_OFFI1                     (0x00002000uL)
+#define INTC_ICDISR12_PFVEI1                    (0x00004000uL)
+
+#define INTC_ICDISR13_TINT0                     (0x00000001uL)
+#define INTC_ICDISR13_TINT1                     (0x00000002uL)
+#define INTC_ICDISR13_TINT2                     (0x00000004uL)
+#define INTC_ICDISR13_TINT3                     (0x00000008uL)
+#define INTC_ICDISR13_TINT4                     (0x00000010uL)
+#define INTC_ICDISR13_TINT5                     (0x00000020uL)
+#define INTC_ICDISR13_TINT6                     (0x00000040uL)
+#define INTC_ICDISR13_TINT7                     (0x00000080uL)
+#define INTC_ICDISR13_TINT8                     (0x00000100uL)
+#define INTC_ICDISR13_TINT9                     (0x00000200uL)
+#define INTC_ICDISR13_TINT10                    (0x00000400uL)
+#define INTC_ICDISR13_TINT11                    (0x00000800uL)
+#define INTC_ICDISR13_TINT12                    (0x00001000uL)
+#define INTC_ICDISR13_TINT13                    (0x00002000uL)
+#define INTC_ICDISR13_TINT14                    (0x00004000uL)
+#define INTC_ICDISR13_TINT15                    (0x00008000uL)
+#define INTC_ICDISR13_TINT16                    (0x00010000uL)
+#define INTC_ICDISR13_TINT17                    (0x00020000uL)
+#define INTC_ICDISR13_TINT18                    (0x00040000uL)
+#define INTC_ICDISR13_TINT19                    (0x00080000uL)
+#define INTC_ICDISR13_TINT20                    (0x00100000uL)
+#define INTC_ICDISR13_TINT21                    (0x00200000uL)
+#define INTC_ICDISR13_TINT22                    (0x00400000uL)
+#define INTC_ICDISR13_TINT23                    (0x00800000uL)
+#define INTC_ICDISR13_TINT24                    (0x01000000uL)
+#define INTC_ICDISR13_TINT25                    (0x02000000uL)
+#define INTC_ICDISR13_TINT26                    (0x04000000uL)
+#define INTC_ICDISR13_TINT27                    (0x08000000uL)
+#define INTC_ICDISR13_TINT28                    (0x10000000uL)
+#define INTC_ICDISR13_TINT29                    (0x20000000uL)
+#define INTC_ICDISR13_TINT30                    (0x40000000uL)
+#define INTC_ICDISR13_TINT31                    (0x80000000uL)
+
+#define INTC_ICDISR14_TINT32                    (0x00000001uL)
+#define INTC_ICDISR14_TINT33                    (0x00000002uL)
+#define INTC_ICDISR14_TINT34                    (0x00000004uL)
+#define INTC_ICDISR14_TINT35                    (0x00000008uL)
+#define INTC_ICDISR14_TINT36                    (0x00000010uL)
+#define INTC_ICDISR14_TINT37                    (0x00000020uL)
+#define INTC_ICDISR14_TINT38                    (0x00000040uL)
+#define INTC_ICDISR14_TINT39                    (0x00000080uL)
+#define INTC_ICDISR14_TINT40                    (0x00000100uL)
+#define INTC_ICDISR14_TINT41                    (0x00000200uL)
+#define INTC_ICDISR14_TINT42                    (0x00000400uL)
+#define INTC_ICDISR14_TINT43                    (0x00000800uL)
+#define INTC_ICDISR14_TINT44                    (0x00001000uL)
+#define INTC_ICDISR14_TINT45                    (0x00002000uL)
+#define INTC_ICDISR14_TINT46                    (0x00004000uL)
+#define INTC_ICDISR14_TINT47                    (0x00008000uL)
+#define INTC_ICDISR14_TINT48                    (0x00010000uL)
+#define INTC_ICDISR14_TINT49                    (0x00020000uL)
+#define INTC_ICDISR14_TINT50                    (0x00040000uL)
+#define INTC_ICDISR14_TINT51                    (0x00080000uL)
+#define INTC_ICDISR14_TINT52                    (0x00100000uL)
+#define INTC_ICDISR14_TINT53                    (0x00200000uL)
+#define INTC_ICDISR14_TINT54                    (0x00400000uL)
+#define INTC_ICDISR14_TINT55                    (0x00800000uL)
+#define INTC_ICDISR14_TINT56                    (0x01000000uL)
+#define INTC_ICDISR14_TINT57                    (0x02000000uL)
+#define INTC_ICDISR14_TINT58                    (0x04000000uL)
+#define INTC_ICDISR14_TINT59                    (0x08000000uL)
+#define INTC_ICDISR14_TINT60                    (0x10000000uL)
+#define INTC_ICDISR14_TINT61                    (0x20000000uL)
+#define INTC_ICDISR14_TINT62                    (0x40000000uL)
+#define INTC_ICDISR14_TINT63                    (0x80000000uL)
+
+#define INTC_ICDISR15_TINT64                    (0x00000001uL)
+#define INTC_ICDISR15_TINT65                    (0x00000002uL)
+#define INTC_ICDISR15_TINT66                    (0x00000004uL)
+#define INTC_ICDISR15_TINT67                    (0x00000008uL)
+#define INTC_ICDISR15_TINT68                    (0x00000010uL)
+#define INTC_ICDISR15_TINT69                    (0x00000020uL)
+#define INTC_ICDISR15_TINT70                    (0x00000040uL)
+#define INTC_ICDISR15_TINT71                    (0x00000080uL)
+#define INTC_ICDISR15_TINT72                    (0x00000100uL)
+#define INTC_ICDISR15_TINT73                    (0x00000200uL)
+#define INTC_ICDISR15_TINT74                    (0x00000400uL)
+#define INTC_ICDISR15_TINT75                    (0x00000800uL)
+#define INTC_ICDISR15_TINT76                    (0x00001000uL)
+#define INTC_ICDISR15_TINT77                    (0x00002000uL)
+#define INTC_ICDISR15_TINT78                    (0x00004000uL)
+#define INTC_ICDISR15_TINT79                    (0x00008000uL)
+#define INTC_ICDISR15_TINT80                    (0x00010000uL)
+#define INTC_ICDISR15_TINT81                    (0x00020000uL)
+#define INTC_ICDISR15_TINT82                    (0x00040000uL)
+#define INTC_ICDISR15_TINT83                    (0x00080000uL)
+#define INTC_ICDISR15_TINT84                    (0x00100000uL)
+#define INTC_ICDISR15_TINT85                    (0x00200000uL)
+#define INTC_ICDISR15_TINT86                    (0x00400000uL)
+#define INTC_ICDISR15_TINT87                    (0x00800000uL)
+#define INTC_ICDISR15_TINT88                    (0x01000000uL)
+#define INTC_ICDISR15_TINT89                    (0x02000000uL)
+#define INTC_ICDISR15_TINT90                    (0x04000000uL)
+#define INTC_ICDISR15_TINT91                    (0x08000000uL)
+#define INTC_ICDISR15_TINT92                    (0x10000000uL)
+#define INTC_ICDISR15_TINT93                    (0x20000000uL)
+#define INTC_ICDISR15_TINT94                    (0x40000000uL)
+#define INTC_ICDISR15_TINT95                    (0x80000000uL)
+
+#define INTC_ICDISR16_TINT96                    (0x00000001uL)
+#define INTC_ICDISR16_TINT97                    (0x00000002uL)
+#define INTC_ICDISR16_TINT98                    (0x00000004uL)
+#define INTC_ICDISR16_TINT99                    (0x00000008uL)
+#define INTC_ICDISR16_TINT100                   (0x00000010uL)
+#define INTC_ICDISR16_TINT101                   (0x00000020uL)
+#define INTC_ICDISR16_TINT102                   (0x00000040uL)
+#define INTC_ICDISR16_TINT103                   (0x00000080uL)
+#define INTC_ICDISR16_TINT104                   (0x00000100uL)
+#define INTC_ICDISR16_TINT105                   (0x00000200uL)
+#define INTC_ICDISR16_TINT106                   (0x00000400uL)
+#define INTC_ICDISR16_TINT107                   (0x00000800uL)
+#define INTC_ICDISR16_TINT108                   (0x00001000uL)
+#define INTC_ICDISR16_TINT109                   (0x00002000uL)
+#define INTC_ICDISR16_TINT110                   (0x00004000uL)
+#define INTC_ICDISR16_TINT111                   (0x00008000uL)
+#define INTC_ICDISR16_TINT112                   (0x00010000uL)
+#define INTC_ICDISR16_TINT113                   (0x00020000uL)
+#define INTC_ICDISR16_TINT114                   (0x00040000uL)
+#define INTC_ICDISR16_TINT115                   (0x00080000uL)
+#define INTC_ICDISR16_TINT116                   (0x00100000uL)
+#define INTC_ICDISR16_TINT117                   (0x00200000uL)
+#define INTC_ICDISR16_TINT118                   (0x00400000uL)
+#define INTC_ICDISR16_TINT119                   (0x00800000uL)
+#define INTC_ICDISR16_TINT120                   (0x01000000uL)
+#define INTC_ICDISR16_TINT121                   (0x02000000uL)
+#define INTC_ICDISR16_TINT122                   (0x04000000uL)
+#define INTC_ICDISR16_TINT123                   (0x08000000uL)
+#define INTC_ICDISR16_TINT124                   (0x10000000uL)
+#define INTC_ICDISR16_TINT125                   (0x20000000uL)
+#define INTC_ICDISR16_TINT126                   (0x40000000uL)
+#define INTC_ICDISR16_TINT127                   (0x80000000uL)
+
+#define INTC_ICDISR17_TINT128                   (0x00000001uL)
+#define INTC_ICDISR17_TINT129                   (0x00000002uL)
+#define INTC_ICDISR17_TINT130                   (0x00000004uL)
+#define INTC_ICDISR17_TINT131                   (0x00000008uL)
+#define INTC_ICDISR17_TINT132                   (0x00000010uL)
+#define INTC_ICDISR17_TINT133                   (0x00000020uL)
+#define INTC_ICDISR17_TINT134                   (0x00000040uL)
+#define INTC_ICDISR17_TINT135                   (0x00000080uL)
+#define INTC_ICDISR17_TINT136                   (0x00000100uL)
+#define INTC_ICDISR17_TINT137                   (0x00000200uL)
+#define INTC_ICDISR17_TINT138                   (0x00000400uL)
+#define INTC_ICDISR17_TINT139                   (0x00000800uL)
+#define INTC_ICDISR17_TINT140                   (0x00001000uL)
+#define INTC_ICDISR17_TINT141                   (0x00002000uL)
+#define INTC_ICDISR17_TINT142                   (0x00004000uL)
+#define INTC_ICDISR17_TINT143                   (0x00008000uL)
+#define INTC_ICDISR17_TINT144                   (0x00010000uL)
+#define INTC_ICDISR17_TINT145                   (0x00020000uL)
+#define INTC_ICDISR17_TINT146                   (0x00040000uL)
+#define INTC_ICDISR17_TINT147                   (0x00080000uL)
+#define INTC_ICDISR17_TINT148                   (0x00100000uL)
+#define INTC_ICDISR17_TINT149                   (0x00200000uL)
+#define INTC_ICDISR17_TINT150                   (0x00400000uL)
+#define INTC_ICDISR17_TINT151                   (0x00800000uL)
+#define INTC_ICDISR17_TINT152                   (0x01000000uL)
+#define INTC_ICDISR17_TINT153                   (0x02000000uL)
+#define INTC_ICDISR17_TINT154                   (0x04000000uL)
+#define INTC_ICDISR17_TINT155                   (0x08000000uL)
+#define INTC_ICDISR17_TINT156                   (0x10000000uL)
+#define INTC_ICDISR17_TINT157                   (0x20000000uL)
+#define INTC_ICDISR17_TINT158                   (0x40000000uL)
+#define INTC_ICDISR17_TINT159                   (0x80000000uL)
+
+#define INTC_ICDISR18_TINT160                   (0x00000001uL)
+#define INTC_ICDISR18_TINT161                   (0x00000002uL)
+#define INTC_ICDISR18_TINT162                   (0x00000004uL)
+#define INTC_ICDISR18_TINT163                   (0x00000008uL)
+#define INTC_ICDISR18_TINT164                   (0x00000010uL)
+#define INTC_ICDISR18_TINT165                   (0x00000020uL)
+#define INTC_ICDISR18_TINT166                   (0x00000040uL)
+#define INTC_ICDISR18_TINT167                   (0x00000080uL)
+#define INTC_ICDISR18_TINT168                   (0x00000100uL)
+#define INTC_ICDISR18_TINT169                   (0x00000200uL)
+#define INTC_ICDISR18_TINT170                   (0x00000400uL)
+
+#define INTC_ICDISER0_SW0                       (0x00000001uL)
+#define INTC_ICDISER0_SW1                       (0x00000002uL)
+#define INTC_ICDISER0_SW2                       (0x00000004uL)
+#define INTC_ICDISER0_SW3                       (0x00000008uL)
+#define INTC_ICDISER0_SW4                       (0x00000010uL)
+#define INTC_ICDISER0_SW5                       (0x00000020uL)
+#define INTC_ICDISER0_SW6                       (0x00000040uL)
+#define INTC_ICDISER0_SW7                       (0x00000080uL)
+#define INTC_ICDISER0_SW8                       (0x00000100uL)
+#define INTC_ICDISER0_SW9                       (0x00000200uL)
+#define INTC_ICDISER0_SW10                      (0x00000400uL)
+#define INTC_ICDISER0_SW11                      (0x00000800uL)
+#define INTC_ICDISER0_SW12                      (0x00001000uL)
+#define INTC_ICDISER0_SW13                      (0x00002000uL)
+#define INTC_ICDISER0_SW14                      (0x00004000uL)
+#define INTC_ICDISER0_SW15                      (0x00008000uL)
+#define INTC_ICDISER0_PMUIRQ0                   (0x00010000uL)
+#define INTC_ICDISER0_COMMRX0                   (0x00020000uL)
+#define INTC_ICDISER0_COMMTX0                   (0x00040000uL)
+#define INTC_ICDISER0_CTIIRQ0                   (0x00080000uL)
+
+#define INTC_ICDISER1_IRQ0                      (0x00000001uL)
+#define INTC_ICDISER1_IRQ1                      (0x00000002uL)
+#define INTC_ICDISER1_IRQ2                      (0x00000004uL)
+#define INTC_ICDISER1_IRQ3                      (0x00000008uL)
+#define INTC_ICDISER1_IRQ4                      (0x00000010uL)
+#define INTC_ICDISER1_IRQ5                      (0x00000020uL)
+#define INTC_ICDISER1_IRQ6                      (0x00000040uL)
+#define INTC_ICDISER1_IRQ7                      (0x00000080uL)
+#define INTC_ICDISER1_PL310ERR                  (0x00000100uL)
+#define INTC_ICDISER1_DMAINT0                   (0x00000200uL)
+#define INTC_ICDISER1_DMAINT1                   (0x00000400uL)
+#define INTC_ICDISER1_DMAINT2                   (0x00000800uL)
+#define INTC_ICDISER1_DMAINT3                   (0x00001000uL)
+#define INTC_ICDISER1_DMAINT4                   (0x00002000uL)
+#define INTC_ICDISER1_DMAINT5                   (0x00004000uL)
+#define INTC_ICDISER1_DMAINT6                   (0x00008000uL)
+#define INTC_ICDISER1_DMAINT7                   (0x00010000uL)
+#define INTC_ICDISER1_DMAINT8                   (0x00020000uL)
+#define INTC_ICDISER1_DMAINT9                   (0x00040000uL)
+#define INTC_ICDISER1_DMAINT10                  (0x00080000uL)
+#define INTC_ICDISER1_DMAINT11                  (0x00100000uL)
+#define INTC_ICDISER1_DMAINT12                  (0x00200000uL)
+#define INTC_ICDISER1_DMAINT13                  (0x00400000uL)
+#define INTC_ICDISER1_DMAINT14                  (0x00800000uL)
+#define INTC_ICDISER1_DMAINT15                  (0x01000000uL)
+#define INTC_ICDISER1_DMAERR                    (0x02000000uL)
+
+#define INTC_ICDISER2_USBI0                     (0x00000200uL)
+#define INTC_ICDISER2_USBI1                     (0x00000400uL)
+#define INTC_ICDISER2_S0_VI_VSYNC0              (0x00000800uL)
+#define INTC_ICDISER2_S0_LO_VSYNC0              (0x00001000uL)
+#define INTC_ICDISER2_S0_VSYNCERR0              (0x00002000uL)
+#define INTC_ICDISER2_GR3_VLINE0                (0x00004000uL)
+#define INTC_ICDISER2_S0_VFIELD0                (0x00008000uL)
+#define INTC_ICDISER2_IV1_VBUFERR0              (0x00010000uL)
+#define INTC_ICDISER2_IV3_VBUFERR0              (0x00020000uL)
+#define INTC_ICDISER2_IV5_VBUFERR0              (0x00040000uL)
+#define INTC_ICDISER2_IV6_VBUFERR0              (0x00080000uL)
+#define INTC_ICDISER2_S0_WLINE0                 (0x00100000uL)
+#define INTC_ICDISER2_S1_VI_VSYNC0              (0x00200000uL)
+#define INTC_ICDISER2_S1_LO_VSYNC0              (0x00400000uL)
+#define INTC_ICDISER2_S1_VSYNCERR0              (0x00800000uL)
+#define INTC_ICDISER2_S1_VFIELD0                (0x01000000uL)
+#define INTC_ICDISER2_IV2_VBUFERR0              (0x02000000uL)
+#define INTC_ICDISER2_IV4_VBUFERR0              (0x04000000uL)
+#define INTC_ICDISER2_S1_WLINE0                 (0x08000000uL)
+#define INTC_ICDISER2_OIR_VI_VSYNC0             (0x10000000uL)
+#define INTC_ICDISER2_OIR_LO_VSYNC0             (0x20000000uL)
+#define INTC_ICDISER2_OIR_VSYNCERR0             (0x40000000uL)
+#define INTC_ICDISER2_OIR_VFIELD0               (0x80000000uL)
+
+#define INTC_ICDISER3_IV7_VBUFERR0              (0x00000001uL)
+#define INTC_ICDISER3_IV8_VBUFERR0              (0x00000002uL)
+#define INTC_ICDISER3_S0_VI_VSYNC1              (0x00000008uL)
+#define INTC_ICDISER3_S0_LO_VSYNC1              (0x00000010uL)
+#define INTC_ICDISER3_S0_VSYNCERR1              (0x00000020uL)
+#define INTC_ICDISER3_GR3_VLINE1                (0x00000040uL)
+#define INTC_ICDISER3_S0_VFIELD1                (0x00000080uL)
+#define INTC_ICDISER3_IV1_VBUFERR1              (0x00000100uL)
+#define INTC_ICDISER3_IV3_VBUFERR1              (0x00000200uL)
+#define INTC_ICDISER3_IV5_VBUFERR1              (0x00000400uL)
+#define INTC_ICDISER3_IV6_VBUFERR1              (0x00000800uL)
+#define INTC_ICDISER3_S0_WLINE1                 (0x00001000uL)
+#define INTC_ICDISER3_S1_VI_VSYNC1              (0x00002000uL)
+#define INTC_ICDISER3_S1_LO_VSYNC1              (0x00004000uL)
+#define INTC_ICDISER3_S1_VSYNCERR1              (0x00008000uL)
+#define INTC_ICDISER3_S1_VFIELD1                (0x00010000uL)
+#define INTC_ICDISER3_IV2_VBUFERR1              (0x00020000uL)
+#define INTC_ICDISER3_IV4_VBUFERR1              (0x00040000uL)
+#define INTC_ICDISER3_S1_WLINE1                 (0x00080000uL)
+#define INTC_ICDISER3_OIR_VI_VSYNC1             (0x00100000uL)
+#define INTC_ICDISER3_OIR_LO_VSYNC1             (0x00200000uL)
+#define INTC_ICDISER3_OIR_VLINE1                (0x00400000uL)
+#define INTC_ICDISER3_OIR_VFIELD1               (0x00800000uL)
+#define INTC_ICDISER3_IV7_VBUFERR1              (0x01000000uL)
+#define INTC_ICDISER3_IV8_VBUFERR1              (0x02000000uL)
+#define INTC_ICDISER3_IMRDI                     (0x08000000uL)
+#define INTC_ICDISER3_IMR2I0                    (0x10000000uL)
+#define INTC_ICDISER3_IMR2I1                    (0x20000000uL)
+#define INTC_ICDISER3_JEDI                      (0x40000000uL)
+#define INTC_ICDISER3_JDTI                      (0x80000000uL)
+
+#define INTC_ICDISER4_CMP0                      (0x00000001uL)
+#define INTC_ICDISER4_CMP1                      (0x00000002uL)
+#define INTC_ICDISER4_INT0                      (0x00000004uL)
+#define INTC_ICDISER4_INT1                      (0x00000008uL)
+#define INTC_ICDISER4_INT2                      (0x00000010uL)
+#define INTC_ICDISER4_INT3                      (0x00000020uL)
+#define INTC_ICDISER4_OSTM0TINT                 (0x00000040uL)
+#define INTC_ICDISER4_OSTM1TINT                 (0x00000080uL)
+#define INTC_ICDISER4_CMI                       (0x00000100uL)
+#define INTC_ICDISER4_WTOUT                     (0x00000200uL)
+#define INTC_ICDISER4_ITI                       (0x00000400uL)
+#define INTC_ICDISER4_TGI0A                     (0x00000800uL)
+#define INTC_ICDISER4_TGI0B                     (0x00001000uL)
+#define INTC_ICDISER4_TGI0C                     (0x00002000uL)
+#define INTC_ICDISER4_TGI0D                     (0x00004000uL)
+#define INTC_ICDISER4_TGI0V                     (0x00008000uL)
+#define INTC_ICDISER4_TGI0E                     (0x00010000uL)
+#define INTC_ICDISER4_TGI0F                     (0x00020000uL)
+#define INTC_ICDISER4_TGI1A                     (0x00040000uL)
+#define INTC_ICDISER4_TGI1B                     (0x00080000uL)
+#define INTC_ICDISER4_TGI1V                     (0x00100000uL)
+#define INTC_ICDISER4_TGI1U                     (0x00200000uL)
+#define INTC_ICDISER4_TGI2A                     (0x00400000uL)
+#define INTC_ICDISER4_TGI2B                     (0x00800000uL)
+#define INTC_ICDISER4_TGI2V                     (0x01000000uL)
+#define INTC_ICDISER4_TGI2U                     (0x02000000uL)
+#define INTC_ICDISER4_TGI3A                     (0x04000000uL)
+#define INTC_ICDISER4_TGI3B                     (0x08000000uL)
+#define INTC_ICDISER4_TGI3C                     (0x10000000uL)
+#define INTC_ICDISER4_TGI3D                     (0x20000000uL)
+#define INTC_ICDISER4_TGI3V                     (0x40000000uL)
+#define INTC_ICDISER4_TGI4A                     (0x80000000uL)
+
+#define INTC_ICDISER5_TGI4B                     (0x00000001uL)
+#define INTC_ICDISER5_TGI4C                     (0x00000002uL)
+#define INTC_ICDISER5_TGI4D                     (0x00000004uL)
+#define INTC_ICDISER5_TGI4V                     (0x00000008uL)
+#define INTC_ICDISER5_CMI1                      (0x00000010uL)
+#define INTC_ICDISER5_CMI2                      (0x00000020uL)
+#define INTC_ICDISER5_SGDEI0                    (0x00000040uL)
+#define INTC_ICDISER5_SGDEI1                    (0x00000080uL)
+#define INTC_ICDISER5_SGDEI2                    (0x00000100uL)
+#define INTC_ICDISER5_SGDEI3                    (0x00000200uL)
+#define INTC_ICDISER5_ADI                       (0x00000400uL)
+#define INTC_ICDISER5_LMTI                      (0x00000800uL)
+#define INTC_ICDISER5_SSII0                     (0x00001000uL)
+#define INTC_ICDISER5_SSIRXI0                   (0x00002000uL)
+#define INTC_ICDISER5_SSITXI0                   (0x00004000uL)
+#define INTC_ICDISER5_SSII1                     (0x00008000uL)
+#define INTC_ICDISER5_SSIRXI1                   (0x00010000uL)
+#define INTC_ICDISER5_SSITXI1                   (0x00020000uL)
+#define INTC_ICDISER5_SSII2                     (0x00040000uL)
+#define INTC_ICDISER5_SSIRTI2                   (0x00080000uL)
+#define INTC_ICDISER5_SSII3                     (0x00100000uL)
+#define INTC_ICDISER5_SSIRXI3                   (0x00200000uL)
+#define INTC_ICDISER5_SSITXI3                   (0x00400000uL)
+#define INTC_ICDISER5_SSII4                     (0x00800000uL)
+#define INTC_ICDISER5_SSIRTI4                   (0x01000000uL)
+#define INTC_ICDISER5_SSII5                     (0x02000000uL)
+#define INTC_ICDISER5_SSIRXI5                   (0x04000000uL)
+#define INTC_ICDISER5_SSITXI5                   (0x08000000uL)
+#define INTC_ICDISER5_SPDIFI                    (0x10000000uL)
+#define INTC_ICDISER5_INTIICTEI0                (0x20000000uL)
+#define INTC_ICDISER5_INTIICRI0                 (0x40000000uL)
+#define INTC_ICDISER5_INTIICTI0                 (0x80000000uL)
+
+#define INTC_ICDISER6_INTIICSPI0                (0x00000001uL)
+#define INTC_ICDISER6_INTIICSTI0                (0x00000002uL)
+#define INTC_ICDISER6_INTIICNAKI0               (0x00000004uL)
+#define INTC_ICDISER6_INTIICALI0                (0x00000008uL)
+#define INTC_ICDISER6_INTIICTMOI0               (0x00000010uL)
+#define INTC_ICDISER6_INTIICTEI1                (0x00000020uL)
+#define INTC_ICDISER6_INTIICRI1                 (0x00000040uL)
+#define INTC_ICDISER6_INTIICTI1                 (0x00000080uL)
+#define INTC_ICDISER6_INTIICSPI1                (0x00000100uL)
+#define INTC_ICDISER6_INTIICSTI1                (0x00000200uL)
+#define INTC_ICDISER6_INTIICNAKI1               (0x00000400uL)
+#define INTC_ICDISER6_INTIICALI1                (0x00000800uL)
+#define INTC_ICDISER6_INTIICTMOI1               (0x00001000uL)
+#define INTC_ICDISER6_INTIICTEI2                (0x00002000uL)
+#define INTC_ICDISER6_INTIICRI2                 (0x00004000uL)
+#define INTC_ICDISER6_INTIICTI2                 (0x00008000uL)
+#define INTC_ICDISER6_INTIICSPI2                (0x00010000uL)
+#define INTC_ICDISER6_INTIICSTI2                (0x00020000uL)
+#define INTC_ICDISER6_INTIICNAKI2               (0x00040000uL)
+#define INTC_ICDISER6_INTIICALI2                (0x00080000uL)
+#define INTC_ICDISER6_INTIICTMOI2               (0x00100000uL)
+#define INTC_ICDISER6_INTIICTEI3                (0x00200000uL)
+#define INTC_ICDISER6_INTIICRI3                 (0x00400000uL)
+#define INTC_ICDISER6_INTIICTI3                 (0x00800000uL)
+#define INTC_ICDISER6_INTIICSPI3                (0x01000000uL)
+#define INTC_ICDISER6_INTIICSTI3                (0x02000000uL)
+#define INTC_ICDISER6_INTIICNAKI3               (0x04000000uL)
+#define INTC_ICDISER6_INTIICALI3                (0x08000000uL)
+#define INTC_ICDISER6_INTIICTMOI3               (0x10000000uL)
+#define INTC_ICDISER6_BRI0                      (0x20000000uL)
+#define INTC_ICDISER6_ERI0                      (0x40000000uL)
+#define INTC_ICDISER6_RXI0                      (0x80000000uL)
+
+#define INTC_ICDISER7_TXI0                      (0x00000001uL)
+#define INTC_ICDISER7_BRI1                      (0x00000002uL)
+#define INTC_ICDISER7_ERI1                      (0x00000004uL)
+#define INTC_ICDISER7_RXI1                      (0x00000008uL)
+#define INTC_ICDISER7_TXI1                      (0x00000010uL)
+#define INTC_ICDISER7_BRI2                      (0x00000020uL)
+#define INTC_ICDISER7_ERI2                      (0x00000040uL)
+#define INTC_ICDISER7_RXI2                      (0x00000080uL)
+#define INTC_ICDISER7_TXI2                      (0x00000100uL)
+#define INTC_ICDISER7_BRI3                      (0x00000200uL)
+#define INTC_ICDISER7_ERI3                      (0x00000400uL)
+#define INTC_ICDISER7_RXI3                      (0x00000800uL)
+#define INTC_ICDISER7_TXI3                      (0x00001000uL)
+#define INTC_ICDISER7_BRI4                      (0x00002000uL)
+#define INTC_ICDISER7_ERI4                      (0x00004000uL)
+#define INTC_ICDISER7_RXI4                      (0x00008000uL)
+#define INTC_ICDISER7_TXI4                      (0x00010000uL)
+#define INTC_ICDISER7_BRI5                      (0x00020000uL)
+#define INTC_ICDISER7_ERI5                      (0x00040000uL)
+#define INTC_ICDISER7_RXI5                      (0x00080000uL)
+#define INTC_ICDISER7_TXI5                      (0x00100000uL)
+#define INTC_ICDISER7_BRI6                      (0x00200000uL)
+#define INTC_ICDISER7_ERI6                      (0x00400000uL)
+#define INTC_ICDISER7_RXI6                      (0x00800000uL)
+#define INTC_ICDISER7_TXI6                      (0x01000000uL)
+#define INTC_ICDISER7_BRI7                      (0x02000000uL)
+#define INTC_ICDISER7_ERI7                      (0x04000000uL)
+#define INTC_ICDISER7_RXI7                      (0x08000000uL)
+#define INTC_ICDISER7_TXI7                      (0x10000000uL)
+#define INTC_ICDISER7_INTRCANGERR               (0x20000000uL)
+#define INTC_ICDISER7_INTRCANGRECC              (0x40000000uL)
+#define INTC_ICDISER7_INTRCAN0REC               (0x80000000uL)
+
+#define INTC_ICDISER8_INTRCAN0ERR               (0x00000001uL)
+#define INTC_ICDISER8_INTRCAN0TRX               (0x00000002uL)
+#define INTC_ICDISER8_INTRCAN1REC               (0x00000004uL)
+#define INTC_ICDISER8_INTRCAN1ERR               (0x00000008uL)
+#define INTC_ICDISER8_INTRCAN1TRX               (0x00000010uL)
+#define INTC_ICDISER8_INTRCAN2REC               (0x00000020uL)
+#define INTC_ICDISER8_INTRCAN2ERR               (0x00000040uL)
+#define INTC_ICDISER8_INTRCAN2TRX               (0x00000080uL)
+#define INTC_ICDISER8_INTRCAN3REC               (0x00000100uL)
+#define INTC_ICDISER8_INTRCAN3ERR               (0x00000200uL)
+#define INTC_ICDISER8_INTRCAN3TRX               (0x00000400uL)
+#define INTC_ICDISER8_INTRCAN4REC               (0x00000800uL)
+#define INTC_ICDISER8_INTRCAN4ERR               (0x00001000uL)
+#define INTC_ICDISER8_INTRCAN4TRX               (0x00002000uL)
+#define INTC_ICDISER8_SPEI0                     (0x00004000uL)
+#define INTC_ICDISER8_SPRI0                     (0x00008000uL)
+#define INTC_ICDISER8_SPTI0                     (0x00010000uL)
+#define INTC_ICDISER8_SPEI1                     (0x00020000uL)
+#define INTC_ICDISER8_SPRI1                     (0x00040000uL)
+#define INTC_ICDISER8_SPTI1                     (0x00080000uL)
+#define INTC_ICDISER8_SPEI2                     (0x00100000uL)
+#define INTC_ICDISER8_SPRI2                     (0x00200000uL)
+#define INTC_ICDISER8_SPTI2                     (0x00400000uL)
+#define INTC_ICDISER8_SPEI3                     (0x00800000uL)
+#define INTC_ICDISER8_SPRI3                     (0x01000000uL)
+#define INTC_ICDISER8_SPTI3                     (0x02000000uL)
+#define INTC_ICDISER8_SPEI4                     (0x04000000uL)
+#define INTC_ICDISER8_SPRI4                     (0x08000000uL)
+#define INTC_ICDISER8_SPTI4                     (0x10000000uL)
+#define INTC_ICDISER8_IEBBTD                    (0x20000000uL)
+#define INTC_ICDISER8_IEBBTERR                  (0x40000000uL)
+#define INTC_ICDISER8_IEBBTSTA                  (0x80000000uL)
+
+#define INTC_ICDISER9_IEBBTV                    (0x00000001uL)
+#define INTC_ICDISER9_ISY                       (0x00000002uL)
+#define INTC_ICDISER9_IERR                      (0x00000004uL)
+#define INTC_ICDISER9_ITARG                     (0x00000008uL)
+#define INTC_ICDISER9_ISEC                      (0x00000010uL)
+#define INTC_ICDISER9_IBUF                      (0x00000020uL)
+#define INTC_ICDISER9_IREADY                    (0x00000040uL)
+#define INTC_ICDISER9_FLSTE                     (0x00000080uL)
+#define INTC_ICDISER9_FLTENDI                   (0x00000100uL)
+#define INTC_ICDISER9_FLTREQ0I                  (0x00000200uL)
+#define INTC_ICDISER9_FLTREQ1I                  (0x00000400uL)
+#define INTC_ICDISER9_MMC0                      (0x00000800uL)
+#define INTC_ICDISER9_MMC1                      (0x00001000uL)
+#define INTC_ICDISER9_MMC2                      (0x00002000uL)
+#define INTC_ICDISER9_SDHI0_3                   (0x00004000uL)
+#define INTC_ICDISER9_SDHI0_0                   (0x00008000uL)
+#define INTC_ICDISER9_SDHI0_1                   (0x00010000uL)
+#define INTC_ICDISER9_SDHI1_3                   (0x00020000uL)
+#define INTC_ICDISER9_SDHI1_0                   (0x00040000uL)
+#define INTC_ICDISER9_SDHI1_1                   (0x00080000uL)
+#define INTC_ICDISER9_ARM                       (0x00100000uL)
+#define INTC_ICDISER9_PRD                       (0x00200000uL)
+#define INTC_ICDISER9_CUP                       (0x00400000uL)
+#define INTC_ICDISER9_SCUAI0                    (0x00800000uL)
+#define INTC_ICDISER9_SCUAI1                    (0x01000000uL)
+#define INTC_ICDISER9_SCUFDI0                   (0x02000000uL)
+#define INTC_ICDISER9_SCUFDI1                   (0x04000000uL)
+#define INTC_ICDISER9_SCUFDI2                   (0x08000000uL)
+#define INTC_ICDISER9_SCUFDI3                   (0x10000000uL)
+#define INTC_ICDISER9_SCUFUI0                   (0x20000000uL)
+#define INTC_ICDISER9_SCUFUI1                   (0x40000000uL)
+#define INTC_ICDISER9_SCUFUI2                   (0x80000000uL)
+
+#define INTC_ICDISER10_SCUFUI3                  (0x00000001uL)
+#define INTC_ICDISER10_SCUDVI0                  (0x00000002uL)
+#define INTC_ICDISER10_SCUDVI1                  (0x00000004uL)
+#define INTC_ICDISER10_SCUDVI2                  (0x00000008uL)
+#define INTC_ICDISER10_SCUDVI3                  (0x00000010uL)
+#define INTC_ICDISER10_MLB_CINT                 (0x00000020uL)
+#define INTC_ICDISER10_MLB_SINT                 (0x00000040uL)
+#define INTC_ICDISER10_DRC0                     (0x00000080uL)
+#define INTC_ICDISER10_DRC1                     (0x00000100uL)
+#define INTC_ICDISER10_LINI0_INT_T              (0x00000800uL)
+#define INTC_ICDISER10_LINI0_INT_R              (0x00001000uL)
+#define INTC_ICDISER10_LINI0_INT_S              (0x00002000uL)
+#define INTC_ICDISER10_LINI0_INT_M              (0x00004000uL)
+#define INTC_ICDISER10_LINI1_INT_T              (0x00008000uL)
+#define INTC_ICDISER10_LINI1_INT_R              (0x00010000uL)
+#define INTC_ICDISER10_LINI1_INT_S              (0x00020000uL)
+#define INTC_ICDISER10_LINI1_INT_M              (0x00040000uL)
+#define INTC_ICDISER10_ERI0                     (0x08000000uL)
+#define INTC_ICDISER10_RXI0                     (0x10000000uL)
+#define INTC_ICDISER10_TXI0                     (0x20000000uL)
+#define INTC_ICDISER10_TEI0                     (0x40000000uL)
+#define INTC_ICDISER10_ERI1                     (0x80000000uL)
+
+#define INTC_ICDISER11_RXI1                     (0x00000001uL)
+#define INTC_ICDISER11_TXI1                     (0x00000002uL)
+#define INTC_ICDISER11_TEI1                     (0x00000004uL)
+#define INTC_ICDISER11_AVBI_DATA                (0x00000008uL)
+#define INTC_ICDISER11_AVBI_ERROR               (0x00000010uL)
+#define INTC_ICDISER11_AVBI_MANAGE              (0x00000020uL)
+#define INTC_ICDISER11_AVBI_MAC                 (0x00000040uL)
+#define INTC_ICDISER11_ETHERI                   (0x00000080uL)
+#define INTC_ICDISER11_CEUI                     (0x00001000uL)
+#define INTC_ICDISER11_H2XMLB_ERRINT            (0x20000000uL)
+#define INTC_ICDISER11_H2XIC1_ERRINT            (0x40000000uL)
+#define INTC_ICDISER11_X2HPERI1_ERRINT          (0x80000000uL)
+
+#define INTC_ICDISER12_X2HPERI2_ERRINT          (0x00000001uL)
+#define INTC_ICDISER12_X2HPERI34_ERRINT         (0x00000002uL)
+#define INTC_ICDISER12_X2HPERI5_ERRINT          (0x00000004uL)
+#define INTC_ICDISER12_X2HPERI67_ERRINT         (0x00000008uL)
+#define INTC_ICDISER12_X2HDBGR_ERRINT           (0x00000010uL)
+#define INTC_ICDISER12_X2HBSC_ERRINT            (0x00000020uL)
+#define INTC_ICDISER12_X2HSPI1_ERRINT           (0x00000040uL)
+#define INTC_ICDISER12_X2HSPI2_ERRINT           (0x00000080uL)
+#define INTC_ICDISER12_PRRI                     (0x00000100uL)
+#define INTC_ICDISER12_IFEI0                    (0x00000200uL)
+#define INTC_ICDISER12_OFFI0                    (0x00000400uL)
+#define INTC_ICDISER12_PFVEI0                   (0x00000800uL)
+#define INTC_ICDISER12_IFEI1                    (0x00001000uL)
+#define INTC_ICDISER12_OFFI1                    (0x00002000uL)
+#define INTC_ICDISER12_PFVEI1                   (0x00004000uL)
+
+#define INTC_ICDISER13_TINT0                    (0x00000001uL)
+#define INTC_ICDISER13_TINT1                    (0x00000002uL)
+#define INTC_ICDISER13_TINT2                    (0x00000004uL)
+#define INTC_ICDISER13_TINT3                    (0x00000008uL)
+#define INTC_ICDISER13_TINT4                    (0x00000010uL)
+#define INTC_ICDISER13_TINT5                    (0x00000020uL)
+#define INTC_ICDISER13_TINT6                    (0x00000040uL)
+#define INTC_ICDISER13_TINT7                    (0x00000080uL)
+#define INTC_ICDISER13_TINT8                    (0x00000100uL)
+#define INTC_ICDISER13_TINT9                    (0x00000200uL)
+#define INTC_ICDISER13_TINT10                   (0x00000400uL)
+#define INTC_ICDISER13_TINT11                   (0x00000800uL)
+#define INTC_ICDISER13_TINT12                   (0x00001000uL)
+#define INTC_ICDISER13_TINT13                   (0x00002000uL)
+#define INTC_ICDISER13_TINT14                   (0x00004000uL)
+#define INTC_ICDISER13_TINT15                   (0x00008000uL)
+#define INTC_ICDISER13_TINT16                   (0x00010000uL)
+#define INTC_ICDISER13_TINT17                   (0x00020000uL)
+#define INTC_ICDISER13_TINT18                   (0x00040000uL)
+#define INTC_ICDISER13_TINT19                   (0x00080000uL)
+#define INTC_ICDISER13_TINT20                   (0x00100000uL)
+#define INTC_ICDISER13_TINT21                   (0x00200000uL)
+#define INTC_ICDISER13_TINT22                   (0x00400000uL)
+#define INTC_ICDISER13_TINT23                   (0x00800000uL)
+#define INTC_ICDISER13_TINT24                   (0x01000000uL)
+#define INTC_ICDISER13_TINT25                   (0x02000000uL)
+#define INTC_ICDISER13_TINT26                   (0x04000000uL)
+#define INTC_ICDISER13_TINT27                   (0x08000000uL)
+#define INTC_ICDISER13_TINT28                   (0x10000000uL)
+#define INTC_ICDISER13_TINT29                   (0x20000000uL)
+#define INTC_ICDISER13_TINT30                   (0x40000000uL)
+#define INTC_ICDISER13_TINT31                   (0x80000000uL)
+
+#define INTC_ICDISER14_TINT32                   (0x00000001uL)
+#define INTC_ICDISER14_TINT33                   (0x00000002uL)
+#define INTC_ICDISER14_TINT34                   (0x00000004uL)
+#define INTC_ICDISER14_TINT35                   (0x00000008uL)
+#define INTC_ICDISER14_TINT36                   (0x00000010uL)
+#define INTC_ICDISER14_TINT37                   (0x00000020uL)
+#define INTC_ICDISER14_TINT38                   (0x00000040uL)
+#define INTC_ICDISER14_TINT39                   (0x00000080uL)
+#define INTC_ICDISER14_TINT40                   (0x00000100uL)
+#define INTC_ICDISER14_TINT41                   (0x00000200uL)
+#define INTC_ICDISER14_TINT42                   (0x00000400uL)
+#define INTC_ICDISER14_TINT43                   (0x00000800uL)
+#define INTC_ICDISER14_TINT44                   (0x00001000uL)
+#define INTC_ICDISER14_TINT45                   (0x00002000uL)
+#define INTC_ICDISER14_TINT46                   (0x00004000uL)
+#define INTC_ICDISER14_TINT47                   (0x00008000uL)
+#define INTC_ICDISER14_TINT48                   (0x00010000uL)
+#define INTC_ICDISER14_TINT49                   (0x00020000uL)
+#define INTC_ICDISER14_TINT50                   (0x00040000uL)
+#define INTC_ICDISER14_TINT51                   (0x00080000uL)
+#define INTC_ICDISER14_TINT52                   (0x00100000uL)
+#define INTC_ICDISER14_TINT53                   (0x00200000uL)
+#define INTC_ICDISER14_TINT54                   (0x00400000uL)
+#define INTC_ICDISER14_TINT55                   (0x00800000uL)
+#define INTC_ICDISER14_TINT56                   (0x01000000uL)
+#define INTC_ICDISER14_TINT57                   (0x02000000uL)
+#define INTC_ICDISER14_TINT58                   (0x04000000uL)
+#define INTC_ICDISER14_TINT59                   (0x08000000uL)
+#define INTC_ICDISER14_TINT60                   (0x10000000uL)
+#define INTC_ICDISER14_TINT61                   (0x20000000uL)
+#define INTC_ICDISER14_TINT62                   (0x40000000uL)
+#define INTC_ICDISER14_TINT63                   (0x80000000uL)
+
+#define INTC_ICDISER15_TINT64                   (0x00000001uL)
+#define INTC_ICDISER15_TINT65                   (0x00000002uL)
+#define INTC_ICDISER15_TINT66                   (0x00000004uL)
+#define INTC_ICDISER15_TINT67                   (0x00000008uL)
+#define INTC_ICDISER15_TINT68                   (0x00000010uL)
+#define INTC_ICDISER15_TINT69                   (0x00000020uL)
+#define INTC_ICDISER15_TINT70                   (0x00000040uL)
+#define INTC_ICDISER15_TINT71                   (0x00000080uL)
+#define INTC_ICDISER15_TINT72                   (0x00000100uL)
+#define INTC_ICDISER15_TINT73                   (0x00000200uL)
+#define INTC_ICDISER15_TINT74                   (0x00000400uL)
+#define INTC_ICDISER15_TINT75                   (0x00000800uL)
+#define INTC_ICDISER15_TINT76                   (0x00001000uL)
+#define INTC_ICDISER15_TINT77                   (0x00002000uL)
+#define INTC_ICDISER15_TINT78                   (0x00004000uL)
+#define INTC_ICDISER15_TINT79                   (0x00008000uL)
+#define INTC_ICDISER15_TINT80                   (0x00010000uL)
+#define INTC_ICDISER15_TINT81                   (0x00020000uL)
+#define INTC_ICDISER15_TINT82                   (0x00040000uL)
+#define INTC_ICDISER15_TINT83                   (0x00080000uL)
+#define INTC_ICDISER15_TINT84                   (0x00100000uL)
+#define INTC_ICDISER15_TINT85                   (0x00200000uL)
+#define INTC_ICDISER15_TINT86                   (0x00400000uL)
+#define INTC_ICDISER15_TINT87                   (0x00800000uL)
+#define INTC_ICDISER15_TINT88                   (0x01000000uL)
+#define INTC_ICDISER15_TINT89                   (0x02000000uL)
+#define INTC_ICDISER15_TINT90                   (0x04000000uL)
+#define INTC_ICDISER15_TINT91                   (0x08000000uL)
+#define INTC_ICDISER15_TINT92                   (0x10000000uL)
+#define INTC_ICDISER15_TINT93                   (0x20000000uL)
+#define INTC_ICDISER15_TINT94                   (0x40000000uL)
+#define INTC_ICDISER15_TINT95                   (0x80000000uL)
+
+#define INTC_ICDISER16_TINT96                   (0x00000001uL)
+#define INTC_ICDISER16_TINT97                   (0x00000002uL)
+#define INTC_ICDISER16_TINT98                   (0x00000004uL)
+#define INTC_ICDISER16_TINT99                   (0x00000008uL)
+#define INTC_ICDISER16_TINT100                  (0x00000010uL)
+#define INTC_ICDISER16_TINT101                  (0x00000020uL)
+#define INTC_ICDISER16_TINT102                  (0x00000040uL)
+#define INTC_ICDISER16_TINT103                  (0x00000080uL)
+#define INTC_ICDISER16_TINT104                  (0x00000100uL)
+#define INTC_ICDISER16_TINT105                  (0x00000200uL)
+#define INTC_ICDISER16_TINT106                  (0x00000400uL)
+#define INTC_ICDISER16_TINT107                  (0x00000800uL)
+#define INTC_ICDISER16_TINT108                  (0x00001000uL)
+#define INTC_ICDISER16_TINT109                  (0x00002000uL)
+#define INTC_ICDISER16_TINT110                  (0x00004000uL)
+#define INTC_ICDISER16_TINT111                  (0x00008000uL)
+#define INTC_ICDISER16_TINT112                  (0x00010000uL)
+#define INTC_ICDISER16_TINT113                  (0x00020000uL)
+#define INTC_ICDISER16_TINT114                  (0x00040000uL)
+#define INTC_ICDISER16_TINT115                  (0x00080000uL)
+#define INTC_ICDISER16_TINT116                  (0x00100000uL)
+#define INTC_ICDISER16_TINT117                  (0x00200000uL)
+#define INTC_ICDISER16_TINT118                  (0x00400000uL)
+#define INTC_ICDISER16_TINT119                  (0x00800000uL)
+#define INTC_ICDISER16_TINT120                  (0x01000000uL)
+#define INTC_ICDISER16_TINT121                  (0x02000000uL)
+#define INTC_ICDISER16_TINT122                  (0x04000000uL)
+#define INTC_ICDISER16_TINT123                  (0x08000000uL)
+#define INTC_ICDISER16_TINT124                  (0x10000000uL)
+#define INTC_ICDISER16_TINT125                  (0x20000000uL)
+#define INTC_ICDISER16_TINT126                  (0x40000000uL)
+#define INTC_ICDISER16_TINT127                  (0x80000000uL)
+
+#define INTC_ICDISER17_TINT128                  (0x00000001uL)
+#define INTC_ICDISER17_TINT129                  (0x00000002uL)
+#define INTC_ICDISER17_TINT130                  (0x00000004uL)
+#define INTC_ICDISER17_TINT131                  (0x00000008uL)
+#define INTC_ICDISER17_TINT132                  (0x00000010uL)
+#define INTC_ICDISER17_TINT133                  (0x00000020uL)
+#define INTC_ICDISER17_TINT134                  (0x00000040uL)
+#define INTC_ICDISER17_TINT135                  (0x00000080uL)
+#define INTC_ICDISER17_TINT136                  (0x00000100uL)
+#define INTC_ICDISER17_TINT137                  (0x00000200uL)
+#define INTC_ICDISER17_TINT138                  (0x00000400uL)
+#define INTC_ICDISER17_TINT139                  (0x00000800uL)
+#define INTC_ICDISER17_TINT140                  (0x00001000uL)
+#define INTC_ICDISER17_TINT141                  (0x00002000uL)
+#define INTC_ICDISER17_TINT142                  (0x00004000uL)
+#define INTC_ICDISER17_TINT143                  (0x00008000uL)
+#define INTC_ICDISER17_TINT144                  (0x00010000uL)
+#define INTC_ICDISER17_TINT145                  (0x00020000uL)
+#define INTC_ICDISER17_TINT146                  (0x00040000uL)
+#define INTC_ICDISER17_TINT147                  (0x00080000uL)
+#define INTC_ICDISER17_TINT148                  (0x00100000uL)
+#define INTC_ICDISER17_TINT149                  (0x00200000uL)
+#define INTC_ICDISER17_TINT150                  (0x00400000uL)
+#define INTC_ICDISER17_TINT151                  (0x00800000uL)
+#define INTC_ICDISER17_TINT152                  (0x01000000uL)
+#define INTC_ICDISER17_TINT153                  (0x02000000uL)
+#define INTC_ICDISER17_TINT154                  (0x04000000uL)
+#define INTC_ICDISER17_TINT155                  (0x08000000uL)
+#define INTC_ICDISER17_TINT156                  (0x10000000uL)
+#define INTC_ICDISER17_TINT157                  (0x20000000uL)
+#define INTC_ICDISER17_TINT158                  (0x40000000uL)
+#define INTC_ICDISER17_TINT159                  (0x80000000uL)
+
+#define INTC_ICDISER18_TINT160                  (0x00000001uL)
+#define INTC_ICDISER18_TINT161                  (0x00000002uL)
+#define INTC_ICDISER18_TINT162                  (0x00000004uL)
+#define INTC_ICDISER18_TINT163                  (0x00000008uL)
+#define INTC_ICDISER18_TINT164                  (0x00000010uL)
+#define INTC_ICDISER18_TINT165                  (0x00000020uL)
+#define INTC_ICDISER18_TINT166                  (0x00000040uL)
+#define INTC_ICDISER18_TINT167                  (0x00000080uL)
+#define INTC_ICDISER18_TINT168                  (0x00000100uL)
+#define INTC_ICDISER18_TINT169                  (0x00000200uL)
+#define INTC_ICDISER18_TINT170                  (0x00000400uL)
+
+#define INTC_ICDICER0_SW0                       (0x00000001uL)
+#define INTC_ICDICER0_SW1                       (0x00000002uL)
+#define INTC_ICDICER0_SW2                       (0x00000004uL)
+#define INTC_ICDICER0_SW3                       (0x00000008uL)
+#define INTC_ICDICER0_SW4                       (0x00000010uL)
+#define INTC_ICDICER0_SW5                       (0x00000020uL)
+#define INTC_ICDICER0_SW6                       (0x00000040uL)
+#define INTC_ICDICER0_SW7                       (0x00000080uL)
+#define INTC_ICDICER0_SW8                       (0x00000100uL)
+#define INTC_ICDICER0_SW9                       (0x00000200uL)
+#define INTC_ICDICER0_SW10                      (0x00000400uL)
+#define INTC_ICDICER0_SW11                      (0x00000800uL)
+#define INTC_ICDICER0_SW12                      (0x00001000uL)
+#define INTC_ICDICER0_SW13                      (0x00002000uL)
+#define INTC_ICDICER0_SW14                      (0x00004000uL)
+#define INTC_ICDICER0_SW15                      (0x00008000uL)
+#define INTC_ICDICER0_PMUIRQ0                   (0x00010000uL)
+#define INTC_ICDICER0_COMMRX0                   (0x00020000uL)
+#define INTC_ICDICER0_COMMTX0                   (0x00040000uL)
+#define INTC_ICDICER0_CTIIRQ0                   (0x00080000uL)
+
+#define INTC_ICDICER1_IRQ0                      (0x00000001uL)
+#define INTC_ICDICER1_IRQ1                      (0x00000002uL)
+#define INTC_ICDICER1_IRQ2                      (0x00000004uL)
+#define INTC_ICDICER1_IRQ3                      (0x00000008uL)
+#define INTC_ICDICER1_IRQ4                      (0x00000010uL)
+#define INTC_ICDICER1_IRQ5                      (0x00000020uL)
+#define INTC_ICDICER1_IRQ6                      (0x00000040uL)
+#define INTC_ICDICER1_IRQ7                      (0x00000080uL)
+#define INTC_ICDICER1_PL310ERR                  (0x00000100uL)
+#define INTC_ICDICER1_DMAINT0                   (0x00000200uL)
+#define INTC_ICDICER1_DMAINT1                   (0x00000400uL)
+#define INTC_ICDICER1_DMAINT2                   (0x00000800uL)
+#define INTC_ICDICER1_DMAINT3                   (0x00001000uL)
+#define INTC_ICDICER1_DMAINT4                   (0x00002000uL)
+#define INTC_ICDICER1_DMAINT5                   (0x00004000uL)
+#define INTC_ICDICER1_DMAINT6                   (0x00008000uL)
+#define INTC_ICDICER1_DMAINT7                   (0x00010000uL)
+#define INTC_ICDICER1_DMAINT8                   (0x00020000uL)
+#define INTC_ICDICER1_DMAINT9                   (0x00040000uL)
+#define INTC_ICDICER1_DMAINT10                  (0x00080000uL)
+#define INTC_ICDICER1_DMAINT11                  (0x00100000uL)
+#define INTC_ICDICER1_DMAINT12                  (0x00200000uL)
+#define INTC_ICDICER1_DMAINT13                  (0x00400000uL)
+#define INTC_ICDICER1_DMAINT14                  (0x00800000uL)
+#define INTC_ICDICER1_DMAINT15                  (0x01000000uL)
+#define INTC_ICDICER1_DMAERR                    (0x02000000uL)
+
+#define INTC_ICDICER2_USBI0                     (0x00000200uL)
+#define INTC_ICDICER2_USBI1                     (0x00000400uL)
+#define INTC_ICDICER2_S0_VI_VSYNC0              (0x00000800uL)
+#define INTC_ICDICER2_S0_LO_VSYNC0              (0x00001000uL)
+#define INTC_ICDICER2_S0_VSYNCERR0              (0x00002000uL)
+#define INTC_ICDICER2_GR3_VLINE0                (0x00004000uL)
+#define INTC_ICDICER2_S0_VFIELD0                (0x00008000uL)
+#define INTC_ICDICER2_IV1_VBUFERR0              (0x00010000uL)
+#define INTC_ICDICER2_IV3_VBUFERR0              (0x00020000uL)
+#define INTC_ICDICER2_IV5_VBUFERR0              (0x00040000uL)
+#define INTC_ICDICER2_IV6_VBUFERR0              (0x00080000uL)
+#define INTC_ICDICER2_S0_WLINE0                 (0x00100000uL)
+#define INTC_ICDICER2_S1_VI_VSYNC0              (0x00200000uL)
+#define INTC_ICDICER2_S1_LO_VSYNC0              (0x00400000uL)
+#define INTC_ICDICER2_S1_VSYNCERR0              (0x00800000uL)
+#define INTC_ICDICER2_S1_VFIELD0                (0x01000000uL)
+#define INTC_ICDICER2_IV2_VBUFERR0              (0x02000000uL)
+#define INTC_ICDICER2_IV4_VBUFERR0              (0x04000000uL)
+#define INTC_ICDICER2_S1_WLINE0                 (0x08000000uL)
+#define INTC_ICDICER2_OIR_VI_VSYNC0             (0x10000000uL)
+#define INTC_ICDICER2_OIR_LO_VSYNC0             (0x20000000uL)
+#define INTC_ICDICER2_OIR_VSYNCERR0             (0x40000000uL)
+#define INTC_ICDICER2_OIR_VFIELD0               (0x80000000uL)
+
+#define INTC_ICDICER3_IV7_VBUFERR0              (0x00000001uL)
+#define INTC_ICDICER3_IV8_VBUFERR0              (0x00000002uL)
+#define INTC_ICDICER3_S0_VI_VSYNC1              (0x00000008uL)
+#define INTC_ICDICER3_S0_LO_VSYNC1              (0x00000010uL)
+#define INTC_ICDICER3_S0_VSYNCERR1              (0x00000020uL)
+#define INTC_ICDICER3_GR3_VLINE1                (0x00000040uL)
+#define INTC_ICDICER3_S0_VFIELD1                (0x00000080uL)
+#define INTC_ICDICER3_IV1_VBUFERR1              (0x00000100uL)
+#define INTC_ICDICER3_IV3_VBUFERR1              (0x00000200uL)
+#define INTC_ICDICER3_IV5_VBUFERR1              (0x00000400uL)
+#define INTC_ICDICER3_IV6_VBUFERR1              (0x00000800uL)
+#define INTC_ICDICER3_S0_WLINE1                 (0x00001000uL)
+#define INTC_ICDICER3_S1_VI_VSYNC1              (0x00002000uL)
+#define INTC_ICDICER3_S1_LO_VSYNC1              (0x00004000uL)
+#define INTC_ICDICER3_S1_VSYNCERR1              (0x00008000uL)
+#define INTC_ICDICER3_S1_VFIELD1                (0x00010000uL)
+#define INTC_ICDICER3_IV2_VBUFERR1              (0x00020000uL)
+#define INTC_ICDICER3_IV4_VBUFERR1              (0x00040000uL)
+#define INTC_ICDICER3_S1_WLINE1                 (0x00080000uL)
+#define INTC_ICDICER3_OIR_VI_VSYNC1             (0x00100000uL)
+#define INTC_ICDICER3_OIR_LO_VSYNC1             (0x00200000uL)
+#define INTC_ICDICER3_OIR_VLINE1                (0x00400000uL)
+#define INTC_ICDICER3_OIR_VFIELD1               (0x00800000uL)
+#define INTC_ICDICER3_IV7_VBUFERR1              (0x01000000uL)
+#define INTC_ICDICER3_IV8_VBUFERR1              (0x02000000uL)
+#define INTC_ICDICER3_IMRDI                     (0x08000000uL)
+#define INTC_ICDICER3_IMR2I0                    (0x10000000uL)
+#define INTC_ICDICER3_IMR2I1                    (0x20000000uL)
+#define INTC_ICDICER3_JEDI                      (0x40000000uL)
+#define INTC_ICDICER3_JDTI                      (0x80000000uL)
+
+#define INTC_ICDICER4_CMP0                      (0x00000001uL)
+#define INTC_ICDICER4_CMP1                      (0x00000002uL)
+#define INTC_ICDICER4_INT0                      (0x00000004uL)
+#define INTC_ICDICER4_INT1                      (0x00000008uL)
+#define INTC_ICDICER4_INT2                      (0x00000010uL)
+#define INTC_ICDICER4_INT3                      (0x00000020uL)
+#define INTC_ICDICER4_OSTM0TINT                 (0x00000040uL)
+#define INTC_ICDICER4_OSTM1TINT                 (0x00000080uL)
+#define INTC_ICDICER4_CMI                       (0x00000100uL)
+#define INTC_ICDICER4_WTOUT                     (0x00000200uL)
+#define INTC_ICDICER4_ITI                       (0x00000400uL)
+#define INTC_ICDICER4_TGI0A                     (0x00000800uL)
+#define INTC_ICDICER4_TGI0B                     (0x00001000uL)
+#define INTC_ICDICER4_TGI0C                     (0x00002000uL)
+#define INTC_ICDICER4_TGI0D                     (0x00004000uL)
+#define INTC_ICDICER4_TGI0V                     (0x00008000uL)
+#define INTC_ICDICER4_TGI0E                     (0x00010000uL)
+#define INTC_ICDICER4_TGI0F                     (0x00020000uL)
+#define INTC_ICDICER4_TGI1A                     (0x00040000uL)
+#define INTC_ICDICER4_TGI1B                     (0x00080000uL)
+#define INTC_ICDICER4_TGI1V                     (0x00100000uL)
+#define INTC_ICDICER4_TGI1U                     (0x00200000uL)
+#define INTC_ICDICER4_TGI2A                     (0x00400000uL)
+#define INTC_ICDICER4_TGI2B                     (0x00800000uL)
+#define INTC_ICDICER4_TGI2V                     (0x01000000uL)
+#define INTC_ICDICER4_TGI2U                     (0x02000000uL)
+#define INTC_ICDICER4_TGI3A                     (0x04000000uL)
+#define INTC_ICDICER4_TGI3B                     (0x08000000uL)
+#define INTC_ICDICER4_TGI3C                     (0x10000000uL)
+#define INTC_ICDICER4_TGI3D                     (0x20000000uL)
+#define INTC_ICDICER4_TGI3V                     (0x40000000uL)
+#define INTC_ICDICER4_TGI4A                     (0x80000000uL)
+
+#define INTC_ICDICER5_TGI4B                     (0x00000001uL)
+#define INTC_ICDICER5_TGI4C                     (0x00000002uL)
+#define INTC_ICDICER5_TGI4D                     (0x00000004uL)
+#define INTC_ICDICER5_TGI4V                     (0x00000008uL)
+#define INTC_ICDICER5_CMI1                      (0x00000010uL)
+#define INTC_ICDICER5_CMI2                      (0x00000020uL)
+#define INTC_ICDICER5_SGDEI0                    (0x00000040uL)
+#define INTC_ICDICER5_SGDEI1                    (0x00000080uL)
+#define INTC_ICDICER5_SGDEI2                    (0x00000100uL)
+#define INTC_ICDICER5_SGDEI3                    (0x00000200uL)
+#define INTC_ICDICER5_ADI                       (0x00000400uL)
+#define INTC_ICDICER5_LMTI                      (0x00000800uL)
+#define INTC_ICDICER5_SSII0                     (0x00001000uL)
+#define INTC_ICDICER5_SSIRXI0                   (0x00002000uL)
+#define INTC_ICDICER5_SSITXI0                   (0x00004000uL)
+#define INTC_ICDICER5_SSII1                     (0x00008000uL)
+#define INTC_ICDICER5_SSIRXI1                   (0x00010000uL)
+#define INTC_ICDICER5_SSITXI1                   (0x00020000uL)
+#define INTC_ICDICER5_SSII2                     (0x00040000uL)
+#define INTC_ICDICER5_SSIRTI2                   (0x00080000uL)
+#define INTC_ICDICER5_SSII3                     (0x00100000uL)
+#define INTC_ICDICER5_SSIRXI3                   (0x00200000uL)
+#define INTC_ICDICER5_SSITXI3                   (0x00400000uL)
+#define INTC_ICDICER5_SSII4                     (0x00800000uL)
+#define INTC_ICDICER5_SSIRTI4                   (0x01000000uL)
+#define INTC_ICDICER5_SSII5                     (0x02000000uL)
+#define INTC_ICDICER5_SSIRXI5                   (0x04000000uL)
+#define INTC_ICDICER5_SSITXI5                   (0x08000000uL)
+#define INTC_ICDICER5_SPDIFI                    (0x10000000uL)
+#define INTC_ICDICER5_INTIICTEI0                (0x20000000uL)
+#define INTC_ICDICER5_INTIICRI0                 (0x40000000uL)
+#define INTC_ICDICER5_INTIICTI0                 (0x80000000uL)
+
+#define INTC_ICDICER6_INTIICSPI0                (0x00000001uL)
+#define INTC_ICDICER6_INTIICSTI0                (0x00000002uL)
+#define INTC_ICDICER6_INTIICNAKI0               (0x00000004uL)
+#define INTC_ICDICER6_INTIICALI0                (0x00000008uL)
+#define INTC_ICDICER6_INTIICTMOI0               (0x00000010uL)
+#define INTC_ICDICER6_INTIICTEI1                (0x00000020uL)
+#define INTC_ICDICER6_INTIICRI1                 (0x00000040uL)
+#define INTC_ICDICER6_INTIICTI1                 (0x00000080uL)
+#define INTC_ICDICER6_INTIICSPI1                (0x00000100uL)
+#define INTC_ICDICER6_INTIICSTI1                (0x00000200uL)
+#define INTC_ICDICER6_INTIICNAKI1               (0x00000400uL)
+#define INTC_ICDICER6_INTIICALI1                (0x00000800uL)
+#define INTC_ICDICER6_INTIICTMOI1               (0x00001000uL)
+#define INTC_ICDICER6_INTIICTEI2                (0x00002000uL)
+#define INTC_ICDICER6_INTIICRI2                 (0x00004000uL)
+#define INTC_ICDICER6_INTIICTI2                 (0x00008000uL)
+#define INTC_ICDICER6_INTIICSPI2                (0x00010000uL)
+#define INTC_ICDICER6_INTIICSTI2                (0x00020000uL)
+#define INTC_ICDICER6_INTIICNAKI2               (0x00040000uL)
+#define INTC_ICDICER6_INTIICALI2                (0x00080000uL)
+#define INTC_ICDICER6_INTIICTMOI2               (0x00100000uL)
+#define INTC_ICDICER6_INTIICTEI3                (0x00200000uL)
+#define INTC_ICDICER6_INTIICRI3                 (0x00400000uL)
+#define INTC_ICDICER6_INTIICTI3                 (0x00800000uL)
+#define INTC_ICDICER6_INTIICSPI3                (0x01000000uL)
+#define INTC_ICDICER6_INTIICSTI3                (0x02000000uL)
+#define INTC_ICDICER6_INTIICNAKI3               (0x04000000uL)
+#define INTC_ICDICER6_INTIICALI3                (0x08000000uL)
+#define INTC_ICDICER6_INTIICTMOI3               (0x10000000uL)
+#define INTC_ICDICER6_BRI0                      (0x20000000uL)
+#define INTC_ICDICER6_ERI0                      (0x40000000uL)
+#define INTC_ICDICER6_RXI0                      (0x80000000uL)
+
+#define INTC_ICDICER7_TXI0                      (0x00000001uL)
+#define INTC_ICDICER7_BRI1                      (0x00000002uL)
+#define INTC_ICDICER7_ERI1                      (0x00000004uL)
+#define INTC_ICDICER7_RXI1                      (0x00000008uL)
+#define INTC_ICDICER7_TXI1                      (0x00000010uL)
+#define INTC_ICDICER7_BRI2                      (0x00000020uL)
+#define INTC_ICDICER7_ERI2                      (0x00000040uL)
+#define INTC_ICDICER7_RXI2                      (0x00000080uL)
+#define INTC_ICDICER7_TXI2                      (0x00000100uL)
+#define INTC_ICDICER7_BRI3                      (0x00000200uL)
+#define INTC_ICDICER7_ERI3                      (0x00000400uL)
+#define INTC_ICDICER7_RXI3                      (0x00000800uL)
+#define INTC_ICDICER7_TXI3                      (0x00001000uL)
+#define INTC_ICDICER7_BRI4                      (0x00002000uL)
+#define INTC_ICDICER7_ERI4                      (0x00004000uL)
+#define INTC_ICDICER7_RXI4                      (0x00008000uL)
+#define INTC_ICDICER7_TXI4                      (0x00010000uL)
+#define INTC_ICDICER7_BRI5                      (0x00020000uL)
+#define INTC_ICDICER7_ERI5                      (0x00040000uL)
+#define INTC_ICDICER7_RXI5                      (0x00080000uL)
+#define INTC_ICDICER7_TXI5                      (0x00100000uL)
+#define INTC_ICDICER7_BRI6                      (0x00200000uL)
+#define INTC_ICDICER7_ERI6                      (0x00400000uL)
+#define INTC_ICDICER7_RXI6                      (0x00800000uL)
+#define INTC_ICDICER7_TXI6                      (0x01000000uL)
+#define INTC_ICDICER7_BRI7                      (0x02000000uL)
+#define INTC_ICDICER7_ERI7                      (0x04000000uL)
+#define INTC_ICDICER7_RXI7                      (0x08000000uL)
+#define INTC_ICDICER7_TXI7                      (0x10000000uL)
+#define INTC_ICDICER7_INTRCANGERR               (0x20000000uL)
+#define INTC_ICDICER7_INTRCANGRECC              (0x40000000uL)
+#define INTC_ICDICER7_INTRCAN0REC               (0x80000000uL)
+
+#define INTC_ICDICER8_INTRCAN0ERR               (0x00000001uL)
+#define INTC_ICDICER8_INTRCAN0TRX               (0x00000002uL)
+#define INTC_ICDICER8_INTRCAN1REC               (0x00000004uL)
+#define INTC_ICDICER8_INTRCAN1ERR               (0x00000008uL)
+#define INTC_ICDICER8_INTRCAN1TRX               (0x00000010uL)
+#define INTC_ICDICER8_INTRCAN2REC               (0x00000020uL)
+#define INTC_ICDICER8_INTRCAN2ERR               (0x00000040uL)
+#define INTC_ICDICER8_INTRCAN2TRX               (0x00000080uL)
+#define INTC_ICDICER8_INTRCAN3REC               (0x00000100uL)
+#define INTC_ICDICER8_INTRCAN3ERR               (0x00000200uL)
+#define INTC_ICDICER8_INTRCAN3TRX               (0x00000400uL)
+#define INTC_ICDICER8_INTRCAN4REC               (0x00000800uL)
+#define INTC_ICDICER8_INTRCAN4ERR               (0x00001000uL)
+#define INTC_ICDICER8_INTRCAN4TRX               (0x00002000uL)
+#define INTC_ICDICER8_SPEI0                     (0x00004000uL)
+#define INTC_ICDICER8_SPRI0                     (0x00008000uL)
+#define INTC_ICDICER8_SPTI0                     (0x00010000uL)
+#define INTC_ICDICER8_SPEI1                     (0x00020000uL)
+#define INTC_ICDICER8_SPRI1                     (0x00040000uL)
+#define INTC_ICDICER8_SPTI1                     (0x00080000uL)
+#define INTC_ICDICER8_SPEI2                     (0x00100000uL)
+#define INTC_ICDICER8_SPRI2                     (0x00200000uL)
+#define INTC_ICDICER8_SPTI2                     (0x00400000uL)
+#define INTC_ICDICER8_SPEI3                     (0x00800000uL)
+#define INTC_ICDICER8_SPRI3                     (0x01000000uL)
+#define INTC_ICDICER8_SPTI3                     (0x02000000uL)
+#define INTC_ICDICER8_SPEI4                     (0x04000000uL)
+#define INTC_ICDICER8_SPRI4                     (0x08000000uL)
+#define INTC_ICDICER8_SPTI4                     (0x10000000uL)
+#define INTC_ICDICER8_IEBBTD                    (0x20000000uL)
+#define INTC_ICDICER8_IEBBTERR                  (0x40000000uL)
+#define INTC_ICDICER8_IEBBTSTA                  (0x80000000uL)
+
+#define INTC_ICDICER9_IEBBTV                    (0x00000001uL)
+#define INTC_ICDICER9_ISY                       (0x00000002uL)
+#define INTC_ICDICER9_IERR                      (0x00000004uL)
+#define INTC_ICDICER9_ITARG                     (0x00000008uL)
+#define INTC_ICDICER9_ISEC                      (0x00000010uL)
+#define INTC_ICDICER9_IBUF                      (0x00000020uL)
+#define INTC_ICDICER9_IREADY                    (0x00000040uL)
+#define INTC_ICDICER9_FLSTE                     (0x00000080uL)
+#define INTC_ICDICER9_FLTENDI                   (0x00000100uL)
+#define INTC_ICDICER9_FLTREQ0I                  (0x00000200uL)
+#define INTC_ICDICER9_FLTREQ1I                  (0x00000400uL)
+#define INTC_ICDICER9_MMC0                      (0x00000800uL)
+#define INTC_ICDICER9_MMC1                      (0x00001000uL)
+#define INTC_ICDICER9_MMC2                      (0x00002000uL)
+#define INTC_ICDICER9_SDHI0_3                   (0x00004000uL)
+#define INTC_ICDICER9_SDHI0_0                   (0x00008000uL)
+#define INTC_ICDICER9_SDHI0_1                   (0x00010000uL)
+#define INTC_ICDICER9_SDHI1_3                   (0x00020000uL)
+#define INTC_ICDICER9_SDHI1_0                   (0x00040000uL)
+#define INTC_ICDICER9_SDHI1_1                   (0x00080000uL)
+#define INTC_ICDICER9_ARM                       (0x00100000uL)
+#define INTC_ICDICER9_PRD                       (0x00200000uL)
+#define INTC_ICDICER9_CUP                       (0x00400000uL)
+#define INTC_ICDICER9_SCUAI0                    (0x00800000uL)
+#define INTC_ICDICER9_SCUAI1                    (0x01000000uL)
+#define INTC_ICDICER9_SCUFDI0                   (0x02000000uL)
+#define INTC_ICDICER9_SCUFDI1                   (0x04000000uL)
+#define INTC_ICDICER9_SCUFDI2                   (0x08000000uL)
+#define INTC_ICDICER9_SCUFDI3                   (0x10000000uL)
+#define INTC_ICDICER9_SCUFUI0                   (0x20000000uL)
+#define INTC_ICDICER9_SCUFUI1                   (0x40000000uL)
+#define INTC_ICDICER9_SCUFUI2                   (0x80000000uL)
+
+#define INTC_ICDICER10_SCUFUI3                  (0x00000001uL)
+#define INTC_ICDICER10_SCUDVI0                  (0x00000002uL)
+#define INTC_ICDICER10_SCUDVI1                  (0x00000004uL)
+#define INTC_ICDICER10_SCUDVI2                  (0x00000008uL)
+#define INTC_ICDICER10_SCUDVI3                  (0x00000010uL)
+#define INTC_ICDICER10_MLB_CINT                 (0x00000020uL)
+#define INTC_ICDICER10_MLB_SINT                 (0x00000040uL)
+#define INTC_ICDICER10_DRC0                     (0x00000080uL)
+#define INTC_ICDICER10_DRC1                     (0x00000100uL)
+#define INTC_ICDICER10_LINI0_INT_T              (0x00000800uL)
+#define INTC_ICDICER10_LINI0_INT_R              (0x00001000uL)
+#define INTC_ICDICER10_LINI0_INT_S              (0x00002000uL)
+#define INTC_ICDICER10_LINI0_INT_M              (0x00004000uL)
+#define INTC_ICDICER10_LINI1_INT_T              (0x00008000uL)
+#define INTC_ICDICER10_LINI1_INT_R              (0x00010000uL)
+#define INTC_ICDICER10_LINI1_INT_S              (0x00020000uL)
+#define INTC_ICDICER10_LINI1_INT_M              (0x00040000uL)
+#define INTC_ICDICER10_ERI0                     (0x08000000uL)
+#define INTC_ICDICER10_RXI0                     (0x10000000uL)
+#define INTC_ICDICER10_TXI0                     (0x20000000uL)
+#define INTC_ICDICER10_TEI0                     (0x40000000uL)
+#define INTC_ICDICER10_ERI1                     (0x80000000uL)
+
+#define INTC_ICDICER11_RXI1                     (0x00000001uL)
+#define INTC_ICDICER11_TXI1                     (0x00000002uL)
+#define INTC_ICDICER11_TEI1                     (0x00000004uL)
+#define INTC_ICDICER11_AVBI_DATA                (0x00000008uL)
+#define INTC_ICDICER11_AVBI_ERROR               (0x00000010uL)
+#define INTC_ICDICER11_AVBI_MANAGE              (0x00000020uL)
+#define INTC_ICDICER11_AVBI_MAC                 (0x00000040uL)
+#define INTC_ICDICER11_ETHERI                   (0x00000080uL)
+#define INTC_ICDICER11_CEUI                     (0x00001000uL)
+#define INTC_ICDICER11_H2XMLB_ERRINT            (0x20000000uL)
+#define INTC_ICDICER11_H2XIC1_ERRINT            (0x40000000uL)
+#define INTC_ICDICER11_X2HPERI1_ERRINT          (0x80000000uL)
+
+#define INTC_ICDICER12_X2HPERI2_ERRINT          (0x00000001uL)
+#define INTC_ICDICER12_X2HPERI34_ERRINT         (0x00000002uL)
+#define INTC_ICDICER12_X2HPERI5_ERRINT          (0x00000004uL)
+#define INTC_ICDICER12_X2HPERI67_ERRINT         (0x00000008uL)
+#define INTC_ICDICER12_X2HDBGR_ERRINT           (0x00000010uL)
+#define INTC_ICDICER12_X2HBSC_ERRINT            (0x00000020uL)
+#define INTC_ICDICER12_X2HSPI1_ERRINT           (0x00000040uL)
+#define INTC_ICDICER12_X2HSPI2_ERRINT           (0x00000080uL)
+#define INTC_ICDICER12_PRRI                     (0x00000100uL)
+#define INTC_ICDICER12_IFEI0                    (0x00000200uL)
+#define INTC_ICDICER12_OFFI0                    (0x00000400uL)
+#define INTC_ICDICER12_PFVEI0                   (0x00000800uL)
+#define INTC_ICDICER12_IFEI1                    (0x00001000uL)
+#define INTC_ICDICER12_OFFI1                    (0x00002000uL)
+#define INTC_ICDICER12_PFVEI1                   (0x00004000uL)
+
+#define INTC_ICDICER13_TINT0                    (0x00000001uL)
+#define INTC_ICDICER13_TINT1                    (0x00000002uL)
+#define INTC_ICDICER13_TINT2                    (0x00000004uL)
+#define INTC_ICDICER13_TINT3                    (0x00000008uL)
+#define INTC_ICDICER13_TINT4                    (0x00000010uL)
+#define INTC_ICDICER13_TINT5                    (0x00000020uL)
+#define INTC_ICDICER13_TINT6                    (0x00000040uL)
+#define INTC_ICDICER13_TINT7                    (0x00000080uL)
+#define INTC_ICDICER13_TINT8                    (0x00000100uL)
+#define INTC_ICDICER13_TINT9                    (0x00000200uL)
+#define INTC_ICDICER13_TINT10                   (0x00000400uL)
+#define INTC_ICDICER13_TINT11                   (0x00000800uL)
+#define INTC_ICDICER13_TINT12                   (0x00001000uL)
+#define INTC_ICDICER13_TINT13                   (0x00002000uL)
+#define INTC_ICDICER13_TINT14                   (0x00004000uL)
+#define INTC_ICDICER13_TINT15                   (0x00008000uL)
+#define INTC_ICDICER13_TINT16                   (0x00010000uL)
+#define INTC_ICDICER13_TINT17                   (0x00020000uL)
+#define INTC_ICDICER13_TINT18                   (0x00040000uL)
+#define INTC_ICDICER13_TINT19                   (0x00080000uL)
+#define INTC_ICDICER13_TINT20                   (0x00100000uL)
+#define INTC_ICDICER13_TINT21                   (0x00200000uL)
+#define INTC_ICDICER13_TINT22                   (0x00400000uL)
+#define INTC_ICDICER13_TINT23                   (0x00800000uL)
+#define INTC_ICDICER13_TINT24                   (0x01000000uL)
+#define INTC_ICDICER13_TINT25                   (0x02000000uL)
+#define INTC_ICDICER13_TINT26                   (0x04000000uL)
+#define INTC_ICDICER13_TINT27                   (0x08000000uL)
+#define INTC_ICDICER13_TINT28                   (0x10000000uL)
+#define INTC_ICDICER13_TINT29                   (0x20000000uL)
+#define INTC_ICDICER13_TINT30                   (0x40000000uL)
+#define INTC_ICDICER13_TINT31                   (0x80000000uL)
+
+#define INTC_ICDICER14_TINT32                   (0x00000001uL)
+#define INTC_ICDICER14_TINT33                   (0x00000002uL)
+#define INTC_ICDICER14_TINT34                   (0x00000004uL)
+#define INTC_ICDICER14_TINT35                   (0x00000008uL)
+#define INTC_ICDICER14_TINT36                   (0x00000010uL)
+#define INTC_ICDICER14_TINT37                   (0x00000020uL)
+#define INTC_ICDICER14_TINT38                   (0x00000040uL)
+#define INTC_ICDICER14_TINT39                   (0x00000080uL)
+#define INTC_ICDICER14_TINT40                   (0x00000100uL)
+#define INTC_ICDICER14_TINT41                   (0x00000200uL)
+#define INTC_ICDICER14_TINT42                   (0x00000400uL)
+#define INTC_ICDICER14_TINT43                   (0x00000800uL)
+#define INTC_ICDICER14_TINT44                   (0x00001000uL)
+#define INTC_ICDICER14_TINT45                   (0x00002000uL)
+#define INTC_ICDICER14_TINT46                   (0x00004000uL)
+#define INTC_ICDICER14_TINT47                   (0x00008000uL)
+#define INTC_ICDICER14_TINT48                   (0x00010000uL)
+#define INTC_ICDICER14_TINT49                   (0x00020000uL)
+#define INTC_ICDICER14_TINT50                   (0x00040000uL)
+#define INTC_ICDICER14_TINT51                   (0x00080000uL)
+#define INTC_ICDICER14_TINT52                   (0x00100000uL)
+#define INTC_ICDICER14_TINT53                   (0x00200000uL)
+#define INTC_ICDICER14_TINT54                   (0x00400000uL)
+#define INTC_ICDICER14_TINT55                   (0x00800000uL)
+#define INTC_ICDICER14_TINT56                   (0x01000000uL)
+#define INTC_ICDICER14_TINT57                   (0x02000000uL)
+#define INTC_ICDICER14_TINT58                   (0x04000000uL)
+#define INTC_ICDICER14_TINT59                   (0x08000000uL)
+#define INTC_ICDICER14_TINT60                   (0x10000000uL)
+#define INTC_ICDICER14_TINT61                   (0x20000000uL)
+#define INTC_ICDICER14_TINT62                   (0x40000000uL)
+#define INTC_ICDICER14_TINT63                   (0x80000000uL)
+
+#define INTC_ICDICER15_TINT64                   (0x00000001uL)
+#define INTC_ICDICER15_TINT65                   (0x00000002uL)
+#define INTC_ICDICER15_TINT66                   (0x00000004uL)
+#define INTC_ICDICER15_TINT67                   (0x00000008uL)
+#define INTC_ICDICER15_TINT68                   (0x00000010uL)
+#define INTC_ICDICER15_TINT69                   (0x00000020uL)
+#define INTC_ICDICER15_TINT70                   (0x00000040uL)
+#define INTC_ICDICER15_TINT71                   (0x00000080uL)
+#define INTC_ICDICER15_TINT72                   (0x00000100uL)
+#define INTC_ICDICER15_TINT73                   (0x00000200uL)
+#define INTC_ICDICER15_TINT74                   (0x00000400uL)
+#define INTC_ICDICER15_TINT75                   (0x00000800uL)
+#define INTC_ICDICER15_TINT76                   (0x00001000uL)
+#define INTC_ICDICER15_TINT77                   (0x00002000uL)
+#define INTC_ICDICER15_TINT78                   (0x00004000uL)
+#define INTC_ICDICER15_TINT79                   (0x00008000uL)
+#define INTC_ICDICER15_TINT80                   (0x00010000uL)
+#define INTC_ICDICER15_TINT81                   (0x00020000uL)
+#define INTC_ICDICER15_TINT82                   (0x00040000uL)
+#define INTC_ICDICER15_TINT83                   (0x00080000uL)
+#define INTC_ICDICER15_TINT84                   (0x00100000uL)
+#define INTC_ICDICER15_TINT85                   (0x00200000uL)
+#define INTC_ICDICER15_TINT86                   (0x00400000uL)
+#define INTC_ICDICER15_TINT87                   (0x00800000uL)
+#define INTC_ICDICER15_TINT88                   (0x01000000uL)
+#define INTC_ICDICER15_TINT89                   (0x02000000uL)
+#define INTC_ICDICER15_TINT90                   (0x04000000uL)
+#define INTC_ICDICER15_TINT91                   (0x08000000uL)
+#define INTC_ICDICER15_TINT92                   (0x10000000uL)
+#define INTC_ICDICER15_TINT93                   (0x20000000uL)
+#define INTC_ICDICER15_TINT94                   (0x40000000uL)
+#define INTC_ICDICER15_TINT95                   (0x80000000uL)
+
+#define INTC_ICDICER16_TINT96                   (0x00000001uL)
+#define INTC_ICDICER16_TINT97                   (0x00000002uL)
+#define INTC_ICDICER16_TINT98                   (0x00000004uL)
+#define INTC_ICDICER16_TINT99                   (0x00000008uL)
+#define INTC_ICDICER16_TINT100                  (0x00000010uL)
+#define INTC_ICDICER16_TINT101                  (0x00000020uL)
+#define INTC_ICDICER16_TINT102                  (0x00000040uL)
+#define INTC_ICDICER16_TINT103                  (0x00000080uL)
+#define INTC_ICDICER16_TINT104                  (0x00000100uL)
+#define INTC_ICDICER16_TINT105                  (0x00000200uL)
+#define INTC_ICDICER16_TINT106                  (0x00000400uL)
+#define INTC_ICDICER16_TINT107                  (0x00000800uL)
+#define INTC_ICDICER16_TINT108                  (0x00001000uL)
+#define INTC_ICDICER16_TINT109                  (0x00002000uL)
+#define INTC_ICDICER16_TINT110                  (0x00004000uL)
+#define INTC_ICDICER16_TINT111                  (0x00008000uL)
+#define INTC_ICDICER16_TINT112                  (0x00010000uL)
+#define INTC_ICDICER16_TINT113                  (0x00020000uL)
+#define INTC_ICDICER16_TINT114                  (0x00040000uL)
+#define INTC_ICDICER16_TINT115                  (0x00080000uL)
+#define INTC_ICDICER16_TINT116                  (0x00100000uL)
+#define INTC_ICDICER16_TINT117                  (0x00200000uL)
+#define INTC_ICDICER16_TINT118                  (0x00400000uL)
+#define INTC_ICDICER16_TINT119                  (0x00800000uL)
+#define INTC_ICDICER16_TINT120                  (0x01000000uL)
+#define INTC_ICDICER16_TINT121                  (0x02000000uL)
+#define INTC_ICDICER16_TINT122                  (0x04000000uL)
+#define INTC_ICDICER16_TINT123                  (0x08000000uL)
+#define INTC_ICDICER16_TINT124                  (0x10000000uL)
+#define INTC_ICDICER16_TINT125                  (0x20000000uL)
+#define INTC_ICDICER16_TINT126                  (0x40000000uL)
+#define INTC_ICDICER16_TINT127                  (0x80000000uL)
+
+#define INTC_ICDICER17_TINT128                  (0x00000001uL)
+#define INTC_ICDICER17_TINT129                  (0x00000002uL)
+#define INTC_ICDICER17_TINT130                  (0x00000004uL)
+#define INTC_ICDICER17_TINT131                  (0x00000008uL)
+#define INTC_ICDICER17_TINT132                  (0x00000010uL)
+#define INTC_ICDICER17_TINT133                  (0x00000020uL)
+#define INTC_ICDICER17_TINT134                  (0x00000040uL)
+#define INTC_ICDICER17_TINT135                  (0x00000080uL)
+#define INTC_ICDICER17_TINT136                  (0x00000100uL)
+#define INTC_ICDICER17_TINT137                  (0x00000200uL)
+#define INTC_ICDICER17_TINT138                  (0x00000400uL)
+#define INTC_ICDICER17_TINT139                  (0x00000800uL)
+#define INTC_ICDICER17_TINT140                  (0x00001000uL)
+#define INTC_ICDICER17_TINT141                  (0x00002000uL)
+#define INTC_ICDICER17_TINT142                  (0x00004000uL)
+#define INTC_ICDICER17_TINT143                  (0x00008000uL)
+#define INTC_ICDICER17_TINT144                  (0x00010000uL)
+#define INTC_ICDICER17_TINT145                  (0x00020000uL)
+#define INTC_ICDICER17_TINT146                  (0x00040000uL)
+#define INTC_ICDICER17_TINT147                  (0x00080000uL)
+#define INTC_ICDICER17_TINT148                  (0x00100000uL)
+#define INTC_ICDICER17_TINT149                  (0x00200000uL)
+#define INTC_ICDICER17_TINT150                  (0x00400000uL)
+#define INTC_ICDICER17_TINT151                  (0x00800000uL)
+#define INTC_ICDICER17_TINT152                  (0x01000000uL)
+#define INTC_ICDICER17_TINT153                  (0x02000000uL)
+#define INTC_ICDICER17_TINT154                  (0x04000000uL)
+#define INTC_ICDICER17_TINT155                  (0x08000000uL)
+#define INTC_ICDICER17_TINT156                  (0x10000000uL)
+#define INTC_ICDICER17_TINT157                  (0x20000000uL)
+#define INTC_ICDICER17_TINT158                  (0x40000000uL)
+#define INTC_ICDICER17_TINT159                  (0x80000000uL)
+
+#define INTC_ICDICER18_TINT160                  (0x00000001uL)
+#define INTC_ICDICER18_TINT161                  (0x00000002uL)
+#define INTC_ICDICER18_TINT162                  (0x00000004uL)
+#define INTC_ICDICER18_TINT163                  (0x00000008uL)
+#define INTC_ICDICER18_TINT164                  (0x00000010uL)
+#define INTC_ICDICER18_TINT165                  (0x00000020uL)
+#define INTC_ICDICER18_TINT166                  (0x00000040uL)
+#define INTC_ICDICER18_TINT167                  (0x00000080uL)
+#define INTC_ICDICER18_TINT168                  (0x00000100uL)
+#define INTC_ICDICER18_TINT169                  (0x00000200uL)
+#define INTC_ICDICER18_TINT170                  (0x00000400uL)
+
+#define INTC_ICDISPR0_SW0                       (0x00000001uL)
+#define INTC_ICDISPR0_SW1                       (0x00000002uL)
+#define INTC_ICDISPR0_SW2                       (0x00000004uL)
+#define INTC_ICDISPR0_SW3                       (0x00000008uL)
+#define INTC_ICDISPR0_SW4                       (0x00000010uL)
+#define INTC_ICDISPR0_SW5                       (0x00000020uL)
+#define INTC_ICDISPR0_SW6                       (0x00000040uL)
+#define INTC_ICDISPR0_SW7                       (0x00000080uL)
+#define INTC_ICDISPR0_SW8                       (0x00000100uL)
+#define INTC_ICDISPR0_SW9                       (0x00000200uL)
+#define INTC_ICDISPR0_SW10                      (0x00000400uL)
+#define INTC_ICDISPR0_SW11                      (0x00000800uL)
+#define INTC_ICDISPR0_SW12                      (0x00001000uL)
+#define INTC_ICDISPR0_SW13                      (0x00002000uL)
+#define INTC_ICDISPR0_SW14                      (0x00004000uL)
+#define INTC_ICDISPR0_SW15                      (0x00008000uL)
+#define INTC_ICDISPR0_PMUIRQ0                   (0x00010000uL)
+#define INTC_ICDISPR0_COMMRX0                   (0x00020000uL)
+#define INTC_ICDISPR0_COMMTX0                   (0x00040000uL)
+#define INTC_ICDISPR0_CTIIRQ0                   (0x00080000uL)
+
+#define INTC_ICDISPR1_IRQ0                      (0x00000001uL)
+#define INTC_ICDISPR1_IRQ1                      (0x00000002uL)
+#define INTC_ICDISPR1_IRQ2                      (0x00000004uL)
+#define INTC_ICDISPR1_IRQ3                      (0x00000008uL)
+#define INTC_ICDISPR1_IRQ4                      (0x00000010uL)
+#define INTC_ICDISPR1_IRQ5                      (0x00000020uL)
+#define INTC_ICDISPR1_IRQ6                      (0x00000040uL)
+#define INTC_ICDISPR1_IRQ7                      (0x00000080uL)
+#define INTC_ICDISPR1_PL310ERR                  (0x00000100uL)
+#define INTC_ICDISPR1_DMAINT0                   (0x00000200uL)
+#define INTC_ICDISPR1_DMAINT1                   (0x00000400uL)
+#define INTC_ICDISPR1_DMAINT2                   (0x00000800uL)
+#define INTC_ICDISPR1_DMAINT3                   (0x00001000uL)
+#define INTC_ICDISPR1_DMAINT4                   (0x00002000uL)
+#define INTC_ICDISPR1_DMAINT5                   (0x00004000uL)
+#define INTC_ICDISPR1_DMAINT6                   (0x00008000uL)
+#define INTC_ICDISPR1_DMAINT7                   (0x00010000uL)
+#define INTC_ICDISPR1_DMAINT8                   (0x00020000uL)
+#define INTC_ICDISPR1_DMAINT9                   (0x00040000uL)
+#define INTC_ICDISPR1_DMAINT10                  (0x00080000uL)
+#define INTC_ICDISPR1_DMAINT11                  (0x00100000uL)
+#define INTC_ICDISPR1_DMAINT12                  (0x00200000uL)
+#define INTC_ICDISPR1_DMAINT13                  (0x00400000uL)
+#define INTC_ICDISPR1_DMAINT14                  (0x00800000uL)
+#define INTC_ICDISPR1_DMAINT15                  (0x01000000uL)
+#define INTC_ICDISPR1_DMAERR                    (0x02000000uL)
+
+#define INTC_ICDISPR2_USBI0                     (0x00000200uL)
+#define INTC_ICDISPR2_USBI1                     (0x00000400uL)
+#define INTC_ICDISPR2_S0_VI_VSYNC0              (0x00000800uL)
+#define INTC_ICDISPR2_S0_LO_VSYNC0              (0x00001000uL)
+#define INTC_ICDISPR2_S0_VSYNCERR0              (0x00002000uL)
+#define INTC_ICDISPR2_GR3_VLINE0                (0x00004000uL)
+#define INTC_ICDISPR2_S0_VFIELD0                (0x00008000uL)
+#define INTC_ICDISPR2_IV1_VBUFERR0              (0x00010000uL)
+#define INTC_ICDISPR2_IV3_VBUFERR0              (0x00020000uL)
+#define INTC_ICDISPR2_IV5_VBUFERR0              (0x00040000uL)
+#define INTC_ICDISPR2_IV6_VBUFERR0              (0x00080000uL)
+#define INTC_ICDISPR2_S0_WLINE0                 (0x00100000uL)
+#define INTC_ICDISPR2_S1_VI_VSYNC0              (0x00200000uL)
+#define INTC_ICDISPR2_S1_LO_VSYNC0              (0x00400000uL)
+#define INTC_ICDISPR2_S1_VSYNCERR0              (0x00800000uL)
+#define INTC_ICDISPR2_S1_VFIELD0                (0x01000000uL)
+#define INTC_ICDISPR2_IV2_VBUFERR0              (0x02000000uL)
+#define INTC_ICDISPR2_IV4_VBUFERR0              (0x04000000uL)
+#define INTC_ICDISPR2_S1_WLINE0                 (0x08000000uL)
+#define INTC_ICDISPR2_OIR_VI_VSYNC0             (0x10000000uL)
+#define INTC_ICDISPR2_OIR_LO_VSYNC0             (0x20000000uL)
+#define INTC_ICDISPR2_OIR_VSYNCERR0             (0x40000000uL)
+#define INTC_ICDISPR2_OIR_VFIELD0               (0x80000000uL)
+
+#define INTC_ICDISPR3_IV7_VBUFERR0              (0x00000001uL)
+#define INTC_ICDISPR3_IV8_VBUFERR0              (0x00000002uL)
+#define INTC_ICDISPR3_S0_VI_VSYNC1              (0x00000008uL)
+#define INTC_ICDISPR3_S0_LO_VSYNC1              (0x00000010uL)
+#define INTC_ICDISPR3_S0_VSYNCERR1              (0x00000020uL)
+#define INTC_ICDISPR3_GR3_VLINE1                (0x00000040uL)
+#define INTC_ICDISPR3_S0_VFIELD1                (0x00000080uL)
+#define INTC_ICDISPR3_IV1_VBUFERR1              (0x00000100uL)
+#define INTC_ICDISPR3_IV3_VBUFERR1              (0x00000200uL)
+#define INTC_ICDISPR3_IV5_VBUFERR1              (0x00000400uL)
+#define INTC_ICDISPR3_IV6_VBUFERR1              (0x00000800uL)
+#define INTC_ICDISPR3_S0_WLINE1                 (0x00001000uL)
+#define INTC_ICDISPR3_S1_VI_VSYNC1              (0x00002000uL)
+#define INTC_ICDISPR3_S1_LO_VSYNC1              (0x00004000uL)
+#define INTC_ICDISPR3_S1_VSYNCERR1              (0x00008000uL)
+#define INTC_ICDISPR3_S1_VFIELD1                (0x00010000uL)
+#define INTC_ICDISPR3_IV2_VBUFERR1              (0x00020000uL)
+#define INTC_ICDISPR3_IV4_VBUFERR1              (0x00040000uL)
+#define INTC_ICDISPR3_S1_WLINE1                 (0x00080000uL)
+#define INTC_ICDISPR3_OIR_VI_VSYNC1             (0x00100000uL)
+#define INTC_ICDISPR3_OIR_LO_VSYNC1             (0x00200000uL)
+#define INTC_ICDISPR3_OIR_VLINE1                (0x00400000uL)
+#define INTC_ICDISPR3_OIR_VFIELD1               (0x00800000uL)
+#define INTC_ICDISPR3_IV7_VBUFERR1              (0x01000000uL)
+#define INTC_ICDISPR3_IV8_VBUFERR1              (0x02000000uL)
+#define INTC_ICDISPR3_IMRDI                     (0x08000000uL)
+#define INTC_ICDISPR3_IMR2I0                    (0x10000000uL)
+#define INTC_ICDISPR3_IMR2I1                    (0x20000000uL)
+#define INTC_ICDISPR3_JEDI                      (0x40000000uL)
+#define INTC_ICDISPR3_JDTI                      (0x80000000uL)
+
+#define INTC_ICDISPR4_CMP0                      (0x00000001uL)
+#define INTC_ICDISPR4_CMP1                      (0x00000002uL)
+#define INTC_ICDISPR4_INT0                      (0x00000004uL)
+#define INTC_ICDISPR4_INT1                      (0x00000008uL)
+#define INTC_ICDISPR4_INT2                      (0x00000010uL)
+#define INTC_ICDISPR4_INT3                      (0x00000020uL)
+#define INTC_ICDISPR4_OSTM0TINT                 (0x00000040uL)
+#define INTC_ICDISPR4_OSTM1TINT                 (0x00000080uL)
+#define INTC_ICDISPR4_CMI                       (0x00000100uL)
+#define INTC_ICDISPR4_WTOUT                     (0x00000200uL)
+#define INTC_ICDISPR4_ITI                       (0x00000400uL)
+#define INTC_ICDISPR4_TGI0A                     (0x00000800uL)
+#define INTC_ICDISPR4_TGI0B                     (0x00001000uL)
+#define INTC_ICDISPR4_TGI0C                     (0x00002000uL)
+#define INTC_ICDISPR4_TGI0D                     (0x00004000uL)
+#define INTC_ICDISPR4_TGI0V                     (0x00008000uL)
+#define INTC_ICDISPR4_TGI0E                     (0x00010000uL)
+#define INTC_ICDISPR4_TGI0F                     (0x00020000uL)
+#define INTC_ICDISPR4_TGI1A                     (0x00040000uL)
+#define INTC_ICDISPR4_TGI1B                     (0x00080000uL)
+#define INTC_ICDISPR4_TGI1V                     (0x00100000uL)
+#define INTC_ICDISPR4_TGI1U                     (0x00200000uL)
+#define INTC_ICDISPR4_TGI2A                     (0x00400000uL)
+#define INTC_ICDISPR4_TGI2B                     (0x00800000uL)
+#define INTC_ICDISPR4_TGI2V                     (0x01000000uL)
+#define INTC_ICDISPR4_TGI2U                     (0x02000000uL)
+#define INTC_ICDISPR4_TGI3A                     (0x04000000uL)
+#define INTC_ICDISPR4_TGI3B                     (0x08000000uL)
+#define INTC_ICDISPR4_TGI3C                     (0x10000000uL)
+#define INTC_ICDISPR4_TGI3D                     (0x20000000uL)
+#define INTC_ICDISPR4_TGI3V                     (0x40000000uL)
+#define INTC_ICDISPR4_TGI4A                     (0x80000000uL)
+
+#define INTC_ICDISPR5_TGI4B                     (0x00000001uL)
+#define INTC_ICDISPR5_TGI4C                     (0x00000002uL)
+#define INTC_ICDISPR5_TGI4D                     (0x00000004uL)
+#define INTC_ICDISPR5_TGI4V                     (0x00000008uL)
+#define INTC_ICDISPR5_CMI1                      (0x00000010uL)
+#define INTC_ICDISPR5_CMI2                      (0x00000020uL)
+#define INTC_ICDISPR5_SGDEI0                    (0x00000040uL)
+#define INTC_ICDISPR5_SGDEI1                    (0x00000080uL)
+#define INTC_ICDISPR5_SGDEI2                    (0x00000100uL)
+#define INTC_ICDISPR5_SGDEI3                    (0x00000200uL)
+#define INTC_ICDISPR5_ADI                       (0x00000400uL)
+#define INTC_ICDISPR5_LMTI                      (0x00000800uL)
+#define INTC_ICDISPR5_SSII0                     (0x00001000uL)
+#define INTC_ICDISPR5_SSIRXI0                   (0x00002000uL)
+#define INTC_ICDISPR5_SSITXI0                   (0x00004000uL)
+#define INTC_ICDISPR5_SSII1                     (0x00008000uL)
+#define INTC_ICDISPR5_SSIRXI1                   (0x00010000uL)
+#define INTC_ICDISPR5_SSITXI1                   (0x00020000uL)
+#define INTC_ICDISPR5_SSII2                     (0x00040000uL)
+#define INTC_ICDISPR5_SSIRTI2                   (0x00080000uL)
+#define INTC_ICDISPR5_SSII3                     (0x00100000uL)
+#define INTC_ICDISPR5_SSIRXI3                   (0x00200000uL)
+#define INTC_ICDISPR5_SSITXI3                   (0x00400000uL)
+#define INTC_ICDISPR5_SSII4                     (0x00800000uL)
+#define INTC_ICDISPR5_SSIRTI4                   (0x01000000uL)
+#define INTC_ICDISPR5_SSII5                     (0x02000000uL)
+#define INTC_ICDISPR5_SSIRXI5                   (0x04000000uL)
+#define INTC_ICDISPR5_SSITXI5                   (0x08000000uL)
+#define INTC_ICDISPR5_SPDIFI                    (0x10000000uL)
+#define INTC_ICDISPR5_INTIICTEI0                (0x20000000uL)
+#define INTC_ICDISPR5_INTIICRI0                 (0x40000000uL)
+#define INTC_ICDISPR5_INTIICTI0                 (0x80000000uL)
+
+#define INTC_ICDISPR6_INTIICSPI0                (0x00000001uL)
+#define INTC_ICDISPR6_INTIICSTI0                (0x00000002uL)
+#define INTC_ICDISPR6_INTIICNAKI0               (0x00000004uL)
+#define INTC_ICDISPR6_INTIICALI0                (0x00000008uL)
+#define INTC_ICDISPR6_INTIICTMOI0               (0x00000010uL)
+#define INTC_ICDISPR6_INTIICTEI1                (0x00000020uL)
+#define INTC_ICDISPR6_INTIICRI1                 (0x00000040uL)
+#define INTC_ICDISPR6_INTIICTI1                 (0x00000080uL)
+#define INTC_ICDISPR6_INTIICSPI1                (0x00000100uL)
+#define INTC_ICDISPR6_INTIICSTI1                (0x00000200uL)
+#define INTC_ICDISPR6_INTIICNAKI1               (0x00000400uL)
+#define INTC_ICDISPR6_INTIICALI1                (0x00000800uL)
+#define INTC_ICDISPR6_INTIICTMOI1               (0x00001000uL)
+#define INTC_ICDISPR6_INTIICTEI2                (0x00002000uL)
+#define INTC_ICDISPR6_INTIICRI2                 (0x00004000uL)
+#define INTC_ICDISPR6_INTIICTI2                 (0x00008000uL)
+#define INTC_ICDISPR6_INTIICSPI2                (0x00010000uL)
+#define INTC_ICDISPR6_INTIICSTI2                (0x00020000uL)
+#define INTC_ICDISPR6_INTIICNAKI2               (0x00040000uL)
+#define INTC_ICDISPR6_INTIICALI2                (0x00080000uL)
+#define INTC_ICDISPR6_INTIICTMOI2               (0x00100000uL)
+#define INTC_ICDISPR6_INTIICTEI3                (0x00200000uL)
+#define INTC_ICDISPR6_INTIICRI3                 (0x00400000uL)
+#define INTC_ICDISPR6_INTIICTI3                 (0x00800000uL)
+#define INTC_ICDISPR6_INTIICSPI3                (0x01000000uL)
+#define INTC_ICDISPR6_INTIICSTI3                (0x02000000uL)
+#define INTC_ICDISPR6_INTIICNAKI3               (0x04000000uL)
+#define INTC_ICDISPR6_INTIICALI3                (0x08000000uL)
+#define INTC_ICDISPR6_INTIICTMOI3               (0x10000000uL)
+#define INTC_ICDISPR6_BRI0                      (0x20000000uL)
+#define INTC_ICDISPR6_ERI0                      (0x40000000uL)
+#define INTC_ICDISPR6_RXI0                      (0x80000000uL)
+
+#define INTC_ICDISPR7_TXI0                      (0x00000001uL)
+#define INTC_ICDISPR7_BRI1                      (0x00000002uL)
+#define INTC_ICDISPR7_ERI1                      (0x00000004uL)
+#define INTC_ICDISPR7_RXI1                      (0x00000008uL)
+#define INTC_ICDISPR7_TXI1                      (0x00000010uL)
+#define INTC_ICDISPR7_BRI2                      (0x00000020uL)
+#define INTC_ICDISPR7_ERI2                      (0x00000040uL)
+#define INTC_ICDISPR7_RXI2                      (0x00000080uL)
+#define INTC_ICDISPR7_TXI2                      (0x00000100uL)
+#define INTC_ICDISPR7_BRI3                      (0x00000200uL)
+#define INTC_ICDISPR7_ERI3                      (0x00000400uL)
+#define INTC_ICDISPR7_RXI3                      (0x00000800uL)
+#define INTC_ICDISPR7_TXI3                      (0x00001000uL)
+#define INTC_ICDISPR7_BRI4                      (0x00002000uL)
+#define INTC_ICDISPR7_ERI4                      (0x00004000uL)
+#define INTC_ICDISPR7_RXI4                      (0x00008000uL)
+#define INTC_ICDISPR7_TXI4                      (0x00010000uL)
+#define INTC_ICDISPR7_BRI5                      (0x00020000uL)
+#define INTC_ICDISPR7_ERI5                      (0x00040000uL)
+#define INTC_ICDISPR7_RXI5                      (0x00080000uL)
+#define INTC_ICDISPR7_TXI5                      (0x00100000uL)
+#define INTC_ICDISPR7_BRI6                      (0x00200000uL)
+#define INTC_ICDISPR7_ERI6                      (0x00400000uL)
+#define INTC_ICDISPR7_RXI6                      (0x00800000uL)
+#define INTC_ICDISPR7_TXI6                      (0x01000000uL)
+#define INTC_ICDISPR7_BRI7                      (0x02000000uL)
+#define INTC_ICDISPR7_ERI7                      (0x04000000uL)
+#define INTC_ICDISPR7_RXI7                      (0x08000000uL)
+#define INTC_ICDISPR7_TXI7                      (0x10000000uL)
+#define INTC_ICDISPR7_INTRCANGERR               (0x20000000uL)
+#define INTC_ICDISPR7_INTRCANGRECC              (0x40000000uL)
+#define INTC_ICDISPR7_INTRCAN0REC               (0x80000000uL)
+
+#define INTC_ICDISPR8_INTRCAN0ERR               (0x00000001uL)
+#define INTC_ICDISPR8_INTRCAN0TRX               (0x00000002uL)
+#define INTC_ICDISPR8_INTRCAN1REC               (0x00000004uL)
+#define INTC_ICDISPR8_INTRCAN1ERR               (0x00000008uL)
+#define INTC_ICDISPR8_INTRCAN1TRX               (0x00000010uL)
+#define INTC_ICDISPR8_INTRCAN2REC               (0x00000020uL)
+#define INTC_ICDISPR8_INTRCAN2ERR               (0x00000040uL)
+#define INTC_ICDISPR8_INTRCAN2TRX               (0x00000080uL)
+#define INTC_ICDISPR8_INTRCAN3REC               (0x00000100uL)
+#define INTC_ICDISPR8_INTRCAN3ERR               (0x00000200uL)
+#define INTC_ICDISPR8_INTRCAN3TRX               (0x00000400uL)
+#define INTC_ICDISPR8_INTRCAN4REC               (0x00000800uL)
+#define INTC_ICDISPR8_INTRCAN4ERR               (0x00001000uL)
+#define INTC_ICDISPR8_INTRCAN4TRX               (0x00002000uL)
+#define INTC_ICDISPR8_SPEI0                     (0x00004000uL)
+#define INTC_ICDISPR8_SPRI0                     (0x00008000uL)
+#define INTC_ICDISPR8_SPTI0                     (0x00010000uL)
+#define INTC_ICDISPR8_SPEI1                     (0x00020000uL)
+#define INTC_ICDISPR8_SPRI1                     (0x00040000uL)
+#define INTC_ICDISPR8_SPTI1                     (0x00080000uL)
+#define INTC_ICDISPR8_SPEI2                     (0x00100000uL)
+#define INTC_ICDISPR8_SPRI2                     (0x00200000uL)
+#define INTC_ICDISPR8_SPTI2                     (0x00400000uL)
+#define INTC_ICDISPR8_SPEI3                     (0x00800000uL)
+#define INTC_ICDISPR8_SPRI3                     (0x01000000uL)
+#define INTC_ICDISPR8_SPTI3                     (0x02000000uL)
+#define INTC_ICDISPR8_SPEI4                     (0x04000000uL)
+#define INTC_ICDISPR8_SPRI4                     (0x08000000uL)
+#define INTC_ICDISPR8_SPTI4                     (0x10000000uL)
+#define INTC_ICDISPR8_IEBBTD                    (0x20000000uL)
+#define INTC_ICDISPR8_IEBBTERR                  (0x40000000uL)
+#define INTC_ICDISPR8_IEBBTSTA                  (0x80000000uL)
+
+#define INTC_ICDISPR9_IEBBTV                    (0x00000001uL)
+#define INTC_ICDISPR9_ISY                       (0x00000002uL)
+#define INTC_ICDISPR9_IERR                      (0x00000004uL)
+#define INTC_ICDISPR9_ITARG                     (0x00000008uL)
+#define INTC_ICDISPR9_ISEC                      (0x00000010uL)
+#define INTC_ICDISPR9_IBUF                      (0x00000020uL)
+#define INTC_ICDISPR9_IREADY                    (0x00000040uL)
+#define INTC_ICDISPR9_FLSTE                     (0x00000080uL)
+#define INTC_ICDISPR9_FLTENDI                   (0x00000100uL)
+#define INTC_ICDISPR9_FLTREQ0I                  (0x00000200uL)
+#define INTC_ICDISPR9_FLTREQ1I                  (0x00000400uL)
+#define INTC_ICDISPR9_MMC0                      (0x00000800uL)
+#define INTC_ICDISPR9_MMC1                      (0x00001000uL)
+#define INTC_ICDISPR9_MMC2                      (0x00002000uL)
+#define INTC_ICDISPR9_SDHI0_3                   (0x00004000uL)
+#define INTC_ICDISPR9_SDHI0_0                   (0x00008000uL)
+#define INTC_ICDISPR9_SDHI0_1                   (0x00010000uL)
+#define INTC_ICDISPR9_SDHI1_3                   (0x00020000uL)
+#define INTC_ICDISPR9_SDHI1_0                   (0x00040000uL)
+#define INTC_ICDISPR9_SDHI1_1                   (0x00080000uL)
+#define INTC_ICDISPR9_ARM                       (0x00100000uL)
+#define INTC_ICDISPR9_PRD                       (0x00200000uL)
+#define INTC_ICDISPR9_CUP                       (0x00400000uL)
+#define INTC_ICDISPR9_SCUAI0                    (0x00800000uL)
+#define INTC_ICDISPR9_SCUAI1                    (0x01000000uL)
+#define INTC_ICDISPR9_SCUFDI0                   (0x02000000uL)
+#define INTC_ICDISPR9_SCUFDI1                   (0x04000000uL)
+#define INTC_ICDISPR9_SCUFDI2                   (0x08000000uL)
+#define INTC_ICDISPR9_SCUFDI3                   (0x10000000uL)
+#define INTC_ICDISPR9_SCUFUI0                   (0x20000000uL)
+#define INTC_ICDISPR9_SCUFUI1                   (0x40000000uL)
+#define INTC_ICDISPR9_SCUFUI2                   (0x80000000uL)
+
+#define INTC_ICDISPR10_SCUFUI3                  (0x00000001uL)
+#define INTC_ICDISPR10_SCUDVI0                  (0x00000002uL)
+#define INTC_ICDISPR10_SCUDVI1                  (0x00000004uL)
+#define INTC_ICDISPR10_SCUDVI2                  (0x00000008uL)
+#define INTC_ICDISPR10_SCUDVI3                  (0x00000010uL)
+#define INTC_ICDISPR10_MLB_CINT                 (0x00000020uL)
+#define INTC_ICDISPR10_MLB_SINT                 (0x00000040uL)
+#define INTC_ICDISPR10_DRC0                     (0x00000080uL)
+#define INTC_ICDISPR10_DRC1                     (0x00000100uL)
+#define INTC_ICDISPR10_LINI0_INT_T              (0x00000800uL)
+#define INTC_ICDISPR10_LINI0_INT_R              (0x00001000uL)
+#define INTC_ICDISPR10_LINI0_INT_S              (0x00002000uL)
+#define INTC_ICDISPR10_LINI0_INT_M              (0x00004000uL)
+#define INTC_ICDISPR10_LINI1_INT_T              (0x00008000uL)
+#define INTC_ICDISPR10_LINI1_INT_R              (0x00010000uL)
+#define INTC_ICDISPR10_LINI1_INT_S              (0x00020000uL)
+#define INTC_ICDISPR10_LINI1_INT_M              (0x00040000uL)
+#define INTC_ICDISPR10_ERI0                     (0x08000000uL)
+#define INTC_ICDISPR10_RXI0                     (0x10000000uL)
+#define INTC_ICDISPR10_TXI0                     (0x20000000uL)
+#define INTC_ICDISPR10_TEI0                     (0x40000000uL)
+#define INTC_ICDISPR10_ERI1                     (0x80000000uL)
+
+#define INTC_ICDISPR11_RXI1                     (0x00000001uL)
+#define INTC_ICDISPR11_TXI1                     (0x00000002uL)
+#define INTC_ICDISPR11_TEI1                     (0x00000004uL)
+#define INTC_ICDISPR11_AVBI_DATA                (0x00000008uL)
+#define INTC_ICDISPR11_AVBI_ERROR               (0x00000010uL)
+#define INTC_ICDISPR11_AVBI_MANAGE              (0x00000020uL)
+#define INTC_ICDISPR11_AVBI_MAC                 (0x00000040uL)
+#define INTC_ICDISPR11_ETHERI                   (0x00000080uL)
+#define INTC_ICDISPR11_CEUI                     (0x00001000uL)
+#define INTC_ICDISPR11_H2XMLB_ERRINT            (0x20000000uL)
+#define INTC_ICDISPR11_H2XIC1_ERRINT            (0x40000000uL)
+#define INTC_ICDISPR11_X2HPERI1_ERRINT          (0x80000000uL)
+
+#define INTC_ICDISPR12_X2HPERI2_ERRINT          (0x00000001uL)
+#define INTC_ICDISPR12_X2HPERI34_ERRINT         (0x00000002uL)
+#define INTC_ICDISPR12_X2HPERI5_ERRINT          (0x00000004uL)
+#define INTC_ICDISPR12_X2HPERI67_ERRINT         (0x00000008uL)
+#define INTC_ICDISPR12_X2HDBGR_ERRINT           (0x00000010uL)
+#define INTC_ICDISPR12_X2HBSC_ERRINT            (0x00000020uL)
+#define INTC_ICDISPR12_X2HSPI1_ERRINT           (0x00000040uL)
+#define INTC_ICDISPR12_X2HSPI2_ERRINT           (0x00000080uL)
+#define INTC_ICDISPR12_PRRI                     (0x00000100uL)
+#define INTC_ICDISPR12_IFEI0                    (0x00000200uL)
+#define INTC_ICDISPR12_OFFI0                    (0x00000400uL)
+#define INTC_ICDISPR12_PFVEI0                   (0x00000800uL)
+#define INTC_ICDISPR12_IFEI1                    (0x00001000uL)
+#define INTC_ICDISPR12_OFFI1                    (0x00002000uL)
+#define INTC_ICDISPR12_PFVEI1                   (0x00004000uL)
+
+#define INTC_ICDISPR13_TINT0                    (0x00000001uL)
+#define INTC_ICDISPR13_TINT1                    (0x00000002uL)
+#define INTC_ICDISPR13_TINT2                    (0x00000004uL)
+#define INTC_ICDISPR13_TINT3                    (0x00000008uL)
+#define INTC_ICDISPR13_TINT4                    (0x00000010uL)
+#define INTC_ICDISPR13_TINT5                    (0x00000020uL)
+#define INTC_ICDISPR13_TINT6                    (0x00000040uL)
+#define INTC_ICDISPR13_TINT7                    (0x00000080uL)
+#define INTC_ICDISPR13_TINT8                    (0x00000100uL)
+#define INTC_ICDISPR13_TINT9                    (0x00000200uL)
+#define INTC_ICDISPR13_TINT10                   (0x00000400uL)
+#define INTC_ICDISPR13_TINT11                   (0x00000800uL)
+#define INTC_ICDISPR13_TINT12                   (0x00001000uL)
+#define INTC_ICDISPR13_TINT13                   (0x00002000uL)
+#define INTC_ICDISPR13_TINT14                   (0x00004000uL)
+#define INTC_ICDISPR13_TINT15                   (0x00008000uL)
+#define INTC_ICDISPR13_TINT16                   (0x00010000uL)
+#define INTC_ICDISPR13_TINT17                   (0x00020000uL)
+#define INTC_ICDISPR13_TINT18                   (0x00040000uL)
+#define INTC_ICDISPR13_TINT19                   (0x00080000uL)
+#define INTC_ICDISPR13_TINT20                   (0x00100000uL)
+#define INTC_ICDISPR13_TINT21                   (0x00200000uL)
+#define INTC_ICDISPR13_TINT22                   (0x00400000uL)
+#define INTC_ICDISPR13_TINT23                   (0x00800000uL)
+#define INTC_ICDISPR13_TINT24                   (0x01000000uL)
+#define INTC_ICDISPR13_TINT25                   (0x02000000uL)
+#define INTC_ICDISPR13_TINT26                   (0x04000000uL)
+#define INTC_ICDISPR13_TINT27                   (0x08000000uL)
+#define INTC_ICDISPR13_TINT28                   (0x10000000uL)
+#define INTC_ICDISPR13_TINT29                   (0x20000000uL)
+#define INTC_ICDISPR13_TINT30                   (0x40000000uL)
+#define INTC_ICDISPR13_TINT31                   (0x80000000uL)
+
+#define INTC_ICDISPR14_TINT32                   (0x00000001uL)
+#define INTC_ICDISPR14_TINT33                   (0x00000002uL)
+#define INTC_ICDISPR14_TINT34                   (0x00000004uL)
+#define INTC_ICDISPR14_TINT35                   (0x00000008uL)
+#define INTC_ICDISPR14_TINT36                   (0x00000010uL)
+#define INTC_ICDISPR14_TINT37                   (0x00000020uL)
+#define INTC_ICDISPR14_TINT38                   (0x00000040uL)
+#define INTC_ICDISPR14_TINT39                   (0x00000080uL)
+#define INTC_ICDISPR14_TINT40                   (0x00000100uL)
+#define INTC_ICDISPR14_TINT41                   (0x00000200uL)
+#define INTC_ICDISPR14_TINT42                   (0x00000400uL)
+#define INTC_ICDISPR14_TINT43                   (0x00000800uL)
+#define INTC_ICDISPR14_TINT44                   (0x00001000uL)
+#define INTC_ICDISPR14_TINT45                   (0x00002000uL)
+#define INTC_ICDISPR14_TINT46                   (0x00004000uL)
+#define INTC_ICDISPR14_TINT47                   (0x00008000uL)
+#define INTC_ICDISPR14_TINT48                   (0x00010000uL)
+#define INTC_ICDISPR14_TINT49                   (0x00020000uL)
+#define INTC_ICDISPR14_TINT50                   (0x00040000uL)
+#define INTC_ICDISPR14_TINT51                   (0x00080000uL)
+#define INTC_ICDISPR14_TINT52                   (0x00100000uL)
+#define INTC_ICDISPR14_TINT53                   (0x00200000uL)
+#define INTC_ICDISPR14_TINT54                   (0x00400000uL)
+#define INTC_ICDISPR14_TINT55                   (0x00800000uL)
+#define INTC_ICDISPR14_TINT56                   (0x01000000uL)
+#define INTC_ICDISPR14_TINT57                   (0x02000000uL)
+#define INTC_ICDISPR14_TINT58                   (0x04000000uL)
+#define INTC_ICDISPR14_TINT59                   (0x08000000uL)
+#define INTC_ICDISPR14_TINT60                   (0x10000000uL)
+#define INTC_ICDISPR14_TINT61                   (0x20000000uL)
+#define INTC_ICDISPR14_TINT62                   (0x40000000uL)
+#define INTC_ICDISPR14_TINT63                   (0x80000000uL)
+
+#define INTC_ICDISPR15_TINT64                   (0x00000001uL)
+#define INTC_ICDISPR15_TINT65                   (0x00000002uL)
+#define INTC_ICDISPR15_TINT66                   (0x00000004uL)
+#define INTC_ICDISPR15_TINT67                   (0x00000008uL)
+#define INTC_ICDISPR15_TINT68                   (0x00000010uL)
+#define INTC_ICDISPR15_TINT69                   (0x00000020uL)
+#define INTC_ICDISPR15_TINT70                   (0x00000040uL)
+#define INTC_ICDISPR15_TINT71                   (0x00000080uL)
+#define INTC_ICDISPR15_TINT72                   (0x00000100uL)
+#define INTC_ICDISPR15_TINT73                   (0x00000200uL)
+#define INTC_ICDISPR15_TINT74                   (0x00000400uL)
+#define INTC_ICDISPR15_TINT75                   (0x00000800uL)
+#define INTC_ICDISPR15_TINT76                   (0x00001000uL)
+#define INTC_ICDISPR15_TINT77                   (0x00002000uL)
+#define INTC_ICDISPR15_TINT78                   (0x00004000uL)
+#define INTC_ICDISPR15_TINT79                   (0x00008000uL)
+#define INTC_ICDISPR15_TINT80                   (0x00010000uL)
+#define INTC_ICDISPR15_TINT81                   (0x00020000uL)
+#define INTC_ICDISPR15_TINT82                   (0x00040000uL)
+#define INTC_ICDISPR15_TINT83                   (0x00080000uL)
+#define INTC_ICDISPR15_TINT84                   (0x00100000uL)
+#define INTC_ICDISPR15_TINT85                   (0x00200000uL)
+#define INTC_ICDISPR15_TINT86                   (0x00400000uL)
+#define INTC_ICDISPR15_TINT87                   (0x00800000uL)
+#define INTC_ICDISPR15_TINT88                   (0x01000000uL)
+#define INTC_ICDISPR15_TINT89                   (0x02000000uL)
+#define INTC_ICDISPR15_TINT90                   (0x04000000uL)
+#define INTC_ICDISPR15_TINT91                   (0x08000000uL)
+#define INTC_ICDISPR15_TINT92                   (0x10000000uL)
+#define INTC_ICDISPR15_TINT93                   (0x20000000uL)
+#define INTC_ICDISPR15_TINT94                   (0x40000000uL)
+#define INTC_ICDISPR15_TINT95                   (0x80000000uL)
+
+#define INTC_ICDISPR16_TINT96                   (0x00000001uL)
+#define INTC_ICDISPR16_TINT97                   (0x00000002uL)
+#define INTC_ICDISPR16_TINT98                   (0x00000004uL)
+#define INTC_ICDISPR16_TINT99                   (0x00000008uL)
+#define INTC_ICDISPR16_TINT100                  (0x00000010uL)
+#define INTC_ICDISPR16_TINT101                  (0x00000020uL)
+#define INTC_ICDISPR16_TINT102                  (0x00000040uL)
+#define INTC_ICDISPR16_TINT103                  (0x00000080uL)
+#define INTC_ICDISPR16_TINT104                  (0x00000100uL)
+#define INTC_ICDISPR16_TINT105                  (0x00000200uL)
+#define INTC_ICDISPR16_TINT106                  (0x00000400uL)
+#define INTC_ICDISPR16_TINT107                  (0x00000800uL)
+#define INTC_ICDISPR16_TINT108                  (0x00001000uL)
+#define INTC_ICDISPR16_TINT109                  (0x00002000uL)
+#define INTC_ICDISPR16_TINT110                  (0x00004000uL)
+#define INTC_ICDISPR16_TINT111                  (0x00008000uL)
+#define INTC_ICDISPR16_TINT112                  (0x00010000uL)
+#define INTC_ICDISPR16_TINT113                  (0x00020000uL)
+#define INTC_ICDISPR16_TINT114                  (0x00040000uL)
+#define INTC_ICDISPR16_TINT115                  (0x00080000uL)
+#define INTC_ICDISPR16_TINT116                  (0x00100000uL)
+#define INTC_ICDISPR16_TINT117                  (0x00200000uL)
+#define INTC_ICDISPR16_TINT118                  (0x00400000uL)
+#define INTC_ICDISPR16_TINT119                  (0x00800000uL)
+#define INTC_ICDISPR16_TINT120                  (0x01000000uL)
+#define INTC_ICDISPR16_TINT121                  (0x02000000uL)
+#define INTC_ICDISPR16_TINT122                  (0x04000000uL)
+#define INTC_ICDISPR16_TINT123                  (0x08000000uL)
+#define INTC_ICDISPR16_TINT124                  (0x10000000uL)
+#define INTC_ICDISPR16_TINT125                  (0x20000000uL)
+#define INTC_ICDISPR16_TINT126                  (0x40000000uL)
+#define INTC_ICDISPR16_TINT127                  (0x80000000uL)
+
+#define INTC_ICDISPR17_TINT128                  (0x00000001uL)
+#define INTC_ICDISPR17_TINT129                  (0x00000002uL)
+#define INTC_ICDISPR17_TINT130                  (0x00000004uL)
+#define INTC_ICDISPR17_TINT131                  (0x00000008uL)
+#define INTC_ICDISPR17_TINT132                  (0x00000010uL)
+#define INTC_ICDISPR17_TINT133                  (0x00000020uL)
+#define INTC_ICDISPR17_TINT134                  (0x00000040uL)
+#define INTC_ICDISPR17_TINT135                  (0x00000080uL)
+#define INTC_ICDISPR17_TINT136                  (0x00000100uL)
+#define INTC_ICDISPR17_TINT137                  (0x00000200uL)
+#define INTC_ICDISPR17_TINT138                  (0x00000400uL)
+#define INTC_ICDISPR17_TINT139                  (0x00000800uL)
+#define INTC_ICDISPR17_TINT140                  (0x00001000uL)
+#define INTC_ICDISPR17_TINT141                  (0x00002000uL)
+#define INTC_ICDISPR17_TINT142                  (0x00004000uL)
+#define INTC_ICDISPR17_TINT143                  (0x00008000uL)
+#define INTC_ICDISPR17_TINT144                  (0x00010000uL)
+#define INTC_ICDISPR17_TINT145                  (0x00020000uL)
+#define INTC_ICDISPR17_TINT146                  (0x00040000uL)
+#define INTC_ICDISPR17_TINT147                  (0x00080000uL)
+#define INTC_ICDISPR17_TINT148                  (0x00100000uL)
+#define INTC_ICDISPR17_TINT149                  (0x00200000uL)
+#define INTC_ICDISPR17_TINT150                  (0x00400000uL)
+#define INTC_ICDISPR17_TINT151                  (0x00800000uL)
+#define INTC_ICDISPR17_TINT152                  (0x01000000uL)
+#define INTC_ICDISPR17_TINT153                  (0x02000000uL)
+#define INTC_ICDISPR17_TINT154                  (0x04000000uL)
+#define INTC_ICDISPR17_TINT155                  (0x08000000uL)
+#define INTC_ICDISPR17_TINT156                  (0x10000000uL)
+#define INTC_ICDISPR17_TINT157                  (0x20000000uL)
+#define INTC_ICDISPR17_TINT158                  (0x40000000uL)
+#define INTC_ICDISPR17_TINT159                  (0x80000000uL)
+
+#define INTC_ICDISPR18_TINT160                  (0x00000001uL)
+#define INTC_ICDISPR18_TINT161                  (0x00000002uL)
+#define INTC_ICDISPR18_TINT162                  (0x00000004uL)
+#define INTC_ICDISPR18_TINT163                  (0x00000008uL)
+#define INTC_ICDISPR18_TINT164                  (0x00000010uL)
+#define INTC_ICDISPR18_TINT165                  (0x00000020uL)
+#define INTC_ICDISPR18_TINT166                  (0x00000040uL)
+#define INTC_ICDISPR18_TINT167                  (0x00000080uL)
+#define INTC_ICDISPR18_TINT168                  (0x00000100uL)
+#define INTC_ICDISPR18_TINT169                  (0x00000200uL)
+#define INTC_ICDISPR18_TINT170                  (0x00000400uL)
+
+#define INTC_ICDICPR0_SW0                       (0x00000001uL)
+#define INTC_ICDICPR0_SW1                       (0x00000002uL)
+#define INTC_ICDICPR0_SW2                       (0x00000004uL)
+#define INTC_ICDICPR0_SW3                       (0x00000008uL)
+#define INTC_ICDICPR0_SW4                       (0x00000010uL)
+#define INTC_ICDICPR0_SW5                       (0x00000020uL)
+#define INTC_ICDICPR0_SW6                       (0x00000040uL)
+#define INTC_ICDICPR0_SW7                       (0x00000080uL)
+#define INTC_ICDICPR0_SW8                       (0x00000100uL)
+#define INTC_ICDICPR0_SW9                       (0x00000200uL)
+#define INTC_ICDICPR0_SW10                      (0x00000400uL)
+#define INTC_ICDICPR0_SW11                      (0x00000800uL)
+#define INTC_ICDICPR0_SW12                      (0x00001000uL)
+#define INTC_ICDICPR0_SW13                      (0x00002000uL)
+#define INTC_ICDICPR0_SW14                      (0x00004000uL)
+#define INTC_ICDICPR0_SW15                      (0x00008000uL)
+#define INTC_ICDICPR0_PMUIRQ0                   (0x00010000uL)
+#define INTC_ICDICPR0_COMMRX0                   (0x00020000uL)
+#define INTC_ICDICPR0_COMMTX0                   (0x00040000uL)
+#define INTC_ICDICPR0_CTIIRQ0                   (0x00080000uL)
+
+#define INTC_ICDICPR1_IRQ0                      (0x00000001uL)
+#define INTC_ICDICPR1_IRQ1                      (0x00000002uL)
+#define INTC_ICDICPR1_IRQ2                      (0x00000004uL)
+#define INTC_ICDICPR1_IRQ3                      (0x00000008uL)
+#define INTC_ICDICPR1_IRQ4                      (0x00000010uL)
+#define INTC_ICDICPR1_IRQ5                      (0x00000020uL)
+#define INTC_ICDICPR1_IRQ6                      (0x00000040uL)
+#define INTC_ICDICPR1_IRQ7                      (0x00000080uL)
+#define INTC_ICDICPR1_PL310ERR                  (0x00000100uL)
+#define INTC_ICDICPR1_DMAINT0                   (0x00000200uL)
+#define INTC_ICDICPR1_DMAINT1                   (0x00000400uL)
+#define INTC_ICDICPR1_DMAINT2                   (0x00000800uL)
+#define INTC_ICDICPR1_DMAINT3                   (0x00001000uL)
+#define INTC_ICDICPR1_DMAINT4                   (0x00002000uL)
+#define INTC_ICDICPR1_DMAINT5                   (0x00004000uL)
+#define INTC_ICDICPR1_DMAINT6                   (0x00008000uL)
+#define INTC_ICDICPR1_DMAINT7                   (0x00010000uL)
+#define INTC_ICDICPR1_DMAINT8                   (0x00020000uL)
+#define INTC_ICDICPR1_DMAINT9                   (0x00040000uL)
+#define INTC_ICDICPR1_DMAINT10                  (0x00080000uL)
+#define INTC_ICDICPR1_DMAINT11                  (0x00100000uL)
+#define INTC_ICDICPR1_DMAINT12                  (0x00200000uL)
+#define INTC_ICDICPR1_DMAINT13                  (0x00400000uL)
+#define INTC_ICDICPR1_DMAINT14                  (0x00800000uL)
+#define INTC_ICDICPR1_DMAINT15                  (0x01000000uL)
+#define INTC_ICDICPR1_DMAERR                    (0x02000000uL)
+
+#define INTC_ICDICPR2_USBI0                     (0x00000200uL)
+#define INTC_ICDICPR2_USBI1                     (0x00000400uL)
+#define INTC_ICDICPR2_S0_VI_VSYNC0              (0x00000800uL)
+#define INTC_ICDICPR2_S0_LO_VSYNC0              (0x00001000uL)
+#define INTC_ICDICPR2_S0_VSYNCERR0              (0x00002000uL)
+#define INTC_ICDICPR2_GR3_VLINE0                (0x00004000uL)
+#define INTC_ICDICPR2_S0_VFIELD0                (0x00008000uL)
+#define INTC_ICDICPR2_IV1_VBUFERR0              (0x00010000uL)
+#define INTC_ICDICPR2_IV3_VBUFERR0              (0x00020000uL)
+#define INTC_ICDICPR2_IV5_VBUFERR0              (0x00040000uL)
+#define INTC_ICDICPR2_IV6_VBUFERR0              (0x00080000uL)
+#define INTC_ICDICPR2_S0_WLINE0                 (0x00100000uL)
+#define INTC_ICDICPR2_S1_VI_VSYNC0              (0x00200000uL)
+#define INTC_ICDICPR2_S1_LO_VSYNC0              (0x00400000uL)
+#define INTC_ICDICPR2_S1_VSYNCERR0              (0x00800000uL)
+#define INTC_ICDICPR2_S1_VFIELD0                (0x01000000uL)
+#define INTC_ICDICPR2_IV2_VBUFERR0              (0x02000000uL)
+#define INTC_ICDICPR2_IV4_VBUFERR0              (0x04000000uL)
+#define INTC_ICDICPR2_S1_WLINE0                 (0x08000000uL)
+#define INTC_ICDICPR2_OIR_VI_VSYNC0             (0x10000000uL)
+#define INTC_ICDICPR2_OIR_LO_VSYNC0             (0x20000000uL)
+#define INTC_ICDICPR2_OIR_VSYNCERR0             (0x40000000uL)
+#define INTC_ICDICPR2_OIR_VFIELD0               (0x80000000uL)
+
+#define INTC_ICDICPR3_IV7_VBUFERR0              (0x00000001uL)
+#define INTC_ICDICPR3_IV8_VBUFERR0              (0x00000002uL)
+#define INTC_ICDICPR3_S0_VI_VSYNC1              (0x00000008uL)
+#define INTC_ICDICPR3_S0_LO_VSYNC1              (0x00000010uL)
+#define INTC_ICDICPR3_S0_VSYNCERR1              (0x00000020uL)
+#define INTC_ICDICPR3_GR3_VLINE1                (0x00000040uL)
+#define INTC_ICDICPR3_S0_VFIELD1                (0x00000080uL)
+#define INTC_ICDICPR3_IV1_VBUFERR1              (0x00000100uL)
+#define INTC_ICDICPR3_IV3_VBUFERR1              (0x00000200uL)
+#define INTC_ICDICPR3_IV5_VBUFERR1              (0x00000400uL)
+#define INTC_ICDICPR3_IV6_VBUFERR1              (0x00000800uL)
+#define INTC_ICDICPR3_S0_WLINE1                 (0x00001000uL)
+#define INTC_ICDICPR3_S1_VI_VSYNC1              (0x00002000uL)
+#define INTC_ICDICPR3_S1_LO_VSYNC1              (0x00004000uL)
+#define INTC_ICDICPR3_S1_VSYNCERR1              (0x00008000uL)
+#define INTC_ICDICPR3_S1_VFIELD1                (0x00010000uL)
+#define INTC_ICDICPR3_IV2_VBUFERR1              (0x00020000uL)
+#define INTC_ICDICPR3_IV4_VBUFERR1              (0x00040000uL)
+#define INTC_ICDICPR3_S1_WLINE1                 (0x00080000uL)
+#define INTC_ICDICPR3_OIR_VI_VSYNC1             (0x00100000uL)
+#define INTC_ICDICPR3_OIR_LO_VSYNC1             (0x00200000uL)
+#define INTC_ICDICPR3_OIR_VLINE1                (0x00400000uL)
+#define INTC_ICDICPR3_OIR_VFIELD1               (0x00800000uL)
+#define INTC_ICDICPR3_IV7_VBUFERR1              (0x01000000uL)
+#define INTC_ICDICPR3_IV8_VBUFERR1              (0x02000000uL)
+#define INTC_ICDICPR3_IMRDI                     (0x08000000uL)
+#define INTC_ICDICPR3_IMR2I0                    (0x10000000uL)
+#define INTC_ICDICPR3_IMR2I1                    (0x20000000uL)
+#define INTC_ICDICPR3_JEDI                      (0x40000000uL)
+#define INTC_ICDICPR3_JDTI                      (0x80000000uL)
+
+#define INTC_ICDICPR4_CMP0                      (0x00000001uL)
+#define INTC_ICDICPR4_CMP1                      (0x00000002uL)
+#define INTC_ICDICPR4_INT0                      (0x00000004uL)
+#define INTC_ICDICPR4_INT1                      (0x00000008uL)
+#define INTC_ICDICPR4_INT2                      (0x00000010uL)
+#define INTC_ICDICPR4_INT3                      (0x00000020uL)
+#define INTC_ICDICPR4_OSTM0TINT                 (0x00000040uL)
+#define INTC_ICDICPR4_OSTM1TINT                 (0x00000080uL)
+#define INTC_ICDICPR4_CMI                       (0x00000100uL)
+#define INTC_ICDICPR4_WTOUT                     (0x00000200uL)
+#define INTC_ICDICPR4_ITI                       (0x00000400uL)
+#define INTC_ICDICPR4_TGI0A                     (0x00000800uL)
+#define INTC_ICDICPR4_TGI0B                     (0x00001000uL)
+#define INTC_ICDICPR4_TGI0C                     (0x00002000uL)
+#define INTC_ICDICPR4_TGI0D                     (0x00004000uL)
+#define INTC_ICDICPR4_TGI0V                     (0x00008000uL)
+#define INTC_ICDICPR4_TGI0E                     (0x00010000uL)
+#define INTC_ICDICPR4_TGI0F                     (0x00020000uL)
+#define INTC_ICDICPR4_TGI1A                     (0x00040000uL)
+#define INTC_ICDICPR4_TGI1B                     (0x00080000uL)
+#define INTC_ICDICPR4_TGI1V                     (0x00100000uL)
+#define INTC_ICDICPR4_TGI1U                     (0x00200000uL)
+#define INTC_ICDICPR4_TGI2A                     (0x00400000uL)
+#define INTC_ICDICPR4_TGI2B                     (0x00800000uL)
+#define INTC_ICDICPR4_TGI2V                     (0x01000000uL)
+#define INTC_ICDICPR4_TGI2U                     (0x02000000uL)
+#define INTC_ICDICPR4_TGI3A                     (0x04000000uL)
+#define INTC_ICDICPR4_TGI3B                     (0x08000000uL)
+#define INTC_ICDICPR4_TGI3C                     (0x10000000uL)
+#define INTC_ICDICPR4_TGI3D                     (0x20000000uL)
+#define INTC_ICDICPR4_TGI3V                     (0x40000000uL)
+#define INTC_ICDICPR4_TGI4A                     (0x80000000uL)
+
+#define INTC_ICDICPR5_TGI4B                     (0x00000001uL)
+#define INTC_ICDICPR5_TGI4C                     (0x00000002uL)
+#define INTC_ICDICPR5_TGI4D                     (0x00000004uL)
+#define INTC_ICDICPR5_TGI4V                     (0x00000008uL)
+#define INTC_ICDICPR5_CMI1                      (0x00000010uL)
+#define INTC_ICDICPR5_CMI2                      (0x00000020uL)
+#define INTC_ICDICPR5_SGDEI0                    (0x00000040uL)
+#define INTC_ICDICPR5_SGDEI1                    (0x00000080uL)
+#define INTC_ICDICPR5_SGDEI2                    (0x00000100uL)
+#define INTC_ICDICPR5_SGDEI3                    (0x00000200uL)
+#define INTC_ICDICPR5_ADI                       (0x00000400uL)
+#define INTC_ICDICPR5_LMTI                      (0x00000800uL)
+#define INTC_ICDICPR5_SSII0                     (0x00001000uL)
+#define INTC_ICDICPR5_SSIRXI0                   (0x00002000uL)
+#define INTC_ICDICPR5_SSITXI0                   (0x00004000uL)
+#define INTC_ICDICPR5_SSII1                     (0x00008000uL)
+#define INTC_ICDICPR5_SSIRXI1                   (0x00010000uL)
+#define INTC_ICDICPR5_SSITXI1                   (0x00020000uL)
+#define INTC_ICDICPR5_SSII2                     (0x00040000uL)
+#define INTC_ICDICPR5_SSIRTI2                   (0x00080000uL)
+#define INTC_ICDICPR5_SSII3                     (0x00100000uL)
+#define INTC_ICDICPR5_SSIRXI3                   (0x00200000uL)
+#define INTC_ICDICPR5_SSITXI3                   (0x00400000uL)
+#define INTC_ICDICPR5_SSII4                     (0x00800000uL)
+#define INTC_ICDICPR5_SSIRTI4                   (0x01000000uL)
+#define INTC_ICDICPR5_SSII5                     (0x02000000uL)
+#define INTC_ICDICPR5_SSIRXI5                   (0x04000000uL)
+#define INTC_ICDICPR5_SSITXI5                   (0x08000000uL)
+#define INTC_ICDICPR5_SPDIFI                    (0x10000000uL)
+#define INTC_ICDICPR5_INTIICTEI0                (0x20000000uL)
+#define INTC_ICDICPR5_INTIICRI0                 (0x40000000uL)
+#define INTC_ICDICPR5_INTIICTI0                 (0x80000000uL)
+
+#define INTC_ICDICPR6_INTIICSPI0                (0x00000001uL)
+#define INTC_ICDICPR6_INTIICSTI0                (0x00000002uL)
+#define INTC_ICDICPR6_INTIICNAKI0               (0x00000004uL)
+#define INTC_ICDICPR6_INTIICALI0                (0x00000008uL)
+#define INTC_ICDICPR6_INTIICTMOI0               (0x00000010uL)
+#define INTC_ICDICPR6_INTIICTEI1                (0x00000020uL)
+#define INTC_ICDICPR6_INTIICRI1                 (0x00000040uL)
+#define INTC_ICDICPR6_INTIICTI1                 (0x00000080uL)
+#define INTC_ICDICPR6_INTIICSPI1                (0x00000100uL)
+#define INTC_ICDICPR6_INTIICSTI1                (0x00000200uL)
+#define INTC_ICDICPR6_INTIICNAKI1               (0x00000400uL)
+#define INTC_ICDICPR6_INTIICALI1                (0x00000800uL)
+#define INTC_ICDICPR6_INTIICTMOI1               (0x00001000uL)
+#define INTC_ICDICPR6_INTIICTEI2                (0x00002000uL)
+#define INTC_ICDICPR6_INTIICRI2                 (0x00004000uL)
+#define INTC_ICDICPR6_INTIICTI2                 (0x00008000uL)
+#define INTC_ICDICPR6_INTIICSPI2                (0x00010000uL)
+#define INTC_ICDICPR6_INTIICSTI2                (0x00020000uL)
+#define INTC_ICDICPR6_INTIICNAKI2               (0x00040000uL)
+#define INTC_ICDICPR6_INTIICALI2                (0x00080000uL)
+#define INTC_ICDICPR6_INTIICTMOI2               (0x00100000uL)
+#define INTC_ICDICPR6_INTIICTEI3                (0x00200000uL)
+#define INTC_ICDICPR6_INTIICRI3                 (0x00400000uL)
+#define INTC_ICDICPR6_INTIICTI3                 (0x00800000uL)
+#define INTC_ICDICPR6_INTIICSPI3                (0x01000000uL)
+#define INTC_ICDICPR6_INTIICSTI3                (0x02000000uL)
+#define INTC_ICDICPR6_INTIICNAKI3               (0x04000000uL)
+#define INTC_ICDICPR6_INTIICALI3                (0x08000000uL)
+#define INTC_ICDICPR6_INTIICTMOI3               (0x10000000uL)
+#define INTC_ICDICPR6_BRI0                      (0x20000000uL)
+#define INTC_ICDICPR6_ERI0                      (0x40000000uL)
+#define INTC_ICDICPR6_RXI0                      (0x80000000uL)
+
+#define INTC_ICDICPR7_TXI0                      (0x00000001uL)
+#define INTC_ICDICPR7_BRI1                      (0x00000002uL)
+#define INTC_ICDICPR7_ERI1                      (0x00000004uL)
+#define INTC_ICDICPR7_RXI1                      (0x00000008uL)
+#define INTC_ICDICPR7_TXI1                      (0x00000010uL)
+#define INTC_ICDICPR7_BRI2                      (0x00000020uL)
+#define INTC_ICDICPR7_ERI2                      (0x00000040uL)
+#define INTC_ICDICPR7_RXI2                      (0x00000080uL)
+#define INTC_ICDICPR7_TXI2                      (0x00000100uL)
+#define INTC_ICDICPR7_BRI3                      (0x00000200uL)
+#define INTC_ICDICPR7_ERI3                      (0x00000400uL)
+#define INTC_ICDICPR7_RXI3                      (0x00000800uL)
+#define INTC_ICDICPR7_TXI3                      (0x00001000uL)
+#define INTC_ICDICPR7_BRI4                      (0x00002000uL)
+#define INTC_ICDICPR7_ERI4                      (0x00004000uL)
+#define INTC_ICDICPR7_RXI4                      (0x00008000uL)
+#define INTC_ICDICPR7_TXI4                      (0x00010000uL)
+#define INTC_ICDICPR7_BRI5                      (0x00020000uL)
+#define INTC_ICDICPR7_ERI5                      (0x00040000uL)
+#define INTC_ICDICPR7_RXI5                      (0x00080000uL)
+#define INTC_ICDICPR7_TXI5                      (0x00100000uL)
+#define INTC_ICDICPR7_BRI6                      (0x00200000uL)
+#define INTC_ICDICPR7_ERI6                      (0x00400000uL)
+#define INTC_ICDICPR7_RXI6                      (0x00800000uL)
+#define INTC_ICDICPR7_TXI6                      (0x01000000uL)
+#define INTC_ICDICPR7_BRI7                      (0x02000000uL)
+#define INTC_ICDICPR7_ERI7                      (0x04000000uL)
+#define INTC_ICDICPR7_RXI7                      (0x08000000uL)
+#define INTC_ICDICPR7_TXI7                      (0x10000000uL)
+#define INTC_ICDICPR7_INTRCANGERR               (0x20000000uL)
+#define INTC_ICDICPR7_INTRCANGRECC              (0x40000000uL)
+#define INTC_ICDICPR7_INTRCAN0REC               (0x80000000uL)
+
+#define INTC_ICDICPR8_INTRCAN0ERR               (0x00000001uL)
+#define INTC_ICDICPR8_INTRCAN0TRX               (0x00000002uL)
+#define INTC_ICDICPR8_INTRCAN1REC               (0x00000004uL)
+#define INTC_ICDICPR8_INTRCAN1ERR               (0x00000008uL)
+#define INTC_ICDICPR8_INTRCAN1TRX               (0x00000010uL)
+#define INTC_ICDICPR8_INTRCAN2REC               (0x00000020uL)
+#define INTC_ICDICPR8_INTRCAN2ERR               (0x00000040uL)
+#define INTC_ICDICPR8_INTRCAN2TRX               (0x00000080uL)
+#define INTC_ICDICPR8_INTRCAN3REC               (0x00000100uL)
+#define INTC_ICDICPR8_INTRCAN3ERR               (0x00000200uL)
+#define INTC_ICDICPR8_INTRCAN3TRX               (0x00000400uL)
+#define INTC_ICDICPR8_INTRCAN4REC               (0x00000800uL)
+#define INTC_ICDICPR8_INTRCAN4ERR               (0x00001000uL)
+#define INTC_ICDICPR8_INTRCAN4TRX               (0x00002000uL)
+#define INTC_ICDICPR8_SPEI0                     (0x00004000uL)
+#define INTC_ICDICPR8_SPRI0                     (0x00008000uL)
+#define INTC_ICDICPR8_SPTI0                     (0x00010000uL)
+#define INTC_ICDICPR8_SPEI1                     (0x00020000uL)
+#define INTC_ICDICPR8_SPRI1                     (0x00040000uL)
+#define INTC_ICDICPR8_SPTI1                     (0x00080000uL)
+#define INTC_ICDICPR8_SPEI2                     (0x00100000uL)
+#define INTC_ICDICPR8_SPRI2                     (0x00200000uL)
+#define INTC_ICDICPR8_SPTI2                     (0x00400000uL)
+#define INTC_ICDICPR8_SPEI3                     (0x00800000uL)
+#define INTC_ICDICPR8_SPRI3                     (0x01000000uL)
+#define INTC_ICDICPR8_SPTI3                     (0x02000000uL)
+#define INTC_ICDICPR8_SPEI4                     (0x04000000uL)
+#define INTC_ICDICPR8_SPRI4                     (0x08000000uL)
+#define INTC_ICDICPR8_SPTI4                     (0x10000000uL)
+#define INTC_ICDICPR8_IEBBTD                    (0x20000000uL)
+#define INTC_ICDICPR8_IEBBTERR                  (0x40000000uL)
+#define INTC_ICDICPR8_IEBBTSTA                  (0x80000000uL)
+
+#define INTC_ICDICPR9_IEBBTV                    (0x00000001uL)
+#define INTC_ICDICPR9_ISY                       (0x00000002uL)
+#define INTC_ICDICPR9_IERR                      (0x00000004uL)
+#define INTC_ICDICPR9_ITARG                     (0x00000008uL)
+#define INTC_ICDICPR9_ISEC                      (0x00000010uL)
+#define INTC_ICDICPR9_IBUF                      (0x00000020uL)
+#define INTC_ICDICPR9_IREADY                    (0x00000040uL)
+#define INTC_ICDICPR9_FLSTE                     (0x00000080uL)
+#define INTC_ICDICPR9_FLTENDI                   (0x00000100uL)
+#define INTC_ICDICPR9_FLTREQ0I                  (0x00000200uL)
+#define INTC_ICDICPR9_FLTREQ1I                  (0x00000400uL)
+#define INTC_ICDICPR9_MMC0                      (0x00000800uL)
+#define INTC_ICDICPR9_MMC1                      (0x00001000uL)
+#define INTC_ICDICPR9_MMC2                      (0x00002000uL)
+#define INTC_ICDICPR9_SDHI0_3                   (0x00004000uL)
+#define INTC_ICDICPR9_SDHI0_0                   (0x00008000uL)
+#define INTC_ICDICPR9_SDHI0_1                   (0x00010000uL)
+#define INTC_ICDICPR9_SDHI1_3                   (0x00020000uL)
+#define INTC_ICDICPR9_SDHI1_0                   (0x00040000uL)
+#define INTC_ICDICPR9_SDHI1_1                   (0x00080000uL)
+#define INTC_ICDICPR9_ARM                       (0x00100000uL)
+#define INTC_ICDICPR9_PRD                       (0x00200000uL)
+#define INTC_ICDICPR9_CUP                       (0x00400000uL)
+#define INTC_ICDICPR9_SCUAI0                    (0x00800000uL)
+#define INTC_ICDICPR9_SCUAI1                    (0x01000000uL)
+#define INTC_ICDICPR9_SCUFDI0                   (0x02000000uL)
+#define INTC_ICDICPR9_SCUFDI1                   (0x04000000uL)
+#define INTC_ICDICPR9_SCUFDI2                   (0x08000000uL)
+#define INTC_ICDICPR9_SCUFDI3                   (0x10000000uL)
+#define INTC_ICDICPR9_SCUFUI0                   (0x20000000uL)
+#define INTC_ICDICPR9_SCUFUI1                   (0x40000000uL)
+#define INTC_ICDICPR9_SCUFUI2                   (0x80000000uL)
+
+#define INTC_ICDICPR10_SCUFUI3                  (0x00000001uL)
+#define INTC_ICDICPR10_SCUDVI0                  (0x00000002uL)
+#define INTC_ICDICPR10_SCUDVI1                  (0x00000004uL)
+#define INTC_ICDICPR10_SCUDVI2                  (0x00000008uL)
+#define INTC_ICDICPR10_SCUDVI3                  (0x00000010uL)
+#define INTC_ICDICPR10_MLB_CINT                 (0x00000020uL)
+#define INTC_ICDICPR10_MLB_SINT                 (0x00000040uL)
+#define INTC_ICDICPR10_DRC0                     (0x00000080uL)
+#define INTC_ICDICPR10_DRC1                     (0x00000100uL)
+#define INTC_ICDICPR10_LINI0_INT_T              (0x00000800uL)
+#define INTC_ICDICPR10_LINI0_INT_R              (0x00001000uL)
+#define INTC_ICDICPR10_LINI0_INT_S              (0x00002000uL)
+#define INTC_ICDICPR10_LINI0_INT_M              (0x00004000uL)
+#define INTC_ICDICPR10_LINI1_INT_T              (0x00008000uL)
+#define INTC_ICDICPR10_LINI1_INT_R              (0x00010000uL)
+#define INTC_ICDICPR10_LINI1_INT_S              (0x00020000uL)
+#define INTC_ICDICPR10_LINI1_INT_M              (0x00040000uL)
+#define INTC_ICDICPR10_ERI0                     (0x08000000uL)
+#define INTC_ICDICPR10_RXI0                     (0x10000000uL)
+#define INTC_ICDICPR10_TXI0                     (0x20000000uL)
+#define INTC_ICDICPR10_TEI0                     (0x40000000uL)
+#define INTC_ICDICPR10_ERI1                     (0x80000000uL)
+
+#define INTC_ICDICPR11_RXI1                     (0x00000001uL)
+#define INTC_ICDICPR11_TXI1                     (0x00000002uL)
+#define INTC_ICDICPR11_TEI1                     (0x00000004uL)
+#define INTC_ICDICPR11_AVBI_DATA                (0x00000008uL)
+#define INTC_ICDICPR11_AVBI_ERROR               (0x00000010uL)
+#define INTC_ICDICPR11_AVBI_MANAGE              (0x00000020uL)
+#define INTC_ICDICPR11_AVBI_MAC                 (0x00000040uL)
+#define INTC_ICDICPR11_ETHERI                   (0x00000080uL)
+#define INTC_ICDICPR11_CEUI                     (0x00001000uL)
+#define INTC_ICDICPR11_H2XMLB_ERRINT            (0x20000000uL)
+#define INTC_ICDICPR11_H2XIC1_ERRINT            (0x40000000uL)
+#define INTC_ICDICPR11_X2HPERI1_ERRINT          (0x80000000uL)
+
+#define INTC_ICDICPR12_X2HPERI2_ERRINT          (0x00000001uL)
+#define INTC_ICDICPR12_X2HPERI34_ERRINT         (0x00000002uL)
+#define INTC_ICDICPR12_X2HPERI5_ERRINT          (0x00000004uL)
+#define INTC_ICDICPR12_X2HPERI67_ERRINT         (0x00000008uL)
+#define INTC_ICDICPR12_X2HDBGR_ERRINT           (0x00000010uL)
+#define INTC_ICDICPR12_X2HBSC_ERRINT            (0x00000020uL)
+#define INTC_ICDICPR12_X2HSPI1_ERRINT           (0x00000040uL)
+#define INTC_ICDICPR12_X2HSPI2_ERRINT           (0x00000080uL)
+#define INTC_ICDICPR12_PRRI                     (0x00000100uL)
+#define INTC_ICDICPR12_IFEI0                    (0x00000200uL)
+#define INTC_ICDICPR12_OFFI0                    (0x00000400uL)
+#define INTC_ICDICPR12_PFVEI0                   (0x00000800uL)
+#define INTC_ICDICPR12_IFEI1                    (0x00001000uL)
+#define INTC_ICDICPR12_OFFI1                    (0x00002000uL)
+#define INTC_ICDICPR12_PFVEI1                   (0x00004000uL)
+
+#define INTC_ICDICPR13_TINT0                    (0x00000001uL)
+#define INTC_ICDICPR13_TINT1                    (0x00000002uL)
+#define INTC_ICDICPR13_TINT2                    (0x00000004uL)
+#define INTC_ICDICPR13_TINT3                    (0x00000008uL)
+#define INTC_ICDICPR13_TINT4                    (0x00000010uL)
+#define INTC_ICDICPR13_TINT5                    (0x00000020uL)
+#define INTC_ICDICPR13_TINT6                    (0x00000040uL)
+#define INTC_ICDICPR13_TINT7                    (0x00000080uL)
+#define INTC_ICDICPR13_TINT8                    (0x00000100uL)
+#define INTC_ICDICPR13_TINT9                    (0x00000200uL)
+#define INTC_ICDICPR13_TINT10                   (0x00000400uL)
+#define INTC_ICDICPR13_TINT11                   (0x00000800uL)
+#define INTC_ICDICPR13_TINT12                   (0x00001000uL)
+#define INTC_ICDICPR13_TINT13                   (0x00002000uL)
+#define INTC_ICDICPR13_TINT14                   (0x00004000uL)
+#define INTC_ICDICPR13_TINT15                   (0x00008000uL)
+#define INTC_ICDICPR13_TINT16                   (0x00010000uL)
+#define INTC_ICDICPR13_TINT17                   (0x00020000uL)
+#define INTC_ICDICPR13_TINT18                   (0x00040000uL)
+#define INTC_ICDICPR13_TINT19                   (0x00080000uL)
+#define INTC_ICDICPR13_TINT20                   (0x00100000uL)
+#define INTC_ICDICPR13_TINT21                   (0x00200000uL)
+#define INTC_ICDICPR13_TINT22                   (0x00400000uL)
+#define INTC_ICDICPR13_TINT23                   (0x00800000uL)
+#define INTC_ICDICPR13_TINT24                   (0x01000000uL)
+#define INTC_ICDICPR13_TINT25                   (0x02000000uL)
+#define INTC_ICDICPR13_TINT26                   (0x04000000uL)
+#define INTC_ICDICPR13_TINT27                   (0x08000000uL)
+#define INTC_ICDICPR13_TINT28                   (0x10000000uL)
+#define INTC_ICDICPR13_TINT29                   (0x20000000uL)
+#define INTC_ICDICPR13_TINT30                   (0x40000000uL)
+#define INTC_ICDICPR13_TINT31                   (0x80000000uL)
+
+#define INTC_ICDICPR14_TINT32                   (0x00000001uL)
+#define INTC_ICDICPR14_TINT33                   (0x00000002uL)
+#define INTC_ICDICPR14_TINT34                   (0x00000004uL)
+#define INTC_ICDICPR14_TINT35                   (0x00000008uL)
+#define INTC_ICDICPR14_TINT36                   (0x00000010uL)
+#define INTC_ICDICPR14_TINT37                   (0x00000020uL)
+#define INTC_ICDICPR14_TINT38                   (0x00000040uL)
+#define INTC_ICDICPR14_TINT39                   (0x00000080uL)
+#define INTC_ICDICPR14_TINT40                   (0x00000100uL)
+#define INTC_ICDICPR14_TINT41                   (0x00000200uL)
+#define INTC_ICDICPR14_TINT42                   (0x00000400uL)
+#define INTC_ICDICPR14_TINT43                   (0x00000800uL)
+#define INTC_ICDICPR14_TINT44                   (0x00001000uL)
+#define INTC_ICDICPR14_TINT45                   (0x00002000uL)
+#define INTC_ICDICPR14_TINT46                   (0x00004000uL)
+#define INTC_ICDICPR14_TINT47                   (0x00008000uL)
+#define INTC_ICDICPR14_TINT48                   (0x00010000uL)
+#define INTC_ICDICPR14_TINT49                   (0x00020000uL)
+#define INTC_ICDICPR14_TINT50                   (0x00040000uL)
+#define INTC_ICDICPR14_TINT51                   (0x00080000uL)
+#define INTC_ICDICPR14_TINT52                   (0x00100000uL)
+#define INTC_ICDICPR14_TINT53                   (0x00200000uL)
+#define INTC_ICDICPR14_TINT54                   (0x00400000uL)
+#define INTC_ICDICPR14_TINT55                   (0x00800000uL)
+#define INTC_ICDICPR14_TINT56                   (0x01000000uL)
+#define INTC_ICDICPR14_TINT57                   (0x02000000uL)
+#define INTC_ICDICPR14_TINT58                   (0x04000000uL)
+#define INTC_ICDICPR14_TINT59                   (0x08000000uL)
+#define INTC_ICDICPR14_TINT60                   (0x10000000uL)
+#define INTC_ICDICPR14_TINT61                   (0x20000000uL)
+#define INTC_ICDICPR14_TINT62                   (0x40000000uL)
+#define INTC_ICDICPR14_TINT63                   (0x80000000uL)
+
+#define INTC_ICDICPR15_TINT64                   (0x00000001uL)
+#define INTC_ICDICPR15_TINT65                   (0x00000002uL)
+#define INTC_ICDICPR15_TINT66                   (0x00000004uL)
+#define INTC_ICDICPR15_TINT67                   (0x00000008uL)
+#define INTC_ICDICPR15_TINT68                   (0x00000010uL)
+#define INTC_ICDICPR15_TINT69                   (0x00000020uL)
+#define INTC_ICDICPR15_TINT70                   (0x00000040uL)
+#define INTC_ICDICPR15_TINT71                   (0x00000080uL)
+#define INTC_ICDICPR15_TINT72                   (0x00000100uL)
+#define INTC_ICDICPR15_TINT73                   (0x00000200uL)
+#define INTC_ICDICPR15_TINT74                   (0x00000400uL)
+#define INTC_ICDICPR15_TINT75                   (0x00000800uL)
+#define INTC_ICDICPR15_TINT76                   (0x00001000uL)
+#define INTC_ICDICPR15_TINT77                   (0x00002000uL)
+#define INTC_ICDICPR15_TINT78                   (0x00004000uL)
+#define INTC_ICDICPR15_TINT79                   (0x00008000uL)
+#define INTC_ICDICPR15_TINT80                   (0x00010000uL)
+#define INTC_ICDICPR15_TINT81                   (0x00020000uL)
+#define INTC_ICDICPR15_TINT82                   (0x00040000uL)
+#define INTC_ICDICPR15_TINT83                   (0x00080000uL)
+#define INTC_ICDICPR15_TINT84                   (0x00100000uL)
+#define INTC_ICDICPR15_TINT85                   (0x00200000uL)
+#define INTC_ICDICPR15_TINT86                   (0x00400000uL)
+#define INTC_ICDICPR15_TINT87                   (0x00800000uL)
+#define INTC_ICDICPR15_TINT88                   (0x01000000uL)
+#define INTC_ICDICPR15_TINT89                   (0x02000000uL)
+#define INTC_ICDICPR15_TINT90                   (0x04000000uL)
+#define INTC_ICDICPR15_TINT91                   (0x08000000uL)
+#define INTC_ICDICPR15_TINT92                   (0x10000000uL)
+#define INTC_ICDICPR15_TINT93                   (0x20000000uL)
+#define INTC_ICDICPR15_TINT94                   (0x40000000uL)
+#define INTC_ICDICPR15_TINT95                   (0x80000000uL)
+
+#define INTC_ICDICPR16_TINT96                   (0x00000001uL)
+#define INTC_ICDICPR16_TINT97                   (0x00000002uL)
+#define INTC_ICDICPR16_TINT98                   (0x00000004uL)
+#define INTC_ICDICPR16_TINT99                   (0x00000008uL)
+#define INTC_ICDICPR16_TINT100                  (0x00000010uL)
+#define INTC_ICDICPR16_TINT101                  (0x00000020uL)
+#define INTC_ICDICPR16_TINT102                  (0x00000040uL)
+#define INTC_ICDICPR16_TINT103                  (0x00000080uL)
+#define INTC_ICDICPR16_TINT104                  (0x00000100uL)
+#define INTC_ICDICPR16_TINT105                  (0x00000200uL)
+#define INTC_ICDICPR16_TINT106                  (0x00000400uL)
+#define INTC_ICDICPR16_TINT107                  (0x00000800uL)
+#define INTC_ICDICPR16_TINT108                  (0x00001000uL)
+#define INTC_ICDICPR16_TINT109                  (0x00002000uL)
+#define INTC_ICDICPR16_TINT110                  (0x00004000uL)
+#define INTC_ICDICPR16_TINT111                  (0x00008000uL)
+#define INTC_ICDICPR16_TINT112                  (0x00010000uL)
+#define INTC_ICDICPR16_TINT113                  (0x00020000uL)
+#define INTC_ICDICPR16_TINT114                  (0x00040000uL)
+#define INTC_ICDICPR16_TINT115                  (0x00080000uL)
+#define INTC_ICDICPR16_TINT116                  (0x00100000uL)
+#define INTC_ICDICPR16_TINT117                  (0x00200000uL)
+#define INTC_ICDICPR16_TINT118                  (0x00400000uL)
+#define INTC_ICDICPR16_TINT119                  (0x00800000uL)
+#define INTC_ICDICPR16_TINT120                  (0x01000000uL)
+#define INTC_ICDICPR16_TINT121                  (0x02000000uL)
+#define INTC_ICDICPR16_TINT122                  (0x04000000uL)
+#define INTC_ICDICPR16_TINT123                  (0x08000000uL)
+#define INTC_ICDICPR16_TINT124                  (0x10000000uL)
+#define INTC_ICDICPR16_TINT125                  (0x20000000uL)
+#define INTC_ICDICPR16_TINT126                  (0x40000000uL)
+#define INTC_ICDICPR16_TINT127                  (0x80000000uL)
+
+#define INTC_ICDICPR17_TINT128                  (0x00000001uL)
+#define INTC_ICDICPR17_TINT129                  (0x00000002uL)
+#define INTC_ICDICPR17_TINT130                  (0x00000004uL)
+#define INTC_ICDICPR17_TINT131                  (0x00000008uL)
+#define INTC_ICDICPR17_TINT132                  (0x00000010uL)
+#define INTC_ICDICPR17_TINT133                  (0x00000020uL)
+#define INTC_ICDICPR17_TINT134                  (0x00000040uL)
+#define INTC_ICDICPR17_TINT135                  (0x00000080uL)
+#define INTC_ICDICPR17_TINT136                  (0x00000100uL)
+#define INTC_ICDICPR17_TINT137                  (0x00000200uL)
+#define INTC_ICDICPR17_TINT138                  (0x00000400uL)
+#define INTC_ICDICPR17_TINT139                  (0x00000800uL)
+#define INTC_ICDICPR17_TINT140                  (0x00001000uL)
+#define INTC_ICDICPR17_TINT141                  (0x00002000uL)
+#define INTC_ICDICPR17_TINT142                  (0x00004000uL)
+#define INTC_ICDICPR17_TINT143                  (0x00008000uL)
+#define INTC_ICDICPR17_TINT144                  (0x00010000uL)
+#define INTC_ICDICPR17_TINT145                  (0x00020000uL)
+#define INTC_ICDICPR17_TINT146                  (0x00040000uL)
+#define INTC_ICDICPR17_TINT147                  (0x00080000uL)
+#define INTC_ICDICPR17_TINT148                  (0x00100000uL)
+#define INTC_ICDICPR17_TINT149                  (0x00200000uL)
+#define INTC_ICDICPR17_TINT150                  (0x00400000uL)
+#define INTC_ICDICPR17_TINT151                  (0x00800000uL)
+#define INTC_ICDICPR17_TINT152                  (0x01000000uL)
+#define INTC_ICDICPR17_TINT153                  (0x02000000uL)
+#define INTC_ICDICPR17_TINT154                  (0x04000000uL)
+#define INTC_ICDICPR17_TINT155                  (0x08000000uL)
+#define INTC_ICDICPR17_TINT156                  (0x10000000uL)
+#define INTC_ICDICPR17_TINT157                  (0x20000000uL)
+#define INTC_ICDICPR17_TINT158                  (0x40000000uL)
+#define INTC_ICDICPR17_TINT159                  (0x80000000uL)
+
+#define INTC_ICDICPR18_TINT160                  (0x00000001uL)
+#define INTC_ICDICPR18_TINT161                  (0x00000002uL)
+#define INTC_ICDICPR18_TINT162                  (0x00000004uL)
+#define INTC_ICDICPR18_TINT163                  (0x00000008uL)
+#define INTC_ICDICPR18_TINT164                  (0x00000010uL)
+#define INTC_ICDICPR18_TINT165                  (0x00000020uL)
+#define INTC_ICDICPR18_TINT166                  (0x00000040uL)
+#define INTC_ICDICPR18_TINT167                  (0x00000080uL)
+#define INTC_ICDICPR18_TINT168                  (0x00000100uL)
+#define INTC_ICDICPR18_TINT169                  (0x00000200uL)
+#define INTC_ICDICPR18_TINT170                  (0x00000400uL)
+
+#define INTC_ICDABR0_SW0                        (0x00000001uL)
+#define INTC_ICDABR0_SW1                        (0x00000002uL)
+#define INTC_ICDABR0_SW2                        (0x00000004uL)
+#define INTC_ICDABR0_SW3                        (0x00000008uL)
+#define INTC_ICDABR0_SW4                        (0x00000010uL)
+#define INTC_ICDABR0_SW5                        (0x00000020uL)
+#define INTC_ICDABR0_SW6                        (0x00000040uL)
+#define INTC_ICDABR0_SW7                        (0x00000080uL)
+#define INTC_ICDABR0_SW8                        (0x00000100uL)
+#define INTC_ICDABR0_SW9                        (0x00000200uL)
+#define INTC_ICDABR0_SW10                       (0x00000400uL)
+#define INTC_ICDABR0_SW11                       (0x00000800uL)
+#define INTC_ICDABR0_SW12                       (0x00001000uL)
+#define INTC_ICDABR0_SW13                       (0x00002000uL)
+#define INTC_ICDABR0_SW14                       (0x00004000uL)
+#define INTC_ICDABR0_SW15                       (0x00008000uL)
+#define INTC_ICDABR0_PMUIRQ0                    (0x00010000uL)
+#define INTC_ICDABR0_COMMRX0                    (0x00020000uL)
+#define INTC_ICDABR0_COMMTX0                    (0x00040000uL)
+#define INTC_ICDABR0_CTIIRQ0                    (0x00080000uL)
+
+#define INTC_ICDABR1_IRQ0                       (0x00000001uL)
+#define INTC_ICDABR1_IRQ1                       (0x00000002uL)
+#define INTC_ICDABR1_IRQ2                       (0x00000004uL)
+#define INTC_ICDABR1_IRQ3                       (0x00000008uL)
+#define INTC_ICDABR1_IRQ4                       (0x00000010uL)
+#define INTC_ICDABR1_IRQ5                       (0x00000020uL)
+#define INTC_ICDABR1_IRQ6                       (0x00000040uL)
+#define INTC_ICDABR1_IRQ7                       (0x00000080uL)
+#define INTC_ICDABR1_PL310ERR                   (0x00000100uL)
+#define INTC_ICDABR1_DMAINT0                    (0x00000200uL)
+#define INTC_ICDABR1_DMAINT1                    (0x00000400uL)
+#define INTC_ICDABR1_DMAINT2                    (0x00000800uL)
+#define INTC_ICDABR1_DMAINT3                    (0x00001000uL)
+#define INTC_ICDABR1_DMAINT4                    (0x00002000uL)
+#define INTC_ICDABR1_DMAINT5                    (0x00004000uL)
+#define INTC_ICDABR1_DMAINT6                    (0x00008000uL)
+#define INTC_ICDABR1_DMAINT7                    (0x00010000uL)
+#define INTC_ICDABR1_DMAINT8                    (0x00020000uL)
+#define INTC_ICDABR1_DMAINT9                    (0x00040000uL)
+#define INTC_ICDABR1_DMAINT10                   (0x00080000uL)
+#define INTC_ICDABR1_DMAINT11                   (0x00100000uL)
+#define INTC_ICDABR1_DMAINT12                   (0x00200000uL)
+#define INTC_ICDABR1_DMAINT13                   (0x00400000uL)
+#define INTC_ICDABR1_DMAINT14                   (0x00800000uL)
+#define INTC_ICDABR1_DMAINT15                   (0x01000000uL)
+#define INTC_ICDABR1_DMAERR                     (0x02000000uL)
+
+#define INTC_ICDABR2_USBI0                      (0x00000200uL)
+#define INTC_ICDABR2_USBI1                      (0x00000400uL)
+#define INTC_ICDABR2_S0_VI_VSYNC0               (0x00000800uL)
+#define INTC_ICDABR2_S0_LO_VSYNC0               (0x00001000uL)
+#define INTC_ICDABR2_S0_VSYNCERR0               (0x00002000uL)
+#define INTC_ICDABR2_GR3_VLINE0                 (0x00004000uL)
+#define INTC_ICDABR2_S0_VFIELD0                 (0x00008000uL)
+#define INTC_ICDABR2_IV1_VBUFERR0               (0x00010000uL)
+#define INTC_ICDABR2_IV3_VBUFERR0               (0x00020000uL)
+#define INTC_ICDABR2_IV5_VBUFERR0               (0x00040000uL)
+#define INTC_ICDABR2_IV6_VBUFERR0               (0x00080000uL)
+#define INTC_ICDABR2_S0_WLINE0                  (0x00100000uL)
+#define INTC_ICDABR2_S1_VI_VSYNC0               (0x00200000uL)
+#define INTC_ICDABR2_S1_LO_VSYNC0               (0x00400000uL)
+#define INTC_ICDABR2_S1_VSYNCERR0               (0x00800000uL)
+#define INTC_ICDABR2_S1_VFIELD0                 (0x01000000uL)
+#define INTC_ICDABR2_IV2_VBUFERR0               (0x02000000uL)
+#define INTC_ICDABR2_IV4_VBUFERR0               (0x04000000uL)
+#define INTC_ICDABR2_S1_WLINE0                  (0x08000000uL)
+#define INTC_ICDABR2_OIR_VI_VSYNC0              (0x10000000uL)
+#define INTC_ICDABR2_OIR_LO_VSYNC0              (0x20000000uL)
+#define INTC_ICDABR2_OIR_VSYNCERR0              (0x40000000uL)
+#define INTC_ICDABR2_OIR_VFIELD0                (0x80000000uL)
+
+#define INTC_ICDABR3_IV7_VBUFERR0               (0x00000001uL)
+#define INTC_ICDABR3_IV8_VBUFERR0               (0x00000002uL)
+#define INTC_ICDABR3_S0_VI_VSYNC1               (0x00000008uL)
+#define INTC_ICDABR3_S0_LO_VSYNC1               (0x00000010uL)
+#define INTC_ICDABR3_S0_VSYNCERR1               (0x00000020uL)
+#define INTC_ICDABR3_GR3_VLINE1                 (0x00000040uL)
+#define INTC_ICDABR3_S0_VFIELD1                 (0x00000080uL)
+#define INTC_ICDABR3_IV1_VBUFERR1               (0x00000100uL)
+#define INTC_ICDABR3_IV3_VBUFERR1               (0x00000200uL)
+#define INTC_ICDABR3_IV5_VBUFERR1               (0x00000400uL)
+#define INTC_ICDABR3_IV6_VBUFERR1               (0x00000800uL)
+#define INTC_ICDABR3_S0_WLINE1                  (0x00001000uL)
+#define INTC_ICDABR3_S1_VI_VSYNC1               (0x00002000uL)
+#define INTC_ICDABR3_S1_LO_VSYNC1               (0x00004000uL)
+#define INTC_ICDABR3_S1_VSYNCERR1               (0x00008000uL)
+#define INTC_ICDABR3_S1_VFIELD1                 (0x00010000uL)
+#define INTC_ICDABR3_IV2_VBUFERR1               (0x00020000uL)
+#define INTC_ICDABR3_IV4_VBUFERR1               (0x00040000uL)
+#define INTC_ICDABR3_S1_WLINE1                  (0x00080000uL)
+#define INTC_ICDABR3_OIR_VI_VSYNC1              (0x00100000uL)
+#define INTC_ICDABR3_OIR_LO_VSYNC1              (0x00200000uL)
+#define INTC_ICDABR3_OIR_VLINE1                 (0x00400000uL)
+#define INTC_ICDABR3_OIR_VFIELD1                (0x00800000uL)
+#define INTC_ICDABR3_IV7_VBUFERR1               (0x01000000uL)
+#define INTC_ICDABR3_IV8_VBUFERR1               (0x02000000uL)
+#define INTC_ICDABR3_IMRDI                      (0x08000000uL)
+#define INTC_ICDABR3_IMR2I0                     (0x10000000uL)
+#define INTC_ICDABR3_IMR2I1                     (0x20000000uL)
+#define INTC_ICDABR3_JEDI                       (0x40000000uL)
+#define INTC_ICDABR3_JDTI                       (0x80000000uL)
+
+#define INTC_ICDABR4_CMP0                       (0x00000001uL)
+#define INTC_ICDABR4_CMP1                       (0x00000002uL)
+#define INTC_ICDABR4_INT0                       (0x00000004uL)
+#define INTC_ICDABR4_INT1                       (0x00000008uL)
+#define INTC_ICDABR4_INT2                       (0x00000010uL)
+#define INTC_ICDABR4_INT3                       (0x00000020uL)
+#define INTC_ICDABR4_OSTM0TINT                  (0x00000040uL)
+#define INTC_ICDABR4_OSTM1TINT                  (0x00000080uL)
+#define INTC_ICDABR4_CMI                        (0x00000100uL)
+#define INTC_ICDABR4_WTOUT                      (0x00000200uL)
+#define INTC_ICDABR4_ITI                        (0x00000400uL)
+#define INTC_ICDABR4_TGI0A                      (0x00000800uL)
+#define INTC_ICDABR4_TGI0B                      (0x00001000uL)
+#define INTC_ICDABR4_TGI0C                      (0x00002000uL)
+#define INTC_ICDABR4_TGI0D                      (0x00004000uL)
+#define INTC_ICDABR4_TGI0V                      (0x00008000uL)
+#define INTC_ICDABR4_TGI0E                      (0x00010000uL)
+#define INTC_ICDABR4_TGI0F                      (0x00020000uL)
+#define INTC_ICDABR4_TGI1A                      (0x00040000uL)
+#define INTC_ICDABR4_TGI1B                      (0x00080000uL)
+#define INTC_ICDABR4_TGI1V                      (0x00100000uL)
+#define INTC_ICDABR4_TGI1U                      (0x00200000uL)
+#define INTC_ICDABR4_TGI2A                      (0x00400000uL)
+#define INTC_ICDABR4_TGI2B                      (0x00800000uL)
+#define INTC_ICDABR4_TGI2V                      (0x01000000uL)
+#define INTC_ICDABR4_TGI2U                      (0x02000000uL)
+#define INTC_ICDABR4_TGI3A                      (0x04000000uL)
+#define INTC_ICDABR4_TGI3B                      (0x08000000uL)
+#define INTC_ICDABR4_TGI3C                      (0x10000000uL)
+#define INTC_ICDABR4_TGI3D                      (0x20000000uL)
+#define INTC_ICDABR4_TGI3V                      (0x40000000uL)
+#define INTC_ICDABR4_TGI4A                      (0x80000000uL)
+
+#define INTC_ICDABR5_TGI4B                      (0x00000001uL)
+#define INTC_ICDABR5_TGI4C                      (0x00000002uL)
+#define INTC_ICDABR5_TGI4D                      (0x00000004uL)
+#define INTC_ICDABR5_TGI4V                      (0x00000008uL)
+#define INTC_ICDABR5_CMI1                       (0x00000010uL)
+#define INTC_ICDABR5_CMI2                       (0x00000020uL)
+#define INTC_ICDABR5_SGDEI0                     (0x00000040uL)
+#define INTC_ICDABR5_SGDEI1                     (0x00000080uL)
+#define INTC_ICDABR5_SGDEI2                     (0x00000100uL)
+#define INTC_ICDABR5_SGDEI3                     (0x00000200uL)
+#define INTC_ICDABR5_ADI                        (0x00000400uL)
+#define INTC_ICDABR5_LMTI                       (0x00000800uL)
+#define INTC_ICDABR5_SSII0                      (0x00001000uL)
+#define INTC_ICDABR5_SSIRXI0                    (0x00002000uL)
+#define INTC_ICDABR5_SSITXI0                    (0x00004000uL)
+#define INTC_ICDABR5_SSII1                      (0x00008000uL)
+#define INTC_ICDABR5_SSIRXI1                    (0x00010000uL)
+#define INTC_ICDABR5_SSITXI1                    (0x00020000uL)
+#define INTC_ICDABR5_SSII2                      (0x00040000uL)
+#define INTC_ICDABR5_SSIRTI2                    (0x00080000uL)
+#define INTC_ICDABR5_SSII3                      (0x00100000uL)
+#define INTC_ICDABR5_SSIRXI3                    (0x00200000uL)
+#define INTC_ICDABR5_SSITXI3                    (0x00400000uL)
+#define INTC_ICDABR5_SSII4                      (0x00800000uL)
+#define INTC_ICDABR5_SSIRTI4                    (0x01000000uL)
+#define INTC_ICDABR5_SSII5                      (0x02000000uL)
+#define INTC_ICDABR5_SSIRXI5                    (0x04000000uL)
+#define INTC_ICDABR5_SSITXI5                    (0x08000000uL)
+#define INTC_ICDABR5_SPDIFI                     (0x10000000uL)
+#define INTC_ICDABR5_INTIICTEI0                 (0x20000000uL)
+#define INTC_ICDABR5_INTIICRI0                  (0x40000000uL)
+#define INTC_ICDABR5_INTIICTI0                  (0x80000000uL)
+
+#define INTC_ICDABR6_INTIICSPI0                 (0x00000001uL)
+#define INTC_ICDABR6_INTIICSTI0                 (0x00000002uL)
+#define INTC_ICDABR6_INTIICNAKI0                (0x00000004uL)
+#define INTC_ICDABR6_INTIICALI0                 (0x00000008uL)
+#define INTC_ICDABR6_INTIICTMOI0                (0x00000010uL)
+#define INTC_ICDABR6_INTIICTEI1                 (0x00000020uL)
+#define INTC_ICDABR6_INTIICRI1                  (0x00000040uL)
+#define INTC_ICDABR6_INTIICTI1                  (0x00000080uL)
+#define INTC_ICDABR6_INTIICSPI1                 (0x00000100uL)
+#define INTC_ICDABR6_INTIICSTI1                 (0x00000200uL)
+#define INTC_ICDABR6_INTIICNAKI1                (0x00000400uL)
+#define INTC_ICDABR6_INTIICALI1                 (0x00000800uL)
+#define INTC_ICDABR6_INTIICTMOI1                (0x00001000uL)
+#define INTC_ICDABR6_INTIICTEI2                 (0x00002000uL)
+#define INTC_ICDABR6_INTIICRI2                  (0x00004000uL)
+#define INTC_ICDABR6_INTIICTI2                  (0x00008000uL)
+#define INTC_ICDABR6_INTIICSPI2                 (0x00010000uL)
+#define INTC_ICDABR6_INTIICSTI2                 (0x00020000uL)
+#define INTC_ICDABR6_INTIICNAKI2                (0x00040000uL)
+#define INTC_ICDABR6_INTIICALI2                 (0x00080000uL)
+#define INTC_ICDABR6_INTIICTMOI2                (0x00100000uL)
+#define INTC_ICDABR6_INTIICTEI3                 (0x00200000uL)
+#define INTC_ICDABR6_INTIICRI3                  (0x00400000uL)
+#define INTC_ICDABR6_INTIICTI3                  (0x00800000uL)
+#define INTC_ICDABR6_INTIICSPI3                 (0x01000000uL)
+#define INTC_ICDABR6_INTIICSTI3                 (0x02000000uL)
+#define INTC_ICDABR6_INTIICNAKI3                (0x04000000uL)
+#define INTC_ICDABR6_INTIICALI3                 (0x08000000uL)
+#define INTC_ICDABR6_INTIICTMOI3                (0x10000000uL)
+#define INTC_ICDABR6_BRI0                       (0x20000000uL)
+#define INTC_ICDABR6_ERI0                       (0x40000000uL)
+#define INTC_ICDABR6_RXI0                       (0x80000000uL)
+
+#define INTC_ICDABR7_TXI0                       (0x00000001uL)
+#define INTC_ICDABR7_BRI1                       (0x00000002uL)
+#define INTC_ICDABR7_ERI1                       (0x00000004uL)
+#define INTC_ICDABR7_RXI1                       (0x00000008uL)
+#define INTC_ICDABR7_TXI1                       (0x00000010uL)
+#define INTC_ICDABR7_BRI2                       (0x00000020uL)
+#define INTC_ICDABR7_ERI2                       (0x00000040uL)
+#define INTC_ICDABR7_RXI2                       (0x00000080uL)
+#define INTC_ICDABR7_TXI2                       (0x00000100uL)
+#define INTC_ICDABR7_BRI3                       (0x00000200uL)
+#define INTC_ICDABR7_ERI3                       (0x00000400uL)
+#define INTC_ICDABR7_RXI3                       (0x00000800uL)
+#define INTC_ICDABR7_TXI3                       (0x00001000uL)
+#define INTC_ICDABR7_BRI4                       (0x00002000uL)
+#define INTC_ICDABR7_ERI4                       (0x00004000uL)
+#define INTC_ICDABR7_RXI4                       (0x00008000uL)
+#define INTC_ICDABR7_TXI4                       (0x00010000uL)
+#define INTC_ICDABR7_BRI5                       (0x00020000uL)
+#define INTC_ICDABR7_ERI5                       (0x00040000uL)
+#define INTC_ICDABR7_RXI5                       (0x00080000uL)
+#define INTC_ICDABR7_TXI5                       (0x00100000uL)
+#define INTC_ICDABR7_BRI6                       (0x00200000uL)
+#define INTC_ICDABR7_ERI6                       (0x00400000uL)
+#define INTC_ICDABR7_RXI6                       (0x00800000uL)
+#define INTC_ICDABR7_TXI6                       (0x01000000uL)
+#define INTC_ICDABR7_BRI7                       (0x02000000uL)
+#define INTC_ICDABR7_ERI7                       (0x04000000uL)
+#define INTC_ICDABR7_RXI7                       (0x08000000uL)
+#define INTC_ICDABR7_TXI7                       (0x10000000uL)
+#define INTC_ICDABR7_INTRCANGERR                (0x20000000uL)
+#define INTC_ICDABR7_INTRCANGRECC               (0x40000000uL)
+#define INTC_ICDABR7_INTRCAN0REC                (0x80000000uL)
+
+#define INTC_ICDABR8_INTRCAN0ERR                (0x00000001uL)
+#define INTC_ICDABR8_INTRCAN0TRX                (0x00000002uL)
+#define INTC_ICDABR8_INTRCAN1REC                (0x00000004uL)
+#define INTC_ICDABR8_INTRCAN1ERR                (0x00000008uL)
+#define INTC_ICDABR8_INTRCAN1TRX                (0x00000010uL)
+#define INTC_ICDABR8_INTRCAN2REC                (0x00000020uL)
+#define INTC_ICDABR8_INTRCAN2ERR                (0x00000040uL)
+#define INTC_ICDABR8_INTRCAN2TRX                (0x00000080uL)
+#define INTC_ICDABR8_INTRCAN3REC                (0x00000100uL)
+#define INTC_ICDABR8_INTRCAN3ERR                (0x00000200uL)
+#define INTC_ICDABR8_INTRCAN3TRX                (0x00000400uL)
+#define INTC_ICDABR8_INTRCAN4REC                (0x00000800uL)
+#define INTC_ICDABR8_INTRCAN4ERR                (0x00001000uL)
+#define INTC_ICDABR8_INTRCAN4TRX                (0x00002000uL)
+#define INTC_ICDABR8_SPEI0                      (0x00004000uL)
+#define INTC_ICDABR8_SPRI0                      (0x00008000uL)
+#define INTC_ICDABR8_SPTI0                      (0x00010000uL)
+#define INTC_ICDABR8_SPEI1                      (0x00020000uL)
+#define INTC_ICDABR8_SPRI1                      (0x00040000uL)
+#define INTC_ICDABR8_SPTI1                      (0x00080000uL)
+#define INTC_ICDABR8_SPEI2                      (0x00100000uL)
+#define INTC_ICDABR8_SPRI2                      (0x00200000uL)
+#define INTC_ICDABR8_SPTI2                      (0x00400000uL)
+#define INTC_ICDABR8_SPEI3                      (0x00800000uL)
+#define INTC_ICDABR8_SPRI3                      (0x01000000uL)
+#define INTC_ICDABR8_SPTI3                      (0x02000000uL)
+#define INTC_ICDABR8_SPEI4                      (0x04000000uL)
+#define INTC_ICDABR8_SPRI4                      (0x08000000uL)
+#define INTC_ICDABR8_SPTI4                      (0x10000000uL)
+#define INTC_ICDABR8_IEBBTD                     (0x20000000uL)
+#define INTC_ICDABR8_IEBBTERR                   (0x40000000uL)
+#define INTC_ICDABR8_IEBBTSTA                   (0x80000000uL)
+
+#define INTC_ICDABR9_IEBBTV                     (0x00000001uL)
+#define INTC_ICDABR9_ISY                        (0x00000002uL)
+#define INTC_ICDABR9_IERR                       (0x00000004uL)
+#define INTC_ICDABR9_ITARG                      (0x00000008uL)
+#define INTC_ICDABR9_ISEC                       (0x00000010uL)
+#define INTC_ICDABR9_IBUF                       (0x00000020uL)
+#define INTC_ICDABR9_IREADY                     (0x00000040uL)
+#define INTC_ICDABR9_FLSTE                      (0x00000080uL)
+#define INTC_ICDABR9_FLTENDI                    (0x00000100uL)
+#define INTC_ICDABR9_FLTREQ0I                   (0x00000200uL)
+#define INTC_ICDABR9_FLTREQ1I                   (0x00000400uL)
+#define INTC_ICDABR9_MMC0                       (0x00000800uL)
+#define INTC_ICDABR9_MMC1                       (0x00001000uL)
+#define INTC_ICDABR9_MMC2                       (0x00002000uL)
+#define INTC_ICDABR9_SDHI0_3                    (0x00004000uL)
+#define INTC_ICDABR9_SDHI0_0                    (0x00008000uL)
+#define INTC_ICDABR9_SDHI0_1                    (0x00010000uL)
+#define INTC_ICDABR9_SDHI1_3                    (0x00020000uL)
+#define INTC_ICDABR9_SDHI1_0                    (0x00040000uL)
+#define INTC_ICDABR9_SDHI1_1                    (0x00080000uL)
+#define INTC_ICDABR9_ARM                        (0x00100000uL)
+#define INTC_ICDABR9_PRD                        (0x00200000uL)
+#define INTC_ICDABR9_CUP                        (0x00400000uL)
+#define INTC_ICDABR9_SCUAI0                     (0x00800000uL)
+#define INTC_ICDABR9_SCUAI1                     (0x01000000uL)
+#define INTC_ICDABR9_SCUFDI0                    (0x02000000uL)
+#define INTC_ICDABR9_SCUFDI1                    (0x04000000uL)
+#define INTC_ICDABR9_SCUFDI2                    (0x08000000uL)
+#define INTC_ICDABR9_SCUFDI3                    (0x10000000uL)
+#define INTC_ICDABR9_SCUFUI0                    (0x20000000uL)
+#define INTC_ICDABR9_SCUFUI1                    (0x40000000uL)
+#define INTC_ICDABR9_SCUFUI2                    (0x80000000uL)
+
+#define INTC_ICDABR10_SCUFUI3                   (0x00000001uL)
+#define INTC_ICDABR10_SCUDVI0                   (0x00000002uL)
+#define INTC_ICDABR10_SCUDVI1                   (0x00000004uL)
+#define INTC_ICDABR10_SCUDVI2                   (0x00000008uL)
+#define INTC_ICDABR10_SCUDVI3                   (0x00000010uL)
+#define INTC_ICDABR10_MLB_CINT                  (0x00000020uL)
+#define INTC_ICDABR10_MLB_SINT                  (0x00000040uL)
+#define INTC_ICDABR10_DRC0                      (0x00000080uL)
+#define INTC_ICDABR10_DRC1                      (0x00000100uL)
+#define INTC_ICDABR10_LINI0_INT_T               (0x00000800uL)
+#define INTC_ICDABR10_LINI0_INT_R               (0x00001000uL)
+#define INTC_ICDABR10_LINI0_INT_S               (0x00002000uL)
+#define INTC_ICDABR10_LINI0_INT_M               (0x00004000uL)
+#define INTC_ICDABR10_LINI1_INT_T               (0x00008000uL)
+#define INTC_ICDABR10_LINI1_INT_R               (0x00010000uL)
+#define INTC_ICDABR10_LINI1_INT_S               (0x00020000uL)
+#define INTC_ICDABR10_LINI1_INT_M               (0x00040000uL)
+#define INTC_ICDABR10_ERI0                      (0x08000000uL)
+#define INTC_ICDABR10_RXI0                      (0x10000000uL)
+#define INTC_ICDABR10_TXI0                      (0x20000000uL)
+#define INTC_ICDABR10_TEI0                      (0x40000000uL)
+#define INTC_ICDABR10_ERI1                      (0x80000000uL)
+
+#define INTC_ICDABR11_RXI1                      (0x00000001uL)
+#define INTC_ICDABR11_TXI1                      (0x00000002uL)
+#define INTC_ICDABR11_TEI1                      (0x00000004uL)
+#define INTC_ICDABR11_AVBI_DATA                 (0x00000008uL)
+#define INTC_ICDABR11_AVBI_ERROR                (0x00000010uL)
+#define INTC_ICDABR11_AVBI_MANAGE               (0x00000020uL)
+#define INTC_ICDABR11_AVBI_MAC                  (0x00000040uL)
+#define INTC_ICDABR11_ETHERI                    (0x00000080uL)
+#define INTC_ICDABR11_CEUI                      (0x00001000uL)
+#define INTC_ICDABR11_H2XMLB_ERRINT             (0x20000000uL)
+#define INTC_ICDABR11_H2XIC1_ERRINT             (0x40000000uL)
+#define INTC_ICDABR11_X2HPERI1_ERRINT           (0x80000000uL)
+
+#define INTC_ICDABR12_X2HPERI2_ERRINT           (0x00000001uL)
+#define INTC_ICDABR12_X2HPERI34_ERRINT          (0x00000002uL)
+#define INTC_ICDABR12_X2HPERI5_ERRINT           (0x00000004uL)
+#define INTC_ICDABR12_X2HPERI67_ERRINT          (0x00000008uL)
+#define INTC_ICDABR12_X2HDBGR_ERRINT            (0x00000010uL)
+#define INTC_ICDABR12_X2HBSC_ERRINT             (0x00000020uL)
+#define INTC_ICDABR12_X2HSPI1_ERRINT            (0x00000040uL)
+#define INTC_ICDABR12_X2HSPI2_ERRINT            (0x00000080uL)
+#define INTC_ICDABR12_PRRI                      (0x00000100uL)
+#define INTC_ICDABR12_IFEI0                     (0x00000200uL)
+#define INTC_ICDABR12_OFFI0                     (0x00000400uL)
+#define INTC_ICDABR12_PFVEI0                    (0x00000800uL)
+#define INTC_ICDABR12_IFEI1                     (0x00001000uL)
+#define INTC_ICDABR12_OFFI1                     (0x00002000uL)
+#define INTC_ICDABR12_PFVEI1                    (0x00004000uL)
+
+#define INTC_ICDABR13_TINT0                     (0x00000001uL)
+#define INTC_ICDABR13_TINT1                     (0x00000002uL)
+#define INTC_ICDABR13_TINT2                     (0x00000004uL)
+#define INTC_ICDABR13_TINT3                     (0x00000008uL)
+#define INTC_ICDABR13_TINT4                     (0x00000010uL)
+#define INTC_ICDABR13_TINT5                     (0x00000020uL)
+#define INTC_ICDABR13_TINT6                     (0x00000040uL)
+#define INTC_ICDABR13_TINT7                     (0x00000080uL)
+#define INTC_ICDABR13_TINT8                     (0x00000100uL)
+#define INTC_ICDABR13_TINT9                     (0x00000200uL)
+#define INTC_ICDABR13_TINT10                    (0x00000400uL)
+#define INTC_ICDABR13_TINT11                    (0x00000800uL)
+#define INTC_ICDABR13_TINT12                    (0x00001000uL)
+#define INTC_ICDABR13_TINT13                    (0x00002000uL)
+#define INTC_ICDABR13_TINT14                    (0x00004000uL)
+#define INTC_ICDABR13_TINT15                    (0x00008000uL)
+#define INTC_ICDABR13_TINT16                    (0x00010000uL)
+#define INTC_ICDABR13_TINT17                    (0x00020000uL)
+#define INTC_ICDABR13_TINT18                    (0x00040000uL)
+#define INTC_ICDABR13_TINT19                    (0x00080000uL)
+#define INTC_ICDABR13_TINT20                    (0x00100000uL)
+#define INTC_ICDABR13_TINT21                    (0x00200000uL)
+#define INTC_ICDABR13_TINT22                    (0x00400000uL)
+#define INTC_ICDABR13_TINT23                    (0x00800000uL)
+#define INTC_ICDABR13_TINT24                    (0x01000000uL)
+#define INTC_ICDABR13_TINT25                    (0x02000000uL)
+#define INTC_ICDABR13_TINT26                    (0x04000000uL)
+#define INTC_ICDABR13_TINT27                    (0x08000000uL)
+#define INTC_ICDABR13_TINT28                    (0x10000000uL)
+#define INTC_ICDABR13_TINT29                    (0x20000000uL)
+#define INTC_ICDABR13_TINT30                    (0x40000000uL)
+#define INTC_ICDABR13_TINT31                    (0x80000000uL)
+
+#define INTC_ICDABR14_TINT32                    (0x00000001uL)
+#define INTC_ICDABR14_TINT33                    (0x00000002uL)
+#define INTC_ICDABR14_TINT34                    (0x00000004uL)
+#define INTC_ICDABR14_TINT35                    (0x00000008uL)
+#define INTC_ICDABR14_TINT36                    (0x00000010uL)
+#define INTC_ICDABR14_TINT37                    (0x00000020uL)
+#define INTC_ICDABR14_TINT38                    (0x00000040uL)
+#define INTC_ICDABR14_TINT39                    (0x00000080uL)
+#define INTC_ICDABR14_TINT40                    (0x00000100uL)
+#define INTC_ICDABR14_TINT41                    (0x00000200uL)
+#define INTC_ICDABR14_TINT42                    (0x00000400uL)
+#define INTC_ICDABR14_TINT43                    (0x00000800uL)
+#define INTC_ICDABR14_TINT44                    (0x00001000uL)
+#define INTC_ICDABR14_TINT45                    (0x00002000uL)
+#define INTC_ICDABR14_TINT46                    (0x00004000uL)
+#define INTC_ICDABR14_TINT47                    (0x00008000uL)
+#define INTC_ICDABR14_TINT48                    (0x00010000uL)
+#define INTC_ICDABR14_TINT49                    (0x00020000uL)
+#define INTC_ICDABR14_TINT50                    (0x00040000uL)
+#define INTC_ICDABR14_TINT51                    (0x00080000uL)
+#define INTC_ICDABR14_TINT52                    (0x00100000uL)
+#define INTC_ICDABR14_TINT53                    (0x00200000uL)
+#define INTC_ICDABR14_TINT54                    (0x00400000uL)
+#define INTC_ICDABR14_TINT55                    (0x00800000uL)
+#define INTC_ICDABR14_TINT56                    (0x01000000uL)
+#define INTC_ICDABR14_TINT57                    (0x02000000uL)
+#define INTC_ICDABR14_TINT58                    (0x04000000uL)
+#define INTC_ICDABR14_TINT59                    (0x08000000uL)
+#define INTC_ICDABR14_TINT60                    (0x10000000uL)
+#define INTC_ICDABR14_TINT61                    (0x20000000uL)
+#define INTC_ICDABR14_TINT62                    (0x40000000uL)
+#define INTC_ICDABR14_TINT63                    (0x80000000uL)
+
+#define INTC_ICDABR15_TINT64                    (0x00000001uL)
+#define INTC_ICDABR15_TINT65                    (0x00000002uL)
+#define INTC_ICDABR15_TINT66                    (0x00000004uL)
+#define INTC_ICDABR15_TINT67                    (0x00000008uL)
+#define INTC_ICDABR15_TINT68                    (0x00000010uL)
+#define INTC_ICDABR15_TINT69                    (0x00000020uL)
+#define INTC_ICDABR15_TINT70                    (0x00000040uL)
+#define INTC_ICDABR15_TINT71                    (0x00000080uL)
+#define INTC_ICDABR15_TINT72                    (0x00000100uL)
+#define INTC_ICDABR15_TINT73                    (0x00000200uL)
+#define INTC_ICDABR15_TINT74                    (0x00000400uL)
+#define INTC_ICDABR15_TINT75                    (0x00000800uL)
+#define INTC_ICDABR15_TINT76                    (0x00001000uL)
+#define INTC_ICDABR15_TINT77                    (0x00002000uL)
+#define INTC_ICDABR15_TINT78                    (0x00004000uL)
+#define INTC_ICDABR15_TINT79                    (0x00008000uL)
+#define INTC_ICDABR15_TINT80                    (0x00010000uL)
+#define INTC_ICDABR15_TINT81                    (0x00020000uL)
+#define INTC_ICDABR15_TINT82                    (0x00040000uL)
+#define INTC_ICDABR15_TINT83                    (0x00080000uL)
+#define INTC_ICDABR15_TINT84                    (0x00100000uL)
+#define INTC_ICDABR15_TINT85                    (0x00200000uL)
+#define INTC_ICDABR15_TINT86                    (0x00400000uL)
+#define INTC_ICDABR15_TINT87                    (0x00800000uL)
+#define INTC_ICDABR15_TINT88                    (0x01000000uL)
+#define INTC_ICDABR15_TINT89                    (0x02000000uL)
+#define INTC_ICDABR15_TINT90                    (0x04000000uL)
+#define INTC_ICDABR15_TINT91                    (0x08000000uL)
+#define INTC_ICDABR15_TINT92                    (0x10000000uL)
+#define INTC_ICDABR15_TINT93                    (0x20000000uL)
+#define INTC_ICDABR15_TINT94                    (0x40000000uL)
+#define INTC_ICDABR15_TINT95                    (0x80000000uL)
+
+#define INTC_ICDABR16_TINT96                    (0x00000001uL)
+#define INTC_ICDABR16_TINT97                    (0x00000002uL)
+#define INTC_ICDABR16_TINT98                    (0x00000004uL)
+#define INTC_ICDABR16_TINT99                    (0x00000008uL)
+#define INTC_ICDABR16_TINT100                   (0x00000010uL)
+#define INTC_ICDABR16_TINT101                   (0x00000020uL)
+#define INTC_ICDABR16_TINT102                   (0x00000040uL)
+#define INTC_ICDABR16_TINT103                   (0x00000080uL)
+#define INTC_ICDABR16_TINT104                   (0x00000100uL)
+#define INTC_ICDABR16_TINT105                   (0x00000200uL)
+#define INTC_ICDABR16_TINT106                   (0x00000400uL)
+#define INTC_ICDABR16_TINT107                   (0x00000800uL)
+#define INTC_ICDABR16_TINT108                   (0x00001000uL)
+#define INTC_ICDABR16_TINT109                   (0x00002000uL)
+#define INTC_ICDABR16_TINT110                   (0x00004000uL)
+#define INTC_ICDABR16_TINT111                   (0x00008000uL)
+#define INTC_ICDABR16_TINT112                   (0x00010000uL)
+#define INTC_ICDABR16_TINT113                   (0x00020000uL)
+#define INTC_ICDABR16_TINT114                   (0x00040000uL)
+#define INTC_ICDABR16_TINT115                   (0x00080000uL)
+#define INTC_ICDABR16_TINT116                   (0x00100000uL)
+#define INTC_ICDABR16_TINT117                   (0x00200000uL)
+#define INTC_ICDABR16_TINT118                   (0x00400000uL)
+#define INTC_ICDABR16_TINT119                   (0x00800000uL)
+#define INTC_ICDABR16_TINT120                   (0x01000000uL)
+#define INTC_ICDABR16_TINT121                   (0x02000000uL)
+#define INTC_ICDABR16_TINT122                   (0x04000000uL)
+#define INTC_ICDABR16_TINT123                   (0x08000000uL)
+#define INTC_ICDABR16_TINT124                   (0x10000000uL)
+#define INTC_ICDABR16_TINT125                   (0x20000000uL)
+#define INTC_ICDABR16_TINT126                   (0x40000000uL)
+#define INTC_ICDABR16_TINT127                   (0x80000000uL)
+
+#define INTC_ICDABR17_TINT128                   (0x00000001uL)
+#define INTC_ICDABR17_TINT129                   (0x00000002uL)
+#define INTC_ICDABR17_TINT130                   (0x00000004uL)
+#define INTC_ICDABR17_TINT131                   (0x00000008uL)
+#define INTC_ICDABR17_TINT132                   (0x00000010uL)
+#define INTC_ICDABR17_TINT133                   (0x00000020uL)
+#define INTC_ICDABR17_TINT134                   (0x00000040uL)
+#define INTC_ICDABR17_TINT135                   (0x00000080uL)
+#define INTC_ICDABR17_TINT136                   (0x00000100uL)
+#define INTC_ICDABR17_TINT137                   (0x00000200uL)
+#define INTC_ICDABR17_TINT138                   (0x00000400uL)
+#define INTC_ICDABR17_TINT139                   (0x00000800uL)
+#define INTC_ICDABR17_TINT140                   (0x00001000uL)
+#define INTC_ICDABR17_TINT141                   (0x00002000uL)
+#define INTC_ICDABR17_TINT142                   (0x00004000uL)
+#define INTC_ICDABR17_TINT143                   (0x00008000uL)
+#define INTC_ICDABR17_TINT144                   (0x00010000uL)
+#define INTC_ICDABR17_TINT145                   (0x00020000uL)
+#define INTC_ICDABR17_TINT146                   (0x00040000uL)
+#define INTC_ICDABR17_TINT147                   (0x00080000uL)
+#define INTC_ICDABR17_TINT148                   (0x00100000uL)
+#define INTC_ICDABR17_TINT149                   (0x00200000uL)
+#define INTC_ICDABR17_TINT150                   (0x00400000uL)
+#define INTC_ICDABR17_TINT151                   (0x00800000uL)
+#define INTC_ICDABR17_TINT152                   (0x01000000uL)
+#define INTC_ICDABR17_TINT153                   (0x02000000uL)
+#define INTC_ICDABR17_TINT154                   (0x04000000uL)
+#define INTC_ICDABR17_TINT155                   (0x08000000uL)
+#define INTC_ICDABR17_TINT156                   (0x10000000uL)
+#define INTC_ICDABR17_TINT157                   (0x20000000uL)
+#define INTC_ICDABR17_TINT158                   (0x40000000uL)
+#define INTC_ICDABR17_TINT159                   (0x80000000uL)
+
+#define INTC_ICDABR18_TINT160                   (0x00000001uL)
+#define INTC_ICDABR18_TINT161                   (0x00000002uL)
+#define INTC_ICDABR18_TINT162                   (0x00000004uL)
+#define INTC_ICDABR18_TINT163                   (0x00000008uL)
+#define INTC_ICDABR18_TINT164                   (0x00000010uL)
+#define INTC_ICDABR18_TINT165                   (0x00000020uL)
+#define INTC_ICDABR18_TINT166                   (0x00000040uL)
+#define INTC_ICDABR18_TINT167                   (0x00000080uL)
+#define INTC_ICDABR18_TINT168                   (0x00000100uL)
+#define INTC_ICDABR18_TINT169                   (0x00000200uL)
+#define INTC_ICDABR18_TINT170                   (0x00000400uL)
+
+#define INTC_ICDIPR0_SW0                        (0x000000FFuL)
+#define INTC_ICDIPR0_SW1                        (0x0000FF00uL)
+#define INTC_ICDIPR0_SW2                        (0x00FF0000uL)
+#define INTC_ICDIPR0_SW3                        (0xFF000000uL)
+
+#define INTC_ICDIPR1_SW4                        (0x000000FFuL)
+#define INTC_ICDIPR1_SW5                        (0x0000FF00uL)
+#define INTC_ICDIPR1_SW6                        (0x00FF0000uL)
+#define INTC_ICDIPR1_SW7                        (0xFF000000uL)
+
+#define INTC_ICDIPR2_SW8                        (0x000000FFuL)
+#define INTC_ICDIPR2_SW9                        (0x0000FF00uL)
+#define INTC_ICDIPR2_SW10                       (0x00FF0000uL)
+#define INTC_ICDIPR2_SW11                       (0xFF000000uL)
+
+#define INTC_ICDIPR3_SW12                       (0x000000FFuL)
+#define INTC_ICDIPR3_SW13                       (0x0000FF00uL)
+#define INTC_ICDIPR3_SW14                       (0x00FF0000uL)
+#define INTC_ICDIPR3_SW15                       (0xFF000000uL)
+
+#define INTC_ICDIPR4_PMUIRQ0                    (0x000000FFuL)
+#define INTC_ICDIPR4_COMMRX0                    (0x0000FF00uL)
+#define INTC_ICDIPR4_COMMTX0                    (0x00FF0000uL)
+#define INTC_ICDIPR4_CTIIRQ0                    (0xFF000000uL)
+
+#define INTC_ICDIPR8_IRQ0                       (0x000000FFuL)
+#define INTC_ICDIPR8_IRQ1                       (0x0000FF00uL)
+#define INTC_ICDIPR8_IRQ2                       (0x00FF0000uL)
+#define INTC_ICDIPR8_IRQ3                       (0xFF000000uL)
+
+#define INTC_ICDIPR9_IRQ4                       (0x000000FFuL)
+#define INTC_ICDIPR9_IRQ5                       (0x0000FF00uL)
+#define INTC_ICDIPR9_IRQ6                       (0x00FF0000uL)
+#define INTC_ICDIPR9_IRQ7                       (0xFF000000uL)
+
+#define INTC_ICDIPR10_PL310ERR                  (0x000000FFuL)
+#define INTC_ICDIPR10_DMAINT0                   (0x0000FF00uL)
+#define INTC_ICDIPR10_DMAINT1                   (0x00FF0000uL)
+#define INTC_ICDIPR10_DMAINT2                   (0xFF000000uL)
+
+#define INTC_ICDIPR11_DMAINT3                   (0x000000FFuL)
+#define INTC_ICDIPR11_DMAINT4                   (0x0000FF00uL)
+#define INTC_ICDIPR11_DMAINT5                   (0x00FF0000uL)
+#define INTC_ICDIPR11_DMAINT6                   (0xFF000000uL)
+
+#define INTC_ICDIPR12_DMAINT7                   (0x000000FFuL)
+#define INTC_ICDIPR12_DMAINT8                   (0x0000FF00uL)
+#define INTC_ICDIPR12_DMAINT9                   (0x00FF0000uL)
+#define INTC_ICDIPR12_DMAINT10                  (0xFF000000uL)
+
+#define INTC_ICDIPR13_DMAINT11                  (0x000000FFuL)
+#define INTC_ICDIPR13_DMAINT12                  (0x0000FF00uL)
+#define INTC_ICDIPR13_DMAINT13                  (0x00FF0000uL)
+#define INTC_ICDIPR13_DMAINT14                  (0xFF000000uL)
+
+#define INTC_ICDIPR14_DMAINT15                  (0x000000FFuL)
+#define INTC_ICDIPR14_DMAERR                    (0x0000FF00uL)
+
+#define INTC_ICDIPR18_USBI0                     (0x0000FF00uL)
+#define INTC_ICDIPR18_USBI1                     (0x00FF0000uL)
+#define INTC_ICDIPR18_S0_VI_VSYNC0              (0xFF000000uL)
+
+#define INTC_ICDIPR19_S0_LO_VSYNC0              (0x000000FFuL)
+#define INTC_ICDIPR19_S0_VSYNCERR0              (0x0000FF00uL)
+#define INTC_ICDIPR19_GR3_VLINE0                (0x00FF0000uL)
+#define INTC_ICDIPR19_S0_VFIELD0                (0xFF000000uL)
+
+#define INTC_ICDIPR20_IV1_VBUFERR0              (0x000000FFuL)
+#define INTC_ICDIPR20_IV3_VBUFERR0              (0x0000FF00uL)
+#define INTC_ICDIPR20_IV5_VBUFERR0              (0x00FF0000uL)
+#define INTC_ICDIPR20_IV6_VBUFERR0              (0xFF000000uL)
+
+#define INTC_ICDIPR21_S0_WLINE0                 (0x000000FFuL)
+#define INTC_ICDIPR21_S1_VI_VSYNC0              (0x0000FF00uL)
+#define INTC_ICDIPR21_S1_LO_VSYNC0              (0x00FF0000uL)
+#define INTC_ICDIPR21_S1_VSYNCERR0              (0xFF000000uL)
+
+#define INTC_ICDIPR22_S1_VFIELD0                (0x000000FFuL)
+#define INTC_ICDIPR22_IV2_VBUFERR0              (0x0000FF00uL)
+#define INTC_ICDIPR22_IV4_VBUFERR0              (0x00FF0000uL)
+#define INTC_ICDIPR22_S1_WLINE0                 (0xFF000000uL)
+
+#define INTC_ICDIPR23_OIR_VI_VSYNC0             (0x000000FFuL)
+#define INTC_ICDIPR23_OIR_LO_VSYNC0             (0x0000FF00uL)
+#define INTC_ICDIPR23_OIR_VSYNCERR0             (0x00FF0000uL)
+#define INTC_ICDIPR23_OIR_VFIELD0               (0xFF000000uL)
+
+#define INTC_ICDIPR24_IV7_VBUFERR0              (0x000000FFuL)
+#define INTC_ICDIPR24_IV8_VBUFERR0              (0x0000FF00uL)
+#define INTC_ICDIPR24_S0_VI_VSYNC1              (0xFF000000uL)
+
+#define INTC_ICDIPR25_S0_LO_VSYNC1              (0x000000FFuL)
+#define INTC_ICDIPR25_S0_VSYNCERR1              (0x0000FF00uL)
+#define INTC_ICDIPR25_GR3_VLINE1                (0x00FF0000uL)
+#define INTC_ICDIPR25_S0_VFIELD1                (0xFF000000uL)
+
+#define INTC_ICDIPR26_IV1_VBUFERR1              (0x000000FFuL)
+#define INTC_ICDIPR26_IV3_VBUFERR1              (0x0000FF00uL)
+#define INTC_ICDIPR26_IV5_VBUFERR1              (0x00FF0000uL)
+#define INTC_ICDIPR26_IV6_VBUFERR1              (0xFF000000uL)
+
+#define INTC_ICDIPR27_S0_WLINE1                 (0x000000FFuL)
+#define INTC_ICDIPR27_S1_VI_VSYNC1              (0x0000FF00uL)
+#define INTC_ICDIPR27_S1_LO_VSYNC1              (0x00FF0000uL)
+#define INTC_ICDIPR27_S1_VSYNCERR1              (0xFF000000uL)
+
+#define INTC_ICDIPR28_S1_VFIELD1                (0x000000FFuL)
+#define INTC_ICDIPR28_IV2_VBUFERR1              (0x0000FF00uL)
+#define INTC_ICDIPR28_IV4_VBUFERR1              (0x00FF0000uL)
+#define INTC_ICDIPR28_S1_WLINE1                 (0xFF000000uL)
+
+#define INTC_ICDIPR29_OIR_VI_VSYNC1             (0x000000FFuL)
+#define INTC_ICDIPR29_OIR_LO_VSYNC1             (0x0000FF00uL)
+#define INTC_ICDIPR29_OIR_VLINE1                (0x00FF0000uL)
+#define INTC_ICDIPR29_OIR_VFIELD1               (0xFF000000uL)
+
+#define INTC_ICDIPR30_IV7_VBUFERR1              (0x000000FFuL)
+#define INTC_ICDIPR30_IV8_VBUFERR1              (0x0000FF00uL)
+#define INTC_ICDIPR30_IMRDI                     (0xFF000000uL)
+
+#define INTC_ICDIPR31_IMR2I0                    (0x000000FFuL)
+#define INTC_ICDIPR31_IMR2I1                    (0x0000FF00uL)
+#define INTC_ICDIPR31_JEDI                      (0x00FF0000uL)
+#define INTC_ICDIPR31_JDTI                      (0xFF000000uL)
+
+#define INTC_ICDIPR32_CMP0                      (0x000000FFuL)
+#define INTC_ICDIPR32_CMP1                      (0x0000FF00uL)
+#define INTC_ICDIPR32_INT0                      (0x00FF0000uL)
+#define INTC_ICDIPR32_INT1                      (0xFF000000uL)
+
+#define INTC_ICDIPR33_INT2                      (0x000000FFuL)
+#define INTC_ICDIPR33_INT3                      (0x0000FF00uL)
+#define INTC_ICDIPR33_OSTM0TINT                 (0x00FF0000uL)
+#define INTC_ICDIPR33_OSTM1TINT                 (0xFF000000uL)
+
+#define INTC_ICDIPR34_CMI                       (0x000000FFuL)
+#define INTC_ICDIPR34_WTOUT                     (0x0000FF00uL)
+#define INTC_ICDIPR34_ITI                       (0x00FF0000uL)
+#define INTC_ICDIPR34_TGI0A                     (0xFF000000uL)
+
+#define INTC_ICDIPR35_TGI0B                     (0x000000FFuL)
+#define INTC_ICDIPR35_TGI0C                     (0x0000FF00uL)
+#define INTC_ICDIPR35_TGI0D                     (0x00FF0000uL)
+#define INTC_ICDIPR35_TGI0V                     (0xFF000000uL)
+
+#define INTC_ICDIPR36_TGI0E                     (0x000000FFuL)
+#define INTC_ICDIPR36_TGI0F                     (0x0000FF00uL)
+#define INTC_ICDIPR36_TGI1A                     (0x00FF0000uL)
+#define INTC_ICDIPR36_TGI1B                     (0xFF000000uL)
+
+#define INTC_ICDIPR37_TGI1V                     (0x000000FFuL)
+#define INTC_ICDIPR37_TGI1U                     (0x0000FF00uL)
+#define INTC_ICDIPR37_TGI2A                     (0x00FF0000uL)
+#define INTC_ICDIPR37_TGI2B                     (0xFF000000uL)
+
+#define INTC_ICDIPR38_TGI2V                     (0x000000FFuL)
+#define INTC_ICDIPR38_TGI2U                     (0x0000FF00uL)
+#define INTC_ICDIPR38_TGI3A                     (0x00FF0000uL)
+#define INTC_ICDIPR38_TGI3B                     (0xFF000000uL)
+
+#define INTC_ICDIPR39_TGI3C                     (0x000000FFuL)
+#define INTC_ICDIPR39_TGI3D                     (0x0000FF00uL)
+#define INTC_ICDIPR39_TGI3V                     (0x00FF0000uL)
+#define INTC_ICDIPR39_TGI4A                     (0xFF000000uL)
+
+#define INTC_ICDIPR40_TGI4B                     (0x000000FFuL)
+#define INTC_ICDIPR40_TGI4C                     (0x0000FF00uL)
+#define INTC_ICDIPR40_TGI4D                     (0x00FF0000uL)
+#define INTC_ICDIPR40_TGI4V                     (0xFF000000uL)
+
+#define INTC_ICDIPR41_CMI1                      (0x000000FFuL)
+#define INTC_ICDIPR41_CMI2                      (0x0000FF00uL)
+#define INTC_ICDIPR41_SGDEI0                    (0x00FF0000uL)
+#define INTC_ICDIPR41_SGDEI1                    (0xFF000000uL)
+
+#define INTC_ICDIPR42_SGDEI2                    (0x000000FFuL)
+#define INTC_ICDIPR42_SGDEI3                    (0x0000FF00uL)
+#define INTC_ICDIPR42_ADI                       (0x00FF0000uL)
+#define INTC_ICDIPR42_LMTI                      (0xFF000000uL)
+
+#define INTC_ICDIPR43_SSII0                     (0x000000FFuL)
+#define INTC_ICDIPR43_SSIRXI0                   (0x0000FF00uL)
+#define INTC_ICDIPR43_SSITXI0                   (0x00FF0000uL)
+#define INTC_ICDIPR43_SSII1                     (0xFF000000uL)
+
+#define INTC_ICDIPR44_SSIRXI1                   (0x000000FFuL)
+#define INTC_ICDIPR44_SSITXI1                   (0x0000FF00uL)
+#define INTC_ICDIPR44_SSII2                     (0x00FF0000uL)
+#define INTC_ICDIPR44_SSIRTI2                   (0xFF000000uL)
+
+#define INTC_ICDIPR45_SSII3                     (0x000000FFuL)
+#define INTC_ICDIPR45_SSIRXI3                   (0x0000FF00uL)
+#define INTC_ICDIPR45_SSITXI3                   (0x00FF0000uL)
+#define INTC_ICDIPR45_SSII4                     (0xFF000000uL)
+
+#define INTC_ICDIPR46_SSIRTI4                   (0x000000FFuL)
+#define INTC_ICDIPR46_SSII5                     (0x0000FF00uL)
+#define INTC_ICDIPR46_SSIRXI5                   (0x00FF0000uL)
+#define INTC_ICDIPR46_SSITXI5                   (0xFF000000uL)
+
+#define INTC_ICDIPR47_SPDIFI                    (0x000000FFuL)
+#define INTC_ICDIPR47_INTIICTEI0                (0x0000FF00uL)
+#define INTC_ICDIPR47_INTIICRI0                 (0x00FF0000uL)
+#define INTC_ICDIPR47_INTIICTI0                 (0xFF000000uL)
+
+#define INTC_ICDIPR48_INTIICSPI0                (0x000000FFuL)
+#define INTC_ICDIPR48_INTIICSTI0                (0x0000FF00uL)
+#define INTC_ICDIPR48_INTIICNAKI0               (0x00FF0000uL)
+#define INTC_ICDIPR48_INTIICALI0                (0xFF000000uL)
+
+#define INTC_ICDIPR49_INTIICTMOI0               (0x000000FFuL)
+#define INTC_ICDIPR49_INTIICTEI1                (0x0000FF00uL)
+#define INTC_ICDIPR49_INTIICRI1                 (0x00FF0000uL)
+#define INTC_ICDIPR49_INTIICTI1                 (0xFF000000uL)
+
+#define INTC_ICDIPR50_INTIICSPI1                (0x000000FFuL)
+#define INTC_ICDIPR50_INTIICSTI1                (0x0000FF00uL)
+#define INTC_ICDIPR50_INTIICNAKI1               (0x00FF0000uL)
+#define INTC_ICDIPR50_INTIICALI1                (0xFF000000uL)
+
+#define INTC_ICDIPR51_INTIICTMOI1               (0x000000FFuL)
+#define INTC_ICDIPR51_INTIICTEI2                (0x0000FF00uL)
+#define INTC_ICDIPR51_INTIICRI2                 (0x00FF0000uL)
+#define INTC_ICDIPR51_INTIICTI2                 (0xFF000000uL)
+
+#define INTC_ICDIPR52_INTIICSPI2                (0x000000FFuL)
+#define INTC_ICDIPR52_INTIICSTI2                (0x0000FF00uL)
+#define INTC_ICDIPR52_INTIICNAKI2               (0x00FF0000uL)
+#define INTC_ICDIPR52_INTIICALI2                (0xFF000000uL)
+
+#define INTC_ICDIPR53_INTIICTMOI2               (0x000000FFuL)
+#define INTC_ICDIPR53_INTIICTEI3                (0x0000FF00uL)
+#define INTC_ICDIPR53_INTIICRI3                 (0x00FF0000uL)
+#define INTC_ICDIPR53_INTIICTI3                 (0xFF000000uL)
+
+#define INTC_ICDIPR54_INTIICSPI3                (0x000000FFuL)
+#define INTC_ICDIPR54_INTIICSTI3                (0x0000FF00uL)
+#define INTC_ICDIPR54_INTIICNAKI3               (0x00FF0000uL)
+#define INTC_ICDIPR54_INTIICALI3                (0xFF000000uL)
+
+#define INTC_ICDIPR55_INTIICTMOI3               (0x000000FFuL)
+#define INTC_ICDIPR55_BRI0                      (0x0000FF00uL)
+#define INTC_ICDIPR55_ERI0                      (0x00FF0000uL)
+#define INTC_ICDIPR55_RXI0                      (0xFF000000uL)
+
+#define INTC_ICDIPR56_TXI0                      (0x000000FFuL)
+#define INTC_ICDIPR56_BRI1                      (0x0000FF00uL)
+#define INTC_ICDIPR56_ERI1                      (0x00FF0000uL)
+#define INTC_ICDIPR56_RXI1                      (0xFF000000uL)
+
+#define INTC_ICDIPR57_TXI1                      (0x000000FFuL)
+#define INTC_ICDIPR57_BRI2                      (0x0000FF00uL)
+#define INTC_ICDIPR57_ERI2                      (0x00FF0000uL)
+#define INTC_ICDIPR57_RXI2                      (0xFF000000uL)
+
+#define INTC_ICDIPR58_TXI2                      (0x000000FFuL)
+#define INTC_ICDIPR58_BRI3                      (0x0000FF00uL)
+#define INTC_ICDIPR58_ERI3                      (0x00FF0000uL)
+#define INTC_ICDIPR58_RXI3                      (0xFF000000uL)
+
+#define INTC_ICDIPR59_TXI3                      (0x000000FFuL)
+#define INTC_ICDIPR59_BRI4                      (0x0000FF00uL)
+#define INTC_ICDIPR59_ERI4                      (0x00FF0000uL)
+#define INTC_ICDIPR59_RXI4                      (0xFF000000uL)
+
+#define INTC_ICDIPR60_TXI4                      (0x000000FFuL)
+#define INTC_ICDIPR60_BRI5                      (0x0000FF00uL)
+#define INTC_ICDIPR60_ERI5                      (0x00FF0000uL)
+#define INTC_ICDIPR60_RXI5                      (0xFF000000uL)
+
+#define INTC_ICDIPR61_TXI5                      (0x000000FFuL)
+#define INTC_ICDIPR61_BRI6                      (0x0000FF00uL)
+#define INTC_ICDIPR61_ERI6                      (0x00FF0000uL)
+#define INTC_ICDIPR61_RXI6                      (0xFF000000uL)
+
+#define INTC_ICDIPR62_TXI6                      (0x000000FFuL)
+#define INTC_ICDIPR62_BRI7                      (0x0000FF00uL)
+#define INTC_ICDIPR62_ERI7                      (0x00FF0000uL)
+#define INTC_ICDIPR62_RXI7                      (0xFF000000uL)
+
+#define INTC_ICDIPR63_TXI7                      (0x000000FFuL)
+#define INTC_ICDIPR63_INTRCANGERR               (0x0000FF00uL)
+#define INTC_ICDIPR63_INTRCANGRECC              (0x00FF0000uL)
+#define INTC_ICDIPR63_INTRCAN0REC               (0xFF000000uL)
+
+#define INTC_ICDIPR64_INTRCAN0ERR               (0x000000FFuL)
+#define INTC_ICDIPR64_INTRCAN0TRX               (0x0000FF00uL)
+#define INTC_ICDIPR64_INTRCAN1REC               (0x00FF0000uL)
+#define INTC_ICDIPR64_INTRCAN1ERR               (0xFF000000uL)
+
+#define INTC_ICDIPR65_INTRCAN1TRX               (0x000000FFuL)
+#define INTC_ICDIPR65_INTRCAN2REC               (0x0000FF00uL)
+#define INTC_ICDIPR65_INTRCAN2ERR               (0x00FF0000uL)
+#define INTC_ICDIPR65_INTRCAN2TRX               (0xFF000000uL)
+
+#define INTC_ICDIPR66_INTRCAN3REC               (0x000000FFuL)
+#define INTC_ICDIPR66_INTRCAN3ERR               (0x0000FF00uL)
+#define INTC_ICDIPR66_INTRCAN3TRX               (0x00FF0000uL)
+#define INTC_ICDIPR66_INTRCAN4REC               (0xFF000000uL)
+
+#define INTC_ICDIPR67_INTRCAN4ERR               (0x000000FFuL)
+#define INTC_ICDIPR67_INTRCAN4TRX               (0x0000FF00uL)
+#define INTC_ICDIPR67_SPEI0                     (0x00FF0000uL)
+#define INTC_ICDIPR67_SPRI0                     (0xFF000000uL)
+
+#define INTC_ICDIPR68_SPTI0                     (0x000000FFuL)
+#define INTC_ICDIPR68_SPEI1                     (0x0000FF00uL)
+#define INTC_ICDIPR68_SPRI1                     (0x00FF0000uL)
+#define INTC_ICDIPR68_SPTI1                     (0xFF000000uL)
+
+#define INTC_ICDIPR69_SPEI2                     (0x000000FFuL)
+#define INTC_ICDIPR69_SPRI2                     (0x0000FF00uL)
+#define INTC_ICDIPR69_SPTI2                     (0x00FF0000uL)
+#define INTC_ICDIPR69_SPEI3                     (0xFF000000uL)
+
+#define INTC_ICDIPR70_SPRI3                     (0x000000FFuL)
+#define INTC_ICDIPR70_SPTI3                     (0x0000FF00uL)
+#define INTC_ICDIPR70_SPEI4                     (0x00FF0000uL)
+#define INTC_ICDIPR70_SPRI4                     (0xFF000000uL)
+
+#define INTC_ICDIPR71_SPTI4                     (0x000000FFuL)
+#define INTC_ICDIPR71_IEBBTD                    (0x0000FF00uL)
+#define INTC_ICDIPR71_IEBBTERR                  (0x00FF0000uL)
+#define INTC_ICDIPR71_IEBBTSTA                  (0xFF000000uL)
+
+#define INTC_ICDIPR72_IEBBTV                    (0x000000FFuL)
+#define INTC_ICDIPR72_ISY                       (0x0000FF00uL)
+#define INTC_ICDIPR72_IERR                      (0x00FF0000uL)
+#define INTC_ICDIPR72_ITARG                     (0xFF000000uL)
+
+#define INTC_ICDIPR73_ISEC                      (0x000000FFuL)
+#define INTC_ICDIPR73_IBUF                      (0x0000FF00uL)
+#define INTC_ICDIPR73_IREADY                    (0x00FF0000uL)
+#define INTC_ICDIPR73_FLSTE                     (0xFF000000uL)
+
+#define INTC_ICDIPR74_FLTENDI                   (0x000000FFuL)
+#define INTC_ICDIPR74_FLTREQ0I                  (0x0000FF00uL)
+#define INTC_ICDIPR74_FLTREQ1I                  (0x00FF0000uL)
+#define INTC_ICDIPR74_MMC0                      (0xFF000000uL)
+
+#define INTC_ICDIPR75_MMC1                      (0x000000FFuL)
+#define INTC_ICDIPR75_MMC2                      (0x0000FF00uL)
+#define INTC_ICDIPR75_SDHI0_3                   (0x00FF0000uL)
+#define INTC_ICDIPR75_SDHI0_0                   (0xFF000000uL)
+
+#define INTC_ICDIPR76_SDHI0_1                   (0x000000FFuL)
+#define INTC_ICDIPR76_SDHI1_3                   (0x0000FF00uL)
+#define INTC_ICDIPR76_SDHI1_0                   (0x00FF0000uL)
+#define INTC_ICDIPR76_SDHI1_1                   (0xFF000000uL)
+
+#define INTC_ICDIPR77_ARM                       (0x000000FFuL)
+#define INTC_ICDIPR77_PRD                       (0x0000FF00uL)
+#define INTC_ICDIPR77_CUP                       (0x00FF0000uL)
+#define INTC_ICDIPR77_SCUAI0                    (0xFF000000uL)
+
+#define INTC_ICDIPR78_SCUAI1                    (0x000000FFuL)
+#define INTC_ICDIPR78_SCUFDI0                   (0x0000FF00uL)
+#define INTC_ICDIPR78_SCUFDI1                   (0x00FF0000uL)
+#define INTC_ICDIPR78_SCUFDI2                   (0xFF000000uL)
+
+#define INTC_ICDIPR79_SCUFDI3                   (0x000000FFuL)
+#define INTC_ICDIPR79_SCUFUI0                   (0x0000FF00uL)
+#define INTC_ICDIPR79_SCUFUI1                   (0x00FF0000uL)
+#define INTC_ICDIPR79_SCUFUI2                   (0xFF000000uL)
+
+#define INTC_ICDIPR80_SCUFUI3                   (0x000000FFuL)
+#define INTC_ICDIPR80_SCUDVI0                   (0x0000FF00uL)
+#define INTC_ICDIPR80_SCUDVI1                   (0x00FF0000uL)
+#define INTC_ICDIPR80_SCUDVI2                   (0xFF000000uL)
+
+#define INTC_ICDIPR81_SCUDVI3                   (0x000000FFuL)
+#define INTC_ICDIPR81_MLB_CINT                  (0x0000FF00uL)
+#define INTC_ICDIPR81_MLB_SINT                  (0x00FF0000uL)
+#define INTC_ICDIPR81_DRC0                      (0xFF000000uL)
+
+#define INTC_ICDIPR82_DRC1                      (0x000000FFuL)
+#define INTC_ICDIPR82_LINI0_INT_T               (0xFF000000uL)
+
+#define INTC_ICDIPR83_LINI0_INT_R               (0x000000FFuL)
+#define INTC_ICDIPR83_LINI0_INT_S               (0x0000FF00uL)
+#define INTC_ICDIPR83_LINI0_INT_M               (0x00FF0000uL)
+#define INTC_ICDIPR83_LINI1_INT_T               (0xFF000000uL)
+
+#define INTC_ICDIPR84_LINI1_INT_R               (0x000000FFuL)
+#define INTC_ICDIPR84_LINI1_INT_S               (0x0000FF00uL)
+#define INTC_ICDIPR84_LINI1_INT_M               (0x00FF0000uL)
+
+#define INTC_ICDIPR86_ERI0                      (0xFF000000uL)
+
+#define INTC_ICDIPR87_RXI0                      (0x000000FFuL)
+#define INTC_ICDIPR87_TXI0                      (0x0000FF00uL)
+#define INTC_ICDIPR87_TEI0                      (0x00FF0000uL)
+#define INTC_ICDIPR87_ERI1                      (0xFF000000uL)
+
+#define INTC_ICDIPR88_RXI1                      (0x000000FFuL)
+#define INTC_ICDIPR88_TXI1                      (0x0000FF00uL)
+#define INTC_ICDIPR88_TEI1                      (0x00FF0000uL)
+#define INTC_ICDIPR88_AVBI_DATA                 (0xFF000000uL)
+
+#define INTC_ICDIPR89_AVBI_ERROR                (0x000000FFuL)
+#define INTC_ICDIPR89_AVBI_MANAGE               (0x0000FF00uL)
+#define INTC_ICDIPR89_AVBI_MAC                  (0x00FF0000uL)
+#define INTC_ICDIPR89_ETHERI                    (0xFF000000uL)
+
+#define INTC_ICDIPR91_CEUI                      (0x000000FFuL)
+
+#define INTC_ICDIPR95_H2XMLB_ERRINT             (0x0000FF00uL)
+#define INTC_ICDIPR95_H2XIC1_ERRINT             (0x00FF0000uL)
+#define INTC_ICDIPR95_X2HPERI1_ERRINT           (0xFF000000uL)
+
+#define INTC_ICDIPR96_X2HPERI2_ERRINT           (0x000000FFuL)
+#define INTC_ICDIPR96_X2HPERI34_ERRINT          (0x0000FF00uL)
+#define INTC_ICDIPR96_X2HPERI5_ERRINT           (0x00FF0000uL)
+#define INTC_ICDIPR96_X2HPERI67_ERRINT          (0xFF000000uL)
+
+#define INTC_ICDIPR97_X2HDBGR_ERRINT            (0x000000FFuL)
+#define INTC_ICDIPR97_X2HBSC_ERRINT             (0x0000FF00uL)
+#define INTC_ICDIPR97_X2HSPI1_ERRINT            (0x00FF0000uL)
+#define INTC_ICDIPR97_X2HSPI2_ERRINT            (0xFF000000uL)
+
+#define INTC_ICDIPR98_PRRI                      (0x000000FFuL)
+#define INTC_ICDIPR98_IFEI0                     (0x0000FF00uL)
+#define INTC_ICDIPR98_OFFI0                     (0x00FF0000uL)
+#define INTC_ICDIPR98_PFVEI0                    (0xFF000000uL)
+
+#define INTC_ICDIPR99_IFEI1                     (0x000000FFuL)
+#define INTC_ICDIPR99_OFFI1                     (0x0000FF00uL)
+#define INTC_ICDIPR99_PFVEI1                    (0x00FF0000uL)
+
+#define INTC_ICDIPR104_TINT0                    (0x000000FFuL)
+#define INTC_ICDIPR104_TINT1                    (0x0000FF00uL)
+#define INTC_ICDIPR104_TINT2                    (0x00FF0000uL)
+#define INTC_ICDIPR104_TINT3                    (0xFF000000uL)
+
+#define INTC_ICDIPR105_TINT4                    (0x000000FFuL)
+#define INTC_ICDIPR105_TINT5                    (0x0000FF00uL)
+#define INTC_ICDIPR105_TINT6                    (0x00FF0000uL)
+#define INTC_ICDIPR105_TINT7                    (0xFF000000uL)
+
+#define INTC_ICDIPR106_TINT8                    (0x000000FFuL)
+#define INTC_ICDIPR106_TINT9                    (0x0000FF00uL)
+#define INTC_ICDIPR106_TINT10                   (0x00FF0000uL)
+#define INTC_ICDIPR106_TINT11                   (0xFF000000uL)
+
+#define INTC_ICDIPR107_TINT12                   (0x000000FFuL)
+#define INTC_ICDIPR107_TINT13                   (0x0000FF00uL)
+#define INTC_ICDIPR107_TINT14                   (0x00FF0000uL)
+#define INTC_ICDIPR107_TINT15                   (0xFF000000uL)
+
+#define INTC_ICDIPR108_TINT16                   (0x000000FFuL)
+#define INTC_ICDIPR108_TINT17                   (0x0000FF00uL)
+#define INTC_ICDIPR108_TINT18                   (0x00FF0000uL)
+#define INTC_ICDIPR108_TINT19                   (0xFF000000uL)
+
+#define INTC_ICDIPR109_TINT20                   (0x000000FFuL)
+#define INTC_ICDIPR109_TINT21                   (0x0000FF00uL)
+#define INTC_ICDIPR109_TINT22                   (0x00FF0000uL)
+#define INTC_ICDIPR109_TINT23                   (0xFF000000uL)
+
+#define INTC_ICDIPR110_TINT24                   (0x000000FFuL)
+#define INTC_ICDIPR110_TINT25                   (0x0000FF00uL)
+#define INTC_ICDIPR110_TINT26                   (0x00FF0000uL)
+#define INTC_ICDIPR110_TINT27                   (0xFF000000uL)
+
+#define INTC_ICDIPR111_TINT28                   (0x000000FFuL)
+#define INTC_ICDIPR111_TINT29                   (0x0000FF00uL)
+#define INTC_ICDIPR111_TINT30                   (0x00FF0000uL)
+#define INTC_ICDIPR111_TINT31                   (0xFF000000uL)
+
+#define INTC_ICDIPR112_TINT32                   (0x000000FFuL)
+#define INTC_ICDIPR112_TINT33                   (0x0000FF00uL)
+#define INTC_ICDIPR112_TINT34                   (0x00FF0000uL)
+#define INTC_ICDIPR112_TINT35                   (0xFF000000uL)
+
+#define INTC_ICDIPR113_TINT36                   (0x000000FFuL)
+#define INTC_ICDIPR113_TINT37                   (0x0000FF00uL)
+#define INTC_ICDIPR113_TINT38                   (0x00FF0000uL)
+#define INTC_ICDIPR113_TINT39                   (0xFF000000uL)
+
+#define INTC_ICDIPR114_TINT40                   (0x000000FFuL)
+#define INTC_ICDIPR114_TINT41                   (0x0000FF00uL)
+#define INTC_ICDIPR114_TINT42                   (0x00FF0000uL)
+#define INTC_ICDIPR114_TINT43                   (0xFF000000uL)
+
+#define INTC_ICDIPR115_TINT44                   (0x000000FFuL)
+#define INTC_ICDIPR115_TINT45                   (0x0000FF00uL)
+#define INTC_ICDIPR115_TINT46                   (0x00FF0000uL)
+#define INTC_ICDIPR115_TINT47                   (0xFF000000uL)
+
+#define INTC_ICDIPR116_TINT48                   (0x000000FFuL)
+#define INTC_ICDIPR116_TINT49                   (0x0000FF00uL)
+#define INTC_ICDIPR116_TINT50                   (0x00FF0000uL)
+#define INTC_ICDIPR116_TINT51                   (0xFF000000uL)
+
+#define INTC_ICDIPR117_TINT52                   (0x000000FFuL)
+#define INTC_ICDIPR117_TINT53                   (0x0000FF00uL)
+#define INTC_ICDIPR117_TINT54                   (0x00FF0000uL)
+#define INTC_ICDIPR117_TINT55                   (0xFF000000uL)
+
+#define INTC_ICDIPR118_TINT56                   (0x000000FFuL)
+#define INTC_ICDIPR118_TINT57                   (0x0000FF00uL)
+#define INTC_ICDIPR118_TINT58                   (0x00FF0000uL)
+#define INTC_ICDIPR118_TINT59                   (0xFF000000uL)
+
+#define INTC_ICDIPR119_TINT60                   (0x000000FFuL)
+#define INTC_ICDIPR119_TINT61                   (0x0000FF00uL)
+#define INTC_ICDIPR119_TINT62                   (0x00FF0000uL)
+#define INTC_ICDIPR119_TINT63                   (0xFF000000uL)
+
+#define INTC_ICDIPR120_TINT64                   (0x000000FFuL)
+#define INTC_ICDIPR120_TINT65                   (0x0000FF00uL)
+#define INTC_ICDIPR120_TINT66                   (0x00FF0000uL)
+#define INTC_ICDIPR120_TINT67                   (0xFF000000uL)
+
+#define INTC_ICDIPR121_TINT68                   (0x000000FFuL)
+#define INTC_ICDIPR121_TINT69                   (0x0000FF00uL)
+#define INTC_ICDIPR121_TINT70                   (0x00FF0000uL)
+#define INTC_ICDIPR121_TINT71                   (0xFF000000uL)
+
+#define INTC_ICDIPR122_TINT72                   (0x000000FFuL)
+#define INTC_ICDIPR122_TINT73                   (0x0000FF00uL)
+#define INTC_ICDIPR122_TINT74                   (0x00FF0000uL)
+#define INTC_ICDIPR122_TINT75                   (0xFF000000uL)
+
+#define INTC_ICDIPR123_TINT76                   (0x000000FFuL)
+#define INTC_ICDIPR123_TINT77                   (0x0000FF00uL)
+#define INTC_ICDIPR123_TINT78                   (0x00FF0000uL)
+#define INTC_ICDIPR123_TINT79                   (0xFF000000uL)
+
+#define INTC_ICDIPR124_TINT80                   (0x000000FFuL)
+#define INTC_ICDIPR124_TINT81                   (0x0000FF00uL)
+#define INTC_ICDIPR124_TINT82                   (0x00FF0000uL)
+#define INTC_ICDIPR124_TINT83                   (0xFF000000uL)
+
+#define INTC_ICDIPR125_TINT84                   (0x000000FFuL)
+#define INTC_ICDIPR125_TINT85                   (0x0000FF00uL)
+#define INTC_ICDIPR125_TINT86                   (0x00FF0000uL)
+#define INTC_ICDIPR125_TINT87                   (0xFF000000uL)
+
+#define INTC_ICDIPR126_TINT88                   (0x000000FFuL)
+#define INTC_ICDIPR126_TINT89                   (0x0000FF00uL)
+#define INTC_ICDIPR126_TINT90                   (0x00FF0000uL)
+#define INTC_ICDIPR126_TINT91                   (0xFF000000uL)
+
+#define INTC_ICDIPR127_TINT92                   (0x000000FFuL)
+#define INTC_ICDIPR127_TINT93                   (0x0000FF00uL)
+#define INTC_ICDIPR127_TINT94                   (0x00FF0000uL)
+#define INTC_ICDIPR127_TINT95                   (0xFF000000uL)
+
+#define INTC_ICDIPR128_TINT96                   (0x000000FFuL)
+#define INTC_ICDIPR128_TINT97                   (0x0000FF00uL)
+#define INTC_ICDIPR128_TINT98                   (0x00FF0000uL)
+#define INTC_ICDIPR128_TINT99                   (0xFF000000uL)
+
+#define INTC_ICDIPR129_TINT100                  (0x000000FFuL)
+#define INTC_ICDIPR129_TINT101                  (0x0000FF00uL)
+#define INTC_ICDIPR129_TINT102                  (0x00FF0000uL)
+#define INTC_ICDIPR129_TINT103                  (0xFF000000uL)
+
+#define INTC_ICDIPR130_TINT104                  (0x000000FFuL)
+#define INTC_ICDIPR130_TINT105                  (0x0000FF00uL)
+#define INTC_ICDIPR130_TINT106                  (0x00FF0000uL)
+#define INTC_ICDIPR130_TINT107                  (0xFF000000uL)
+
+#define INTC_ICDIPR131_TINT108                  (0x000000FFuL)
+#define INTC_ICDIPR131_TINT109                  (0x0000FF00uL)
+#define INTC_ICDIPR131_TINT110                  (0x00FF0000uL)
+#define INTC_ICDIPR131_TINT111                  (0xFF000000uL)
+
+#define INTC_ICDIPR132_TINT112                  (0x000000FFuL)
+#define INTC_ICDIPR132_TINT113                  (0x0000FF00uL)
+#define INTC_ICDIPR132_TINT114                  (0x00FF0000uL)
+#define INTC_ICDIPR132_TINT115                  (0xFF000000uL)
+
+#define INTC_ICDIPR133_TINT116                  (0x000000FFuL)
+#define INTC_ICDIPR133_TINT117                  (0x0000FF00uL)
+#define INTC_ICDIPR133_TINT118                  (0x00FF0000uL)
+#define INTC_ICDIPR133_TINT119                  (0xFF000000uL)
+
+#define INTC_ICDIPR134_TINT120                  (0x000000FFuL)
+#define INTC_ICDIPR134_TINT121                  (0x0000FF00uL)
+#define INTC_ICDIPR134_TINT122                  (0x00FF0000uL)
+#define INTC_ICDIPR134_TINT123                  (0xFF000000uL)
+
+#define INTC_ICDIPR135_TINT124                  (0x000000FFuL)
+#define INTC_ICDIPR135_TINT125                  (0x0000FF00uL)
+#define INTC_ICDIPR135_TINT126                  (0x00FF0000uL)
+#define INTC_ICDIPR135_TINT127                  (0xFF000000uL)
+
+#define INTC_ICDIPR136_TINT128                  (0x000000FFuL)
+#define INTC_ICDIPR136_TINT129                  (0x0000FF00uL)
+#define INTC_ICDIPR136_TINT130                  (0x00FF0000uL)
+#define INTC_ICDIPR136_TINT131                  (0xFF000000uL)
+
+#define INTC_ICDIPR137_TINT132                  (0x000000FFuL)
+#define INTC_ICDIPR137_TINT133                  (0x0000FF00uL)
+#define INTC_ICDIPR137_TINT134                  (0x00FF0000uL)
+#define INTC_ICDIPR137_TINT135                  (0xFF000000uL)
+
+#define INTC_ICDIPR138_TINT136                  (0x000000FFuL)
+#define INTC_ICDIPR138_TINT137                  (0x0000FF00uL)
+#define INTC_ICDIPR138_TINT138                  (0x00FF0000uL)
+#define INTC_ICDIPR138_TINT139                  (0xFF000000uL)
+
+#define INTC_ICDIPR139_TINT140                  (0x000000FFuL)
+#define INTC_ICDIPR139_TINT141                  (0x0000FF00uL)
+#define INTC_ICDIPR139_TINT142                  (0x00FF0000uL)
+#define INTC_ICDIPR139_TINT143                  (0xFF000000uL)
+
+#define INTC_ICDIPR140_TINT144                  (0x000000FFuL)
+#define INTC_ICDIPR140_TINT145                  (0x0000FF00uL)
+#define INTC_ICDIPR140_TINT146                  (0x00FF0000uL)
+#define INTC_ICDIPR140_TINT147                  (0xFF000000uL)
+
+#define INTC_ICDIPR141_TINT148                  (0x000000FFuL)
+#define INTC_ICDIPR141_TINT149                  (0x0000FF00uL)
+#define INTC_ICDIPR141_TINT150                  (0x00FF0000uL)
+#define INTC_ICDIPR141_TINT151                  (0xFF000000uL)
+
+#define INTC_ICDIPR142_TINT152                  (0x000000FFuL)
+#define INTC_ICDIPR142_TINT153                  (0x0000FF00uL)
+#define INTC_ICDIPR142_TINT154                  (0x00FF0000uL)
+#define INTC_ICDIPR142_TINT155                  (0xFF000000uL)
+
+#define INTC_ICDIPR143_TINT156                  (0x000000FFuL)
+#define INTC_ICDIPR143_TINT157                  (0x0000FF00uL)
+#define INTC_ICDIPR143_TINT158                  (0x00FF0000uL)
+#define INTC_ICDIPR143_TINT159                  (0xFF000000uL)
+
+#define INTC_ICDIPR144_TINT160                  (0x000000FFuL)
+#define INTC_ICDIPR144_TINT161                  (0x0000FF00uL)
+#define INTC_ICDIPR144_TINT162                  (0x00FF0000uL)
+#define INTC_ICDIPR144_TINT163                  (0xFF000000uL)
+
+#define INTC_ICDIPR145_TINT164                  (0x000000FFuL)
+#define INTC_ICDIPR145_TINT165                  (0x0000FF00uL)
+#define INTC_ICDIPR145_TINT166                  (0x00FF0000uL)
+#define INTC_ICDIPR145_TINT167                  (0xFF000000uL)
+
+#define INTC_ICDIPR146_TINT168                  (0x000000FFuL)
+#define INTC_ICDIPR146_TINT169                  (0x0000FF00uL)
+#define INTC_ICDIPR146_TINT170                  (0x00FF0000uL)
+
+#define INTC_ICDIPTR0_SW0                       (0x000000FFuL)
+#define INTC_ICDIPTR0_SW1                       (0x0000FF00uL)
+#define INTC_ICDIPTR0_SW2                       (0x00FF0000uL)
+#define INTC_ICDIPTR0_SW3                       (0xFF000000uL)
+
+#define INTC_ICDIPTR1_SW4                       (0x000000FFuL)
+#define INTC_ICDIPTR1_SW5                       (0x0000FF00uL)
+#define INTC_ICDIPTR1_SW6                       (0x00FF0000uL)
+#define INTC_ICDIPTR1_SW7                       (0xFF000000uL)
+
+#define INTC_ICDIPTR2_SW8                       (0x000000FFuL)
+#define INTC_ICDIPTR2_SW9                       (0x0000FF00uL)
+#define INTC_ICDIPTR2_SW10                      (0x00FF0000uL)
+#define INTC_ICDIPTR2_SW11                      (0xFF000000uL)
+
+#define INTC_ICDIPTR3_SW12                      (0x000000FFuL)
+#define INTC_ICDIPTR3_SW13                      (0x0000FF00uL)
+#define INTC_ICDIPTR3_SW14                      (0x00FF0000uL)
+#define INTC_ICDIPTR3_SW15                      (0xFF000000uL)
+
+#define INTC_ICDIPTR4_PMUIRQ0                   (0x000000FFuL)
+#define INTC_ICDIPTR4_COMMRX0                   (0x0000FF00uL)
+#define INTC_ICDIPTR4_COMMTX0                   (0x00FF0000uL)
+#define INTC_ICDIPTR4_CTIIRQ0                   (0xFF000000uL)
+
+#define INTC_ICDIPTR8_IRQ0                      (0x000000FFuL)
+#define INTC_ICDIPTR8_IRQ1                      (0x0000FF00uL)
+#define INTC_ICDIPTR8_IRQ2                      (0x00FF0000uL)
+#define INTC_ICDIPTR8_IRQ3                      (0xFF000000uL)
+
+#define INTC_ICDIPTR9_IRQ4                      (0x000000FFuL)
+#define INTC_ICDIPTR9_IRQ5                      (0x0000FF00uL)
+#define INTC_ICDIPTR9_IRQ6                      (0x00FF0000uL)
+#define INTC_ICDIPTR9_IRQ7                      (0xFF000000uL)
+
+#define INTC_ICDIPTR10_PL310ERR                 (0x000000FFuL)
+#define INTC_ICDIPTR10_DMAINT0                  (0x0000FF00uL)
+#define INTC_ICDIPTR10_DMAINT1                  (0x00FF0000uL)
+#define INTC_ICDIPTR10_DMAINT2                  (0xFF000000uL)
+
+#define INTC_ICDIPTR11_DMAINT3                  (0x000000FFuL)
+#define INTC_ICDIPTR11_DMAINT4                  (0x0000FF00uL)
+#define INTC_ICDIPTR11_DMAINT5                  (0x00FF0000uL)
+#define INTC_ICDIPTR11_DMAINT6                  (0xFF000000uL)
+
+#define INTC_ICDIPTR12_DMAINT7                  (0x000000FFuL)
+#define INTC_ICDIPTR12_DMAINT8                  (0x0000FF00uL)
+#define INTC_ICDIPTR12_DMAINT9                  (0x00FF0000uL)
+#define INTC_ICDIPTR12_DMAINT10                 (0xFF000000uL)
+
+#define INTC_ICDIPTR13_DMAINT11                 (0x000000FFuL)
+#define INTC_ICDIPTR13_DMAINT12                 (0x0000FF00uL)
+#define INTC_ICDIPTR13_DMAINT13                 (0x00FF0000uL)
+#define INTC_ICDIPTR13_DMAINT14                 (0xFF000000uL)
+
+#define INTC_ICDIPTR14_DMAINT15                 (0x000000FFuL)
+#define INTC_ICDIPTR14_DMAERR                   (0x0000FF00uL)
+
+#define INTC_ICDIPTR18_USBI0                    (0x0000FF00uL)
+#define INTC_ICDIPTR18_USBI1                    (0x00FF0000uL)
+#define INTC_ICDIPTR18_S0_VI_VSYNC0             (0xFF000000uL)
+
+#define INTC_ICDIPTR19_S0_LO_VSYNC0             (0x000000FFuL)
+#define INTC_ICDIPTR19_S0_VSYNCERR0             (0x0000FF00uL)
+#define INTC_ICDIPTR19_GR3_VLINE0               (0x00FF0000uL)
+#define INTC_ICDIPTR19_S0_VFIELD0               (0xFF000000uL)
+
+#define INTC_ICDIPTR20_IV1_VBUFERR0             (0x000000FFuL)
+#define INTC_ICDIPTR20_IV3_VBUFERR0             (0x0000FF00uL)
+#define INTC_ICDIPTR20_IV5_VBUFERR0             (0x00FF0000uL)
+#define INTC_ICDIPTR20_IV6_VBUFERR0             (0xFF000000uL)
+
+#define INTC_ICDIPTR21_S0_WLINE0                (0x000000FFuL)
+#define INTC_ICDIPTR21_S1_VI_VSYNC0             (0x0000FF00uL)
+#define INTC_ICDIPTR21_S1_LO_VSYNC0             (0x00FF0000uL)
+#define INTC_ICDIPTR21_S1_VSYNCERR0             (0xFF000000uL)
+
+#define INTC_ICDIPTR22_S1_VFIELD0               (0x000000FFuL)
+#define INTC_ICDIPTR22_IV2_VBUFERR0             (0x0000FF00uL)
+#define INTC_ICDIPTR22_IV4_VBUFERR0             (0x00FF0000uL)
+#define INTC_ICDIPTR22_S1_WLINE0                (0xFF000000uL)
+
+#define INTC_ICDIPTR23_OIR_VI_VSYNC0            (0x000000FFuL)
+#define INTC_ICDIPTR23_OIR_LO_VSYNC0            (0x0000FF00uL)
+#define INTC_ICDIPTR23_OIR_VSYNCERR0            (0x00FF0000uL)
+#define INTC_ICDIPTR23_OIR_VFIELD0              (0xFF000000uL)
+
+#define INTC_ICDIPTR24_IV7_VBUFERR0             (0x000000FFuL)
+#define INTC_ICDIPTR24_IV8_VBUFERR0             (0x0000FF00uL)
+#define INTC_ICDIPTR24_S0_VI_VSYNC1             (0xFF000000uL)
+
+#define INTC_ICDIPTR25_S0_LO_VSYNC1             (0x000000FFuL)
+#define INTC_ICDIPTR25_S0_VSYNCERR1             (0x0000FF00uL)
+#define INTC_ICDIPTR25_GR3_VLINE1               (0x00FF0000uL)
+#define INTC_ICDIPTR25_S0_VFIELD1               (0xFF000000uL)
+
+#define INTC_ICDIPTR26_IV1_VBUFERR1             (0x000000FFuL)
+#define INTC_ICDIPTR26_IV3_VBUFERR1             (0x0000FF00uL)
+#define INTC_ICDIPTR26_IV5_VBUFERR1             (0x00FF0000uL)
+#define INTC_ICDIPTR26_IV6_VBUFERR1             (0xFF000000uL)
+
+#define INTC_ICDIPTR27_S0_WLINE1                (0x000000FFuL)
+#define INTC_ICDIPTR27_S1_VI_VSYNC1             (0x0000FF00uL)
+#define INTC_ICDIPTR27_S1_LO_VSYNC1             (0x00FF0000uL)
+#define INTC_ICDIPTR27_S1_VSYNCERR1             (0xFF000000uL)
+
+#define INTC_ICDIPTR28_S1_VFIELD1               (0x000000FFuL)
+#define INTC_ICDIPTR28_IV2_VBUFERR1             (0x0000FF00uL)
+#define INTC_ICDIPTR28_IV4_VBUFERR1             (0x00FF0000uL)
+#define INTC_ICDIPTR28_S1_WLINE1                (0xFF000000uL)
+
+#define INTC_ICDIPTR29_OIR_VI_VSYNC1            (0x000000FFuL)
+#define INTC_ICDIPTR29_OIR_LO_VSYNC1            (0x0000FF00uL)
+#define INTC_ICDIPTR29_OIR_VLINE1               (0x00FF0000uL)
+#define INTC_ICDIPTR29_OIR_VFIELD1              (0xFF000000uL)
+
+#define INTC_ICDIPTR30_IV7_VBUFERR1             (0x000000FFuL)
+#define INTC_ICDIPTR30_IV8_VBUFERR1             (0x0000FF00uL)
+#define INTC_ICDIPTR30_IMRDI                    (0xFF000000uL)
+
+#define INTC_ICDIPTR31_IMR2I0                   (0x000000FFuL)
+#define INTC_ICDIPTR31_IMR2I1                   (0x0000FF00uL)
+#define INTC_ICDIPTR31_JEDI                     (0x00FF0000uL)
+#define INTC_ICDIPTR31_JDTI                     (0xFF000000uL)
+
+#define INTC_ICDIPTR32_CMP0                     (0x000000FFuL)
+#define INTC_ICDIPTR32_CMP1                     (0x0000FF00uL)
+#define INTC_ICDIPTR32_INT0                     (0x00FF0000uL)
+#define INTC_ICDIPTR32_INT1                     (0xFF000000uL)
+
+#define INTC_ICDIPTR33_INT2                     (0x000000FFuL)
+#define INTC_ICDIPTR33_INT3                     (0x0000FF00uL)
+#define INTC_ICDIPTR33_OSTM0TINT                (0x00FF0000uL)
+#define INTC_ICDIPTR33_OSTM1TINT                (0xFF000000uL)
+
+#define INTC_ICDIPTR34_CMI                      (0x000000FFuL)
+#define INTC_ICDIPTR34_WTOUT                    (0x0000FF00uL)
+#define INTC_ICDIPTR34_ITI                      (0x00FF0000uL)
+#define INTC_ICDIPTR34_TGI0A                    (0xFF000000uL)
+
+#define INTC_ICDIPTR35_TGI0B                    (0x000000FFuL)
+#define INTC_ICDIPTR35_TGI0C                    (0x0000FF00uL)
+#define INTC_ICDIPTR35_TGI0D                    (0x00FF0000uL)
+#define INTC_ICDIPTR35_TGI0V                    (0xFF000000uL)
+
+#define INTC_ICDIPTR36_TGI0E                    (0x000000FFuL)
+#define INTC_ICDIPTR36_TGI0F                    (0x0000FF00uL)
+#define INTC_ICDIPTR36_TGI1A                    (0x00FF0000uL)
+#define INTC_ICDIPTR36_TGI1B                    (0xFF000000uL)
+
+#define INTC_ICDIPTR37_TGI1V                    (0x000000FFuL)
+#define INTC_ICDIPTR37_TGI1U                    (0x0000FF00uL)
+#define INTC_ICDIPTR37_TGI2A                    (0x00FF0000uL)
+#define INTC_ICDIPTR37_TGI2B                    (0xFF000000uL)
+
+#define INTC_ICDIPTR38_TGI2V                    (0x000000FFuL)
+#define INTC_ICDIPTR38_TGI2U                    (0x0000FF00uL)
+#define INTC_ICDIPTR38_TGI3A                    (0x00FF0000uL)
+#define INTC_ICDIPTR38_TGI3B                    (0xFF000000uL)
+
+#define INTC_ICDIPTR39_TGI3C                    (0x000000FFuL)
+#define INTC_ICDIPTR39_TGI3D                    (0x0000FF00uL)
+#define INTC_ICDIPTR39_TGI3V                    (0x00FF0000uL)
+#define INTC_ICDIPTR39_TGI4A                    (0xFF000000uL)
+
+#define INTC_ICDIPTR40_TGI4B                    (0x000000FFuL)
+#define INTC_ICDIPTR40_TGI4C                    (0x0000FF00uL)
+#define INTC_ICDIPTR40_TGI4D                    (0x00FF0000uL)
+#define INTC_ICDIPTR40_TGI4V                    (0xFF000000uL)
+
+#define INTC_ICDIPTR41_CMI1                     (0x000000FFuL)
+#define INTC_ICDIPTR41_CMI2                     (0x0000FF00uL)
+#define INTC_ICDIPTR41_SGDEI0                   (0x00FF0000uL)
+#define INTC_ICDIPTR41_SGDEI1                   (0xFF000000uL)
+
+#define INTC_ICDIPTR42_SGDEI2                   (0x000000FFuL)
+#define INTC_ICDIPTR42_SGDEI3                   (0x0000FF00uL)
+#define INTC_ICDIPTR42_ADI                      (0x00FF0000uL)
+#define INTC_ICDIPTR42_LMTI                     (0xFF000000uL)
+
+#define INTC_ICDIPTR43_SSII0                    (0x000000FFuL)
+#define INTC_ICDIPTR43_SSIRXI0                  (0x0000FF00uL)
+#define INTC_ICDIPTR43_SSITXI0                  (0x00FF0000uL)
+#define INTC_ICDIPTR43_SSII1                    (0xFF000000uL)
+
+#define INTC_ICDIPTR44_SSIRXI1                  (0x000000FFuL)
+#define INTC_ICDIPTR44_SSITXI1                  (0x0000FF00uL)
+#define INTC_ICDIPTR44_SSII2                    (0x00FF0000uL)
+#define INTC_ICDIPTR44_SSIRTI2                  (0xFF000000uL)
+
+#define INTC_ICDIPTR45_SSII3                    (0x000000FFuL)
+#define INTC_ICDIPTR45_SSIRXI3                  (0x0000FF00uL)
+#define INTC_ICDIPTR45_SSITXI3                  (0x00FF0000uL)
+#define INTC_ICDIPTR45_SSII4                    (0xFF000000uL)
+
+#define INTC_ICDIPTR46_SSIRTI4                  (0x000000FFuL)
+#define INTC_ICDIPTR46_SSII5                    (0x0000FF00uL)
+#define INTC_ICDIPTR46_SSIRXI5                  (0x00FF0000uL)
+#define INTC_ICDIPTR46_SSITXI5                  (0xFF000000uL)
+
+#define INTC_ICDIPTR47_SPDIFI                   (0x000000FFuL)
+#define INTC_ICDIPTR47_INTIICTEI0               (0x0000FF00uL)
+#define INTC_ICDIPTR47_INTIICRI0                (0x00FF0000uL)
+#define INTC_ICDIPTR47_INTIICTI0                (0xFF000000uL)
+
+#define INTC_ICDIPTR48_INTIICSPI0               (0x000000FFuL)
+#define INTC_ICDIPTR48_INTIICSTI0               (0x0000FF00uL)
+#define INTC_ICDIPTR48_INTIICNAKI0              (0x00FF0000uL)
+#define INTC_ICDIPTR48_INTIICALI0               (0xFF000000uL)
+
+#define INTC_ICDIPTR49_INTIICTMOI0              (0x000000FFuL)
+#define INTC_ICDIPTR49_INTIICTEI1               (0x0000FF00uL)
+#define INTC_ICDIPTR49_INTIICRI1                (0x00FF0000uL)
+#define INTC_ICDIPTR49_INTIICTI1                (0xFF000000uL)
+
+#define INTC_ICDIPTR50_INTIICSPI1               (0x000000FFuL)
+#define INTC_ICDIPTR50_INTIICSTI1               (0x0000FF00uL)
+#define INTC_ICDIPTR50_INTIICNAKI1              (0x00FF0000uL)
+#define INTC_ICDIPTR50_INTIICALI1               (0xFF000000uL)
+
+#define INTC_ICDIPTR51_INTIICTMOI1              (0x000000FFuL)
+#define INTC_ICDIPTR51_INTIICTEI2               (0x0000FF00uL)
+#define INTC_ICDIPTR51_INTIICRI2                (0x00FF0000uL)
+#define INTC_ICDIPTR51_INTIICTI2                (0xFF000000uL)
+
+#define INTC_ICDIPTR52_INTIICSPI2               (0x000000FFuL)
+#define INTC_ICDIPTR52_INTIICSTI2               (0x0000FF00uL)
+#define INTC_ICDIPTR52_INTIICNAKI2              (0x00FF0000uL)
+#define INTC_ICDIPTR52_INTIICALI2               (0xFF000000uL)
+
+#define INTC_ICDIPTR53_INTIICTMOI2              (0x000000FFuL)
+#define INTC_ICDIPTR53_INTIICTEI3               (0x0000FF00uL)
+#define INTC_ICDIPTR53_INTIICRI3                (0x00FF0000uL)
+#define INTC_ICDIPTR53_INTIICTI3                (0xFF000000uL)
+
+#define INTC_ICDIPTR54_INTIICSPI3               (0x000000FFuL)
+#define INTC_ICDIPTR54_INTIICSTI3               (0x0000FF00uL)
+#define INTC_ICDIPTR54_INTIICNAKI3              (0x00FF0000uL)
+#define INTC_ICDIPTR54_INTIICALI3               (0xFF000000uL)
+
+#define INTC_ICDIPTR55_INTIICTMOI3              (0x000000FFuL)
+#define INTC_ICDIPTR55_BRI0                     (0x0000FF00uL)
+#define INTC_ICDIPTR55_ERI0                     (0x00FF0000uL)
+#define INTC_ICDIPTR55_RXI0                     (0xFF000000uL)
+
+#define INTC_ICDIPTR56_TXI0                     (0x000000FFuL)
+#define INTC_ICDIPTR56_BRI1                     (0x0000FF00uL)
+#define INTC_ICDIPTR56_ERI1                     (0x00FF0000uL)
+#define INTC_ICDIPTR56_RXI1                     (0xFF000000uL)
+
+#define INTC_ICDIPTR57_TXI1                     (0x000000FFuL)
+#define INTC_ICDIPTR57_BRI2                     (0x0000FF00uL)
+#define INTC_ICDIPTR57_ERI2                     (0x00FF0000uL)
+#define INTC_ICDIPTR57_RXI2                     (0xFF000000uL)
+
+#define INTC_ICDIPTR58_TXI2                     (0x000000FFuL)
+#define INTC_ICDIPTR58_BRI3                     (0x0000FF00uL)
+#define INTC_ICDIPTR58_ERI3                     (0x00FF0000uL)
+#define INTC_ICDIPTR58_RXI3                     (0xFF000000uL)
+
+#define INTC_ICDIPTR59_TXI3                     (0x000000FFuL)
+#define INTC_ICDIPTR59_BRI4                     (0x0000FF00uL)
+#define INTC_ICDIPTR59_ERI4                     (0x00FF0000uL)
+#define INTC_ICDIPTR59_RXI4                     (0xFF000000uL)
+
+#define INTC_ICDIPTR60_TXI4                     (0x000000FFuL)
+#define INTC_ICDIPTR60_BRI5                     (0x0000FF00uL)
+#define INTC_ICDIPTR60_ERI5                     (0x00FF0000uL)
+#define INTC_ICDIPTR60_RXI5                     (0xFF000000uL)
+
+#define INTC_ICDIPTR61_TXI5                     (0x000000FFuL)
+#define INTC_ICDIPTR61_BRI6                     (0x0000FF00uL)
+#define INTC_ICDIPTR61_ERI6                     (0x00FF0000uL)
+#define INTC_ICDIPTR61_RXI6                     (0xFF000000uL)
+
+#define INTC_ICDIPTR62_TXI6                     (0x000000FFuL)
+#define INTC_ICDIPTR62_BRI7                     (0x0000FF00uL)
+#define INTC_ICDIPTR62_ERI7                     (0x00FF0000uL)
+#define INTC_ICDIPTR62_RXI7                     (0xFF000000uL)
+
+#define INTC_ICDIPTR63_TXI7                     (0x000000FFuL)
+#define INTC_ICDIPTR63_INTRCANGERR              (0x0000FF00uL)
+#define INTC_ICDIPTR63_INTRCANGRECC             (0x00FF0000uL)
+#define INTC_ICDIPTR63_INTRCAN0REC              (0xFF000000uL)
+
+#define INTC_ICDIPTR64_INTRCAN0ERR              (0x000000FFuL)
+#define INTC_ICDIPTR64_INTRCAN0TRX              (0x0000FF00uL)
+#define INTC_ICDIPTR64_INTRCAN1REC              (0x00FF0000uL)
+#define INTC_ICDIPTR64_INTRCAN1ERR              (0xFF000000uL)
+
+#define INTC_ICDIPTR65_INTRCAN1TRX              (0x000000FFuL)
+#define INTC_ICDIPTR65_INTRCAN2REC              (0x0000FF00uL)
+#define INTC_ICDIPTR65_INTRCAN2ERR              (0x00FF0000uL)
+#define INTC_ICDIPTR65_INTRCAN2TRX              (0xFF000000uL)
+
+#define INTC_ICDIPTR66_INTRCAN3REC              (0x000000FFuL)
+#define INTC_ICDIPTR66_INTRCAN3ERR              (0x0000FF00uL)
+#define INTC_ICDIPTR66_INTRCAN3TRX              (0x00FF0000uL)
+#define INTC_ICDIPTR66_INTRCAN4REC              (0xFF000000uL)
+
+#define INTC_ICDIPTR67_INTRCAN4ERR              (0x000000FFuL)
+#define INTC_ICDIPTR67_INTRCAN4TRX              (0x0000FF00uL)
+#define INTC_ICDIPTR67_SPEI0                    (0x00FF0000uL)
+#define INTC_ICDIPTR67_SPRI0                    (0xFF000000uL)
+
+#define INTC_ICDIPTR68_SPTI0                    (0x000000FFuL)
+#define INTC_ICDIPTR68_SPEI1                    (0x0000FF00uL)
+#define INTC_ICDIPTR68_SPRI1                    (0x00FF0000uL)
+#define INTC_ICDIPTR68_SPTI1                    (0xFF000000uL)
+
+#define INTC_ICDIPTR69_SPEI2                    (0x000000FFuL)
+#define INTC_ICDIPTR69_SPRI2                    (0x0000FF00uL)
+#define INTC_ICDIPTR69_SPTI2                    (0x00FF0000uL)
+#define INTC_ICDIPTR69_SPEI3                    (0xFF000000uL)
+
+#define INTC_ICDIPTR70_SPRI3                    (0x000000FFuL)
+#define INTC_ICDIPTR70_SPTI3                    (0x0000FF00uL)
+#define INTC_ICDIPTR70_SPEI4                    (0x00FF0000uL)
+#define INTC_ICDIPTR70_SPRI4                    (0xFF000000uL)
+
+#define INTC_ICDIPTR71_SPTI4                    (0x000000FFuL)
+#define INTC_ICDIPTR71_IEBBTD                   (0x0000FF00uL)
+#define INTC_ICDIPTR71_IEBBTERR                 (0x00FF0000uL)
+#define INTC_ICDIPTR71_IEBBTSTA                 (0xFF000000uL)
+
+#define INTC_ICDIPTR72_IEBBTV                   (0x000000FFuL)
+#define INTC_ICDIPTR72_ISY                      (0x0000FF00uL)
+#define INTC_ICDIPTR72_IERR                     (0x00FF0000uL)
+#define INTC_ICDIPTR72_ITARG                    (0xFF000000uL)
+
+#define INTC_ICDIPTR73_ISEC                     (0x000000FFuL)
+#define INTC_ICDIPTR73_IBUF                     (0x0000FF00uL)
+#define INTC_ICDIPTR73_IREADY                   (0x00FF0000uL)
+#define INTC_ICDIPTR73_FLSTE                    (0xFF000000uL)
+
+#define INTC_ICDIPTR74_FLTENDI                  (0x000000FFuL)
+#define INTC_ICDIPTR74_FLTREQ0I                 (0x0000FF00uL)
+#define INTC_ICDIPTR74_FLTREQ1I                 (0x00FF0000uL)
+#define INTC_ICDIPTR74_MMC0                     (0xFF000000uL)
+
+#define INTC_ICDIPTR75_MMC1                     (0x000000FFuL)
+#define INTC_ICDIPTR75_MMC2                     (0x0000FF00uL)
+#define INTC_ICDIPTR75_SDHI0_3                  (0x00FF0000uL)
+#define INTC_ICDIPTR75_SDHI0_0                  (0xFF000000uL)
+
+#define INTC_ICDIPTR76_SDHI0_1                  (0x000000FFuL)
+#define INTC_ICDIPTR76_SDHI1_3                  (0x0000FF00uL)
+#define INTC_ICDIPTR76_SDHI1_0                  (0x00FF0000uL)
+#define INTC_ICDIPTR76_SDHI1_1                  (0xFF000000uL)
+
+#define INTC_ICDIPTR77_ARM                      (0x000000FFuL)
+#define INTC_ICDIPTR77_PRD                      (0x0000FF00uL)
+#define INTC_ICDIPTR77_CUP                      (0x00FF0000uL)
+#define INTC_ICDIPTR77_SCUAI0                   (0xFF000000uL)
+
+#define INTC_ICDIPTR78_SCUAI1                   (0x000000FFuL)
+#define INTC_ICDIPTR78_SCUFDI0                  (0x0000FF00uL)
+#define INTC_ICDIPTR78_SCUFDI1                  (0x00FF0000uL)
+#define INTC_ICDIPTR78_SCUFDI2                  (0xFF000000uL)
+
+#define INTC_ICDIPTR79_SCUFDI3                  (0x000000FFuL)
+#define INTC_ICDIPTR79_SCUFUI0                  (0x0000FF00uL)
+#define INTC_ICDIPTR79_SCUFUI1                  (0x00FF0000uL)
+#define INTC_ICDIPTR79_SCUFUI2                  (0xFF000000uL)
+
+#define INTC_ICDIPTR80_SCUFUI3                  (0x000000FFuL)
+#define INTC_ICDIPTR80_SCUDVI0                  (0x0000FF00uL)
+#define INTC_ICDIPTR80_SCUDVI1                  (0x00FF0000uL)
+#define INTC_ICDIPTR80_SCUDVI2                  (0xFF000000uL)
+
+#define INTC_ICDIPTR81_SCUDVI3                  (0x000000FFuL)
+#define INTC_ICDIPTR81_MLB_CINT                 (0x0000FF00uL)
+#define INTC_ICDIPTR81_MLB_SINT                 (0x00FF0000uL)
+#define INTC_ICDIPTR81_DRC0                     (0xFF000000uL)
+
+#define INTC_ICDIPTR82_DRC1                     (0x000000FFuL)
+#define INTC_ICDIPTR82_LINI0_INT_T              (0xFF000000uL)
+
+#define INTC_ICDIPTR83_LINI0_INT_R              (0x000000FFuL)
+#define INTC_ICDIPTR83_LINI0_INT_S              (0x0000FF00uL)
+#define INTC_ICDIPTR83_LINI0_INT_M              (0x00FF0000uL)
+#define INTC_ICDIPTR83_LINI1_INT_T              (0xFF000000uL)
+
+#define INTC_ICDIPTR84_LINI1_INT_R              (0x000000FFuL)
+#define INTC_ICDIPTR84_LINI1_INT_S              (0x0000FF00uL)
+#define INTC_ICDIPTR84_LINI1_INT_M              (0x00FF0000uL)
+
+#define INTC_ICDIPTR86_ERI0                     (0xFF000000uL)
+
+#define INTC_ICDIPTR87_RXI0                     (0x000000FFuL)
+#define INTC_ICDIPTR87_TXI0                     (0x0000FF00uL)
+#define INTC_ICDIPTR87_TEI0                     (0x00FF0000uL)
+#define INTC_ICDIPTR87_ERI1                     (0xFF000000uL)
+
+#define INTC_ICDIPTR88_RXI1                     (0x000000FFuL)
+#define INTC_ICDIPTR88_TXI1                     (0x0000FF00uL)
+#define INTC_ICDIPTR88_TEI1                     (0x00FF0000uL)
+#define INTC_ICDIPTR88_AVBI_DATA                (0xFF000000uL)
+
+#define INTC_ICDIPTR89_AVBI_ERROR               (0x000000FFuL)
+#define INTC_ICDIPTR89_AVBI_MANAGE              (0x0000FF00uL)
+#define INTC_ICDIPTR89_AVBI_MAC                 (0x00FF0000uL)
+#define INTC_ICDIPTR89_ETHERI                   (0xFF000000uL)
+
+#define INTC_ICDIPTR91_CEUI                     (0x000000FFuL)
+
+#define INTC_ICDIPTR95_H2XMLB_ERRINT            (0x0000FF00uL)
+#define INTC_ICDIPTR95_H2XIC1_ERRINT            (0x00FF0000uL)
+#define INTC_ICDIPTR95_X2HPERI1_ERRINT          (0xFF000000uL)
+
+#define INTC_ICDIPTR96_X2HPERI2_ERRINT          (0x000000FFuL)
+#define INTC_ICDIPTR96_X2HPERI34_ERRINT         (0x0000FF00uL)
+#define INTC_ICDIPTR96_X2HPERI5_ERRINT          (0x00FF0000uL)
+#define INTC_ICDIPTR96_X2HPERI67_ERRINT         (0xFF000000uL)
+
+#define INTC_ICDIPTR97_X2HDBGR_ERRINT           (0x000000FFuL)
+#define INTC_ICDIPTR97_X2HBSC_ERRINT            (0x0000FF00uL)
+#define INTC_ICDIPTR97_X2HSPI1_ERRINT           (0x00FF0000uL)
+#define INTC_ICDIPTR97_X2HSPI2_ERRINT           (0xFF000000uL)
+
+#define INTC_ICDIPTR98_PRRI                     (0x000000FFuL)
+#define INTC_ICDIPTR98_IFEI0                    (0x0000FF00uL)
+#define INTC_ICDIPTR98_OFFI0                    (0x00FF0000uL)
+#define INTC_ICDIPTR98_PFVEI0                   (0xFF000000uL)
+
+#define INTC_ICDIPTR99_IFEI1                    (0x000000FFuL)
+#define INTC_ICDIPTR99_OFFI1                    (0x0000FF00uL)
+#define INTC_ICDIPTR99_PFVEI1                   (0x00FF0000uL)
+
+#define INTC_ICDIPTR104_TINT0                   (0x000000FFuL)
+#define INTC_ICDIPTR104_TINT1                   (0x0000FF00uL)
+#define INTC_ICDIPTR104_TINT2                   (0x00FF0000uL)
+#define INTC_ICDIPTR104_TINT3                   (0xFF000000uL)
+
+#define INTC_ICDIPTR105_TINT4                   (0x000000FFuL)
+#define INTC_ICDIPTR105_TINT5                   (0x0000FF00uL)
+#define INTC_ICDIPTR105_TINT6                   (0x00FF0000uL)
+#define INTC_ICDIPTR105_TINT7                   (0xFF000000uL)
+
+#define INTC_ICDIPTR106_TINT8                   (0x000000FFuL)
+#define INTC_ICDIPTR106_TINT9                   (0x0000FF00uL)
+#define INTC_ICDIPTR106_TINT10                  (0x00FF0000uL)
+#define INTC_ICDIPTR106_TINT11                  (0xFF000000uL)
+
+#define INTC_ICDIPTR107_TINT12                  (0x000000FFuL)
+#define INTC_ICDIPTR107_TINT13                  (0x0000FF00uL)
+#define INTC_ICDIPTR107_TINT14                  (0x00FF0000uL)
+#define INTC_ICDIPTR107_TINT15                  (0xFF000000uL)
+
+#define INTC_ICDIPTR108_TINT16                  (0x000000FFuL)
+#define INTC_ICDIPTR108_TINT17                  (0x0000FF00uL)
+#define INTC_ICDIPTR108_TINT18                  (0x00FF0000uL)
+#define INTC_ICDIPTR108_TINT19                  (0xFF000000uL)
+
+#define INTC_ICDIPTR109_TINT20                  (0x000000FFuL)
+#define INTC_ICDIPTR109_TINT21                  (0x0000FF00uL)
+#define INTC_ICDIPTR109_TINT22                  (0x00FF0000uL)
+#define INTC_ICDIPTR109_TINT23                  (0xFF000000uL)
+
+#define INTC_ICDIPTR110_TINT24                  (0x000000FFuL)
+#define INTC_ICDIPTR110_TINT25                  (0x0000FF00uL)
+#define INTC_ICDIPTR110_TINT26                  (0x00FF0000uL)
+#define INTC_ICDIPTR110_TINT27                  (0xFF000000uL)
+
+#define INTC_ICDIPTR111_TINT28                  (0x000000FFuL)
+#define INTC_ICDIPTR111_TINT29                  (0x0000FF00uL)
+#define INTC_ICDIPTR111_TINT30                  (0x00FF0000uL)
+#define INTC_ICDIPTR111_TINT31                  (0xFF000000uL)
+
+#define INTC_ICDIPTR112_TINT32                  (0x000000FFuL)
+#define INTC_ICDIPTR112_TINT33                  (0x0000FF00uL)
+#define INTC_ICDIPTR112_TINT34                  (0x00FF0000uL)
+#define INTC_ICDIPTR112_TINT35                  (0xFF000000uL)
+
+#define INTC_ICDIPTR113_TINT36                  (0x000000FFuL)
+#define INTC_ICDIPTR113_TINT37                  (0x0000FF00uL)
+#define INTC_ICDIPTR113_TINT38                  (0x00FF0000uL)
+#define INTC_ICDIPTR113_TINT39                  (0xFF000000uL)
+
+#define INTC_ICDIPTR114_TINT40                  (0x000000FFuL)
+#define INTC_ICDIPTR114_TINT41                  (0x0000FF00uL)
+#define INTC_ICDIPTR114_TINT42                  (0x00FF0000uL)
+#define INTC_ICDIPTR114_TINT43                  (0xFF000000uL)
+
+#define INTC_ICDIPTR115_TINT44                  (0x000000FFuL)
+#define INTC_ICDIPTR115_TINT45                  (0x0000FF00uL)
+#define INTC_ICDIPTR115_TINT46                  (0x00FF0000uL)
+#define INTC_ICDIPTR115_TINT47                  (0xFF000000uL)
+
+#define INTC_ICDIPTR116_TINT48                  (0x000000FFuL)
+#define INTC_ICDIPTR116_TINT49                  (0x0000FF00uL)
+#define INTC_ICDIPTR116_TINT50                  (0x00FF0000uL)
+#define INTC_ICDIPTR116_TINT51                  (0xFF000000uL)
+
+#define INTC_ICDIPTR117_TINT52                  (0x000000FFuL)
+#define INTC_ICDIPTR117_TINT53                  (0x0000FF00uL)
+#define INTC_ICDIPTR117_TINT54                  (0x00FF0000uL)
+#define INTC_ICDIPTR117_TINT55                  (0xFF000000uL)
+
+#define INTC_ICDIPTR118_TINT56                  (0x000000FFuL)
+#define INTC_ICDIPTR118_TINT57                  (0x0000FF00uL)
+#define INTC_ICDIPTR118_TINT58                  (0x00FF0000uL)
+#define INTC_ICDIPTR118_TINT59                  (0xFF000000uL)
+
+#define INTC_ICDIPTR119_TINT60                  (0x000000FFuL)
+#define INTC_ICDIPTR119_TINT61                  (0x0000FF00uL)
+#define INTC_ICDIPTR119_TINT62                  (0x00FF0000uL)
+#define INTC_ICDIPTR119_TINT63                  (0xFF000000uL)
+
+#define INTC_ICDIPTR120_TINT64                  (0x000000FFuL)
+#define INTC_ICDIPTR120_TINT65                  (0x0000FF00uL)
+#define INTC_ICDIPTR120_TINT66                  (0x00FF0000uL)
+#define INTC_ICDIPTR120_TINT67                  (0xFF000000uL)
+
+#define INTC_ICDIPTR121_TINT68                  (0x000000FFuL)
+#define INTC_ICDIPTR121_TINT69                  (0x0000FF00uL)
+#define INTC_ICDIPTR121_TINT70                  (0x00FF0000uL)
+#define INTC_ICDIPTR121_TINT71                  (0xFF000000uL)
+
+#define INTC_ICDIPTR122_TINT72                  (0x000000FFuL)
+#define INTC_ICDIPTR122_TINT73                  (0x0000FF00uL)
+#define INTC_ICDIPTR122_TINT74                  (0x00FF0000uL)
+#define INTC_ICDIPTR122_TINT75                  (0xFF000000uL)
+
+#define INTC_ICDIPTR123_TINT76                  (0x000000FFuL)
+#define INTC_ICDIPTR123_TINT77                  (0x0000FF00uL)
+#define INTC_ICDIPTR123_TINT78                  (0x00FF0000uL)
+#define INTC_ICDIPTR123_TINT79                  (0xFF000000uL)
+
+#define INTC_ICDIPTR124_TINT80                  (0x000000FFuL)
+#define INTC_ICDIPTR124_TINT81                  (0x0000FF00uL)
+#define INTC_ICDIPTR124_TINT82                  (0x00FF0000uL)
+#define INTC_ICDIPTR124_TINT83                  (0xFF000000uL)
+
+#define INTC_ICDIPTR125_TINT84                  (0x000000FFuL)
+#define INTC_ICDIPTR125_TINT85                  (0x0000FF00uL)
+#define INTC_ICDIPTR125_TINT86                  (0x00FF0000uL)
+#define INTC_ICDIPTR125_TINT87                  (0xFF000000uL)
+
+#define INTC_ICDIPTR126_TINT88                  (0x000000FFuL)
+#define INTC_ICDIPTR126_TINT89                  (0x0000FF00uL)
+#define INTC_ICDIPTR126_TINT90                  (0x00FF0000uL)
+#define INTC_ICDIPTR126_TINT91                  (0xFF000000uL)
+
+#define INTC_ICDIPTR127_TINT92                  (0x000000FFuL)
+#define INTC_ICDIPTR127_TINT93                  (0x0000FF00uL)
+#define INTC_ICDIPTR127_TINT94                  (0x00FF0000uL)
+#define INTC_ICDIPTR127_TINT95                  (0xFF000000uL)
+
+#define INTC_ICDIPTR128_TINT96                  (0x000000FFuL)
+#define INTC_ICDIPTR128_TINT97                  (0x0000FF00uL)
+#define INTC_ICDIPTR128_TINT98                  (0x00FF0000uL)
+#define INTC_ICDIPTR128_TINT99                  (0xFF000000uL)
+
+#define INTC_ICDIPTR129_TINT100                 (0x000000FFuL)
+#define INTC_ICDIPTR129_TINT101                 (0x0000FF00uL)
+#define INTC_ICDIPTR129_TINT102                 (0x00FF0000uL)
+#define INTC_ICDIPTR129_TINT103                 (0xFF000000uL)
+
+#define INTC_ICDIPTR130_TINT104                 (0x000000FFuL)
+#define INTC_ICDIPTR130_TINT105                 (0x0000FF00uL)
+#define INTC_ICDIPTR130_TINT106                 (0x00FF0000uL)
+#define INTC_ICDIPTR130_TINT107                 (0xFF000000uL)
+
+#define INTC_ICDIPTR131_TINT108                 (0x000000FFuL)
+#define INTC_ICDIPTR131_TINT109                 (0x0000FF00uL)
+#define INTC_ICDIPTR131_TINT110                 (0x00FF0000uL)
+#define INTC_ICDIPTR131_TINT111                 (0xFF000000uL)
+
+#define INTC_ICDIPTR132_TINT112                 (0x000000FFuL)
+#define INTC_ICDIPTR132_TINT113                 (0x0000FF00uL)
+#define INTC_ICDIPTR132_TINT114                 (0x00FF0000uL)
+#define INTC_ICDIPTR132_TINT115                 (0xFF000000uL)
+
+#define INTC_ICDIPTR133_TINT116                 (0x000000FFuL)
+#define INTC_ICDIPTR133_TINT117                 (0x0000FF00uL)
+#define INTC_ICDIPTR133_TINT118                 (0x00FF0000uL)
+#define INTC_ICDIPTR133_TINT119                 (0xFF000000uL)
+
+#define INTC_ICDIPTR134_TINT120                 (0x000000FFuL)
+#define INTC_ICDIPTR134_TINT121                 (0x0000FF00uL)
+#define INTC_ICDIPTR134_TINT122                 (0x00FF0000uL)
+#define INTC_ICDIPTR134_TINT123                 (0xFF000000uL)
+
+#define INTC_ICDIPTR135_TINT124                 (0x000000FFuL)
+#define INTC_ICDIPTR135_TINT125                 (0x0000FF00uL)
+#define INTC_ICDIPTR135_TINT126                 (0x00FF0000uL)
+#define INTC_ICDIPTR135_TINT127                 (0xFF000000uL)
+
+#define INTC_ICDIPTR136_TINT128                 (0x000000FFuL)
+#define INTC_ICDIPTR136_TINT129                 (0x0000FF00uL)
+#define INTC_ICDIPTR136_TINT130                 (0x00FF0000uL)
+#define INTC_ICDIPTR136_TINT131                 (0xFF000000uL)
+
+#define INTC_ICDIPTR137_TINT132                 (0x000000FFuL)
+#define INTC_ICDIPTR137_TINT133                 (0x0000FF00uL)
+#define INTC_ICDIPTR137_TINT134                 (0x00FF0000uL)
+#define INTC_ICDIPTR137_TINT135                 (0xFF000000uL)
+
+#define INTC_ICDIPTR138_TINT136                 (0x000000FFuL)
+#define INTC_ICDIPTR138_TINT137                 (0x0000FF00uL)
+#define INTC_ICDIPTR138_TINT138                 (0x00FF0000uL)
+#define INTC_ICDIPTR138_TINT139                 (0xFF000000uL)
+
+#define INTC_ICDIPTR139_TINT140                 (0x000000FFuL)
+#define INTC_ICDIPTR139_TINT141                 (0x0000FF00uL)
+#define INTC_ICDIPTR139_TINT142                 (0x00FF0000uL)
+#define INTC_ICDIPTR139_TINT143                 (0xFF000000uL)
+
+#define INTC_ICDIPTR140_TINT144                 (0x000000FFuL)
+#define INTC_ICDIPTR140_TINT145                 (0x0000FF00uL)
+#define INTC_ICDIPTR140_TINT146                 (0x00FF0000uL)
+#define INTC_ICDIPTR140_TINT147                 (0xFF000000uL)
+
+#define INTC_ICDIPTR141_TINT148                 (0x000000FFuL)
+#define INTC_ICDIPTR141_TINT149                 (0x0000FF00uL)
+#define INTC_ICDIPTR141_TINT150                 (0x00FF0000uL)
+#define INTC_ICDIPTR141_TINT151                 (0xFF000000uL)
+
+#define INTC_ICDIPTR142_TINT152                 (0x000000FFuL)
+#define INTC_ICDIPTR142_TINT153                 (0x0000FF00uL)
+#define INTC_ICDIPTR142_TINT154                 (0x00FF0000uL)
+#define INTC_ICDIPTR142_TINT155                 (0xFF000000uL)
+
+#define INTC_ICDIPTR143_TINT156                 (0x000000FFuL)
+#define INTC_ICDIPTR143_TINT157                 (0x0000FF00uL)
+#define INTC_ICDIPTR143_TINT158                 (0x00FF0000uL)
+#define INTC_ICDIPTR143_TINT159                 (0xFF000000uL)
+
+#define INTC_ICDIPTR144_TINT160                 (0x000000FFuL)
+#define INTC_ICDIPTR144_TINT161                 (0x0000FF00uL)
+#define INTC_ICDIPTR144_TINT162                 (0x00FF0000uL)
+#define INTC_ICDIPTR144_TINT163                 (0xFF000000uL)
+
+#define INTC_ICDIPTR145_TINT164                 (0x000000FFuL)
+#define INTC_ICDIPTR145_TINT165                 (0x0000FF00uL)
+#define INTC_ICDIPTR145_TINT166                 (0x00FF0000uL)
+#define INTC_ICDIPTR145_TINT167                 (0xFF000000uL)
+
+#define INTC_ICDIPTR146_TINT168                 (0x000000FFuL)
+#define INTC_ICDIPTR146_TINT169                 (0x0000FF00uL)
+#define INTC_ICDIPTR146_TINT170                 (0x00FF0000uL)
+
+#define INTC_ICDICFR0_SW0_0                     (0x00000001uL)
+#define INTC_ICDICFR0_SW0_1                     (0x00000002uL)
+#define INTC_ICDICFR0_SW1_0                     (0x00000004uL)
+#define INTC_ICDICFR0_SW1_1                     (0x00000008uL)
+#define INTC_ICDICFR0_SW2_0                     (0x00000010uL)
+#define INTC_ICDICFR0_SW2_1                     (0x00000020uL)
+#define INTC_ICDICFR0_SW3_0                     (0x00000040uL)
+#define INTC_ICDICFR0_SW3_1                     (0x00000080uL)
+#define INTC_ICDICFR0_SW4_0                     (0x00000100uL)
+#define INTC_ICDICFR0_SW4_1                     (0x00000200uL)
+#define INTC_ICDICFR0_SW5_0                     (0x00000400uL)
+#define INTC_ICDICFR0_SW5_1                     (0x00000800uL)
+#define INTC_ICDICFR0_SW6_0                     (0x00001000uL)
+#define INTC_ICDICFR0_SW6_1                     (0x00002000uL)
+#define INTC_ICDICFR0_SW7_0                     (0x00004000uL)
+#define INTC_ICDICFR0_SW7_1                     (0x00008000uL)
+#define INTC_ICDICFR0_SW8_0                     (0x00010000uL)
+#define INTC_ICDICFR0_SW8_1                     (0x00020000uL)
+#define INTC_ICDICFR0_SW9_0                     (0x00040000uL)
+#define INTC_ICDICFR0_SW9_1                     (0x00080000uL)
+#define INTC_ICDICFR0_SW10_0                    (0x00100000uL)
+#define INTC_ICDICFR0_SW10_1                    (0x00200000uL)
+#define INTC_ICDICFR0_SW11_0                    (0x00400000uL)
+#define INTC_ICDICFR0_SW11_1                    (0x00800000uL)
+#define INTC_ICDICFR0_SW12_0                    (0x01000000uL)
+#define INTC_ICDICFR0_SW12_1                    (0x02000000uL)
+#define INTC_ICDICFR0_SW13_0                    (0x04000000uL)
+#define INTC_ICDICFR0_SW13_1                    (0x08000000uL)
+#define INTC_ICDICFR0_SW14_0                    (0x10000000uL)
+#define INTC_ICDICFR0_SW14_1                    (0x20000000uL)
+#define INTC_ICDICFR0_SW15_0                    (0x40000000uL)
+#define INTC_ICDICFR0_SW15_1                    (0x80000000uL)
+
+#define INTC_ICDICFR1_PMUIRQ0_0                 (0x00000001uL)
+#define INTC_ICDICFR1_PMUIRQ0_1                 (0x00000002uL)
+#define INTC_ICDICFR1_COMMRX0_0                 (0x00000004uL)
+#define INTC_ICDICFR1_COMMRX0_1                 (0x00000008uL)
+#define INTC_ICDICFR1_COMMTX0_0                 (0x00000010uL)
+#define INTC_ICDICFR1_COMMTX0_1                 (0x00000020uL)
+#define INTC_ICDICFR1_CTIIRQ0_0                 (0x00000040uL)
+#define INTC_ICDICFR1_CTIIRQ0_1                 (0x00000080uL)
+
+#define INTC_ICDICFR2_IRQ0_0                    (0x00000001uL)
+#define INTC_ICDICFR2_IRQ0_1                    (0x00000002uL)
+#define INTC_ICDICFR2_IRQ1_0                    (0x00000004uL)
+#define INTC_ICDICFR2_IRQ1_1                    (0x00000008uL)
+#define INTC_ICDICFR2_IRQ2_0                    (0x00000010uL)
+#define INTC_ICDICFR2_IRQ2_1                    (0x00000020uL)
+#define INTC_ICDICFR2_IRQ3_0                    (0x00000040uL)
+#define INTC_ICDICFR2_IRQ3_1                    (0x00000080uL)
+#define INTC_ICDICFR2_IRQ4_0                    (0x00000100uL)
+#define INTC_ICDICFR2_IRQ4_1                    (0x00000200uL)
+#define INTC_ICDICFR2_IRQ5_0                    (0x00000400uL)
+#define INTC_ICDICFR2_IRQ5_1                    (0x00000800uL)
+#define INTC_ICDICFR2_IRQ6_0                    (0x00001000uL)
+#define INTC_ICDICFR2_IRQ6_1                    (0x00002000uL)
+#define INTC_ICDICFR2_IRQ7_0                    (0x00004000uL)
+#define INTC_ICDICFR2_IRQ7_1                    (0x00008000uL)
+#define INTC_ICDICFR2_PL310ERR_0                (0x00010000uL)
+#define INTC_ICDICFR2_PL310ERR_1                (0x00020000uL)
+#define INTC_ICDICFR2_DMAINT0_0                 (0x00040000uL)
+#define INTC_ICDICFR2_DMAINT0_1                 (0x00080000uL)
+#define INTC_ICDICFR2_DMAINT1_0                 (0x00100000uL)
+#define INTC_ICDICFR2_DMAINT1_1                 (0x00200000uL)
+#define INTC_ICDICFR2_DMAINT2_0                 (0x00400000uL)
+#define INTC_ICDICFR2_DMAINT2_1                 (0x00800000uL)
+#define INTC_ICDICFR2_DMAINT3_0                 (0x01000000uL)
+#define INTC_ICDICFR2_DMAINT3_1                 (0x02000000uL)
+#define INTC_ICDICFR2_DMAINT4_0                 (0x04000000uL)
+#define INTC_ICDICFR2_DMAINT4_1                 (0x08000000uL)
+#define INTC_ICDICFR2_DMAINT5_0                 (0x10000000uL)
+#define INTC_ICDICFR2_DMAINT5_1                 (0x20000000uL)
+#define INTC_ICDICFR2_DMAINT6_0                 (0x40000000uL)
+#define INTC_ICDICFR2_DMAINT6_1                 (0x80000000uL)
+
+#define INTC_ICDICFR3_DMAINT7_0                 (0x00000001uL)
+#define INTC_ICDICFR3_DMAINT7_1                 (0x00000002uL)
+#define INTC_ICDICFR3_DMAINT8_0                 (0x00000004uL)
+#define INTC_ICDICFR3_DMAINT8_1                 (0x00000008uL)
+#define INTC_ICDICFR3_DMAINT9_0                 (0x00000010uL)
+#define INTC_ICDICFR3_DMAINT9_1                 (0x00000020uL)
+#define INTC_ICDICFR3_DMAINT10_0                (0x00000040uL)
+#define INTC_ICDICFR3_DMAINT10_1                (0x00000080uL)
+#define INTC_ICDICFR3_DMAINT11_0                (0x00000100uL)
+#define INTC_ICDICFR3_DMAINT11_1                (0x00000200uL)
+#define INTC_ICDICFR3_DMAINT12_0                (0x00000400uL)
+#define INTC_ICDICFR3_DMAINT12_1                (0x00000800uL)
+#define INTC_ICDICFR3_DMAINT13_0                (0x00001000uL)
+#define INTC_ICDICFR3_DMAINT13_1                (0x00002000uL)
+#define INTC_ICDICFR3_DMAINT14_0                (0x00004000uL)
+#define INTC_ICDICFR3_DMAINT14_1                (0x00008000uL)
+#define INTC_ICDICFR3_DMAINT15_0                (0x00010000uL)
+#define INTC_ICDICFR3_DMAINT15_1                (0x00020000uL)
+#define INTC_ICDICFR3_DMAERR_0                  (0x00040000uL)
+#define INTC_ICDICFR3_DMAERR_1                  (0x00080000uL)
+
+#define INTC_ICDICFR4_USBI0_0                   (0x00040000uL)
+#define INTC_ICDICFR4_USBI0_1                   (0x00080000uL)
+#define INTC_ICDICFR4_USBI1_0                   (0x00100000uL)
+#define INTC_ICDICFR4_USBI1_1                   (0x00200000uL)
+#define INTC_ICDICFR4_S0_VI_VSYNC0_0            (0x00400000uL)
+#define INTC_ICDICFR4_S0_VI_VSYNC0_1            (0x00800000uL)
+#define INTC_ICDICFR4_S0_LO_VSYNC0_0            (0x01000000uL)
+#define INTC_ICDICFR4_S0_LO_VSYNC0_1            (0x02000000uL)
+#define INTC_ICDICFR4_S0_VSYNCERR0_0            (0x04000000uL)
+#define INTC_ICDICFR4_S0_VSYNCERR0_1            (0x08000000uL)
+#define INTC_ICDICFR4_GR3_VLINE0_0              (0x10000000uL)
+#define INTC_ICDICFR4_GR3_VLINE0_1              (0x20000000uL)
+#define INTC_ICDICFR4_S0_VFIELD0_0              (0x40000000uL)
+#define INTC_ICDICFR4_S0_VFIELD0_1              (0x80000000uL)
+
+#define INTC_ICDICFR5_IV1_VBUFERR0_0            (0x00000001uL)
+#define INTC_ICDICFR5_IV1_VBUFERR0_1            (0x00000002uL)
+#define INTC_ICDICFR5_IV3_VBUFERR0_0            (0x00000004uL)
+#define INTC_ICDICFR5_IV3_VBUFERR0_1            (0x00000008uL)
+#define INTC_ICDICFR5_IV5_VBUFERR0_0            (0x00000010uL)
+#define INTC_ICDICFR5_IV5_VBUFERR0_1            (0x00000020uL)
+#define INTC_ICDICFR5_IV6_VBUFERR0_0            (0x00000040uL)
+#define INTC_ICDICFR5_IV6_VBUFERR0_1            (0x00000080uL)
+#define INTC_ICDICFR5_S0_WLINE0_0               (0x00000100uL)
+#define INTC_ICDICFR5_S0_WLINE0_1               (0x00000200uL)
+#define INTC_ICDICFR5_S1_VI_VSYNC0_0            (0x00000400uL)
+#define INTC_ICDICFR5_S1_VI_VSYNC0_1            (0x00000800uL)
+#define INTC_ICDICFR5_S1_LO_VSYNC0_0            (0x00001000uL)
+#define INTC_ICDICFR5_S1_LO_VSYNC0_1            (0x00002000uL)
+#define INTC_ICDICFR5_S1_VSYNCERR0_0            (0x00004000uL)
+#define INTC_ICDICFR5_S1_VSYNCERR0_1            (0x00008000uL)
+#define INTC_ICDICFR5_S1_VFIELD0_0              (0x00010000uL)
+#define INTC_ICDICFR5_S1_VFIELD0_1              (0x00020000uL)
+#define INTC_ICDICFR5_IV2_VBUFERR0_0            (0x00040000uL)
+#define INTC_ICDICFR5_IV2_VBUFERR0_1            (0x00080000uL)
+#define INTC_ICDICFR5_IV4_VBUFERR0_0            (0x00100000uL)
+#define INTC_ICDICFR5_IV4_VBUFERR0_1            (0x00200000uL)
+#define INTC_ICDICFR5_S1_WLINE0_0               (0x00400000uL)
+#define INTC_ICDICFR5_S1_WLINE0_1               (0x00800000uL)
+#define INTC_ICDICFR5_OIR_VI_VSYNC0_0           (0x01000000uL)
+#define INTC_ICDICFR5_OIR_VI_VSYNC0_1           (0x02000000uL)
+#define INTC_ICDICFR5_OIR_LO_VSYNC0_0           (0x04000000uL)
+#define INTC_ICDICFR5_OIR_LO_VSYNC0_1           (0x08000000uL)
+#define INTC_ICDICFR5_OIR_VSYNCERR0_0           (0x10000000uL)
+#define INTC_ICDICFR5_OIR_VSYNCERR0_1           (0x20000000uL)
+#define INTC_ICDICFR5_OIR_VFIELD0_0             (0x40000000uL)
+#define INTC_ICDICFR5_OIR_VFIELD0_1             (0x80000000uL)
+
+#define INTC_ICDICFR6_IV7_VBUFERR0_0            (0x00000001uL)
+#define INTC_ICDICFR6_IV7_VBUFERR0_1            (0x00000002uL)
+#define INTC_ICDICFR6_IV8_VBUFERR0_0            (0x00000004uL)
+#define INTC_ICDICFR6_IV8_VBUFERR0_1            (0x00000008uL)
+#define INTC_ICDICFR6_S0_VI_VSYNC1_0            (0x00000040uL)
+#define INTC_ICDICFR6_S0_VI_VSYNC1_1            (0x00000080uL)
+#define INTC_ICDICFR6_S0_LO_VSYNC1_0            (0x00000100uL)
+#define INTC_ICDICFR6_S0_LO_VSYNC1_1            (0x00000200uL)
+#define INTC_ICDICFR6_S0_VSYNCERR1_0            (0x00000400uL)
+#define INTC_ICDICFR6_S0_VSYNCERR1_1            (0x00000800uL)
+#define INTC_ICDICFR6_GR3_VLINE1_0              (0x00001000uL)
+#define INTC_ICDICFR6_GR3_VLINE1_1              (0x00002000uL)
+#define INTC_ICDICFR6_S0_VFIELD1_0              (0x00004000uL)
+#define INTC_ICDICFR6_S0_VFIELD1_1              (0x00008000uL)
+#define INTC_ICDICFR6_IV1_VBUFERR1_0            (0x00010000uL)
+#define INTC_ICDICFR6_IV1_VBUFERR1_1            (0x00020000uL)
+#define INTC_ICDICFR6_IV3_VBUFERR1_0            (0x00040000uL)
+#define INTC_ICDICFR6_IV3_VBUFERR1_1            (0x00080000uL)
+#define INTC_ICDICFR6_IV5_VBUFERR1_0            (0x00100000uL)
+#define INTC_ICDICFR6_IV5_VBUFERR1_1            (0x00200000uL)
+#define INTC_ICDICFR6_IV6_VBUFERR1_0            (0x00400000uL)
+#define INTC_ICDICFR6_IV6_VBUFERR1_1            (0x00800000uL)
+#define INTC_ICDICFR6_S0_WLINE1_0               (0x01000000uL)
+#define INTC_ICDICFR6_S0_WLINE1_1               (0x02000000uL)
+#define INTC_ICDICFR6_S1_VI_VSYNC1_0            (0x04000000uL)
+#define INTC_ICDICFR6_S1_VI_VSYNC1_1            (0x08000000uL)
+#define INTC_ICDICFR6_S1_LO_VSYNC1_0            (0x10000000uL)
+#define INTC_ICDICFR6_S1_LO_VSYNC1_1            (0x20000000uL)
+#define INTC_ICDICFR6_S1_VSYNCERR1_0            (0x40000000uL)
+#define INTC_ICDICFR6_S1_VSYNCERR1_1            (0x80000000uL)
+
+#define INTC_ICDICFR7_S1_VFIELD1_0              (0x00000001uL)
+#define INTC_ICDICFR7_S1_VFIELD1_1              (0x00000002uL)
+#define INTC_ICDICFR7_IV2_VBUFERR1_0            (0x00000004uL)
+#define INTC_ICDICFR7_IV2_VBUFERR1_1            (0x00000008uL)
+#define INTC_ICDICFR7_IV4_VBUFERR1_0            (0x00000010uL)
+#define INTC_ICDICFR7_IV4_VBUFERR1_1            (0x00000020uL)
+#define INTC_ICDICFR7_S1_WLINE1_0               (0x00000040uL)
+#define INTC_ICDICFR7_S1_WLINE1_1               (0x00000080uL)
+#define INTC_ICDICFR7_OIR_VI_VSYNC1_0           (0x00000100uL)
+#define INTC_ICDICFR7_OIR_VI_VSYNC1_1           (0x00000200uL)
+#define INTC_ICDICFR7_OIR_LO_VSYNC1_0           (0x00000400uL)
+#define INTC_ICDICFR7_OIR_LO_VSYNC1_1           (0x00000800uL)
+#define INTC_ICDICFR7_OIR_VLINE1_0              (0x00001000uL)
+#define INTC_ICDICFR7_OIR_VLINE1_1              (0x00002000uL)
+#define INTC_ICDICFR7_OIR_VFIELD1_0             (0x00004000uL)
+#define INTC_ICDICFR7_OIR_VFIELD1_1             (0x00008000uL)
+#define INTC_ICDICFR7_IV7_VBUFERR1_0            (0x00010000uL)
+#define INTC_ICDICFR7_IV7_VBUFERR1_1            (0x00020000uL)
+#define INTC_ICDICFR7_IV8_VBUFERR1_0            (0x00040000uL)
+#define INTC_ICDICFR7_IV8_VBUFERR1_1            (0x00080000uL)
+#define INTC_ICDICFR7_IMRDI_0                   (0x00400000uL)
+#define INTC_ICDICFR7_IMRDI_1                   (0x00800000uL)
+#define INTC_ICDICFR7_IMR2I0_0                  (0x01000000uL)
+#define INTC_ICDICFR7_IMR2I0_1                  (0x02000000uL)
+#define INTC_ICDICFR7_IMR2I1_0                  (0x04000000uL)
+#define INTC_ICDICFR7_IMR2I1_1                  (0x08000000uL)
+#define INTC_ICDICFR7_JEDI_0                    (0x10000000uL)
+#define INTC_ICDICFR7_JEDI_1                    (0x20000000uL)
+#define INTC_ICDICFR7_JDTI_0                    (0x40000000uL)
+#define INTC_ICDICFR7_JDTI_1                    (0x80000000uL)
+
+#define INTC_ICDICFR8_CMP0_0                    (0x00000001uL)
+#define INTC_ICDICFR8_CMP0_1                    (0x00000002uL)
+#define INTC_ICDICFR8_CMP1_0                    (0x00000004uL)
+#define INTC_ICDICFR8_CMP1_1                    (0x00000008uL)
+#define INTC_ICDICFR8_INT0_0                    (0x00000010uL)
+#define INTC_ICDICFR8_INT0_1                    (0x00000020uL)
+#define INTC_ICDICFR8_INT1_0                    (0x00000040uL)
+#define INTC_ICDICFR8_INT1_1                    (0x00000080uL)
+#define INTC_ICDICFR8_INT2_0                    (0x00000100uL)
+#define INTC_ICDICFR8_INT2_1                    (0x00000200uL)
+#define INTC_ICDICFR8_INT3_0                    (0x00000400uL)
+#define INTC_ICDICFR8_INT3_1                    (0x00000800uL)
+#define INTC_ICDICFR8_OSTM0TINT_0               (0x00001000uL)
+#define INTC_ICDICFR8_OSTM0TINT_1               (0x00002000uL)
+#define INTC_ICDICFR8_OSTM1TINT_0               (0x00004000uL)
+#define INTC_ICDICFR8_OSTM1TINT_1               (0x00008000uL)
+#define INTC_ICDICFR8_CMI_0                     (0x00010000uL)
+#define INTC_ICDICFR8_CMI_1                     (0x00020000uL)
+#define INTC_ICDICFR8_WTOUT_0                   (0x00040000uL)
+#define INTC_ICDICFR8_WTOUT_1                   (0x00080000uL)
+#define INTC_ICDICFR8_ITI_0                     (0x00100000uL)
+#define INTC_ICDICFR8_ITI_1                     (0x00200000uL)
+#define INTC_ICDICFR8_TGI0A_0                   (0x00400000uL)
+#define INTC_ICDICFR8_TGI0A_1                   (0x00800000uL)
+#define INTC_ICDICFR8_TGI0B_0                   (0x01000000uL)
+#define INTC_ICDICFR8_TGI0B_1                   (0x02000000uL)
+#define INTC_ICDICFR8_TGI0C_0                   (0x04000000uL)
+#define INTC_ICDICFR8_TGI0C_1                   (0x08000000uL)
+#define INTC_ICDICFR8_TGI0D_0                   (0x10000000uL)
+#define INTC_ICDICFR8_TGI0D_1                   (0x20000000uL)
+#define INTC_ICDICFR8_TGI0V_0                   (0x40000000uL)
+#define INTC_ICDICFR8_TGI0V_1                   (0x80000000uL)
+
+#define INTC_ICDICFR9_TGI0E_0                   (0x00000001uL)
+#define INTC_ICDICFR9_TGI0E_1                   (0x00000002uL)
+#define INTC_ICDICFR9_TGI0F_0                   (0x00000004uL)
+#define INTC_ICDICFR9_TGI0F_1                   (0x00000008uL)
+#define INTC_ICDICFR9_TGI1A_0                   (0x00000010uL)
+#define INTC_ICDICFR9_TGI1A_1                   (0x00000020uL)
+#define INTC_ICDICFR9_TGI1B_0                   (0x00000040uL)
+#define INTC_ICDICFR9_TGI1B_1                   (0x00000080uL)
+#define INTC_ICDICFR9_TGI1V_0                   (0x00000100uL)
+#define INTC_ICDICFR9_TGI1V_1                   (0x00000200uL)
+#define INTC_ICDICFR9_TGI1U_0                   (0x00000400uL)
+#define INTC_ICDICFR9_TGI1U_1                   (0x00000800uL)
+#define INTC_ICDICFR9_TGI2A_0                   (0x00001000uL)
+#define INTC_ICDICFR9_TGI2A_1                   (0x00002000uL)
+#define INTC_ICDICFR9_TGI2B_0                   (0x00004000uL)
+#define INTC_ICDICFR9_TGI2B_1                   (0x00008000uL)
+#define INTC_ICDICFR9_TGI2V_0                   (0x00010000uL)
+#define INTC_ICDICFR9_TGI2V_1                   (0x00020000uL)
+#define INTC_ICDICFR9_TGI2U_0                   (0x00040000uL)
+#define INTC_ICDICFR9_TGI2U_1                   (0x00080000uL)
+#define INTC_ICDICFR9_TGI3A_0                   (0x00100000uL)
+#define INTC_ICDICFR9_TGI3A_1                   (0x00200000uL)
+#define INTC_ICDICFR9_TGI3B_0                   (0x00400000uL)
+#define INTC_ICDICFR9_TGI3B_1                   (0x00800000uL)
+#define INTC_ICDICFR9_TGI3C_0                   (0x01000000uL)
+#define INTC_ICDICFR9_TGI3C_1                   (0x02000000uL)
+#define INTC_ICDICFR9_TGI3D_0                   (0x04000000uL)
+#define INTC_ICDICFR9_TGI3D_1                   (0x08000000uL)
+#define INTC_ICDICFR9_TGI3V_0                   (0x10000000uL)
+#define INTC_ICDICFR9_TGI3V_1                   (0x20000000uL)
+#define INTC_ICDICFR9_TGI4A_0                   (0x40000000uL)
+#define INTC_ICDICFR9_TGI4A_1                   (0x80000000uL)
+
+#define INTC_ICDICFR10_TGI4B_0                  (0x00000001uL)
+#define INTC_ICDICFR10_TGI4B_1                  (0x00000002uL)
+#define INTC_ICDICFR10_TGI4C_0                  (0x00000004uL)
+#define INTC_ICDICFR10_TGI4C_1                  (0x00000008uL)
+#define INTC_ICDICFR10_TGI4D_0                  (0x00000010uL)
+#define INTC_ICDICFR10_TGI4D_1                  (0x00000020uL)
+#define INTC_ICDICFR10_TGI4V_0                  (0x00000040uL)
+#define INTC_ICDICFR10_TGI4V_1                  (0x00000080uL)
+#define INTC_ICDICFR10_CMI1_0                   (0x00000100uL)
+#define INTC_ICDICFR10_CMI1_1                   (0x00000200uL)
+#define INTC_ICDICFR10_CMI2_0                   (0x00000400uL)
+#define INTC_ICDICFR10_CMI2_1                   (0x00000800uL)
+#define INTC_ICDICFR10_SGDEI0_0                 (0x00001000uL)
+#define INTC_ICDICFR10_SGDEI0_1                 (0x00002000uL)
+#define INTC_ICDICFR10_SGDEI1_0                 (0x00004000uL)
+#define INTC_ICDICFR10_SGDEI1_1                 (0x00008000uL)
+#define INTC_ICDICFR10_SGDEI2_0                 (0x00010000uL)
+#define INTC_ICDICFR10_SGDEI2_1                 (0x00020000uL)
+#define INTC_ICDICFR10_SGDEI3_0                 (0x00040000uL)
+#define INTC_ICDICFR10_SGDEI3_1                 (0x00080000uL)
+#define INTC_ICDICFR10_ADI_0                    (0x00100000uL)
+#define INTC_ICDICFR10_ADI_1                    (0x00200000uL)
+#define INTC_ICDICFR10_LMTI_0                   (0x00400000uL)
+#define INTC_ICDICFR10_LMTI_1                   (0x00800000uL)
+#define INTC_ICDICFR10_SSII0_0                  (0x01000000uL)
+#define INTC_ICDICFR10_SSII0_1                  (0x02000000uL)
+#define INTC_ICDICFR10_SSIRXI0_0                (0x04000000uL)
+#define INTC_ICDICFR10_SSIRXI0_1                (0x08000000uL)
+#define INTC_ICDICFR10_SSITXI0_0                (0x10000000uL)
+#define INTC_ICDICFR10_SSITXI0_1                (0x20000000uL)
+#define INTC_ICDICFR10_SSII1_0                  (0x40000000uL)
+#define INTC_ICDICFR10_SSII1_1                  (0x80000000uL)
+
+#define INTC_ICDICFR11_SSIRXI1_0                (0x00000001uL)
+#define INTC_ICDICFR11_SSIRXI1_1                (0x00000002uL)
+#define INTC_ICDICFR11_SSITXI1_0                (0x00000004uL)
+#define INTC_ICDICFR11_SSITXI1_1                (0x00000008uL)
+#define INTC_ICDICFR11_SSII2_0                  (0x00000010uL)
+#define INTC_ICDICFR11_SSII2_1                  (0x00000020uL)
+#define INTC_ICDICFR11_SSIRTI2_0                (0x00000040uL)
+#define INTC_ICDICFR11_SSIRTI2_1                (0x00000080uL)
+#define INTC_ICDICFR11_SSII3_0                  (0x00000100uL)
+#define INTC_ICDICFR11_SSII3_1                  (0x00000200uL)
+#define INTC_ICDICFR11_SSIRXI3_0                (0x00000400uL)
+#define INTC_ICDICFR11_SSIRXI3_1                (0x00000800uL)
+#define INTC_ICDICFR11_SSITXI3_0                (0x00001000uL)
+#define INTC_ICDICFR11_SSITXI3_1                (0x00002000uL)
+#define INTC_ICDICFR11_SSII4_0                  (0x00004000uL)
+#define INTC_ICDICFR11_SSII4_1                  (0x00008000uL)
+#define INTC_ICDICFR11_SSIRTI4_0                (0x00010000uL)
+#define INTC_ICDICFR11_SSIRTI4_1                (0x00020000uL)
+#define INTC_ICDICFR11_SSII5_0                  (0x00040000uL)
+#define INTC_ICDICFR11_SSII5_1                  (0x00080000uL)
+#define INTC_ICDICFR11_SSIRXI5_0                (0x00100000uL)
+#define INTC_ICDICFR11_SSIRXI5_1                (0x00200000uL)
+#define INTC_ICDICFR11_SSITXI5_0                (0x00400000uL)
+#define INTC_ICDICFR11_SSITXI5_1                (0x00800000uL)
+#define INTC_ICDICFR11_SPDIFI_0                 (0x01000000uL)
+#define INTC_ICDICFR11_SPDIFI_1                 (0x02000000uL)
+#define INTC_ICDICFR11_INTIICTEI0_0             (0x04000000uL)
+#define INTC_ICDICFR11_INTIICTEI0_1             (0x08000000uL)
+#define INTC_ICDICFR11_INTIICRI0_0              (0x10000000uL)
+#define INTC_ICDICFR11_INTIICRI0_1              (0x20000000uL)
+#define INTC_ICDICFR11_INTIICTI0_0              (0x40000000uL)
+#define INTC_ICDICFR11_INTIICTI0_1              (0x80000000uL)
+
+#define INTC_ICDICFR12_INTIICSPI0_0             (0x00000001uL)
+#define INTC_ICDICFR12_INTIICSPI0_1             (0x00000002uL)
+#define INTC_ICDICFR12_INTIICSTI0_0             (0x00000004uL)
+#define INTC_ICDICFR12_INTIICSTI0_1             (0x00000008uL)
+#define INTC_ICDICFR12_INTIICNAKI0_0            (0x00000010uL)
+#define INTC_ICDICFR12_INTIICNAKI0_1            (0x00000020uL)
+#define INTC_ICDICFR12_INTIICALI0_0             (0x00000040uL)
+#define INTC_ICDICFR12_INTIICALI0_1             (0x00000080uL)
+#define INTC_ICDICFR12_INTIICTMOI0_0            (0x00000100uL)
+#define INTC_ICDICFR12_INTIICTMOI0_1            (0x00000200uL)
+#define INTC_ICDICFR12_INTIICTEI1_0             (0x00000400uL)
+#define INTC_ICDICFR12_INTIICTEI1_1             (0x00000800uL)
+#define INTC_ICDICFR12_INTIICRI1_0              (0x00001000uL)
+#define INTC_ICDICFR12_INTIICRI1_1              (0x00002000uL)
+#define INTC_ICDICFR12_INTIICTI1_0              (0x00004000uL)
+#define INTC_ICDICFR12_INTIICTI1_1              (0x00008000uL)
+#define INTC_ICDICFR12_INTIICSPI1_0             (0x00010000uL)
+#define INTC_ICDICFR12_INTIICSPI1_1             (0x00020000uL)
+#define INTC_ICDICFR12_INTIICSTI1_0             (0x00040000uL)
+#define INTC_ICDICFR12_INTIICSTI1_1             (0x00080000uL)
+#define INTC_ICDICFR12_INTIICNAKI1_0            (0x00100000uL)
+#define INTC_ICDICFR12_INTIICNAKI1_1            (0x00200000uL)
+#define INTC_ICDICFR12_INTIICALI1_0             (0x00400000uL)
+#define INTC_ICDICFR12_INTIICALI1_1             (0x00800000uL)
+#define INTC_ICDICFR12_INTIICTMOI1_0            (0x01000000uL)
+#define INTC_ICDICFR12_INTIICTMOI1_1            (0x02000000uL)
+#define INTC_ICDICFR12_INTIICTEI2_0             (0x04000000uL)
+#define INTC_ICDICFR12_INTIICTEI2_1             (0x08000000uL)
+#define INTC_ICDICFR12_INTIICRI2_0              (0x10000000uL)
+#define INTC_ICDICFR12_INTIICRI2_1              (0x20000000uL)
+#define INTC_ICDICFR12_INTIICTI2_0              (0x40000000uL)
+#define INTC_ICDICFR12_INTIICTI2_1              (0x80000000uL)
+
+#define INTC_ICDICFR13_INTIICSPI2_0             (0x00000001uL)
+#define INTC_ICDICFR13_INTIICSPI2_1             (0x00000002uL)
+#define INTC_ICDICFR13_INTIICSTI2_0             (0x00000004uL)
+#define INTC_ICDICFR13_INTIICSTI2_1             (0x00000008uL)
+#define INTC_ICDICFR13_INTIICNAKI2_0            (0x00000010uL)
+#define INTC_ICDICFR13_INTIICNAKI2_1            (0x00000020uL)
+#define INTC_ICDICFR13_INTIICALI2_0             (0x00000040uL)
+#define INTC_ICDICFR13_INTIICALI2_1             (0x00000080uL)
+#define INTC_ICDICFR13_INTIICTMOI2_0            (0x00000100uL)
+#define INTC_ICDICFR13_INTIICTMOI2_1            (0x00000200uL)
+#define INTC_ICDICFR13_INTIICTEI3_0             (0x00000400uL)
+#define INTC_ICDICFR13_INTIICTEI3_1             (0x00000800uL)
+#define INTC_ICDICFR13_INTIICRI3_0              (0x00001000uL)
+#define INTC_ICDICFR13_INTIICRI3_1              (0x00002000uL)
+#define INTC_ICDICFR13_INTIICTI3_0              (0x00004000uL)
+#define INTC_ICDICFR13_INTIICTI3_1              (0x00008000uL)
+#define INTC_ICDICFR13_INTIICSPI3_0             (0x00010000uL)
+#define INTC_ICDICFR13_INTIICSPI3_1             (0x00020000uL)
+#define INTC_ICDICFR13_INTIICSTI3_0             (0x00040000uL)
+#define INTC_ICDICFR13_INTIICSTI3_1             (0x00080000uL)
+#define INTC_ICDICFR13_INTIICNAKI3_0            (0x00100000uL)
+#define INTC_ICDICFR13_INTIICNAKI3_1            (0x00200000uL)
+#define INTC_ICDICFR13_INTIICALI3_0             (0x00400000uL)
+#define INTC_ICDICFR13_INTIICALI3_1             (0x00800000uL)
+#define INTC_ICDICFR13_INTIICTMOI3_0            (0x01000000uL)
+#define INTC_ICDICFR13_INTIICTMOI3_1            (0x02000000uL)
+#define INTC_ICDICFR13_BRI0_0                   (0x04000000uL)
+#define INTC_ICDICFR13_BRI0_1                   (0x08000000uL)
+#define INTC_ICDICFR13_ERI0_0                   (0x10000000uL)
+#define INTC_ICDICFR13_ERI0_1                   (0x20000000uL)
+#define INTC_ICDICFR13_RXI0_0                   (0x40000000uL)
+#define INTC_ICDICFR13_RXI0_1                   (0x80000000uL)
+
+#define INTC_ICDICFR14_TXI0_0                   (0x00000001uL)
+#define INTC_ICDICFR14_TXI0_1                   (0x00000002uL)
+#define INTC_ICDICFR14_BRI1_0                   (0x00000004uL)
+#define INTC_ICDICFR14_BRI1_1                   (0x00000008uL)
+#define INTC_ICDICFR14_ERI1_0                   (0x00000010uL)
+#define INTC_ICDICFR14_ERI1_1                   (0x00000020uL)
+#define INTC_ICDICFR14_RXI1_0                   (0x00000040uL)
+#define INTC_ICDICFR14_RXI1_1                   (0x00000080uL)
+#define INTC_ICDICFR14_TXI1_0                   (0x00000100uL)
+#define INTC_ICDICFR14_TXI1_1                   (0x00000200uL)
+#define INTC_ICDICFR14_BRI2_0                   (0x00000400uL)
+#define INTC_ICDICFR14_BRI2_1                   (0x00000800uL)
+#define INTC_ICDICFR14_ERI2_0                   (0x00001000uL)
+#define INTC_ICDICFR14_ERI2_1                   (0x00002000uL)
+#define INTC_ICDICFR14_RXI2_0                   (0x00004000uL)
+#define INTC_ICDICFR14_RXI2_1                   (0x00008000uL)
+#define INTC_ICDICFR14_TXI2_0                   (0x00010000uL)
+#define INTC_ICDICFR14_TXI2_1                   (0x00020000uL)
+#define INTC_ICDICFR14_BRI3_0                   (0x00040000uL)
+#define INTC_ICDICFR14_BRI3_1                   (0x00080000uL)
+#define INTC_ICDICFR14_ERI3_0                   (0x00100000uL)
+#define INTC_ICDICFR14_ERI3_1                   (0x00200000uL)
+#define INTC_ICDICFR14_RXI3_0                   (0x00400000uL)
+#define INTC_ICDICFR14_RXI3_1                   (0x00800000uL)
+#define INTC_ICDICFR14_TXI3_0                   (0x01000000uL)
+#define INTC_ICDICFR14_TXI3_1                   (0x02000000uL)
+#define INTC_ICDICFR14_BRI4_0                   (0x04000000uL)
+#define INTC_ICDICFR14_BRI4_1                   (0x08000000uL)
+#define INTC_ICDICFR14_ERI4_0                   (0x10000000uL)
+#define INTC_ICDICFR14_ERI4_1                   (0x20000000uL)
+#define INTC_ICDICFR14_RXI4_0                   (0x40000000uL)
+#define INTC_ICDICFR14_RXI4_1                   (0x80000000uL)
+
+#define INTC_ICDICFR15_TXI4_0                   (0x00000001uL)
+#define INTC_ICDICFR15_TXI4_1                   (0x00000002uL)
+#define INTC_ICDICFR15_BRI5_0                   (0x00000004uL)
+#define INTC_ICDICFR15_BRI5_1                   (0x00000008uL)
+#define INTC_ICDICFR15_ERI5_0                   (0x00000010uL)
+#define INTC_ICDICFR15_ERI5_1                   (0x00000020uL)
+#define INTC_ICDICFR15_RXI5_0                   (0x00000040uL)
+#define INTC_ICDICFR15_RXI5_1                   (0x00000080uL)
+#define INTC_ICDICFR15_TXI5_0                   (0x00000100uL)
+#define INTC_ICDICFR15_TXI5_1                   (0x00000200uL)
+#define INTC_ICDICFR15_BRI6_0                   (0x00000400uL)
+#define INTC_ICDICFR15_BRI6_1                   (0x00000800uL)
+#define INTC_ICDICFR15_ERI6_0                   (0x00001000uL)
+#define INTC_ICDICFR15_ERI6_1                   (0x00002000uL)
+#define INTC_ICDICFR15_RXI6_0                   (0x00004000uL)
+#define INTC_ICDICFR15_RXI6_1                   (0x00008000uL)
+#define INTC_ICDICFR15_TXI6_0                   (0x00010000uL)
+#define INTC_ICDICFR15_TXI6_1                   (0x00020000uL)
+#define INTC_ICDICFR15_BRI7_0                   (0x00040000uL)
+#define INTC_ICDICFR15_BRI7_1                   (0x00080000uL)
+#define INTC_ICDICFR15_ERI7_0                   (0x00100000uL)
+#define INTC_ICDICFR15_ERI7_1                   (0x00200000uL)
+#define INTC_ICDICFR15_RXI7_0                   (0x00400000uL)
+#define INTC_ICDICFR15_RXI7_1                   (0x00800000uL)
+#define INTC_ICDICFR15_TXI7_0                   (0x01000000uL)
+#define INTC_ICDICFR15_TXI7_1                   (0x02000000uL)
+#define INTC_ICDICFR15_INTRCANGERR_0            (0x04000000uL)
+#define INTC_ICDICFR15_INTRCANGERR_1            (0x08000000uL)
+#define INTC_ICDICFR15_INTRCANGRECC_0           (0x10000000uL)
+#define INTC_ICDICFR15_INTRCANGRECC_1           (0x20000000uL)
+#define INTC_ICDICFR15_INTRCAN0REC_0            (0x40000000uL)
+#define INTC_ICDICFR15_INTRCAN0REC_1            (0x80000000uL)
+
+#define INTC_ICDICFR16_INTRCAN0ERR_0            (0x00000001uL)
+#define INTC_ICDICFR16_INTRCAN0ERR_1            (0x00000002uL)
+#define INTC_ICDICFR16_INTRCAN0TRX_0            (0x00000004uL)
+#define INTC_ICDICFR16_INTRCAN0TRX_1            (0x00000008uL)
+#define INTC_ICDICFR16_INTRCAN1REC_0            (0x00000010uL)
+#define INTC_ICDICFR16_INTRCAN1REC_1            (0x00000020uL)
+#define INTC_ICDICFR16_INTRCAN1ERR_0            (0x00000040uL)
+#define INTC_ICDICFR16_INTRCAN1ERR_1            (0x00000080uL)
+#define INTC_ICDICFR16_INTRCAN1TRX_0            (0x00000100uL)
+#define INTC_ICDICFR16_INTRCAN1TRX_1            (0x00000200uL)
+#define INTC_ICDICFR16_INTRCAN2REC_0            (0x00000400uL)
+#define INTC_ICDICFR16_INTRCAN2REC_1            (0x00000800uL)
+#define INTC_ICDICFR16_INTRCAN2ERR_0            (0x00001000uL)
+#define INTC_ICDICFR16_INTRCAN2ERR_1            (0x00002000uL)
+#define INTC_ICDICFR16_INTRCAN2TRX_0            (0x00004000uL)
+#define INTC_ICDICFR16_INTRCAN2TRX_1            (0x00008000uL)
+#define INTC_ICDICFR16_INTRCAN3REC_0            (0x00010000uL)
+#define INTC_ICDICFR16_INTRCAN3REC_1            (0x00020000uL)
+#define INTC_ICDICFR16_INTRCAN3ERR_0            (0x00040000uL)
+#define INTC_ICDICFR16_INTRCAN3ERR_1            (0x00080000uL)
+#define INTC_ICDICFR16_INTRCAN3TRX_0            (0x00100000uL)
+#define INTC_ICDICFR16_INTRCAN3TRX_1            (0x00200000uL)
+#define INTC_ICDICFR16_INTRCAN4REC_0            (0x00400000uL)
+#define INTC_ICDICFR16_INTRCAN4REC_1            (0x00800000uL)
+#define INTC_ICDICFR16_INTRCAN4ERR_0            (0x01000000uL)
+#define INTC_ICDICFR16_INTRCAN4ERR_1            (0x02000000uL)
+#define INTC_ICDICFR16_INTRCAN4TRX_0            (0x04000000uL)
+#define INTC_ICDICFR16_INTRCAN4TRX_1            (0x08000000uL)
+#define INTC_ICDICFR16_SPEI0_0                  (0x10000000uL)
+#define INTC_ICDICFR16_SPEI0_1                  (0x20000000uL)
+#define INTC_ICDICFR16_SPRI0_0                  (0x40000000uL)
+#define INTC_ICDICFR16_SPRI0_1                  (0x80000000uL)
+
+#define INTC_ICDICFR17_SPTI0_0                  (0x00000001uL)
+#define INTC_ICDICFR17_SPTI0_1                  (0x00000002uL)
+#define INTC_ICDICFR17_SPEI1_0                  (0x00000004uL)
+#define INTC_ICDICFR17_SPEI1_1                  (0x00000008uL)
+#define INTC_ICDICFR17_SPRI1_0                  (0x00000010uL)
+#define INTC_ICDICFR17_SPRI1_1                  (0x00000020uL)
+#define INTC_ICDICFR17_SPTI1_0                  (0x00000040uL)
+#define INTC_ICDICFR17_SPTI1_1                  (0x00000080uL)
+#define INTC_ICDICFR17_SPEI2_0                  (0x00000100uL)
+#define INTC_ICDICFR17_SPEI2_1                  (0x00000200uL)
+#define INTC_ICDICFR17_SPRI2_0                  (0x00000400uL)
+#define INTC_ICDICFR17_SPRI2_1                  (0x00000800uL)
+#define INTC_ICDICFR17_SPTI2_0                  (0x00001000uL)
+#define INTC_ICDICFR17_SPTI2_1                  (0x00002000uL)
+#define INTC_ICDICFR17_SPEI3_0                  (0x00004000uL)
+#define INTC_ICDICFR17_SPEI3_1                  (0x00008000uL)
+#define INTC_ICDICFR17_SPRI3_0                  (0x00010000uL)
+#define INTC_ICDICFR17_SPRI3_1                  (0x00020000uL)
+#define INTC_ICDICFR17_SPTI3_0                  (0x00040000uL)
+#define INTC_ICDICFR17_SPTI3_1                  (0x00080000uL)
+#define INTC_ICDICFR17_SPEI4_0                  (0x00100000uL)
+#define INTC_ICDICFR17_SPEI4_1                  (0x00200000uL)
+#define INTC_ICDICFR17_SPRI4_0                  (0x00400000uL)
+#define INTC_ICDICFR17_SPRI4_1                  (0x00800000uL)
+#define INTC_ICDICFR17_SPTI4_0                  (0x01000000uL)
+#define INTC_ICDICFR17_SPTI4_1                  (0x02000000uL)
+#define INTC_ICDICFR17_IEBBTD_0                 (0x04000000uL)
+#define INTC_ICDICFR17_IEBBTD_1                 (0x08000000uL)
+#define INTC_ICDICFR17_IEBBTERR_0               (0x10000000uL)
+#define INTC_ICDICFR17_IEBBTERR_1               (0x20000000uL)
+#define INTC_ICDICFR17_IEBBTSTA_0               (0x40000000uL)
+#define INTC_ICDICFR17_IEBBTSTA_1               (0x80000000uL)
+
+#define INTC_ICDICFR18_IEBBTV_0                 (0x00000001uL)
+#define INTC_ICDICFR18_IEBBTV_1                 (0x00000002uL)
+#define INTC_ICDICFR18_ISY_0                    (0x00000004uL)
+#define INTC_ICDICFR18_ISY_1                    (0x00000008uL)
+#define INTC_ICDICFR18_IERR_0                   (0x00000010uL)
+#define INTC_ICDICFR18_IERR_1                   (0x00000020uL)
+#define INTC_ICDICFR18_ITARG_0                  (0x00000040uL)
+#define INTC_ICDICFR18_ITARG_1                  (0x00000080uL)
+#define INTC_ICDICFR18_ISEC_0                   (0x00000100uL)
+#define INTC_ICDICFR18_ISEC_1                   (0x00000200uL)
+#define INTC_ICDICFR18_IBUF_0                   (0x00000400uL)
+#define INTC_ICDICFR18_IBUF_1                   (0x00000800uL)
+#define INTC_ICDICFR18_IREADY_0                 (0x00001000uL)
+#define INTC_ICDICFR18_IREADY_1                 (0x00002000uL)
+#define INTC_ICDICFR18_FLSTE_0                  (0x00004000uL)
+#define INTC_ICDICFR18_FLSTE_1                  (0x00008000uL)
+#define INTC_ICDICFR18_FLTENDI_0                (0x00010000uL)
+#define INTC_ICDICFR18_FLTENDI_1                (0x00020000uL)
+#define INTC_ICDICFR18_FLTREQ0I_0               (0x00040000uL)
+#define INTC_ICDICFR18_FLTREQ0I_1               (0x00080000uL)
+#define INTC_ICDICFR18_FLTREQ1I_0               (0x00100000uL)
+#define INTC_ICDICFR18_FLTREQ1I_1               (0x00200000uL)
+#define INTC_ICDICFR18_MMC0_0                   (0x00400000uL)
+#define INTC_ICDICFR18_MMC0_1                   (0x00800000uL)
+#define INTC_ICDICFR18_MMC1_0                   (0x01000000uL)
+#define INTC_ICDICFR18_MMC1_1                   (0x02000000uL)
+#define INTC_ICDICFR18_MMC2_0                   (0x04000000uL)
+#define INTC_ICDICFR18_MMC2_1                   (0x08000000uL)
+#define INTC_ICDICFR18_SDHI0_3_0                (0x10000000uL)
+#define INTC_ICDICFR18_SDHI0_3_1                (0x20000000uL)
+#define INTC_ICDICFR18_SDHI0_0_0                (0x40000000uL)
+#define INTC_ICDICFR18_SDHI0_0_1                (0x80000000uL)
+
+#define INTC_ICDICFR19_SDHI0_1_0                (0x00000001uL)
+#define INTC_ICDICFR19_SDHI0_1_1                (0x00000002uL)
+#define INTC_ICDICFR19_SDHI1_3_0                (0x00000004uL)
+#define INTC_ICDICFR19_SDHI1_3_1                (0x00000008uL)
+#define INTC_ICDICFR19_SDHI1_0_0                (0x00000010uL)
+#define INTC_ICDICFR19_SDHI1_0_1                (0x00000020uL)
+#define INTC_ICDICFR19_SDHI1_1_0                (0x00000040uL)
+#define INTC_ICDICFR19_SDHI1_1_1                (0x00000080uL)
+#define INTC_ICDICFR19_ARM_0                    (0x00000100uL)
+#define INTC_ICDICFR19_ARM_1                    (0x00000200uL)
+#define INTC_ICDICFR19_PRD_0                    (0x00000400uL)
+#define INTC_ICDICFR19_PRD_1                    (0x00000800uL)
+#define INTC_ICDICFR19_CUP_0                    (0x00001000uL)
+#define INTC_ICDICFR19_CUP_1                    (0x00002000uL)
+#define INTC_ICDICFR19_SCUAI0_0                 (0x00004000uL)
+#define INTC_ICDICFR19_SCUAI0_1                 (0x00008000uL)
+#define INTC_ICDICFR19_SCUAI1_0                 (0x00010000uL)
+#define INTC_ICDICFR19_SCUAI1_1                 (0x00020000uL)
+#define INTC_ICDICFR19_SCUFDI0_0                (0x00040000uL)
+#define INTC_ICDICFR19_SCUFDI0_1                (0x00080000uL)
+#define INTC_ICDICFR19_SCUFDI1_0                (0x00100000uL)
+#define INTC_ICDICFR19_SCUFDI1_1                (0x00200000uL)
+#define INTC_ICDICFR19_SCUFDI2_0                (0x00400000uL)
+#define INTC_ICDICFR19_SCUFDI2_1                (0x00800000uL)
+#define INTC_ICDICFR19_SCUFDI3_0                (0x01000000uL)
+#define INTC_ICDICFR19_SCUFDI3_1                (0x02000000uL)
+#define INTC_ICDICFR19_SCUFUI0_0                (0x04000000uL)
+#define INTC_ICDICFR19_SCUFUI0_1                (0x08000000uL)
+#define INTC_ICDICFR19_SCUFUI1_0                (0x10000000uL)
+#define INTC_ICDICFR19_SCUFUI1_1                (0x20000000uL)
+#define INTC_ICDICFR19_SCUFUI2_0                (0x40000000uL)
+#define INTC_ICDICFR19_SCUFUI2_1                (0x80000000uL)
+
+#define INTC_ICDICFR20_SCUFUI3_0                (0x00000001uL)
+#define INTC_ICDICFR20_SCUFUI3_1                (0x00000002uL)
+#define INTC_ICDICFR20_SCUDVI0_0                (0x00000004uL)
+#define INTC_ICDICFR20_SCUDVI0_1                (0x00000008uL)
+#define INTC_ICDICFR20_SCUDVI1_0                (0x00000010uL)
+#define INTC_ICDICFR20_SCUDVI1_1                (0x00000020uL)
+#define INTC_ICDICFR20_SCUDVI2_0                (0x00000040uL)
+#define INTC_ICDICFR20_SCUDVI2_1                (0x00000080uL)
+#define INTC_ICDICFR20_SCUDVI3_0                (0x00000100uL)
+#define INTC_ICDICFR20_SCUDVI3_1                (0x00000200uL)
+#define INTC_ICDICFR20_MLB_CINT_0               (0x00000400uL)
+#define INTC_ICDICFR20_MLB_CINT_1               (0x00000800uL)
+#define INTC_ICDICFR20_MLB_SINT_0               (0x00001000uL)
+#define INTC_ICDICFR20_MLB_SINT_1               (0x00002000uL)
+#define INTC_ICDICFR20_DRC0_0                   (0x00004000uL)
+#define INTC_ICDICFR20_DRC0_1                   (0x00008000uL)
+#define INTC_ICDICFR20_DRC1_0                   (0x00010000uL)
+#define INTC_ICDICFR20_DRC1_1                   (0x00020000uL)
+#define INTC_ICDICFR20_LINI0_INT_T_0            (0x00400000uL)
+#define INTC_ICDICFR20_LINI0_INT_T_1            (0x00800000uL)
+#define INTC_ICDICFR20_LINI0_INT_R_0            (0x01000000uL)
+#define INTC_ICDICFR20_LINI0_INT_R_1            (0x02000000uL)
+#define INTC_ICDICFR20_LINI0_INT_S_0            (0x04000000uL)
+#define INTC_ICDICFR20_LINI0_INT_S_1            (0x08000000uL)
+#define INTC_ICDICFR20_LINI0_INT_M_0            (0x10000000uL)
+#define INTC_ICDICFR20_LINI0_INT_M_1            (0x20000000uL)
+#define INTC_ICDICFR20_LINI1_INT_T_0            (0x40000000uL)
+#define INTC_ICDICFR20_LINI1_INT_T_1            (0x80000000uL)
+
+#define INTC_ICDICFR21_LINI1_INT_R_0            (0x00000001uL)
+#define INTC_ICDICFR21_LINI1_INT_R_1            (0x00000002uL)
+#define INTC_ICDICFR21_LINI1_INT_S_0            (0x00000004uL)
+#define INTC_ICDICFR21_LINI1_INT_S_1            (0x00000008uL)
+#define INTC_ICDICFR21_LINI1_INT_M_0            (0x00000010uL)
+#define INTC_ICDICFR21_LINI1_INT_M_1            (0x00000020uL)
+#define INTC_ICDICFR21_ERI0_0                   (0x00400000uL)
+#define INTC_ICDICFR21_ERI0_1                   (0x00800000uL)
+#define INTC_ICDICFR21_RXI0_0                   (0x01000000uL)
+#define INTC_ICDICFR21_RXI0_1                   (0x02000000uL)
+#define INTC_ICDICFR21_TXI0_0                   (0x04000000uL)
+#define INTC_ICDICFR21_TXI0_1                   (0x08000000uL)
+#define INTC_ICDICFR21_TEI0_0                   (0x10000000uL)
+#define INTC_ICDICFR21_TEI0_1                   (0x20000000uL)
+#define INTC_ICDICFR21_ERI1_0                   (0x40000000uL)
+#define INTC_ICDICFR21_ERI1_1                   (0x80000000uL)
+
+#define INTC_ICDICFR22_RXI1_0                   (0x00000001uL)
+#define INTC_ICDICFR22_RXI1_1                   (0x00000002uL)
+#define INTC_ICDICFR22_TXI1_0                   (0x00000004uL)
+#define INTC_ICDICFR22_TXI1_1                   (0x00000008uL)
+#define INTC_ICDICFR22_TEI1_0                   (0x00000010uL)
+#define INTC_ICDICFR22_TEI1_1                   (0x00000020uL)
+#define INTC_ICDICFR22_AVBI_DATA_0              (0x00000040uL)
+#define INTC_ICDICFR22_AVBI_DATA_1              (0x00000080uL)
+#define INTC_ICDICFR22_AVBI_ERROR_0             (0x00000100uL)
+#define INTC_ICDICFR22_AVBI_ERROR_1             (0x00000200uL)
+#define INTC_ICDICFR22_AVBI_MANAGE_0            (0x00000400uL)
+#define INTC_ICDICFR22_AVBI_MANAGE_1            (0x00000800uL)
+#define INTC_ICDICFR22_AVBI_MAC_0               (0x00001000uL)
+#define INTC_ICDICFR22_AVBI_MAC_1               (0x00002000uL)
+#define INTC_ICDICFR22_ETHERI_0                 (0x00004000uL)
+#define INTC_ICDICFR22_ETHERI_1                 (0x00008000uL)
+#define INTC_ICDICFR22_CEUI_0                   (0x01000000uL)
+#define INTC_ICDICFR22_CEUI_1                   (0x02000000uL)
+
+#define INTC_ICDICFR23_H2XMLB_ERRINT_0          (0x04000000uL)
+#define INTC_ICDICFR23_H2XMLB_ERRINT_1          (0x08000000uL)
+#define INTC_ICDICFR23_H2XIC1_ERRINT_0          (0x10000000uL)
+#define INTC_ICDICFR23_H2XIC1_ERRINT_1          (0x20000000uL)
+#define INTC_ICDICFR23_X2HPERI1_ERRINT_0        (0x40000000uL)
+#define INTC_ICDICFR23_X2HPERI1_ERRINT_1        (0x80000000uL)
+
+#define INTC_ICDICFR24_X2HPERI2_ERRINT_0        (0x00000001uL)
+#define INTC_ICDICFR24_X2HPERI2_ERRINT_1        (0x00000002uL)
+#define INTC_ICDICFR24_X2HPERI34_ERRINT_0       (0x00000004uL)
+#define INTC_ICDICFR24_X2HPERI34_ERRINT_1       (0x00000008uL)
+#define INTC_ICDICFR24_X2HPERI5_ERRINT_0        (0x00000010uL)
+#define INTC_ICDICFR24_X2HPERI5_ERRINT_1        (0x00000020uL)
+#define INTC_ICDICFR24_X2HPERI67_ERRINT_0       (0x00000040uL)
+#define INTC_ICDICFR24_X2HPERI67_ERRINT_1       (0x00000080uL)
+#define INTC_ICDICFR24_X2HDBGR_ERRINT_0         (0x00000100uL)
+#define INTC_ICDICFR24_X2HDBGR_ERRINT_1         (0x00000200uL)
+#define INTC_ICDICFR24_X2HBSC_ERRINT_0          (0x00000400uL)
+#define INTC_ICDICFR24_X2HBSC_ERRINT_1          (0x00000800uL)
+#define INTC_ICDICFR24_X2HSPI1_ERRINT_0         (0x00001000uL)
+#define INTC_ICDICFR24_X2HSPI1_ERRINT_1         (0x00002000uL)
+#define INTC_ICDICFR24_X2HSPI2_ERRINT_0         (0x00004000uL)
+#define INTC_ICDICFR24_X2HSPI2_ERRINT_1         (0x00008000uL)
+#define INTC_ICDICFR24_PRRI_0                   (0x00010000uL)
+#define INTC_ICDICFR24_PRRI_1                   (0x00020000uL)
+#define INTC_ICDICFR24_IFEI0_0                  (0x00040000uL)
+#define INTC_ICDICFR24_IFEI0_1                  (0x00080000uL)
+#define INTC_ICDICFR24_OFFI0_0                  (0x00100000uL)
+#define INTC_ICDICFR24_OFFI0_1                  (0x00200000uL)
+#define INTC_ICDICFR24_PFVEI0_0                 (0x00400000uL)
+#define INTC_ICDICFR24_PFVEI0_1                 (0x00800000uL)
+#define INTC_ICDICFR24_IFEI1_0                  (0x01000000uL)
+#define INTC_ICDICFR24_IFEI1_1                  (0x02000000uL)
+#define INTC_ICDICFR24_OFFI1_0                  (0x04000000uL)
+#define INTC_ICDICFR24_OFFI1_1                  (0x08000000uL)
+#define INTC_ICDICFR24_PFVEI1_0                 (0x10000000uL)
+#define INTC_ICDICFR24_PFVEI1_1                 (0x20000000uL)
+
+#define INTC_ICDICFR26_TINT0_0                  (0x00000001uL)
+#define INTC_ICDICFR26_TINT0_1                  (0x00000002uL)
+#define INTC_ICDICFR26_TINT1_0                  (0x00000004uL)
+#define INTC_ICDICFR26_TINT1_1                  (0x00000008uL)
+#define INTC_ICDICFR26_TINT2_0                  (0x00000010uL)
+#define INTC_ICDICFR26_TINT2_1                  (0x00000020uL)
+#define INTC_ICDICFR26_TINT3_0                  (0x00000040uL)
+#define INTC_ICDICFR26_TINT3_1                  (0x00000080uL)
+#define INTC_ICDICFR26_TINT4_0                  (0x00000100uL)
+#define INTC_ICDICFR26_TINT4_1                  (0x00000200uL)
+#define INTC_ICDICFR26_TINT5_0                  (0x00000400uL)
+#define INTC_ICDICFR26_TINT5_1                  (0x00000800uL)
+#define INTC_ICDICFR26_TINT6_0                  (0x00001000uL)
+#define INTC_ICDICFR26_TINT6_1                  (0x00002000uL)
+#define INTC_ICDICFR26_TINT7_0                  (0x00004000uL)
+#define INTC_ICDICFR26_TINT7_1                  (0x00008000uL)
+#define INTC_ICDICFR26_TINT8_0                  (0x00010000uL)
+#define INTC_ICDICFR26_TINT8_1                  (0x00020000uL)
+#define INTC_ICDICFR26_TINT9_0                  (0x00040000uL)
+#define INTC_ICDICFR26_TINT9_1                  (0x00080000uL)
+#define INTC_ICDICFR26_TINT10_0                 (0x00100000uL)
+#define INTC_ICDICFR26_TINT10_1                 (0x00200000uL)
+#define INTC_ICDICFR26_TINT11_0                 (0x00400000uL)
+#define INTC_ICDICFR26_TINT11_1                 (0x00800000uL)
+#define INTC_ICDICFR26_TINT12_0                 (0x01000000uL)
+#define INTC_ICDICFR26_TINT12_1                 (0x02000000uL)
+#define INTC_ICDICFR26_TINT13_0                 (0x04000000uL)
+#define INTC_ICDICFR26_TINT13_1                 (0x08000000uL)
+#define INTC_ICDICFR26_TINT14_0                 (0x10000000uL)
+#define INTC_ICDICFR26_TINT14_1                 (0x20000000uL)
+#define INTC_ICDICFR26_TINT15_0                 (0x40000000uL)
+#define INTC_ICDICFR26_TINT15_1                 (0x80000000uL)
+
+#define INTC_ICDICFR27_TINT16_0                 (0x00000001uL)
+#define INTC_ICDICFR27_TINT16_1                 (0x00000002uL)
+#define INTC_ICDICFR27_TINT17_0                 (0x00000004uL)
+#define INTC_ICDICFR27_TINT17_1                 (0x00000008uL)
+#define INTC_ICDICFR27_TINT18_0                 (0x00000010uL)
+#define INTC_ICDICFR27_TINT18_1                 (0x00000020uL)
+#define INTC_ICDICFR27_TINT19_0                 (0x00000040uL)
+#define INTC_ICDICFR27_TINT19_1                 (0x00000080uL)
+#define INTC_ICDICFR27_TINT20_0                 (0x00000100uL)
+#define INTC_ICDICFR27_TINT20_1                 (0x00000200uL)
+#define INTC_ICDICFR27_TINT21_0                 (0x00000400uL)
+#define INTC_ICDICFR27_TINT21_1                 (0x00000800uL)
+#define INTC_ICDICFR27_TINT22_0                 (0x00001000uL)
+#define INTC_ICDICFR27_TINT22_1                 (0x00002000uL)
+#define INTC_ICDICFR27_TINT23_0                 (0x00004000uL)
+#define INTC_ICDICFR27_TINT23_1                 (0x00008000uL)
+#define INTC_ICDICFR27_TINT24_0                 (0x00010000uL)
+#define INTC_ICDICFR27_TINT24_1                 (0x00020000uL)
+#define INTC_ICDICFR27_TINT25_0                 (0x00040000uL)
+#define INTC_ICDICFR27_TINT25_1                 (0x00080000uL)
+#define INTC_ICDICFR27_TINT26_0                 (0x00100000uL)
+#define INTC_ICDICFR27_TINT26_1                 (0x00200000uL)
+#define INTC_ICDICFR27_TINT27_0                 (0x00400000uL)
+#define INTC_ICDICFR27_TINT27_1                 (0x00800000uL)
+#define INTC_ICDICFR27_TINT28_0                 (0x01000000uL)
+#define INTC_ICDICFR27_TINT28_1                 (0x02000000uL)
+#define INTC_ICDICFR27_TINT29_0                 (0x04000000uL)
+#define INTC_ICDICFR27_TINT29_1                 (0x08000000uL)
+#define INTC_ICDICFR27_TINT30_0                 (0x10000000uL)
+#define INTC_ICDICFR27_TINT30_1                 (0x20000000uL)
+#define INTC_ICDICFR27_TINT31_0                 (0x40000000uL)
+#define INTC_ICDICFR27_TINT31_1                 (0x80000000uL)
+
+#define INTC_ICDICFR28_TINT32_0                 (0x00000001uL)
+#define INTC_ICDICFR28_TINT32_1                 (0x00000002uL)
+#define INTC_ICDICFR28_TINT33_0                 (0x00000004uL)
+#define INTC_ICDICFR28_TINT33_1                 (0x00000008uL)
+#define INTC_ICDICFR28_TINT34_0                 (0x00000010uL)
+#define INTC_ICDICFR28_TINT34_1                 (0x00000020uL)
+#define INTC_ICDICFR28_TINT35_0                 (0x00000040uL)
+#define INTC_ICDICFR28_TINT35_1                 (0x00000080uL)
+#define INTC_ICDICFR28_TINT36_0                 (0x00000100uL)
+#define INTC_ICDICFR28_TINT36_1                 (0x00000200uL)
+#define INTC_ICDICFR28_TINT37_0                 (0x00000400uL)
+#define INTC_ICDICFR28_TINT37_1                 (0x00000800uL)
+#define INTC_ICDICFR28_TINT38_0                 (0x00001000uL)
+#define INTC_ICDICFR28_TINT38_1                 (0x00002000uL)
+#define INTC_ICDICFR28_TINT39_0                 (0x00004000uL)
+#define INTC_ICDICFR28_TINT39_1                 (0x00008000uL)
+#define INTC_ICDICFR28_TINT40_0                 (0x00010000uL)
+#define INTC_ICDICFR28_TINT40_1                 (0x00020000uL)
+#define INTC_ICDICFR28_TINT41_0                 (0x00040000uL)
+#define INTC_ICDICFR28_TINT41_1                 (0x00080000uL)
+#define INTC_ICDICFR28_TINT42_0                 (0x00100000uL)
+#define INTC_ICDICFR28_TINT42_1                 (0x00200000uL)
+#define INTC_ICDICFR28_TINT43_0                 (0x00400000uL)
+#define INTC_ICDICFR28_TINT43_1                 (0x00800000uL)
+#define INTC_ICDICFR28_TINT44_0                 (0x01000000uL)
+#define INTC_ICDICFR28_TINT44_1                 (0x02000000uL)
+#define INTC_ICDICFR28_TINT45_0                 (0x04000000uL)
+#define INTC_ICDICFR28_TINT45_1                 (0x08000000uL)
+#define INTC_ICDICFR28_TINT46_0                 (0x10000000uL)
+#define INTC_ICDICFR28_TINT46_1                 (0x20000000uL)
+#define INTC_ICDICFR28_TINT47_0                 (0x40000000uL)
+#define INTC_ICDICFR28_TINT47_1                 (0x80000000uL)
+
+#define INTC_ICDICFR29_TINT48_0                 (0x00000001uL)
+#define INTC_ICDICFR29_TINT48_1                 (0x00000002uL)
+#define INTC_ICDICFR29_TINT49_0                 (0x00000004uL)
+#define INTC_ICDICFR29_TINT49_1                 (0x00000008uL)
+#define INTC_ICDICFR29_TINT50_0                 (0x00000010uL)
+#define INTC_ICDICFR29_TINT50_1                 (0x00000020uL)
+#define INTC_ICDICFR29_TINT51_0                 (0x00000040uL)
+#define INTC_ICDICFR29_TINT51_1                 (0x00000080uL)
+#define INTC_ICDICFR29_TINT52_0                 (0x00000100uL)
+#define INTC_ICDICFR29_TINT52_1                 (0x00000200uL)
+#define INTC_ICDICFR29_TINT53_0                 (0x00000400uL)
+#define INTC_ICDICFR29_TINT53_1                 (0x00000800uL)
+#define INTC_ICDICFR29_TINT54_0                 (0x00001000uL)
+#define INTC_ICDICFR29_TINT54_1                 (0x00002000uL)
+#define INTC_ICDICFR29_TINT55_0                 (0x00004000uL)
+#define INTC_ICDICFR29_TINT55_1                 (0x00008000uL)
+#define INTC_ICDICFR29_TINT56_0                 (0x00010000uL)
+#define INTC_ICDICFR29_TINT56_1                 (0x00020000uL)
+#define INTC_ICDICFR29_TINT57_0                 (0x00040000uL)
+#define INTC_ICDICFR29_TINT57_1                 (0x00080000uL)
+#define INTC_ICDICFR29_TINT58_0                 (0x00100000uL)
+#define INTC_ICDICFR29_TINT58_1                 (0x00200000uL)
+#define INTC_ICDICFR29_TINT59_0                 (0x00400000uL)
+#define INTC_ICDICFR29_TINT59_1                 (0x00800000uL)
+#define INTC_ICDICFR29_TINT60_0                 (0x01000000uL)
+#define INTC_ICDICFR29_TINT60_1                 (0x02000000uL)
+#define INTC_ICDICFR29_TINT61_0                 (0x04000000uL)
+#define INTC_ICDICFR29_TINT61_1                 (0x08000000uL)
+#define INTC_ICDICFR29_TINT62_0                 (0x10000000uL)
+#define INTC_ICDICFR29_TINT62_1                 (0x20000000uL)
+#define INTC_ICDICFR29_TINT63_0                 (0x40000000uL)
+#define INTC_ICDICFR29_TINT63_1                 (0x80000000uL)
+
+#define INTC_ICDICFR30_TINT64_0                 (0x00000001uL)
+#define INTC_ICDICFR30_TINT64_1                 (0x00000002uL)
+#define INTC_ICDICFR30_TINT65_0                 (0x00000004uL)
+#define INTC_ICDICFR30_TINT65_1                 (0x00000008uL)
+#define INTC_ICDICFR30_TINT66_0                 (0x00000010uL)
+#define INTC_ICDICFR30_TINT66_1                 (0x00000020uL)
+#define INTC_ICDICFR30_TINT67_0                 (0x00000040uL)
+#define INTC_ICDICFR30_TINT67_1                 (0x00000080uL)
+#define INTC_ICDICFR30_TINT68_0                 (0x00000100uL)
+#define INTC_ICDICFR30_TINT68_1                 (0x00000200uL)
+#define INTC_ICDICFR30_TINT69_0                 (0x00000400uL)
+#define INTC_ICDICFR30_TINT69_1                 (0x00000800uL)
+#define INTC_ICDICFR30_TINT70_0                 (0x00001000uL)
+#define INTC_ICDICFR30_TINT70_1                 (0x00002000uL)
+#define INTC_ICDICFR30_TINT71_0                 (0x00004000uL)
+#define INTC_ICDICFR30_TINT71_1                 (0x00008000uL)
+#define INTC_ICDICFR30_TINT72_0                 (0x00010000uL)
+#define INTC_ICDICFR30_TINT72_1                 (0x00020000uL)
+#define INTC_ICDICFR30_TINT73_0                 (0x00040000uL)
+#define INTC_ICDICFR30_TINT73_1                 (0x00080000uL)
+#define INTC_ICDICFR30_TINT74_0                 (0x00100000uL)
+#define INTC_ICDICFR30_TINT74_1                 (0x00200000uL)
+#define INTC_ICDICFR30_TINT75_0                 (0x00400000uL)
+#define INTC_ICDICFR30_TINT75_1                 (0x00800000uL)
+#define INTC_ICDICFR30_TINT76_0                 (0x01000000uL)
+#define INTC_ICDICFR30_TINT76_1                 (0x02000000uL)
+#define INTC_ICDICFR30_TINT77_0                 (0x04000000uL)
+#define INTC_ICDICFR30_TINT77_1                 (0x08000000uL)
+#define INTC_ICDICFR30_TINT78_0                 (0x10000000uL)
+#define INTC_ICDICFR30_TINT78_1                 (0x20000000uL)
+#define INTC_ICDICFR30_TINT79_0                 (0x40000000uL)
+#define INTC_ICDICFR30_TINT79_1                 (0x80000000uL)
+
+#define INTC_ICDICFR31_TINT80_0                 (0x00000001uL)
+#define INTC_ICDICFR31_TINT80_1                 (0x00000002uL)
+#define INTC_ICDICFR31_TINT81_0                 (0x00000004uL)
+#define INTC_ICDICFR31_TINT81_1                 (0x00000008uL)
+#define INTC_ICDICFR31_TINT82_0                 (0x00000010uL)
+#define INTC_ICDICFR31_TINT82_1                 (0x00000020uL)
+#define INTC_ICDICFR31_TINT83_0                 (0x00000040uL)
+#define INTC_ICDICFR31_TINT83_1                 (0x00000080uL)
+#define INTC_ICDICFR31_TINT84_0                 (0x00000100uL)
+#define INTC_ICDICFR31_TINT84_1                 (0x00000200uL)
+#define INTC_ICDICFR31_TINT85_0                 (0x00000400uL)
+#define INTC_ICDICFR31_TINT85_1                 (0x00000800uL)
+#define INTC_ICDICFR31_TINT86_0                 (0x00001000uL)
+#define INTC_ICDICFR31_TINT86_1                 (0x00002000uL)
+#define INTC_ICDICFR31_TINT87_0                 (0x00004000uL)
+#define INTC_ICDICFR31_TINT87_1                 (0x00008000uL)
+#define INTC_ICDICFR31_TINT88_0                 (0x00010000uL)
+#define INTC_ICDICFR31_TINT88_1                 (0x00020000uL)
+#define INTC_ICDICFR31_TINT89_0                 (0x00040000uL)
+#define INTC_ICDICFR31_TINT89_1                 (0x00080000uL)
+#define INTC_ICDICFR31_TINT90_0                 (0x00100000uL)
+#define INTC_ICDICFR31_TINT90_1                 (0x00200000uL)
+#define INTC_ICDICFR31_TINT91_0                 (0x00400000uL)
+#define INTC_ICDICFR31_TINT91_1                 (0x00800000uL)
+#define INTC_ICDICFR31_TINT92_0                 (0x01000000uL)
+#define INTC_ICDICFR31_TINT92_1                 (0x02000000uL)
+#define INTC_ICDICFR31_TINT93_0                 (0x04000000uL)
+#define INTC_ICDICFR31_TINT93_1                 (0x08000000uL)
+#define INTC_ICDICFR31_TINT94_0                 (0x10000000uL)
+#define INTC_ICDICFR31_TINT94_1                 (0x20000000uL)
+#define INTC_ICDICFR31_TINT95_0                 (0x40000000uL)
+#define INTC_ICDICFR31_TINT95_1                 (0x80000000uL)
+
+#define INTC_ICDICFR32_TINT96_0                 (0x00000001uL)
+#define INTC_ICDICFR32_TINT96_1                 (0x00000002uL)
+#define INTC_ICDICFR32_TINT97_0                 (0x00000004uL)
+#define INTC_ICDICFR32_TINT97_1                 (0x00000008uL)
+#define INTC_ICDICFR32_TINT98_0                 (0x00000010uL)
+#define INTC_ICDICFR32_TINT98_1                 (0x00000020uL)
+#define INTC_ICDICFR32_TINT99_0                 (0x00000040uL)
+#define INTC_ICDICFR32_TINT99_1                 (0x00000080uL)
+#define INTC_ICDICFR32_TINT100_0                (0x00000100uL)
+#define INTC_ICDICFR32_TINT100_1                (0x00000200uL)
+#define INTC_ICDICFR32_TINT101_0                (0x00000400uL)
+#define INTC_ICDICFR32_TINT101_1                (0x00000800uL)
+#define INTC_ICDICFR32_TINT102_0                (0x00001000uL)
+#define INTC_ICDICFR32_TINT102_1                (0x00002000uL)
+#define INTC_ICDICFR32_TINT103_0                (0x00004000uL)
+#define INTC_ICDICFR32_TINT103_1                (0x00008000uL)
+#define INTC_ICDICFR32_TINT104_0                (0x00010000uL)
+#define INTC_ICDICFR32_TINT104_1                (0x00020000uL)
+#define INTC_ICDICFR32_TINT105_0                (0x00040000uL)
+#define INTC_ICDICFR32_TINT105_1                (0x00080000uL)
+#define INTC_ICDICFR32_TINT106_0                (0x00100000uL)
+#define INTC_ICDICFR32_TINT106_1                (0x00200000uL)
+#define INTC_ICDICFR32_TINT107_0                (0x00400000uL)
+#define INTC_ICDICFR32_TINT107_1                (0x00800000uL)
+#define INTC_ICDICFR32_TINT108_0                (0x01000000uL)
+#define INTC_ICDICFR32_TINT108_1                (0x02000000uL)
+#define INTC_ICDICFR32_TINT109_0                (0x04000000uL)
+#define INTC_ICDICFR32_TINT109_1                (0x08000000uL)
+#define INTC_ICDICFR32_TINT110_0                (0x10000000uL)
+#define INTC_ICDICFR32_TINT110_1                (0x20000000uL)
+#define INTC_ICDICFR32_TINT111_0                (0x40000000uL)
+#define INTC_ICDICFR32_TINT111_1                (0x80000000uL)
+
+#define INTC_ICDICFR33_TINT112_0                (0x00000001uL)
+#define INTC_ICDICFR33_TINT112_1                (0x00000002uL)
+#define INTC_ICDICFR33_TINT113_0                (0x00000004uL)
+#define INTC_ICDICFR33_TINT113_1                (0x00000008uL)
+#define INTC_ICDICFR33_TINT114_0                (0x00000010uL)
+#define INTC_ICDICFR33_TINT114_1                (0x00000020uL)
+#define INTC_ICDICFR33_TINT115_0                (0x00000040uL)
+#define INTC_ICDICFR33_TINT115_1                (0x00000080uL)
+#define INTC_ICDICFR33_TINT116_0                (0x00000100uL)
+#define INTC_ICDICFR33_TINT116_1                (0x00000200uL)
+#define INTC_ICDICFR33_TINT117_0                (0x00000400uL)
+#define INTC_ICDICFR33_TINT117_1                (0x00000800uL)
+#define INTC_ICDICFR33_TINT118_0                (0x00001000uL)
+#define INTC_ICDICFR33_TINT118_1                (0x00002000uL)
+#define INTC_ICDICFR33_TINT119_0                (0x00004000uL)
+#define INTC_ICDICFR33_TINT119_1                (0x00008000uL)
+#define INTC_ICDICFR33_TINT120_0                (0x00010000uL)
+#define INTC_ICDICFR33_TINT120_1                (0x00020000uL)
+#define INTC_ICDICFR33_TINT121_0                (0x00040000uL)
+#define INTC_ICDICFR33_TINT121_1                (0x00080000uL)
+#define INTC_ICDICFR33_TINT122_0                (0x00100000uL)
+#define INTC_ICDICFR33_TINT122_1                (0x00200000uL)
+#define INTC_ICDICFR33_TINT123_0                (0x00400000uL)
+#define INTC_ICDICFR33_TINT123_1                (0x00800000uL)
+#define INTC_ICDICFR33_TINT124_0                (0x01000000uL)
+#define INTC_ICDICFR33_TINT124_1                (0x02000000uL)
+#define INTC_ICDICFR33_TINT125_0                (0x04000000uL)
+#define INTC_ICDICFR33_TINT125_1                (0x08000000uL)
+#define INTC_ICDICFR33_TINT126_0                (0x10000000uL)
+#define INTC_ICDICFR33_TINT126_1                (0x20000000uL)
+#define INTC_ICDICFR33_TINT127_0                (0x40000000uL)
+#define INTC_ICDICFR33_TINT127_1                (0x80000000uL)
+
+#define INTC_ICDICFR34_TINT128_0                (0x00000001uL)
+#define INTC_ICDICFR34_TINT128_1                (0x00000002uL)
+#define INTC_ICDICFR34_TINT129_0                (0x00000004uL)
+#define INTC_ICDICFR34_TINT129_1                (0x00000008uL)
+#define INTC_ICDICFR34_TINT130_0                (0x00000010uL)
+#define INTC_ICDICFR34_TINT130_1                (0x00000020uL)
+#define INTC_ICDICFR34_TINT131_0                (0x00000040uL)
+#define INTC_ICDICFR34_TINT131_1                (0x00000080uL)
+#define INTC_ICDICFR34_TINT132_0                (0x00000100uL)
+#define INTC_ICDICFR34_TINT132_1                (0x00000200uL)
+#define INTC_ICDICFR34_TINT133_0                (0x00000400uL)
+#define INTC_ICDICFR34_TINT133_1                (0x00000800uL)
+#define INTC_ICDICFR34_TINT134_0                (0x00001000uL)
+#define INTC_ICDICFR34_TINT134_1                (0x00002000uL)
+#define INTC_ICDICFR34_TINT135_0                (0x00004000uL)
+#define INTC_ICDICFR34_TINT135_1                (0x00008000uL)
+#define INTC_ICDICFR34_TINT136_0                (0x00010000uL)
+#define INTC_ICDICFR34_TINT136_1                (0x00020000uL)
+#define INTC_ICDICFR34_TINT137_0                (0x00040000uL)
+#define INTC_ICDICFR34_TINT137_1                (0x00080000uL)
+#define INTC_ICDICFR34_TINT138_0                (0x00100000uL)
+#define INTC_ICDICFR34_TINT138_1                (0x00200000uL)
+#define INTC_ICDICFR34_TINT139_0                (0x00400000uL)
+#define INTC_ICDICFR34_TINT139_1                (0x00800000uL)
+#define INTC_ICDICFR34_TINT140_0                (0x01000000uL)
+#define INTC_ICDICFR34_TINT140_1                (0x02000000uL)
+#define INTC_ICDICFR34_TINT141_0                (0x04000000uL)
+#define INTC_ICDICFR34_TINT141_1                (0x08000000uL)
+#define INTC_ICDICFR34_TINT142_0                (0x10000000uL)
+#define INTC_ICDICFR34_TINT142_1                (0x20000000uL)
+#define INTC_ICDICFR34_TINT143_0                (0x40000000uL)
+#define INTC_ICDICFR34_TINT143_1                (0x80000000uL)
+
+#define INTC_ICDICFR35_TINT144_0                (0x00000001uL)
+#define INTC_ICDICFR35_TINT144_1                (0x00000002uL)
+#define INTC_ICDICFR35_TINT145_0                (0x00000004uL)
+#define INTC_ICDICFR35_TINT145_1                (0x00000008uL)
+#define INTC_ICDICFR35_TINT146_0                (0x00000010uL)
+#define INTC_ICDICFR35_TINT146_1                (0x00000020uL)
+#define INTC_ICDICFR35_TINT147_0                (0x00000040uL)
+#define INTC_ICDICFR35_TINT147_1                (0x00000080uL)
+#define INTC_ICDICFR35_TINT148_0                (0x00000100uL)
+#define INTC_ICDICFR35_TINT148_1                (0x00000200uL)
+#define INTC_ICDICFR35_TINT149_0                (0x00000400uL)
+#define INTC_ICDICFR35_TINT149_1                (0x00000800uL)
+#define INTC_ICDICFR35_TINT150_0                (0x00001000uL)
+#define INTC_ICDICFR35_TINT150_1                (0x00002000uL)
+#define INTC_ICDICFR35_TINT151_0                (0x00004000uL)
+#define INTC_ICDICFR35_TINT151_1                (0x00008000uL)
+#define INTC_ICDICFR35_TINT152_0                (0x00010000uL)
+#define INTC_ICDICFR35_TINT152_1                (0x00020000uL)
+#define INTC_ICDICFR35_TINT153_0                (0x00040000uL)
+#define INTC_ICDICFR35_TINT153_1                (0x00080000uL)
+#define INTC_ICDICFR35_TINT154_0                (0x00100000uL)
+#define INTC_ICDICFR35_TINT154_1                (0x00200000uL)
+#define INTC_ICDICFR35_TINT155_0                (0x00400000uL)
+#define INTC_ICDICFR35_TINT155_1                (0x00800000uL)
+#define INTC_ICDICFR35_TINT156_0                (0x01000000uL)
+#define INTC_ICDICFR35_TINT156_1                (0x02000000uL)
+#define INTC_ICDICFR35_TINT157_0                (0x04000000uL)
+#define INTC_ICDICFR35_TINT157_1                (0x08000000uL)
+#define INTC_ICDICFR35_TINT158_0                (0x10000000uL)
+#define INTC_ICDICFR35_TINT158_1                (0x20000000uL)
+#define INTC_ICDICFR35_TINT159_0                (0x40000000uL)
+#define INTC_ICDICFR35_TINT159_1                (0x80000000uL)
+
+#define INTC_ICDICFR36_TINT160_0                (0x00000001uL)
+#define INTC_ICDICFR36_TINT160_1                (0x00000002uL)
+#define INTC_ICDICFR36_TINT161_0                (0x00000004uL)
+#define INTC_ICDICFR36_TINT161_1                (0x00000008uL)
+#define INTC_ICDICFR36_TINT162_0                (0x00000010uL)
+#define INTC_ICDICFR36_TINT162_1                (0x00000020uL)
+#define INTC_ICDICFR36_TINT163_0                (0x00000040uL)
+#define INTC_ICDICFR36_TINT163_1                (0x00000080uL)
+#define INTC_ICDICFR36_TINT164_0                (0x00000100uL)
+#define INTC_ICDICFR36_TINT164_1                (0x00000200uL)
+#define INTC_ICDICFR36_TINT165_0                (0x00000400uL)
+#define INTC_ICDICFR36_TINT165_1                (0x00000800uL)
+#define INTC_ICDICFR36_TINT166_0                (0x00001000uL)
+#define INTC_ICDICFR36_TINT166_1                (0x00002000uL)
+#define INTC_ICDICFR36_TINT167_0                (0x00004000uL)
+#define INTC_ICDICFR36_TINT167_1                (0x00008000uL)
+#define INTC_ICDICFR36_TINT168_0                (0x00010000uL)
+#define INTC_ICDICFR36_TINT168_1                (0x00020000uL)
+#define INTC_ICDICFR36_TINT169_0                (0x00040000uL)
+#define INTC_ICDICFR36_TINT169_1                (0x00080000uL)
+#define INTC_ICDICFR36_TINT170_0                (0x00100000uL)
+#define INTC_ICDICFR36_TINT170_1                (0x00200000uL)
+
+#define INTC_ICDSGIR_SGIINTID                   (0x0000000FuL)
+#define INTC_ICDSGIR_SATT                       (0x00008000uL)
+#define INTC_ICDSGIR_CPUTargetList              (0x00FF0000uL)
+#define INTC_ICDSGIR_TargetListFilter           (0x03000000uL)
+
+#define INTC_ICCICR_EnableS                     (0x00000001uL)
+#define INTC_ICCICR_EnableNS                    (0x00000002uL)
+#define INTC_ICCICR_AckCtl                      (0x00000004uL)
+#define INTC_ICCICR_FIQEn                       (0x00000008uL)
+#define INTC_ICCICR_SBPR                        (0x00000010uL)
+
+#define INTC_ICCPMR_Priority                    (0x000000FFuL)
+
+#define INTC_ICCBPR_Binarypoint                 (0x00000007uL)
+
+#define INTC_ICCIAR_ACKINTID                    (0x000003FFuL)
+#define INTC_ICCIAR_CPUID                       (0x00001C00uL)
+
+#define INTC_ICCEOIR_EOIINTID                   (0x000003FFuL)
+#define INTC_ICCEOIR_CPUID                      (0x00001C00uL)
+
+#define INTC_ICCRPR_Priority                    (0x000000FFuL)
+
+#define INTC_ICCHPIR_PENDINTID                  (0x000003FFuL)
+#define INTC_ICCHPIR_CPUID                      (0x00001C00uL)
+
+#define INTC_ICCABPR_Binarypoint                (0x00000007uL)
+
+#define INTC_ICCIIDR_Implementer                (0x00000FFFuL)
+#define INTC_ICCIIDR_Revision                   (0x0000F000uL)
+#define INTC_ICCIIDR_Architecture_version       (0x000F0000uL)
+#define INTC_ICCIIDR_ProductID                  (0xFFF00000uL)
+
+#define INTC_ICR0_NMIF                          (0x0002u)
+#define INTC_ICR0_NMIE                          (0x0100u)
+#define INTC_ICR0_NMIL                          (0x8000u)
+
+#define INTC_ICR1_IRQ00S                        (0x0001u)
+#define INTC_ICR1_IRQ01S                        (0x0002u)
+#define INTC_ICR1_IRQ10S                        (0x0004u)
+#define INTC_ICR1_IRQ11S                        (0x0008u)
+#define INTC_ICR1_IRQ20S                        (0x0010u)
+#define INTC_ICR1_IRQ21S                        (0x0020u)
+#define INTC_ICR1_IRQ30S                        (0x0040u)
+#define INTC_ICR1_IRQ31S                        (0x0080u)
+#define INTC_ICR1_IRQ40S                        (0x0100u)
+#define INTC_ICR1_IRQ41S                        (0x0200u)
+#define INTC_ICR1_IRQ50S                        (0x0400u)
+#define INTC_ICR1_IRQ51S                        (0x0800u)
+#define INTC_ICR1_IRQ60S                        (0x1000u)
+#define INTC_ICR1_IRQ61S                        (0x2000u)
+#define INTC_ICR1_IRQ70S                        (0x4000u)
+#define INTC_ICR1_IRQ71S                        (0x8000u)
+
+#define INTC_IRQRR_IRQ0F                        (0x0001u)
+#define INTC_IRQRR_IRQ1F                        (0x0002u)
+#define INTC_IRQRR_IRQ2F                        (0x0004u)
+#define INTC_IRQRR_IRQ3F                        (0x0008u)
+#define INTC_IRQRR_IRQ4F                        (0x0010u)
+#define INTC_IRQRR_IRQ5F                        (0x0020u)
+#define INTC_IRQRR_IRQ6F                        (0x0040u)
+#define INTC_IRQRR_IRQ7F                        (0x0080u)
+
+
+/* ==== Shift values for IO registers ==== */
+#define INTC_ICDDCR_Enable_SHIFT                (0u)
+
+#define INTC_ICDICTR_ITLinesNumber_SHIFT        (0u)
+#define INTC_ICDICTR_CPUNumber_SHIFT            (5u)
+#define INTC_ICDICTR_SecurityExtn_SHIFT         (10u)
+#define INTC_ICDICTR_LSPI_SHIFT                 (11u)
+
+#define INTC_ICDIIDR_Implementer_SHIFT          (0u)
+#define INTC_ICDIIDR_Revision_SHIFT             (12u)
+#define INTC_ICDIIDR_Variant_SHIFT              (16u)
+#define INTC_ICDIIDR_ProductID_SHIFT            (24u)
+
+#define INTC_ICDISR0_SW0_SHIFT                  (0u)
+#define INTC_ICDISR0_SW1_SHIFT                  (1u)
+#define INTC_ICDISR0_SW2_SHIFT                  (2u)
+#define INTC_ICDISR0_SW3_SHIFT                  (3u)
+#define INTC_ICDISR0_SW4_SHIFT                  (4u)
+#define INTC_ICDISR0_SW5_SHIFT                  (5u)
+#define INTC_ICDISR0_SW6_SHIFT                  (6u)
+#define INTC_ICDISR0_SW7_SHIFT                  (7u)
+#define INTC_ICDISR0_SW8_SHIFT                  (8u)
+#define INTC_ICDISR0_SW9_SHIFT                  (9u)
+#define INTC_ICDISR0_SW10_SHIFT                 (10u)
+#define INTC_ICDISR0_SW11_SHIFT                 (11u)
+#define INTC_ICDISR0_SW12_SHIFT                 (12u)
+#define INTC_ICDISR0_SW13_SHIFT                 (13u)
+#define INTC_ICDISR0_SW14_SHIFT                 (14u)
+#define INTC_ICDISR0_SW15_SHIFT                 (15u)
+#define INTC_ICDISR0_PMUIRQ0_SHIFT              (16u)
+#define INTC_ICDISR0_COMMRX0_SHIFT              (17u)
+#define INTC_ICDISR0_COMMTX0_SHIFT              (18u)
+#define INTC_ICDISR0_CTIIRQ0_SHIFT              (19u)
+
+#define INTC_ICDISR1_IRQ0_SHIFT                 (0u)
+#define INTC_ICDISR1_IRQ1_SHIFT                 (1u)
+#define INTC_ICDISR1_IRQ2_SHIFT                 (2u)
+#define INTC_ICDISR1_IRQ3_SHIFT                 (3u)
+#define INTC_ICDISR1_IRQ4_SHIFT                 (4u)
+#define INTC_ICDISR1_IRQ5_SHIFT                 (5u)
+#define INTC_ICDISR1_IRQ6_SHIFT                 (6u)
+#define INTC_ICDISR1_IRQ7_SHIFT                 (7u)
+#define INTC_ICDISR1_PL310ERR_SHIFT             (8u)
+#define INTC_ICDISR1_DMAINT0_SHIFT              (9u)
+#define INTC_ICDISR1_DMAINT1_SHIFT              (10u)
+#define INTC_ICDISR1_DMAINT2_SHIFT              (11u)
+#define INTC_ICDISR1_DMAINT3_SHIFT              (12u)
+#define INTC_ICDISR1_DMAINT4_SHIFT              (13u)
+#define INTC_ICDISR1_DMAINT5_SHIFT              (14u)
+#define INTC_ICDISR1_DMAINT6_SHIFT              (15u)
+#define INTC_ICDISR1_DMAINT7_SHIFT              (16u)
+#define INTC_ICDISR1_DMAINT8_SHIFT              (17u)
+#define INTC_ICDISR1_DMAINT9_SHIFT              (18u)
+#define INTC_ICDISR1_DMAINT10_SHIFT             (19u)
+#define INTC_ICDISR1_DMAINT11_SHIFT             (20u)
+#define INTC_ICDISR1_DMAINT12_SHIFT             (21u)
+#define INTC_ICDISR1_DMAINT13_SHIFT             (22u)
+#define INTC_ICDISR1_DMAINT14_SHIFT             (23u)
+#define INTC_ICDISR1_DMAINT15_SHIFT             (24u)
+#define INTC_ICDISR1_DMAERR_SHIFT               (25u)
+
+#define INTC_ICDISR2_USBI0_SHIFT                (9u)
+#define INTC_ICDISR2_USBI1_SHIFT                (10u)
+#define INTC_ICDISR2_S0_VI_VSYNC0_SHIFT         (11u)
+#define INTC_ICDISR2_S0_LO_VSYNC0_SHIFT         (12u)
+#define INTC_ICDISR2_S0_VSYNCERR0_SHIFT         (13u)
+#define INTC_ICDISR2_GR3_VLINE0_SHIFT           (14u)
+#define INTC_ICDISR2_S0_VFIELD0_SHIFT           (15u)
+#define INTC_ICDISR2_IV1_VBUFERR0_SHIFT         (16u)
+#define INTC_ICDISR2_IV3_VBUFERR0_SHIFT         (17u)
+#define INTC_ICDISR2_IV5_VBUFERR0_SHIFT         (18u)
+#define INTC_ICDISR2_IV6_VBUFERR0_SHIFT         (19u)
+#define INTC_ICDISR2_S0_WLINE0_SHIFT            (20u)
+#define INTC_ICDISR2_S1_VI_VSYNC0_SHIFT         (21u)
+#define INTC_ICDISR2_S1_LO_VSYNC0_SHIFT         (22u)
+#define INTC_ICDISR2_S1_VSYNCERR0_SHIFT         (23u)
+#define INTC_ICDISR2_S1_VFIELD0_SHIFT           (24u)
+#define INTC_ICDISR2_IV2_VBUFERR0_SHIFT         (25u)
+#define INTC_ICDISR2_IV4_VBUFERR0_SHIFT         (26u)
+#define INTC_ICDISR2_S1_WLINE0_SHIFT            (27u)
+#define INTC_ICDISR2_OIR_VI_VSYNC0_SHIFT        (28u)
+#define INTC_ICDISR2_OIR_LO_VSYNC0_SHIFT        (29u)
+#define INTC_ICDISR2_OIR_VSYNCERR0_SHIFT        (30u)
+#define INTC_ICDISR2_OIR_VFIELD0_SHIFT          (31u)
+
+#define INTC_ICDISR3_IV7_VBUFERR0_SHIFT         (0u)
+#define INTC_ICDISR3_IV8_VBUFERR0_SHIFT         (1u)
+#define INTC_ICDISR3_S0_VI_VSYNC1_SHIFT         (3u)
+#define INTC_ICDISR3_S0_LO_VSYNC1_SHIFT         (4u)
+#define INTC_ICDISR3_S0_VSYNCERR1_SHIFT         (5u)
+#define INTC_ICDISR3_GR3_VLINE1_SHIFT           (6u)
+#define INTC_ICDISR3_S0_VFIELD1_SHIFT           (7u)
+#define INTC_ICDISR3_IV1_VBUFERR1_SHIFT         (8u)
+#define INTC_ICDISR3_IV3_VBUFERR1_SHIFT         (9u)
+#define INTC_ICDISR3_IV5_VBUFERR1_SHIFT         (10u)
+#define INTC_ICDISR3_IV6_VBUFERR1_SHIFT         (11u)
+#define INTC_ICDISR3_S0_WLINE1_SHIFT            (12u)
+#define INTC_ICDISR3_S1_VI_VSYNC1_SHIFT         (13u)
+#define INTC_ICDISR3_S1_LO_VSYNC1_SHIFT         (14u)
+#define INTC_ICDISR3_S1_VSYNCERR1_SHIFT         (15u)
+#define INTC_ICDISR3_S1_VFIELD1_SHIFT           (16u)
+#define INTC_ICDISR3_IV2_VBUFERR1_SHIFT         (17u)
+#define INTC_ICDISR3_IV4_VBUFERR1_SHIFT         (18u)
+#define INTC_ICDISR3_S1_WLINE1_SHIFT            (19u)
+#define INTC_ICDISR3_OIR_VI_VSYNC1_SHIFT        (20u)
+#define INTC_ICDISR3_OIR_LO_VSYNC1_SHIFT        (21u)
+#define INTC_ICDISR3_OIR_VLINE1_SHIFT           (22u)
+#define INTC_ICDISR3_OIR_VFIELD1_SHIFT          (23u)
+#define INTC_ICDISR3_IV7_VBUFERR1_SHIFT         (24u)
+#define INTC_ICDISR3_IV8_VBUFERR1_SHIFT         (25u)
+#define INTC_ICDISR3_IMRDI_SHIFT                (27u)
+#define INTC_ICDISR3_IMR2I0_SHIFT               (28u)
+#define INTC_ICDISR3_IMR2I1_SHIFT               (29u)
+#define INTC_ICDISR3_JEDI_SHIFT                 (30u)
+#define INTC_ICDISR3_JDTI_SHIFT                 (31u)
+
+#define INTC_ICDISR4_CMP0_SHIFT                 (0u)
+#define INTC_ICDISR4_CMP1_SHIFT                 (1u)
+#define INTC_ICDISR4_INT0_SHIFT                 (2u)
+#define INTC_ICDISR4_INT1_SHIFT                 (3u)
+#define INTC_ICDISR4_INT2_SHIFT                 (4u)
+#define INTC_ICDISR4_INT3_SHIFT                 (5u)
+#define INTC_ICDISR4_OSTM0TINT_SHIFT            (6u)
+#define INTC_ICDISR4_OSTM1TINT_SHIFT            (7u)
+#define INTC_ICDISR4_CMI_SHIFT                  (8u)
+#define INTC_ICDISR4_WTOUT_SHIFT                (9u)
+#define INTC_ICDISR4_ITI_SHIFT                  (10u)
+#define INTC_ICDISR4_TGI0A_SHIFT                (11u)
+#define INTC_ICDISR4_TGI0B_SHIFT                (12u)
+#define INTC_ICDISR4_TGI0C_SHIFT                (13u)
+#define INTC_ICDISR4_TGI0D_SHIFT                (14u)
+#define INTC_ICDISR4_TGI0V_SHIFT                (15u)
+#define INTC_ICDISR4_TGI0E_SHIFT                (16u)
+#define INTC_ICDISR4_TGI0F_SHIFT                (17u)
+#define INTC_ICDISR4_TGI1A_SHIFT                (18u)
+#define INTC_ICDISR4_TGI1B_SHIFT                (19u)
+#define INTC_ICDISR4_TGI1V_SHIFT                (20u)
+#define INTC_ICDISR4_TGI1U_SHIFT                (21u)
+#define INTC_ICDISR4_TGI2A_SHIFT                (22u)
+#define INTC_ICDISR4_TGI2B_SHIFT                (23u)
+#define INTC_ICDISR4_TGI2V_SHIFT                (24u)
+#define INTC_ICDISR4_TGI2U_SHIFT                (25u)
+#define INTC_ICDISR4_TGI3A_SHIFT                (26u)
+#define INTC_ICDISR4_TGI3B_SHIFT                (27u)
+#define INTC_ICDISR4_TGI3C_SHIFT                (28u)
+#define INTC_ICDISR4_TGI3D_SHIFT                (29u)
+#define INTC_ICDISR4_TGI3V_SHIFT                (30u)
+#define INTC_ICDISR4_TGI4A_SHIFT                (31u)
+
+#define INTC_ICDISR5_TGI4B_SHIFT                (0u)
+#define INTC_ICDISR5_TGI4C_SHIFT                (1u)
+#define INTC_ICDISR5_TGI4D_SHIFT                (2u)
+#define INTC_ICDISR5_TGI4V_SHIFT                (3u)
+#define INTC_ICDISR5_CMI1_SHIFT                 (4u)
+#define INTC_ICDISR5_CMI2_SHIFT                 (5u)
+#define INTC_ICDISR5_SGDEI0_SHIFT               (6u)
+#define INTC_ICDISR5_SGDEI1_SHIFT               (7u)
+#define INTC_ICDISR5_SGDEI2_SHIFT               (8u)
+#define INTC_ICDISR5_SGDEI3_SHIFT               (9u)
+#define INTC_ICDISR5_ADI_SHIFT                  (10u)
+#define INTC_ICDISR5_LMTI_SHIFT                 (11u)
+#define INTC_ICDISR5_SSII0_SHIFT                (12u)
+#define INTC_ICDISR5_SSIRXI0_SHIFT              (13u)
+#define INTC_ICDISR5_SSITXI0_SHIFT              (14u)
+#define INTC_ICDISR5_SSII1_SHIFT                (15u)
+#define INTC_ICDISR5_SSIRXI1_SHIFT              (16u)
+#define INTC_ICDISR5_SSITXI1_SHIFT              (17u)
+#define INTC_ICDISR5_SSII2_SHIFT                (18u)
+#define INTC_ICDISR5_SSIRTI2_SHIFT              (19u)
+#define INTC_ICDISR5_SSII3_SHIFT                (20u)
+#define INTC_ICDISR5_SSIRXI3_SHIFT              (21u)
+#define INTC_ICDISR5_SSITXI3_SHIFT              (22u)
+#define INTC_ICDISR5_SSII4_SHIFT                (23u)
+#define INTC_ICDISR5_SSIRTI4_SHIFT              (24u)
+#define INTC_ICDISR5_SSII5_SHIFT                (25u)
+#define INTC_ICDISR5_SSIRXI5_SHIFT              (26u)
+#define INTC_ICDISR5_SSITXI5_SHIFT              (27u)
+#define INTC_ICDISR5_SPDIFI_SHIFT               (28u)
+#define INTC_ICDISR5_INTIICTEI0_SHIFT           (29u)
+#define INTC_ICDISR5_INTIICRI0_SHIFT            (30u)
+#define INTC_ICDISR5_INTIICTI0_SHIFT            (31u)
+
+#define INTC_ICDISR6_INTIICSPI0_SHIFT           (0u)
+#define INTC_ICDISR6_INTIICSTI0_SHIFT           (1u)
+#define INTC_ICDISR6_INTIICNAKI0_SHIFT          (2u)
+#define INTC_ICDISR6_INTIICALI0_SHIFT           (3u)
+#define INTC_ICDISR6_INTIICTMOI0_SHIFT          (4u)
+#define INTC_ICDISR6_INTIICTEI1_SHIFT           (5u)
+#define INTC_ICDISR6_INTIICRI1_SHIFT            (6u)
+#define INTC_ICDISR6_INTIICTI1_SHIFT            (7u)
+#define INTC_ICDISR6_INTIICSPI1_SHIFT           (8u)
+#define INTC_ICDISR6_INTIICSTI1_SHIFT           (9u)
+#define INTC_ICDISR6_INTIICNAKI1_SHIFT          (10u)
+#define INTC_ICDISR6_INTIICALI1_SHIFT           (11u)
+#define INTC_ICDISR6_INTIICTMOI1_SHIFT          (12u)
+#define INTC_ICDISR6_INTIICTEI2_SHIFT           (13u)
+#define INTC_ICDISR6_INTIICRI2_SHIFT            (14u)
+#define INTC_ICDISR6_INTIICTI2_SHIFT            (15u)
+#define INTC_ICDISR6_INTIICSPI2_SHIFT           (16u)
+#define INTC_ICDISR6_INTIICSTI2_SHIFT           (17u)
+#define INTC_ICDISR6_INTIICNAKI2_SHIFT          (18u)
+#define INTC_ICDISR6_INTIICALI2_SHIFT           (19u)
+#define INTC_ICDISR6_INTIICTMOI2_SHIFT          (20u)
+#define INTC_ICDISR6_INTIICTEI3_SHIFT           (21u)
+#define INTC_ICDISR6_INTIICRI3_SHIFT            (22u)
+#define INTC_ICDISR6_INTIICTI3_SHIFT            (23u)
+#define INTC_ICDISR6_INTIICSPI3_SHIFT           (24u)
+#define INTC_ICDISR6_INTIICSTI3_SHIFT           (25u)
+#define INTC_ICDISR6_INTIICNAKI3_SHIFT          (26u)
+#define INTC_ICDISR6_INTIICALI3_SHIFT           (27u)
+#define INTC_ICDISR6_INTIICTMOI3_SHIFT          (28u)
+#define INTC_ICDISR6_BRI0_SHIFT                 (29u)
+#define INTC_ICDISR6_ERI0_SHIFT                 (30u)
+#define INTC_ICDISR6_RXI0_SHIFT                 (31u)
+
+#define INTC_ICDISR7_TXI0_SHIFT                 (0u)
+#define INTC_ICDISR7_BRI1_SHIFT                 (1u)
+#define INTC_ICDISR7_ERI1_SHIFT                 (2u)
+#define INTC_ICDISR7_RXI1_SHIFT                 (3u)
+#define INTC_ICDISR7_TXI1_SHIFT                 (4u)
+#define INTC_ICDISR7_BRI2_SHIFT                 (5u)
+#define INTC_ICDISR7_ERI2_SHIFT                 (6u)
+#define INTC_ICDISR7_RXI2_SHIFT                 (7u)
+#define INTC_ICDISR7_TXI2_SHIFT                 (8u)
+#define INTC_ICDISR7_BRI3_SHIFT                 (9u)
+#define INTC_ICDISR7_ERI3_SHIFT                 (10u)
+#define INTC_ICDISR7_RXI3_SHIFT                 (11u)
+#define INTC_ICDISR7_TXI3_SHIFT                 (12u)
+#define INTC_ICDISR7_BRI4_SHIFT                 (13u)
+#define INTC_ICDISR7_ERI4_SHIFT                 (14u)
+#define INTC_ICDISR7_RXI4_SHIFT                 (15u)
+#define INTC_ICDISR7_TXI4_SHIFT                 (16u)
+#define INTC_ICDISR7_BRI5_SHIFT                 (17u)
+#define INTC_ICDISR7_ERI5_SHIFT                 (18u)
+#define INTC_ICDISR7_RXI5_SHIFT                 (19u)
+#define INTC_ICDISR7_TXI5_SHIFT                 (20u)
+#define INTC_ICDISR7_BRI6_SHIFT                 (21u)
+#define INTC_ICDISR7_ERI6_SHIFT                 (22u)
+#define INTC_ICDISR7_RXI6_SHIFT                 (23u)
+#define INTC_ICDISR7_TXI6_SHIFT                 (24u)
+#define INTC_ICDISR7_BRI7_SHIFT                 (25u)
+#define INTC_ICDISR7_ERI7_SHIFT                 (26u)
+#define INTC_ICDISR7_RXI7_SHIFT                 (27u)
+#define INTC_ICDISR7_TXI7_SHIFT                 (28u)
+#define INTC_ICDISR7_INTRCANGERR_SHIFT          (29u)
+#define INTC_ICDISR7_INTRCANGRECC_SHIFT         (30u)
+#define INTC_ICDISR7_INTRCAN0REC_SHIFT          (31u)
+
+#define INTC_ICDISR8_INTRCAN0ERR_SHIFT          (0u)
+#define INTC_ICDISR8_INTRCAN0TRX_SHIFT          (1u)
+#define INTC_ICDISR8_INTRCAN1REC_SHIFT          (2u)
+#define INTC_ICDISR8_INTRCAN1ERR_SHIFT          (3u)
+#define INTC_ICDISR8_INTRCAN1TRX_SHIFT          (4u)
+#define INTC_ICDISR8_INTRCAN2REC_SHIFT          (5u)
+#define INTC_ICDISR8_INTRCAN2ERR_SHIFT          (6u)
+#define INTC_ICDISR8_INTRCAN2TRX_SHIFT          (7u)
+#define INTC_ICDISR8_INTRCAN3REC_SHIFT          (8u)
+#define INTC_ICDISR8_INTRCAN3ERR_SHIFT          (9u)
+#define INTC_ICDISR8_INTRCAN3TRX_SHIFT          (10u)
+#define INTC_ICDISR8_INTRCAN4REC_SHIFT          (11u)
+#define INTC_ICDISR8_INTRCAN4ERR_SHIFT          (12u)
+#define INTC_ICDISR8_INTRCAN4TRX_SHIFT          (13u)
+#define INTC_ICDISR8_SPEI0_SHIFT                (14u)
+#define INTC_ICDISR8_SPRI0_SHIFT                (15u)
+#define INTC_ICDISR8_SPTI0_SHIFT                (16u)
+#define INTC_ICDISR8_SPEI1_SHIFT                (17u)
+#define INTC_ICDISR8_SPRI1_SHIFT                (18u)
+#define INTC_ICDISR8_SPTI1_SHIFT                (19u)
+#define INTC_ICDISR8_SPEI2_SHIFT                (20u)
+#define INTC_ICDISR8_SPRI2_SHIFT                (21u)
+#define INTC_ICDISR8_SPTI2_SHIFT                (22u)
+#define INTC_ICDISR8_SPEI3_SHIFT                (23u)
+#define INTC_ICDISR8_SPRI3_SHIFT                (24u)
+#define INTC_ICDISR8_SPTI3_SHIFT                (25u)
+#define INTC_ICDISR8_SPEI4_SHIFT                (26u)
+#define INTC_ICDISR8_SPRI4_SHIFT                (27u)
+#define INTC_ICDISR8_SPTI4_SHIFT                (28u)
+#define INTC_ICDISR8_IEBBTD_SHIFT               (29u)
+#define INTC_ICDISR8_IEBBTERR_SHIFT             (30u)
+#define INTC_ICDISR8_IEBBTSTA_SHIFT             (31u)
+
+#define INTC_ICDISR9_IEBBTV_SHIFT               (0u)
+#define INTC_ICDISR9_ISY_SHIFT                  (1u)
+#define INTC_ICDISR9_IERR_SHIFT                 (2u)
+#define INTC_ICDISR9_ITARG_SHIFT                (3u)
+#define INTC_ICDISR9_ISEC_SHIFT                 (4u)
+#define INTC_ICDISR9_IBUF_SHIFT                 (5u)
+#define INTC_ICDISR9_IREADY_SHIFT               (6u)
+#define INTC_ICDISR9_FLSTE_SHIFT                (7u)
+#define INTC_ICDISR9_FLTENDI_SHIFT              (8u)
+#define INTC_ICDISR9_FLTREQ0I_SHIFT             (9u)
+#define INTC_ICDISR9_FLTREQ1I_SHIFT             (10u)
+#define INTC_ICDISR9_MMC0_SHIFT                 (11u)
+#define INTC_ICDISR9_MMC1_SHIFT                 (12u)
+#define INTC_ICDISR9_MMC2_SHIFT                 (13u)
+#define INTC_ICDISR9_SDHI0_3_SHIFT              (14u)
+#define INTC_ICDISR9_SDHI0_0_SHIFT              (15u)
+#define INTC_ICDISR9_SDHI0_1_SHIFT              (16u)
+#define INTC_ICDISR9_SDHI1_3_SHIFT              (17u)
+#define INTC_ICDISR9_SDHI1_0_SHIFT              (18u)
+#define INTC_ICDISR9_SDHI1_1_SHIFT              (19u)
+#define INTC_ICDISR9_ARM_SHIFT                  (20u)
+#define INTC_ICDISR9_PRD_SHIFT                  (21u)
+#define INTC_ICDISR9_CUP_SHIFT                  (22u)
+#define INTC_ICDISR9_SCUAI0_SHIFT               (23u)
+#define INTC_ICDISR9_SCUAI1_SHIFT               (24u)
+#define INTC_ICDISR9_SCUFDI0_SHIFT              (25u)
+#define INTC_ICDISR9_SCUFDI1_SHIFT              (26u)
+#define INTC_ICDISR9_SCUFDI2_SHIFT              (27u)
+#define INTC_ICDISR9_SCUFDI3_SHIFT              (28u)
+#define INTC_ICDISR9_SCUFUI0_SHIFT              (29u)
+#define INTC_ICDISR9_SCUFUI1_SHIFT              (30u)
+#define INTC_ICDISR9_SCUFUI2_SHIFT              (31u)
+
+#define INTC_ICDISR10_SCUFUI3_SHIFT             (0u)
+#define INTC_ICDISR10_SCUDVI0_SHIFT             (1u)
+#define INTC_ICDISR10_SCUDVI1_SHIFT             (2u)
+#define INTC_ICDISR10_SCUDVI2_SHIFT             (3u)
+#define INTC_ICDISR10_SCUDVI3_SHIFT             (4u)
+#define INTC_ICDISR10_MLB_CINT_SHIFT            (5u)
+#define INTC_ICDISR10_MLB_SINT_SHIFT            (6u)
+#define INTC_ICDISR10_DRC0_SHIFT                (7u)
+#define INTC_ICDISR10_DRC1_SHIFT                (8u)
+#define INTC_ICDISR10_LINI0_INT_T_SHIFT         (11u)
+#define INTC_ICDISR10_LINI0_INT_R_SHIFT         (12u)
+#define INTC_ICDISR10_LINI0_INT_S_SHIFT         (13u)
+#define INTC_ICDISR10_LINI0_INT_M_SHIFT         (14u)
+#define INTC_ICDISR10_LINI1_INT_T_SHIFT         (15u)
+#define INTC_ICDISR10_LINI1_INT_R_SHIFT         (16u)
+#define INTC_ICDISR10_LINI1_INT_S_SHIFT         (17u)
+#define INTC_ICDISR10_LINI1_INT_M_SHIFT         (18u)
+#define INTC_ICDISR10_ERI0_SHIFT                (27u)
+#define INTC_ICDISR10_RXI0_SHIFT                (28u)
+#define INTC_ICDISR10_TXI0_SHIFT                (29u)
+#define INTC_ICDISR10_TEI0_SHIFT                (30u)
+#define INTC_ICDISR10_ERI1_SHIFT                (31u)
+
+#define INTC_ICDISR11_RXI1_SHIFT                (0u)
+#define INTC_ICDISR11_TXI1_SHIFT                (1u)
+#define INTC_ICDISR11_TEI1_SHIFT                (2u)
+#define INTC_ICDISR11_AVBI_DATA_SHIFT           (3u)
+#define INTC_ICDISR11_AVBI_ERROR_SHIFT          (4u)
+#define INTC_ICDISR11_AVBI_MANAGE_SHIFT         (5u)
+#define INTC_ICDISR11_AVBI_MAC_SHIFT            (6u)
+#define INTC_ICDISR11_ETHERI_SHIFT              (7u)
+#define INTC_ICDISR11_CEUI_SHIFT                (12u)
+#define INTC_ICDISR11_H2XMLB_ERRINT_SHIFT       (29u)
+#define INTC_ICDISR11_H2XIC1_ERRINT_SHIFT       (30u)
+#define INTC_ICDISR11_X2HPERI1_ERRINT_SHIFT     (31u)
+
+#define INTC_ICDISR12_X2HPERI2_ERRINT_SHIFT     (0u)
+#define INTC_ICDISR12_X2HPERI34_ERRINT_SHIFT    (1u)
+#define INTC_ICDISR12_X2HPERI5_ERRINT_SHIFT     (2u)
+#define INTC_ICDISR12_X2HPERI67_ERRINT_SHIFT    (3u)
+#define INTC_ICDISR12_X2HDBGR_ERRINT_SHIFT      (4u)
+#define INTC_ICDISR12_X2HBSC_ERRINT_SHIFT       (5u)
+#define INTC_ICDISR12_X2HSPI1_ERRINT_SHIFT      (6u)
+#define INTC_ICDISR12_X2HSPI2_ERRINT_SHIFT      (7u)
+#define INTC_ICDISR12_PRRI_SHIFT                (8u)
+#define INTC_ICDISR12_IFEI0_SHIFT               (9u)
+#define INTC_ICDISR12_OFFI0_SHIFT               (10u)
+#define INTC_ICDISR12_PFVEI0_SHIFT              (11u)
+#define INTC_ICDISR12_IFEI1_SHIFT               (12u)
+#define INTC_ICDISR12_OFFI1_SHIFT               (13u)
+#define INTC_ICDISR12_PFVEI1_SHIFT              (14u)
+
+#define INTC_ICDISR13_TINT0_SHIFT               (0u)
+#define INTC_ICDISR13_TINT1_SHIFT               (1u)
+#define INTC_ICDISR13_TINT2_SHIFT               (2u)
+#define INTC_ICDISR13_TINT3_SHIFT               (3u)
+#define INTC_ICDISR13_TINT4_SHIFT               (4u)
+#define INTC_ICDISR13_TINT5_SHIFT               (5u)
+#define INTC_ICDISR13_TINT6_SHIFT               (6u)
+#define INTC_ICDISR13_TINT7_SHIFT               (7u)
+#define INTC_ICDISR13_TINT8_SHIFT               (8u)
+#define INTC_ICDISR13_TINT9_SHIFT               (9u)
+#define INTC_ICDISR13_TINT10_SHIFT              (10u)
+#define INTC_ICDISR13_TINT11_SHIFT              (11u)
+#define INTC_ICDISR13_TINT12_SHIFT              (12u)
+#define INTC_ICDISR13_TINT13_SHIFT              (13u)
+#define INTC_ICDISR13_TINT14_SHIFT              (14u)
+#define INTC_ICDISR13_TINT15_SHIFT              (15u)
+#define INTC_ICDISR13_TINT16_SHIFT              (16u)
+#define INTC_ICDISR13_TINT17_SHIFT              (17u)
+#define INTC_ICDISR13_TINT18_SHIFT              (18u)
+#define INTC_ICDISR13_TINT19_SHIFT              (19u)
+#define INTC_ICDISR13_TINT20_SHIFT              (20u)
+#define INTC_ICDISR13_TINT21_SHIFT              (21u)
+#define INTC_ICDISR13_TINT22_SHIFT              (22u)
+#define INTC_ICDISR13_TINT23_SHIFT              (23u)
+#define INTC_ICDISR13_TINT24_SHIFT              (24u)
+#define INTC_ICDISR13_TINT25_SHIFT              (25u)
+#define INTC_ICDISR13_TINT26_SHIFT              (26u)
+#define INTC_ICDISR13_TINT27_SHIFT              (27u)
+#define INTC_ICDISR13_TINT28_SHIFT              (28u)
+#define INTC_ICDISR13_TINT29_SHIFT              (29u)
+#define INTC_ICDISR13_TINT30_SHIFT              (30u)
+#define INTC_ICDISR13_TINT31_SHIFT              (31u)
+
+#define INTC_ICDISR14_TINT32_SHIFT              (0u)
+#define INTC_ICDISR14_TINT33_SHIFT              (1u)
+#define INTC_ICDISR14_TINT34_SHIFT              (2u)
+#define INTC_ICDISR14_TINT35_SHIFT              (3u)
+#define INTC_ICDISR14_TINT36_SHIFT              (4u)
+#define INTC_ICDISR14_TINT37_SHIFT              (5u)
+#define INTC_ICDISR14_TINT38_SHIFT              (6u)
+#define INTC_ICDISR14_TINT39_SHIFT              (7u)
+#define INTC_ICDISR14_TINT40_SHIFT              (8u)
+#define INTC_ICDISR14_TINT41_SHIFT              (9u)
+#define INTC_ICDISR14_TINT42_SHIFT              (10u)
+#define INTC_ICDISR14_TINT43_SHIFT              (11u)
+#define INTC_ICDISR14_TINT44_SHIFT              (12u)
+#define INTC_ICDISR14_TINT45_SHIFT              (13u)
+#define INTC_ICDISR14_TINT46_SHIFT              (14u)
+#define INTC_ICDISR14_TINT47_SHIFT              (15u)
+#define INTC_ICDISR14_TINT48_SHIFT              (16u)
+#define INTC_ICDISR14_TINT49_SHIFT              (17u)
+#define INTC_ICDISR14_TINT50_SHIFT              (18u)
+#define INTC_ICDISR14_TINT51_SHIFT              (19u)
+#define INTC_ICDISR14_TINT52_SHIFT              (20u)
+#define INTC_ICDISR14_TINT53_SHIFT              (21u)
+#define INTC_ICDISR14_TINT54_SHIFT              (22u)
+#define INTC_ICDISR14_TINT55_SHIFT              (23u)
+#define INTC_ICDISR14_TINT56_SHIFT              (24u)
+#define INTC_ICDISR14_TINT57_SHIFT              (25u)
+#define INTC_ICDISR14_TINT58_SHIFT              (26u)
+#define INTC_ICDISR14_TINT59_SHIFT              (27u)
+#define INTC_ICDISR14_TINT60_SHIFT              (28u)
+#define INTC_ICDISR14_TINT61_SHIFT              (29u)
+#define INTC_ICDISR14_TINT62_SHIFT              (30u)
+#define INTC_ICDISR14_TINT63_SHIFT              (31u)
+
+#define INTC_ICDISR15_TINT64_SHIFT              (0u)
+#define INTC_ICDISR15_TINT65_SHIFT              (1u)
+#define INTC_ICDISR15_TINT66_SHIFT              (2u)
+#define INTC_ICDISR15_TINT67_SHIFT              (3u)
+#define INTC_ICDISR15_TINT68_SHIFT              (4u)
+#define INTC_ICDISR15_TINT69_SHIFT              (5u)
+#define INTC_ICDISR15_TINT70_SHIFT              (6u)
+#define INTC_ICDISR15_TINT71_SHIFT              (7u)
+#define INTC_ICDISR15_TINT72_SHIFT              (8u)
+#define INTC_ICDISR15_TINT73_SHIFT              (9u)
+#define INTC_ICDISR15_TINT74_SHIFT              (10u)
+#define INTC_ICDISR15_TINT75_SHIFT              (11u)
+#define INTC_ICDISR15_TINT76_SHIFT              (12u)
+#define INTC_ICDISR15_TINT77_SHIFT              (13u)
+#define INTC_ICDISR15_TINT78_SHIFT              (14u)
+#define INTC_ICDISR15_TINT79_SHIFT              (15u)
+#define INTC_ICDISR15_TINT80_SHIFT              (16u)
+#define INTC_ICDISR15_TINT81_SHIFT              (17u)
+#define INTC_ICDISR15_TINT82_SHIFT              (18u)
+#define INTC_ICDISR15_TINT83_SHIFT              (19u)
+#define INTC_ICDISR15_TINT84_SHIFT              (20u)
+#define INTC_ICDISR15_TINT85_SHIFT              (21u)
+#define INTC_ICDISR15_TINT86_SHIFT              (22u)
+#define INTC_ICDISR15_TINT87_SHIFT              (23u)
+#define INTC_ICDISR15_TINT88_SHIFT              (24u)
+#define INTC_ICDISR15_TINT89_SHIFT              (25u)
+#define INTC_ICDISR15_TINT90_SHIFT              (26u)
+#define INTC_ICDISR15_TINT91_SHIFT              (27u)
+#define INTC_ICDISR15_TINT92_SHIFT              (28u)
+#define INTC_ICDISR15_TINT93_SHIFT              (29u)
+#define INTC_ICDISR15_TINT94_SHIFT              (30u)
+#define INTC_ICDISR15_TINT95_SHIFT              (31u)
+
+#define INTC_ICDISR16_TINT96_SHIFT              (0u)
+#define INTC_ICDISR16_TINT97_SHIFT              (1u)
+#define INTC_ICDISR16_TINT98_SHIFT              (2u)
+#define INTC_ICDISR16_TINT99_SHIFT              (3u)
+#define INTC_ICDISR16_TINT100_SHIFT             (4u)
+#define INTC_ICDISR16_TINT101_SHIFT             (5u)
+#define INTC_ICDISR16_TINT102_SHIFT             (6u)
+#define INTC_ICDISR16_TINT103_SHIFT             (7u)
+#define INTC_ICDISR16_TINT104_SHIFT             (8u)
+#define INTC_ICDISR16_TINT105_SHIFT             (9u)
+#define INTC_ICDISR16_TINT106_SHIFT             (10u)
+#define INTC_ICDISR16_TINT107_SHIFT             (11u)
+#define INTC_ICDISR16_TINT108_SHIFT             (12u)
+#define INTC_ICDISR16_TINT109_SHIFT             (13u)
+#define INTC_ICDISR16_TINT110_SHIFT             (14u)
+#define INTC_ICDISR16_TINT111_SHIFT             (15u)
+#define INTC_ICDISR16_TINT112_SHIFT             (16u)
+#define INTC_ICDISR16_TINT113_SHIFT             (17u)
+#define INTC_ICDISR16_TINT114_SHIFT             (18u)
+#define INTC_ICDISR16_TINT115_SHIFT             (19u)
+#define INTC_ICDISR16_TINT116_SHIFT             (20u)
+#define INTC_ICDISR16_TINT117_SHIFT             (21u)
+#define INTC_ICDISR16_TINT118_SHIFT             (22u)
+#define INTC_ICDISR16_TINT119_SHIFT             (23u)
+#define INTC_ICDISR16_TINT120_SHIFT             (24u)
+#define INTC_ICDISR16_TINT121_SHIFT             (25u)
+#define INTC_ICDISR16_TINT122_SHIFT             (26u)
+#define INTC_ICDISR16_TINT123_SHIFT             (27u)
+#define INTC_ICDISR16_TINT124_SHIFT             (28u)
+#define INTC_ICDISR16_TINT125_SHIFT             (29u)
+#define INTC_ICDISR16_TINT126_SHIFT             (30u)
+#define INTC_ICDISR16_TINT127_SHIFT             (31u)
+
+#define INTC_ICDISR17_TINT128_SHIFT             (0u)
+#define INTC_ICDISR17_TINT129_SHIFT             (1u)
+#define INTC_ICDISR17_TINT130_SHIFT             (2u)
+#define INTC_ICDISR17_TINT131_SHIFT             (3u)
+#define INTC_ICDISR17_TINT132_SHIFT             (4u)
+#define INTC_ICDISR17_TINT133_SHIFT             (5u)
+#define INTC_ICDISR17_TINT134_SHIFT             (6u)
+#define INTC_ICDISR17_TINT135_SHIFT             (7u)
+#define INTC_ICDISR17_TINT136_SHIFT             (8u)
+#define INTC_ICDISR17_TINT137_SHIFT             (9u)
+#define INTC_ICDISR17_TINT138_SHIFT             (10u)
+#define INTC_ICDISR17_TINT139_SHIFT             (11u)
+#define INTC_ICDISR17_TINT140_SHIFT             (12u)
+#define INTC_ICDISR17_TINT141_SHIFT             (13u)
+#define INTC_ICDISR17_TINT142_SHIFT             (14u)
+#define INTC_ICDISR17_TINT143_SHIFT             (15u)
+#define INTC_ICDISR17_TINT144_SHIFT             (16u)
+#define INTC_ICDISR17_TINT145_SHIFT             (17u)
+#define INTC_ICDISR17_TINT146_SHIFT             (18u)
+#define INTC_ICDISR17_TINT147_SHIFT             (19u)
+#define INTC_ICDISR17_TINT148_SHIFT             (20u)
+#define INTC_ICDISR17_TINT149_SHIFT             (21u)
+#define INTC_ICDISR17_TINT150_SHIFT             (22u)
+#define INTC_ICDISR17_TINT151_SHIFT             (23u)
+#define INTC_ICDISR17_TINT152_SHIFT             (24u)
+#define INTC_ICDISR17_TINT153_SHIFT             (25u)
+#define INTC_ICDISR17_TINT154_SHIFT             (26u)
+#define INTC_ICDISR17_TINT155_SHIFT             (27u)
+#define INTC_ICDISR17_TINT156_SHIFT             (28u)
+#define INTC_ICDISR17_TINT157_SHIFT             (29u)
+#define INTC_ICDISR17_TINT158_SHIFT             (30u)
+#define INTC_ICDISR17_TINT159_SHIFT             (31u)
+
+#define INTC_ICDISR18_TINT160_SHIFT             (0u)
+#define INTC_ICDISR18_TINT161_SHIFT             (1u)
+#define INTC_ICDISR18_TINT162_SHIFT             (2u)
+#define INTC_ICDISR18_TINT163_SHIFT             (3u)
+#define INTC_ICDISR18_TINT164_SHIFT             (4u)
+#define INTC_ICDISR18_TINT165_SHIFT             (5u)
+#define INTC_ICDISR18_TINT166_SHIFT             (6u)
+#define INTC_ICDISR18_TINT167_SHIFT             (7u)
+#define INTC_ICDISR18_TINT168_SHIFT             (8u)
+#define INTC_ICDISR18_TINT169_SHIFT             (9u)
+#define INTC_ICDISR18_TINT170_SHIFT             (10u)
+
+#define INTC_ICDISER0_SW0_SHIFT                 (0u)
+#define INTC_ICDISER0_SW1_SHIFT                 (1u)
+#define INTC_ICDISER0_SW2_SHIFT                 (2u)
+#define INTC_ICDISER0_SW3_SHIFT                 (3u)
+#define INTC_ICDISER0_SW4_SHIFT                 (4u)
+#define INTC_ICDISER0_SW5_SHIFT                 (5u)
+#define INTC_ICDISER0_SW6_SHIFT                 (6u)
+#define INTC_ICDISER0_SW7_SHIFT                 (7u)
+#define INTC_ICDISER0_SW8_SHIFT                 (8u)
+#define INTC_ICDISER0_SW9_SHIFT                 (9u)
+#define INTC_ICDISER0_SW10_SHIFT                (10u)
+#define INTC_ICDISER0_SW11_SHIFT                (11u)
+#define INTC_ICDISER0_SW12_SHIFT                (12u)
+#define INTC_ICDISER0_SW13_SHIFT                (13u)
+#define INTC_ICDISER0_SW14_SHIFT                (14u)
+#define INTC_ICDISER0_SW15_SHIFT                (15u)
+#define INTC_ICDISER0_PMUIRQ0_SHIFT             (16u)
+#define INTC_ICDISER0_COMMRX0_SHIFT             (17u)
+#define INTC_ICDISER0_COMMTX0_SHIFT             (18u)
+#define INTC_ICDISER0_CTIIRQ0_SHIFT             (19u)
+
+#define INTC_ICDISER1_IRQ0_SHIFT                (0u)
+#define INTC_ICDISER1_IRQ1_SHIFT                (1u)
+#define INTC_ICDISER1_IRQ2_SHIFT                (2u)
+#define INTC_ICDISER1_IRQ3_SHIFT                (3u)
+#define INTC_ICDISER1_IRQ4_SHIFT                (4u)
+#define INTC_ICDISER1_IRQ5_SHIFT                (5u)
+#define INTC_ICDISER1_IRQ6_SHIFT                (6u)
+#define INTC_ICDISER1_IRQ7_SHIFT                (7u)
+#define INTC_ICDISER1_PL310ERR_SHIFT            (8u)
+#define INTC_ICDISER1_DMAINT0_SHIFT             (9u)
+#define INTC_ICDISER1_DMAINT1_SHIFT             (10u)
+#define INTC_ICDISER1_DMAINT2_SHIFT             (11u)
+#define INTC_ICDISER1_DMAINT3_SHIFT             (12u)
+#define INTC_ICDISER1_DMAINT4_SHIFT             (13u)
+#define INTC_ICDISER1_DMAINT5_SHIFT             (14u)
+#define INTC_ICDISER1_DMAINT6_SHIFT             (15u)
+#define INTC_ICDISER1_DMAINT7_SHIFT             (16u)
+#define INTC_ICDISER1_DMAINT8_SHIFT             (17u)
+#define INTC_ICDISER1_DMAINT9_SHIFT             (18u)
+#define INTC_ICDISER1_DMAINT10_SHIFT            (19u)
+#define INTC_ICDISER1_DMAINT11_SHIFT            (20u)
+#define INTC_ICDISER1_DMAINT12_SHIFT            (21u)
+#define INTC_ICDISER1_DMAINT13_SHIFT            (22u)
+#define INTC_ICDISER1_DMAINT14_SHIFT            (23u)
+#define INTC_ICDISER1_DMAINT15_SHIFT            (24u)
+#define INTC_ICDISER1_DMAERR_SHIFT              (25u)
+
+#define INTC_ICDISER2_USBI0_SHIFT               (9u)
+#define INTC_ICDISER2_USBI1_SHIFT               (10u)
+#define INTC_ICDISER2_S0_VI_VSYNC0_SHIFT        (11u)
+#define INTC_ICDISER2_S0_LO_VSYNC0_SHIFT        (12u)
+#define INTC_ICDISER2_S0_VSYNCERR0_SHIFT        (13u)
+#define INTC_ICDISER2_GR3_VLINE0_SHIFT          (14u)
+#define INTC_ICDISER2_S0_VFIELD0_SHIFT          (15u)
+#define INTC_ICDISER2_IV1_VBUFERR0_SHIFT        (16u)
+#define INTC_ICDISER2_IV3_VBUFERR0_SHIFT        (17u)
+#define INTC_ICDISER2_IV5_VBUFERR0_SHIFT        (18u)
+#define INTC_ICDISER2_IV6_VBUFERR0_SHIFT        (19u)
+#define INTC_ICDISER2_S0_WLINE0_SHIFT           (20u)
+#define INTC_ICDISER2_S1_VI_VSYNC0_SHIFT        (21u)
+#define INTC_ICDISER2_S1_LO_VSYNC0_SHIFT        (22u)
+#define INTC_ICDISER2_S1_VSYNCERR0_SHIFT        (23u)
+#define INTC_ICDISER2_S1_VFIELD0_SHIFT          (24u)
+#define INTC_ICDISER2_IV2_VBUFERR0_SHIFT        (25u)
+#define INTC_ICDISER2_IV4_VBUFERR0_SHIFT        (26u)
+#define INTC_ICDISER2_S1_WLINE0_SHIFT           (27u)
+#define INTC_ICDISER2_OIR_VI_VSYNC0_SHIFT       (28u)
+#define INTC_ICDISER2_OIR_LO_VSYNC0_SHIFT       (29u)
+#define INTC_ICDISER2_OIR_VSYNCERR0_SHIFT       (30u)
+#define INTC_ICDISER2_OIR_VFIELD0_SHIFT         (31u)
+
+#define INTC_ICDISER3_IV7_VBUFERR0_SHIFT        (0u)
+#define INTC_ICDISER3_IV8_VBUFERR0_SHIFT        (1u)
+#define INTC_ICDISER3_S0_VI_VSYNC1_SHIFT        (3u)
+#define INTC_ICDISER3_S0_LO_VSYNC1_SHIFT        (4u)
+#define INTC_ICDISER3_S0_VSYNCERR1_SHIFT        (5u)
+#define INTC_ICDISER3_GR3_VLINE1_SHIFT          (6u)
+#define INTC_ICDISER3_S0_VFIELD1_SHIFT          (7u)
+#define INTC_ICDISER3_IV1_VBUFERR1_SHIFT        (8u)
+#define INTC_ICDISER3_IV3_VBUFERR1_SHIFT        (9u)
+#define INTC_ICDISER3_IV5_VBUFERR1_SHIFT        (10u)
+#define INTC_ICDISER3_IV6_VBUFERR1_SHIFT        (11u)
+#define INTC_ICDISER3_S0_WLINE1_SHIFT           (12u)
+#define INTC_ICDISER3_S1_VI_VSYNC1_SHIFT        (13u)
+#define INTC_ICDISER3_S1_LO_VSYNC1_SHIFT        (14u)
+#define INTC_ICDISER3_S1_VSYNCERR1_SHIFT        (15u)
+#define INTC_ICDISER3_S1_VFIELD1_SHIFT          (16u)
+#define INTC_ICDISER3_IV2_VBUFERR1_SHIFT        (17u)
+#define INTC_ICDISER3_IV4_VBUFERR1_SHIFT        (18u)
+#define INTC_ICDISER3_S1_WLINE1_SHIFT           (19u)
+#define INTC_ICDISER3_OIR_VI_VSYNC1_SHIFT       (20u)
+#define INTC_ICDISER3_OIR_LO_VSYNC1_SHIFT       (21u)
+#define INTC_ICDISER3_OIR_VLINE1_SHIFT          (22u)
+#define INTC_ICDISER3_OIR_VFIELD1_SHIFT         (23u)
+#define INTC_ICDISER3_IV7_VBUFERR1_SHIFT        (24u)
+#define INTC_ICDISER3_IV8_VBUFERR1_SHIFT        (25u)
+#define INTC_ICDISER3_IMRDI_SHIFT               (27u)
+#define INTC_ICDISER3_IMR2I0_SHIFT              (28u)
+#define INTC_ICDISER3_IMR2I1_SHIFT              (29u)
+#define INTC_ICDISER3_JEDI_SHIFT                (30u)
+#define INTC_ICDISER3_JDTI_SHIFT                (31u)
+
+#define INTC_ICDISER4_CMP0_SHIFT                (0u)
+#define INTC_ICDISER4_CMP1_SHIFT                (1u)
+#define INTC_ICDISER4_INT0_SHIFT                (2u)
+#define INTC_ICDISER4_INT1_SHIFT                (3u)
+#define INTC_ICDISER4_INT2_SHIFT                (4u)
+#define INTC_ICDISER4_INT3_SHIFT                (5u)
+#define INTC_ICDISER4_OSTM0TINT_SHIFT           (6u)
+#define INTC_ICDISER4_OSTM1TINT_SHIFT           (7u)
+#define INTC_ICDISER4_CMI_SHIFT                 (8u)
+#define INTC_ICDISER4_WTOUT_SHIFT               (9u)
+#define INTC_ICDISER4_ITI_SHIFT                 (10u)
+#define INTC_ICDISER4_TGI0A_SHIFT               (11u)
+#define INTC_ICDISER4_TGI0B_SHIFT               (12u)
+#define INTC_ICDISER4_TGI0C_SHIFT               (13u)
+#define INTC_ICDISER4_TGI0D_SHIFT               (14u)
+#define INTC_ICDISER4_TGI0V_SHIFT               (15u)
+#define INTC_ICDISER4_TGI0E_SHIFT               (16u)
+#define INTC_ICDISER4_TGI0F_SHIFT               (17u)
+#define INTC_ICDISER4_TGI1A_SHIFT               (18u)
+#define INTC_ICDISER4_TGI1B_SHIFT               (19u)
+#define INTC_ICDISER4_TGI1V_SHIFT               (20u)
+#define INTC_ICDISER4_TGI1U_SHIFT               (21u)
+#define INTC_ICDISER4_TGI2A_SHIFT               (22u)
+#define INTC_ICDISER4_TGI2B_SHIFT               (23u)
+#define INTC_ICDISER4_TGI2V_SHIFT               (24u)
+#define INTC_ICDISER4_TGI2U_SHIFT               (25u)
+#define INTC_ICDISER4_TGI3A_SHIFT               (26u)
+#define INTC_ICDISER4_TGI3B_SHIFT               (27u)
+#define INTC_ICDISER4_TGI3C_SHIFT               (28u)
+#define INTC_ICDISER4_TGI3D_SHIFT               (29u)
+#define INTC_ICDISER4_TGI3V_SHIFT               (30u)
+#define INTC_ICDISER4_TGI4A_SHIFT               (31u)
+
+#define INTC_ICDISER5_TGI4B_SHIFT               (0u)
+#define INTC_ICDISER5_TGI4C_SHIFT               (1u)
+#define INTC_ICDISER5_TGI4D_SHIFT               (2u)
+#define INTC_ICDISER5_TGI4V_SHIFT               (3u)
+#define INTC_ICDISER5_CMI1_SHIFT                (4u)
+#define INTC_ICDISER5_CMI2_SHIFT                (5u)
+#define INTC_ICDISER5_SGDEI0_SHIFT              (6u)
+#define INTC_ICDISER5_SGDEI1_SHIFT              (7u)
+#define INTC_ICDISER5_SGDEI2_SHIFT              (8u)
+#define INTC_ICDISER5_SGDEI3_SHIFT              (9u)
+#define INTC_ICDISER5_ADI_SHIFT                 (10u)
+#define INTC_ICDISER5_LMTI_SHIFT                (11u)
+#define INTC_ICDISER5_SSII0_SHIFT               (12u)
+#define INTC_ICDISER5_SSIRXI0_SHIFT             (13u)
+#define INTC_ICDISER5_SSITXI0_SHIFT             (14u)
+#define INTC_ICDISER5_SSII1_SHIFT               (15u)
+#define INTC_ICDISER5_SSIRXI1_SHIFT             (16u)
+#define INTC_ICDISER5_SSITXI1_SHIFT             (17u)
+#define INTC_ICDISER5_SSII2_SHIFT               (18u)
+#define INTC_ICDISER5_SSIRTI2_SHIFT             (19u)
+#define INTC_ICDISER5_SSII3_SHIFT               (20u)
+#define INTC_ICDISER5_SSIRXI3_SHIFT             (21u)
+#define INTC_ICDISER5_SSITXI3_SHIFT             (22u)
+#define INTC_ICDISER5_SSII4_SHIFT               (23u)
+#define INTC_ICDISER5_SSIRTI4_SHIFT             (24u)
+#define INTC_ICDISER5_SSII5_SHIFT               (25u)
+#define INTC_ICDISER5_SSIRXI5_SHIFT             (26u)
+#define INTC_ICDISER5_SSITXI5_SHIFT             (27u)
+#define INTC_ICDISER5_SPDIFI_SHIFT              (28u)
+#define INTC_ICDISER5_INTIICTEI0_SHIFT          (29u)
+#define INTC_ICDISER5_INTIICRI0_SHIFT           (30u)
+#define INTC_ICDISER5_INTIICTI0_SHIFT           (31u)
+
+#define INTC_ICDISER6_INTIICSPI0_SHIFT          (0u)
+#define INTC_ICDISER6_INTIICSTI0_SHIFT          (1u)
+#define INTC_ICDISER6_INTIICNAKI0_SHIFT         (2u)
+#define INTC_ICDISER6_INTIICALI0_SHIFT          (3u)
+#define INTC_ICDISER6_INTIICTMOI0_SHIFT         (4u)
+#define INTC_ICDISER6_INTIICTEI1_SHIFT          (5u)
+#define INTC_ICDISER6_INTIICRI1_SHIFT           (6u)
+#define INTC_ICDISER6_INTIICTI1_SHIFT           (7u)
+#define INTC_ICDISER6_INTIICSPI1_SHIFT          (8u)
+#define INTC_ICDISER6_INTIICSTI1_SHIFT          (9u)
+#define INTC_ICDISER6_INTIICNAKI1_SHIFT         (10u)
+#define INTC_ICDISER6_INTIICALI1_SHIFT          (11u)
+#define INTC_ICDISER6_INTIICTMOI1_SHIFT         (12u)
+#define INTC_ICDISER6_INTIICTEI2_SHIFT          (13u)
+#define INTC_ICDISER6_INTIICRI2_SHIFT           (14u)
+#define INTC_ICDISER6_INTIICTI2_SHIFT           (15u)
+#define INTC_ICDISER6_INTIICSPI2_SHIFT          (16u)
+#define INTC_ICDISER6_INTIICSTI2_SHIFT          (17u)
+#define INTC_ICDISER6_INTIICNAKI2_SHIFT         (18u)
+#define INTC_ICDISER6_INTIICALI2_SHIFT          (19u)
+#define INTC_ICDISER6_INTIICTMOI2_SHIFT         (20u)
+#define INTC_ICDISER6_INTIICTEI3_SHIFT          (21u)
+#define INTC_ICDISER6_INTIICRI3_SHIFT           (22u)
+#define INTC_ICDISER6_INTIICTI3_SHIFT           (23u)
+#define INTC_ICDISER6_INTIICSPI3_SHIFT          (24u)
+#define INTC_ICDISER6_INTIICSTI3_SHIFT          (25u)
+#define INTC_ICDISER6_INTIICNAKI3_SHIFT         (26u)
+#define INTC_ICDISER6_INTIICALI3_SHIFT          (27u)
+#define INTC_ICDISER6_INTIICTMOI3_SHIFT         (28u)
+#define INTC_ICDISER6_BRI0_SHIFT                (29u)
+#define INTC_ICDISER6_ERI0_SHIFT                (30u)
+#define INTC_ICDISER6_RXI0_SHIFT                (31u)
+
+#define INTC_ICDISER7_TXI0_SHIFT                (0u)
+#define INTC_ICDISER7_BRI1_SHIFT                (1u)
+#define INTC_ICDISER7_ERI1_SHIFT                (2u)
+#define INTC_ICDISER7_RXI1_SHIFT                (3u)
+#define INTC_ICDISER7_TXI1_SHIFT                (4u)
+#define INTC_ICDISER7_BRI2_SHIFT                (5u)
+#define INTC_ICDISER7_ERI2_SHIFT                (6u)
+#define INTC_ICDISER7_RXI2_SHIFT                (7u)
+#define INTC_ICDISER7_TXI2_SHIFT                (8u)
+#define INTC_ICDISER7_BRI3_SHIFT                (9u)
+#define INTC_ICDISER7_ERI3_SHIFT                (10u)
+#define INTC_ICDISER7_RXI3_SHIFT                (11u)
+#define INTC_ICDISER7_TXI3_SHIFT                (12u)
+#define INTC_ICDISER7_BRI4_SHIFT                (13u)
+#define INTC_ICDISER7_ERI4_SHIFT                (14u)
+#define INTC_ICDISER7_RXI4_SHIFT                (15u)
+#define INTC_ICDISER7_TXI4_SHIFT                (16u)
+#define INTC_ICDISER7_BRI5_SHIFT                (17u)
+#define INTC_ICDISER7_ERI5_SHIFT                (18u)
+#define INTC_ICDISER7_RXI5_SHIFT                (19u)
+#define INTC_ICDISER7_TXI5_SHIFT                (20u)
+#define INTC_ICDISER7_BRI6_SHIFT                (21u)
+#define INTC_ICDISER7_ERI6_SHIFT                (22u)
+#define INTC_ICDISER7_RXI6_SHIFT                (23u)
+#define INTC_ICDISER7_TXI6_SHIFT                (24u)
+#define INTC_ICDISER7_BRI7_SHIFT                (25u)
+#define INTC_ICDISER7_ERI7_SHIFT                (26u)
+#define INTC_ICDISER7_RXI7_SHIFT                (27u)
+#define INTC_ICDISER7_TXI7_SHIFT                (28u)
+#define INTC_ICDISER7_INTRCANGERR_SHIFT         (29u)
+#define INTC_ICDISER7_INTRCANGRECC_SHIFT        (30u)
+#define INTC_ICDISER7_INTRCAN0REC_SHIFT         (31u)
+
+#define INTC_ICDISER8_INTRCAN0ERR_SHIFT         (0u)
+#define INTC_ICDISER8_INTRCAN0TRX_SHIFT         (1u)
+#define INTC_ICDISER8_INTRCAN1REC_SHIFT         (2u)
+#define INTC_ICDISER8_INTRCAN1ERR_SHIFT         (3u)
+#define INTC_ICDISER8_INTRCAN1TRX_SHIFT         (4u)
+#define INTC_ICDISER8_INTRCAN2REC_SHIFT         (5u)
+#define INTC_ICDISER8_INTRCAN2ERR_SHIFT         (6u)
+#define INTC_ICDISER8_INTRCAN2TRX_SHIFT         (7u)
+#define INTC_ICDISER8_INTRCAN3REC_SHIFT         (8u)
+#define INTC_ICDISER8_INTRCAN3ERR_SHIFT         (9u)
+#define INTC_ICDISER8_INTRCAN3TRX_SHIFT         (10u)
+#define INTC_ICDISER8_INTRCAN4REC_SHIFT         (11u)
+#define INTC_ICDISER8_INTRCAN4ERR_SHIFT         (12u)
+#define INTC_ICDISER8_INTRCAN4TRX_SHIFT         (13u)
+#define INTC_ICDISER8_SPEI0_SHIFT               (14u)
+#define INTC_ICDISER8_SPRI0_SHIFT               (15u)
+#define INTC_ICDISER8_SPTI0_SHIFT               (16u)
+#define INTC_ICDISER8_SPEI1_SHIFT               (17u)
+#define INTC_ICDISER8_SPRI1_SHIFT               (18u)
+#define INTC_ICDISER8_SPTI1_SHIFT               (19u)
+#define INTC_ICDISER8_SPEI2_SHIFT               (20u)
+#define INTC_ICDISER8_SPRI2_SHIFT               (21u)
+#define INTC_ICDISER8_SPTI2_SHIFT               (22u)
+#define INTC_ICDISER8_SPEI3_SHIFT               (23u)
+#define INTC_ICDISER8_SPRI3_SHIFT               (24u)
+#define INTC_ICDISER8_SPTI3_SHIFT               (25u)
+#define INTC_ICDISER8_SPEI4_SHIFT               (26u)
+#define INTC_ICDISER8_SPRI4_SHIFT               (27u)
+#define INTC_ICDISER8_SPTI4_SHIFT               (28u)
+#define INTC_ICDISER8_IEBBTD_SHIFT              (29u)
+#define INTC_ICDISER8_IEBBTERR_SHIFT            (30u)
+#define INTC_ICDISER8_IEBBTSTA_SHIFT            (31u)
+
+#define INTC_ICDISER9_IEBBTV_SHIFT              (0u)
+#define INTC_ICDISER9_ISY_SHIFT                 (1u)
+#define INTC_ICDISER9_IERR_SHIFT                (2u)
+#define INTC_ICDISER9_ITARG_SHIFT               (3u)
+#define INTC_ICDISER9_ISEC_SHIFT                (4u)
+#define INTC_ICDISER9_IBUF_SHIFT                (5u)
+#define INTC_ICDISER9_IREADY_SHIFT              (6u)
+#define INTC_ICDISER9_FLSTE_SHIFT               (7u)
+#define INTC_ICDISER9_FLTENDI_SHIFT             (8u)
+#define INTC_ICDISER9_FLTREQ0I_SHIFT            (9u)
+#define INTC_ICDISER9_FLTREQ1I_SHIFT            (10u)
+#define INTC_ICDISER9_MMC0_SHIFT                (11u)
+#define INTC_ICDISER9_MMC1_SHIFT                (12u)
+#define INTC_ICDISER9_MMC2_SHIFT                (13u)
+#define INTC_ICDISER9_SDHI0_3_SHIFT             (14u)
+#define INTC_ICDISER9_SDHI0_0_SHIFT             (15u)
+#define INTC_ICDISER9_SDHI0_1_SHIFT             (16u)
+#define INTC_ICDISER9_SDHI1_3_SHIFT             (17u)
+#define INTC_ICDISER9_SDHI1_0_SHIFT             (18u)
+#define INTC_ICDISER9_SDHI1_1_SHIFT             (19u)
+#define INTC_ICDISER9_ARM_SHIFT                 (20u)
+#define INTC_ICDISER9_PRD_SHIFT                 (21u)
+#define INTC_ICDISER9_CUP_SHIFT                 (22u)
+#define INTC_ICDISER9_SCUAI0_SHIFT              (23u)
+#define INTC_ICDISER9_SCUAI1_SHIFT              (24u)
+#define INTC_ICDISER9_SCUFDI0_SHIFT             (25u)
+#define INTC_ICDISER9_SCUFDI1_SHIFT             (26u)
+#define INTC_ICDISER9_SCUFDI2_SHIFT             (27u)
+#define INTC_ICDISER9_SCUFDI3_SHIFT             (28u)
+#define INTC_ICDISER9_SCUFUI0_SHIFT             (29u)
+#define INTC_ICDISER9_SCUFUI1_SHIFT             (30u)
+#define INTC_ICDISER9_SCUFUI2_SHIFT             (31u)
+
+#define INTC_ICDISER10_SCUFUI3_SHIFT            (0u)
+#define INTC_ICDISER10_SCUDVI0_SHIFT            (1u)
+#define INTC_ICDISER10_SCUDVI1_SHIFT            (2u)
+#define INTC_ICDISER10_SCUDVI2_SHIFT            (3u)
+#define INTC_ICDISER10_SCUDVI3_SHIFT            (4u)
+#define INTC_ICDISER10_MLB_CINT_SHIFT           (5u)
+#define INTC_ICDISER10_MLB_SINT_SHIFT           (6u)
+#define INTC_ICDISER10_DRC0_SHIFT               (7u)
+#define INTC_ICDISER10_DRC1_SHIFT               (8u)
+#define INTC_ICDISER10_LINI0_INT_T_SHIFT        (11u)
+#define INTC_ICDISER10_LINI0_INT_R_SHIFT        (12u)
+#define INTC_ICDISER10_LINI0_INT_S_SHIFT        (13u)
+#define INTC_ICDISER10_LINI0_INT_M_SHIFT        (14u)
+#define INTC_ICDISER10_LINI1_INT_T_SHIFT        (15u)
+#define INTC_ICDISER10_LINI1_INT_R_SHIFT        (16u)
+#define INTC_ICDISER10_LINI1_INT_S_SHIFT        (17u)
+#define INTC_ICDISER10_LINI1_INT_M_SHIFT        (18u)
+#define INTC_ICDISER10_ERI0_SHIFT               (27u)
+#define INTC_ICDISER10_RXI0_SHIFT               (28u)
+#define INTC_ICDISER10_TXI0_SHIFT               (29u)
+#define INTC_ICDISER10_TEI0_SHIFT               (30u)
+#define INTC_ICDISER10_ERI1_SHIFT               (31u)
+
+#define INTC_ICDISER11_RXI1_SHIFT               (0u)
+#define INTC_ICDISER11_TXI1_SHIFT               (1u)
+#define INTC_ICDISER11_TEI1_SHIFT               (2u)
+#define INTC_ICDISER11_AVBI_DATA_SHIFT          (3u)
+#define INTC_ICDISER11_AVBI_ERROR_SHIFT         (4u)
+#define INTC_ICDISER11_AVBI_MANAGE_SHIFT        (5u)
+#define INTC_ICDISER11_AVBI_MAC_SHIFT           (6u)
+#define INTC_ICDISER11_ETHERI_SHIFT             (7u)
+#define INTC_ICDISER11_CEUI_SHIFT               (12u)
+#define INTC_ICDISER11_H2XMLB_ERRINT_SHIFT      (29u)
+#define INTC_ICDISER11_H2XIC1_ERRINT_SHIFT      (30u)
+#define INTC_ICDISER11_X2HPERI1_ERRINT_SHIFT    (31u)
+
+#define INTC_ICDISER12_X2HPERI2_ERRINT_SHIFT    (0u)
+#define INTC_ICDISER12_X2HPERI34_ERRINT_SHIFT   (1u)
+#define INTC_ICDISER12_X2HPERI5_ERRINT_SHIFT    (2u)
+#define INTC_ICDISER12_X2HPERI67_ERRINT_SHIFT   (3u)
+#define INTC_ICDISER12_X2HDBGR_ERRINT_SHIFT     (4u)
+#define INTC_ICDISER12_X2HBSC_ERRINT_SHIFT      (5u)
+#define INTC_ICDISER12_X2HSPI1_ERRINT_SHIFT     (6u)
+#define INTC_ICDISER12_X2HSPI2_ERRINT_SHIFT     (7u)
+#define INTC_ICDISER12_PRRI_SHIFT               (8u)
+#define INTC_ICDISER12_IFEI0_SHIFT              (9u)
+#define INTC_ICDISER12_OFFI0_SHIFT              (10u)
+#define INTC_ICDISER12_PFVEI0_SHIFT             (11u)
+#define INTC_ICDISER12_IFEI1_SHIFT              (12u)
+#define INTC_ICDISER12_OFFI1_SHIFT              (13u)
+#define INTC_ICDISER12_PFVEI1_SHIFT             (14u)
+
+#define INTC_ICDISER13_TINT0_SHIFT              (0u)
+#define INTC_ICDISER13_TINT1_SHIFT              (1u)
+#define INTC_ICDISER13_TINT2_SHIFT              (2u)
+#define INTC_ICDISER13_TINT3_SHIFT              (3u)
+#define INTC_ICDISER13_TINT4_SHIFT              (4u)
+#define INTC_ICDISER13_TINT5_SHIFT              (5u)
+#define INTC_ICDISER13_TINT6_SHIFT              (6u)
+#define INTC_ICDISER13_TINT7_SHIFT              (7u)
+#define INTC_ICDISER13_TINT8_SHIFT              (8u)
+#define INTC_ICDISER13_TINT9_SHIFT              (9u)
+#define INTC_ICDISER13_TINT10_SHIFT             (10u)
+#define INTC_ICDISER13_TINT11_SHIFT             (11u)
+#define INTC_ICDISER13_TINT12_SHIFT             (12u)
+#define INTC_ICDISER13_TINT13_SHIFT             (13u)
+#define INTC_ICDISER13_TINT14_SHIFT             (14u)
+#define INTC_ICDISER13_TINT15_SHIFT             (15u)
+#define INTC_ICDISER13_TINT16_SHIFT             (16u)
+#define INTC_ICDISER13_TINT17_SHIFT             (17u)
+#define INTC_ICDISER13_TINT18_SHIFT             (18u)
+#define INTC_ICDISER13_TINT19_SHIFT             (19u)
+#define INTC_ICDISER13_TINT20_SHIFT             (20u)
+#define INTC_ICDISER13_TINT21_SHIFT             (21u)
+#define INTC_ICDISER13_TINT22_SHIFT             (22u)
+#define INTC_ICDISER13_TINT23_SHIFT             (23u)
+#define INTC_ICDISER13_TINT24_SHIFT             (24u)
+#define INTC_ICDISER13_TINT25_SHIFT             (25u)
+#define INTC_ICDISER13_TINT26_SHIFT             (26u)
+#define INTC_ICDISER13_TINT27_SHIFT             (27u)
+#define INTC_ICDISER13_TINT28_SHIFT             (28u)
+#define INTC_ICDISER13_TINT29_SHIFT             (29u)
+#define INTC_ICDISER13_TINT30_SHIFT             (30u)
+#define INTC_ICDISER13_TINT31_SHIFT             (31u)
+
+#define INTC_ICDISER14_TINT32_SHIFT             (0u)
+#define INTC_ICDISER14_TINT33_SHIFT             (1u)
+#define INTC_ICDISER14_TINT34_SHIFT             (2u)
+#define INTC_ICDISER14_TINT35_SHIFT             (3u)
+#define INTC_ICDISER14_TINT36_SHIFT             (4u)
+#define INTC_ICDISER14_TINT37_SHIFT             (5u)
+#define INTC_ICDISER14_TINT38_SHIFT             (6u)
+#define INTC_ICDISER14_TINT39_SHIFT             (7u)
+#define INTC_ICDISER14_TINT40_SHIFT             (8u)
+#define INTC_ICDISER14_TINT41_SHIFT             (9u)
+#define INTC_ICDISER14_TINT42_SHIFT             (10u)
+#define INTC_ICDISER14_TINT43_SHIFT             (11u)
+#define INTC_ICDISER14_TINT44_SHIFT             (12u)
+#define INTC_ICDISER14_TINT45_SHIFT             (13u)
+#define INTC_ICDISER14_TINT46_SHIFT             (14u)
+#define INTC_ICDISER14_TINT47_SHIFT             (15u)
+#define INTC_ICDISER14_TINT48_SHIFT             (16u)
+#define INTC_ICDISER14_TINT49_SHIFT             (17u)
+#define INTC_ICDISER14_TINT50_SHIFT             (18u)
+#define INTC_ICDISER14_TINT51_SHIFT             (19u)
+#define INTC_ICDISER14_TINT52_SHIFT             (20u)
+#define INTC_ICDISER14_TINT53_SHIFT             (21u)
+#define INTC_ICDISER14_TINT54_SHIFT             (22u)
+#define INTC_ICDISER14_TINT55_SHIFT             (23u)
+#define INTC_ICDISER14_TINT56_SHIFT             (24u)
+#define INTC_ICDISER14_TINT57_SHIFT             (25u)
+#define INTC_ICDISER14_TINT58_SHIFT             (26u)
+#define INTC_ICDISER14_TINT59_SHIFT             (27u)
+#define INTC_ICDISER14_TINT60_SHIFT             (28u)
+#define INTC_ICDISER14_TINT61_SHIFT             (29u)
+#define INTC_ICDISER14_TINT62_SHIFT             (30u)
+#define INTC_ICDISER14_TINT63_SHIFT             (31u)
+
+#define INTC_ICDISER15_TINT64_SHIFT             (0u)
+#define INTC_ICDISER15_TINT65_SHIFT             (1u)
+#define INTC_ICDISER15_TINT66_SHIFT             (2u)
+#define INTC_ICDISER15_TINT67_SHIFT             (3u)
+#define INTC_ICDISER15_TINT68_SHIFT             (4u)
+#define INTC_ICDISER15_TINT69_SHIFT             (5u)
+#define INTC_ICDISER15_TINT70_SHIFT             (6u)
+#define INTC_ICDISER15_TINT71_SHIFT             (7u)
+#define INTC_ICDISER15_TINT72_SHIFT             (8u)
+#define INTC_ICDISER15_TINT73_SHIFT             (9u)
+#define INTC_ICDISER15_TINT74_SHIFT             (10u)
+#define INTC_ICDISER15_TINT75_SHIFT             (11u)
+#define INTC_ICDISER15_TINT76_SHIFT             (12u)
+#define INTC_ICDISER15_TINT77_SHIFT             (13u)
+#define INTC_ICDISER15_TINT78_SHIFT             (14u)
+#define INTC_ICDISER15_TINT79_SHIFT             (15u)
+#define INTC_ICDISER15_TINT80_SHIFT             (16u)
+#define INTC_ICDISER15_TINT81_SHIFT             (17u)
+#define INTC_ICDISER15_TINT82_SHIFT             (18u)
+#define INTC_ICDISER15_TINT83_SHIFT             (19u)
+#define INTC_ICDISER15_TINT84_SHIFT             (20u)
+#define INTC_ICDISER15_TINT85_SHIFT             (21u)
+#define INTC_ICDISER15_TINT86_SHIFT             (22u)
+#define INTC_ICDISER15_TINT87_SHIFT             (23u)
+#define INTC_ICDISER15_TINT88_SHIFT             (24u)
+#define INTC_ICDISER15_TINT89_SHIFT             (25u)
+#define INTC_ICDISER15_TINT90_SHIFT             (26u)
+#define INTC_ICDISER15_TINT91_SHIFT             (27u)
+#define INTC_ICDISER15_TINT92_SHIFT             (28u)
+#define INTC_ICDISER15_TINT93_SHIFT             (29u)
+#define INTC_ICDISER15_TINT94_SHIFT             (30u)
+#define INTC_ICDISER15_TINT95_SHIFT             (31u)
+
+#define INTC_ICDISER16_TINT96_SHIFT             (0u)
+#define INTC_ICDISER16_TINT97_SHIFT             (1u)
+#define INTC_ICDISER16_TINT98_SHIFT             (2u)
+#define INTC_ICDISER16_TINT99_SHIFT             (3u)
+#define INTC_ICDISER16_TINT100_SHIFT            (4u)
+#define INTC_ICDISER16_TINT101_SHIFT            (5u)
+#define INTC_ICDISER16_TINT102_SHIFT            (6u)
+#define INTC_ICDISER16_TINT103_SHIFT            (7u)
+#define INTC_ICDISER16_TINT104_SHIFT            (8u)
+#define INTC_ICDISER16_TINT105_SHIFT            (9u)
+#define INTC_ICDISER16_TINT106_SHIFT            (10u)
+#define INTC_ICDISER16_TINT107_SHIFT            (11u)
+#define INTC_ICDISER16_TINT108_SHIFT            (12u)
+#define INTC_ICDISER16_TINT109_SHIFT            (13u)
+#define INTC_ICDISER16_TINT110_SHIFT            (14u)
+#define INTC_ICDISER16_TINT111_SHIFT            (15u)
+#define INTC_ICDISER16_TINT112_SHIFT            (16u)
+#define INTC_ICDISER16_TINT113_SHIFT            (17u)
+#define INTC_ICDISER16_TINT114_SHIFT            (18u)
+#define INTC_ICDISER16_TINT115_SHIFT            (19u)
+#define INTC_ICDISER16_TINT116_SHIFT            (20u)
+#define INTC_ICDISER16_TINT117_SHIFT            (21u)
+#define INTC_ICDISER16_TINT118_SHIFT            (22u)
+#define INTC_ICDISER16_TINT119_SHIFT            (23u)
+#define INTC_ICDISER16_TINT120_SHIFT            (24u)
+#define INTC_ICDISER16_TINT121_SHIFT            (25u)
+#define INTC_ICDISER16_TINT122_SHIFT            (26u)
+#define INTC_ICDISER16_TINT123_SHIFT            (27u)
+#define INTC_ICDISER16_TINT124_SHIFT            (28u)
+#define INTC_ICDISER16_TINT125_SHIFT            (29u)
+#define INTC_ICDISER16_TINT126_SHIFT            (30u)
+#define INTC_ICDISER16_TINT127_SHIFT            (31u)
+
+#define INTC_ICDISER17_TINT128_SHIFT            (0u)
+#define INTC_ICDISER17_TINT129_SHIFT            (1u)
+#define INTC_ICDISER17_TINT130_SHIFT            (2u)
+#define INTC_ICDISER17_TINT131_SHIFT            (3u)
+#define INTC_ICDISER17_TINT132_SHIFT            (4u)
+#define INTC_ICDISER17_TINT133_SHIFT            (5u)
+#define INTC_ICDISER17_TINT134_SHIFT            (6u)
+#define INTC_ICDISER17_TINT135_SHIFT            (7u)
+#define INTC_ICDISER17_TINT136_SHIFT            (8u)
+#define INTC_ICDISER17_TINT137_SHIFT            (9u)
+#define INTC_ICDISER17_TINT138_SHIFT            (10u)
+#define INTC_ICDISER17_TINT139_SHIFT            (11u)
+#define INTC_ICDISER17_TINT140_SHIFT            (12u)
+#define INTC_ICDISER17_TINT141_SHIFT            (13u)
+#define INTC_ICDISER17_TINT142_SHIFT            (14u)
+#define INTC_ICDISER17_TINT143_SHIFT            (15u)
+#define INTC_ICDISER17_TINT144_SHIFT            (16u)
+#define INTC_ICDISER17_TINT145_SHIFT            (17u)
+#define INTC_ICDISER17_TINT146_SHIFT            (18u)
+#define INTC_ICDISER17_TINT147_SHIFT            (19u)
+#define INTC_ICDISER17_TINT148_SHIFT            (20u)
+#define INTC_ICDISER17_TINT149_SHIFT            (21u)
+#define INTC_ICDISER17_TINT150_SHIFT            (22u)
+#define INTC_ICDISER17_TINT151_SHIFT            (23u)
+#define INTC_ICDISER17_TINT152_SHIFT            (24u)
+#define INTC_ICDISER17_TINT153_SHIFT            (25u)
+#define INTC_ICDISER17_TINT154_SHIFT            (26u)
+#define INTC_ICDISER17_TINT155_SHIFT            (27u)
+#define INTC_ICDISER17_TINT156_SHIFT            (28u)
+#define INTC_ICDISER17_TINT157_SHIFT            (29u)
+#define INTC_ICDISER17_TINT158_SHIFT            (30u)
+#define INTC_ICDISER17_TINT159_SHIFT            (31u)
+
+#define INTC_ICDISER18_TINT160_SHIFT            (0u)
+#define INTC_ICDISER18_TINT161_SHIFT            (1u)
+#define INTC_ICDISER18_TINT162_SHIFT            (2u)
+#define INTC_ICDISER18_TINT163_SHIFT            (3u)
+#define INTC_ICDISER18_TINT164_SHIFT            (4u)
+#define INTC_ICDISER18_TINT165_SHIFT            (5u)
+#define INTC_ICDISER18_TINT166_SHIFT            (6u)
+#define INTC_ICDISER18_TINT167_SHIFT            (7u)
+#define INTC_ICDISER18_TINT168_SHIFT            (8u)
+#define INTC_ICDISER18_TINT169_SHIFT            (9u)
+#define INTC_ICDISER18_TINT170_SHIFT            (10u)
+
+#define INTC_ICDICER0_SW0_SHIFT                 (0u)
+#define INTC_ICDICER0_SW1_SHIFT                 (1u)
+#define INTC_ICDICER0_SW2_SHIFT                 (2u)
+#define INTC_ICDICER0_SW3_SHIFT                 (3u)
+#define INTC_ICDICER0_SW4_SHIFT                 (4u)
+#define INTC_ICDICER0_SW5_SHIFT                 (5u)
+#define INTC_ICDICER0_SW6_SHIFT                 (6u)
+#define INTC_ICDICER0_SW7_SHIFT                 (7u)
+#define INTC_ICDICER0_SW8_SHIFT                 (8u)
+#define INTC_ICDICER0_SW9_SHIFT                 (9u)
+#define INTC_ICDICER0_SW10_SHIFT                (10u)
+#define INTC_ICDICER0_SW11_SHIFT                (11u)
+#define INTC_ICDICER0_SW12_SHIFT                (12u)
+#define INTC_ICDICER0_SW13_SHIFT                (13u)
+#define INTC_ICDICER0_SW14_SHIFT                (14u)
+#define INTC_ICDICER0_SW15_SHIFT                (15u)
+#define INTC_ICDICER0_PMUIRQ0_SHIFT             (16u)
+#define INTC_ICDICER0_COMMRX0_SHIFT             (17u)
+#define INTC_ICDICER0_COMMTX0_SHIFT             (18u)
+#define INTC_ICDICER0_CTIIRQ0_SHIFT             (19u)
+
+#define INTC_ICDICER1_IRQ0_SHIFT                (0u)
+#define INTC_ICDICER1_IRQ1_SHIFT                (1u)
+#define INTC_ICDICER1_IRQ2_SHIFT                (2u)
+#define INTC_ICDICER1_IRQ3_SHIFT                (3u)
+#define INTC_ICDICER1_IRQ4_SHIFT                (4u)
+#define INTC_ICDICER1_IRQ5_SHIFT                (5u)
+#define INTC_ICDICER1_IRQ6_SHIFT                (6u)
+#define INTC_ICDICER1_IRQ7_SHIFT                (7u)
+#define INTC_ICDICER1_PL310ERR_SHIFT            (8u)
+#define INTC_ICDICER1_DMAINT0_SHIFT             (9u)
+#define INTC_ICDICER1_DMAINT1_SHIFT             (10u)
+#define INTC_ICDICER1_DMAINT2_SHIFT             (11u)
+#define INTC_ICDICER1_DMAINT3_SHIFT             (12u)
+#define INTC_ICDICER1_DMAINT4_SHIFT             (13u)
+#define INTC_ICDICER1_DMAINT5_SHIFT             (14u)
+#define INTC_ICDICER1_DMAINT6_SHIFT             (15u)
+#define INTC_ICDICER1_DMAINT7_SHIFT             (16u)
+#define INTC_ICDICER1_DMAINT8_SHIFT             (17u)
+#define INTC_ICDICER1_DMAINT9_SHIFT             (18u)
+#define INTC_ICDICER1_DMAINT10_SHIFT            (19u)
+#define INTC_ICDICER1_DMAINT11_SHIFT            (20u)
+#define INTC_ICDICER1_DMAINT12_SHIFT            (21u)
+#define INTC_ICDICER1_DMAINT13_SHIFT            (22u)
+#define INTC_ICDICER1_DMAINT14_SHIFT            (23u)
+#define INTC_ICDICER1_DMAINT15_SHIFT            (24u)
+#define INTC_ICDICER1_DMAERR_SHIFT              (25u)
+
+#define INTC_ICDICER2_USBI0_SHIFT               (9u)
+#define INTC_ICDICER2_USBI1_SHIFT               (10u)
+#define INTC_ICDICER2_S0_VI_VSYNC0_SHIFT        (11u)
+#define INTC_ICDICER2_S0_LO_VSYNC0_SHIFT        (12u)
+#define INTC_ICDICER2_S0_VSYNCERR0_SHIFT        (13u)
+#define INTC_ICDICER2_GR3_VLINE0_SHIFT          (14u)
+#define INTC_ICDICER2_S0_VFIELD0_SHIFT          (15u)
+#define INTC_ICDICER2_IV1_VBUFERR0_SHIFT        (16u)
+#define INTC_ICDICER2_IV3_VBUFERR0_SHIFT        (17u)
+#define INTC_ICDICER2_IV5_VBUFERR0_SHIFT        (18u)
+#define INTC_ICDICER2_IV6_VBUFERR0_SHIFT        (19u)
+#define INTC_ICDICER2_S0_WLINE0_SHIFT           (20u)
+#define INTC_ICDICER2_S1_VI_VSYNC0_SHIFT        (21u)
+#define INTC_ICDICER2_S1_LO_VSYNC0_SHIFT        (22u)
+#define INTC_ICDICER2_S1_VSYNCERR0_SHIFT        (23u)
+#define INTC_ICDICER2_S1_VFIELD0_SHIFT          (24u)
+#define INTC_ICDICER2_IV2_VBUFERR0_SHIFT        (25u)
+#define INTC_ICDICER2_IV4_VBUFERR0_SHIFT        (26u)
+#define INTC_ICDICER2_S1_WLINE0_SHIFT           (27u)
+#define INTC_ICDICER2_OIR_VI_VSYNC0_SHIFT       (28u)
+#define INTC_ICDICER2_OIR_LO_VSYNC0_SHIFT       (29u)
+#define INTC_ICDICER2_OIR_VSYNCERR0_SHIFT       (30u)
+#define INTC_ICDICER2_OIR_VFIELD0_SHIFT         (31u)
+
+#define INTC_ICDICER3_IV7_VBUFERR0_SHIFT        (0u)
+#define INTC_ICDICER3_IV8_VBUFERR0_SHIFT        (1u)
+#define INTC_ICDICER3_S0_VI_VSYNC1_SHIFT        (3u)
+#define INTC_ICDICER3_S0_LO_VSYNC1_SHIFT        (4u)
+#define INTC_ICDICER3_S0_VSYNCERR1_SHIFT        (5u)
+#define INTC_ICDICER3_GR3_VLINE1_SHIFT          (6u)
+#define INTC_ICDICER3_S0_VFIELD1_SHIFT          (7u)
+#define INTC_ICDICER3_IV1_VBUFERR1_SHIFT        (8u)
+#define INTC_ICDICER3_IV3_VBUFERR1_SHIFT        (9u)
+#define INTC_ICDICER3_IV5_VBUFERR1_SHIFT        (10u)
+#define INTC_ICDICER3_IV6_VBUFERR1_SHIFT        (11u)
+#define INTC_ICDICER3_S0_WLINE1_SHIFT           (12u)
+#define INTC_ICDICER3_S1_VI_VSYNC1_SHIFT        (13u)
+#define INTC_ICDICER3_S1_LO_VSYNC1_SHIFT        (14u)
+#define INTC_ICDICER3_S1_VSYNCERR1_SHIFT        (15u)
+#define INTC_ICDICER3_S1_VFIELD1_SHIFT          (16u)
+#define INTC_ICDICER3_IV2_VBUFERR1_SHIFT        (17u)
+#define INTC_ICDICER3_IV4_VBUFERR1_SHIFT        (18u)
+#define INTC_ICDICER3_S1_WLINE1_SHIFT           (19u)
+#define INTC_ICDICER3_OIR_VI_VSYNC1_SHIFT       (20u)
+#define INTC_ICDICER3_OIR_LO_VSYNC1_SHIFT       (21u)
+#define INTC_ICDICER3_OIR_VLINE1_SHIFT          (22u)
+#define INTC_ICDICER3_OIR_VFIELD1_SHIFT         (23u)
+#define INTC_ICDICER3_IV7_VBUFERR1_SHIFT        (24u)
+#define INTC_ICDICER3_IV8_VBUFERR1_SHIFT        (25u)
+#define INTC_ICDICER3_IMRDI_SHIFT               (27u)
+#define INTC_ICDICER3_IMR2I0_SHIFT              (28u)
+#define INTC_ICDICER3_IMR2I1_SHIFT              (29u)
+#define INTC_ICDICER3_JEDI_SHIFT                (30u)
+#define INTC_ICDICER3_JDTI_SHIFT                (31u)
+
+#define INTC_ICDICER4_CMP0_SHIFT                (0u)
+#define INTC_ICDICER4_CMP1_SHIFT                (1u)
+#define INTC_ICDICER4_INT0_SHIFT                (2u)
+#define INTC_ICDICER4_INT1_SHIFT                (3u)
+#define INTC_ICDICER4_INT2_SHIFT                (4u)
+#define INTC_ICDICER4_INT3_SHIFT                (5u)
+#define INTC_ICDICER4_OSTM0TINT_SHIFT           (6u)
+#define INTC_ICDICER4_OSTM1TINT_SHIFT           (7u)
+#define INTC_ICDICER4_CMI_SHIFT                 (8u)
+#define INTC_ICDICER4_WTOUT_SHIFT               (9u)
+#define INTC_ICDICER4_ITI_SHIFT                 (10u)
+#define INTC_ICDICER4_TGI0A_SHIFT               (11u)
+#define INTC_ICDICER4_TGI0B_SHIFT               (12u)
+#define INTC_ICDICER4_TGI0C_SHIFT               (13u)
+#define INTC_ICDICER4_TGI0D_SHIFT               (14u)
+#define INTC_ICDICER4_TGI0V_SHIFT               (15u)
+#define INTC_ICDICER4_TGI0E_SHIFT               (16u)
+#define INTC_ICDICER4_TGI0F_SHIFT               (17u)
+#define INTC_ICDICER4_TGI1A_SHIFT               (18u)
+#define INTC_ICDICER4_TGI1B_SHIFT               (19u)
+#define INTC_ICDICER4_TGI1V_SHIFT               (20u)
+#define INTC_ICDICER4_TGI1U_SHIFT               (21u)
+#define INTC_ICDICER4_TGI2A_SHIFT               (22u)
+#define INTC_ICDICER4_TGI2B_SHIFT               (23u)
+#define INTC_ICDICER4_TGI2V_SHIFT               (24u)
+#define INTC_ICDICER4_TGI2U_SHIFT               (25u)
+#define INTC_ICDICER4_TGI3A_SHIFT               (26u)
+#define INTC_ICDICER4_TGI3B_SHIFT               (27u)
+#define INTC_ICDICER4_TGI3C_SHIFT               (28u)
+#define INTC_ICDICER4_TGI3D_SHIFT               (29u)
+#define INTC_ICDICER4_TGI3V_SHIFT               (30u)
+#define INTC_ICDICER4_TGI4A_SHIFT               (31u)
+
+#define INTC_ICDICER5_TGI4B_SHIFT               (0u)
+#define INTC_ICDICER5_TGI4C_SHIFT               (1u)
+#define INTC_ICDICER5_TGI4D_SHIFT               (2u)
+#define INTC_ICDICER5_TGI4V_SHIFT               (3u)
+#define INTC_ICDICER5_CMI1_SHIFT                (4u)
+#define INTC_ICDICER5_CMI2_SHIFT                (5u)
+#define INTC_ICDICER5_SGDEI0_SHIFT              (6u)
+#define INTC_ICDICER5_SGDEI1_SHIFT              (7u)
+#define INTC_ICDICER5_SGDEI2_SHIFT              (8u)
+#define INTC_ICDICER5_SGDEI3_SHIFT              (9u)
+#define INTC_ICDICER5_ADI_SHIFT                 (10u)
+#define INTC_ICDICER5_LMTI_SHIFT                (11u)
+#define INTC_ICDICER5_SSII0_SHIFT               (12u)
+#define INTC_ICDICER5_SSIRXI0_SHIFT             (13u)
+#define INTC_ICDICER5_SSITXI0_SHIFT             (14u)
+#define INTC_ICDICER5_SSII1_SHIFT               (15u)
+#define INTC_ICDICER5_SSIRXI1_SHIFT             (16u)
+#define INTC_ICDICER5_SSITXI1_SHIFT             (17u)
+#define INTC_ICDICER5_SSII2_SHIFT               (18u)
+#define INTC_ICDICER5_SSIRTI2_SHIFT             (19u)
+#define INTC_ICDICER5_SSII3_SHIFT               (20u)
+#define INTC_ICDICER5_SSIRXI3_SHIFT             (21u)
+#define INTC_ICDICER5_SSITXI3_SHIFT             (22u)
+#define INTC_ICDICER5_SSII4_SHIFT               (23u)
+#define INTC_ICDICER5_SSIRTI4_SHIFT             (24u)
+#define INTC_ICDICER5_SSII5_SHIFT               (25u)
+#define INTC_ICDICER5_SSIRXI5_SHIFT             (26u)
+#define INTC_ICDICER5_SSITXI5_SHIFT             (27u)
+#define INTC_ICDICER5_SPDIFI_SHIFT              (28u)
+#define INTC_ICDICER5_INTIICTEI0_SHIFT          (29u)
+#define INTC_ICDICER5_INTIICRI0_SHIFT           (30u)
+#define INTC_ICDICER5_INTIICTI0_SHIFT           (31u)
+
+#define INTC_ICDICER6_INTIICSPI0_SHIFT          (0u)
+#define INTC_ICDICER6_INTIICSTI0_SHIFT          (1u)
+#define INTC_ICDICER6_INTIICNAKI0_SHIFT         (2u)
+#define INTC_ICDICER6_INTIICALI0_SHIFT          (3u)
+#define INTC_ICDICER6_INTIICTMOI0_SHIFT         (4u)
+#define INTC_ICDICER6_INTIICTEI1_SHIFT          (5u)
+#define INTC_ICDICER6_INTIICRI1_SHIFT           (6u)
+#define INTC_ICDICER6_INTIICTI1_SHIFT           (7u)
+#define INTC_ICDICER6_INTIICSPI1_SHIFT          (8u)
+#define INTC_ICDICER6_INTIICSTI1_SHIFT          (9u)
+#define INTC_ICDICER6_INTIICNAKI1_SHIFT         (10u)
+#define INTC_ICDICER6_INTIICALI1_SHIFT          (11u)
+#define INTC_ICDICER6_INTIICTMOI1_SHIFT         (12u)
+#define INTC_ICDICER6_INTIICTEI2_SHIFT          (13u)
+#define INTC_ICDICER6_INTIICRI2_SHIFT           (14u)
+#define INTC_ICDICER6_INTIICTI2_SHIFT           (15u)
+#define INTC_ICDICER6_INTIICSPI2_SHIFT          (16u)
+#define INTC_ICDICER6_INTIICSTI2_SHIFT          (17u)
+#define INTC_ICDICER6_INTIICNAKI2_SHIFT         (18u)
+#define INTC_ICDICER6_INTIICALI2_SHIFT          (19u)
+#define INTC_ICDICER6_INTIICTMOI2_SHIFT         (20u)
+#define INTC_ICDICER6_INTIICTEI3_SHIFT          (21u)
+#define INTC_ICDICER6_INTIICRI3_SHIFT           (22u)
+#define INTC_ICDICER6_INTIICTI3_SHIFT           (23u)
+#define INTC_ICDICER6_INTIICSPI3_SHIFT          (24u)
+#define INTC_ICDICER6_INTIICSTI3_SHIFT          (25u)
+#define INTC_ICDICER6_INTIICNAKI3_SHIFT         (26u)
+#define INTC_ICDICER6_INTIICALI3_SHIFT          (27u)
+#define INTC_ICDICER6_INTIICTMOI3_SHIFT         (28u)
+#define INTC_ICDICER6_BRI0_SHIFT                (29u)
+#define INTC_ICDICER6_ERI0_SHIFT                (30u)
+#define INTC_ICDICER6_RXI0_SHIFT                (31u)
+
+#define INTC_ICDICER7_TXI0_SHIFT                (0u)
+#define INTC_ICDICER7_BRI1_SHIFT                (1u)
+#define INTC_ICDICER7_ERI1_SHIFT                (2u)
+#define INTC_ICDICER7_RXI1_SHIFT                (3u)
+#define INTC_ICDICER7_TXI1_SHIFT                (4u)
+#define INTC_ICDICER7_BRI2_SHIFT                (5u)
+#define INTC_ICDICER7_ERI2_SHIFT                (6u)
+#define INTC_ICDICER7_RXI2_SHIFT                (7u)
+#define INTC_ICDICER7_TXI2_SHIFT                (8u)
+#define INTC_ICDICER7_BRI3_SHIFT                (9u)
+#define INTC_ICDICER7_ERI3_SHIFT                (10u)
+#define INTC_ICDICER7_RXI3_SHIFT                (11u)
+#define INTC_ICDICER7_TXI3_SHIFT                (12u)
+#define INTC_ICDICER7_BRI4_SHIFT                (13u)
+#define INTC_ICDICER7_ERI4_SHIFT                (14u)
+#define INTC_ICDICER7_RXI4_SHIFT                (15u)
+#define INTC_ICDICER7_TXI4_SHIFT                (16u)
+#define INTC_ICDICER7_BRI5_SHIFT                (17u)
+#define INTC_ICDICER7_ERI5_SHIFT                (18u)
+#define INTC_ICDICER7_RXI5_SHIFT                (19u)
+#define INTC_ICDICER7_TXI5_SHIFT                (20u)
+#define INTC_ICDICER7_BRI6_SHIFT                (21u)
+#define INTC_ICDICER7_ERI6_SHIFT                (22u)
+#define INTC_ICDICER7_RXI6_SHIFT                (23u)
+#define INTC_ICDICER7_TXI6_SHIFT                (24u)
+#define INTC_ICDICER7_BRI7_SHIFT                (25u)
+#define INTC_ICDICER7_ERI7_SHIFT                (26u)
+#define INTC_ICDICER7_RXI7_SHIFT                (27u)
+#define INTC_ICDICER7_TXI7_SHIFT                (28u)
+#define INTC_ICDICER7_INTRCANGERR_SHIFT         (29u)
+#define INTC_ICDICER7_INTRCANGRECC_SHIFT        (30u)
+#define INTC_ICDICER7_INTRCAN0REC_SHIFT         (31u)
+
+#define INTC_ICDICER8_INTRCAN0ERR_SHIFT         (0u)
+#define INTC_ICDICER8_INTRCAN0TRX_SHIFT         (1u)
+#define INTC_ICDICER8_INTRCAN1REC_SHIFT         (2u)
+#define INTC_ICDICER8_INTRCAN1ERR_SHIFT         (3u)
+#define INTC_ICDICER8_INTRCAN1TRX_SHIFT         (4u)
+#define INTC_ICDICER8_INTRCAN2REC_SHIFT         (5u)
+#define INTC_ICDICER8_INTRCAN2ERR_SHIFT         (6u)
+#define INTC_ICDICER8_INTRCAN2TRX_SHIFT         (7u)
+#define INTC_ICDICER8_INTRCAN3REC_SHIFT         (8u)
+#define INTC_ICDICER8_INTRCAN3ERR_SHIFT         (9u)
+#define INTC_ICDICER8_INTRCAN3TRX_SHIFT         (10u)
+#define INTC_ICDICER8_INTRCAN4REC_SHIFT         (11u)
+#define INTC_ICDICER8_INTRCAN4ERR_SHIFT         (12u)
+#define INTC_ICDICER8_INTRCAN4TRX_SHIFT         (13u)
+#define INTC_ICDICER8_SPEI0_SHIFT               (14u)
+#define INTC_ICDICER8_SPRI0_SHIFT               (15u)
+#define INTC_ICDICER8_SPTI0_SHIFT               (16u)
+#define INTC_ICDICER8_SPEI1_SHIFT               (17u)
+#define INTC_ICDICER8_SPRI1_SHIFT               (18u)
+#define INTC_ICDICER8_SPTI1_SHIFT               (19u)
+#define INTC_ICDICER8_SPEI2_SHIFT               (20u)
+#define INTC_ICDICER8_SPRI2_SHIFT               (21u)
+#define INTC_ICDICER8_SPTI2_SHIFT               (22u)
+#define INTC_ICDICER8_SPEI3_SHIFT               (23u)
+#define INTC_ICDICER8_SPRI3_SHIFT               (24u)
+#define INTC_ICDICER8_SPTI3_SHIFT               (25u)
+#define INTC_ICDICER8_SPEI4_SHIFT               (26u)
+#define INTC_ICDICER8_SPRI4_SHIFT               (27u)
+#define INTC_ICDICER8_SPTI4_SHIFT               (28u)
+#define INTC_ICDICER8_IEBBTD_SHIFT              (29u)
+#define INTC_ICDICER8_IEBBTERR_SHIFT            (30u)
+#define INTC_ICDICER8_IEBBTSTA_SHIFT            (31u)
+
+#define INTC_ICDICER9_IEBBTV_SHIFT              (0u)
+#define INTC_ICDICER9_ISY_SHIFT                 (1u)
+#define INTC_ICDICER9_IERR_SHIFT                (2u)
+#define INTC_ICDICER9_ITARG_SHIFT               (3u)
+#define INTC_ICDICER9_ISEC_SHIFT                (4u)
+#define INTC_ICDICER9_IBUF_SHIFT                (5u)
+#define INTC_ICDICER9_IREADY_SHIFT              (6u)
+#define INTC_ICDICER9_FLSTE_SHIFT               (7u)
+#define INTC_ICDICER9_FLTENDI_SHIFT             (8u)
+#define INTC_ICDICER9_FLTREQ0I_SHIFT            (9u)
+#define INTC_ICDICER9_FLTREQ1I_SHIFT            (10u)
+#define INTC_ICDICER9_MMC0_SHIFT                (11u)
+#define INTC_ICDICER9_MMC1_SHIFT                (12u)
+#define INTC_ICDICER9_MMC2_SHIFT                (13u)
+#define INTC_ICDICER9_SDHI0_3_SHIFT             (14u)
+#define INTC_ICDICER9_SDHI0_0_SHIFT             (15u)
+#define INTC_ICDICER9_SDHI0_1_SHIFT             (16u)
+#define INTC_ICDICER9_SDHI1_3_SHIFT             (17u)
+#define INTC_ICDICER9_SDHI1_0_SHIFT             (18u)
+#define INTC_ICDICER9_SDHI1_1_SHIFT             (19u)
+#define INTC_ICDICER9_ARM_SHIFT                 (20u)
+#define INTC_ICDICER9_PRD_SHIFT                 (21u)
+#define INTC_ICDICER9_CUP_SHIFT                 (22u)
+#define INTC_ICDICER9_SCUAI0_SHIFT              (23u)
+#define INTC_ICDICER9_SCUAI1_SHIFT              (24u)
+#define INTC_ICDICER9_SCUFDI0_SHIFT             (25u)
+#define INTC_ICDICER9_SCUFDI1_SHIFT             (26u)
+#define INTC_ICDICER9_SCUFDI2_SHIFT             (27u)
+#define INTC_ICDICER9_SCUFDI3_SHIFT             (28u)
+#define INTC_ICDICER9_SCUFUI0_SHIFT             (29u)
+#define INTC_ICDICER9_SCUFUI1_SHIFT             (30u)
+#define INTC_ICDICER9_SCUFUI2_SHIFT             (31u)
+
+#define INTC_ICDICER10_SCUFUI3_SHIFT            (0u)
+#define INTC_ICDICER10_SCUDVI0_SHIFT            (1u)
+#define INTC_ICDICER10_SCUDVI1_SHIFT            (2u)
+#define INTC_ICDICER10_SCUDVI2_SHIFT            (3u)
+#define INTC_ICDICER10_SCUDVI3_SHIFT            (4u)
+#define INTC_ICDICER10_MLB_CINT_SHIFT           (5u)
+#define INTC_ICDICER10_MLB_SINT_SHIFT           (6u)
+#define INTC_ICDICER10_DRC0_SHIFT               (7u)
+#define INTC_ICDICER10_DRC1_SHIFT               (8u)
+#define INTC_ICDICER10_LINI0_INT_T_SHIFT        (11u)
+#define INTC_ICDICER10_LINI0_INT_R_SHIFT        (12u)
+#define INTC_ICDICER10_LINI0_INT_S_SHIFT        (13u)
+#define INTC_ICDICER10_LINI0_INT_M_SHIFT        (14u)
+#define INTC_ICDICER10_LINI1_INT_T_SHIFT        (15u)
+#define INTC_ICDICER10_LINI1_INT_R_SHIFT        (16u)
+#define INTC_ICDICER10_LINI1_INT_S_SHIFT        (17u)
+#define INTC_ICDICER10_LINI1_INT_M_SHIFT        (18u)
+#define INTC_ICDICER10_ERI0_SHIFT               (27u)
+#define INTC_ICDICER10_RXI0_SHIFT               (28u)
+#define INTC_ICDICER10_TXI0_SHIFT               (29u)
+#define INTC_ICDICER10_TEI0_SHIFT               (30u)
+#define INTC_ICDICER10_ERI1_SHIFT               (31u)
+
+#define INTC_ICDICER11_RXI1_SHIFT               (0u)
+#define INTC_ICDICER11_TXI1_SHIFT               (1u)
+#define INTC_ICDICER11_TEI1_SHIFT               (2u)
+#define INTC_ICDICER11_AVBI_DATA_SHIFT          (3u)
+#define INTC_ICDICER11_AVBI_ERROR_SHIFT         (4u)
+#define INTC_ICDICER11_AVBI_MANAGE_SHIFT        (5u)
+#define INTC_ICDICER11_AVBI_MAC_SHIFT           (6u)
+#define INTC_ICDICER11_ETHERI_SHIFT             (7u)
+#define INTC_ICDICER11_CEUI_SHIFT               (12u)
+#define INTC_ICDICER11_H2XMLB_ERRINT_SHIFT      (29u)
+#define INTC_ICDICER11_H2XIC1_ERRINT_SHIFT      (30u)
+#define INTC_ICDICER11_X2HPERI1_ERRINT_SHIFT    (31u)
+
+#define INTC_ICDICER12_X2HPERI2_ERRINT_SHIFT    (0u)
+#define INTC_ICDICER12_X2HPERI34_ERRINT_SHIFT   (1u)
+#define INTC_ICDICER12_X2HPERI5_ERRINT_SHIFT    (2u)
+#define INTC_ICDICER12_X2HPERI67_ERRINT_SHIFT   (3u)
+#define INTC_ICDICER12_X2HDBGR_ERRINT_SHIFT     (4u)
+#define INTC_ICDICER12_X2HBSC_ERRINT_SHIFT      (5u)
+#define INTC_ICDICER12_X2HSPI1_ERRINT_SHIFT     (6u)
+#define INTC_ICDICER12_X2HSPI2_ERRINT_SHIFT     (7u)
+#define INTC_ICDICER12_PRRI_SHIFT               (8u)
+#define INTC_ICDICER12_IFEI0_SHIFT              (9u)
+#define INTC_ICDICER12_OFFI0_SHIFT              (10u)
+#define INTC_ICDICER12_PFVEI0_SHIFT             (11u)
+#define INTC_ICDICER12_IFEI1_SHIFT              (12u)
+#define INTC_ICDICER12_OFFI1_SHIFT              (13u)
+#define INTC_ICDICER12_PFVEI1_SHIFT             (14u)
+
+#define INTC_ICDICER13_TINT0_SHIFT              (0u)
+#define INTC_ICDICER13_TINT1_SHIFT              (1u)
+#define INTC_ICDICER13_TINT2_SHIFT              (2u)
+#define INTC_ICDICER13_TINT3_SHIFT              (3u)
+#define INTC_ICDICER13_TINT4_SHIFT              (4u)
+#define INTC_ICDICER13_TINT5_SHIFT              (5u)
+#define INTC_ICDICER13_TINT6_SHIFT              (6u)
+#define INTC_ICDICER13_TINT7_SHIFT              (7u)
+#define INTC_ICDICER13_TINT8_SHIFT              (8u)
+#define INTC_ICDICER13_TINT9_SHIFT              (9u)
+#define INTC_ICDICER13_TINT10_SHIFT             (10u)
+#define INTC_ICDICER13_TINT11_SHIFT             (11u)
+#define INTC_ICDICER13_TINT12_SHIFT             (12u)
+#define INTC_ICDICER13_TINT13_SHIFT             (13u)
+#define INTC_ICDICER13_TINT14_SHIFT             (14u)
+#define INTC_ICDICER13_TINT15_SHIFT             (15u)
+#define INTC_ICDICER13_TINT16_SHIFT             (16u)
+#define INTC_ICDICER13_TINT17_SHIFT             (17u)
+#define INTC_ICDICER13_TINT18_SHIFT             (18u)
+#define INTC_ICDICER13_TINT19_SHIFT             (19u)
+#define INTC_ICDICER13_TINT20_SHIFT             (20u)
+#define INTC_ICDICER13_TINT21_SHIFT             (21u)
+#define INTC_ICDICER13_TINT22_SHIFT             (22u)
+#define INTC_ICDICER13_TINT23_SHIFT             (23u)
+#define INTC_ICDICER13_TINT24_SHIFT             (24u)
+#define INTC_ICDICER13_TINT25_SHIFT             (25u)
+#define INTC_ICDICER13_TINT26_SHIFT             (26u)
+#define INTC_ICDICER13_TINT27_SHIFT             (27u)
+#define INTC_ICDICER13_TINT28_SHIFT             (28u)
+#define INTC_ICDICER13_TINT29_SHIFT             (29u)
+#define INTC_ICDICER13_TINT30_SHIFT             (30u)
+#define INTC_ICDICER13_TINT31_SHIFT             (31u)
+
+#define INTC_ICDICER14_TINT32_SHIFT             (0u)
+#define INTC_ICDICER14_TINT33_SHIFT             (1u)
+#define INTC_ICDICER14_TINT34_SHIFT             (2u)
+#define INTC_ICDICER14_TINT35_SHIFT             (3u)
+#define INTC_ICDICER14_TINT36_SHIFT             (4u)
+#define INTC_ICDICER14_TINT37_SHIFT             (5u)
+#define INTC_ICDICER14_TINT38_SHIFT             (6u)
+#define INTC_ICDICER14_TINT39_SHIFT             (7u)
+#define INTC_ICDICER14_TINT40_SHIFT             (8u)
+#define INTC_ICDICER14_TINT41_SHIFT             (9u)
+#define INTC_ICDICER14_TINT42_SHIFT             (10u)
+#define INTC_ICDICER14_TINT43_SHIFT             (11u)
+#define INTC_ICDICER14_TINT44_SHIFT             (12u)
+#define INTC_ICDICER14_TINT45_SHIFT             (13u)
+#define INTC_ICDICER14_TINT46_SHIFT             (14u)
+#define INTC_ICDICER14_TINT47_SHIFT             (15u)
+#define INTC_ICDICER14_TINT48_SHIFT             (16u)
+#define INTC_ICDICER14_TINT49_SHIFT             (17u)
+#define INTC_ICDICER14_TINT50_SHIFT             (18u)
+#define INTC_ICDICER14_TINT51_SHIFT             (19u)
+#define INTC_ICDICER14_TINT52_SHIFT             (20u)
+#define INTC_ICDICER14_TINT53_SHIFT             (21u)
+#define INTC_ICDICER14_TINT54_SHIFT             (22u)
+#define INTC_ICDICER14_TINT55_SHIFT             (23u)
+#define INTC_ICDICER14_TINT56_SHIFT             (24u)
+#define INTC_ICDICER14_TINT57_SHIFT             (25u)
+#define INTC_ICDICER14_TINT58_SHIFT             (26u)
+#define INTC_ICDICER14_TINT59_SHIFT             (27u)
+#define INTC_ICDICER14_TINT60_SHIFT             (28u)
+#define INTC_ICDICER14_TINT61_SHIFT             (29u)
+#define INTC_ICDICER14_TINT62_SHIFT             (30u)
+#define INTC_ICDICER14_TINT63_SHIFT             (31u)
+
+#define INTC_ICDICER15_TINT64_SHIFT             (0u)
+#define INTC_ICDICER15_TINT65_SHIFT             (1u)
+#define INTC_ICDICER15_TINT66_SHIFT             (2u)
+#define INTC_ICDICER15_TINT67_SHIFT             (3u)
+#define INTC_ICDICER15_TINT68_SHIFT             (4u)
+#define INTC_ICDICER15_TINT69_SHIFT             (5u)
+#define INTC_ICDICER15_TINT70_SHIFT             (6u)
+#define INTC_ICDICER15_TINT71_SHIFT             (7u)
+#define INTC_ICDICER15_TINT72_SHIFT             (8u)
+#define INTC_ICDICER15_TINT73_SHIFT             (9u)
+#define INTC_ICDICER15_TINT74_SHIFT             (10u)
+#define INTC_ICDICER15_TINT75_SHIFT             (11u)
+#define INTC_ICDICER15_TINT76_SHIFT             (12u)
+#define INTC_ICDICER15_TINT77_SHIFT             (13u)
+#define INTC_ICDICER15_TINT78_SHIFT             (14u)
+#define INTC_ICDICER15_TINT79_SHIFT             (15u)
+#define INTC_ICDICER15_TINT80_SHIFT             (16u)
+#define INTC_ICDICER15_TINT81_SHIFT             (17u)
+#define INTC_ICDICER15_TINT82_SHIFT             (18u)
+#define INTC_ICDICER15_TINT83_SHIFT             (19u)
+#define INTC_ICDICER15_TINT84_SHIFT             (20u)
+#define INTC_ICDICER15_TINT85_SHIFT             (21u)
+#define INTC_ICDICER15_TINT86_SHIFT             (22u)
+#define INTC_ICDICER15_TINT87_SHIFT             (23u)
+#define INTC_ICDICER15_TINT88_SHIFT             (24u)
+#define INTC_ICDICER15_TINT89_SHIFT             (25u)
+#define INTC_ICDICER15_TINT90_SHIFT             (26u)
+#define INTC_ICDICER15_TINT91_SHIFT             (27u)
+#define INTC_ICDICER15_TINT92_SHIFT             (28u)
+#define INTC_ICDICER15_TINT93_SHIFT             (29u)
+#define INTC_ICDICER15_TINT94_SHIFT             (30u)
+#define INTC_ICDICER15_TINT95_SHIFT             (31u)
+
+#define INTC_ICDICER16_TINT96_SHIFT             (0u)
+#define INTC_ICDICER16_TINT97_SHIFT             (1u)
+#define INTC_ICDICER16_TINT98_SHIFT             (2u)
+#define INTC_ICDICER16_TINT99_SHIFT             (3u)
+#define INTC_ICDICER16_TINT100_SHIFT            (4u)
+#define INTC_ICDICER16_TINT101_SHIFT            (5u)
+#define INTC_ICDICER16_TINT102_SHIFT            (6u)
+#define INTC_ICDICER16_TINT103_SHIFT            (7u)
+#define INTC_ICDICER16_TINT104_SHIFT            (8u)
+#define INTC_ICDICER16_TINT105_SHIFT            (9u)
+#define INTC_ICDICER16_TINT106_SHIFT            (10u)
+#define INTC_ICDICER16_TINT107_SHIFT            (11u)
+#define INTC_ICDICER16_TINT108_SHIFT            (12u)
+#define INTC_ICDICER16_TINT109_SHIFT            (13u)
+#define INTC_ICDICER16_TINT110_SHIFT            (14u)
+#define INTC_ICDICER16_TINT111_SHIFT            (15u)
+#define INTC_ICDICER16_TINT112_SHIFT            (16u)
+#define INTC_ICDICER16_TINT113_SHIFT            (17u)
+#define INTC_ICDICER16_TINT114_SHIFT            (18u)
+#define INTC_ICDICER16_TINT115_SHIFT            (19u)
+#define INTC_ICDICER16_TINT116_SHIFT            (20u)
+#define INTC_ICDICER16_TINT117_SHIFT            (21u)
+#define INTC_ICDICER16_TINT118_SHIFT            (22u)
+#define INTC_ICDICER16_TINT119_SHIFT            (23u)
+#define INTC_ICDICER16_TINT120_SHIFT            (24u)
+#define INTC_ICDICER16_TINT121_SHIFT            (25u)
+#define INTC_ICDICER16_TINT122_SHIFT            (26u)
+#define INTC_ICDICER16_TINT123_SHIFT            (27u)
+#define INTC_ICDICER16_TINT124_SHIFT            (28u)
+#define INTC_ICDICER16_TINT125_SHIFT            (29u)
+#define INTC_ICDICER16_TINT126_SHIFT            (30u)
+#define INTC_ICDICER16_TINT127_SHIFT            (31u)
+
+#define INTC_ICDICER17_TINT128_SHIFT            (0u)
+#define INTC_ICDICER17_TINT129_SHIFT            (1u)
+#define INTC_ICDICER17_TINT130_SHIFT            (2u)
+#define INTC_ICDICER17_TINT131_SHIFT            (3u)
+#define INTC_ICDICER17_TINT132_SHIFT            (4u)
+#define INTC_ICDICER17_TINT133_SHIFT            (5u)
+#define INTC_ICDICER17_TINT134_SHIFT            (6u)
+#define INTC_ICDICER17_TINT135_SHIFT            (7u)
+#define INTC_ICDICER17_TINT136_SHIFT            (8u)
+#define INTC_ICDICER17_TINT137_SHIFT            (9u)
+#define INTC_ICDICER17_TINT138_SHIFT            (10u)
+#define INTC_ICDICER17_TINT139_SHIFT            (11u)
+#define INTC_ICDICER17_TINT140_SHIFT            (12u)
+#define INTC_ICDICER17_TINT141_SHIFT            (13u)
+#define INTC_ICDICER17_TINT142_SHIFT            (14u)
+#define INTC_ICDICER17_TINT143_SHIFT            (15u)
+#define INTC_ICDICER17_TINT144_SHIFT            (16u)
+#define INTC_ICDICER17_TINT145_SHIFT            (17u)
+#define INTC_ICDICER17_TINT146_SHIFT            (18u)
+#define INTC_ICDICER17_TINT147_SHIFT            (19u)
+#define INTC_ICDICER17_TINT148_SHIFT            (20u)
+#define INTC_ICDICER17_TINT149_SHIFT            (21u)
+#define INTC_ICDICER17_TINT150_SHIFT            (22u)
+#define INTC_ICDICER17_TINT151_SHIFT            (23u)
+#define INTC_ICDICER17_TINT152_SHIFT            (24u)
+#define INTC_ICDICER17_TINT153_SHIFT            (25u)
+#define INTC_ICDICER17_TINT154_SHIFT            (26u)
+#define INTC_ICDICER17_TINT155_SHIFT            (27u)
+#define INTC_ICDICER17_TINT156_SHIFT            (28u)
+#define INTC_ICDICER17_TINT157_SHIFT            (29u)
+#define INTC_ICDICER17_TINT158_SHIFT            (30u)
+#define INTC_ICDICER17_TINT159_SHIFT            (31u)
+
+#define INTC_ICDICER18_TINT160_SHIFT            (0u)
+#define INTC_ICDICER18_TINT161_SHIFT            (1u)
+#define INTC_ICDICER18_TINT162_SHIFT            (2u)
+#define INTC_ICDICER18_TINT163_SHIFT            (3u)
+#define INTC_ICDICER18_TINT164_SHIFT            (4u)
+#define INTC_ICDICER18_TINT165_SHIFT            (5u)
+#define INTC_ICDICER18_TINT166_SHIFT            (6u)
+#define INTC_ICDICER18_TINT167_SHIFT            (7u)
+#define INTC_ICDICER18_TINT168_SHIFT            (8u)
+#define INTC_ICDICER18_TINT169_SHIFT            (9u)
+#define INTC_ICDICER18_TINT170_SHIFT            (10u)
+
+#define INTC_ICDISPR0_SW0_SHIFT                 (0u)
+#define INTC_ICDISPR0_SW1_SHIFT                 (1u)
+#define INTC_ICDISPR0_SW2_SHIFT                 (2u)
+#define INTC_ICDISPR0_SW3_SHIFT                 (3u)
+#define INTC_ICDISPR0_SW4_SHIFT                 (4u)
+#define INTC_ICDISPR0_SW5_SHIFT                 (5u)
+#define INTC_ICDISPR0_SW6_SHIFT                 (6u)
+#define INTC_ICDISPR0_SW7_SHIFT                 (7u)
+#define INTC_ICDISPR0_SW8_SHIFT                 (8u)
+#define INTC_ICDISPR0_SW9_SHIFT                 (9u)
+#define INTC_ICDISPR0_SW10_SHIFT                (10u)
+#define INTC_ICDISPR0_SW11_SHIFT                (11u)
+#define INTC_ICDISPR0_SW12_SHIFT                (12u)
+#define INTC_ICDISPR0_SW13_SHIFT                (13u)
+#define INTC_ICDISPR0_SW14_SHIFT                (14u)
+#define INTC_ICDISPR0_SW15_SHIFT                (15u)
+#define INTC_ICDISPR0_PMUIRQ0_SHIFT             (16u)
+#define INTC_ICDISPR0_COMMRX0_SHIFT             (17u)
+#define INTC_ICDISPR0_COMMTX0_SHIFT             (18u)
+#define INTC_ICDISPR0_CTIIRQ0_SHIFT             (19u)
+
+#define INTC_ICDISPR1_IRQ0_SHIFT                (0u)
+#define INTC_ICDISPR1_IRQ1_SHIFT                (1u)
+#define INTC_ICDISPR1_IRQ2_SHIFT                (2u)
+#define INTC_ICDISPR1_IRQ3_SHIFT                (3u)
+#define INTC_ICDISPR1_IRQ4_SHIFT                (4u)
+#define INTC_ICDISPR1_IRQ5_SHIFT                (5u)
+#define INTC_ICDISPR1_IRQ6_SHIFT                (6u)
+#define INTC_ICDISPR1_IRQ7_SHIFT                (7u)
+#define INTC_ICDISPR1_PL310ERR_SHIFT            (8u)
+#define INTC_ICDISPR1_DMAINT0_SHIFT             (9u)
+#define INTC_ICDISPR1_DMAINT1_SHIFT             (10u)
+#define INTC_ICDISPR1_DMAINT2_SHIFT             (11u)
+#define INTC_ICDISPR1_DMAINT3_SHIFT             (12u)
+#define INTC_ICDISPR1_DMAINT4_SHIFT             (13u)
+#define INTC_ICDISPR1_DMAINT5_SHIFT             (14u)
+#define INTC_ICDISPR1_DMAINT6_SHIFT             (15u)
+#define INTC_ICDISPR1_DMAINT7_SHIFT             (16u)
+#define INTC_ICDISPR1_DMAINT8_SHIFT             (17u)
+#define INTC_ICDISPR1_DMAINT9_SHIFT             (18u)
+#define INTC_ICDISPR1_DMAINT10_SHIFT            (19u)
+#define INTC_ICDISPR1_DMAINT11_SHIFT            (20u)
+#define INTC_ICDISPR1_DMAINT12_SHIFT            (21u)
+#define INTC_ICDISPR1_DMAINT13_SHIFT            (22u)
+#define INTC_ICDISPR1_DMAINT14_SHIFT            (23u)
+#define INTC_ICDISPR1_DMAINT15_SHIFT            (24u)
+#define INTC_ICDISPR1_DMAERR_SHIFT              (25u)
+
+#define INTC_ICDISPR2_USBI0_SHIFT               (9u)
+#define INTC_ICDISPR2_USBI1_SHIFT               (10u)
+#define INTC_ICDISPR2_S0_VI_VSYNC0_SHIFT        (11u)
+#define INTC_ICDISPR2_S0_LO_VSYNC0_SHIFT        (12u)
+#define INTC_ICDISPR2_S0_VSYNCERR0_SHIFT        (13u)
+#define INTC_ICDISPR2_GR3_VLINE0_SHIFT          (14u)
+#define INTC_ICDISPR2_S0_VFIELD0_SHIFT          (15u)
+#define INTC_ICDISPR2_IV1_VBUFERR0_SHIFT        (16u)
+#define INTC_ICDISPR2_IV3_VBUFERR0_SHIFT        (17u)
+#define INTC_ICDISPR2_IV5_VBUFERR0_SHIFT        (18u)
+#define INTC_ICDISPR2_IV6_VBUFERR0_SHIFT        (19u)
+#define INTC_ICDISPR2_S0_WLINE0_SHIFT           (20u)
+#define INTC_ICDISPR2_S1_VI_VSYNC0_SHIFT        (21u)
+#define INTC_ICDISPR2_S1_LO_VSYNC0_SHIFT        (22u)
+#define INTC_ICDISPR2_S1_VSYNCERR0_SHIFT        (23u)
+#define INTC_ICDISPR2_S1_VFIELD0_SHIFT          (24u)
+#define INTC_ICDISPR2_IV2_VBUFERR0_SHIFT        (25u)
+#define INTC_ICDISPR2_IV4_VBUFERR0_SHIFT        (26u)
+#define INTC_ICDISPR2_S1_WLINE0_SHIFT           (27u)
+#define INTC_ICDISPR2_OIR_VI_VSYNC0_SHIFT       (28u)
+#define INTC_ICDISPR2_OIR_LO_VSYNC0_SHIFT       (29u)
+#define INTC_ICDISPR2_OIR_VSYNCERR0_SHIFT       (30u)
+#define INTC_ICDISPR2_OIR_VFIELD0_SHIFT         (31u)
+
+#define INTC_ICDISPR3_IV7_VBUFERR0_SHIFT        (0u)
+#define INTC_ICDISPR3_IV8_VBUFERR0_SHIFT        (1u)
+#define INTC_ICDISPR3_S0_VI_VSYNC1_SHIFT        (3u)
+#define INTC_ICDISPR3_S0_LO_VSYNC1_SHIFT        (4u)
+#define INTC_ICDISPR3_S0_VSYNCERR1_SHIFT        (5u)
+#define INTC_ICDISPR3_GR3_VLINE1_SHIFT          (6u)
+#define INTC_ICDISPR3_S0_VFIELD1_SHIFT          (7u)
+#define INTC_ICDISPR3_IV1_VBUFERR1_SHIFT        (8u)
+#define INTC_ICDISPR3_IV3_VBUFERR1_SHIFT        (9u)
+#define INTC_ICDISPR3_IV5_VBUFERR1_SHIFT        (10u)
+#define INTC_ICDISPR3_IV6_VBUFERR1_SHIFT        (11u)
+#define INTC_ICDISPR3_S0_WLINE1_SHIFT           (12u)
+#define INTC_ICDISPR3_S1_VI_VSYNC1_SHIFT        (13u)
+#define INTC_ICDISPR3_S1_LO_VSYNC1_SHIFT        (14u)
+#define INTC_ICDISPR3_S1_VSYNCERR1_SHIFT        (15u)
+#define INTC_ICDISPR3_S1_VFIELD1_SHIFT          (16u)
+#define INTC_ICDISPR3_IV2_VBUFERR1_SHIFT        (17u)
+#define INTC_ICDISPR3_IV4_VBUFERR1_SHIFT        (18u)
+#define INTC_ICDISPR3_S1_WLINE1_SHIFT           (19u)
+#define INTC_ICDISPR3_OIR_VI_VSYNC1_SHIFT       (20u)
+#define INTC_ICDISPR3_OIR_LO_VSYNC1_SHIFT       (21u)
+#define INTC_ICDISPR3_OIR_VLINE1_SHIFT          (22u)
+#define INTC_ICDISPR3_OIR_VFIELD1_SHIFT         (23u)
+#define INTC_ICDISPR3_IV7_VBUFERR1_SHIFT        (24u)
+#define INTC_ICDISPR3_IV8_VBUFERR1_SHIFT        (25u)
+#define INTC_ICDISPR3_IMRDI_SHIFT               (27u)
+#define INTC_ICDISPR3_IMR2I0_SHIFT              (28u)
+#define INTC_ICDISPR3_IMR2I1_SHIFT              (29u)
+#define INTC_ICDISPR3_JEDI_SHIFT                (30u)
+#define INTC_ICDISPR3_JDTI_SHIFT                (31u)
+
+#define INTC_ICDISPR4_CMP0_SHIFT                (0u)
+#define INTC_ICDISPR4_CMP1_SHIFT                (1u)
+#define INTC_ICDISPR4_INT0_SHIFT                (2u)
+#define INTC_ICDISPR4_INT1_SHIFT                (3u)
+#define INTC_ICDISPR4_INT2_SHIFT                (4u)
+#define INTC_ICDISPR4_INT3_SHIFT                (5u)
+#define INTC_ICDISPR4_OSTM0TINT_SHIFT           (6u)
+#define INTC_ICDISPR4_OSTM1TINT_SHIFT           (7u)
+#define INTC_ICDISPR4_CMI_SHIFT                 (8u)
+#define INTC_ICDISPR4_WTOUT_SHIFT               (9u)
+#define INTC_ICDISPR4_ITI_SHIFT                 (10u)
+#define INTC_ICDISPR4_TGI0A_SHIFT               (11u)
+#define INTC_ICDISPR4_TGI0B_SHIFT               (12u)
+#define INTC_ICDISPR4_TGI0C_SHIFT               (13u)
+#define INTC_ICDISPR4_TGI0D_SHIFT               (14u)
+#define INTC_ICDISPR4_TGI0V_SHIFT               (15u)
+#define INTC_ICDISPR4_TGI0E_SHIFT               (16u)
+#define INTC_ICDISPR4_TGI0F_SHIFT               (17u)
+#define INTC_ICDISPR4_TGI1A_SHIFT               (18u)
+#define INTC_ICDISPR4_TGI1B_SHIFT               (19u)
+#define INTC_ICDISPR4_TGI1V_SHIFT               (20u)
+#define INTC_ICDISPR4_TGI1U_SHIFT               (21u)
+#define INTC_ICDISPR4_TGI2A_SHIFT               (22u)
+#define INTC_ICDISPR4_TGI2B_SHIFT               (23u)
+#define INTC_ICDISPR4_TGI2V_SHIFT               (24u)
+#define INTC_ICDISPR4_TGI2U_SHIFT               (25u)
+#define INTC_ICDISPR4_TGI3A_SHIFT               (26u)
+#define INTC_ICDISPR4_TGI3B_SHIFT               (27u)
+#define INTC_ICDISPR4_TGI3C_SHIFT               (28u)
+#define INTC_ICDISPR4_TGI3D_SHIFT               (29u)
+#define INTC_ICDISPR4_TGI3V_SHIFT               (30u)
+#define INTC_ICDISPR4_TGI4A_SHIFT               (31u)
+
+#define INTC_ICDISPR5_TGI4B_SHIFT               (0u)
+#define INTC_ICDISPR5_TGI4C_SHIFT               (1u)
+#define INTC_ICDISPR5_TGI4D_SHIFT               (2u)
+#define INTC_ICDISPR5_TGI4V_SHIFT               (3u)
+#define INTC_ICDISPR5_CMI1_SHIFT                (4u)
+#define INTC_ICDISPR5_CMI2_SHIFT                (5u)
+#define INTC_ICDISPR5_SGDEI0_SHIFT              (6u)
+#define INTC_ICDISPR5_SGDEI1_SHIFT              (7u)
+#define INTC_ICDISPR5_SGDEI2_SHIFT              (8u)
+#define INTC_ICDISPR5_SGDEI3_SHIFT              (9u)
+#define INTC_ICDISPR5_ADI_SHIFT                 (10u)
+#define INTC_ICDISPR5_LMTI_SHIFT                (11u)
+#define INTC_ICDISPR5_SSII0_SHIFT               (12u)
+#define INTC_ICDISPR5_SSIRXI0_SHIFT             (13u)
+#define INTC_ICDISPR5_SSITXI0_SHIFT             (14u)
+#define INTC_ICDISPR5_SSII1_SHIFT               (15u)
+#define INTC_ICDISPR5_SSIRXI1_SHIFT             (16u)
+#define INTC_ICDISPR5_SSITXI1_SHIFT             (17u)
+#define INTC_ICDISPR5_SSII2_SHIFT               (18u)
+#define INTC_ICDISPR5_SSIRTI2_SHIFT             (19u)
+#define INTC_ICDISPR5_SSII3_SHIFT               (20u)
+#define INTC_ICDISPR5_SSIRXI3_SHIFT             (21u)
+#define INTC_ICDISPR5_SSITXI3_SHIFT             (22u)
+#define INTC_ICDISPR5_SSII4_SHIFT               (23u)
+#define INTC_ICDISPR5_SSIRTI4_SHIFT             (24u)
+#define INTC_ICDISPR5_SSII5_SHIFT               (25u)
+#define INTC_ICDISPR5_SSIRXI5_SHIFT             (26u)
+#define INTC_ICDISPR5_SSITXI5_SHIFT             (27u)
+#define INTC_ICDISPR5_SPDIFI_SHIFT              (28u)
+#define INTC_ICDISPR5_INTIICTEI0_SHIFT          (29u)
+#define INTC_ICDISPR5_INTIICRI0_SHIFT           (30u)
+#define INTC_ICDISPR5_INTIICTI0_SHIFT           (31u)
+
+#define INTC_ICDISPR6_INTIICSPI0_SHIFT          (0u)
+#define INTC_ICDISPR6_INTIICSTI0_SHIFT          (1u)
+#define INTC_ICDISPR6_INTIICNAKI0_SHIFT         (2u)
+#define INTC_ICDISPR6_INTIICALI0_SHIFT          (3u)
+#define INTC_ICDISPR6_INTIICTMOI0_SHIFT         (4u)
+#define INTC_ICDISPR6_INTIICTEI1_SHIFT          (5u)
+#define INTC_ICDISPR6_INTIICRI1_SHIFT           (6u)
+#define INTC_ICDISPR6_INTIICTI1_SHIFT           (7u)
+#define INTC_ICDISPR6_INTIICSPI1_SHIFT          (8u)
+#define INTC_ICDISPR6_INTIICSTI1_SHIFT          (9u)
+#define INTC_ICDISPR6_INTIICNAKI1_SHIFT         (10u)
+#define INTC_ICDISPR6_INTIICALI1_SHIFT          (11u)
+#define INTC_ICDISPR6_INTIICTMOI1_SHIFT         (12u)
+#define INTC_ICDISPR6_INTIICTEI2_SHIFT          (13u)
+#define INTC_ICDISPR6_INTIICRI2_SHIFT           (14u)
+#define INTC_ICDISPR6_INTIICTI2_SHIFT           (15u)
+#define INTC_ICDISPR6_INTIICSPI2_SHIFT          (16u)
+#define INTC_ICDISPR6_INTIICSTI2_SHIFT          (17u)
+#define INTC_ICDISPR6_INTIICNAKI2_SHIFT         (18u)
+#define INTC_ICDISPR6_INTIICALI2_SHIFT          (19u)
+#define INTC_ICDISPR6_INTIICTMOI2_SHIFT         (20u)
+#define INTC_ICDISPR6_INTIICTEI3_SHIFT          (21u)
+#define INTC_ICDISPR6_INTIICRI3_SHIFT           (22u)
+#define INTC_ICDISPR6_INTIICTI3_SHIFT           (23u)
+#define INTC_ICDISPR6_INTIICSPI3_SHIFT          (24u)
+#define INTC_ICDISPR6_INTIICSTI3_SHIFT          (25u)
+#define INTC_ICDISPR6_INTIICNAKI3_SHIFT         (26u)
+#define INTC_ICDISPR6_INTIICALI3_SHIFT          (27u)
+#define INTC_ICDISPR6_INTIICTMOI3_SHIFT         (28u)
+#define INTC_ICDISPR6_BRI0_SHIFT                (29u)
+#define INTC_ICDISPR6_ERI0_SHIFT                (30u)
+#define INTC_ICDISPR6_RXI0_SHIFT                (31u)
+
+#define INTC_ICDISPR7_TXI0_SHIFT                (0u)
+#define INTC_ICDISPR7_BRI1_SHIFT                (1u)
+#define INTC_ICDISPR7_ERI1_SHIFT                (2u)
+#define INTC_ICDISPR7_RXI1_SHIFT                (3u)
+#define INTC_ICDISPR7_TXI1_SHIFT                (4u)
+#define INTC_ICDISPR7_BRI2_SHIFT                (5u)
+#define INTC_ICDISPR7_ERI2_SHIFT                (6u)
+#define INTC_ICDISPR7_RXI2_SHIFT                (7u)
+#define INTC_ICDISPR7_TXI2_SHIFT                (8u)
+#define INTC_ICDISPR7_BRI3_SHIFT                (9u)
+#define INTC_ICDISPR7_ERI3_SHIFT                (10u)
+#define INTC_ICDISPR7_RXI3_SHIFT                (11u)
+#define INTC_ICDISPR7_TXI3_SHIFT                (12u)
+#define INTC_ICDISPR7_BRI4_SHIFT                (13u)
+#define INTC_ICDISPR7_ERI4_SHIFT                (14u)
+#define INTC_ICDISPR7_RXI4_SHIFT                (15u)
+#define INTC_ICDISPR7_TXI4_SHIFT                (16u)
+#define INTC_ICDISPR7_BRI5_SHIFT                (17u)
+#define INTC_ICDISPR7_ERI5_SHIFT                (18u)
+#define INTC_ICDISPR7_RXI5_SHIFT                (19u)
+#define INTC_ICDISPR7_TXI5_SHIFT                (20u)
+#define INTC_ICDISPR7_BRI6_SHIFT                (21u)
+#define INTC_ICDISPR7_ERI6_SHIFT                (22u)
+#define INTC_ICDISPR7_RXI6_SHIFT                (23u)
+#define INTC_ICDISPR7_TXI6_SHIFT                (24u)
+#define INTC_ICDISPR7_BRI7_SHIFT                (25u)
+#define INTC_ICDISPR7_ERI7_SHIFT                (26u)
+#define INTC_ICDISPR7_RXI7_SHIFT                (27u)
+#define INTC_ICDISPR7_TXI7_SHIFT                (28u)
+#define INTC_ICDISPR7_INTRCANGERR_SHIFT         (29u)
+#define INTC_ICDISPR7_INTRCANGRECC_SHIFT        (30u)
+#define INTC_ICDISPR7_INTRCAN0REC_SHIFT         (31u)
+
+#define INTC_ICDISPR8_INTRCAN0ERR_SHIFT         (0u)
+#define INTC_ICDISPR8_INTRCAN0TRX_SHIFT         (1u)
+#define INTC_ICDISPR8_INTRCAN1REC_SHIFT         (2u)
+#define INTC_ICDISPR8_INTRCAN1ERR_SHIFT         (3u)
+#define INTC_ICDISPR8_INTRCAN1TRX_SHIFT         (4u)
+#define INTC_ICDISPR8_INTRCAN2REC_SHIFT         (5u)
+#define INTC_ICDISPR8_INTRCAN2ERR_SHIFT         (6u)
+#define INTC_ICDISPR8_INTRCAN2TRX_SHIFT         (7u)
+#define INTC_ICDISPR8_INTRCAN3REC_SHIFT         (8u)
+#define INTC_ICDISPR8_INTRCAN3ERR_SHIFT         (9u)
+#define INTC_ICDISPR8_INTRCAN3TRX_SHIFT         (10u)
+#define INTC_ICDISPR8_INTRCAN4REC_SHIFT         (11u)
+#define INTC_ICDISPR8_INTRCAN4ERR_SHIFT         (12u)
+#define INTC_ICDISPR8_INTRCAN4TRX_SHIFT         (13u)
+#define INTC_ICDISPR8_SPEI0_SHIFT               (14u)
+#define INTC_ICDISPR8_SPRI0_SHIFT               (15u)
+#define INTC_ICDISPR8_SPTI0_SHIFT               (16u)
+#define INTC_ICDISPR8_SPEI1_SHIFT               (17u)
+#define INTC_ICDISPR8_SPRI1_SHIFT               (18u)
+#define INTC_ICDISPR8_SPTI1_SHIFT               (19u)
+#define INTC_ICDISPR8_SPEI2_SHIFT               (20u)
+#define INTC_ICDISPR8_SPRI2_SHIFT               (21u)
+#define INTC_ICDISPR8_SPTI2_SHIFT               (22u)
+#define INTC_ICDISPR8_SPEI3_SHIFT               (23u)
+#define INTC_ICDISPR8_SPRI3_SHIFT               (24u)
+#define INTC_ICDISPR8_SPTI3_SHIFT               (25u)
+#define INTC_ICDISPR8_SPEI4_SHIFT               (26u)
+#define INTC_ICDISPR8_SPRI4_SHIFT               (27u)
+#define INTC_ICDISPR8_SPTI4_SHIFT               (28u)
+#define INTC_ICDISPR8_IEBBTD_SHIFT              (29u)
+#define INTC_ICDISPR8_IEBBTERR_SHIFT            (30u)
+#define INTC_ICDISPR8_IEBBTSTA_SHIFT            (31u)
+
+#define INTC_ICDISPR9_IEBBTV_SHIFT              (0u)
+#define INTC_ICDISPR9_ISY_SHIFT                 (1u)
+#define INTC_ICDISPR9_IERR_SHIFT                (2u)
+#define INTC_ICDISPR9_ITARG_SHIFT               (3u)
+#define INTC_ICDISPR9_ISEC_SHIFT                (4u)
+#define INTC_ICDISPR9_IBUF_SHIFT                (5u)
+#define INTC_ICDISPR9_IREADY_SHIFT              (6u)
+#define INTC_ICDISPR9_FLSTE_SHIFT               (7u)
+#define INTC_ICDISPR9_FLTENDI_SHIFT             (8u)
+#define INTC_ICDISPR9_FLTREQ0I_SHIFT            (9u)
+#define INTC_ICDISPR9_FLTREQ1I_SHIFT            (10u)
+#define INTC_ICDISPR9_MMC0_SHIFT                (11u)
+#define INTC_ICDISPR9_MMC1_SHIFT                (12u)
+#define INTC_ICDISPR9_MMC2_SHIFT                (13u)
+#define INTC_ICDISPR9_SDHI0_3_SHIFT             (14u)
+#define INTC_ICDISPR9_SDHI0_0_SHIFT             (15u)
+#define INTC_ICDISPR9_SDHI0_1_SHIFT             (16u)
+#define INTC_ICDISPR9_SDHI1_3_SHIFT             (17u)
+#define INTC_ICDISPR9_SDHI1_0_SHIFT             (18u)
+#define INTC_ICDISPR9_SDHI1_1_SHIFT             (19u)
+#define INTC_ICDISPR9_ARM_SHIFT                 (20u)
+#define INTC_ICDISPR9_PRD_SHIFT                 (21u)
+#define INTC_ICDISPR9_CUP_SHIFT                 (22u)
+#define INTC_ICDISPR9_SCUAI0_SHIFT              (23u)
+#define INTC_ICDISPR9_SCUAI1_SHIFT              (24u)
+#define INTC_ICDISPR9_SCUFDI0_SHIFT             (25u)
+#define INTC_ICDISPR9_SCUFDI1_SHIFT             (26u)
+#define INTC_ICDISPR9_SCUFDI2_SHIFT             (27u)
+#define INTC_ICDISPR9_SCUFDI3_SHIFT             (28u)
+#define INTC_ICDISPR9_SCUFUI0_SHIFT             (29u)
+#define INTC_ICDISPR9_SCUFUI1_SHIFT             (30u)
+#define INTC_ICDISPR9_SCUFUI2_SHIFT             (31u)
+
+#define INTC_ICDISPR10_SCUFUI3_SHIFT            (0u)
+#define INTC_ICDISPR10_SCUDVI0_SHIFT            (1u)
+#define INTC_ICDISPR10_SCUDVI1_SHIFT            (2u)
+#define INTC_ICDISPR10_SCUDVI2_SHIFT            (3u)
+#define INTC_ICDISPR10_SCUDVI3_SHIFT            (4u)
+#define INTC_ICDISPR10_MLB_CINT_SHIFT           (5u)
+#define INTC_ICDISPR10_MLB_SINT_SHIFT           (6u)
+#define INTC_ICDISPR10_DRC0_SHIFT               (7u)
+#define INTC_ICDISPR10_DRC1_SHIFT               (8u)
+#define INTC_ICDISPR10_LINI0_INT_T_SHIFT        (11u)
+#define INTC_ICDISPR10_LINI0_INT_R_SHIFT        (12u)
+#define INTC_ICDISPR10_LINI0_INT_S_SHIFT        (13u)
+#define INTC_ICDISPR10_LINI0_INT_M_SHIFT        (14u)
+#define INTC_ICDISPR10_LINI1_INT_T_SHIFT        (15u)
+#define INTC_ICDISPR10_LINI1_INT_R_SHIFT        (16u)
+#define INTC_ICDISPR10_LINI1_INT_S_SHIFT        (17u)
+#define INTC_ICDISPR10_LINI1_INT_M_SHIFT        (18u)
+#define INTC_ICDISPR10_ERI0_SHIFT               (27u)
+#define INTC_ICDISPR10_RXI0_SHIFT               (28u)
+#define INTC_ICDISPR10_TXI0_SHIFT               (29u)
+#define INTC_ICDISPR10_TEI0_SHIFT               (30u)
+#define INTC_ICDISPR10_ERI1_SHIFT               (31u)
+
+#define INTC_ICDISPR11_RXI1_SHIFT               (0u)
+#define INTC_ICDISPR11_TXI1_SHIFT               (1u)
+#define INTC_ICDISPR11_TEI1_SHIFT               (2u)
+#define INTC_ICDISPR11_AVBI_DATA_SHIFT          (3u)
+#define INTC_ICDISPR11_AVBI_ERROR_SHIFT         (4u)
+#define INTC_ICDISPR11_AVBI_MANAGE_SHIFT        (5u)
+#define INTC_ICDISPR11_AVBI_MAC_SHIFT           (6u)
+#define INTC_ICDISPR11_ETHERI_SHIFT             (7u)
+#define INTC_ICDISPR11_CEUI_SHIFT               (12u)
+#define INTC_ICDISPR11_H2XMLB_ERRINT_SHIFT      (29u)
+#define INTC_ICDISPR11_H2XIC1_ERRINT_SHIFT      (30u)
+#define INTC_ICDISPR11_X2HPERI1_ERRINT_SHIFT    (31u)
+
+#define INTC_ICDISPR12_X2HPERI2_ERRINT_SHIFT    (0u)
+#define INTC_ICDISPR12_X2HPERI34_ERRINT_SHIFT   (1u)
+#define INTC_ICDISPR12_X2HPERI5_ERRINT_SHIFT    (2u)
+#define INTC_ICDISPR12_X2HPERI67_ERRINT_SHIFT   (3u)
+#define INTC_ICDISPR12_X2HDBGR_ERRINT_SHIFT     (4u)
+#define INTC_ICDISPR12_X2HBSC_ERRINT_SHIFT      (5u)
+#define INTC_ICDISPR12_X2HSPI1_ERRINT_SHIFT     (6u)
+#define INTC_ICDISPR12_X2HSPI2_ERRINT_SHIFT     (7u)
+#define INTC_ICDISPR12_PRRI_SHIFT               (8u)
+#define INTC_ICDISPR12_IFEI0_SHIFT              (9u)
+#define INTC_ICDISPR12_OFFI0_SHIFT              (10u)
+#define INTC_ICDISPR12_PFVEI0_SHIFT             (11u)
+#define INTC_ICDISPR12_IFEI1_SHIFT              (12u)
+#define INTC_ICDISPR12_OFFI1_SHIFT              (13u)
+#define INTC_ICDISPR12_PFVEI1_SHIFT             (14u)
+
+#define INTC_ICDISPR13_TINT0_SHIFT              (0u)
+#define INTC_ICDISPR13_TINT1_SHIFT              (1u)
+#define INTC_ICDISPR13_TINT2_SHIFT              (2u)
+#define INTC_ICDISPR13_TINT3_SHIFT              (3u)
+#define INTC_ICDISPR13_TINT4_SHIFT              (4u)
+#define INTC_ICDISPR13_TINT5_SHIFT              (5u)
+#define INTC_ICDISPR13_TINT6_SHIFT              (6u)
+#define INTC_ICDISPR13_TINT7_SHIFT              (7u)
+#define INTC_ICDISPR13_TINT8_SHIFT              (8u)
+#define INTC_ICDISPR13_TINT9_SHIFT              (9u)
+#define INTC_ICDISPR13_TINT10_SHIFT             (10u)
+#define INTC_ICDISPR13_TINT11_SHIFT             (11u)
+#define INTC_ICDISPR13_TINT12_SHIFT             (12u)
+#define INTC_ICDISPR13_TINT13_SHIFT             (13u)
+#define INTC_ICDISPR13_TINT14_SHIFT             (14u)
+#define INTC_ICDISPR13_TINT15_SHIFT             (15u)
+#define INTC_ICDISPR13_TINT16_SHIFT             (16u)
+#define INTC_ICDISPR13_TINT17_SHIFT             (17u)
+#define INTC_ICDISPR13_TINT18_SHIFT             (18u)
+#define INTC_ICDISPR13_TINT19_SHIFT             (19u)
+#define INTC_ICDISPR13_TINT20_SHIFT             (20u)
+#define INTC_ICDISPR13_TINT21_SHIFT             (21u)
+#define INTC_ICDISPR13_TINT22_SHIFT             (22u)
+#define INTC_ICDISPR13_TINT23_SHIFT             (23u)
+#define INTC_ICDISPR13_TINT24_SHIFT             (24u)
+#define INTC_ICDISPR13_TINT25_SHIFT             (25u)
+#define INTC_ICDISPR13_TINT26_SHIFT             (26u)
+#define INTC_ICDISPR13_TINT27_SHIFT             (27u)
+#define INTC_ICDISPR13_TINT28_SHIFT             (28u)
+#define INTC_ICDISPR13_TINT29_SHIFT             (29u)
+#define INTC_ICDISPR13_TINT30_SHIFT             (30u)
+#define INTC_ICDISPR13_TINT31_SHIFT             (31u)
+
+#define INTC_ICDISPR14_TINT32_SHIFT             (0u)
+#define INTC_ICDISPR14_TINT33_SHIFT             (1u)
+#define INTC_ICDISPR14_TINT34_SHIFT             (2u)
+#define INTC_ICDISPR14_TINT35_SHIFT             (3u)
+#define INTC_ICDISPR14_TINT36_SHIFT             (4u)
+#define INTC_ICDISPR14_TINT37_SHIFT             (5u)
+#define INTC_ICDISPR14_TINT38_SHIFT             (6u)
+#define INTC_ICDISPR14_TINT39_SHIFT             (7u)
+#define INTC_ICDISPR14_TINT40_SHIFT             (8u)
+#define INTC_ICDISPR14_TINT41_SHIFT             (9u)
+#define INTC_ICDISPR14_TINT42_SHIFT             (10u)
+#define INTC_ICDISPR14_TINT43_SHIFT             (11u)
+#define INTC_ICDISPR14_TINT44_SHIFT             (12u)
+#define INTC_ICDISPR14_TINT45_SHIFT             (13u)
+#define INTC_ICDISPR14_TINT46_SHIFT             (14u)
+#define INTC_ICDISPR14_TINT47_SHIFT             (15u)
+#define INTC_ICDISPR14_TINT48_SHIFT             (16u)
+#define INTC_ICDISPR14_TINT49_SHIFT             (17u)
+#define INTC_ICDISPR14_TINT50_SHIFT             (18u)
+#define INTC_ICDISPR14_TINT51_SHIFT             (19u)
+#define INTC_ICDISPR14_TINT52_SHIFT             (20u)
+#define INTC_ICDISPR14_TINT53_SHIFT             (21u)
+#define INTC_ICDISPR14_TINT54_SHIFT             (22u)
+#define INTC_ICDISPR14_TINT55_SHIFT             (23u)
+#define INTC_ICDISPR14_TINT56_SHIFT             (24u)
+#define INTC_ICDISPR14_TINT57_SHIFT             (25u)
+#define INTC_ICDISPR14_TINT58_SHIFT             (26u)
+#define INTC_ICDISPR14_TINT59_SHIFT             (27u)
+#define INTC_ICDISPR14_TINT60_SHIFT             (28u)
+#define INTC_ICDISPR14_TINT61_SHIFT             (29u)
+#define INTC_ICDISPR14_TINT62_SHIFT             (30u)
+#define INTC_ICDISPR14_TINT63_SHIFT             (31u)
+
+#define INTC_ICDISPR15_TINT64_SHIFT             (0u)
+#define INTC_ICDISPR15_TINT65_SHIFT             (1u)
+#define INTC_ICDISPR15_TINT66_SHIFT             (2u)
+#define INTC_ICDISPR15_TINT67_SHIFT             (3u)
+#define INTC_ICDISPR15_TINT68_SHIFT             (4u)
+#define INTC_ICDISPR15_TINT69_SHIFT             (5u)
+#define INTC_ICDISPR15_TINT70_SHIFT             (6u)
+#define INTC_ICDISPR15_TINT71_SHIFT             (7u)
+#define INTC_ICDISPR15_TINT72_SHIFT             (8u)
+#define INTC_ICDISPR15_TINT73_SHIFT             (9u)
+#define INTC_ICDISPR15_TINT74_SHIFT             (10u)
+#define INTC_ICDISPR15_TINT75_SHIFT             (11u)
+#define INTC_ICDISPR15_TINT76_SHIFT             (12u)
+#define INTC_ICDISPR15_TINT77_SHIFT             (13u)
+#define INTC_ICDISPR15_TINT78_SHIFT             (14u)
+#define INTC_ICDISPR15_TINT79_SHIFT             (15u)
+#define INTC_ICDISPR15_TINT80_SHIFT             (16u)
+#define INTC_ICDISPR15_TINT81_SHIFT             (17u)
+#define INTC_ICDISPR15_TINT82_SHIFT             (18u)
+#define INTC_ICDISPR15_TINT83_SHIFT             (19u)
+#define INTC_ICDISPR15_TINT84_SHIFT             (20u)
+#define INTC_ICDISPR15_TINT85_SHIFT             (21u)
+#define INTC_ICDISPR15_TINT86_SHIFT             (22u)
+#define INTC_ICDISPR15_TINT87_SHIFT             (23u)
+#define INTC_ICDISPR15_TINT88_SHIFT             (24u)
+#define INTC_ICDISPR15_TINT89_SHIFT             (25u)
+#define INTC_ICDISPR15_TINT90_SHIFT             (26u)
+#define INTC_ICDISPR15_TINT91_SHIFT             (27u)
+#define INTC_ICDISPR15_TINT92_SHIFT             (28u)
+#define INTC_ICDISPR15_TINT93_SHIFT             (29u)
+#define INTC_ICDISPR15_TINT94_SHIFT             (30u)
+#define INTC_ICDISPR15_TINT95_SHIFT             (31u)
+
+#define INTC_ICDISPR16_TINT96_SHIFT             (0u)
+#define INTC_ICDISPR16_TINT97_SHIFT             (1u)
+#define INTC_ICDISPR16_TINT98_SHIFT             (2u)
+#define INTC_ICDISPR16_TINT99_SHIFT             (3u)
+#define INTC_ICDISPR16_TINT100_SHIFT            (4u)
+#define INTC_ICDISPR16_TINT101_SHIFT            (5u)
+#define INTC_ICDISPR16_TINT102_SHIFT            (6u)
+#define INTC_ICDISPR16_TINT103_SHIFT            (7u)
+#define INTC_ICDISPR16_TINT104_SHIFT            (8u)
+#define INTC_ICDISPR16_TINT105_SHIFT            (9u)
+#define INTC_ICDISPR16_TINT106_SHIFT            (10u)
+#define INTC_ICDISPR16_TINT107_SHIFT            (11u)
+#define INTC_ICDISPR16_TINT108_SHIFT            (12u)
+#define INTC_ICDISPR16_TINT109_SHIFT            (13u)
+#define INTC_ICDISPR16_TINT110_SHIFT            (14u)
+#define INTC_ICDISPR16_TINT111_SHIFT            (15u)
+#define INTC_ICDISPR16_TINT112_SHIFT            (16u)
+#define INTC_ICDISPR16_TINT113_SHIFT            (17u)
+#define INTC_ICDISPR16_TINT114_SHIFT            (18u)
+#define INTC_ICDISPR16_TINT115_SHIFT            (19u)
+#define INTC_ICDISPR16_TINT116_SHIFT            (20u)
+#define INTC_ICDISPR16_TINT117_SHIFT            (21u)
+#define INTC_ICDISPR16_TINT118_SHIFT            (22u)
+#define INTC_ICDISPR16_TINT119_SHIFT            (23u)
+#define INTC_ICDISPR16_TINT120_SHIFT            (24u)
+#define INTC_ICDISPR16_TINT121_SHIFT            (25u)
+#define INTC_ICDISPR16_TINT122_SHIFT            (26u)
+#define INTC_ICDISPR16_TINT123_SHIFT            (27u)
+#define INTC_ICDISPR16_TINT124_SHIFT            (28u)
+#define INTC_ICDISPR16_TINT125_SHIFT            (29u)
+#define INTC_ICDISPR16_TINT126_SHIFT            (30u)
+#define INTC_ICDISPR16_TINT127_SHIFT            (31u)
+
+#define INTC_ICDISPR17_TINT128_SHIFT            (0u)
+#define INTC_ICDISPR17_TINT129_SHIFT            (1u)
+#define INTC_ICDISPR17_TINT130_SHIFT            (2u)
+#define INTC_ICDISPR17_TINT131_SHIFT            (3u)
+#define INTC_ICDISPR17_TINT132_SHIFT            (4u)
+#define INTC_ICDISPR17_TINT133_SHIFT            (5u)
+#define INTC_ICDISPR17_TINT134_SHIFT            (6u)
+#define INTC_ICDISPR17_TINT135_SHIFT            (7u)
+#define INTC_ICDISPR17_TINT136_SHIFT            (8u)
+#define INTC_ICDISPR17_TINT137_SHIFT            (9u)
+#define INTC_ICDISPR17_TINT138_SHIFT            (10u)
+#define INTC_ICDISPR17_TINT139_SHIFT            (11u)
+#define INTC_ICDISPR17_TINT140_SHIFT            (12u)
+#define INTC_ICDISPR17_TINT141_SHIFT            (13u)
+#define INTC_ICDISPR17_TINT142_SHIFT            (14u)
+#define INTC_ICDISPR17_TINT143_SHIFT            (15u)
+#define INTC_ICDISPR17_TINT144_SHIFT            (16u)
+#define INTC_ICDISPR17_TINT145_SHIFT            (17u)
+#define INTC_ICDISPR17_TINT146_SHIFT            (18u)
+#define INTC_ICDISPR17_TINT147_SHIFT            (19u)
+#define INTC_ICDISPR17_TINT148_SHIFT            (20u)
+#define INTC_ICDISPR17_TINT149_SHIFT            (21u)
+#define INTC_ICDISPR17_TINT150_SHIFT            (22u)
+#define INTC_ICDISPR17_TINT151_SHIFT            (23u)
+#define INTC_ICDISPR17_TINT152_SHIFT            (24u)
+#define INTC_ICDISPR17_TINT153_SHIFT            (25u)
+#define INTC_ICDISPR17_TINT154_SHIFT            (26u)
+#define INTC_ICDISPR17_TINT155_SHIFT            (27u)
+#define INTC_ICDISPR17_TINT156_SHIFT            (28u)
+#define INTC_ICDISPR17_TINT157_SHIFT            (29u)
+#define INTC_ICDISPR17_TINT158_SHIFT            (30u)
+#define INTC_ICDISPR17_TINT159_SHIFT            (31u)
+
+#define INTC_ICDISPR18_TINT160_SHIFT            (0u)
+#define INTC_ICDISPR18_TINT161_SHIFT            (1u)
+#define INTC_ICDISPR18_TINT162_SHIFT            (2u)
+#define INTC_ICDISPR18_TINT163_SHIFT            (3u)
+#define INTC_ICDISPR18_TINT164_SHIFT            (4u)
+#define INTC_ICDISPR18_TINT165_SHIFT            (5u)
+#define INTC_ICDISPR18_TINT166_SHIFT            (6u)
+#define INTC_ICDISPR18_TINT167_SHIFT            (7u)
+#define INTC_ICDISPR18_TINT168_SHIFT            (8u)
+#define INTC_ICDISPR18_TINT169_SHIFT            (9u)
+#define INTC_ICDISPR18_TINT170_SHIFT            (10u)
+
+#define INTC_ICDICPR0_SW0_SHIFT                 (0u)
+#define INTC_ICDICPR0_SW1_SHIFT                 (1u)
+#define INTC_ICDICPR0_SW2_SHIFT                 (2u)
+#define INTC_ICDICPR0_SW3_SHIFT                 (3u)
+#define INTC_ICDICPR0_SW4_SHIFT                 (4u)
+#define INTC_ICDICPR0_SW5_SHIFT                 (5u)
+#define INTC_ICDICPR0_SW6_SHIFT                 (6u)
+#define INTC_ICDICPR0_SW7_SHIFT                 (7u)
+#define INTC_ICDICPR0_SW8_SHIFT                 (8u)
+#define INTC_ICDICPR0_SW9_SHIFT                 (9u)
+#define INTC_ICDICPR0_SW10_SHIFT                (10u)
+#define INTC_ICDICPR0_SW11_SHIFT                (11u)
+#define INTC_ICDICPR0_SW12_SHIFT                (12u)
+#define INTC_ICDICPR0_SW13_SHIFT                (13u)
+#define INTC_ICDICPR0_SW14_SHIFT                (14u)
+#define INTC_ICDICPR0_SW15_SHIFT                (15u)
+#define INTC_ICDICPR0_PMUIRQ0_SHIFT             (16u)
+#define INTC_ICDICPR0_COMMRX0_SHIFT             (17u)
+#define INTC_ICDICPR0_COMMTX0_SHIFT             (18u)
+#define INTC_ICDICPR0_CTIIRQ0_SHIFT             (19u)
+
+#define INTC_ICDICPR1_IRQ0_SHIFT                (0u)
+#define INTC_ICDICPR1_IRQ1_SHIFT                (1u)
+#define INTC_ICDICPR1_IRQ2_SHIFT                (2u)
+#define INTC_ICDICPR1_IRQ3_SHIFT                (3u)
+#define INTC_ICDICPR1_IRQ4_SHIFT                (4u)
+#define INTC_ICDICPR1_IRQ5_SHIFT                (5u)
+#define INTC_ICDICPR1_IRQ6_SHIFT                (6u)
+#define INTC_ICDICPR1_IRQ7_SHIFT                (7u)
+#define INTC_ICDICPR1_PL310ERR_SHIFT            (8u)
+#define INTC_ICDICPR1_DMAINT0_SHIFT             (9u)
+#define INTC_ICDICPR1_DMAINT1_SHIFT             (10u)
+#define INTC_ICDICPR1_DMAINT2_SHIFT             (11u)
+#define INTC_ICDICPR1_DMAINT3_SHIFT             (12u)
+#define INTC_ICDICPR1_DMAINT4_SHIFT             (13u)
+#define INTC_ICDICPR1_DMAINT5_SHIFT             (14u)
+#define INTC_ICDICPR1_DMAINT6_SHIFT             (15u)
+#define INTC_ICDICPR1_DMAINT7_SHIFT             (16u)
+#define INTC_ICDICPR1_DMAINT8_SHIFT             (17u)
+#define INTC_ICDICPR1_DMAINT9_SHIFT             (18u)
+#define INTC_ICDICPR1_DMAINT10_SHIFT            (19u)
+#define INTC_ICDICPR1_DMAINT11_SHIFT            (20u)
+#define INTC_ICDICPR1_DMAINT12_SHIFT            (21u)
+#define INTC_ICDICPR1_DMAINT13_SHIFT            (22u)
+#define INTC_ICDICPR1_DMAINT14_SHIFT            (23u)
+#define INTC_ICDICPR1_DMAINT15_SHIFT            (24u)
+#define INTC_ICDICPR1_DMAERR_SHIFT              (25u)
+
+#define INTC_ICDICPR2_USBI0_SHIFT               (9u)
+#define INTC_ICDICPR2_USBI1_SHIFT               (10u)
+#define INTC_ICDICPR2_S0_VI_VSYNC0_SHIFT        (11u)
+#define INTC_ICDICPR2_S0_LO_VSYNC0_SHIFT        (12u)
+#define INTC_ICDICPR2_S0_VSYNCERR0_SHIFT        (13u)
+#define INTC_ICDICPR2_GR3_VLINE0_SHIFT          (14u)
+#define INTC_ICDICPR2_S0_VFIELD0_SHIFT          (15u)
+#define INTC_ICDICPR2_IV1_VBUFERR0_SHIFT        (16u)
+#define INTC_ICDICPR2_IV3_VBUFERR0_SHIFT        (17u)
+#define INTC_ICDICPR2_IV5_VBUFERR0_SHIFT        (18u)
+#define INTC_ICDICPR2_IV6_VBUFERR0_SHIFT        (19u)
+#define INTC_ICDICPR2_S0_WLINE0_SHIFT           (20u)
+#define INTC_ICDICPR2_S1_VI_VSYNC0_SHIFT        (21u)
+#define INTC_ICDICPR2_S1_LO_VSYNC0_SHIFT        (22u)
+#define INTC_ICDICPR2_S1_VSYNCERR0_SHIFT        (23u)
+#define INTC_ICDICPR2_S1_VFIELD0_SHIFT          (24u)
+#define INTC_ICDICPR2_IV2_VBUFERR0_SHIFT        (25u)
+#define INTC_ICDICPR2_IV4_VBUFERR0_SHIFT        (26u)
+#define INTC_ICDICPR2_S1_WLINE0_SHIFT           (27u)
+#define INTC_ICDICPR2_OIR_VI_VSYNC0_SHIFT       (28u)
+#define INTC_ICDICPR2_OIR_LO_VSYNC0_SHIFT       (29u)
+#define INTC_ICDICPR2_OIR_VSYNCERR0_SHIFT       (30u)
+#define INTC_ICDICPR2_OIR_VFIELD0_SHIFT         (31u)
+
+#define INTC_ICDICPR3_IV7_VBUFERR0_SHIFT        (0u)
+#define INTC_ICDICPR3_IV8_VBUFERR0_SHIFT        (1u)
+#define INTC_ICDICPR3_S0_VI_VSYNC1_SHIFT        (3u)
+#define INTC_ICDICPR3_S0_LO_VSYNC1_SHIFT        (4u)
+#define INTC_ICDICPR3_S0_VSYNCERR1_SHIFT        (5u)
+#define INTC_ICDICPR3_GR3_VLINE1_SHIFT          (6u)
+#define INTC_ICDICPR3_S0_VFIELD1_SHIFT          (7u)
+#define INTC_ICDICPR3_IV1_VBUFERR1_SHIFT        (8u)
+#define INTC_ICDICPR3_IV3_VBUFERR1_SHIFT        (9u)
+#define INTC_ICDICPR3_IV5_VBUFERR1_SHIFT        (10u)
+#define INTC_ICDICPR3_IV6_VBUFERR1_SHIFT        (11u)
+#define INTC_ICDICPR3_S0_WLINE1_SHIFT           (12u)
+#define INTC_ICDICPR3_S1_VI_VSYNC1_SHIFT        (13u)
+#define INTC_ICDICPR3_S1_LO_VSYNC1_SHIFT        (14u)
+#define INTC_ICDICPR3_S1_VSYNCERR1_SHIFT        (15u)
+#define INTC_ICDICPR3_S1_VFIELD1_SHIFT          (16u)
+#define INTC_ICDICPR3_IV2_VBUFERR1_SHIFT        (17u)
+#define INTC_ICDICPR3_IV4_VBUFERR1_SHIFT        (18u)
+#define INTC_ICDICPR3_S1_WLINE1_SHIFT           (19u)
+#define INTC_ICDICPR3_OIR_VI_VSYNC1_SHIFT       (20u)
+#define INTC_ICDICPR3_OIR_LO_VSYNC1_SHIFT       (21u)
+#define INTC_ICDICPR3_OIR_VLINE1_SHIFT          (22u)
+#define INTC_ICDICPR3_OIR_VFIELD1_SHIFT         (23u)
+#define INTC_ICDICPR3_IV7_VBUFERR1_SHIFT        (24u)
+#define INTC_ICDICPR3_IV8_VBUFERR1_SHIFT        (25u)
+#define INTC_ICDICPR3_IMRDI_SHIFT               (27u)
+#define INTC_ICDICPR3_IMR2I0_SHIFT              (28u)
+#define INTC_ICDICPR3_IMR2I1_SHIFT              (29u)
+#define INTC_ICDICPR3_JEDI_SHIFT                (30u)
+#define INTC_ICDICPR3_JDTI_SHIFT                (31u)
+
+#define INTC_ICDICPR4_CMP0_SHIFT                (0u)
+#define INTC_ICDICPR4_CMP1_SHIFT                (1u)
+#define INTC_ICDICPR4_INT0_SHIFT                (2u)
+#define INTC_ICDICPR4_INT1_SHIFT                (3u)
+#define INTC_ICDICPR4_INT2_SHIFT                (4u)
+#define INTC_ICDICPR4_INT3_SHIFT                (5u)
+#define INTC_ICDICPR4_OSTM0TINT_SHIFT           (6u)
+#define INTC_ICDICPR4_OSTM1TINT_SHIFT           (7u)
+#define INTC_ICDICPR4_CMI_SHIFT                 (8u)
+#define INTC_ICDICPR4_WTOUT_SHIFT               (9u)
+#define INTC_ICDICPR4_ITI_SHIFT                 (10u)
+#define INTC_ICDICPR4_TGI0A_SHIFT               (11u)
+#define INTC_ICDICPR4_TGI0B_SHIFT               (12u)
+#define INTC_ICDICPR4_TGI0C_SHIFT               (13u)
+#define INTC_ICDICPR4_TGI0D_SHIFT               (14u)
+#define INTC_ICDICPR4_TGI0V_SHIFT               (15u)
+#define INTC_ICDICPR4_TGI0E_SHIFT               (16u)
+#define INTC_ICDICPR4_TGI0F_SHIFT               (17u)
+#define INTC_ICDICPR4_TGI1A_SHIFT               (18u)
+#define INTC_ICDICPR4_TGI1B_SHIFT               (19u)
+#define INTC_ICDICPR4_TGI1V_SHIFT               (20u)
+#define INTC_ICDICPR4_TGI1U_SHIFT               (21u)
+#define INTC_ICDICPR4_TGI2A_SHIFT               (22u)
+#define INTC_ICDICPR4_TGI2B_SHIFT               (23u)
+#define INTC_ICDICPR4_TGI2V_SHIFT               (24u)
+#define INTC_ICDICPR4_TGI2U_SHIFT               (25u)
+#define INTC_ICDICPR4_TGI3A_SHIFT               (26u)
+#define INTC_ICDICPR4_TGI3B_SHIFT               (27u)
+#define INTC_ICDICPR4_TGI3C_SHIFT               (28u)
+#define INTC_ICDICPR4_TGI3D_SHIFT               (29u)
+#define INTC_ICDICPR4_TGI3V_SHIFT               (30u)
+#define INTC_ICDICPR4_TGI4A_SHIFT               (31u)
+
+#define INTC_ICDICPR5_TGI4B_SHIFT               (0u)
+#define INTC_ICDICPR5_TGI4C_SHIFT               (1u)
+#define INTC_ICDICPR5_TGI4D_SHIFT               (2u)
+#define INTC_ICDICPR5_TGI4V_SHIFT               (3u)
+#define INTC_ICDICPR5_CMI1_SHIFT                (4u)
+#define INTC_ICDICPR5_CMI2_SHIFT                (5u)
+#define INTC_ICDICPR5_SGDEI0_SHIFT              (6u)
+#define INTC_ICDICPR5_SGDEI1_SHIFT              (7u)
+#define INTC_ICDICPR5_SGDEI2_SHIFT              (8u)
+#define INTC_ICDICPR5_SGDEI3_SHIFT              (9u)
+#define INTC_ICDICPR5_ADI_SHIFT                 (10u)
+#define INTC_ICDICPR5_LMTI_SHIFT                (11u)
+#define INTC_ICDICPR5_SSII0_SHIFT               (12u)
+#define INTC_ICDICPR5_SSIRXI0_SHIFT             (13u)
+#define INTC_ICDICPR5_SSITXI0_SHIFT             (14u)
+#define INTC_ICDICPR5_SSII1_SHIFT               (15u)
+#define INTC_ICDICPR5_SSIRXI1_SHIFT             (16u)
+#define INTC_ICDICPR5_SSITXI1_SHIFT             (17u)
+#define INTC_ICDICPR5_SSII2_SHIFT               (18u)
+#define INTC_ICDICPR5_SSIRTI2_SHIFT             (19u)
+#define INTC_ICDICPR5_SSII3_SHIFT               (20u)
+#define INTC_ICDICPR5_SSIRXI3_SHIFT             (21u)
+#define INTC_ICDICPR5_SSITXI3_SHIFT             (22u)
+#define INTC_ICDICPR5_SSII4_SHIFT               (23u)
+#define INTC_ICDICPR5_SSIRTI4_SHIFT             (24u)
+#define INTC_ICDICPR5_SSII5_SHIFT               (25u)
+#define INTC_ICDICPR5_SSIRXI5_SHIFT             (26u)
+#define INTC_ICDICPR5_SSITXI5_SHIFT             (27u)
+#define INTC_ICDICPR5_SPDIFI_SHIFT              (28u)
+#define INTC_ICDICPR5_INTIICTEI0_SHIFT          (29u)
+#define INTC_ICDICPR5_INTIICRI0_SHIFT           (30u)
+#define INTC_ICDICPR5_INTIICTI0_SHIFT           (31u)
+
+#define INTC_ICDICPR6_INTIICSPI0_SHIFT          (0u)
+#define INTC_ICDICPR6_INTIICSTI0_SHIFT          (1u)
+#define INTC_ICDICPR6_INTIICNAKI0_SHIFT         (2u)
+#define INTC_ICDICPR6_INTIICALI0_SHIFT          (3u)
+#define INTC_ICDICPR6_INTIICTMOI0_SHIFT         (4u)
+#define INTC_ICDICPR6_INTIICTEI1_SHIFT          (5u)
+#define INTC_ICDICPR6_INTIICRI1_SHIFT           (6u)
+#define INTC_ICDICPR6_INTIICTI1_SHIFT           (7u)
+#define INTC_ICDICPR6_INTIICSPI1_SHIFT          (8u)
+#define INTC_ICDICPR6_INTIICSTI1_SHIFT          (9u)
+#define INTC_ICDICPR6_INTIICNAKI1_SHIFT         (10u)
+#define INTC_ICDICPR6_INTIICALI1_SHIFT          (11u)
+#define INTC_ICDICPR6_INTIICTMOI1_SHIFT         (12u)
+#define INTC_ICDICPR6_INTIICTEI2_SHIFT          (13u)
+#define INTC_ICDICPR6_INTIICRI2_SHIFT           (14u)
+#define INTC_ICDICPR6_INTIICTI2_SHIFT           (15u)
+#define INTC_ICDICPR6_INTIICSPI2_SHIFT          (16u)
+#define INTC_ICDICPR6_INTIICSTI2_SHIFT          (17u)
+#define INTC_ICDICPR6_INTIICNAKI2_SHIFT         (18u)
+#define INTC_ICDICPR6_INTIICALI2_SHIFT          (19u)
+#define INTC_ICDICPR6_INTIICTMOI2_SHIFT         (20u)
+#define INTC_ICDICPR6_INTIICTEI3_SHIFT          (21u)
+#define INTC_ICDICPR6_INTIICRI3_SHIFT           (22u)
+#define INTC_ICDICPR6_INTIICTI3_SHIFT           (23u)
+#define INTC_ICDICPR6_INTIICSPI3_SHIFT          (24u)
+#define INTC_ICDICPR6_INTIICSTI3_SHIFT          (25u)
+#define INTC_ICDICPR6_INTIICNAKI3_SHIFT         (26u)
+#define INTC_ICDICPR6_INTIICALI3_SHIFT          (27u)
+#define INTC_ICDICPR6_INTIICTMOI3_SHIFT         (28u)
+#define INTC_ICDICPR6_BRI0_SHIFT                (29u)
+#define INTC_ICDICPR6_ERI0_SHIFT                (30u)
+#define INTC_ICDICPR6_RXI0_SHIFT                (31u)
+
+#define INTC_ICDICPR7_TXI0_SHIFT                (0u)
+#define INTC_ICDICPR7_BRI1_SHIFT                (1u)
+#define INTC_ICDICPR7_ERI1_SHIFT                (2u)
+#define INTC_ICDICPR7_RXI1_SHIFT                (3u)
+#define INTC_ICDICPR7_TXI1_SHIFT                (4u)
+#define INTC_ICDICPR7_BRI2_SHIFT                (5u)
+#define INTC_ICDICPR7_ERI2_SHIFT                (6u)
+#define INTC_ICDICPR7_RXI2_SHIFT                (7u)
+#define INTC_ICDICPR7_TXI2_SHIFT                (8u)
+#define INTC_ICDICPR7_BRI3_SHIFT                (9u)
+#define INTC_ICDICPR7_ERI3_SHIFT                (10u)
+#define INTC_ICDICPR7_RXI3_SHIFT                (11u)
+#define INTC_ICDICPR7_TXI3_SHIFT                (12u)
+#define INTC_ICDICPR7_BRI4_SHIFT                (13u)
+#define INTC_ICDICPR7_ERI4_SHIFT                (14u)
+#define INTC_ICDICPR7_RXI4_SHIFT                (15u)
+#define INTC_ICDICPR7_TXI4_SHIFT                (16u)
+#define INTC_ICDICPR7_BRI5_SHIFT                (17u)
+#define INTC_ICDICPR7_ERI5_SHIFT                (18u)
+#define INTC_ICDICPR7_RXI5_SHIFT                (19u)
+#define INTC_ICDICPR7_TXI5_SHIFT                (20u)
+#define INTC_ICDICPR7_BRI6_SHIFT                (21u)
+#define INTC_ICDICPR7_ERI6_SHIFT                (22u)
+#define INTC_ICDICPR7_RXI6_SHIFT                (23u)
+#define INTC_ICDICPR7_TXI6_SHIFT                (24u)
+#define INTC_ICDICPR7_BRI7_SHIFT                (25u)
+#define INTC_ICDICPR7_ERI7_SHIFT                (26u)
+#define INTC_ICDICPR7_RXI7_SHIFT                (27u)
+#define INTC_ICDICPR7_TXI7_SHIFT                (28u)
+#define INTC_ICDICPR7_INTRCANGERR_SHIFT         (29u)
+#define INTC_ICDICPR7_INTRCANGRECC_SHIFT        (30u)
+#define INTC_ICDICPR7_INTRCAN0REC_SHIFT         (31u)
+
+#define INTC_ICDICPR8_INTRCAN0ERR_SHIFT         (0u)
+#define INTC_ICDICPR8_INTRCAN0TRX_SHIFT         (1u)
+#define INTC_ICDICPR8_INTRCAN1REC_SHIFT         (2u)
+#define INTC_ICDICPR8_INTRCAN1ERR_SHIFT         (3u)
+#define INTC_ICDICPR8_INTRCAN1TRX_SHIFT         (4u)
+#define INTC_ICDICPR8_INTRCAN2REC_SHIFT         (5u)
+#define INTC_ICDICPR8_INTRCAN2ERR_SHIFT         (6u)
+#define INTC_ICDICPR8_INTRCAN2TRX_SHIFT         (7u)
+#define INTC_ICDICPR8_INTRCAN3REC_SHIFT         (8u)
+#define INTC_ICDICPR8_INTRCAN3ERR_SHIFT         (9u)
+#define INTC_ICDICPR8_INTRCAN3TRX_SHIFT         (10u)
+#define INTC_ICDICPR8_INTRCAN4REC_SHIFT         (11u)
+#define INTC_ICDICPR8_INTRCAN4ERR_SHIFT         (12u)
+#define INTC_ICDICPR8_INTRCAN4TRX_SHIFT         (13u)
+#define INTC_ICDICPR8_SPEI0_SHIFT               (14u)
+#define INTC_ICDICPR8_SPRI0_SHIFT               (15u)
+#define INTC_ICDICPR8_SPTI0_SHIFT               (16u)
+#define INTC_ICDICPR8_SPEI1_SHIFT               (17u)
+#define INTC_ICDICPR8_SPRI1_SHIFT               (18u)
+#define INTC_ICDICPR8_SPTI1_SHIFT               (19u)
+#define INTC_ICDICPR8_SPEI2_SHIFT               (20u)
+#define INTC_ICDICPR8_SPRI2_SHIFT               (21u)
+#define INTC_ICDICPR8_SPTI2_SHIFT               (22u)
+#define INTC_ICDICPR8_SPEI3_SHIFT               (23u)
+#define INTC_ICDICPR8_SPRI3_SHIFT               (24u)
+#define INTC_ICDICPR8_SPTI3_SHIFT               (25u)
+#define INTC_ICDICPR8_SPEI4_SHIFT               (26u)
+#define INTC_ICDICPR8_SPRI4_SHIFT               (27u)
+#define INTC_ICDICPR8_SPTI4_SHIFT               (28u)
+#define INTC_ICDICPR8_IEBBTD_SHIFT              (29u)
+#define INTC_ICDICPR8_IEBBTERR_SHIFT            (30u)
+#define INTC_ICDICPR8_IEBBTSTA_SHIFT            (31u)
+
+#define INTC_ICDICPR9_IEBBTV_SHIFT              (0u)
+#define INTC_ICDICPR9_ISY_SHIFT                 (1u)
+#define INTC_ICDICPR9_IERR_SHIFT                (2u)
+#define INTC_ICDICPR9_ITARG_SHIFT               (3u)
+#define INTC_ICDICPR9_ISEC_SHIFT                (4u)
+#define INTC_ICDICPR9_IBUF_SHIFT                (5u)
+#define INTC_ICDICPR9_IREADY_SHIFT              (6u)
+#define INTC_ICDICPR9_FLSTE_SHIFT               (7u)
+#define INTC_ICDICPR9_FLTENDI_SHIFT             (8u)
+#define INTC_ICDICPR9_FLTREQ0I_SHIFT            (9u)
+#define INTC_ICDICPR9_FLTREQ1I_SHIFT            (10u)
+#define INTC_ICDICPR9_MMC0_SHIFT                (11u)
+#define INTC_ICDICPR9_MMC1_SHIFT                (12u)
+#define INTC_ICDICPR9_MMC2_SHIFT                (13u)
+#define INTC_ICDICPR9_SDHI0_3_SHIFT             (14u)
+#define INTC_ICDICPR9_SDHI0_0_SHIFT             (15u)
+#define INTC_ICDICPR9_SDHI0_1_SHIFT             (16u)
+#define INTC_ICDICPR9_SDHI1_3_SHIFT             (17u)
+#define INTC_ICDICPR9_SDHI1_0_SHIFT             (18u)
+#define INTC_ICDICPR9_SDHI1_1_SHIFT             (19u)
+#define INTC_ICDICPR9_ARM_SHIFT                 (20u)
+#define INTC_ICDICPR9_PRD_SHIFT                 (21u)
+#define INTC_ICDICPR9_CUP_SHIFT                 (22u)
+#define INTC_ICDICPR9_SCUAI0_SHIFT              (23u)
+#define INTC_ICDICPR9_SCUAI1_SHIFT              (24u)
+#define INTC_ICDICPR9_SCUFDI0_SHIFT             (25u)
+#define INTC_ICDICPR9_SCUFDI1_SHIFT             (26u)
+#define INTC_ICDICPR9_SCUFDI2_SHIFT             (27u)
+#define INTC_ICDICPR9_SCUFDI3_SHIFT             (28u)
+#define INTC_ICDICPR9_SCUFUI0_SHIFT             (29u)
+#define INTC_ICDICPR9_SCUFUI1_SHIFT             (30u)
+#define INTC_ICDICPR9_SCUFUI2_SHIFT             (31u)
+
+#define INTC_ICDICPR10_SCUFUI3_SHIFT            (0u)
+#define INTC_ICDICPR10_SCUDVI0_SHIFT            (1u)
+#define INTC_ICDICPR10_SCUDVI1_SHIFT            (2u)
+#define INTC_ICDICPR10_SCUDVI2_SHIFT            (3u)
+#define INTC_ICDICPR10_SCUDVI3_SHIFT            (4u)
+#define INTC_ICDICPR10_MLB_CINT_SHIFT           (5u)
+#define INTC_ICDICPR10_MLB_SINT_SHIFT           (6u)
+#define INTC_ICDICPR10_DRC0_SHIFT               (7u)
+#define INTC_ICDICPR10_DRC1_SHIFT               (8u)
+#define INTC_ICDICPR10_LINI0_INT_T_SHIFT        (11u)
+#define INTC_ICDICPR10_LINI0_INT_R_SHIFT        (12u)
+#define INTC_ICDICPR10_LINI0_INT_S_SHIFT        (13u)
+#define INTC_ICDICPR10_LINI0_INT_M_SHIFT        (14u)
+#define INTC_ICDICPR10_LINI1_INT_T_SHIFT        (15u)
+#define INTC_ICDICPR10_LINI1_INT_R_SHIFT        (16u)
+#define INTC_ICDICPR10_LINI1_INT_S_SHIFT        (17u)
+#define INTC_ICDICPR10_LINI1_INT_M_SHIFT        (18u)
+#define INTC_ICDICPR10_ERI0_SHIFT               (27u)
+#define INTC_ICDICPR10_RXI0_SHIFT               (28u)
+#define INTC_ICDICPR10_TXI0_SHIFT               (29u)
+#define INTC_ICDICPR10_TEI0_SHIFT               (30u)
+#define INTC_ICDICPR10_ERI1_SHIFT               (31u)
+
+#define INTC_ICDICPR11_RXI1_SHIFT               (0u)
+#define INTC_ICDICPR11_TXI1_SHIFT               (1u)
+#define INTC_ICDICPR11_TEI1_SHIFT               (2u)
+#define INTC_ICDICPR11_AVBI_DATA_SHIFT          (3u)
+#define INTC_ICDICPR11_AVBI_ERROR_SHIFT         (4u)
+#define INTC_ICDICPR11_AVBI_MANAGE_SHIFT        (5u)
+#define INTC_ICDICPR11_AVBI_MAC_SHIFT           (6u)
+#define INTC_ICDICPR11_ETHERI_SHIFT             (7u)
+#define INTC_ICDICPR11_CEUI_SHIFT               (12u)
+#define INTC_ICDICPR11_H2XMLB_ERRINT_SHIFT      (29u)
+#define INTC_ICDICPR11_H2XIC1_ERRINT_SHIFT      (30u)
+#define INTC_ICDICPR11_X2HPERI1_ERRINT_SHIFT    (31u)
+
+#define INTC_ICDICPR12_X2HPERI2_ERRINT_SHIFT    (0u)
+#define INTC_ICDICPR12_X2HPERI34_ERRINT_SHIFT   (1u)
+#define INTC_ICDICPR12_X2HPERI5_ERRINT_SHIFT    (2u)
+#define INTC_ICDICPR12_X2HPERI67_ERRINT_SHIFT   (3u)
+#define INTC_ICDICPR12_X2HDBGR_ERRINT_SHIFT     (4u)
+#define INTC_ICDICPR12_X2HBSC_ERRINT_SHIFT      (5u)
+#define INTC_ICDICPR12_X2HSPI1_ERRINT_SHIFT     (6u)
+#define INTC_ICDICPR12_X2HSPI2_ERRINT_SHIFT     (7u)
+#define INTC_ICDICPR12_PRRI_SHIFT               (8u)
+#define INTC_ICDICPR12_IFEI0_SHIFT              (9u)
+#define INTC_ICDICPR12_OFFI0_SHIFT              (10u)
+#define INTC_ICDICPR12_PFVEI0_SHIFT             (11u)
+#define INTC_ICDICPR12_IFEI1_SHIFT              (12u)
+#define INTC_ICDICPR12_OFFI1_SHIFT              (13u)
+#define INTC_ICDICPR12_PFVEI1_SHIFT             (14u)
+
+#define INTC_ICDICPR13_TINT0_SHIFT              (0u)
+#define INTC_ICDICPR13_TINT1_SHIFT              (1u)
+#define INTC_ICDICPR13_TINT2_SHIFT              (2u)
+#define INTC_ICDICPR13_TINT3_SHIFT              (3u)
+#define INTC_ICDICPR13_TINT4_SHIFT              (4u)
+#define INTC_ICDICPR13_TINT5_SHIFT              (5u)
+#define INTC_ICDICPR13_TINT6_SHIFT              (6u)
+#define INTC_ICDICPR13_TINT7_SHIFT              (7u)
+#define INTC_ICDICPR13_TINT8_SHIFT              (8u)
+#define INTC_ICDICPR13_TINT9_SHIFT              (9u)
+#define INTC_ICDICPR13_TINT10_SHIFT             (10u)
+#define INTC_ICDICPR13_TINT11_SHIFT             (11u)
+#define INTC_ICDICPR13_TINT12_SHIFT             (12u)
+#define INTC_ICDICPR13_TINT13_SHIFT             (13u)
+#define INTC_ICDICPR13_TINT14_SHIFT             (14u)
+#define INTC_ICDICPR13_TINT15_SHIFT             (15u)
+#define INTC_ICDICPR13_TINT16_SHIFT             (16u)
+#define INTC_ICDICPR13_TINT17_SHIFT             (17u)
+#define INTC_ICDICPR13_TINT18_SHIFT             (18u)
+#define INTC_ICDICPR13_TINT19_SHIFT             (19u)
+#define INTC_ICDICPR13_TINT20_SHIFT             (20u)
+#define INTC_ICDICPR13_TINT21_SHIFT             (21u)
+#define INTC_ICDICPR13_TINT22_SHIFT             (22u)
+#define INTC_ICDICPR13_TINT23_SHIFT             (23u)
+#define INTC_ICDICPR13_TINT24_SHIFT             (24u)
+#define INTC_ICDICPR13_TINT25_SHIFT             (25u)
+#define INTC_ICDICPR13_TINT26_SHIFT             (26u)
+#define INTC_ICDICPR13_TINT27_SHIFT             (27u)
+#define INTC_ICDICPR13_TINT28_SHIFT             (28u)
+#define INTC_ICDICPR13_TINT29_SHIFT             (29u)
+#define INTC_ICDICPR13_TINT30_SHIFT             (30u)
+#define INTC_ICDICPR13_TINT31_SHIFT             (31u)
+
+#define INTC_ICDICPR14_TINT32_SHIFT             (0u)
+#define INTC_ICDICPR14_TINT33_SHIFT             (1u)
+#define INTC_ICDICPR14_TINT34_SHIFT             (2u)
+#define INTC_ICDICPR14_TINT35_SHIFT             (3u)
+#define INTC_ICDICPR14_TINT36_SHIFT             (4u)
+#define INTC_ICDICPR14_TINT37_SHIFT             (5u)
+#define INTC_ICDICPR14_TINT38_SHIFT             (6u)
+#define INTC_ICDICPR14_TINT39_SHIFT             (7u)
+#define INTC_ICDICPR14_TINT40_SHIFT             (8u)
+#define INTC_ICDICPR14_TINT41_SHIFT             (9u)
+#define INTC_ICDICPR14_TINT42_SHIFT             (10u)
+#define INTC_ICDICPR14_TINT43_SHIFT             (11u)
+#define INTC_ICDICPR14_TINT44_SHIFT             (12u)
+#define INTC_ICDICPR14_TINT45_SHIFT             (13u)
+#define INTC_ICDICPR14_TINT46_SHIFT             (14u)
+#define INTC_ICDICPR14_TINT47_SHIFT             (15u)
+#define INTC_ICDICPR14_TINT48_SHIFT             (16u)
+#define INTC_ICDICPR14_TINT49_SHIFT             (17u)
+#define INTC_ICDICPR14_TINT50_SHIFT             (18u)
+#define INTC_ICDICPR14_TINT51_SHIFT             (19u)
+#define INTC_ICDICPR14_TINT52_SHIFT             (20u)
+#define INTC_ICDICPR14_TINT53_SHIFT             (21u)
+#define INTC_ICDICPR14_TINT54_SHIFT             (22u)
+#define INTC_ICDICPR14_TINT55_SHIFT             (23u)
+#define INTC_ICDICPR14_TINT56_SHIFT             (24u)
+#define INTC_ICDICPR14_TINT57_SHIFT             (25u)
+#define INTC_ICDICPR14_TINT58_SHIFT             (26u)
+#define INTC_ICDICPR14_TINT59_SHIFT             (27u)
+#define INTC_ICDICPR14_TINT60_SHIFT             (28u)
+#define INTC_ICDICPR14_TINT61_SHIFT             (29u)
+#define INTC_ICDICPR14_TINT62_SHIFT             (30u)
+#define INTC_ICDICPR14_TINT63_SHIFT             (31u)
+
+#define INTC_ICDICPR15_TINT64_SHIFT             (0u)
+#define INTC_ICDICPR15_TINT65_SHIFT             (1u)
+#define INTC_ICDICPR15_TINT66_SHIFT             (2u)
+#define INTC_ICDICPR15_TINT67_SHIFT             (3u)
+#define INTC_ICDICPR15_TINT68_SHIFT             (4u)
+#define INTC_ICDICPR15_TINT69_SHIFT             (5u)
+#define INTC_ICDICPR15_TINT70_SHIFT             (6u)
+#define INTC_ICDICPR15_TINT71_SHIFT             (7u)
+#define INTC_ICDICPR15_TINT72_SHIFT             (8u)
+#define INTC_ICDICPR15_TINT73_SHIFT             (9u)
+#define INTC_ICDICPR15_TINT74_SHIFT             (10u)
+#define INTC_ICDICPR15_TINT75_SHIFT             (11u)
+#define INTC_ICDICPR15_TINT76_SHIFT             (12u)
+#define INTC_ICDICPR15_TINT77_SHIFT             (13u)
+#define INTC_ICDICPR15_TINT78_SHIFT             (14u)
+#define INTC_ICDICPR15_TINT79_SHIFT             (15u)
+#define INTC_ICDICPR15_TINT80_SHIFT             (16u)
+#define INTC_ICDICPR15_TINT81_SHIFT             (17u)
+#define INTC_ICDICPR15_TINT82_SHIFT             (18u)
+#define INTC_ICDICPR15_TINT83_SHIFT             (19u)
+#define INTC_ICDICPR15_TINT84_SHIFT             (20u)
+#define INTC_ICDICPR15_TINT85_SHIFT             (21u)
+#define INTC_ICDICPR15_TINT86_SHIFT             (22u)
+#define INTC_ICDICPR15_TINT87_SHIFT             (23u)
+#define INTC_ICDICPR15_TINT88_SHIFT             (24u)
+#define INTC_ICDICPR15_TINT89_SHIFT             (25u)
+#define INTC_ICDICPR15_TINT90_SHIFT             (26u)
+#define INTC_ICDICPR15_TINT91_SHIFT             (27u)
+#define INTC_ICDICPR15_TINT92_SHIFT             (28u)
+#define INTC_ICDICPR15_TINT93_SHIFT             (29u)
+#define INTC_ICDICPR15_TINT94_SHIFT             (30u)
+#define INTC_ICDICPR15_TINT95_SHIFT             (31u)
+
+#define INTC_ICDICPR16_TINT96_SHIFT             (0u)
+#define INTC_ICDICPR16_TINT97_SHIFT             (1u)
+#define INTC_ICDICPR16_TINT98_SHIFT             (2u)
+#define INTC_ICDICPR16_TINT99_SHIFT             (3u)
+#define INTC_ICDICPR16_TINT100_SHIFT            (4u)
+#define INTC_ICDICPR16_TINT101_SHIFT            (5u)
+#define INTC_ICDICPR16_TINT102_SHIFT            (6u)
+#define INTC_ICDICPR16_TINT103_SHIFT            (7u)
+#define INTC_ICDICPR16_TINT104_SHIFT            (8u)
+#define INTC_ICDICPR16_TINT105_SHIFT            (9u)
+#define INTC_ICDICPR16_TINT106_SHIFT            (10u)
+#define INTC_ICDICPR16_TINT107_SHIFT            (11u)
+#define INTC_ICDICPR16_TINT108_SHIFT            (12u)
+#define INTC_ICDICPR16_TINT109_SHIFT            (13u)
+#define INTC_ICDICPR16_TINT110_SHIFT            (14u)
+#define INTC_ICDICPR16_TINT111_SHIFT            (15u)
+#define INTC_ICDICPR16_TINT112_SHIFT            (16u)
+#define INTC_ICDICPR16_TINT113_SHIFT            (17u)
+#define INTC_ICDICPR16_TINT114_SHIFT            (18u)
+#define INTC_ICDICPR16_TINT115_SHIFT            (19u)
+#define INTC_ICDICPR16_TINT116_SHIFT            (20u)
+#define INTC_ICDICPR16_TINT117_SHIFT            (21u)
+#define INTC_ICDICPR16_TINT118_SHIFT            (22u)
+#define INTC_ICDICPR16_TINT119_SHIFT            (23u)
+#define INTC_ICDICPR16_TINT120_SHIFT            (24u)
+#define INTC_ICDICPR16_TINT121_SHIFT            (25u)
+#define INTC_ICDICPR16_TINT122_SHIFT            (26u)
+#define INTC_ICDICPR16_TINT123_SHIFT            (27u)
+#define INTC_ICDICPR16_TINT124_SHIFT            (28u)
+#define INTC_ICDICPR16_TINT125_SHIFT            (29u)
+#define INTC_ICDICPR16_TINT126_SHIFT            (30u)
+#define INTC_ICDICPR16_TINT127_SHIFT            (31u)
+
+#define INTC_ICDICPR17_TINT128_SHIFT            (0u)
+#define INTC_ICDICPR17_TINT129_SHIFT            (1u)
+#define INTC_ICDICPR17_TINT130_SHIFT            (2u)
+#define INTC_ICDICPR17_TINT131_SHIFT            (3u)
+#define INTC_ICDICPR17_TINT132_SHIFT            (4u)
+#define INTC_ICDICPR17_TINT133_SHIFT            (5u)
+#define INTC_ICDICPR17_TINT134_SHIFT            (6u)
+#define INTC_ICDICPR17_TINT135_SHIFT            (7u)
+#define INTC_ICDICPR17_TINT136_SHIFT            (8u)
+#define INTC_ICDICPR17_TINT137_SHIFT            (9u)
+#define INTC_ICDICPR17_TINT138_SHIFT            (10u)
+#define INTC_ICDICPR17_TINT139_SHIFT            (11u)
+#define INTC_ICDICPR17_TINT140_SHIFT            (12u)
+#define INTC_ICDICPR17_TINT141_SHIFT            (13u)
+#define INTC_ICDICPR17_TINT142_SHIFT            (14u)
+#define INTC_ICDICPR17_TINT143_SHIFT            (15u)
+#define INTC_ICDICPR17_TINT144_SHIFT            (16u)
+#define INTC_ICDICPR17_TINT145_SHIFT            (17u)
+#define INTC_ICDICPR17_TINT146_SHIFT            (18u)
+#define INTC_ICDICPR17_TINT147_SHIFT            (19u)
+#define INTC_ICDICPR17_TINT148_SHIFT            (20u)
+#define INTC_ICDICPR17_TINT149_SHIFT            (21u)
+#define INTC_ICDICPR17_TINT150_SHIFT            (22u)
+#define INTC_ICDICPR17_TINT151_SHIFT            (23u)
+#define INTC_ICDICPR17_TINT152_SHIFT            (24u)
+#define INTC_ICDICPR17_TINT153_SHIFT            (25u)
+#define INTC_ICDICPR17_TINT154_SHIFT            (26u)
+#define INTC_ICDICPR17_TINT155_SHIFT            (27u)
+#define INTC_ICDICPR17_TINT156_SHIFT            (28u)
+#define INTC_ICDICPR17_TINT157_SHIFT            (29u)
+#define INTC_ICDICPR17_TINT158_SHIFT            (30u)
+#define INTC_ICDICPR17_TINT159_SHIFT            (31u)
+
+#define INTC_ICDICPR18_TINT160_SHIFT            (0u)
+#define INTC_ICDICPR18_TINT161_SHIFT            (1u)
+#define INTC_ICDICPR18_TINT162_SHIFT            (2u)
+#define INTC_ICDICPR18_TINT163_SHIFT            (3u)
+#define INTC_ICDICPR18_TINT164_SHIFT            (4u)
+#define INTC_ICDICPR18_TINT165_SHIFT            (5u)
+#define INTC_ICDICPR18_TINT166_SHIFT            (6u)
+#define INTC_ICDICPR18_TINT167_SHIFT            (7u)
+#define INTC_ICDICPR18_TINT168_SHIFT            (8u)
+#define INTC_ICDICPR18_TINT169_SHIFT            (9u)
+#define INTC_ICDICPR18_TINT170_SHIFT            (10u)
+
+#define INTC_ICDABR0_SW0_SHIFT                  (0u)
+#define INTC_ICDABR0_SW1_SHIFT                  (1u)
+#define INTC_ICDABR0_SW2_SHIFT                  (2u)
+#define INTC_ICDABR0_SW3_SHIFT                  (3u)
+#define INTC_ICDABR0_SW4_SHIFT                  (4u)
+#define INTC_ICDABR0_SW5_SHIFT                  (5u)
+#define INTC_ICDABR0_SW6_SHIFT                  (6u)
+#define INTC_ICDABR0_SW7_SHIFT                  (7u)
+#define INTC_ICDABR0_SW8_SHIFT                  (8u)
+#define INTC_ICDABR0_SW9_SHIFT                  (9u)
+#define INTC_ICDABR0_SW10_SHIFT                 (10u)
+#define INTC_ICDABR0_SW11_SHIFT                 (11u)
+#define INTC_ICDABR0_SW12_SHIFT                 (12u)
+#define INTC_ICDABR0_SW13_SHIFT                 (13u)
+#define INTC_ICDABR0_SW14_SHIFT                 (14u)
+#define INTC_ICDABR0_SW15_SHIFT                 (15u)
+#define INTC_ICDABR0_PMUIRQ0_SHIFT              (16u)
+#define INTC_ICDABR0_COMMRX0_SHIFT              (17u)
+#define INTC_ICDABR0_COMMTX0_SHIFT              (18u)
+#define INTC_ICDABR0_CTIIRQ0_SHIFT              (19u)
+
+#define INTC_ICDABR1_IRQ0_SHIFT                 (0u)
+#define INTC_ICDABR1_IRQ1_SHIFT                 (1u)
+#define INTC_ICDABR1_IRQ2_SHIFT                 (2u)
+#define INTC_ICDABR1_IRQ3_SHIFT                 (3u)
+#define INTC_ICDABR1_IRQ4_SHIFT                 (4u)
+#define INTC_ICDABR1_IRQ5_SHIFT                 (5u)
+#define INTC_ICDABR1_IRQ6_SHIFT                 (6u)
+#define INTC_ICDABR1_IRQ7_SHIFT                 (7u)
+#define INTC_ICDABR1_PL310ERR_SHIFT             (8u)
+#define INTC_ICDABR1_DMAINT0_SHIFT              (9u)
+#define INTC_ICDABR1_DMAINT1_SHIFT              (10u)
+#define INTC_ICDABR1_DMAINT2_SHIFT              (11u)
+#define INTC_ICDABR1_DMAINT3_SHIFT              (12u)
+#define INTC_ICDABR1_DMAINT4_SHIFT              (13u)
+#define INTC_ICDABR1_DMAINT5_SHIFT              (14u)
+#define INTC_ICDABR1_DMAINT6_SHIFT              (15u)
+#define INTC_ICDABR1_DMAINT7_SHIFT              (16u)
+#define INTC_ICDABR1_DMAINT8_SHIFT              (17u)
+#define INTC_ICDABR1_DMAINT9_SHIFT              (18u)
+#define INTC_ICDABR1_DMAINT10_SHIFT             (19u)
+#define INTC_ICDABR1_DMAINT11_SHIFT             (20u)
+#define INTC_ICDABR1_DMAINT12_SHIFT             (21u)
+#define INTC_ICDABR1_DMAINT13_SHIFT             (22u)
+#define INTC_ICDABR1_DMAINT14_SHIFT             (23u)
+#define INTC_ICDABR1_DMAINT15_SHIFT             (24u)
+#define INTC_ICDABR1_DMAERR_SHIFT               (25u)
+
+#define INTC_ICDABR2_USBI0_SHIFT                (9u)
+#define INTC_ICDABR2_USBI1_SHIFT                (10u)
+#define INTC_ICDABR2_S0_VI_VSYNC0_SHIFT         (11u)
+#define INTC_ICDABR2_S0_LO_VSYNC0_SHIFT         (12u)
+#define INTC_ICDABR2_S0_VSYNCERR0_SHIFT         (13u)
+#define INTC_ICDABR2_GR3_VLINE0_SHIFT           (14u)
+#define INTC_ICDABR2_S0_VFIELD0_SHIFT           (15u)
+#define INTC_ICDABR2_IV1_VBUFERR0_SHIFT         (16u)
+#define INTC_ICDABR2_IV3_VBUFERR0_SHIFT         (17u)
+#define INTC_ICDABR2_IV5_VBUFERR0_SHIFT         (18u)
+#define INTC_ICDABR2_IV6_VBUFERR0_SHIFT         (19u)
+#define INTC_ICDABR2_S0_WLINE0_SHIFT            (20u)
+#define INTC_ICDABR2_S1_VI_VSYNC0_SHIFT         (21u)
+#define INTC_ICDABR2_S1_LO_VSYNC0_SHIFT         (22u)
+#define INTC_ICDABR2_S1_VSYNCERR0_SHIFT         (23u)
+#define INTC_ICDABR2_S1_VFIELD0_SHIFT           (24u)
+#define INTC_ICDABR2_IV2_VBUFERR0_SHIFT         (25u)
+#define INTC_ICDABR2_IV4_VBUFERR0_SHIFT         (26u)
+#define INTC_ICDABR2_S1_WLINE0_SHIFT            (27u)
+#define INTC_ICDABR2_OIR_VI_VSYNC0_SHIFT        (28u)
+#define INTC_ICDABR2_OIR_LO_VSYNC0_SHIFT        (29u)
+#define INTC_ICDABR2_OIR_VSYNCERR0_SHIFT        (30u)
+#define INTC_ICDABR2_OIR_VFIELD0_SHIFT          (31u)
+
+#define INTC_ICDABR3_IV7_VBUFERR0_SHIFT         (0u)
+#define INTC_ICDABR3_IV8_VBUFERR0_SHIFT         (1u)
+#define INTC_ICDABR3_S0_VI_VSYNC1_SHIFT         (3u)
+#define INTC_ICDABR3_S0_LO_VSYNC1_SHIFT         (4u)
+#define INTC_ICDABR3_S0_VSYNCERR1_SHIFT         (5u)
+#define INTC_ICDABR3_GR3_VLINE1_SHIFT           (6u)
+#define INTC_ICDABR3_S0_VFIELD1_SHIFT           (7u)
+#define INTC_ICDABR3_IV1_VBUFERR1_SHIFT         (8u)
+#define INTC_ICDABR3_IV3_VBUFERR1_SHIFT         (9u)
+#define INTC_ICDABR3_IV5_VBUFERR1_SHIFT         (10u)
+#define INTC_ICDABR3_IV6_VBUFERR1_SHIFT         (11u)
+#define INTC_ICDABR3_S0_WLINE1_SHIFT            (12u)
+#define INTC_ICDABR3_S1_VI_VSYNC1_SHIFT         (13u)
+#define INTC_ICDABR3_S1_LO_VSYNC1_SHIFT         (14u)
+#define INTC_ICDABR3_S1_VSYNCERR1_SHIFT         (15u)
+#define INTC_ICDABR3_S1_VFIELD1_SHIFT           (16u)
+#define INTC_ICDABR3_IV2_VBUFERR1_SHIFT         (17u)
+#define INTC_ICDABR3_IV4_VBUFERR1_SHIFT         (18u)
+#define INTC_ICDABR3_S1_WLINE1_SHIFT            (19u)
+#define INTC_ICDABR3_OIR_VI_VSYNC1_SHIFT        (20u)
+#define INTC_ICDABR3_OIR_LO_VSYNC1_SHIFT        (21u)
+#define INTC_ICDABR3_OIR_VLINE1_SHIFT           (22u)
+#define INTC_ICDABR3_OIR_VFIELD1_SHIFT          (23u)
+#define INTC_ICDABR3_IV7_VBUFERR1_SHIFT         (24u)
+#define INTC_ICDABR3_IV8_VBUFERR1_SHIFT         (25u)
+#define INTC_ICDABR3_IMRDI_SHIFT                (27u)
+#define INTC_ICDABR3_IMR2I0_SHIFT               (28u)
+#define INTC_ICDABR3_IMR2I1_SHIFT               (29u)
+#define INTC_ICDABR3_JEDI_SHIFT                 (30u)
+#define INTC_ICDABR3_JDTI_SHIFT                 (31u)
+
+#define INTC_ICDABR4_CMP0_SHIFT                 (0u)
+#define INTC_ICDABR4_CMP1_SHIFT                 (1u)
+#define INTC_ICDABR4_INT0_SHIFT                 (2u)
+#define INTC_ICDABR4_INT1_SHIFT                 (3u)
+#define INTC_ICDABR4_INT2_SHIFT                 (4u)
+#define INTC_ICDABR4_INT3_SHIFT                 (5u)
+#define INTC_ICDABR4_OSTM0TINT_SHIFT            (6u)
+#define INTC_ICDABR4_OSTM1TINT_SHIFT            (7u)
+#define INTC_ICDABR4_CMI_SHIFT                  (8u)
+#define INTC_ICDABR4_WTOUT_SHIFT                (9u)
+#define INTC_ICDABR4_ITI_SHIFT                  (10u)
+#define INTC_ICDABR4_TGI0A_SHIFT                (11u)
+#define INTC_ICDABR4_TGI0B_SHIFT                (12u)
+#define INTC_ICDABR4_TGI0C_SHIFT                (13u)
+#define INTC_ICDABR4_TGI0D_SHIFT                (14u)
+#define INTC_ICDABR4_TGI0V_SHIFT                (15u)
+#define INTC_ICDABR4_TGI0E_SHIFT                (16u)
+#define INTC_ICDABR4_TGI0F_SHIFT                (17u)
+#define INTC_ICDABR4_TGI1A_SHIFT                (18u)
+#define INTC_ICDABR4_TGI1B_SHIFT                (19u)
+#define INTC_ICDABR4_TGI1V_SHIFT                (20u)
+#define INTC_ICDABR4_TGI1U_SHIFT                (21u)
+#define INTC_ICDABR4_TGI2A_SHIFT                (22u)
+#define INTC_ICDABR4_TGI2B_SHIFT                (23u)
+#define INTC_ICDABR4_TGI2V_SHIFT                (24u)
+#define INTC_ICDABR4_TGI2U_SHIFT                (25u)
+#define INTC_ICDABR4_TGI3A_SHIFT                (26u)
+#define INTC_ICDABR4_TGI3B_SHIFT                (27u)
+#define INTC_ICDABR4_TGI3C_SHIFT                (28u)
+#define INTC_ICDABR4_TGI3D_SHIFT                (29u)
+#define INTC_ICDABR4_TGI3V_SHIFT                (30u)
+#define INTC_ICDABR4_TGI4A_SHIFT                (31u)
+
+#define INTC_ICDABR5_TGI4B_SHIFT                (0u)
+#define INTC_ICDABR5_TGI4C_SHIFT                (1u)
+#define INTC_ICDABR5_TGI4D_SHIFT                (2u)
+#define INTC_ICDABR5_TGI4V_SHIFT                (3u)
+#define INTC_ICDABR5_CMI1_SHIFT                 (4u)
+#define INTC_ICDABR5_CMI2_SHIFT                 (5u)
+#define INTC_ICDABR5_SGDEI0_SHIFT               (6u)
+#define INTC_ICDABR5_SGDEI1_SHIFT               (7u)
+#define INTC_ICDABR5_SGDEI2_SHIFT               (8u)
+#define INTC_ICDABR5_SGDEI3_SHIFT               (9u)
+#define INTC_ICDABR5_ADI_SHIFT                  (10u)
+#define INTC_ICDABR5_LMTI_SHIFT                 (11u)
+#define INTC_ICDABR5_SSII0_SHIFT                (12u)
+#define INTC_ICDABR5_SSIRXI0_SHIFT              (13u)
+#define INTC_ICDABR5_SSITXI0_SHIFT              (14u)
+#define INTC_ICDABR5_SSII1_SHIFT                (15u)
+#define INTC_ICDABR5_SSIRXI1_SHIFT              (16u)
+#define INTC_ICDABR5_SSITXI1_SHIFT              (17u)
+#define INTC_ICDABR5_SSII2_SHIFT                (18u)
+#define INTC_ICDABR5_SSIRTI2_SHIFT              (19u)
+#define INTC_ICDABR5_SSII3_SHIFT                (20u)
+#define INTC_ICDABR5_SSIRXI3_SHIFT              (21u)
+#define INTC_ICDABR5_SSITXI3_SHIFT              (22u)
+#define INTC_ICDABR5_SSII4_SHIFT                (23u)
+#define INTC_ICDABR5_SSIRTI4_SHIFT              (24u)
+#define INTC_ICDABR5_SSII5_SHIFT                (25u)
+#define INTC_ICDABR5_SSIRXI5_SHIFT              (26u)
+#define INTC_ICDABR5_SSITXI5_SHIFT              (27u)
+#define INTC_ICDABR5_SPDIFI_SHIFT               (28u)
+#define INTC_ICDABR5_INTIICTEI0_SHIFT           (29u)
+#define INTC_ICDABR5_INTIICRI0_SHIFT            (30u)
+#define INTC_ICDABR5_INTIICTI0_SHIFT            (31u)
+
+#define INTC_ICDABR6_INTIICSPI0_SHIFT           (0u)
+#define INTC_ICDABR6_INTIICSTI0_SHIFT           (1u)
+#define INTC_ICDABR6_INTIICNAKI0_SHIFT          (2u)
+#define INTC_ICDABR6_INTIICALI0_SHIFT           (3u)
+#define INTC_ICDABR6_INTIICTMOI0_SHIFT          (4u)
+#define INTC_ICDABR6_INTIICTEI1_SHIFT           (5u)
+#define INTC_ICDABR6_INTIICRI1_SHIFT            (6u)
+#define INTC_ICDABR6_INTIICTI1_SHIFT            (7u)
+#define INTC_ICDABR6_INTIICSPI1_SHIFT           (8u)
+#define INTC_ICDABR6_INTIICSTI1_SHIFT           (9u)
+#define INTC_ICDABR6_INTIICNAKI1_SHIFT          (10u)
+#define INTC_ICDABR6_INTIICALI1_SHIFT           (11u)
+#define INTC_ICDABR6_INTIICTMOI1_SHIFT          (12u)
+#define INTC_ICDABR6_INTIICTEI2_SHIFT           (13u)
+#define INTC_ICDABR6_INTIICRI2_SHIFT            (14u)
+#define INTC_ICDABR6_INTIICTI2_SHIFT            (15u)
+#define INTC_ICDABR6_INTIICSPI2_SHIFT           (16u)
+#define INTC_ICDABR6_INTIICSTI2_SHIFT           (17u)
+#define INTC_ICDABR6_INTIICNAKI2_SHIFT          (18u)
+#define INTC_ICDABR6_INTIICALI2_SHIFT           (19u)
+#define INTC_ICDABR6_INTIICTMOI2_SHIFT          (20u)
+#define INTC_ICDABR6_INTIICTEI3_SHIFT           (21u)
+#define INTC_ICDABR6_INTIICRI3_SHIFT            (22u)
+#define INTC_ICDABR6_INTIICTI3_SHIFT            (23u)
+#define INTC_ICDABR6_INTIICSPI3_SHIFT           (24u)
+#define INTC_ICDABR6_INTIICSTI3_SHIFT           (25u)
+#define INTC_ICDABR6_INTIICNAKI3_SHIFT          (26u)
+#define INTC_ICDABR6_INTIICALI3_SHIFT           (27u)
+#define INTC_ICDABR6_INTIICTMOI3_SHIFT          (28u)
+#define INTC_ICDABR6_BRI0_SHIFT                 (29u)
+#define INTC_ICDABR6_ERI0_SHIFT                 (30u)
+#define INTC_ICDABR6_RXI0_SHIFT                 (31u)
+
+#define INTC_ICDABR7_TXI0_SHIFT                 (0u)
+#define INTC_ICDABR7_BRI1_SHIFT                 (1u)
+#define INTC_ICDABR7_ERI1_SHIFT                 (2u)
+#define INTC_ICDABR7_RXI1_SHIFT                 (3u)
+#define INTC_ICDABR7_TXI1_SHIFT                 (4u)
+#define INTC_ICDABR7_BRI2_SHIFT                 (5u)
+#define INTC_ICDABR7_ERI2_SHIFT                 (6u)
+#define INTC_ICDABR7_RXI2_SHIFT                 (7u)
+#define INTC_ICDABR7_TXI2_SHIFT                 (8u)
+#define INTC_ICDABR7_BRI3_SHIFT                 (9u)
+#define INTC_ICDABR7_ERI3_SHIFT                 (10u)
+#define INTC_ICDABR7_RXI3_SHIFT                 (11u)
+#define INTC_ICDABR7_TXI3_SHIFT                 (12u)
+#define INTC_ICDABR7_BRI4_SHIFT                 (13u)
+#define INTC_ICDABR7_ERI4_SHIFT                 (14u)
+#define INTC_ICDABR7_RXI4_SHIFT                 (15u)
+#define INTC_ICDABR7_TXI4_SHIFT                 (16u)
+#define INTC_ICDABR7_BRI5_SHIFT                 (17u)
+#define INTC_ICDABR7_ERI5_SHIFT                 (18u)
+#define INTC_ICDABR7_RXI5_SHIFT                 (19u)
+#define INTC_ICDABR7_TXI5_SHIFT                 (20u)
+#define INTC_ICDABR7_BRI6_SHIFT                 (21u)
+#define INTC_ICDABR7_ERI6_SHIFT                 (22u)
+#define INTC_ICDABR7_RXI6_SHIFT                 (23u)
+#define INTC_ICDABR7_TXI6_SHIFT                 (24u)
+#define INTC_ICDABR7_BRI7_SHIFT                 (25u)
+#define INTC_ICDABR7_ERI7_SHIFT                 (26u)
+#define INTC_ICDABR7_RXI7_SHIFT                 (27u)
+#define INTC_ICDABR7_TXI7_SHIFT                 (28u)
+#define INTC_ICDABR7_INTRCANGERR_SHIFT          (29u)
+#define INTC_ICDABR7_INTRCANGRECC_SHIFT         (30u)
+#define INTC_ICDABR7_INTRCAN0REC_SHIFT          (31u)
+
+#define INTC_ICDABR8_INTRCAN0ERR_SHIFT          (0u)
+#define INTC_ICDABR8_INTRCAN0TRX_SHIFT          (1u)
+#define INTC_ICDABR8_INTRCAN1REC_SHIFT          (2u)
+#define INTC_ICDABR8_INTRCAN1ERR_SHIFT          (3u)
+#define INTC_ICDABR8_INTRCAN1TRX_SHIFT          (4u)
+#define INTC_ICDABR8_INTRCAN2REC_SHIFT          (5u)
+#define INTC_ICDABR8_INTRCAN2ERR_SHIFT          (6u)
+#define INTC_ICDABR8_INTRCAN2TRX_SHIFT          (7u)
+#define INTC_ICDABR8_INTRCAN3REC_SHIFT          (8u)
+#define INTC_ICDABR8_INTRCAN3ERR_SHIFT          (9u)
+#define INTC_ICDABR8_INTRCAN3TRX_SHIFT          (10u)
+#define INTC_ICDABR8_INTRCAN4REC_SHIFT          (11u)
+#define INTC_ICDABR8_INTRCAN4ERR_SHIFT          (12u)
+#define INTC_ICDABR8_INTRCAN4TRX_SHIFT          (13u)
+#define INTC_ICDABR8_SPEI0_SHIFT                (14u)
+#define INTC_ICDABR8_SPRI0_SHIFT                (15u)
+#define INTC_ICDABR8_SPTI0_SHIFT                (16u)
+#define INTC_ICDABR8_SPEI1_SHIFT                (17u)
+#define INTC_ICDABR8_SPRI1_SHIFT                (18u)
+#define INTC_ICDABR8_SPTI1_SHIFT                (19u)
+#define INTC_ICDABR8_SPEI2_SHIFT                (20u)
+#define INTC_ICDABR8_SPRI2_SHIFT                (21u)
+#define INTC_ICDABR8_SPTI2_SHIFT                (22u)
+#define INTC_ICDABR8_SPEI3_SHIFT                (23u)
+#define INTC_ICDABR8_SPRI3_SHIFT                (24u)
+#define INTC_ICDABR8_SPTI3_SHIFT                (25u)
+#define INTC_ICDABR8_SPEI4_SHIFT                (26u)
+#define INTC_ICDABR8_SPRI4_SHIFT                (27u)
+#define INTC_ICDABR8_SPTI4_SHIFT                (28u)
+#define INTC_ICDABR8_IEBBTD_SHIFT               (29u)
+#define INTC_ICDABR8_IEBBTERR_SHIFT             (30u)
+#define INTC_ICDABR8_IEBBTSTA_SHIFT             (31u)
+
+#define INTC_ICDABR9_IEBBTV_SHIFT               (0u)
+#define INTC_ICDABR9_ISY_SHIFT                  (1u)
+#define INTC_ICDABR9_IERR_SHIFT                 (2u)
+#define INTC_ICDABR9_ITARG_SHIFT                (3u)
+#define INTC_ICDABR9_ISEC_SHIFT                 (4u)
+#define INTC_ICDABR9_IBUF_SHIFT                 (5u)
+#define INTC_ICDABR9_IREADY_SHIFT               (6u)
+#define INTC_ICDABR9_FLSTE_SHIFT                (7u)
+#define INTC_ICDABR9_FLTENDI_SHIFT              (8u)
+#define INTC_ICDABR9_FLTREQ0I_SHIFT             (9u)
+#define INTC_ICDABR9_FLTREQ1I_SHIFT             (10u)
+#define INTC_ICDABR9_MMC0_SHIFT                 (11u)
+#define INTC_ICDABR9_MMC1_SHIFT                 (12u)
+#define INTC_ICDABR9_MMC2_SHIFT                 (13u)
+#define INTC_ICDABR9_SDHI0_3_SHIFT              (14u)
+#define INTC_ICDABR9_SDHI0_0_SHIFT              (15u)
+#define INTC_ICDABR9_SDHI0_1_SHIFT              (16u)
+#define INTC_ICDABR9_SDHI1_3_SHIFT              (17u)
+#define INTC_ICDABR9_SDHI1_0_SHIFT              (18u)
+#define INTC_ICDABR9_SDHI1_1_SHIFT              (19u)
+#define INTC_ICDABR9_ARM_SHIFT                  (20u)
+#define INTC_ICDABR9_PRD_SHIFT                  (21u)
+#define INTC_ICDABR9_CUP_SHIFT                  (22u)
+#define INTC_ICDABR9_SCUAI0_SHIFT               (23u)
+#define INTC_ICDABR9_SCUAI1_SHIFT               (24u)
+#define INTC_ICDABR9_SCUFDI0_SHIFT              (25u)
+#define INTC_ICDABR9_SCUFDI1_SHIFT              (26u)
+#define INTC_ICDABR9_SCUFDI2_SHIFT              (27u)
+#define INTC_ICDABR9_SCUFDI3_SHIFT              (28u)
+#define INTC_ICDABR9_SCUFUI0_SHIFT              (29u)
+#define INTC_ICDABR9_SCUFUI1_SHIFT              (30u)
+#define INTC_ICDABR9_SCUFUI2_SHIFT              (31u)
+
+#define INTC_ICDABR10_SCUFUI3_SHIFT             (0u)
+#define INTC_ICDABR10_SCUDVI0_SHIFT             (1u)
+#define INTC_ICDABR10_SCUDVI1_SHIFT             (2u)
+#define INTC_ICDABR10_SCUDVI2_SHIFT             (3u)
+#define INTC_ICDABR10_SCUDVI3_SHIFT             (4u)
+#define INTC_ICDABR10_MLB_CINT_SHIFT            (5u)
+#define INTC_ICDABR10_MLB_SINT_SHIFT            (6u)
+#define INTC_ICDABR10_DRC0_SHIFT                (7u)
+#define INTC_ICDABR10_DRC1_SHIFT                (8u)
+#define INTC_ICDABR10_LINI0_INT_T_SHIFT         (11u)
+#define INTC_ICDABR10_LINI0_INT_R_SHIFT         (12u)
+#define INTC_ICDABR10_LINI0_INT_S_SHIFT         (13u)
+#define INTC_ICDABR10_LINI0_INT_M_SHIFT         (14u)
+#define INTC_ICDABR10_LINI1_INT_T_SHIFT         (15u)
+#define INTC_ICDABR10_LINI1_INT_R_SHIFT         (16u)
+#define INTC_ICDABR10_LINI1_INT_S_SHIFT         (17u)
+#define INTC_ICDABR10_LINI1_INT_M_SHIFT         (18u)
+#define INTC_ICDABR10_ERI0_SHIFT                (27u)
+#define INTC_ICDABR10_RXI0_SHIFT                (28u)
+#define INTC_ICDABR10_TXI0_SHIFT                (29u)
+#define INTC_ICDABR10_TEI0_SHIFT                (30u)
+#define INTC_ICDABR10_ERI1_SHIFT                (31u)
+
+#define INTC_ICDABR11_RXI1_SHIFT                (0u)
+#define INTC_ICDABR11_TXI1_SHIFT                (1u)
+#define INTC_ICDABR11_TEI1_SHIFT                (2u)
+#define INTC_ICDABR11_AVBI_DATA_SHIFT           (3u)
+#define INTC_ICDABR11_AVBI_ERROR_SHIFT          (4u)
+#define INTC_ICDABR11_AVBI_MANAGE_SHIFT         (5u)
+#define INTC_ICDABR11_AVBI_MAC_SHIFT            (6u)
+#define INTC_ICDABR11_ETHERI_SHIFT              (7u)
+#define INTC_ICDABR11_CEUI_SHIFT                (12u)
+#define INTC_ICDABR11_H2XMLB_ERRINT_SHIFT       (29u)
+#define INTC_ICDABR11_H2XIC1_ERRINT_SHIFT       (30u)
+#define INTC_ICDABR11_X2HPERI1_ERRINT_SHIFT     (31u)
+
+#define INTC_ICDABR12_X2HPERI2_ERRINT_SHIFT     (0u)
+#define INTC_ICDABR12_X2HPERI34_ERRINT_SHIFT    (1u)
+#define INTC_ICDABR12_X2HPERI5_ERRINT_SHIFT     (2u)
+#define INTC_ICDABR12_X2HPERI67_ERRINT_SHIFT    (3u)
+#define INTC_ICDABR12_X2HDBGR_ERRINT_SHIFT      (4u)
+#define INTC_ICDABR12_X2HBSC_ERRINT_SHIFT       (5u)
+#define INTC_ICDABR12_X2HSPI1_ERRINT_SHIFT      (6u)
+#define INTC_ICDABR12_X2HSPI2_ERRINT_SHIFT      (7u)
+#define INTC_ICDABR12_PRRI_SHIFT                (8u)
+#define INTC_ICDABR12_IFEI0_SHIFT               (9u)
+#define INTC_ICDABR12_OFFI0_SHIFT               (10u)
+#define INTC_ICDABR12_PFVEI0_SHIFT              (11u)
+#define INTC_ICDABR12_IFEI1_SHIFT               (12u)
+#define INTC_ICDABR12_OFFI1_SHIFT               (13u)
+#define INTC_ICDABR12_PFVEI1_SHIFT              (14u)
+
+#define INTC_ICDABR13_TINT0_SHIFT               (0u)
+#define INTC_ICDABR13_TINT1_SHIFT               (1u)
+#define INTC_ICDABR13_TINT2_SHIFT               (2u)
+#define INTC_ICDABR13_TINT3_SHIFT               (3u)
+#define INTC_ICDABR13_TINT4_SHIFT               (4u)
+#define INTC_ICDABR13_TINT5_SHIFT               (5u)
+#define INTC_ICDABR13_TINT6_SHIFT               (6u)
+#define INTC_ICDABR13_TINT7_SHIFT               (7u)
+#define INTC_ICDABR13_TINT8_SHIFT               (8u)
+#define INTC_ICDABR13_TINT9_SHIFT               (9u)
+#define INTC_ICDABR13_TINT10_SHIFT              (10u)
+#define INTC_ICDABR13_TINT11_SHIFT              (11u)
+#define INTC_ICDABR13_TINT12_SHIFT              (12u)
+#define INTC_ICDABR13_TINT13_SHIFT              (13u)
+#define INTC_ICDABR13_TINT14_SHIFT              (14u)
+#define INTC_ICDABR13_TINT15_SHIFT              (15u)
+#define INTC_ICDABR13_TINT16_SHIFT              (16u)
+#define INTC_ICDABR13_TINT17_SHIFT              (17u)
+#define INTC_ICDABR13_TINT18_SHIFT              (18u)
+#define INTC_ICDABR13_TINT19_SHIFT              (19u)
+#define INTC_ICDABR13_TINT20_SHIFT              (20u)
+#define INTC_ICDABR13_TINT21_SHIFT              (21u)
+#define INTC_ICDABR13_TINT22_SHIFT              (22u)
+#define INTC_ICDABR13_TINT23_SHIFT              (23u)
+#define INTC_ICDABR13_TINT24_SHIFT              (24u)
+#define INTC_ICDABR13_TINT25_SHIFT              (25u)
+#define INTC_ICDABR13_TINT26_SHIFT              (26u)
+#define INTC_ICDABR13_TINT27_SHIFT              (27u)
+#define INTC_ICDABR13_TINT28_SHIFT              (28u)
+#define INTC_ICDABR13_TINT29_SHIFT              (29u)
+#define INTC_ICDABR13_TINT30_SHIFT              (30u)
+#define INTC_ICDABR13_TINT31_SHIFT              (31u)
+
+#define INTC_ICDABR14_TINT32_SHIFT              (0u)
+#define INTC_ICDABR14_TINT33_SHIFT              (1u)
+#define INTC_ICDABR14_TINT34_SHIFT              (2u)
+#define INTC_ICDABR14_TINT35_SHIFT              (3u)
+#define INTC_ICDABR14_TINT36_SHIFT              (4u)
+#define INTC_ICDABR14_TINT37_SHIFT              (5u)
+#define INTC_ICDABR14_TINT38_SHIFT              (6u)
+#define INTC_ICDABR14_TINT39_SHIFT              (7u)
+#define INTC_ICDABR14_TINT40_SHIFT              (8u)
+#define INTC_ICDABR14_TINT41_SHIFT              (9u)
+#define INTC_ICDABR14_TINT42_SHIFT              (10u)
+#define INTC_ICDABR14_TINT43_SHIFT              (11u)
+#define INTC_ICDABR14_TINT44_SHIFT              (12u)
+#define INTC_ICDABR14_TINT45_SHIFT              (13u)
+#define INTC_ICDABR14_TINT46_SHIFT              (14u)
+#define INTC_ICDABR14_TINT47_SHIFT              (15u)
+#define INTC_ICDABR14_TINT48_SHIFT              (16u)
+#define INTC_ICDABR14_TINT49_SHIFT              (17u)
+#define INTC_ICDABR14_TINT50_SHIFT              (18u)
+#define INTC_ICDABR14_TINT51_SHIFT              (19u)
+#define INTC_ICDABR14_TINT52_SHIFT              (20u)
+#define INTC_ICDABR14_TINT53_SHIFT              (21u)
+#define INTC_ICDABR14_TINT54_SHIFT              (22u)
+#define INTC_ICDABR14_TINT55_SHIFT              (23u)
+#define INTC_ICDABR14_TINT56_SHIFT              (24u)
+#define INTC_ICDABR14_TINT57_SHIFT              (25u)
+#define INTC_ICDABR14_TINT58_SHIFT              (26u)
+#define INTC_ICDABR14_TINT59_SHIFT              (27u)
+#define INTC_ICDABR14_TINT60_SHIFT              (28u)
+#define INTC_ICDABR14_TINT61_SHIFT              (29u)
+#define INTC_ICDABR14_TINT62_SHIFT              (30u)
+#define INTC_ICDABR14_TINT63_SHIFT              (31u)
+
+#define INTC_ICDABR15_TINT64_SHIFT              (0u)
+#define INTC_ICDABR15_TINT65_SHIFT              (1u)
+#define INTC_ICDABR15_TINT66_SHIFT              (2u)
+#define INTC_ICDABR15_TINT67_SHIFT              (3u)
+#define INTC_ICDABR15_TINT68_SHIFT              (4u)
+#define INTC_ICDABR15_TINT69_SHIFT              (5u)
+#define INTC_ICDABR15_TINT70_SHIFT              (6u)
+#define INTC_ICDABR15_TINT71_SHIFT              (7u)
+#define INTC_ICDABR15_TINT72_SHIFT              (8u)
+#define INTC_ICDABR15_TINT73_SHIFT              (9u)
+#define INTC_ICDABR15_TINT74_SHIFT              (10u)
+#define INTC_ICDABR15_TINT75_SHIFT              (11u)
+#define INTC_ICDABR15_TINT76_SHIFT              (12u)
+#define INTC_ICDABR15_TINT77_SHIFT              (13u)
+#define INTC_ICDABR15_TINT78_SHIFT              (14u)
+#define INTC_ICDABR15_TINT79_SHIFT              (15u)
+#define INTC_ICDABR15_TINT80_SHIFT              (16u)
+#define INTC_ICDABR15_TINT81_SHIFT              (17u)
+#define INTC_ICDABR15_TINT82_SHIFT              (18u)
+#define INTC_ICDABR15_TINT83_SHIFT              (19u)
+#define INTC_ICDABR15_TINT84_SHIFT              (20u)
+#define INTC_ICDABR15_TINT85_SHIFT              (21u)
+#define INTC_ICDABR15_TINT86_SHIFT              (22u)
+#define INTC_ICDABR15_TINT87_SHIFT              (23u)
+#define INTC_ICDABR15_TINT88_SHIFT              (24u)
+#define INTC_ICDABR15_TINT89_SHIFT              (25u)
+#define INTC_ICDABR15_TINT90_SHIFT              (26u)
+#define INTC_ICDABR15_TINT91_SHIFT              (27u)
+#define INTC_ICDABR15_TINT92_SHIFT              (28u)
+#define INTC_ICDABR15_TINT93_SHIFT              (29u)
+#define INTC_ICDABR15_TINT94_SHIFT              (30u)
+#define INTC_ICDABR15_TINT95_SHIFT              (31u)
+
+#define INTC_ICDABR16_TINT96_SHIFT              (0u)
+#define INTC_ICDABR16_TINT97_SHIFT              (1u)
+#define INTC_ICDABR16_TINT98_SHIFT              (2u)
+#define INTC_ICDABR16_TINT99_SHIFT              (3u)
+#define INTC_ICDABR16_TINT100_SHIFT             (4u)
+#define INTC_ICDABR16_TINT101_SHIFT             (5u)
+#define INTC_ICDABR16_TINT102_SHIFT             (6u)
+#define INTC_ICDABR16_TINT103_SHIFT             (7u)
+#define INTC_ICDABR16_TINT104_SHIFT             (8u)
+#define INTC_ICDABR16_TINT105_SHIFT             (9u)
+#define INTC_ICDABR16_TINT106_SHIFT             (10u)
+#define INTC_ICDABR16_TINT107_SHIFT             (11u)
+#define INTC_ICDABR16_TINT108_SHIFT             (12u)
+#define INTC_ICDABR16_TINT109_SHIFT             (13u)
+#define INTC_ICDABR16_TINT110_SHIFT             (14u)
+#define INTC_ICDABR16_TINT111_SHIFT             (15u)
+#define INTC_ICDABR16_TINT112_SHIFT             (16u)
+#define INTC_ICDABR16_TINT113_SHIFT             (17u)
+#define INTC_ICDABR16_TINT114_SHIFT             (18u)
+#define INTC_ICDABR16_TINT115_SHIFT             (19u)
+#define INTC_ICDABR16_TINT116_SHIFT             (20u)
+#define INTC_ICDABR16_TINT117_SHIFT             (21u)
+#define INTC_ICDABR16_TINT118_SHIFT             (22u)
+#define INTC_ICDABR16_TINT119_SHIFT             (23u)
+#define INTC_ICDABR16_TINT120_SHIFT             (24u)
+#define INTC_ICDABR16_TINT121_SHIFT             (25u)
+#define INTC_ICDABR16_TINT122_SHIFT             (26u)
+#define INTC_ICDABR16_TINT123_SHIFT             (27u)
+#define INTC_ICDABR16_TINT124_SHIFT             (28u)
+#define INTC_ICDABR16_TINT125_SHIFT             (29u)
+#define INTC_ICDABR16_TINT126_SHIFT             (30u)
+#define INTC_ICDABR16_TINT127_SHIFT             (31u)
+
+#define INTC_ICDABR17_TINT128_SHIFT             (0u)
+#define INTC_ICDABR17_TINT129_SHIFT             (1u)
+#define INTC_ICDABR17_TINT130_SHIFT             (2u)
+#define INTC_ICDABR17_TINT131_SHIFT             (3u)
+#define INTC_ICDABR17_TINT132_SHIFT             (4u)
+#define INTC_ICDABR17_TINT133_SHIFT             (5u)
+#define INTC_ICDABR17_TINT134_SHIFT             (6u)
+#define INTC_ICDABR17_TINT135_SHIFT             (7u)
+#define INTC_ICDABR17_TINT136_SHIFT             (8u)
+#define INTC_ICDABR17_TINT137_SHIFT             (9u)
+#define INTC_ICDABR17_TINT138_SHIFT             (10u)
+#define INTC_ICDABR17_TINT139_SHIFT             (11u)
+#define INTC_ICDABR17_TINT140_SHIFT             (12u)
+#define INTC_ICDABR17_TINT141_SHIFT             (13u)
+#define INTC_ICDABR17_TINT142_SHIFT             (14u)
+#define INTC_ICDABR17_TINT143_SHIFT             (15u)
+#define INTC_ICDABR17_TINT144_SHIFT             (16u)
+#define INTC_ICDABR17_TINT145_SHIFT             (17u)
+#define INTC_ICDABR17_TINT146_SHIFT             (18u)
+#define INTC_ICDABR17_TINT147_SHIFT             (19u)
+#define INTC_ICDABR17_TINT148_SHIFT             (20u)
+#define INTC_ICDABR17_TINT149_SHIFT             (21u)
+#define INTC_ICDABR17_TINT150_SHIFT             (22u)
+#define INTC_ICDABR17_TINT151_SHIFT             (23u)
+#define INTC_ICDABR17_TINT152_SHIFT             (24u)
+#define INTC_ICDABR17_TINT153_SHIFT             (25u)
+#define INTC_ICDABR17_TINT154_SHIFT             (26u)
+#define INTC_ICDABR17_TINT155_SHIFT             (27u)
+#define INTC_ICDABR17_TINT156_SHIFT             (28u)
+#define INTC_ICDABR17_TINT157_SHIFT             (29u)
+#define INTC_ICDABR17_TINT158_SHIFT             (30u)
+#define INTC_ICDABR17_TINT159_SHIFT             (31u)
+
+#define INTC_ICDABR18_TINT160_SHIFT             (0u)
+#define INTC_ICDABR18_TINT161_SHIFT             (1u)
+#define INTC_ICDABR18_TINT162_SHIFT             (2u)
+#define INTC_ICDABR18_TINT163_SHIFT             (3u)
+#define INTC_ICDABR18_TINT164_SHIFT             (4u)
+#define INTC_ICDABR18_TINT165_SHIFT             (5u)
+#define INTC_ICDABR18_TINT166_SHIFT             (6u)
+#define INTC_ICDABR18_TINT167_SHIFT             (7u)
+#define INTC_ICDABR18_TINT168_SHIFT             (8u)
+#define INTC_ICDABR18_TINT169_SHIFT             (9u)
+#define INTC_ICDABR18_TINT170_SHIFT             (10u)
+
+#define INTC_ICDIPR0_SW0_SHIFT                  (0u)
+#define INTC_ICDIPR0_SW1_SHIFT                  (8u)
+#define INTC_ICDIPR0_SW2_SHIFT                  (16u)
+#define INTC_ICDIPR0_SW3_SHIFT                  (24u)
+
+#define INTC_ICDIPR1_SW4_SHIFT                  (0u)
+#define INTC_ICDIPR1_SW5_SHIFT                  (8u)
+#define INTC_ICDIPR1_SW6_SHIFT                  (16u)
+#define INTC_ICDIPR1_SW7_SHIFT                  (24u)
+
+#define INTC_ICDIPR2_SW8_SHIFT                  (0u)
+#define INTC_ICDIPR2_SW9_SHIFT                  (8u)
+#define INTC_ICDIPR2_SW10_SHIFT                 (16u)
+#define INTC_ICDIPR2_SW11_SHIFT                 (24u)
+
+#define INTC_ICDIPR3_SW12_SHIFT                 (0u)
+#define INTC_ICDIPR3_SW13_SHIFT                 (8u)
+#define INTC_ICDIPR3_SW14_SHIFT                 (16u)
+#define INTC_ICDIPR3_SW15_SHIFT                 (24u)
+
+#define INTC_ICDIPR4_PMUIRQ0_SHIFT              (0u)
+#define INTC_ICDIPR4_COMMRX0_SHIFT              (8u)
+#define INTC_ICDIPR4_COMMTX0_SHIFT              (16u)
+#define INTC_ICDIPR4_CTIIRQ0_SHIFT              (24u)
+
+#define INTC_ICDIPR8_IRQ0_SHIFT                 (0u)
+#define INTC_ICDIPR8_IRQ1_SHIFT                 (8u)
+#define INTC_ICDIPR8_IRQ2_SHIFT                 (16u)
+#define INTC_ICDIPR8_IRQ3_SHIFT                 (24u)
+
+#define INTC_ICDIPR9_IRQ4_SHIFT                 (0u)
+#define INTC_ICDIPR9_IRQ5_SHIFT                 (8u)
+#define INTC_ICDIPR9_IRQ6_SHIFT                 (16u)
+#define INTC_ICDIPR9_IRQ7_SHIFT                 (24u)
+
+#define INTC_ICDIPR10_PL310ERR_SHIFT            (0u)
+#define INTC_ICDIPR10_DMAINT0_SHIFT             (8u)
+#define INTC_ICDIPR10_DMAINT1_SHIFT             (16u)
+#define INTC_ICDIPR10_DMAINT2_SHIFT             (24u)
+
+#define INTC_ICDIPR11_DMAINT3_SHIFT             (0u)
+#define INTC_ICDIPR11_DMAINT4_SHIFT             (8u)
+#define INTC_ICDIPR11_DMAINT5_SHIFT             (16u)
+#define INTC_ICDIPR11_DMAINT6_SHIFT             (24u)
+
+#define INTC_ICDIPR12_DMAINT7_SHIFT             (0u)
+#define INTC_ICDIPR12_DMAINT8_SHIFT             (8u)
+#define INTC_ICDIPR12_DMAINT9_SHIFT             (16u)
+#define INTC_ICDIPR12_DMAINT10_SHIFT            (24u)
+
+#define INTC_ICDIPR13_DMAINT11_SHIFT            (0u)
+#define INTC_ICDIPR13_DMAINT12_SHIFT            (8u)
+#define INTC_ICDIPR13_DMAINT13_SHIFT            (16u)
+#define INTC_ICDIPR13_DMAINT14_SHIFT            (24u)
+
+#define INTC_ICDIPR14_DMAINT15_SHIFT            (0u)
+#define INTC_ICDIPR14_DMAERR_SHIFT              (8u)
+
+#define INTC_ICDIPR18_USBI0_SHIFT               (8u)
+#define INTC_ICDIPR18_USBI1_SHIFT               (16u)
+#define INTC_ICDIPR18_S0_VI_VSYNC0_SHIFT        (24u)
+
+#define INTC_ICDIPR19_S0_LO_VSYNC0_SHIFT        (0u)
+#define INTC_ICDIPR19_S0_VSYNCERR0_SHIFT        (8u)
+#define INTC_ICDIPR19_GR3_VLINE0_SHIFT          (16u)
+#define INTC_ICDIPR19_S0_VFIELD0_SHIFT          (24u)
+
+#define INTC_ICDIPR20_IV1_VBUFERR0_SHIFT        (0u)
+#define INTC_ICDIPR20_IV3_VBUFERR0_SHIFT        (8u)
+#define INTC_ICDIPR20_IV5_VBUFERR0_SHIFT        (16u)
+#define INTC_ICDIPR20_IV6_VBUFERR0_SHIFT        (24u)
+
+#define INTC_ICDIPR21_S0_WLINE0_SHIFT           (0u)
+#define INTC_ICDIPR21_S1_VI_VSYNC0_SHIFT        (8u)
+#define INTC_ICDIPR21_S1_LO_VSYNC0_SHIFT        (16u)
+#define INTC_ICDIPR21_S1_VSYNCERR0_SHIFT        (24u)
+
+#define INTC_ICDIPR22_S1_VFIELD0_SHIFT          (0u)
+#define INTC_ICDIPR22_IV2_VBUFERR0_SHIFT        (8u)
+#define INTC_ICDIPR22_IV4_VBUFERR0_SHIFT        (16u)
+#define INTC_ICDIPR22_S1_WLINE0_SHIFT           (24u)
+
+#define INTC_ICDIPR23_OIR_VI_VSYNC0_SHIFT       (0u)
+#define INTC_ICDIPR23_OIR_LO_VSYNC0_SHIFT       (8u)
+#define INTC_ICDIPR23_OIR_VSYNCERR0_SHIFT       (16u)
+#define INTC_ICDIPR23_OIR_VFIELD0_SHIFT         (24u)
+
+#define INTC_ICDIPR24_IV7_VBUFERR0_SHIFT        (0u)
+#define INTC_ICDIPR24_IV8_VBUFERR0_SHIFT        (8u)
+#define INTC_ICDIPR24_S0_VI_VSYNC1_SHIFT        (24u)
+
+#define INTC_ICDIPR25_S0_LO_VSYNC1_SHIFT        (0u)
+#define INTC_ICDIPR25_S0_VSYNCERR1_SHIFT        (8u)
+#define INTC_ICDIPR25_GR3_VLINE1_SHIFT          (16u)
+#define INTC_ICDIPR25_S0_VFIELD1_SHIFT          (24u)
+
+#define INTC_ICDIPR26_IV1_VBUFERR1_SHIFT        (0u)
+#define INTC_ICDIPR26_IV3_VBUFERR1_SHIFT        (8u)
+#define INTC_ICDIPR26_IV5_VBUFERR1_SHIFT        (16u)
+#define INTC_ICDIPR26_IV6_VBUFERR1_SHIFT        (24u)
+
+#define INTC_ICDIPR27_S0_WLINE1_SHIFT           (0u)
+#define INTC_ICDIPR27_S1_VI_VSYNC1_SHIFT        (8u)
+#define INTC_ICDIPR27_S1_LO_VSYNC1_SHIFT        (16u)
+#define INTC_ICDIPR27_S1_VSYNCERR1_SHIFT        (24u)
+
+#define INTC_ICDIPR28_S1_VFIELD1_SHIFT          (0u)
+#define INTC_ICDIPR28_IV2_VBUFERR1_SHIFT        (8u)
+#define INTC_ICDIPR28_IV4_VBUFERR1_SHIFT        (16u)
+#define INTC_ICDIPR28_S1_WLINE1_SHIFT           (24u)
+
+#define INTC_ICDIPR29_OIR_VI_VSYNC1_SHIFT       (0u)
+#define INTC_ICDIPR29_OIR_LO_VSYNC1_SHIFT       (8u)
+#define INTC_ICDIPR29_OIR_VLINE1_SHIFT          (16u)
+#define INTC_ICDIPR29_OIR_VFIELD1_SHIFT         (24u)
+
+#define INTC_ICDIPR30_IV7_VBUFERR1_SHIFT        (0u)
+#define INTC_ICDIPR30_IV8_VBUFERR1_SHIFT        (8u)
+#define INTC_ICDIPR30_IMRDI_SHIFT               (24u)
+
+#define INTC_ICDIPR31_IMR2I0_SHIFT              (0u)
+#define INTC_ICDIPR31_IMR2I1_SHIFT              (8u)
+#define INTC_ICDIPR31_JEDI_SHIFT                (16u)
+#define INTC_ICDIPR31_JDTI_SHIFT                (24u)
+
+#define INTC_ICDIPR32_CMP0_SHIFT                (0u)
+#define INTC_ICDIPR32_CMP1_SHIFT                (8u)
+#define INTC_ICDIPR32_INT0_SHIFT                (16u)
+#define INTC_ICDIPR32_INT1_SHIFT                (24u)
+
+#define INTC_ICDIPR33_INT2_SHIFT                (0u)
+#define INTC_ICDIPR33_INT3_SHIFT                (8u)
+#define INTC_ICDIPR33_OSTM0TINT_SHIFT           (16u)
+#define INTC_ICDIPR33_OSTM1TINT_SHIFT           (24u)
+
+#define INTC_ICDIPR34_CMI_SHIFT                 (0u)
+#define INTC_ICDIPR34_WTOUT_SHIFT               (8u)
+#define INTC_ICDIPR34_ITI_SHIFT                 (16u)
+#define INTC_ICDIPR34_TGI0A_SHIFT               (24u)
+
+#define INTC_ICDIPR35_TGI0B_SHIFT               (0u)
+#define INTC_ICDIPR35_TGI0C_SHIFT               (8u)
+#define INTC_ICDIPR35_TGI0D_SHIFT               (16u)
+#define INTC_ICDIPR35_TGI0V_SHIFT               (24u)
+
+#define INTC_ICDIPR36_TGI0E_SHIFT               (0u)
+#define INTC_ICDIPR36_TGI0F_SHIFT               (8u)
+#define INTC_ICDIPR36_TGI1A_SHIFT               (16u)
+#define INTC_ICDIPR36_TGI1B_SHIFT               (24u)
+
+#define INTC_ICDIPR37_TGI1V_SHIFT               (0u)
+#define INTC_ICDIPR37_TGI1U_SHIFT               (8u)
+#define INTC_ICDIPR37_TGI2A_SHIFT               (16u)
+#define INTC_ICDIPR37_TGI2B_SHIFT               (24u)
+
+#define INTC_ICDIPR38_TGI2V_SHIFT               (0u)
+#define INTC_ICDIPR38_TGI2U_SHIFT               (8u)
+#define INTC_ICDIPR38_TGI3A_SHIFT               (16u)
+#define INTC_ICDIPR38_TGI3B_SHIFT               (24u)
+
+#define INTC_ICDIPR39_TGI3C_SHIFT               (0u)
+#define INTC_ICDIPR39_TGI3D_SHIFT               (8u)
+#define INTC_ICDIPR39_TGI3V_SHIFT               (16u)
+#define INTC_ICDIPR39_TGI4A_SHIFT               (24u)
+
+#define INTC_ICDIPR40_TGI4B_SHIFT               (0u)
+#define INTC_ICDIPR40_TGI4C_SHIFT               (8u)
+#define INTC_ICDIPR40_TGI4D_SHIFT               (16u)
+#define INTC_ICDIPR40_TGI4V_SHIFT               (24u)
+
+#define INTC_ICDIPR41_CMI1_SHIFT                (0u)
+#define INTC_ICDIPR41_CMI2_SHIFT                (8u)
+#define INTC_ICDIPR41_SGDEI0_SHIFT              (16u)
+#define INTC_ICDIPR41_SGDEI1_SHIFT              (24u)
+
+#define INTC_ICDIPR42_SGDEI2_SHIFT              (0u)
+#define INTC_ICDIPR42_SGDEI3_SHIFT              (8u)
+#define INTC_ICDIPR42_ADI_SHIFT                 (16u)
+#define INTC_ICDIPR42_LMTI_SHIFT                (24u)
+
+#define INTC_ICDIPR43_SSII0_SHIFT               (0u)
+#define INTC_ICDIPR43_SSIRXI0_SHIFT             (8u)
+#define INTC_ICDIPR43_SSITXI0_SHIFT             (16u)
+#define INTC_ICDIPR43_SSII1_SHIFT               (24u)
+
+#define INTC_ICDIPR44_SSIRXI1_SHIFT             (0u)
+#define INTC_ICDIPR44_SSITXI1_SHIFT             (8u)
+#define INTC_ICDIPR44_SSII2_SHIFT               (16u)
+#define INTC_ICDIPR44_SSIRTI2_SHIFT             (24u)
+
+#define INTC_ICDIPR45_SSII3_SHIFT               (0u)
+#define INTC_ICDIPR45_SSIRXI3_SHIFT             (8u)
+#define INTC_ICDIPR45_SSITXI3_SHIFT             (16u)
+#define INTC_ICDIPR45_SSII4_SHIFT               (24u)
+
+#define INTC_ICDIPR46_SSIRTI4_SHIFT             (0u)
+#define INTC_ICDIPR46_SSII5_SHIFT               (8u)
+#define INTC_ICDIPR46_SSIRXI5_SHIFT             (16u)
+#define INTC_ICDIPR46_SSITXI5_SHIFT             (24u)
+
+#define INTC_ICDIPR47_SPDIFI_SHIFT              (0u)
+#define INTC_ICDIPR47_INTIICTEI0_SHIFT          (8u)
+#define INTC_ICDIPR47_INTIICRI0_SHIFT           (16u)
+#define INTC_ICDIPR47_INTIICTI0_SHIFT           (24u)
+
+#define INTC_ICDIPR48_INTIICSPI0_SHIFT          (0u)
+#define INTC_ICDIPR48_INTIICSTI0_SHIFT          (8u)
+#define INTC_ICDIPR48_INTIICNAKI0_SHIFT         (16u)
+#define INTC_ICDIPR48_INTIICALI0_SHIFT          (24u)
+
+#define INTC_ICDIPR49_INTIICTMOI0_SHIFT         (0u)
+#define INTC_ICDIPR49_INTIICTEI1_SHIFT          (8u)
+#define INTC_ICDIPR49_INTIICRI1_SHIFT           (16u)
+#define INTC_ICDIPR49_INTIICTI1_SHIFT           (24u)
+
+#define INTC_ICDIPR50_INTIICSPI1_SHIFT          (0u)
+#define INTC_ICDIPR50_INTIICSTI1_SHIFT          (8u)
+#define INTC_ICDIPR50_INTIICNAKI1_SHIFT         (16u)
+#define INTC_ICDIPR50_INTIICALI1_SHIFT          (24u)
+
+#define INTC_ICDIPR51_INTIICTMOI1_SHIFT         (0u)
+#define INTC_ICDIPR51_INTIICTEI2_SHIFT          (8u)
+#define INTC_ICDIPR51_INTIICRI2_SHIFT           (16u)
+#define INTC_ICDIPR51_INTIICTI2_SHIFT           (24u)
+
+#define INTC_ICDIPR52_INTIICSPI2_SHIFT          (0u)
+#define INTC_ICDIPR52_INTIICSTI2_SHIFT          (8u)
+#define INTC_ICDIPR52_INTIICNAKI2_SHIFT         (16u)
+#define INTC_ICDIPR52_INTIICALI2_SHIFT          (24u)
+
+#define INTC_ICDIPR53_INTIICTMOI2_SHIFT         (0u)
+#define INTC_ICDIPR53_INTIICTEI3_SHIFT          (8u)
+#define INTC_ICDIPR53_INTIICRI3_SHIFT           (16u)
+#define INTC_ICDIPR53_INTIICTI3_SHIFT           (24u)
+
+#define INTC_ICDIPR54_INTIICSPI3_SHIFT          (0u)
+#define INTC_ICDIPR54_INTIICSTI3_SHIFT          (8u)
+#define INTC_ICDIPR54_INTIICNAKI3_SHIFT         (16u)
+#define INTC_ICDIPR54_INTIICALI3_SHIFT          (24u)
+
+#define INTC_ICDIPR55_INTIICTMOI3_SHIFT         (0u)
+#define INTC_ICDIPR55_BRI0_SHIFT                (8u)
+#define INTC_ICDIPR55_ERI0_SHIFT                (16u)
+#define INTC_ICDIPR55_RXI0_SHIFT                (24u)
+
+#define INTC_ICDIPR56_TXI0_SHIFT                (0u)
+#define INTC_ICDIPR56_BRI1_SHIFT                (8u)
+#define INTC_ICDIPR56_ERI1_SHIFT                (16u)
+#define INTC_ICDIPR56_RXI1_SHIFT                (24u)
+
+#define INTC_ICDIPR57_TXI1_SHIFT                (0u)
+#define INTC_ICDIPR57_BRI2_SHIFT                (8u)
+#define INTC_ICDIPR57_ERI2_SHIFT                (16u)
+#define INTC_ICDIPR57_RXI2_SHIFT                (24u)
+
+#define INTC_ICDIPR58_TXI2_SHIFT                (0u)
+#define INTC_ICDIPR58_BRI3_SHIFT                (8u)
+#define INTC_ICDIPR58_ERI3_SHIFT                (16u)
+#define INTC_ICDIPR58_RXI3_SHIFT                (24u)
+
+#define INTC_ICDIPR59_TXI3_SHIFT                (0u)
+#define INTC_ICDIPR59_BRI4_SHIFT                (8u)
+#define INTC_ICDIPR59_ERI4_SHIFT                (16u)
+#define INTC_ICDIPR59_RXI4_SHIFT                (24u)
+
+#define INTC_ICDIPR60_TXI4_SHIFT                (0u)
+#define INTC_ICDIPR60_BRI5_SHIFT                (8u)
+#define INTC_ICDIPR60_ERI5_SHIFT                (16u)
+#define INTC_ICDIPR60_RXI5_SHIFT                (24u)
+
+#define INTC_ICDIPR61_TXI5_SHIFT                (0u)
+#define INTC_ICDIPR61_BRI6_SHIFT                (8u)
+#define INTC_ICDIPR61_ERI6_SHIFT                (16u)
+#define INTC_ICDIPR61_RXI6_SHIFT                (24u)
+
+#define INTC_ICDIPR62_TXI6_SHIFT                (0u)
+#define INTC_ICDIPR62_BRI7_SHIFT                (8u)
+#define INTC_ICDIPR62_ERI7_SHIFT                (16u)
+#define INTC_ICDIPR62_RXI7_SHIFT                (24u)
+
+#define INTC_ICDIPR63_TXI7_SHIFT                (0u)
+#define INTC_ICDIPR63_INTRCANGERR_SHIFT         (8u)
+#define INTC_ICDIPR63_INTRCANGRECC_SHIFT        (16u)
+#define INTC_ICDIPR63_INTRCAN0REC_SHIFT         (24u)
+
+#define INTC_ICDIPR64_INTRCAN0ERR_SHIFT         (0u)
+#define INTC_ICDIPR64_INTRCAN0TRX_SHIFT         (8u)
+#define INTC_ICDIPR64_INTRCAN1REC_SHIFT         (16u)
+#define INTC_ICDIPR64_INTRCAN1ERR_SHIFT         (24u)
+
+#define INTC_ICDIPR65_INTRCAN1TRX_SHIFT         (0u)
+#define INTC_ICDIPR65_INTRCAN2REC_SHIFT         (8u)
+#define INTC_ICDIPR65_INTRCAN2ERR_SHIFT         (16u)
+#define INTC_ICDIPR65_INTRCAN2TRX_SHIFT         (24u)
+
+#define INTC_ICDIPR66_INTRCAN3REC_SHIFT         (0u)
+#define INTC_ICDIPR66_INTRCAN3ERR_SHIFT         (8u)
+#define INTC_ICDIPR66_INTRCAN3TRX_SHIFT         (16u)
+#define INTC_ICDIPR66_INTRCAN4REC_SHIFT         (24u)
+
+#define INTC_ICDIPR67_INTRCAN4ERR_SHIFT         (0u)
+#define INTC_ICDIPR67_INTRCAN4TRX_SHIFT         (8u)
+#define INTC_ICDIPR67_SPEI0_SHIFT               (16u)
+#define INTC_ICDIPR67_SPRI0_SHIFT               (24u)
+
+#define INTC_ICDIPR68_SPTI0_SHIFT               (0u)
+#define INTC_ICDIPR68_SPEI1_SHIFT               (8u)
+#define INTC_ICDIPR68_SPRI1_SHIFT               (16u)
+#define INTC_ICDIPR68_SPTI1_SHIFT               (24u)
+
+#define INTC_ICDIPR69_SPEI2_SHIFT               (0u)
+#define INTC_ICDIPR69_SPRI2_SHIFT               (8u)
+#define INTC_ICDIPR69_SPTI2_SHIFT               (16u)
+#define INTC_ICDIPR69_SPEI3_SHIFT               (24u)
+
+#define INTC_ICDIPR70_SPRI3_SHIFT               (0u)
+#define INTC_ICDIPR70_SPTI3_SHIFT               (8u)
+#define INTC_ICDIPR70_SPEI4_SHIFT               (16u)
+#define INTC_ICDIPR70_SPRI4_SHIFT               (24u)
+
+#define INTC_ICDIPR71_SPTI4_SHIFT               (0u)
+#define INTC_ICDIPR71_IEBBTD_SHIFT              (8u)
+#define INTC_ICDIPR71_IEBBTERR_SHIFT            (16u)
+#define INTC_ICDIPR71_IEBBTSTA_SHIFT            (24u)
+
+#define INTC_ICDIPR72_IEBBTV_SHIFT              (0u)
+#define INTC_ICDIPR72_ISY_SHIFT                 (8u)
+#define INTC_ICDIPR72_IERR_SHIFT                (16u)
+#define INTC_ICDIPR72_ITARG_SHIFT               (24u)
+
+#define INTC_ICDIPR73_ISEC_SHIFT                (0u)
+#define INTC_ICDIPR73_IBUF_SHIFT                (8u)
+#define INTC_ICDIPR73_IREADY_SHIFT              (16u)
+#define INTC_ICDIPR73_FLSTE_SHIFT               (24u)
+
+#define INTC_ICDIPR74_FLTENDI_SHIFT             (0u)
+#define INTC_ICDIPR74_FLTREQ0I_SHIFT            (8u)
+#define INTC_ICDIPR74_FLTREQ1I_SHIFT            (16u)
+#define INTC_ICDIPR74_MMC0_SHIFT                (24u)
+
+#define INTC_ICDIPR75_MMC1_SHIFT                (0u)
+#define INTC_ICDIPR75_MMC2_SHIFT                (8u)
+#define INTC_ICDIPR75_SDHI0_3_SHIFT             (16u)
+#define INTC_ICDIPR75_SDHI0_0_SHIFT             (24u)
+
+#define INTC_ICDIPR76_SDHI0_1_SHIFT             (0u)
+#define INTC_ICDIPR76_SDHI1_3_SHIFT             (8u)
+#define INTC_ICDIPR76_SDHI1_0_SHIFT             (16u)
+#define INTC_ICDIPR76_SDHI1_1_SHIFT             (24u)
+
+#define INTC_ICDIPR77_ARM_SHIFT                 (0u)
+#define INTC_ICDIPR77_PRD_SHIFT                 (8u)
+#define INTC_ICDIPR77_CUP_SHIFT                 (16u)
+#define INTC_ICDIPR77_SCUAI0_SHIFT              (24u)
+
+#define INTC_ICDIPR78_SCUAI1_SHIFT              (0u)
+#define INTC_ICDIPR78_SCUFDI0_SHIFT             (8u)
+#define INTC_ICDIPR78_SCUFDI1_SHIFT             (16u)
+#define INTC_ICDIPR78_SCUFDI2_SHIFT             (24u)
+
+#define INTC_ICDIPR79_SCUFDI3_SHIFT             (0u)
+#define INTC_ICDIPR79_SCUFUI0_SHIFT             (8u)
+#define INTC_ICDIPR79_SCUFUI1_SHIFT             (16u)
+#define INTC_ICDIPR79_SCUFUI2_SHIFT             (24u)
+
+#define INTC_ICDIPR80_SCUFUI3_SHIFT             (0u)
+#define INTC_ICDIPR80_SCUDVI0_SHIFT             (8u)
+#define INTC_ICDIPR80_SCUDVI1_SHIFT             (16u)
+#define INTC_ICDIPR80_SCUDVI2_SHIFT             (24u)
+
+#define INTC_ICDIPR81_SCUDVI3_SHIFT             (0u)
+#define INTC_ICDIPR81_MLB_CINT_SHIFT            (8u)
+#define INTC_ICDIPR81_MLB_SINT_SHIFT            (16u)
+#define INTC_ICDIPR81_DRC0_SHIFT                (24u)
+
+#define INTC_ICDIPR82_DRC1_SHIFT                (0u)
+#define INTC_ICDIPR82_LINI0_INT_T_SHIFT         (24u)
+
+#define INTC_ICDIPR83_LINI0_INT_R_SHIFT         (0u)
+#define INTC_ICDIPR83_LINI0_INT_S_SHIFT         (8u)
+#define INTC_ICDIPR83_LINI0_INT_M_SHIFT         (16u)
+#define INTC_ICDIPR83_LINI1_INT_T_SHIFT         (24u)
+
+#define INTC_ICDIPR84_LINI1_INT_R_SHIFT         (0u)
+#define INTC_ICDIPR84_LINI1_INT_S_SHIFT         (8u)
+#define INTC_ICDIPR84_LINI1_INT_M_SHIFT         (16u)
+
+#define INTC_ICDIPR86_ERI0_SHIFT                (24u)
+
+#define INTC_ICDIPR87_RXI0_SHIFT                (0u)
+#define INTC_ICDIPR87_TXI0_SHIFT                (8u)
+#define INTC_ICDIPR87_TEI0_SHIFT                (16u)
+#define INTC_ICDIPR87_ERI1_SHIFT                (24u)
+
+#define INTC_ICDIPR88_RXI1_SHIFT                (0u)
+#define INTC_ICDIPR88_TXI1_SHIFT                (8u)
+#define INTC_ICDIPR88_TEI1_SHIFT                (16u)
+#define INTC_ICDIPR88_AVBI_DATA_SHIFT           (24u)
+
+#define INTC_ICDIPR89_AVBI_ERROR_SHIFT          (0u)
+#define INTC_ICDIPR89_AVBI_MANAGE_SHIFT         (8u)
+#define INTC_ICDIPR89_AVBI_MAC_SHIFT            (16u)
+#define INTC_ICDIPR89_ETHERI_SHIFT              (24u)
+
+#define INTC_ICDIPR91_CEUI_SHIFT                (0u)
+
+#define INTC_ICDIPR95_H2XMLB_ERRINT_SHIFT       (8u)
+#define INTC_ICDIPR95_H2XIC1_ERRINT_SHIFT       (16u)
+#define INTC_ICDIPR95_X2HPERI1_ERRINT_SHIFT     (24u)
+
+#define INTC_ICDIPR96_X2HPERI2_ERRINT_SHIFT     (0u)
+#define INTC_ICDIPR96_X2HPERI34_ERRINT_SHIFT    (8u)
+#define INTC_ICDIPR96_X2HPERI5_ERRINT_SHIFT     (16u)
+#define INTC_ICDIPR96_X2HPERI67_ERRINT_SHIFT    (24u)
+
+#define INTC_ICDIPR97_X2HDBGR_ERRINT_SHIFT      (0u)
+#define INTC_ICDIPR97_X2HBSC_ERRINT_SHIFT       (8u)
+#define INTC_ICDIPR97_X2HSPI1_ERRINT_SHIFT      (16u)
+#define INTC_ICDIPR97_X2HSPI2_ERRINT_SHIFT      (24u)
+
+#define INTC_ICDIPR98_PRRI_SHIFT                (0u)
+#define INTC_ICDIPR98_IFEI0_SHIFT               (8u)
+#define INTC_ICDIPR98_OFFI0_SHIFT               (16u)
+#define INTC_ICDIPR98_PFVEI0_SHIFT              (24u)
+
+#define INTC_ICDIPR99_IFEI1_SHIFT               (0u)
+#define INTC_ICDIPR99_OFFI1_SHIFT               (8u)
+#define INTC_ICDIPR99_PFVEI1_SHIFT              (16u)
+
+#define INTC_ICDIPR104_TINT0_SHIFT              (0u)
+#define INTC_ICDIPR104_TINT1_SHIFT              (8u)
+#define INTC_ICDIPR104_TINT2_SHIFT              (16u)
+#define INTC_ICDIPR104_TINT3_SHIFT              (24u)
+
+#define INTC_ICDIPR105_TINT4_SHIFT              (0u)
+#define INTC_ICDIPR105_TINT5_SHIFT              (8u)
+#define INTC_ICDIPR105_TINT6_SHIFT              (16u)
+#define INTC_ICDIPR105_TINT7_SHIFT              (24u)
+
+#define INTC_ICDIPR106_TINT8_SHIFT              (0u)
+#define INTC_ICDIPR106_TINT9_SHIFT              (8u)
+#define INTC_ICDIPR106_TINT10_SHIFT             (16u)
+#define INTC_ICDIPR106_TINT11_SHIFT             (24u)
+
+#define INTC_ICDIPR107_TINT12_SHIFT             (0u)
+#define INTC_ICDIPR107_TINT13_SHIFT             (8u)
+#define INTC_ICDIPR107_TINT14_SHIFT             (16u)
+#define INTC_ICDIPR107_TINT15_SHIFT             (24u)
+
+#define INTC_ICDIPR108_TINT16_SHIFT             (0u)
+#define INTC_ICDIPR108_TINT17_SHIFT             (8u)
+#define INTC_ICDIPR108_TINT18_SHIFT             (16u)
+#define INTC_ICDIPR108_TINT19_SHIFT             (24u)
+
+#define INTC_ICDIPR109_TINT20_SHIFT             (0u)
+#define INTC_ICDIPR109_TINT21_SHIFT             (8u)
+#define INTC_ICDIPR109_TINT22_SHIFT             (16u)
+#define INTC_ICDIPR109_TINT23_SHIFT             (24u)
+
+#define INTC_ICDIPR110_TINT24_SHIFT             (0u)
+#define INTC_ICDIPR110_TINT25_SHIFT             (8u)
+#define INTC_ICDIPR110_TINT26_SHIFT             (16u)
+#define INTC_ICDIPR110_TINT27_SHIFT             (24u)
+
+#define INTC_ICDIPR111_TINT28_SHIFT             (0u)
+#define INTC_ICDIPR111_TINT29_SHIFT             (8u)
+#define INTC_ICDIPR111_TINT30_SHIFT             (16u)
+#define INTC_ICDIPR111_TINT31_SHIFT             (24u)
+
+#define INTC_ICDIPR112_TINT32_SHIFT             (0u)
+#define INTC_ICDIPR112_TINT33_SHIFT             (8u)
+#define INTC_ICDIPR112_TINT34_SHIFT             (16u)
+#define INTC_ICDIPR112_TINT35_SHIFT             (24u)
+
+#define INTC_ICDIPR113_TINT36_SHIFT             (0u)
+#define INTC_ICDIPR113_TINT37_SHIFT             (8u)
+#define INTC_ICDIPR113_TINT38_SHIFT             (16u)
+#define INTC_ICDIPR113_TINT39_SHIFT             (24u)
+
+#define INTC_ICDIPR114_TINT40_SHIFT             (0u)
+#define INTC_ICDIPR114_TINT41_SHIFT             (8u)
+#define INTC_ICDIPR114_TINT42_SHIFT             (16u)
+#define INTC_ICDIPR114_TINT43_SHIFT             (24u)
+
+#define INTC_ICDIPR115_TINT44_SHIFT             (0u)
+#define INTC_ICDIPR115_TINT45_SHIFT             (8u)
+#define INTC_ICDIPR115_TINT46_SHIFT             (16u)
+#define INTC_ICDIPR115_TINT47_SHIFT             (24u)
+
+#define INTC_ICDIPR116_TINT48_SHIFT             (0u)
+#define INTC_ICDIPR116_TINT49_SHIFT             (8u)
+#define INTC_ICDIPR116_TINT50_SHIFT             (16u)
+#define INTC_ICDIPR116_TINT51_SHIFT             (24u)
+
+#define INTC_ICDIPR117_TINT52_SHIFT             (0u)
+#define INTC_ICDIPR117_TINT53_SHIFT             (8u)
+#define INTC_ICDIPR117_TINT54_SHIFT             (16u)
+#define INTC_ICDIPR117_TINT55_SHIFT             (24u)
+
+#define INTC_ICDIPR118_TINT56_SHIFT             (0u)
+#define INTC_ICDIPR118_TINT57_SHIFT             (8u)
+#define INTC_ICDIPR118_TINT58_SHIFT             (16u)
+#define INTC_ICDIPR118_TINT59_SHIFT             (24u)
+
+#define INTC_ICDIPR119_TINT60_SHIFT             (0u)
+#define INTC_ICDIPR119_TINT61_SHIFT             (8u)
+#define INTC_ICDIPR119_TINT62_SHIFT             (16u)
+#define INTC_ICDIPR119_TINT63_SHIFT             (24u)
+
+#define INTC_ICDIPR120_TINT64_SHIFT             (0u)
+#define INTC_ICDIPR120_TINT65_SHIFT             (8u)
+#define INTC_ICDIPR120_TINT66_SHIFT             (16u)
+#define INTC_ICDIPR120_TINT67_SHIFT             (24u)
+
+#define INTC_ICDIPR121_TINT68_SHIFT             (0u)
+#define INTC_ICDIPR121_TINT69_SHIFT             (8u)
+#define INTC_ICDIPR121_TINT70_SHIFT             (16u)
+#define INTC_ICDIPR121_TINT71_SHIFT             (24u)
+
+#define INTC_ICDIPR122_TINT72_SHIFT             (0u)
+#define INTC_ICDIPR122_TINT73_SHIFT             (8u)
+#define INTC_ICDIPR122_TINT74_SHIFT             (16u)
+#define INTC_ICDIPR122_TINT75_SHIFT             (24u)
+
+#define INTC_ICDIPR123_TINT76_SHIFT             (0u)
+#define INTC_ICDIPR123_TINT77_SHIFT             (8u)
+#define INTC_ICDIPR123_TINT78_SHIFT             (16u)
+#define INTC_ICDIPR123_TINT79_SHIFT             (24u)
+
+#define INTC_ICDIPR124_TINT80_SHIFT             (0u)
+#define INTC_ICDIPR124_TINT81_SHIFT             (8u)
+#define INTC_ICDIPR124_TINT82_SHIFT             (16u)
+#define INTC_ICDIPR124_TINT83_SHIFT             (24u)
+
+#define INTC_ICDIPR125_TINT84_SHIFT             (0u)
+#define INTC_ICDIPR125_TINT85_SHIFT             (8u)
+#define INTC_ICDIPR125_TINT86_SHIFT             (16u)
+#define INTC_ICDIPR125_TINT87_SHIFT             (24u)
+
+#define INTC_ICDIPR126_TINT88_SHIFT             (0u)
+#define INTC_ICDIPR126_TINT89_SHIFT             (8u)
+#define INTC_ICDIPR126_TINT90_SHIFT             (16u)
+#define INTC_ICDIPR126_TINT91_SHIFT             (24u)
+
+#define INTC_ICDIPR127_TINT92_SHIFT             (0u)
+#define INTC_ICDIPR127_TINT93_SHIFT             (8u)
+#define INTC_ICDIPR127_TINT94_SHIFT             (16u)
+#define INTC_ICDIPR127_TINT95_SHIFT             (24u)
+
+#define INTC_ICDIPR128_TINT96_SHIFT             (0u)
+#define INTC_ICDIPR128_TINT97_SHIFT             (8u)
+#define INTC_ICDIPR128_TINT98_SHIFT             (16u)
+#define INTC_ICDIPR128_TINT99_SHIFT             (24u)
+
+#define INTC_ICDIPR129_TINT100_SHIFT            (0u)
+#define INTC_ICDIPR129_TINT101_SHIFT            (8u)
+#define INTC_ICDIPR129_TINT102_SHIFT            (16u)
+#define INTC_ICDIPR129_TINT103_SHIFT            (24u)
+
+#define INTC_ICDIPR130_TINT104_SHIFT            (0u)
+#define INTC_ICDIPR130_TINT105_SHIFT            (8u)
+#define INTC_ICDIPR130_TINT106_SHIFT            (16u)
+#define INTC_ICDIPR130_TINT107_SHIFT            (24u)
+
+#define INTC_ICDIPR131_TINT108_SHIFT            (0u)
+#define INTC_ICDIPR131_TINT109_SHIFT            (8u)
+#define INTC_ICDIPR131_TINT110_SHIFT            (16u)
+#define INTC_ICDIPR131_TINT111_SHIFT            (24u)
+
+#define INTC_ICDIPR132_TINT112_SHIFT            (0u)
+#define INTC_ICDIPR132_TINT113_SHIFT            (8u)
+#define INTC_ICDIPR132_TINT114_SHIFT            (16u)
+#define INTC_ICDIPR132_TINT115_SHIFT            (24u)
+
+#define INTC_ICDIPR133_TINT116_SHIFT            (0u)
+#define INTC_ICDIPR133_TINT117_SHIFT            (8u)
+#define INTC_ICDIPR133_TINT118_SHIFT            (16u)
+#define INTC_ICDIPR133_TINT119_SHIFT            (24u)
+
+#define INTC_ICDIPR134_TINT120_SHIFT            (0u)
+#define INTC_ICDIPR134_TINT121_SHIFT            (8u)
+#define INTC_ICDIPR134_TINT122_SHIFT            (16u)
+#define INTC_ICDIPR134_TINT123_SHIFT            (24u)
+
+#define INTC_ICDIPR135_TINT124_SHIFT            (0u)
+#define INTC_ICDIPR135_TINT125_SHIFT            (8u)
+#define INTC_ICDIPR135_TINT126_SHIFT            (16u)
+#define INTC_ICDIPR135_TINT127_SHIFT            (24u)
+
+#define INTC_ICDIPR136_TINT128_SHIFT            (0u)
+#define INTC_ICDIPR136_TINT129_SHIFT            (8u)
+#define INTC_ICDIPR136_TINT130_SHIFT            (16u)
+#define INTC_ICDIPR136_TINT131_SHIFT            (24u)
+
+#define INTC_ICDIPR137_TINT132_SHIFT            (0u)
+#define INTC_ICDIPR137_TINT133_SHIFT            (8u)
+#define INTC_ICDIPR137_TINT134_SHIFT            (16u)
+#define INTC_ICDIPR137_TINT135_SHIFT            (24u)
+
+#define INTC_ICDIPR138_TINT136_SHIFT            (0u)
+#define INTC_ICDIPR138_TINT137_SHIFT            (8u)
+#define INTC_ICDIPR138_TINT138_SHIFT            (16u)
+#define INTC_ICDIPR138_TINT139_SHIFT            (24u)
+
+#define INTC_ICDIPR139_TINT140_SHIFT            (0u)
+#define INTC_ICDIPR139_TINT141_SHIFT            (8u)
+#define INTC_ICDIPR139_TINT142_SHIFT            (16u)
+#define INTC_ICDIPR139_TINT143_SHIFT            (24u)
+
+#define INTC_ICDIPR140_TINT144_SHIFT            (0u)
+#define INTC_ICDIPR140_TINT145_SHIFT            (8u)
+#define INTC_ICDIPR140_TINT146_SHIFT            (16u)
+#define INTC_ICDIPR140_TINT147_SHIFT            (24u)
+
+#define INTC_ICDIPR141_TINT148_SHIFT            (0u)
+#define INTC_ICDIPR141_TINT149_SHIFT            (8u)
+#define INTC_ICDIPR141_TINT150_SHIFT            (16u)
+#define INTC_ICDIPR141_TINT151_SHIFT            (24u)
+
+#define INTC_ICDIPR142_TINT152_SHIFT            (0u)
+#define INTC_ICDIPR142_TINT153_SHIFT            (8u)
+#define INTC_ICDIPR142_TINT154_SHIFT            (16u)
+#define INTC_ICDIPR142_TINT155_SHIFT            (24u)
+
+#define INTC_ICDIPR143_TINT156_SHIFT            (0u)
+#define INTC_ICDIPR143_TINT157_SHIFT            (8u)
+#define INTC_ICDIPR143_TINT158_SHIFT            (16u)
+#define INTC_ICDIPR143_TINT159_SHIFT            (24u)
+
+#define INTC_ICDIPR144_TINT160_SHIFT            (0u)
+#define INTC_ICDIPR144_TINT161_SHIFT            (8u)
+#define INTC_ICDIPR144_TINT162_SHIFT            (16u)
+#define INTC_ICDIPR144_TINT163_SHIFT            (24u)
+
+#define INTC_ICDIPR145_TINT164_SHIFT            (0u)
+#define INTC_ICDIPR145_TINT165_SHIFT            (8u)
+#define INTC_ICDIPR145_TINT166_SHIFT            (16u)
+#define INTC_ICDIPR145_TINT167_SHIFT            (24u)
+
+#define INTC_ICDIPR146_TINT168_SHIFT            (0u)
+#define INTC_ICDIPR146_TINT169_SHIFT            (8u)
+#define INTC_ICDIPR146_TINT170_SHIFT            (16u)
+
+#define INTC_ICDIPTR0_SW0_SHIFT                 (0u)
+#define INTC_ICDIPTR0_SW1_SHIFT                 (8u)
+#define INTC_ICDIPTR0_SW2_SHIFT                 (16u)
+#define INTC_ICDIPTR0_SW3_SHIFT                 (24u)
+
+#define INTC_ICDIPTR1_SW4_SHIFT                 (0u)
+#define INTC_ICDIPTR1_SW5_SHIFT                 (8u)
+#define INTC_ICDIPTR1_SW6_SHIFT                 (16u)
+#define INTC_ICDIPTR1_SW7_SHIFT                 (24u)
+
+#define INTC_ICDIPTR2_SW8_SHIFT                 (0u)
+#define INTC_ICDIPTR2_SW9_SHIFT                 (8u)
+#define INTC_ICDIPTR2_SW10_SHIFT                (16u)
+#define INTC_ICDIPTR2_SW11_SHIFT                (24u)
+
+#define INTC_ICDIPTR3_SW12_SHIFT                (0u)
+#define INTC_ICDIPTR3_SW13_SHIFT                (8u)
+#define INTC_ICDIPTR3_SW14_SHIFT                (16u)
+#define INTC_ICDIPTR3_SW15_SHIFT                (24u)
+
+#define INTC_ICDIPTR4_PMUIRQ0_SHIFT             (0u)
+#define INTC_ICDIPTR4_COMMRX0_SHIFT             (8u)
+#define INTC_ICDIPTR4_COMMTX0_SHIFT             (16u)
+#define INTC_ICDIPTR4_CTIIRQ0_SHIFT             (24u)
+
+#define INTC_ICDIPTR8_IRQ0_SHIFT                (0u)
+#define INTC_ICDIPTR8_IRQ1_SHIFT                (8u)
+#define INTC_ICDIPTR8_IRQ2_SHIFT                (16u)
+#define INTC_ICDIPTR8_IRQ3_SHIFT                (24u)
+
+#define INTC_ICDIPTR9_IRQ4_SHIFT                (0u)
+#define INTC_ICDIPTR9_IRQ5_SHIFT                (8u)
+#define INTC_ICDIPTR9_IRQ6_SHIFT                (16u)
+#define INTC_ICDIPTR9_IRQ7_SHIFT                (24u)
+
+#define INTC_ICDIPTR10_PL310ERR_SHIFT           (0u)
+#define INTC_ICDIPTR10_DMAINT0_SHIFT            (8u)
+#define INTC_ICDIPTR10_DMAINT1_SHIFT            (16u)
+#define INTC_ICDIPTR10_DMAINT2_SHIFT            (24u)
+
+#define INTC_ICDIPTR11_DMAINT3_SHIFT            (0u)
+#define INTC_ICDIPTR11_DMAINT4_SHIFT            (8u)
+#define INTC_ICDIPTR11_DMAINT5_SHIFT            (16u)
+#define INTC_ICDIPTR11_DMAINT6_SHIFT            (24u)
+
+#define INTC_ICDIPTR12_DMAINT7_SHIFT            (0u)
+#define INTC_ICDIPTR12_DMAINT8_SHIFT            (8u)
+#define INTC_ICDIPTR12_DMAINT9_SHIFT            (16u)
+#define INTC_ICDIPTR12_DMAINT10_SHIFT           (24u)
+
+#define INTC_ICDIPTR13_DMAINT11_SHIFT           (0u)
+#define INTC_ICDIPTR13_DMAINT12_SHIFT           (8u)
+#define INTC_ICDIPTR13_DMAINT13_SHIFT           (16u)
+#define INTC_ICDIPTR13_DMAINT14_SHIFT           (24u)
+
+#define INTC_ICDIPTR14_DMAINT15_SHIFT           (0u)
+#define INTC_ICDIPTR14_DMAERR_SHIFT             (8u)
+
+#define INTC_ICDIPTR18_USBI0_SHIFT              (8u)
+#define INTC_ICDIPTR18_USBI1_SHIFT              (16u)
+#define INTC_ICDIPTR18_S0_VI_VSYNC0_SHIFT       (24u)
+
+#define INTC_ICDIPTR19_S0_LO_VSYNC0_SHIFT       (0u)
+#define INTC_ICDIPTR19_S0_VSYNCERR0_SHIFT       (8u)
+#define INTC_ICDIPTR19_GR3_VLINE0_SHIFT         (16u)
+#define INTC_ICDIPTR19_S0_VFIELD0_SHIFT         (24u)
+
+#define INTC_ICDIPTR20_IV1_VBUFERR0_SHIFT       (0u)
+#define INTC_ICDIPTR20_IV3_VBUFERR0_SHIFT       (8u)
+#define INTC_ICDIPTR20_IV5_VBUFERR0_SHIFT       (16u)
+#define INTC_ICDIPTR20_IV6_VBUFERR0_SHIFT       (24u)
+
+#define INTC_ICDIPTR21_S0_WLINE0_SHIFT          (0u)
+#define INTC_ICDIPTR21_S1_VI_VSYNC0_SHIFT       (8u)
+#define INTC_ICDIPTR21_S1_LO_VSYNC0_SHIFT       (16u)
+#define INTC_ICDIPTR21_S1_VSYNCERR0_SHIFT       (24u)
+
+#define INTC_ICDIPTR22_S1_VFIELD0_SHIFT         (0u)
+#define INTC_ICDIPTR22_IV2_VBUFERR0_SHIFT       (8u)
+#define INTC_ICDIPTR22_IV4_VBUFERR0_SHIFT       (16u)
+#define INTC_ICDIPTR22_S1_WLINE0_SHIFT          (24u)
+
+#define INTC_ICDIPTR23_OIR_VI_VSYNC0_SHIFT      (0u)
+#define INTC_ICDIPTR23_OIR_LO_VSYNC0_SHIFT      (8u)
+#define INTC_ICDIPTR23_OIR_VSYNCERR0_SHIFT      (16u)
+#define INTC_ICDIPTR23_OIR_VFIELD0_SHIFT        (24u)
+
+#define INTC_ICDIPTR24_IV7_VBUFERR0_SHIFT       (0u)
+#define INTC_ICDIPTR24_IV8_VBUFERR0_SHIFT       (8u)
+#define INTC_ICDIPTR24_S0_VI_VSYNC1_SHIFT       (24u)
+
+#define INTC_ICDIPTR25_S0_LO_VSYNC1_SHIFT       (0u)
+#define INTC_ICDIPTR25_S0_VSYNCERR1_SHIFT       (8u)
+#define INTC_ICDIPTR25_GR3_VLINE1_SHIFT         (16u)
+#define INTC_ICDIPTR25_S0_VFIELD1_SHIFT         (24u)
+
+#define INTC_ICDIPTR26_IV1_VBUFERR1_SHIFT       (0u)
+#define INTC_ICDIPTR26_IV3_VBUFERR1_SHIFT       (8u)
+#define INTC_ICDIPTR26_IV5_VBUFERR1_SHIFT       (16u)
+#define INTC_ICDIPTR26_IV6_VBUFERR1_SHIFT       (24u)
+
+#define INTC_ICDIPTR27_S0_WLINE1_SHIFT          (0u)
+#define INTC_ICDIPTR27_S1_VI_VSYNC1_SHIFT       (8u)
+#define INTC_ICDIPTR27_S1_LO_VSYNC1_SHIFT       (16u)
+#define INTC_ICDIPTR27_S1_VSYNCERR1_SHIFT       (24u)
+
+#define INTC_ICDIPTR28_S1_VFIELD1_SHIFT         (0u)
+#define INTC_ICDIPTR28_IV2_VBUFERR1_SHIFT       (8u)
+#define INTC_ICDIPTR28_IV4_VBUFERR1_SHIFT       (16u)
+#define INTC_ICDIPTR28_S1_WLINE1_SHIFT          (24u)
+
+#define INTC_ICDIPTR29_OIR_VI_VSYNC1_SHIFT      (0u)
+#define INTC_ICDIPTR29_OIR_LO_VSYNC1_SHIFT      (8u)
+#define INTC_ICDIPTR29_OIR_VLINE1_SHIFT         (16u)
+#define INTC_ICDIPTR29_OIR_VFIELD1_SHIFT        (24u)
+
+#define INTC_ICDIPTR30_IV7_VBUFERR1_SHIFT       (0u)
+#define INTC_ICDIPTR30_IV8_VBUFERR1_SHIFT       (8u)
+#define INTC_ICDIPTR30_IMRDI_SHIFT              (24u)
+
+#define INTC_ICDIPTR31_IMR2I0_SHIFT             (0u)
+#define INTC_ICDIPTR31_IMR2I1_SHIFT             (8u)
+#define INTC_ICDIPTR31_JEDI_SHIFT               (16u)
+#define INTC_ICDIPTR31_JDTI_SHIFT               (24u)
+
+#define INTC_ICDIPTR32_CMP0_SHIFT               (0u)
+#define INTC_ICDIPTR32_CMP1_SHIFT               (8u)
+#define INTC_ICDIPTR32_INT0_SHIFT               (16u)
+#define INTC_ICDIPTR32_INT1_SHIFT               (24u)
+
+#define INTC_ICDIPTR33_INT2_SHIFT               (0u)
+#define INTC_ICDIPTR33_INT3_SHIFT               (8u)
+#define INTC_ICDIPTR33_OSTM0TINT_SHIFT          (16u)
+#define INTC_ICDIPTR33_OSTM1TINT_SHIFT          (24u)
+
+#define INTC_ICDIPTR34_CMI_SHIFT                (0u)
+#define INTC_ICDIPTR34_WTOUT_SHIFT              (8u)
+#define INTC_ICDIPTR34_ITI_SHIFT                (16u)
+#define INTC_ICDIPTR34_TGI0A_SHIFT              (24u)
+
+#define INTC_ICDIPTR35_TGI0B_SHIFT              (0u)
+#define INTC_ICDIPTR35_TGI0C_SHIFT              (8u)
+#define INTC_ICDIPTR35_TGI0D_SHIFT              (16u)
+#define INTC_ICDIPTR35_TGI0V_SHIFT              (24u)
+
+#define INTC_ICDIPTR36_TGI0E_SHIFT              (0u)
+#define INTC_ICDIPTR36_TGI0F_SHIFT              (8u)
+#define INTC_ICDIPTR36_TGI1A_SHIFT              (16u)
+#define INTC_ICDIPTR36_TGI1B_SHIFT              (24u)
+
+#define INTC_ICDIPTR37_TGI1V_SHIFT              (0u)
+#define INTC_ICDIPTR37_TGI1U_SHIFT              (8u)
+#define INTC_ICDIPTR37_TGI2A_SHIFT              (16u)
+#define INTC_ICDIPTR37_TGI2B_SHIFT              (24u)
+
+#define INTC_ICDIPTR38_TGI2V_SHIFT              (0u)
+#define INTC_ICDIPTR38_TGI2U_SHIFT              (8u)
+#define INTC_ICDIPTR38_TGI3A_SHIFT              (16u)
+#define INTC_ICDIPTR38_TGI3B_SHIFT              (24u)
+
+#define INTC_ICDIPTR39_TGI3C_SHIFT              (0u)
+#define INTC_ICDIPTR39_TGI3D_SHIFT              (8u)
+#define INTC_ICDIPTR39_TGI3V_SHIFT              (16u)
+#define INTC_ICDIPTR39_TGI4A_SHIFT              (24u)
+
+#define INTC_ICDIPTR40_TGI4B_SHIFT              (0u)
+#define INTC_ICDIPTR40_TGI4C_SHIFT              (8u)
+#define INTC_ICDIPTR40_TGI4D_SHIFT              (16u)
+#define INTC_ICDIPTR40_TGI4V_SHIFT              (24u)
+
+#define INTC_ICDIPTR41_CMI1_SHIFT               (0u)
+#define INTC_ICDIPTR41_CMI2_SHIFT               (8u)
+#define INTC_ICDIPTR41_SGDEI0_SHIFT             (16u)
+#define INTC_ICDIPTR41_SGDEI1_SHIFT             (24u)
+
+#define INTC_ICDIPTR42_SGDEI2_SHIFT             (0u)
+#define INTC_ICDIPTR42_SGDEI3_SHIFT             (8u)
+#define INTC_ICDIPTR42_ADI_SHIFT                (16u)
+#define INTC_ICDIPTR42_LMTI_SHIFT               (24u)
+
+#define INTC_ICDIPTR43_SSII0_SHIFT              (0u)
+#define INTC_ICDIPTR43_SSIRXI0_SHIFT            (8u)
+#define INTC_ICDIPTR43_SSITXI0_SHIFT            (16u)
+#define INTC_ICDIPTR43_SSII1_SHIFT              (24u)
+
+#define INTC_ICDIPTR44_SSIRXI1_SHIFT            (0u)
+#define INTC_ICDIPTR44_SSITXI1_SHIFT            (8u)
+#define INTC_ICDIPTR44_SSII2_SHIFT              (16u)
+#define INTC_ICDIPTR44_SSIRTI2_SHIFT            (24u)
+
+#define INTC_ICDIPTR45_SSII3_SHIFT              (0u)
+#define INTC_ICDIPTR45_SSIRXI3_SHIFT            (8u)
+#define INTC_ICDIPTR45_SSITXI3_SHIFT            (16u)
+#define INTC_ICDIPTR45_SSII4_SHIFT              (24u)
+
+#define INTC_ICDIPTR46_SSIRTI4_SHIFT            (0u)
+#define INTC_ICDIPTR46_SSII5_SHIFT              (8u)
+#define INTC_ICDIPTR46_SSIRXI5_SHIFT            (16u)
+#define INTC_ICDIPTR46_SSITXI5_SHIFT            (24u)
+
+#define INTC_ICDIPTR47_SPDIFI_SHIFT             (0u)
+#define INTC_ICDIPTR47_INTIICTEI0_SHIFT         (8u)
+#define INTC_ICDIPTR47_INTIICRI0_SHIFT          (16u)
+#define INTC_ICDIPTR47_INTIICTI0_SHIFT          (24u)
+
+#define INTC_ICDIPTR48_INTIICSPI0_SHIFT         (0u)
+#define INTC_ICDIPTR48_INTIICSTI0_SHIFT         (8u)
+#define INTC_ICDIPTR48_INTIICNAKI0_SHIFT        (16u)
+#define INTC_ICDIPTR48_INTIICALI0_SHIFT         (24u)
+
+#define INTC_ICDIPTR49_INTIICTMOI0_SHIFT        (0u)
+#define INTC_ICDIPTR49_INTIICTEI1_SHIFT         (8u)
+#define INTC_ICDIPTR49_INTIICRI1_SHIFT          (16u)
+#define INTC_ICDIPTR49_INTIICTI1_SHIFT          (24u)
+
+#define INTC_ICDIPTR50_INTIICSPI1_SHIFT         (0u)
+#define INTC_ICDIPTR50_INTIICSTI1_SHIFT         (8u)
+#define INTC_ICDIPTR50_INTIICNAKI1_SHIFT        (16u)
+#define INTC_ICDIPTR50_INTIICALI1_SHIFT         (24u)
+
+#define INTC_ICDIPTR51_INTIICTMOI1_SHIFT        (0u)
+#define INTC_ICDIPTR51_INTIICTEI2_SHIFT         (8u)
+#define INTC_ICDIPTR51_INTIICRI2_SHIFT          (16u)
+#define INTC_ICDIPTR51_INTIICTI2_SHIFT          (24u)
+
+#define INTC_ICDIPTR52_INTIICSPI2_SHIFT         (0u)
+#define INTC_ICDIPTR52_INTIICSTI2_SHIFT         (8u)
+#define INTC_ICDIPTR52_INTIICNAKI2_SHIFT        (16u)
+#define INTC_ICDIPTR52_INTIICALI2_SHIFT         (24u)
+
+#define INTC_ICDIPTR53_INTIICTMOI2_SHIFT        (0u)
+#define INTC_ICDIPTR53_INTIICTEI3_SHIFT         (8u)
+#define INTC_ICDIPTR53_INTIICRI3_SHIFT          (16u)
+#define INTC_ICDIPTR53_INTIICTI3_SHIFT          (24u)
+
+#define INTC_ICDIPTR54_INTIICSPI3_SHIFT         (0u)
+#define INTC_ICDIPTR54_INTIICSTI3_SHIFT         (8u)
+#define INTC_ICDIPTR54_INTIICNAKI3_SHIFT        (16u)
+#define INTC_ICDIPTR54_INTIICALI3_SHIFT         (24u)
+
+#define INTC_ICDIPTR55_INTIICTMOI3_SHIFT        (0u)
+#define INTC_ICDIPTR55_BRI0_SHIFT               (8u)
+#define INTC_ICDIPTR55_ERI0_SHIFT               (16u)
+#define INTC_ICDIPTR55_RXI0_SHIFT               (24u)
+
+#define INTC_ICDIPTR56_TXI0_SHIFT               (0u)
+#define INTC_ICDIPTR56_BRI1_SHIFT               (8u)
+#define INTC_ICDIPTR56_ERI1_SHIFT               (16u)
+#define INTC_ICDIPTR56_RXI1_SHIFT               (24u)
+
+#define INTC_ICDIPTR57_TXI1_SHIFT               (0u)
+#define INTC_ICDIPTR57_BRI2_SHIFT               (8u)
+#define INTC_ICDIPTR57_ERI2_SHIFT               (16u)
+#define INTC_ICDIPTR57_RXI2_SHIFT               (24u)
+
+#define INTC_ICDIPTR58_TXI2_SHIFT               (0u)
+#define INTC_ICDIPTR58_BRI3_SHIFT               (8u)
+#define INTC_ICDIPTR58_ERI3_SHIFT               (16u)
+#define INTC_ICDIPTR58_RXI3_SHIFT               (24u)
+
+#define INTC_ICDIPTR59_TXI3_SHIFT               (0u)
+#define INTC_ICDIPTR59_BRI4_SHIFT               (8u)
+#define INTC_ICDIPTR59_ERI4_SHIFT               (16u)
+#define INTC_ICDIPTR59_RXI4_SHIFT               (24u)
+
+#define INTC_ICDIPTR60_TXI4_SHIFT               (0u)
+#define INTC_ICDIPTR60_BRI5_SHIFT               (8u)
+#define INTC_ICDIPTR60_ERI5_SHIFT               (16u)
+#define INTC_ICDIPTR60_RXI5_SHIFT               (24u)
+
+#define INTC_ICDIPTR61_TXI5_SHIFT               (0u)
+#define INTC_ICDIPTR61_BRI6_SHIFT               (8u)
+#define INTC_ICDIPTR61_ERI6_SHIFT               (16u)
+#define INTC_ICDIPTR61_RXI6_SHIFT               (24u)
+
+#define INTC_ICDIPTR62_TXI6_SHIFT               (0u)
+#define INTC_ICDIPTR62_BRI7_SHIFT               (8u)
+#define INTC_ICDIPTR62_ERI7_SHIFT               (16u)
+#define INTC_ICDIPTR62_RXI7_SHIFT               (24u)
+
+#define INTC_ICDIPTR63_TXI7_SHIFT               (0u)
+#define INTC_ICDIPTR63_INTRCANGERR_SHIFT        (8u)
+#define INTC_ICDIPTR63_INTRCANGRECC_SHIFT       (16u)
+#define INTC_ICDIPTR63_INTRCAN0REC_SHIFT        (24u)
+
+#define INTC_ICDIPTR64_INTRCAN0ERR_SHIFT        (0u)
+#define INTC_ICDIPTR64_INTRCAN0TRX_SHIFT        (8u)
+#define INTC_ICDIPTR64_INTRCAN1REC_SHIFT        (16u)
+#define INTC_ICDIPTR64_INTRCAN1ERR_SHIFT        (24u)
+
+#define INTC_ICDIPTR65_INTRCAN1TRX_SHIFT        (0u)
+#define INTC_ICDIPTR65_INTRCAN2REC_SHIFT        (8u)
+#define INTC_ICDIPTR65_INTRCAN2ERR_SHIFT        (16u)
+#define INTC_ICDIPTR65_INTRCAN2TRX_SHIFT        (24u)
+
+#define INTC_ICDIPTR66_INTRCAN3REC_SHIFT        (0u)
+#define INTC_ICDIPTR66_INTRCAN3ERR_SHIFT        (8u)
+#define INTC_ICDIPTR66_INTRCAN3TRX_SHIFT        (16u)
+#define INTC_ICDIPTR66_INTRCAN4REC_SHIFT        (24u)
+
+#define INTC_ICDIPTR67_INTRCAN4ERR_SHIFT        (0u)
+#define INTC_ICDIPTR67_INTRCAN4TRX_SHIFT        (8u)
+#define INTC_ICDIPTR67_SPEI0_SHIFT              (16u)
+#define INTC_ICDIPTR67_SPRI0_SHIFT              (24u)
+
+#define INTC_ICDIPTR68_SPTI0_SHIFT              (0u)
+#define INTC_ICDIPTR68_SPEI1_SHIFT              (8u)
+#define INTC_ICDIPTR68_SPRI1_SHIFT              (16u)
+#define INTC_ICDIPTR68_SPTI1_SHIFT              (24u)
+
+#define INTC_ICDIPTR69_SPEI2_SHIFT              (0u)
+#define INTC_ICDIPTR69_SPRI2_SHIFT              (8u)
+#define INTC_ICDIPTR69_SPTI2_SHIFT              (16u)
+#define INTC_ICDIPTR69_SPEI3_SHIFT              (24u)
+
+#define INTC_ICDIPTR70_SPRI3_SHIFT              (0u)
+#define INTC_ICDIPTR70_SPTI3_SHIFT              (8u)
+#define INTC_ICDIPTR70_SPEI4_SHIFT              (16u)
+#define INTC_ICDIPTR70_SPRI4_SHIFT              (24u)
+
+#define INTC_ICDIPTR71_SPTI4_SHIFT              (0u)
+#define INTC_ICDIPTR71_IEBBTD_SHIFT             (8u)
+#define INTC_ICDIPTR71_IEBBTERR_SHIFT           (16u)
+#define INTC_ICDIPTR71_IEBBTSTA_SHIFT           (24u)
+
+#define INTC_ICDIPTR72_IEBBTV_SHIFT             (0u)
+#define INTC_ICDIPTR72_ISY_SHIFT                (8u)
+#define INTC_ICDIPTR72_IERR_SHIFT               (16u)
+#define INTC_ICDIPTR72_ITARG_SHIFT              (24u)
+
+#define INTC_ICDIPTR73_ISEC_SHIFT               (0u)
+#define INTC_ICDIPTR73_IBUF_SHIFT               (8u)
+#define INTC_ICDIPTR73_IREADY_SHIFT             (16u)
+#define INTC_ICDIPTR73_FLSTE_SHIFT              (24u)
+
+#define INTC_ICDIPTR74_FLTENDI_SHIFT            (0u)
+#define INTC_ICDIPTR74_FLTREQ0I_SHIFT           (8u)
+#define INTC_ICDIPTR74_FLTREQ1I_SHIFT           (16u)
+#define INTC_ICDIPTR74_MMC0_SHIFT               (24u)
+
+#define INTC_ICDIPTR75_MMC1_SHIFT               (0u)
+#define INTC_ICDIPTR75_MMC2_SHIFT               (8u)
+#define INTC_ICDIPTR75_SDHI0_3_SHIFT            (16u)
+#define INTC_ICDIPTR75_SDHI0_0_SHIFT            (24u)
+
+#define INTC_ICDIPTR76_SDHI0_1_SHIFT            (0u)
+#define INTC_ICDIPTR76_SDHI1_3_SHIFT            (8u)
+#define INTC_ICDIPTR76_SDHI1_0_SHIFT            (16u)
+#define INTC_ICDIPTR76_SDHI1_1_SHIFT            (24u)
+
+#define INTC_ICDIPTR77_ARM_SHIFT                (0u)
+#define INTC_ICDIPTR77_PRD_SHIFT                (8u)
+#define INTC_ICDIPTR77_CUP_SHIFT                (16u)
+#define INTC_ICDIPTR77_SCUAI0_SHIFT             (24u)
+
+#define INTC_ICDIPTR78_SCUAI1_SHIFT             (0u)
+#define INTC_ICDIPTR78_SCUFDI0_SHIFT            (8u)
+#define INTC_ICDIPTR78_SCUFDI1_SHIFT            (16u)
+#define INTC_ICDIPTR78_SCUFDI2_SHIFT            (24u)
+
+#define INTC_ICDIPTR79_SCUFDI3_SHIFT            (0u)
+#define INTC_ICDIPTR79_SCUFUI0_SHIFT            (8u)
+#define INTC_ICDIPTR79_SCUFUI1_SHIFT            (16u)
+#define INTC_ICDIPTR79_SCUFUI2_SHIFT            (24u)
+
+#define INTC_ICDIPTR80_SCUFUI3_SHIFT            (0u)
+#define INTC_ICDIPTR80_SCUDVI0_SHIFT            (8u)
+#define INTC_ICDIPTR80_SCUDVI1_SHIFT            (16u)
+#define INTC_ICDIPTR80_SCUDVI2_SHIFT            (24u)
+
+#define INTC_ICDIPTR81_SCUDVI3_SHIFT            (0u)
+#define INTC_ICDIPTR81_MLB_CINT_SHIFT           (8u)
+#define INTC_ICDIPTR81_MLB_SINT_SHIFT           (16u)
+#define INTC_ICDIPTR81_DRC0_SHIFT               (24u)
+
+#define INTC_ICDIPTR82_DRC1_SHIFT               (0u)
+#define INTC_ICDIPTR82_LINI0_INT_T_SHIFT        (24u)
+
+#define INTC_ICDIPTR83_LINI0_INT_R_SHIFT        (0u)
+#define INTC_ICDIPTR83_LINI0_INT_S_SHIFT        (8u)
+#define INTC_ICDIPTR83_LINI0_INT_M_SHIFT        (16u)
+#define INTC_ICDIPTR83_LINI1_INT_T_SHIFT        (24u)
+
+#define INTC_ICDIPTR84_LINI1_INT_R_SHIFT        (0u)
+#define INTC_ICDIPTR84_LINI1_INT_S_SHIFT        (8u)
+#define INTC_ICDIPTR84_LINI1_INT_M_SHIFT        (16u)
+
+#define INTC_ICDIPTR86_ERI0_SHIFT               (24u)
+
+#define INTC_ICDIPTR87_RXI0_SHIFT               (0u)
+#define INTC_ICDIPTR87_TXI0_SHIFT               (8u)
+#define INTC_ICDIPTR87_TEI0_SHIFT               (16u)
+#define INTC_ICDIPTR87_ERI1_SHIFT               (24u)
+
+#define INTC_ICDIPTR88_RXI1_SHIFT               (0u)
+#define INTC_ICDIPTR88_TXI1_SHIFT               (8u)
+#define INTC_ICDIPTR88_TEI1_SHIFT               (16u)
+#define INTC_ICDIPTR88_AVBI_DATA_SHIFT          (24u)
+
+#define INTC_ICDIPTR89_AVBI_ERROR_SHIFT         (0u)
+#define INTC_ICDIPTR89_AVBI_MANAGE_SHIFT        (8u)
+#define INTC_ICDIPTR89_AVBI_MAC_SHIFT           (16u)
+#define INTC_ICDIPTR89_ETHERI_SHIFT             (24u)
+
+#define INTC_ICDIPTR91_CEUI_SHIFT               (0u)
+
+#define INTC_ICDIPTR95_H2XMLB_ERRINT_SHIFT      (8u)
+#define INTC_ICDIPTR95_H2XIC1_ERRINT_SHIFT      (16u)
+#define INTC_ICDIPTR95_X2HPERI1_ERRINT_SHIFT    (24u)
+
+#define INTC_ICDIPTR96_X2HPERI2_ERRINT_SHIFT    (0u)
+#define INTC_ICDIPTR96_X2HPERI34_ERRINT_SHIFT   (8u)
+#define INTC_ICDIPTR96_X2HPERI5_ERRINT_SHIFT    (16u)
+#define INTC_ICDIPTR96_X2HPERI67_ERRINT_SHIFT   (24u)
+
+#define INTC_ICDIPTR97_X2HDBGR_ERRINT_SHIFT     (0u)
+#define INTC_ICDIPTR97_X2HBSC_ERRINT_SHIFT      (8u)
+#define INTC_ICDIPTR97_X2HSPI1_ERRINT_SHIFT     (16u)
+#define INTC_ICDIPTR97_X2HSPI2_ERRINT_SHIFT     (24u)
+
+#define INTC_ICDIPTR98_PRRI_SHIFT               (0u)
+#define INTC_ICDIPTR98_IFEI0_SHIFT              (8u)
+#define INTC_ICDIPTR98_OFFI0_SHIFT              (16u)
+#define INTC_ICDIPTR98_PFVEI0_SHIFT             (24u)
+
+#define INTC_ICDIPTR99_IFEI1_SHIFT              (0u)
+#define INTC_ICDIPTR99_OFFI1_SHIFT              (8u)
+#define INTC_ICDIPTR99_PFVEI1_SHIFT             (16u)
+
+#define INTC_ICDIPTR104_TINT0_SHIFT             (0u)
+#define INTC_ICDIPTR104_TINT1_SHIFT             (8u)
+#define INTC_ICDIPTR104_TINT2_SHIFT             (16u)
+#define INTC_ICDIPTR104_TINT3_SHIFT             (24u)
+
+#define INTC_ICDIPTR105_TINT4_SHIFT             (0u)
+#define INTC_ICDIPTR105_TINT5_SHIFT             (8u)
+#define INTC_ICDIPTR105_TINT6_SHIFT             (16u)
+#define INTC_ICDIPTR105_TINT7_SHIFT             (24u)
+
+#define INTC_ICDIPTR106_TINT8_SHIFT             (0u)
+#define INTC_ICDIPTR106_TINT9_SHIFT             (8u)
+#define INTC_ICDIPTR106_TINT10_SHIFT            (16u)
+#define INTC_ICDIPTR106_TINT11_SHIFT            (24u)
+
+#define INTC_ICDIPTR107_TINT12_SHIFT            (0u)
+#define INTC_ICDIPTR107_TINT13_SHIFT            (8u)
+#define INTC_ICDIPTR107_TINT14_SHIFT            (16u)
+#define INTC_ICDIPTR107_TINT15_SHIFT            (24u)
+
+#define INTC_ICDIPTR108_TINT16_SHIFT            (0u)
+#define INTC_ICDIPTR108_TINT17_SHIFT            (8u)
+#define INTC_ICDIPTR108_TINT18_SHIFT            (16u)
+#define INTC_ICDIPTR108_TINT19_SHIFT            (24u)
+
+#define INTC_ICDIPTR109_TINT20_SHIFT            (0u)
+#define INTC_ICDIPTR109_TINT21_SHIFT            (8u)
+#define INTC_ICDIPTR109_TINT22_SHIFT            (16u)
+#define INTC_ICDIPTR109_TINT23_SHIFT            (24u)
+
+#define INTC_ICDIPTR110_TINT24_SHIFT            (0u)
+#define INTC_ICDIPTR110_TINT25_SHIFT            (8u)
+#define INTC_ICDIPTR110_TINT26_SHIFT            (16u)
+#define INTC_ICDIPTR110_TINT27_SHIFT            (24u)
+
+#define INTC_ICDIPTR111_TINT28_SHIFT            (0u)
+#define INTC_ICDIPTR111_TINT29_SHIFT            (8u)
+#define INTC_ICDIPTR111_TINT30_SHIFT            (16u)
+#define INTC_ICDIPTR111_TINT31_SHIFT            (24u)
+
+#define INTC_ICDIPTR112_TINT32_SHIFT            (0u)
+#define INTC_ICDIPTR112_TINT33_SHIFT            (8u)
+#define INTC_ICDIPTR112_TINT34_SHIFT            (16u)
+#define INTC_ICDIPTR112_TINT35_SHIFT            (24u)
+
+#define INTC_ICDIPTR113_TINT36_SHIFT            (0u)
+#define INTC_ICDIPTR113_TINT37_SHIFT            (8u)
+#define INTC_ICDIPTR113_TINT38_SHIFT            (16u)
+#define INTC_ICDIPTR113_TINT39_SHIFT            (24u)
+
+#define INTC_ICDIPTR114_TINT40_SHIFT            (0u)
+#define INTC_ICDIPTR114_TINT41_SHIFT            (8u)
+#define INTC_ICDIPTR114_TINT42_SHIFT            (16u)
+#define INTC_ICDIPTR114_TINT43_SHIFT            (24u)
+
+#define INTC_ICDIPTR115_TINT44_SHIFT            (0u)
+#define INTC_ICDIPTR115_TINT45_SHIFT            (8u)
+#define INTC_ICDIPTR115_TINT46_SHIFT            (16u)
+#define INTC_ICDIPTR115_TINT47_SHIFT            (24u)
+
+#define INTC_ICDIPTR116_TINT48_SHIFT            (0u)
+#define INTC_ICDIPTR116_TINT49_SHIFT            (8u)
+#define INTC_ICDIPTR116_TINT50_SHIFT            (16u)
+#define INTC_ICDIPTR116_TINT51_SHIFT            (24u)
+
+#define INTC_ICDIPTR117_TINT52_SHIFT            (0u)
+#define INTC_ICDIPTR117_TINT53_SHIFT            (8u)
+#define INTC_ICDIPTR117_TINT54_SHIFT            (16u)
+#define INTC_ICDIPTR117_TINT55_SHIFT            (24u)
+
+#define INTC_ICDIPTR118_TINT56_SHIFT            (0u)
+#define INTC_ICDIPTR118_TINT57_SHIFT            (8u)
+#define INTC_ICDIPTR118_TINT58_SHIFT            (16u)
+#define INTC_ICDIPTR118_TINT59_SHIFT            (24u)
+
+#define INTC_ICDIPTR119_TINT60_SHIFT            (0u)
+#define INTC_ICDIPTR119_TINT61_SHIFT            (8u)
+#define INTC_ICDIPTR119_TINT62_SHIFT            (16u)
+#define INTC_ICDIPTR119_TINT63_SHIFT            (24u)
+
+#define INTC_ICDIPTR120_TINT64_SHIFT            (0u)
+#define INTC_ICDIPTR120_TINT65_SHIFT            (8u)
+#define INTC_ICDIPTR120_TINT66_SHIFT            (16u)
+#define INTC_ICDIPTR120_TINT67_SHIFT            (24u)
+
+#define INTC_ICDIPTR121_TINT68_SHIFT            (0u)
+#define INTC_ICDIPTR121_TINT69_SHIFT            (8u)
+#define INTC_ICDIPTR121_TINT70_SHIFT            (16u)
+#define INTC_ICDIPTR121_TINT71_SHIFT            (24u)
+
+#define INTC_ICDIPTR122_TINT72_SHIFT            (0u)
+#define INTC_ICDIPTR122_TINT73_SHIFT            (8u)
+#define INTC_ICDIPTR122_TINT74_SHIFT            (16u)
+#define INTC_ICDIPTR122_TINT75_SHIFT            (24u)
+
+#define INTC_ICDIPTR123_TINT76_SHIFT            (0u)
+#define INTC_ICDIPTR123_TINT77_SHIFT            (8u)
+#define INTC_ICDIPTR123_TINT78_SHIFT            (16u)
+#define INTC_ICDIPTR123_TINT79_SHIFT            (24u)
+
+#define INTC_ICDIPTR124_TINT80_SHIFT            (0u)
+#define INTC_ICDIPTR124_TINT81_SHIFT            (8u)
+#define INTC_ICDIPTR124_TINT82_SHIFT            (16u)
+#define INTC_ICDIPTR124_TINT83_SHIFT            (24u)
+
+#define INTC_ICDIPTR125_TINT84_SHIFT            (0u)
+#define INTC_ICDIPTR125_TINT85_SHIFT            (8u)
+#define INTC_ICDIPTR125_TINT86_SHIFT            (16u)
+#define INTC_ICDIPTR125_TINT87_SHIFT            (24u)
+
+#define INTC_ICDIPTR126_TINT88_SHIFT            (0u)
+#define INTC_ICDIPTR126_TINT89_SHIFT            (8u)
+#define INTC_ICDIPTR126_TINT90_SHIFT            (16u)
+#define INTC_ICDIPTR126_TINT91_SHIFT            (24u)
+
+#define INTC_ICDIPTR127_TINT92_SHIFT            (0u)
+#define INTC_ICDIPTR127_TINT93_SHIFT            (8u)
+#define INTC_ICDIPTR127_TINT94_SHIFT            (16u)
+#define INTC_ICDIPTR127_TINT95_SHIFT            (24u)
+
+#define INTC_ICDIPTR128_TINT96_SHIFT            (0u)
+#define INTC_ICDIPTR128_TINT97_SHIFT            (8u)
+#define INTC_ICDIPTR128_TINT98_SHIFT            (16u)
+#define INTC_ICDIPTR128_TINT99_SHIFT            (24u)
+
+#define INTC_ICDIPTR129_TINT100_SHIFT           (0u)
+#define INTC_ICDIPTR129_TINT101_SHIFT           (8u)
+#define INTC_ICDIPTR129_TINT102_SHIFT           (16u)
+#define INTC_ICDIPTR129_TINT103_SHIFT           (24u)
+
+#define INTC_ICDIPTR130_TINT104_SHIFT           (0u)
+#define INTC_ICDIPTR130_TINT105_SHIFT           (8u)
+#define INTC_ICDIPTR130_TINT106_SHIFT           (16u)
+#define INTC_ICDIPTR130_TINT107_SHIFT           (24u)
+
+#define INTC_ICDIPTR131_TINT108_SHIFT           (0u)
+#define INTC_ICDIPTR131_TINT109_SHIFT           (8u)
+#define INTC_ICDIPTR131_TINT110_SHIFT           (16u)
+#define INTC_ICDIPTR131_TINT111_SHIFT           (24u)
+
+#define INTC_ICDIPTR132_TINT112_SHIFT           (0u)
+#define INTC_ICDIPTR132_TINT113_SHIFT           (8u)
+#define INTC_ICDIPTR132_TINT114_SHIFT           (16u)
+#define INTC_ICDIPTR132_TINT115_SHIFT           (24u)
+
+#define INTC_ICDIPTR133_TINT116_SHIFT           (0u)
+#define INTC_ICDIPTR133_TINT117_SHIFT           (8u)
+#define INTC_ICDIPTR133_TINT118_SHIFT           (16u)
+#define INTC_ICDIPTR133_TINT119_SHIFT           (24u)
+
+#define INTC_ICDIPTR134_TINT120_SHIFT           (0u)
+#define INTC_ICDIPTR134_TINT121_SHIFT           (8u)
+#define INTC_ICDIPTR134_TINT122_SHIFT           (16u)
+#define INTC_ICDIPTR134_TINT123_SHIFT           (24u)
+
+#define INTC_ICDIPTR135_TINT124_SHIFT           (0u)
+#define INTC_ICDIPTR135_TINT125_SHIFT           (8u)
+#define INTC_ICDIPTR135_TINT126_SHIFT           (16u)
+#define INTC_ICDIPTR135_TINT127_SHIFT           (24u)
+
+#define INTC_ICDIPTR136_TINT128_SHIFT           (0u)
+#define INTC_ICDIPTR136_TINT129_SHIFT           (8u)
+#define INTC_ICDIPTR136_TINT130_SHIFT           (16u)
+#define INTC_ICDIPTR136_TINT131_SHIFT           (24u)
+
+#define INTC_ICDIPTR137_TINT132_SHIFT           (0u)
+#define INTC_ICDIPTR137_TINT133_SHIFT           (8u)
+#define INTC_ICDIPTR137_TINT134_SHIFT           (16u)
+#define INTC_ICDIPTR137_TINT135_SHIFT           (24u)
+
+#define INTC_ICDIPTR138_TINT136_SHIFT           (0u)
+#define INTC_ICDIPTR138_TINT137_SHIFT           (8u)
+#define INTC_ICDIPTR138_TINT138_SHIFT           (16u)
+#define INTC_ICDIPTR138_TINT139_SHIFT           (24u)
+
+#define INTC_ICDIPTR139_TINT140_SHIFT           (0u)
+#define INTC_ICDIPTR139_TINT141_SHIFT           (8u)
+#define INTC_ICDIPTR139_TINT142_SHIFT           (16u)
+#define INTC_ICDIPTR139_TINT143_SHIFT           (24u)
+
+#define INTC_ICDIPTR140_TINT144_SHIFT           (0u)
+#define INTC_ICDIPTR140_TINT145_SHIFT           (8u)
+#define INTC_ICDIPTR140_TINT146_SHIFT           (16u)
+#define INTC_ICDIPTR140_TINT147_SHIFT           (24u)
+
+#define INTC_ICDIPTR141_TINT148_SHIFT           (0u)
+#define INTC_ICDIPTR141_TINT149_SHIFT           (8u)
+#define INTC_ICDIPTR141_TINT150_SHIFT           (16u)
+#define INTC_ICDIPTR141_TINT151_SHIFT           (24u)
+
+#define INTC_ICDIPTR142_TINT152_SHIFT           (0u)
+#define INTC_ICDIPTR142_TINT153_SHIFT           (8u)
+#define INTC_ICDIPTR142_TINT154_SHIFT           (16u)
+#define INTC_ICDIPTR142_TINT155_SHIFT           (24u)
+
+#define INTC_ICDIPTR143_TINT156_SHIFT           (0u)
+#define INTC_ICDIPTR143_TINT157_SHIFT           (8u)
+#define INTC_ICDIPTR143_TINT158_SHIFT           (16u)
+#define INTC_ICDIPTR143_TINT159_SHIFT           (24u)
+
+#define INTC_ICDIPTR144_TINT160_SHIFT           (0u)
+#define INTC_ICDIPTR144_TINT161_SHIFT           (8u)
+#define INTC_ICDIPTR144_TINT162_SHIFT           (16u)
+#define INTC_ICDIPTR144_TINT163_SHIFT           (24u)
+
+#define INTC_ICDIPTR145_TINT164_SHIFT           (0u)
+#define INTC_ICDIPTR145_TINT165_SHIFT           (8u)
+#define INTC_ICDIPTR145_TINT166_SHIFT           (16u)
+#define INTC_ICDIPTR145_TINT167_SHIFT           (24u)
+
+#define INTC_ICDIPTR146_TINT168_SHIFT           (0u)
+#define INTC_ICDIPTR146_TINT169_SHIFT           (8u)
+#define INTC_ICDIPTR146_TINT170_SHIFT           (16u)
+
+#define INTC_ICDICFR0_SW0_0_SHIFT               (0u)
+#define INTC_ICDICFR0_SW0_1_SHIFT               (1u)
+#define INTC_ICDICFR0_SW1_0_SHIFT               (2u)
+#define INTC_ICDICFR0_SW1_1_SHIFT               (3u)
+#define INTC_ICDICFR0_SW2_0_SHIFT               (4u)
+#define INTC_ICDICFR0_SW2_1_SHIFT               (5u)
+#define INTC_ICDICFR0_SW3_0_SHIFT               (6u)
+#define INTC_ICDICFR0_SW3_1_SHIFT               (7u)
+#define INTC_ICDICFR0_SW4_0_SHIFT               (8u)
+#define INTC_ICDICFR0_SW4_1_SHIFT               (9u)
+#define INTC_ICDICFR0_SW5_0_SHIFT               (10u)
+#define INTC_ICDICFR0_SW5_1_SHIFT               (11u)
+#define INTC_ICDICFR0_SW6_0_SHIFT               (12u)
+#define INTC_ICDICFR0_SW6_1_SHIFT               (13u)
+#define INTC_ICDICFR0_SW7_0_SHIFT               (14u)
+#define INTC_ICDICFR0_SW7_1_SHIFT               (15u)
+#define INTC_ICDICFR0_SW8_0_SHIFT               (16u)
+#define INTC_ICDICFR0_SW8_1_SHIFT               (17u)
+#define INTC_ICDICFR0_SW9_0_SHIFT               (18u)
+#define INTC_ICDICFR0_SW9_1_SHIFT               (19u)
+#define INTC_ICDICFR0_SW10_0_SHIFT              (20u)
+#define INTC_ICDICFR0_SW10_1_SHIFT              (21u)
+#define INTC_ICDICFR0_SW11_0_SHIFT              (22u)
+#define INTC_ICDICFR0_SW11_1_SHIFT              (23u)
+#define INTC_ICDICFR0_SW12_0_SHIFT              (24u)
+#define INTC_ICDICFR0_SW12_1_SHIFT              (25u)
+#define INTC_ICDICFR0_SW13_0_SHIFT              (26u)
+#define INTC_ICDICFR0_SW13_1_SHIFT              (27u)
+#define INTC_ICDICFR0_SW14_0_SHIFT              (28u)
+#define INTC_ICDICFR0_SW14_1_SHIFT              (29u)
+#define INTC_ICDICFR0_SW15_0_SHIFT              (30u)
+#define INTC_ICDICFR0_SW15_1_SHIFT              (31u)
+
+#define INTC_ICDICFR1_PMUIRQ0_0_SHIFT           (0u)
+#define INTC_ICDICFR1_PMUIRQ0_1_SHIFT           (1u)
+#define INTC_ICDICFR1_COMMRX0_0_SHIFT           (2u)
+#define INTC_ICDICFR1_COMMRX0_1_SHIFT           (3u)
+#define INTC_ICDICFR1_COMMTX0_0_SHIFT           (4u)
+#define INTC_ICDICFR1_COMMTX0_1_SHIFT           (5u)
+#define INTC_ICDICFR1_CTIIRQ0_0_SHIFT           (6u)
+#define INTC_ICDICFR1_CTIIRQ0_1_SHIFT           (7u)
+
+#define INTC_ICDICFR2_IRQ0_0_SHIFT              (0u)
+#define INTC_ICDICFR2_IRQ0_1_SHIFT              (1u)
+#define INTC_ICDICFR2_IRQ1_0_SHIFT              (2u)
+#define INTC_ICDICFR2_IRQ1_1_SHIFT              (3u)
+#define INTC_ICDICFR2_IRQ2_0_SHIFT              (4u)
+#define INTC_ICDICFR2_IRQ2_1_SHIFT              (5u)
+#define INTC_ICDICFR2_IRQ3_0_SHIFT              (6u)
+#define INTC_ICDICFR2_IRQ3_1_SHIFT              (7u)
+#define INTC_ICDICFR2_IRQ4_0_SHIFT              (8u)
+#define INTC_ICDICFR2_IRQ4_1_SHIFT              (9u)
+#define INTC_ICDICFR2_IRQ5_0_SHIFT              (10u)
+#define INTC_ICDICFR2_IRQ5_1_SHIFT              (11u)
+#define INTC_ICDICFR2_IRQ6_0_SHIFT              (12u)
+#define INTC_ICDICFR2_IRQ6_1_SHIFT              (13u)
+#define INTC_ICDICFR2_IRQ7_0_SHIFT              (14u)
+#define INTC_ICDICFR2_IRQ7_1_SHIFT              (15u)
+#define INTC_ICDICFR2_PL310ERR_0_SHIFT          (16u)
+#define INTC_ICDICFR2_PL310ERR_1_SHIFT          (17u)
+#define INTC_ICDICFR2_DMAINT0_0_SHIFT           (18u)
+#define INTC_ICDICFR2_DMAINT0_1_SHIFT           (19u)
+#define INTC_ICDICFR2_DMAINT1_0_SHIFT           (20u)
+#define INTC_ICDICFR2_DMAINT1_1_SHIFT           (21u)
+#define INTC_ICDICFR2_DMAINT2_0_SHIFT           (22u)
+#define INTC_ICDICFR2_DMAINT2_1_SHIFT           (23u)
+#define INTC_ICDICFR2_DMAINT3_0_SHIFT           (24u)
+#define INTC_ICDICFR2_DMAINT3_1_SHIFT           (25u)
+#define INTC_ICDICFR2_DMAINT4_0_SHIFT           (26u)
+#define INTC_ICDICFR2_DMAINT4_1_SHIFT           (27u)
+#define INTC_ICDICFR2_DMAINT5_0_SHIFT           (28u)
+#define INTC_ICDICFR2_DMAINT5_1_SHIFT           (29u)
+#define INTC_ICDICFR2_DMAINT6_0_SHIFT           (30u)
+#define INTC_ICDICFR2_DMAINT6_1_SHIFT           (31u)
+
+#define INTC_ICDICFR3_DMAINT7_0_SHIFT           (0u)
+#define INTC_ICDICFR3_DMAINT7_1_SHIFT           (1u)
+#define INTC_ICDICFR3_DMAINT8_0_SHIFT           (2u)
+#define INTC_ICDICFR3_DMAINT8_1_SHIFT           (3u)
+#define INTC_ICDICFR3_DMAINT9_0_SHIFT           (4u)
+#define INTC_ICDICFR3_DMAINT9_1_SHIFT           (5u)
+#define INTC_ICDICFR3_DMAINT10_0_SHIFT          (6u)
+#define INTC_ICDICFR3_DMAINT10_1_SHIFT          (7u)
+#define INTC_ICDICFR3_DMAINT11_0_SHIFT          (8u)
+#define INTC_ICDICFR3_DMAINT11_1_SHIFT          (9u)
+#define INTC_ICDICFR3_DMAINT12_0_SHIFT          (10u)
+#define INTC_ICDICFR3_DMAINT12_1_SHIFT          (11u)
+#define INTC_ICDICFR3_DMAINT13_0_SHIFT          (12u)
+#define INTC_ICDICFR3_DMAINT13_1_SHIFT          (13u)
+#define INTC_ICDICFR3_DMAINT14_0_SHIFT          (14u)
+#define INTC_ICDICFR3_DMAINT14_1_SHIFT          (15u)
+#define INTC_ICDICFR3_DMAINT15_0_SHIFT          (16u)
+#define INTC_ICDICFR3_DMAINT15_1_SHIFT          (17u)
+#define INTC_ICDICFR3_DMAERR_0_SHIFT            (18u)
+#define INTC_ICDICFR3_DMAERR_1_SHIFT            (19u)
+
+#define INTC_ICDICFR4_USBI0_0_SHIFT             (18u)
+#define INTC_ICDICFR4_USBI0_1_SHIFT             (19u)
+#define INTC_ICDICFR4_USBI1_0_SHIFT             (20u)
+#define INTC_ICDICFR4_USBI1_1_SHIFT             (21u)
+#define INTC_ICDICFR4_S0_VI_VSYNC0_0_SHIFT      (22u)
+#define INTC_ICDICFR4_S0_VI_VSYNC0_1_SHIFT      (23u)
+#define INTC_ICDICFR4_S0_LO_VSYNC0_0_SHIFT      (24u)
+#define INTC_ICDICFR4_S0_LO_VSYNC0_1_SHIFT      (25u)
+#define INTC_ICDICFR4_S0_VSYNCERR0_0_SHIFT      (26u)
+#define INTC_ICDICFR4_S0_VSYNCERR0_1_SHIFT      (27u)
+#define INTC_ICDICFR4_GR3_VLINE0_0_SHIFT        (28u)
+#define INTC_ICDICFR4_GR3_VLINE0_1_SHIFT        (29u)
+#define INTC_ICDICFR4_S0_VFIELD0_0_SHIFT        (30u)
+#define INTC_ICDICFR4_S0_VFIELD0_1_SHIFT        (31u)
+
+#define INTC_ICDICFR5_IV1_VBUFERR0_0_SHIFT      (0u)
+#define INTC_ICDICFR5_IV1_VBUFERR0_1_SHIFT      (1u)
+#define INTC_ICDICFR5_IV3_VBUFERR0_0_SHIFT      (2u)
+#define INTC_ICDICFR5_IV3_VBUFERR0_1_SHIFT      (3u)
+#define INTC_ICDICFR5_IV5_VBUFERR0_0_SHIFT      (4u)
+#define INTC_ICDICFR5_IV5_VBUFERR0_1_SHIFT      (5u)
+#define INTC_ICDICFR5_IV6_VBUFERR0_0_SHIFT      (6u)
+#define INTC_ICDICFR5_IV6_VBUFERR0_1_SHIFT      (7u)
+#define INTC_ICDICFR5_S0_WLINE0_0_SHIFT         (8u)
+#define INTC_ICDICFR5_S0_WLINE0_1_SHIFT         (9u)
+#define INTC_ICDICFR5_S1_VI_VSYNC0_0_SHIFT      (10u)
+#define INTC_ICDICFR5_S1_VI_VSYNC0_1_SHIFT      (11u)
+#define INTC_ICDICFR5_S1_LO_VSYNC0_0_SHIFT      (12u)
+#define INTC_ICDICFR5_S1_LO_VSYNC0_1_SHIFT      (13u)
+#define INTC_ICDICFR5_S1_VSYNCERR0_0_SHIFT      (14u)
+#define INTC_ICDICFR5_S1_VSYNCERR0_1_SHIFT      (15u)
+#define INTC_ICDICFR5_S1_VFIELD0_0_SHIFT        (16u)
+#define INTC_ICDICFR5_S1_VFIELD0_1_SHIFT        (17u)
+#define INTC_ICDICFR5_IV2_VBUFERR0_0_SHIFT      (18u)
+#define INTC_ICDICFR5_IV2_VBUFERR0_1_SHIFT      (19u)
+#define INTC_ICDICFR5_IV4_VBUFERR0_0_SHIFT      (20u)
+#define INTC_ICDICFR5_IV4_VBUFERR0_1_SHIFT      (21u)
+#define INTC_ICDICFR5_S1_WLINE0_0_SHIFT         (22u)
+#define INTC_ICDICFR5_S1_WLINE0_1_SHIFT         (23u)
+#define INTC_ICDICFR5_OIR_VI_VSYNC0_0_SHIFT     (24u)
+#define INTC_ICDICFR5_OIR_VI_VSYNC0_1_SHIFT     (25u)
+#define INTC_ICDICFR5_OIR_LO_VSYNC0_0_SHIFT     (26u)
+#define INTC_ICDICFR5_OIR_LO_VSYNC0_1_SHIFT     (27u)
+#define INTC_ICDICFR5_OIR_VSYNCERR0_0_SHIFT     (28u)
+#define INTC_ICDICFR5_OIR_VSYNCERR0_1_SHIFT     (29u)
+#define INTC_ICDICFR5_OIR_VFIELD0_0_SHIFT       (30u)
+#define INTC_ICDICFR5_OIR_VFIELD0_1_SHIFT       (31u)
+
+#define INTC_ICDICFR6_IV7_VBUFERR0_0_SHIFT      (0u)
+#define INTC_ICDICFR6_IV7_VBUFERR0_1_SHIFT      (1u)
+#define INTC_ICDICFR6_IV8_VBUFERR0_0_SHIFT      (2u)
+#define INTC_ICDICFR6_IV8_VBUFERR0_1_SHIFT      (3u)
+#define INTC_ICDICFR6_S0_VI_VSYNC1_0_SHIFT      (6u)
+#define INTC_ICDICFR6_S0_VI_VSYNC1_1_SHIFT      (7u)
+#define INTC_ICDICFR6_S0_LO_VSYNC1_0_SHIFT      (8u)
+#define INTC_ICDICFR6_S0_LO_VSYNC1_1_SHIFT      (9u)
+#define INTC_ICDICFR6_S0_VSYNCERR1_0_SHIFT      (10u)
+#define INTC_ICDICFR6_S0_VSYNCERR1_1_SHIFT      (11u)
+#define INTC_ICDICFR6_GR3_VLINE1_0_SHIFT        (12u)
+#define INTC_ICDICFR6_GR3_VLINE1_1_SHIFT        (13u)
+#define INTC_ICDICFR6_S0_VFIELD1_0_SHIFT        (14u)
+#define INTC_ICDICFR6_S0_VFIELD1_1_SHIFT        (15u)
+#define INTC_ICDICFR6_IV1_VBUFERR1_0_SHIFT      (16u)
+#define INTC_ICDICFR6_IV1_VBUFERR1_1_SHIFT      (17u)
+#define INTC_ICDICFR6_IV3_VBUFERR1_0_SHIFT      (18u)
+#define INTC_ICDICFR6_IV3_VBUFERR1_1_SHIFT      (19u)
+#define INTC_ICDICFR6_IV5_VBUFERR1_0_SHIFT      (20u)
+#define INTC_ICDICFR6_IV5_VBUFERR1_1_SHIFT      (21u)
+#define INTC_ICDICFR6_IV6_VBUFERR1_0_SHIFT      (22u)
+#define INTC_ICDICFR6_IV6_VBUFERR1_1_SHIFT      (23u)
+#define INTC_ICDICFR6_S0_WLINE1_0_SHIFT         (24u)
+#define INTC_ICDICFR6_S0_WLINE1_1_SHIFT         (25u)
+#define INTC_ICDICFR6_S1_VI_VSYNC1_0_SHIFT      (26u)
+#define INTC_ICDICFR6_S1_VI_VSYNC1_1_SHIFT      (27u)
+#define INTC_ICDICFR6_S1_LO_VSYNC1_0_SHIFT      (28u)
+#define INTC_ICDICFR6_S1_LO_VSYNC1_1_SHIFT      (29u)
+#define INTC_ICDICFR6_S1_VSYNCERR1_0_SHIFT      (30u)
+#define INTC_ICDICFR6_S1_VSYNCERR1_1_SHIFT      (31u)
+
+#define INTC_ICDICFR7_S1_VFIELD1_0_SHIFT        (0u)
+#define INTC_ICDICFR7_S1_VFIELD1_1_SHIFT        (1u)
+#define INTC_ICDICFR7_IV2_VBUFERR1_0_SHIFT      (2u)
+#define INTC_ICDICFR7_IV2_VBUFERR1_1_SHIFT      (3u)
+#define INTC_ICDICFR7_IV4_VBUFERR1_0_SHIFT      (4u)
+#define INTC_ICDICFR7_IV4_VBUFERR1_1_SHIFT      (5u)
+#define INTC_ICDICFR7_S1_WLINE1_0_SHIFT         (6u)
+#define INTC_ICDICFR7_S1_WLINE1_1_SHIFT         (7u)
+#define INTC_ICDICFR7_OIR_VI_VSYNC1_0_SHIFT     (8u)
+#define INTC_ICDICFR7_OIR_VI_VSYNC1_1_SHIFT     (9u)
+#define INTC_ICDICFR7_OIR_LO_VSYNC1_0_SHIFT     (10u)
+#define INTC_ICDICFR7_OIR_LO_VSYNC1_1_SHIFT     (11u)
+#define INTC_ICDICFR7_OIR_VLINE1_0_SHIFT        (12u)
+#define INTC_ICDICFR7_OIR_VLINE1_1_SHIFT        (13u)
+#define INTC_ICDICFR7_OIR_VFIELD1_0_SHIFT       (14u)
+#define INTC_ICDICFR7_OIR_VFIELD1_1_SHIFT       (15u)
+#define INTC_ICDICFR7_IV7_VBUFERR1_0_SHIFT      (16u)
+#define INTC_ICDICFR7_IV7_VBUFERR1_1_SHIFT      (17u)
+#define INTC_ICDICFR7_IV8_VBUFERR1_0_SHIFT      (18u)
+#define INTC_ICDICFR7_IV8_VBUFERR1_1_SHIFT      (19u)
+#define INTC_ICDICFR7_IMRDI_0_SHIFT             (22u)
+#define INTC_ICDICFR7_IMRDI_1_SHIFT             (23u)
+#define INTC_ICDICFR7_IMR2I0_0_SHIFT            (24u)
+#define INTC_ICDICFR7_IMR2I0_1_SHIFT            (25u)
+#define INTC_ICDICFR7_IMR2I1_0_SHIFT            (26u)
+#define INTC_ICDICFR7_IMR2I1_1_SHIFT            (27u)
+#define INTC_ICDICFR7_JEDI_0_SHIFT              (28u)
+#define INTC_ICDICFR7_JEDI_1_SHIFT              (29u)
+#define INTC_ICDICFR7_JDTI_0_SHIFT              (30u)
+#define INTC_ICDICFR7_JDTI_1_SHIFT              (31u)
+
+#define INTC_ICDICFR8_CMP0_0_SHIFT              (0u)
+#define INTC_ICDICFR8_CMP0_1_SHIFT              (1u)
+#define INTC_ICDICFR8_CMP1_0_SHIFT              (2u)
+#define INTC_ICDICFR8_CMP1_1_SHIFT              (3u)
+#define INTC_ICDICFR8_INT0_0_SHIFT              (4u)
+#define INTC_ICDICFR8_INT0_1_SHIFT              (5u)
+#define INTC_ICDICFR8_INT1_0_SHIFT              (6u)
+#define INTC_ICDICFR8_INT1_1_SHIFT              (7u)
+#define INTC_ICDICFR8_INT2_0_SHIFT              (8u)
+#define INTC_ICDICFR8_INT2_1_SHIFT              (9u)
+#define INTC_ICDICFR8_INT3_0_SHIFT              (10u)
+#define INTC_ICDICFR8_INT3_1_SHIFT              (11u)
+#define INTC_ICDICFR8_OSTM0TINT_0_SHIFT         (12u)
+#define INTC_ICDICFR8_OSTM0TINT_1_SHIFT         (13u)
+#define INTC_ICDICFR8_OSTM1TINT_0_SHIFT         (14u)
+#define INTC_ICDICFR8_OSTM1TINT_1_SHIFT         (15u)
+#define INTC_ICDICFR8_CMI_0_SHIFT               (16u)
+#define INTC_ICDICFR8_CMI_1_SHIFT               (17u)
+#define INTC_ICDICFR8_WTOUT_0_SHIFT             (18u)
+#define INTC_ICDICFR8_WTOUT_1_SHIFT             (19u)
+#define INTC_ICDICFR8_ITI_0_SHIFT               (20u)
+#define INTC_ICDICFR8_ITI_1_SHIFT               (21u)
+#define INTC_ICDICFR8_TGI0A_0_SHIFT             (22u)
+#define INTC_ICDICFR8_TGI0A_1_SHIFT             (23u)
+#define INTC_ICDICFR8_TGI0B_0_SHIFT             (24u)
+#define INTC_ICDICFR8_TGI0B_1_SHIFT             (25u)
+#define INTC_ICDICFR8_TGI0C_0_SHIFT             (26u)
+#define INTC_ICDICFR8_TGI0C_1_SHIFT             (27u)
+#define INTC_ICDICFR8_TGI0D_0_SHIFT             (28u)
+#define INTC_ICDICFR8_TGI0D_1_SHIFT             (29u)
+#define INTC_ICDICFR8_TGI0V_0_SHIFT             (30u)
+#define INTC_ICDICFR8_TGI0V_1_SHIFT             (31u)
+
+#define INTC_ICDICFR9_TGI0E_0_SHIFT             (0u)
+#define INTC_ICDICFR9_TGI0E_1_SHIFT             (1u)
+#define INTC_ICDICFR9_TGI0F_0_SHIFT             (2u)
+#define INTC_ICDICFR9_TGI0F_1_SHIFT             (3u)
+#define INTC_ICDICFR9_TGI1A_0_SHIFT             (4u)
+#define INTC_ICDICFR9_TGI1A_1_SHIFT             (5u)
+#define INTC_ICDICFR9_TGI1B_0_SHIFT             (6u)
+#define INTC_ICDICFR9_TGI1B_1_SHIFT             (7u)
+#define INTC_ICDICFR9_TGI1V_0_SHIFT             (8u)
+#define INTC_ICDICFR9_TGI1V_1_SHIFT             (9u)
+#define INTC_ICDICFR9_TGI1U_0_SHIFT             (10u)
+#define INTC_ICDICFR9_TGI1U_1_SHIFT             (11u)
+#define INTC_ICDICFR9_TGI2A_0_SHIFT             (12u)
+#define INTC_ICDICFR9_TGI2A_1_SHIFT             (13u)
+#define INTC_ICDICFR9_TGI2B_0_SHIFT             (14u)
+#define INTC_ICDICFR9_TGI2B_1_SHIFT             (15u)
+#define INTC_ICDICFR9_TGI2V_0_SHIFT             (16u)
+#define INTC_ICDICFR9_TGI2V_1_SHIFT             (17u)
+#define INTC_ICDICFR9_TGI2U_0_SHIFT             (18u)
+#define INTC_ICDICFR9_TGI2U_1_SHIFT             (19u)
+#define INTC_ICDICFR9_TGI3A_0_SHIFT             (20u)
+#define INTC_ICDICFR9_TGI3A_1_SHIFT             (21u)
+#define INTC_ICDICFR9_TGI3B_0_SHIFT             (22u)
+#define INTC_ICDICFR9_TGI3B_1_SHIFT             (23u)
+#define INTC_ICDICFR9_TGI3C_0_SHIFT             (24u)
+#define INTC_ICDICFR9_TGI3C_1_SHIFT             (25u)
+#define INTC_ICDICFR9_TGI3D_0_SHIFT             (26u)
+#define INTC_ICDICFR9_TGI3D_1_SHIFT             (27u)
+#define INTC_ICDICFR9_TGI3V_0_SHIFT             (28u)
+#define INTC_ICDICFR9_TGI3V_1_SHIFT             (29u)
+#define INTC_ICDICFR9_TGI4A_0_SHIFT             (30u)
+#define INTC_ICDICFR9_TGI4A_1_SHIFT             (31u)
+
+#define INTC_ICDICFR10_TGI4B_0_SHIFT            (0u)
+#define INTC_ICDICFR10_TGI4B_1_SHIFT            (1u)
+#define INTC_ICDICFR10_TGI4C_0_SHIFT            (2u)
+#define INTC_ICDICFR10_TGI4C_1_SHIFT            (3u)
+#define INTC_ICDICFR10_TGI4D_0_SHIFT            (4u)
+#define INTC_ICDICFR10_TGI4D_1_SHIFT            (5u)
+#define INTC_ICDICFR10_TGI4V_0_SHIFT            (6u)
+#define INTC_ICDICFR10_TGI4V_1_SHIFT            (7u)
+#define INTC_ICDICFR10_CMI1_0_SHIFT             (8u)
+#define INTC_ICDICFR10_CMI1_1_SHIFT             (9u)
+#define INTC_ICDICFR10_CMI2_0_SHIFT             (10u)
+#define INTC_ICDICFR10_CMI2_1_SHIFT             (11u)
+#define INTC_ICDICFR10_SGDEI0_0_SHIFT           (12u)
+#define INTC_ICDICFR10_SGDEI0_1_SHIFT           (13u)
+#define INTC_ICDICFR10_SGDEI1_0_SHIFT           (14u)
+#define INTC_ICDICFR10_SGDEI1_1_SHIFT           (15u)
+#define INTC_ICDICFR10_SGDEI2_0_SHIFT           (16u)
+#define INTC_ICDICFR10_SGDEI2_1_SHIFT           (17u)
+#define INTC_ICDICFR10_SGDEI3_0_SHIFT           (18u)
+#define INTC_ICDICFR10_SGDEI3_1_SHIFT           (19u)
+#define INTC_ICDICFR10_ADI_0_SHIFT              (20u)
+#define INTC_ICDICFR10_ADI_1_SHIFT              (21u)
+#define INTC_ICDICFR10_LMTI_0_SHIFT             (22u)
+#define INTC_ICDICFR10_LMTI_1_SHIFT             (23u)
+#define INTC_ICDICFR10_SSII0_0_SHIFT            (24u)
+#define INTC_ICDICFR10_SSII0_1_SHIFT            (25u)
+#define INTC_ICDICFR10_SSIRXI0_0_SHIFT          (26u)
+#define INTC_ICDICFR10_SSIRXI0_1_SHIFT          (27u)
+#define INTC_ICDICFR10_SSITXI0_0_SHIFT          (28u)
+#define INTC_ICDICFR10_SSITXI0_1_SHIFT          (29u)
+#define INTC_ICDICFR10_SSII1_0_SHIFT            (30u)
+#define INTC_ICDICFR10_SSII1_1_SHIFT            (31u)
+
+#define INTC_ICDICFR11_SSIRXI1_0_SHIFT          (0u)
+#define INTC_ICDICFR11_SSIRXI1_1_SHIFT          (1u)
+#define INTC_ICDICFR11_SSITXI1_0_SHIFT          (2u)
+#define INTC_ICDICFR11_SSITXI1_1_SHIFT          (3u)
+#define INTC_ICDICFR11_SSII2_0_SHIFT            (4u)
+#define INTC_ICDICFR11_SSII2_1_SHIFT            (5u)
+#define INTC_ICDICFR11_SSIRTI2_0_SHIFT          (6u)
+#define INTC_ICDICFR11_SSIRTI2_1_SHIFT          (7u)
+#define INTC_ICDICFR11_SSII3_0_SHIFT            (8u)
+#define INTC_ICDICFR11_SSII3_1_SHIFT            (9u)
+#define INTC_ICDICFR11_SSIRXI3_0_SHIFT          (10u)
+#define INTC_ICDICFR11_SSIRXI3_1_SHIFT          (11u)
+#define INTC_ICDICFR11_SSITXI3_0_SHIFT          (12u)
+#define INTC_ICDICFR11_SSITXI3_1_SHIFT          (13u)
+#define INTC_ICDICFR11_SSII4_0_SHIFT            (14u)
+#define INTC_ICDICFR11_SSII4_1_SHIFT            (15u)
+#define INTC_ICDICFR11_SSIRTI4_0_SHIFT          (16u)
+#define INTC_ICDICFR11_SSIRTI4_1_SHIFT          (17u)
+#define INTC_ICDICFR11_SSII5_0_SHIFT            (18u)
+#define INTC_ICDICFR11_SSII5_1_SHIFT            (19u)
+#define INTC_ICDICFR11_SSIRXI5_0_SHIFT          (20u)
+#define INTC_ICDICFR11_SSIRXI5_1_SHIFT          (21u)
+#define INTC_ICDICFR11_SSITXI5_0_SHIFT          (22u)
+#define INTC_ICDICFR11_SSITXI5_1_SHIFT          (23u)
+#define INTC_ICDICFR11_SPDIFI_0_SHIFT           (24u)
+#define INTC_ICDICFR11_SPDIFI_1_SHIFT           (25u)
+#define INTC_ICDICFR11_INTIICTEI0_0_SHIFT       (26u)
+#define INTC_ICDICFR11_INTIICTEI0_1_SHIFT       (27u)
+#define INTC_ICDICFR11_INTIICRI0_0_SHIFT        (28u)
+#define INTC_ICDICFR11_INTIICRI0_1_SHIFT        (29u)
+#define INTC_ICDICFR11_INTIICTI0_0_SHIFT        (30u)
+#define INTC_ICDICFR11_INTIICTI0_1_SHIFT        (31u)
+
+#define INTC_ICDICFR12_INTIICSPI0_0_SHIFT       (0u)
+#define INTC_ICDICFR12_INTIICSPI0_1_SHIFT       (1u)
+#define INTC_ICDICFR12_INTIICSTI0_0_SHIFT       (2u)
+#define INTC_ICDICFR12_INTIICSTI0_1_SHIFT       (3u)
+#define INTC_ICDICFR12_INTIICNAKI0_0_SHIFT      (4u)
+#define INTC_ICDICFR12_INTIICNAKI0_1_SHIFT      (5u)
+#define INTC_ICDICFR12_INTIICALI0_0_SHIFT       (6u)
+#define INTC_ICDICFR12_INTIICALI0_1_SHIFT       (7u)
+#define INTC_ICDICFR12_INTIICTMOI0_0_SHIFT      (8u)
+#define INTC_ICDICFR12_INTIICTMOI0_1_SHIFT      (9u)
+#define INTC_ICDICFR12_INTIICTEI1_0_SHIFT       (10u)
+#define INTC_ICDICFR12_INTIICTEI1_1_SHIFT       (11u)
+#define INTC_ICDICFR12_INTIICRI1_0_SHIFT        (12u)
+#define INTC_ICDICFR12_INTIICRI1_1_SHIFT        (13u)
+#define INTC_ICDICFR12_INTIICTI1_0_SHIFT        (14u)
+#define INTC_ICDICFR12_INTIICTI1_1_SHIFT        (15u)
+#define INTC_ICDICFR12_INTIICSPI1_0_SHIFT       (16u)
+#define INTC_ICDICFR12_INTIICSPI1_1_SHIFT       (17u)
+#define INTC_ICDICFR12_INTIICSTI1_0_SHIFT       (18u)
+#define INTC_ICDICFR12_INTIICSTI1_1_SHIFT       (19u)
+#define INTC_ICDICFR12_INTIICNAKI1_0_SHIFT      (20u)
+#define INTC_ICDICFR12_INTIICNAKI1_1_SHIFT      (21u)
+#define INTC_ICDICFR12_INTIICALI1_0_SHIFT       (22u)
+#define INTC_ICDICFR12_INTIICALI1_1_SHIFT       (23u)
+#define INTC_ICDICFR12_INTIICTMOI1_0_SHIFT      (24u)
+#define INTC_ICDICFR12_INTIICTMOI1_1_SHIFT      (25u)
+#define INTC_ICDICFR12_INTIICTEI2_0_SHIFT       (26u)
+#define INTC_ICDICFR12_INTIICTEI2_1_SHIFT       (27u)
+#define INTC_ICDICFR12_INTIICRI2_0_SHIFT        (28u)
+#define INTC_ICDICFR12_INTIICRI2_1_SHIFT        (29u)
+#define INTC_ICDICFR12_INTIICTI2_0_SHIFT        (30u)
+#define INTC_ICDICFR12_INTIICTI2_1_SHIFT        (31u)
+
+#define INTC_ICDICFR13_INTIICSPI2_0_SHIFT       (0u)
+#define INTC_ICDICFR13_INTIICSPI2_1_SHIFT       (1u)
+#define INTC_ICDICFR13_INTIICSTI2_0_SHIFT       (2u)
+#define INTC_ICDICFR13_INTIICSTI2_1_SHIFT       (3u)
+#define INTC_ICDICFR13_INTIICNAKI2_0_SHIFT      (4u)
+#define INTC_ICDICFR13_INTIICNAKI2_1_SHIFT      (5u)
+#define INTC_ICDICFR13_INTIICALI2_0_SHIFT       (6u)
+#define INTC_ICDICFR13_INTIICALI2_1_SHIFT       (7u)
+#define INTC_ICDICFR13_INTIICTMOI2_0_SHIFT      (8u)
+#define INTC_ICDICFR13_INTIICTMOI2_1_SHIFT      (9u)
+#define INTC_ICDICFR13_INTIICTEI3_0_SHIFT       (10u)
+#define INTC_ICDICFR13_INTIICTEI3_1_SHIFT       (11u)
+#define INTC_ICDICFR13_INTIICRI3_0_SHIFT        (12u)
+#define INTC_ICDICFR13_INTIICRI3_1_SHIFT        (13u)
+#define INTC_ICDICFR13_INTIICTI3_0_SHIFT        (14u)
+#define INTC_ICDICFR13_INTIICTI3_1_SHIFT        (15u)
+#define INTC_ICDICFR13_INTIICSPI3_0_SHIFT       (16u)
+#define INTC_ICDICFR13_INTIICSPI3_1_SHIFT       (17u)
+#define INTC_ICDICFR13_INTIICSTI3_0_SHIFT       (18u)
+#define INTC_ICDICFR13_INTIICSTI3_1_SHIFT       (19u)
+#define INTC_ICDICFR13_INTIICNAKI3_0_SHIFT      (20u)
+#define INTC_ICDICFR13_INTIICNAKI3_1_SHIFT      (21u)
+#define INTC_ICDICFR13_INTIICALI3_0_SHIFT       (22u)
+#define INTC_ICDICFR13_INTIICALI3_1_SHIFT       (23u)
+#define INTC_ICDICFR13_INTIICTMOI3_0_SHIFT      (24u)
+#define INTC_ICDICFR13_INTIICTMOI3_1_SHIFT      (25u)
+#define INTC_ICDICFR13_BRI0_0_SHIFT             (26u)
+#define INTC_ICDICFR13_BRI0_1_SHIFT             (27u)
+#define INTC_ICDICFR13_ERI0_0_SHIFT             (28u)
+#define INTC_ICDICFR13_ERI0_1_SHIFT             (29u)
+#define INTC_ICDICFR13_RXI0_0_SHIFT             (30u)
+#define INTC_ICDICFR13_RXI0_1_SHIFT             (31u)
+
+#define INTC_ICDICFR14_TXI0_0_SHIFT             (0u)
+#define INTC_ICDICFR14_TXI0_1_SHIFT             (1u)
+#define INTC_ICDICFR14_BRI1_0_SHIFT             (2u)
+#define INTC_ICDICFR14_BRI1_1_SHIFT             (3u)
+#define INTC_ICDICFR14_ERI1_0_SHIFT             (4u)
+#define INTC_ICDICFR14_ERI1_1_SHIFT             (5u)
+#define INTC_ICDICFR14_RXI1_0_SHIFT             (6u)
+#define INTC_ICDICFR14_RXI1_1_SHIFT             (7u)
+#define INTC_ICDICFR14_TXI1_0_SHIFT             (8u)
+#define INTC_ICDICFR14_TXI1_1_SHIFT             (9u)
+#define INTC_ICDICFR14_BRI2_0_SHIFT             (10u)
+#define INTC_ICDICFR14_BRI2_1_SHIFT             (11u)
+#define INTC_ICDICFR14_ERI2_0_SHIFT             (12u)
+#define INTC_ICDICFR14_ERI2_1_SHIFT             (13u)
+#define INTC_ICDICFR14_RXI2_0_SHIFT             (14u)
+#define INTC_ICDICFR14_RXI2_1_SHIFT             (15u)
+#define INTC_ICDICFR14_TXI2_0_SHIFT             (16u)
+#define INTC_ICDICFR14_TXI2_1_SHIFT             (17u)
+#define INTC_ICDICFR14_BRI3_0_SHIFT             (18u)
+#define INTC_ICDICFR14_BRI3_1_SHIFT             (19u)
+#define INTC_ICDICFR14_ERI3_0_SHIFT             (20u)
+#define INTC_ICDICFR14_ERI3_1_SHIFT             (21u)
+#define INTC_ICDICFR14_RXI3_0_SHIFT             (22u)
+#define INTC_ICDICFR14_RXI3_1_SHIFT             (23u)
+#define INTC_ICDICFR14_TXI3_0_SHIFT             (24u)
+#define INTC_ICDICFR14_TXI3_1_SHIFT             (25u)
+#define INTC_ICDICFR14_BRI4_0_SHIFT             (26u)
+#define INTC_ICDICFR14_BRI4_1_SHIFT             (27u)
+#define INTC_ICDICFR14_ERI4_0_SHIFT             (28u)
+#define INTC_ICDICFR14_ERI4_1_SHIFT             (29u)
+#define INTC_ICDICFR14_RXI4_0_SHIFT             (30u)
+#define INTC_ICDICFR14_RXI4_1_SHIFT             (31u)
+
+#define INTC_ICDICFR15_TXI4_0_SHIFT             (0u)
+#define INTC_ICDICFR15_TXI4_1_SHIFT             (1u)
+#define INTC_ICDICFR15_BRI5_0_SHIFT             (2u)
+#define INTC_ICDICFR15_BRI5_1_SHIFT             (3u)
+#define INTC_ICDICFR15_ERI5_0_SHIFT             (4u)
+#define INTC_ICDICFR15_ERI5_1_SHIFT             (5u)
+#define INTC_ICDICFR15_RXI5_0_SHIFT             (6u)
+#define INTC_ICDICFR15_RXI5_1_SHIFT             (7u)
+#define INTC_ICDICFR15_TXI5_0_SHIFT             (8u)
+#define INTC_ICDICFR15_TXI5_1_SHIFT             (9u)
+#define INTC_ICDICFR15_BRI6_0_SHIFT             (10u)
+#define INTC_ICDICFR15_BRI6_1_SHIFT             (11u)
+#define INTC_ICDICFR15_ERI6_0_SHIFT             (12u)
+#define INTC_ICDICFR15_ERI6_1_SHIFT             (13u)
+#define INTC_ICDICFR15_RXI6_0_SHIFT             (14u)
+#define INTC_ICDICFR15_RXI6_1_SHIFT             (15u)
+#define INTC_ICDICFR15_TXI6_0_SHIFT             (16u)
+#define INTC_ICDICFR15_TXI6_1_SHIFT             (17u)
+#define INTC_ICDICFR15_BRI7_0_SHIFT             (18u)
+#define INTC_ICDICFR15_BRI7_1_SHIFT             (19u)
+#define INTC_ICDICFR15_ERI7_0_SHIFT             (20u)
+#define INTC_ICDICFR15_ERI7_1_SHIFT             (21u)
+#define INTC_ICDICFR15_RXI7_0_SHIFT             (22u)
+#define INTC_ICDICFR15_RXI7_1_SHIFT             (23u)
+#define INTC_ICDICFR15_TXI7_0_SHIFT             (24u)
+#define INTC_ICDICFR15_TXI7_1_SHIFT             (25u)
+#define INTC_ICDICFR15_INTRCANGERR_0_SHIFT      (26u)
+#define INTC_ICDICFR15_INTRCANGERR_1_SHIFT      (27u)
+#define INTC_ICDICFR15_INTRCANGRECC_0_SHIFT     (28u)
+#define INTC_ICDICFR15_INTRCANGRECC_1_SHIFT     (29u)
+#define INTC_ICDICFR15_INTRCAN0REC_0_SHIFT      (30u)
+#define INTC_ICDICFR15_INTRCAN0REC_1_SHIFT      (31u)
+
+#define INTC_ICDICFR16_INTRCAN0ERR_0_SHIFT      (0u)
+#define INTC_ICDICFR16_INTRCAN0ERR_1_SHIFT      (1u)
+#define INTC_ICDICFR16_INTRCAN0TRX_0_SHIFT      (2u)
+#define INTC_ICDICFR16_INTRCAN0TRX_1_SHIFT      (3u)
+#define INTC_ICDICFR16_INTRCAN1REC_0_SHIFT      (4u)
+#define INTC_ICDICFR16_INTRCAN1REC_1_SHIFT      (5u)
+#define INTC_ICDICFR16_INTRCAN1ERR_0_SHIFT      (6u)
+#define INTC_ICDICFR16_INTRCAN1ERR_1_SHIFT      (7u)
+#define INTC_ICDICFR16_INTRCAN1TRX_0_SHIFT      (8u)
+#define INTC_ICDICFR16_INTRCAN1TRX_1_SHIFT      (9u)
+#define INTC_ICDICFR16_INTRCAN2REC_0_SHIFT      (10u)
+#define INTC_ICDICFR16_INTRCAN2REC_1_SHIFT      (11u)
+#define INTC_ICDICFR16_INTRCAN2ERR_0_SHIFT      (12u)
+#define INTC_ICDICFR16_INTRCAN2ERR_1_SHIFT      (13u)
+#define INTC_ICDICFR16_INTRCAN2TRX_0_SHIFT      (14u)
+#define INTC_ICDICFR16_INTRCAN2TRX_1_SHIFT      (15u)
+#define INTC_ICDICFR16_INTRCAN3REC_0_SHIFT      (16u)
+#define INTC_ICDICFR16_INTRCAN3REC_1_SHIFT      (17u)
+#define INTC_ICDICFR16_INTRCAN3ERR_0_SHIFT      (18u)
+#define INTC_ICDICFR16_INTRCAN3ERR_1_SHIFT      (19u)
+#define INTC_ICDICFR16_INTRCAN3TRX_0_SHIFT      (20u)
+#define INTC_ICDICFR16_INTRCAN3TRX_1_SHIFT      (21u)
+#define INTC_ICDICFR16_INTRCAN4REC_0_SHIFT      (22u)
+#define INTC_ICDICFR16_INTRCAN4REC_1_SHIFT      (23u)
+#define INTC_ICDICFR16_INTRCAN4ERR_0_SHIFT      (24u)
+#define INTC_ICDICFR16_INTRCAN4ERR_1_SHIFT      (25u)
+#define INTC_ICDICFR16_INTRCAN4TRX_0_SHIFT      (26u)
+#define INTC_ICDICFR16_INTRCAN4TRX_1_SHIFT      (27u)
+#define INTC_ICDICFR16_SPEI0_0_SHIFT            (28u)
+#define INTC_ICDICFR16_SPEI0_1_SHIFT            (29u)
+#define INTC_ICDICFR16_SPRI0_0_SHIFT            (30u)
+#define INTC_ICDICFR16_SPRI0_1_SHIFT            (31u)
+
+#define INTC_ICDICFR17_SPTI0_0_SHIFT            (0u)
+#define INTC_ICDICFR17_SPTI0_1_SHIFT            (1u)
+#define INTC_ICDICFR17_SPEI1_0_SHIFT            (2u)
+#define INTC_ICDICFR17_SPEI1_1_SHIFT            (3u)
+#define INTC_ICDICFR17_SPRI1_0_SHIFT            (4u)
+#define INTC_ICDICFR17_SPRI1_1_SHIFT            (5u)
+#define INTC_ICDICFR17_SPTI1_0_SHIFT            (6u)
+#define INTC_ICDICFR17_SPTI1_1_SHIFT            (7u)
+#define INTC_ICDICFR17_SPEI2_0_SHIFT            (8u)
+#define INTC_ICDICFR17_SPEI2_1_SHIFT            (9u)
+#define INTC_ICDICFR17_SPRI2_0_SHIFT            (10u)
+#define INTC_ICDICFR17_SPRI2_1_SHIFT            (11u)
+#define INTC_ICDICFR17_SPTI2_0_SHIFT            (12u)
+#define INTC_ICDICFR17_SPTI2_1_SHIFT            (13u)
+#define INTC_ICDICFR17_SPEI3_0_SHIFT            (14u)
+#define INTC_ICDICFR17_SPEI3_1_SHIFT            (15u)
+#define INTC_ICDICFR17_SPRI3_0_SHIFT            (16u)
+#define INTC_ICDICFR17_SPRI3_1_SHIFT            (17u)
+#define INTC_ICDICFR17_SPTI3_0_SHIFT            (18u)
+#define INTC_ICDICFR17_SPTI3_1_SHIFT            (19u)
+#define INTC_ICDICFR17_SPEI4_0_SHIFT            (20u)
+#define INTC_ICDICFR17_SPEI4_1_SHIFT            (21u)
+#define INTC_ICDICFR17_SPRI4_0_SHIFT            (22u)
+#define INTC_ICDICFR17_SPRI4_1_SHIFT            (23u)
+#define INTC_ICDICFR17_SPTI4_0_SHIFT            (24u)
+#define INTC_ICDICFR17_SPTI4_1_SHIFT            (25u)
+#define INTC_ICDICFR17_IEBBTD_0_SHIFT           (26u)
+#define INTC_ICDICFR17_IEBBTD_1_SHIFT           (27u)
+#define INTC_ICDICFR17_IEBBTERR_0_SHIFT         (28u)
+#define INTC_ICDICFR17_IEBBTERR_1_SHIFT         (29u)
+#define INTC_ICDICFR17_IEBBTSTA_0_SHIFT         (30u)
+#define INTC_ICDICFR17_IEBBTSTA_1_SHIFT         (31u)
+
+#define INTC_ICDICFR18_IEBBTV_0_SHIFT           (0u)
+#define INTC_ICDICFR18_IEBBTV_1_SHIFT           (1u)
+#define INTC_ICDICFR18_ISY_0_SHIFT              (2u)
+#define INTC_ICDICFR18_ISY_1_SHIFT              (3u)
+#define INTC_ICDICFR18_IERR_0_SHIFT             (4u)
+#define INTC_ICDICFR18_IERR_1_SHIFT             (5u)
+#define INTC_ICDICFR18_ITARG_0_SHIFT            (6u)
+#define INTC_ICDICFR18_ITARG_1_SHIFT            (7u)
+#define INTC_ICDICFR18_ISEC_0_SHIFT             (8u)
+#define INTC_ICDICFR18_ISEC_1_SHIFT             (9u)
+#define INTC_ICDICFR18_IBUF_0_SHIFT             (10u)
+#define INTC_ICDICFR18_IBUF_1_SHIFT             (11u)
+#define INTC_ICDICFR18_IREADY_0_SHIFT           (12u)
+#define INTC_ICDICFR18_IREADY_1_SHIFT           (13u)
+#define INTC_ICDICFR18_FLSTE_0_SHIFT            (14u)
+#define INTC_ICDICFR18_FLSTE_1_SHIFT            (15u)
+#define INTC_ICDICFR18_FLTENDI_0_SHIFT          (16u)
+#define INTC_ICDICFR18_FLTENDI_1_SHIFT          (17u)
+#define INTC_ICDICFR18_FLTREQ0I_0_SHIFT         (18u)
+#define INTC_ICDICFR18_FLTREQ0I_1_SHIFT         (19u)
+#define INTC_ICDICFR18_FLTREQ1I_0_SHIFT         (20u)
+#define INTC_ICDICFR18_FLTREQ1I_1_SHIFT         (21u)
+#define INTC_ICDICFR18_MMC0_0_SHIFT             (22u)
+#define INTC_ICDICFR18_MMC0_1_SHIFT             (23u)
+#define INTC_ICDICFR18_MMC1_0_SHIFT             (24u)
+#define INTC_ICDICFR18_MMC1_1_SHIFT             (25u)
+#define INTC_ICDICFR18_MMC2_0_SHIFT             (26u)
+#define INTC_ICDICFR18_MMC2_1_SHIFT             (27u)
+#define INTC_ICDICFR18_SDHI0_3_0_SHIFT          (28u)
+#define INTC_ICDICFR18_SDHI0_3_1_SHIFT          (29u)
+#define INTC_ICDICFR18_SDHI0_0_0_SHIFT          (30u)
+#define INTC_ICDICFR18_SDHI0_0_1_SHIFT          (31u)
+
+#define INTC_ICDICFR19_SDHI0_1_0_SHIFT          (0u)
+#define INTC_ICDICFR19_SDHI0_1_1_SHIFT          (1u)
+#define INTC_ICDICFR19_SDHI1_3_0_SHIFT          (2u)
+#define INTC_ICDICFR19_SDHI1_3_1_SHIFT          (3u)
+#define INTC_ICDICFR19_SDHI1_0_0_SHIFT          (4u)
+#define INTC_ICDICFR19_SDHI1_0_1_SHIFT          (5u)
+#define INTC_ICDICFR19_SDHI1_1_0_SHIFT          (6u)
+#define INTC_ICDICFR19_SDHI1_1_1_SHIFT          (7u)
+#define INTC_ICDICFR19_ARM_0_SHIFT              (8u)
+#define INTC_ICDICFR19_ARM_1_SHIFT              (9u)
+#define INTC_ICDICFR19_PRD_0_SHIFT              (10u)
+#define INTC_ICDICFR19_PRD_1_SHIFT              (11u)
+#define INTC_ICDICFR19_CUP_0_SHIFT              (12u)
+#define INTC_ICDICFR19_CUP_1_SHIFT              (13u)
+#define INTC_ICDICFR19_SCUAI0_0_SHIFT           (14u)
+#define INTC_ICDICFR19_SCUAI0_1_SHIFT           (15u)
+#define INTC_ICDICFR19_SCUAI1_0_SHIFT           (16u)
+#define INTC_ICDICFR19_SCUAI1_1_SHIFT           (17u)
+#define INTC_ICDICFR19_SCUFDI0_0_SHIFT          (18u)
+#define INTC_ICDICFR19_SCUFDI0_1_SHIFT          (19u)
+#define INTC_ICDICFR19_SCUFDI1_0_SHIFT          (20u)
+#define INTC_ICDICFR19_SCUFDI1_1_SHIFT          (21u)
+#define INTC_ICDICFR19_SCUFDI2_0_SHIFT          (22u)
+#define INTC_ICDICFR19_SCUFDI2_1_SHIFT          (23u)
+#define INTC_ICDICFR19_SCUFDI3_0_SHIFT          (24u)
+#define INTC_ICDICFR19_SCUFDI3_1_SHIFT          (25u)
+#define INTC_ICDICFR19_SCUFUI0_0_SHIFT          (26u)
+#define INTC_ICDICFR19_SCUFUI0_1_SHIFT          (27u)
+#define INTC_ICDICFR19_SCUFUI1_0_SHIFT          (28u)
+#define INTC_ICDICFR19_SCUFUI1_1_SHIFT          (29u)
+#define INTC_ICDICFR19_SCUFUI2_0_SHIFT          (30u)
+#define INTC_ICDICFR19_SCUFUI2_1_SHIFT          (31u)
+
+#define INTC_ICDICFR20_SCUFUI3_0_SHIFT          (0u)
+#define INTC_ICDICFR20_SCUFUI3_1_SHIFT          (1u)
+#define INTC_ICDICFR20_SCUDVI0_0_SHIFT          (2u)
+#define INTC_ICDICFR20_SCUDVI0_1_SHIFT          (3u)
+#define INTC_ICDICFR20_SCUDVI1_0_SHIFT          (4u)
+#define INTC_ICDICFR20_SCUDVI1_1_SHIFT          (5u)
+#define INTC_ICDICFR20_SCUDVI2_0_SHIFT          (6u)
+#define INTC_ICDICFR20_SCUDVI2_1_SHIFT          (7u)
+#define INTC_ICDICFR20_SCUDVI3_0_SHIFT          (8u)
+#define INTC_ICDICFR20_SCUDVI3_1_SHIFT          (9u)
+#define INTC_ICDICFR20_MLB_CINT_0_SHIFT         (10u)
+#define INTC_ICDICFR20_MLB_CINT_1_SHIFT         (11u)
+#define INTC_ICDICFR20_MLB_SINT_0_SHIFT         (12u)
+#define INTC_ICDICFR20_MLB_SINT_1_SHIFT         (13u)
+#define INTC_ICDICFR20_DRC0_0_SHIFT             (14u)
+#define INTC_ICDICFR20_DRC0_1_SHIFT             (15u)
+#define INTC_ICDICFR20_DRC1_0_SHIFT             (16u)
+#define INTC_ICDICFR20_DRC1_1_SHIFT             (17u)
+#define INTC_ICDICFR20_LINI0_INT_T_0_SHIFT      (22u)
+#define INTC_ICDICFR20_LINI0_INT_T_1_SHIFT      (23u)
+#define INTC_ICDICFR20_LINI0_INT_R_0_SHIFT      (24u)
+#define INTC_ICDICFR20_LINI0_INT_R_1_SHIFT      (25u)
+#define INTC_ICDICFR20_LINI0_INT_S_0_SHIFT      (26u)
+#define INTC_ICDICFR20_LINI0_INT_S_1_SHIFT      (27u)
+#define INTC_ICDICFR20_LINI0_INT_M_0_SHIFT      (28u)
+#define INTC_ICDICFR20_LINI0_INT_M_1_SHIFT      (29u)
+#define INTC_ICDICFR20_LINI1_INT_T_0_SHIFT      (30u)
+#define INTC_ICDICFR20_LINI1_INT_T_1_SHIFT      (31u)
+
+#define INTC_ICDICFR21_LINI1_INT_R_0_SHIFT      (0u)
+#define INTC_ICDICFR21_LINI1_INT_R_1_SHIFT      (1u)
+#define INTC_ICDICFR21_LINI1_INT_S_0_SHIFT      (2u)
+#define INTC_ICDICFR21_LINI1_INT_S_1_SHIFT      (3u)
+#define INTC_ICDICFR21_LINI1_INT_M_0_SHIFT      (4u)
+#define INTC_ICDICFR21_LINI1_INT_M_1_SHIFT      (5u)
+#define INTC_ICDICFR21_ERI0_0_SHIFT             (22u)
+#define INTC_ICDICFR21_ERI0_1_SHIFT             (23u)
+#define INTC_ICDICFR21_RXI0_0_SHIFT             (24u)
+#define INTC_ICDICFR21_RXI0_1_SHIFT             (25u)
+#define INTC_ICDICFR21_TXI0_0_SHIFT             (26u)
+#define INTC_ICDICFR21_TXI0_1_SHIFT             (27u)
+#define INTC_ICDICFR21_TEI0_0_SHIFT             (28u)
+#define INTC_ICDICFR21_TEI0_1_SHIFT             (29u)
+#define INTC_ICDICFR21_ERI1_0_SHIFT             (30u)
+#define INTC_ICDICFR21_ERI1_1_SHIFT             (31u)
+
+#define INTC_ICDICFR22_RXI1_0_SHIFT             (0u)
+#define INTC_ICDICFR22_RXI1_1_SHIFT             (1u)
+#define INTC_ICDICFR22_TXI1_0_SHIFT             (2u)
+#define INTC_ICDICFR22_TXI1_1_SHIFT             (3u)
+#define INTC_ICDICFR22_TEI1_0_SHIFT             (4u)
+#define INTC_ICDICFR22_TEI1_1_SHIFT             (5u)
+#define INTC_ICDICFR22_AVBI_DATA_0_SHIFT        (6u)
+#define INTC_ICDICFR22_AVBI_DATA_1_SHIFT        (7u)
+#define INTC_ICDICFR22_AVBI_ERROR_0_SHIFT       (8u)
+#define INTC_ICDICFR22_AVBI_ERROR_1_SHIFT       (9u)
+#define INTC_ICDICFR22_AVBI_MANAGE_0_SHIFT      (10u)
+#define INTC_ICDICFR22_AVBI_MANAGE_1_SHIFT      (11u)
+#define INTC_ICDICFR22_AVBI_MAC_0_SHIFT         (12u)
+#define INTC_ICDICFR22_AVBI_MAC_1_SHIFT         (13u)
+#define INTC_ICDICFR22_ETHERI_0_SHIFT           (14u)
+#define INTC_ICDICFR22_ETHERI_1_SHIFT           (15u)
+#define INTC_ICDICFR22_CEUI_0_SHIFT             (24u)
+#define INTC_ICDICFR22_CEUI_1_SHIFT             (25u)
+
+#define INTC_ICDICFR23_H2XMLB_ERRINT_0_SHIFT    (26u)
+#define INTC_ICDICFR23_H2XMLB_ERRINT_1_SHIFT    (27u)
+#define INTC_ICDICFR23_H2XIC1_ERRINT_0_SHIFT    (28u)
+#define INTC_ICDICFR23_H2XIC1_ERRINT_1_SHIFT    (29u)
+#define INTC_ICDICFR23_X2HPERI1_ERRINT_0_SHIFT  (30u)
+#define INTC_ICDICFR23_X2HPERI1_ERRINT_1_SHIFT  (31u)
+
+#define INTC_ICDICFR24_X2HPERI2_ERRINT_0_SHIFT  (0u)
+#define INTC_ICDICFR24_X2HPERI2_ERRINT_1_SHIFT  (1u)
+#define INTC_ICDICFR24_X2HPERI34_ERRINT_0_SHIFT (2u)
+#define INTC_ICDICFR24_X2HPERI34_ERRINT_1_SHIFT (3u)
+#define INTC_ICDICFR24_X2HPERI5_ERRINT_0_SHIFT  (4u)
+#define INTC_ICDICFR24_X2HPERI5_ERRINT_1_SHIFT  (5u)
+#define INTC_ICDICFR24_X2HPERI67_ERRINT_0_SHIFT (6u)
+#define INTC_ICDICFR24_X2HPERI67_ERRINT_1_SHIFT (7u)
+#define INTC_ICDICFR24_X2HDBGR_ERRINT_0_SHIFT   (8u)
+#define INTC_ICDICFR24_X2HDBGR_ERRINT_1_SHIFT   (9u)
+#define INTC_ICDICFR24_X2HBSC_ERRINT_0_SHIFT    (10u)
+#define INTC_ICDICFR24_X2HBSC_ERRINT_1_SHIFT    (11u)
+#define INTC_ICDICFR24_X2HSPI1_ERRINT_0_SHIFT   (12u)
+#define INTC_ICDICFR24_X2HSPI1_ERRINT_1_SHIFT   (13u)
+#define INTC_ICDICFR24_X2HSPI2_ERRINT_0_SHIFT   (14u)
+#define INTC_ICDICFR24_X2HSPI2_ERRINT_1_SHIFT   (15u)
+#define INTC_ICDICFR24_PRRI_0_SHIFT             (16u)
+#define INTC_ICDICFR24_PRRI_1_SHIFT             (17u)
+#define INTC_ICDICFR24_IFEI0_0_SHIFT            (18u)
+#define INTC_ICDICFR24_IFEI0_1_SHIFT            (19u)
+#define INTC_ICDICFR24_OFFI0_0_SHIFT            (20u)
+#define INTC_ICDICFR24_OFFI0_1_SHIFT            (21u)
+#define INTC_ICDICFR24_PFVEI0_0_SHIFT           (22u)
+#define INTC_ICDICFR24_PFVEI0_1_SHIFT           (23u)
+#define INTC_ICDICFR24_IFEI1_0_SHIFT            (24u)
+#define INTC_ICDICFR24_IFEI1_1_SHIFT            (25u)
+#define INTC_ICDICFR24_OFFI1_0_SHIFT            (26u)
+#define INTC_ICDICFR24_OFFI1_1_SHIFT            (27u)
+#define INTC_ICDICFR24_PFVEI1_0_SHIFT           (28u)
+#define INTC_ICDICFR24_PFVEI1_1_SHIFT           (29u)
+
+#define INTC_ICDICFR26_TINT0_0_SHIFT            (0u)
+#define INTC_ICDICFR26_TINT0_1_SHIFT            (1u)
+#define INTC_ICDICFR26_TINT1_0_SHIFT            (2u)
+#define INTC_ICDICFR26_TINT1_1_SHIFT            (3u)
+#define INTC_ICDICFR26_TINT2_0_SHIFT            (4u)
+#define INTC_ICDICFR26_TINT2_1_SHIFT            (5u)
+#define INTC_ICDICFR26_TINT3_0_SHIFT            (6u)
+#define INTC_ICDICFR26_TINT3_1_SHIFT            (7u)
+#define INTC_ICDICFR26_TINT4_0_SHIFT            (8u)
+#define INTC_ICDICFR26_TINT4_1_SHIFT            (9u)
+#define INTC_ICDICFR26_TINT5_0_SHIFT            (10u)
+#define INTC_ICDICFR26_TINT5_1_SHIFT            (11u)
+#define INTC_ICDICFR26_TINT6_0_SHIFT            (12u)
+#define INTC_ICDICFR26_TINT6_1_SHIFT            (13u)
+#define INTC_ICDICFR26_TINT7_0_SHIFT            (14u)
+#define INTC_ICDICFR26_TINT7_1_SHIFT            (15u)
+#define INTC_ICDICFR26_TINT8_0_SHIFT            (16u)
+#define INTC_ICDICFR26_TINT8_1_SHIFT            (17u)
+#define INTC_ICDICFR26_TINT9_0_SHIFT            (18u)
+#define INTC_ICDICFR26_TINT9_1_SHIFT            (19u)
+#define INTC_ICDICFR26_TINT10_0_SHIFT           (20u)
+#define INTC_ICDICFR26_TINT10_1_SHIFT           (21u)
+#define INTC_ICDICFR26_TINT11_0_SHIFT           (22u)
+#define INTC_ICDICFR26_TINT11_1_SHIFT           (23u)
+#define INTC_ICDICFR26_TINT12_0_SHIFT           (24u)
+#define INTC_ICDICFR26_TINT12_1_SHIFT           (25u)
+#define INTC_ICDICFR26_TINT13_0_SHIFT           (26u)
+#define INTC_ICDICFR26_TINT13_1_SHIFT           (27u)
+#define INTC_ICDICFR26_TINT14_0_SHIFT           (28u)
+#define INTC_ICDICFR26_TINT14_1_SHIFT           (29u)
+#define INTC_ICDICFR26_TINT15_0_SHIFT           (30u)
+#define INTC_ICDICFR26_TINT15_1_SHIFT           (31u)
+
+#define INTC_ICDICFR27_TINT16_0_SHIFT           (0u)
+#define INTC_ICDICFR27_TINT16_1_SHIFT           (1u)
+#define INTC_ICDICFR27_TINT17_0_SHIFT           (2u)
+#define INTC_ICDICFR27_TINT17_1_SHIFT           (3u)
+#define INTC_ICDICFR27_TINT18_0_SHIFT           (4u)
+#define INTC_ICDICFR27_TINT18_1_SHIFT           (5u)
+#define INTC_ICDICFR27_TINT19_0_SHIFT           (6u)
+#define INTC_ICDICFR27_TINT19_1_SHIFT           (7u)
+#define INTC_ICDICFR27_TINT20_0_SHIFT           (8u)
+#define INTC_ICDICFR27_TINT20_1_SHIFT           (9u)
+#define INTC_ICDICFR27_TINT21_0_SHIFT           (10u)
+#define INTC_ICDICFR27_TINT21_1_SHIFT           (11u)
+#define INTC_ICDICFR27_TINT22_0_SHIFT           (12u)
+#define INTC_ICDICFR27_TINT22_1_SHIFT           (13u)
+#define INTC_ICDICFR27_TINT23_0_SHIFT           (14u)
+#define INTC_ICDICFR27_TINT23_1_SHIFT           (15u)
+#define INTC_ICDICFR27_TINT24_0_SHIFT           (16u)
+#define INTC_ICDICFR27_TINT24_1_SHIFT           (17u)
+#define INTC_ICDICFR27_TINT25_0_SHIFT           (18u)
+#define INTC_ICDICFR27_TINT25_1_SHIFT           (19u)
+#define INTC_ICDICFR27_TINT26_0_SHIFT           (20u)
+#define INTC_ICDICFR27_TINT26_1_SHIFT           (21u)
+#define INTC_ICDICFR27_TINT27_0_SHIFT           (22u)
+#define INTC_ICDICFR27_TINT27_1_SHIFT           (23u)
+#define INTC_ICDICFR27_TINT28_0_SHIFT           (24u)
+#define INTC_ICDICFR27_TINT28_1_SHIFT           (25u)
+#define INTC_ICDICFR27_TINT29_0_SHIFT           (26u)
+#define INTC_ICDICFR27_TINT29_1_SHIFT           (27u)
+#define INTC_ICDICFR27_TINT30_0_SHIFT           (28u)
+#define INTC_ICDICFR27_TINT30_1_SHIFT           (29u)
+#define INTC_ICDICFR27_TINT31_0_SHIFT           (30u)
+#define INTC_ICDICFR27_TINT31_1_SHIFT           (31u)
+
+#define INTC_ICDICFR28_TINT32_0_SHIFT           (0u)
+#define INTC_ICDICFR28_TINT32_1_SHIFT           (1u)
+#define INTC_ICDICFR28_TINT33_0_SHIFT           (2u)
+#define INTC_ICDICFR28_TINT33_1_SHIFT           (3u)
+#define INTC_ICDICFR28_TINT34_0_SHIFT           (4u)
+#define INTC_ICDICFR28_TINT34_1_SHIFT           (5u)
+#define INTC_ICDICFR28_TINT35_0_SHIFT           (6u)
+#define INTC_ICDICFR28_TINT35_1_SHIFT           (7u)
+#define INTC_ICDICFR28_TINT36_0_SHIFT           (8u)
+#define INTC_ICDICFR28_TINT36_1_SHIFT           (9u)
+#define INTC_ICDICFR28_TINT37_0_SHIFT           (10u)
+#define INTC_ICDICFR28_TINT37_1_SHIFT           (11u)
+#define INTC_ICDICFR28_TINT38_0_SHIFT           (12u)
+#define INTC_ICDICFR28_TINT38_1_SHIFT           (13u)
+#define INTC_ICDICFR28_TINT39_0_SHIFT           (14u)
+#define INTC_ICDICFR28_TINT39_1_SHIFT           (15u)
+#define INTC_ICDICFR28_TINT40_0_SHIFT           (16u)
+#define INTC_ICDICFR28_TINT40_1_SHIFT           (17u)
+#define INTC_ICDICFR28_TINT41_0_SHIFT           (18u)
+#define INTC_ICDICFR28_TINT41_1_SHIFT           (19u)
+#define INTC_ICDICFR28_TINT42_0_SHIFT           (20u)
+#define INTC_ICDICFR28_TINT42_1_SHIFT           (21u)
+#define INTC_ICDICFR28_TINT43_0_SHIFT           (22u)
+#define INTC_ICDICFR28_TINT43_1_SHIFT           (23u)
+#define INTC_ICDICFR28_TINT44_0_SHIFT           (24u)
+#define INTC_ICDICFR28_TINT44_1_SHIFT           (25u)
+#define INTC_ICDICFR28_TINT45_0_SHIFT           (26u)
+#define INTC_ICDICFR28_TINT45_1_SHIFT           (27u)
+#define INTC_ICDICFR28_TINT46_0_SHIFT           (28u)
+#define INTC_ICDICFR28_TINT46_1_SHIFT           (29u)
+#define INTC_ICDICFR28_TINT47_0_SHIFT           (30u)
+#define INTC_ICDICFR28_TINT47_1_SHIFT           (31u)
+
+#define INTC_ICDICFR29_TINT48_0_SHIFT           (0u)
+#define INTC_ICDICFR29_TINT48_1_SHIFT           (1u)
+#define INTC_ICDICFR29_TINT49_0_SHIFT           (2u)
+#define INTC_ICDICFR29_TINT49_1_SHIFT           (3u)
+#define INTC_ICDICFR29_TINT50_0_SHIFT           (4u)
+#define INTC_ICDICFR29_TINT50_1_SHIFT           (5u)
+#define INTC_ICDICFR29_TINT51_0_SHIFT           (6u)
+#define INTC_ICDICFR29_TINT51_1_SHIFT           (7u)
+#define INTC_ICDICFR29_TINT52_0_SHIFT           (8u)
+#define INTC_ICDICFR29_TINT52_1_SHIFT           (9u)
+#define INTC_ICDICFR29_TINT53_0_SHIFT           (10u)
+#define INTC_ICDICFR29_TINT53_1_SHIFT           (11u)
+#define INTC_ICDICFR29_TINT54_0_SHIFT           (12u)
+#define INTC_ICDICFR29_TINT54_1_SHIFT           (13u)
+#define INTC_ICDICFR29_TINT55_0_SHIFT           (14u)
+#define INTC_ICDICFR29_TINT55_1_SHIFT           (15u)
+#define INTC_ICDICFR29_TINT56_0_SHIFT           (16u)
+#define INTC_ICDICFR29_TINT56_1_SHIFT           (17u)
+#define INTC_ICDICFR29_TINT57_0_SHIFT           (18u)
+#define INTC_ICDICFR29_TINT57_1_SHIFT           (19u)
+#define INTC_ICDICFR29_TINT58_0_SHIFT           (20u)
+#define INTC_ICDICFR29_TINT58_1_SHIFT           (21u)
+#define INTC_ICDICFR29_TINT59_0_SHIFT           (22u)
+#define INTC_ICDICFR29_TINT59_1_SHIFT           (23u)
+#define INTC_ICDICFR29_TINT60_0_SHIFT           (24u)
+#define INTC_ICDICFR29_TINT60_1_SHIFT           (25u)
+#define INTC_ICDICFR29_TINT61_0_SHIFT           (26u)
+#define INTC_ICDICFR29_TINT61_1_SHIFT           (27u)
+#define INTC_ICDICFR29_TINT62_0_SHIFT           (28u)
+#define INTC_ICDICFR29_TINT62_1_SHIFT           (29u)
+#define INTC_ICDICFR29_TINT63_0_SHIFT           (30u)
+#define INTC_ICDICFR29_TINT63_1_SHIFT           (31u)
+
+#define INTC_ICDICFR30_TINT64_0_SHIFT           (0u)
+#define INTC_ICDICFR30_TINT64_1_SHIFT           (1u)
+#define INTC_ICDICFR30_TINT65_0_SHIFT           (2u)
+#define INTC_ICDICFR30_TINT65_1_SHIFT           (3u)
+#define INTC_ICDICFR30_TINT66_0_SHIFT           (4u)
+#define INTC_ICDICFR30_TINT66_1_SHIFT           (5u)
+#define INTC_ICDICFR30_TINT67_0_SHIFT           (6u)
+#define INTC_ICDICFR30_TINT67_1_SHIFT           (7u)
+#define INTC_ICDICFR30_TINT68_0_SHIFT           (8u)
+#define INTC_ICDICFR30_TINT68_1_SHIFT           (9u)
+#define INTC_ICDICFR30_TINT69_0_SHIFT           (10u)
+#define INTC_ICDICFR30_TINT69_1_SHIFT           (11u)
+#define INTC_ICDICFR30_TINT70_0_SHIFT           (12u)
+#define INTC_ICDICFR30_TINT70_1_SHIFT           (13u)
+#define INTC_ICDICFR30_TINT71_0_SHIFT           (14u)
+#define INTC_ICDICFR30_TINT71_1_SHIFT           (15u)
+#define INTC_ICDICFR30_TINT72_0_SHIFT           (16u)
+#define INTC_ICDICFR30_TINT72_1_SHIFT           (17u)
+#define INTC_ICDICFR30_TINT73_0_SHIFT           (18u)
+#define INTC_ICDICFR30_TINT73_1_SHIFT           (19u)
+#define INTC_ICDICFR30_TINT74_0_SHIFT           (20u)
+#define INTC_ICDICFR30_TINT74_1_SHIFT           (21u)
+#define INTC_ICDICFR30_TINT75_0_SHIFT           (22u)
+#define INTC_ICDICFR30_TINT75_1_SHIFT           (23u)
+#define INTC_ICDICFR30_TINT76_0_SHIFT           (24u)
+#define INTC_ICDICFR30_TINT76_1_SHIFT           (25u)
+#define INTC_ICDICFR30_TINT77_0_SHIFT           (26u)
+#define INTC_ICDICFR30_TINT77_1_SHIFT           (27u)
+#define INTC_ICDICFR30_TINT78_0_SHIFT           (28u)
+#define INTC_ICDICFR30_TINT78_1_SHIFT           (29u)
+#define INTC_ICDICFR30_TINT79_0_SHIFT           (30u)
+#define INTC_ICDICFR30_TINT79_1_SHIFT           (31u)
+
+#define INTC_ICDICFR31_TINT80_0_SHIFT           (0u)
+#define INTC_ICDICFR31_TINT80_1_SHIFT           (1u)
+#define INTC_ICDICFR31_TINT81_0_SHIFT           (2u)
+#define INTC_ICDICFR31_TINT81_1_SHIFT           (3u)
+#define INTC_ICDICFR31_TINT82_0_SHIFT           (4u)
+#define INTC_ICDICFR31_TINT82_1_SHIFT           (5u)
+#define INTC_ICDICFR31_TINT83_0_SHIFT           (6u)
+#define INTC_ICDICFR31_TINT83_1_SHIFT           (7u)
+#define INTC_ICDICFR31_TINT84_0_SHIFT           (8u)
+#define INTC_ICDICFR31_TINT84_1_SHIFT           (9u)
+#define INTC_ICDICFR31_TINT85_0_SHIFT           (10u)
+#define INTC_ICDICFR31_TINT85_1_SHIFT           (11u)
+#define INTC_ICDICFR31_TINT86_0_SHIFT           (12u)
+#define INTC_ICDICFR31_TINT86_1_SHIFT           (13u)
+#define INTC_ICDICFR31_TINT87_0_SHIFT           (14u)
+#define INTC_ICDICFR31_TINT87_1_SHIFT           (15u)
+#define INTC_ICDICFR31_TINT88_0_SHIFT           (16u)
+#define INTC_ICDICFR31_TINT88_1_SHIFT           (17u)
+#define INTC_ICDICFR31_TINT89_0_SHIFT           (18u)
+#define INTC_ICDICFR31_TINT89_1_SHIFT           (19u)
+#define INTC_ICDICFR31_TINT90_0_SHIFT           (20u)
+#define INTC_ICDICFR31_TINT90_1_SHIFT           (21u)
+#define INTC_ICDICFR31_TINT91_0_SHIFT           (22u)
+#define INTC_ICDICFR31_TINT91_1_SHIFT           (23u)
+#define INTC_ICDICFR31_TINT92_0_SHIFT           (24u)
+#define INTC_ICDICFR31_TINT92_1_SHIFT           (25u)
+#define INTC_ICDICFR31_TINT93_0_SHIFT           (26u)
+#define INTC_ICDICFR31_TINT93_1_SHIFT           (27u)
+#define INTC_ICDICFR31_TINT94_0_SHIFT           (28u)
+#define INTC_ICDICFR31_TINT94_1_SHIFT           (29u)
+#define INTC_ICDICFR31_TINT95_0_SHIFT           (30u)
+#define INTC_ICDICFR31_TINT95_1_SHIFT           (31u)
+
+#define INTC_ICDICFR32_TINT96_0_SHIFT           (0u)
+#define INTC_ICDICFR32_TINT96_1_SHIFT           (1u)
+#define INTC_ICDICFR32_TINT97_0_SHIFT           (2u)
+#define INTC_ICDICFR32_TINT97_1_SHIFT           (3u)
+#define INTC_ICDICFR32_TINT98_0_SHIFT           (4u)
+#define INTC_ICDICFR32_TINT98_1_SHIFT           (5u)
+#define INTC_ICDICFR32_TINT99_0_SHIFT           (6u)
+#define INTC_ICDICFR32_TINT99_1_SHIFT           (7u)
+#define INTC_ICDICFR32_TINT100_0_SHIFT          (8u)
+#define INTC_ICDICFR32_TINT100_1_SHIFT          (9u)
+#define INTC_ICDICFR32_TINT101_0_SHIFT          (10u)
+#define INTC_ICDICFR32_TINT101_1_SHIFT          (11u)
+#define INTC_ICDICFR32_TINT102_0_SHIFT          (12u)
+#define INTC_ICDICFR32_TINT102_1_SHIFT          (13u)
+#define INTC_ICDICFR32_TINT103_0_SHIFT          (14u)
+#define INTC_ICDICFR32_TINT103_1_SHIFT          (15u)
+#define INTC_ICDICFR32_TINT104_0_SHIFT          (16u)
+#define INTC_ICDICFR32_TINT104_1_SHIFT          (17u)
+#define INTC_ICDICFR32_TINT105_0_SHIFT          (18u)
+#define INTC_ICDICFR32_TINT105_1_SHIFT          (19u)
+#define INTC_ICDICFR32_TINT106_0_SHIFT          (20u)
+#define INTC_ICDICFR32_TINT106_1_SHIFT          (21u)
+#define INTC_ICDICFR32_TINT107_0_SHIFT          (22u)
+#define INTC_ICDICFR32_TINT107_1_SHIFT          (23u)
+#define INTC_ICDICFR32_TINT108_0_SHIFT          (24u)
+#define INTC_ICDICFR32_TINT108_1_SHIFT          (25u)
+#define INTC_ICDICFR32_TINT109_0_SHIFT          (26u)
+#define INTC_ICDICFR32_TINT109_1_SHIFT          (27u)
+#define INTC_ICDICFR32_TINT110_0_SHIFT          (28u)
+#define INTC_ICDICFR32_TINT110_1_SHIFT          (29u)
+#define INTC_ICDICFR32_TINT111_0_SHIFT          (30u)
+#define INTC_ICDICFR32_TINT111_1_SHIFT          (31u)
+
+#define INTC_ICDICFR33_TINT112_0_SHIFT          (0u)
+#define INTC_ICDICFR33_TINT112_1_SHIFT          (1u)
+#define INTC_ICDICFR33_TINT113_0_SHIFT          (2u)
+#define INTC_ICDICFR33_TINT113_1_SHIFT          (3u)
+#define INTC_ICDICFR33_TINT114_0_SHIFT          (4u)
+#define INTC_ICDICFR33_TINT114_1_SHIFT          (5u)
+#define INTC_ICDICFR33_TINT115_0_SHIFT          (6u)
+#define INTC_ICDICFR33_TINT115_1_SHIFT          (7u)
+#define INTC_ICDICFR33_TINT116_0_SHIFT          (8u)
+#define INTC_ICDICFR33_TINT116_1_SHIFT          (9u)
+#define INTC_ICDICFR33_TINT117_0_SHIFT          (10u)
+#define INTC_ICDICFR33_TINT117_1_SHIFT          (11u)
+#define INTC_ICDICFR33_TINT118_0_SHIFT          (12u)
+#define INTC_ICDICFR33_TINT118_1_SHIFT          (13u)
+#define INTC_ICDICFR33_TINT119_0_SHIFT          (14u)
+#define INTC_ICDICFR33_TINT119_1_SHIFT          (15u)
+#define INTC_ICDICFR33_TINT120_0_SHIFT          (16u)
+#define INTC_ICDICFR33_TINT120_1_SHIFT          (17u)
+#define INTC_ICDICFR33_TINT121_0_SHIFT          (18u)
+#define INTC_ICDICFR33_TINT121_1_SHIFT          (19u)
+#define INTC_ICDICFR33_TINT122_0_SHIFT          (20u)
+#define INTC_ICDICFR33_TINT122_1_SHIFT          (21u)
+#define INTC_ICDICFR33_TINT123_0_SHIFT          (22u)
+#define INTC_ICDICFR33_TINT123_1_SHIFT          (23u)
+#define INTC_ICDICFR33_TINT124_0_SHIFT          (24u)
+#define INTC_ICDICFR33_TINT124_1_SHIFT          (25u)
+#define INTC_ICDICFR33_TINT125_0_SHIFT          (26u)
+#define INTC_ICDICFR33_TINT125_1_SHIFT          (27u)
+#define INTC_ICDICFR33_TINT126_0_SHIFT          (28u)
+#define INTC_ICDICFR33_TINT126_1_SHIFT          (29u)
+#define INTC_ICDICFR33_TINT127_0_SHIFT          (30u)
+#define INTC_ICDICFR33_TINT127_1_SHIFT          (31u)
+
+#define INTC_ICDICFR34_TINT128_0_SHIFT          (0u)
+#define INTC_ICDICFR34_TINT128_1_SHIFT          (1u)
+#define INTC_ICDICFR34_TINT129_0_SHIFT          (2u)
+#define INTC_ICDICFR34_TINT129_1_SHIFT          (3u)
+#define INTC_ICDICFR34_TINT130_0_SHIFT          (4u)
+#define INTC_ICDICFR34_TINT130_1_SHIFT          (5u)
+#define INTC_ICDICFR34_TINT131_0_SHIFT          (6u)
+#define INTC_ICDICFR34_TINT131_1_SHIFT          (7u)
+#define INTC_ICDICFR34_TINT132_0_SHIFT          (8u)
+#define INTC_ICDICFR34_TINT132_1_SHIFT          (9u)
+#define INTC_ICDICFR34_TINT133_0_SHIFT          (10u)
+#define INTC_ICDICFR34_TINT133_1_SHIFT          (11u)
+#define INTC_ICDICFR34_TINT134_0_SHIFT          (12u)
+#define INTC_ICDICFR34_TINT134_1_SHIFT          (13u)
+#define INTC_ICDICFR34_TINT135_0_SHIFT          (14u)
+#define INTC_ICDICFR34_TINT135_1_SHIFT          (15u)
+#define INTC_ICDICFR34_TINT136_0_SHIFT          (16u)
+#define INTC_ICDICFR34_TINT136_1_SHIFT          (17u)
+#define INTC_ICDICFR34_TINT137_0_SHIFT          (18u)
+#define INTC_ICDICFR34_TINT137_1_SHIFT          (19u)
+#define INTC_ICDICFR34_TINT138_0_SHIFT          (20u)
+#define INTC_ICDICFR34_TINT138_1_SHIFT          (21u)
+#define INTC_ICDICFR34_TINT139_0_SHIFT          (22u)
+#define INTC_ICDICFR34_TINT139_1_SHIFT          (23u)
+#define INTC_ICDICFR34_TINT140_0_SHIFT          (24u)
+#define INTC_ICDICFR34_TINT140_1_SHIFT          (25u)
+#define INTC_ICDICFR34_TINT141_0_SHIFT          (26u)
+#define INTC_ICDICFR34_TINT141_1_SHIFT          (27u)
+#define INTC_ICDICFR34_TINT142_0_SHIFT          (28u)
+#define INTC_ICDICFR34_TINT142_1_SHIFT          (29u)
+#define INTC_ICDICFR34_TINT143_0_SHIFT          (30u)
+#define INTC_ICDICFR34_TINT143_1_SHIFT          (31u)
+
+#define INTC_ICDICFR35_TINT144_0_SHIFT          (0u)
+#define INTC_ICDICFR35_TINT144_1_SHIFT          (1u)
+#define INTC_ICDICFR35_TINT145_0_SHIFT          (2u)
+#define INTC_ICDICFR35_TINT145_1_SHIFT          (3u)
+#define INTC_ICDICFR35_TINT146_0_SHIFT          (4u)
+#define INTC_ICDICFR35_TINT146_1_SHIFT          (5u)
+#define INTC_ICDICFR35_TINT147_0_SHIFT          (6u)
+#define INTC_ICDICFR35_TINT147_1_SHIFT          (7u)
+#define INTC_ICDICFR35_TINT148_0_SHIFT          (8u)
+#define INTC_ICDICFR35_TINT148_1_SHIFT          (9u)
+#define INTC_ICDICFR35_TINT149_0_SHIFT          (10u)
+#define INTC_ICDICFR35_TINT149_1_SHIFT          (11u)
+#define INTC_ICDICFR35_TINT150_0_SHIFT          (12u)
+#define INTC_ICDICFR35_TINT150_1_SHIFT          (13u)
+#define INTC_ICDICFR35_TINT151_0_SHIFT          (14u)
+#define INTC_ICDICFR35_TINT151_1_SHIFT          (15u)
+#define INTC_ICDICFR35_TINT152_0_SHIFT          (16u)
+#define INTC_ICDICFR35_TINT152_1_SHIFT          (17u)
+#define INTC_ICDICFR35_TINT153_0_SHIFT          (18u)
+#define INTC_ICDICFR35_TINT153_1_SHIFT          (19u)
+#define INTC_ICDICFR35_TINT154_0_SHIFT          (20u)
+#define INTC_ICDICFR35_TINT154_1_SHIFT          (21u)
+#define INTC_ICDICFR35_TINT155_0_SHIFT          (22u)
+#define INTC_ICDICFR35_TINT155_1_SHIFT          (23u)
+#define INTC_ICDICFR35_TINT156_0_SHIFT          (24u)
+#define INTC_ICDICFR35_TINT156_1_SHIFT          (25u)
+#define INTC_ICDICFR35_TINT157_0_SHIFT          (26u)
+#define INTC_ICDICFR35_TINT157_1_SHIFT          (27u)
+#define INTC_ICDICFR35_TINT158_0_SHIFT          (28u)
+#define INTC_ICDICFR35_TINT158_1_SHIFT          (29u)
+#define INTC_ICDICFR35_TINT159_0_SHIFT          (30u)
+#define INTC_ICDICFR35_TINT159_1_SHIFT          (31u)
+
+#define INTC_ICDICFR36_TINT160_0_SHIFT          (0u)
+#define INTC_ICDICFR36_TINT160_1_SHIFT          (1u)
+#define INTC_ICDICFR36_TINT161_0_SHIFT          (2u)
+#define INTC_ICDICFR36_TINT161_1_SHIFT          (3u)
+#define INTC_ICDICFR36_TINT162_0_SHIFT          (4u)
+#define INTC_ICDICFR36_TINT162_1_SHIFT          (5u)
+#define INTC_ICDICFR36_TINT163_0_SHIFT          (6u)
+#define INTC_ICDICFR36_TINT163_1_SHIFT          (7u)
+#define INTC_ICDICFR36_TINT164_0_SHIFT          (8u)
+#define INTC_ICDICFR36_TINT164_1_SHIFT          (9u)
+#define INTC_ICDICFR36_TINT165_0_SHIFT          (10u)
+#define INTC_ICDICFR36_TINT165_1_SHIFT          (11u)
+#define INTC_ICDICFR36_TINT166_0_SHIFT          (12u)
+#define INTC_ICDICFR36_TINT166_1_SHIFT          (13u)
+#define INTC_ICDICFR36_TINT167_0_SHIFT          (14u)
+#define INTC_ICDICFR36_TINT167_1_SHIFT          (15u)
+#define INTC_ICDICFR36_TINT168_0_SHIFT          (16u)
+#define INTC_ICDICFR36_TINT168_1_SHIFT          (17u)
+#define INTC_ICDICFR36_TINT169_0_SHIFT          (18u)
+#define INTC_ICDICFR36_TINT169_1_SHIFT          (19u)
+#define INTC_ICDICFR36_TINT170_0_SHIFT          (20u)
+#define INTC_ICDICFR36_TINT170_1_SHIFT          (21u)
+
+#define INTC_ICDSGIR_SGIINTID_SHIFT             (0u)
+#define INTC_ICDSGIR_SATT_SHIFT                 (15u)
+#define INTC_ICDSGIR_CPUTargetList_SHIFT        (16u)
+#define INTC_ICDSGIR_TargetListFilter_SHIFT     (24u)
+
+#define INTC_ICCICR_EnableS_SHIFT               (0u)
+#define INTC_ICCICR_EnableNS_SHIFT              (1u)
+#define INTC_ICCICR_AckCtl_SHIFT                (2u)
+#define INTC_ICCICR_FIQEn_SHIFT                 (3u)
+#define INTC_ICCICR_SBPR_SHIFT                  (4u)
+
+#define INTC_ICCPMR_Priority_SHIFT              (0u)
+
+#define INTC_ICCBPR_Binarypoint_SHIFT           (0u)
+
+#define INTC_ICCIAR_ACKINTID_SHIFT              (0u)
+#define INTC_ICCIAR_CPUID_SHIFT                 (10u)
+
+#define INTC_ICCEOIR_EOIINTID_SHIFT             (0u)
+#define INTC_ICCEOIR_CPUID_SHIFT                (10u)
+
+#define INTC_ICCRPR_Priority_SHIFT              (0u)
+
+#define INTC_ICCHPIR_PENDINTID_SHIFT            (0u)
+#define INTC_ICCHPIR_CPUID_SHIFT                (10u)
+
+#define INTC_ICCABPR_Binarypoint_SHIFT          (0u)
+
+#define INTC_ICCIIDR_Implementer_SHIFT          (0u)
+#define INTC_ICCIIDR_Revision_SHIFT             (12u)
+#define INTC_ICCIIDR_Architecture_version_SHIFT (16u)
+#define INTC_ICCIIDR_ProductID_SHIFT            (20u)
+
+#define INTC_ICR0_NMIF_SHIFT                    (1u)
+#define INTC_ICR0_NMIE_SHIFT                    (8u)
+#define INTC_ICR0_NMIL_SHIFT                    (15u)
+
+#define INTC_ICR1_IRQ00S_SHIFT                  (0u)
+#define INTC_ICR1_IRQ01S_SHIFT                  (1u)
+#define INTC_ICR1_IRQ10S_SHIFT                  (2u)
+#define INTC_ICR1_IRQ11S_SHIFT                  (3u)
+#define INTC_ICR1_IRQ20S_SHIFT                  (4u)
+#define INTC_ICR1_IRQ21S_SHIFT                  (5u)
+#define INTC_ICR1_IRQ30S_SHIFT                  (6u)
+#define INTC_ICR1_IRQ31S_SHIFT                  (7u)
+#define INTC_ICR1_IRQ40S_SHIFT                  (8u)
+#define INTC_ICR1_IRQ41S_SHIFT                  (9u)
+#define INTC_ICR1_IRQ50S_SHIFT                  (10u)
+#define INTC_ICR1_IRQ51S_SHIFT                  (11u)
+#define INTC_ICR1_IRQ60S_SHIFT                  (12u)
+#define INTC_ICR1_IRQ61S_SHIFT                  (13u)
+#define INTC_ICR1_IRQ70S_SHIFT                  (14u)
+#define INTC_ICR1_IRQ71S_SHIFT                  (15u)
+
+#define INTC_IRQRR_IRQ0F_SHIFT                  (0u)
+#define INTC_IRQRR_IRQ1F_SHIFT                  (1u)
+#define INTC_IRQRR_IRQ2F_SHIFT                  (2u)
+#define INTC_IRQRR_IRQ3F_SHIFT                  (3u)
+#define INTC_IRQRR_IRQ4F_SHIFT                  (4u)
+#define INTC_IRQRR_IRQ5F_SHIFT                  (5u)
+#define INTC_IRQRR_IRQ6F_SHIFT                  (6u)
+#define INTC_IRQRR_IRQ7F_SHIFT                  (7u)
+
+
+#endif /* INTC_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/mtu2_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/mtu2_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/mtu2_iobitmask.h	(revision 429)
@@ -0,0 +1,462 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : mtu2_iobitmask.h
+* $Rev: 1138 $
+* $Date:: 2014-08-08 11:03:56 +0900#$
+* Description : MTU2 register define header
+*******************************************************************************/
+#ifndef MTU2_IOBITMASK_H
+#define MTU2_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+#define MTU2_TCR_n_TPSC                         (0x07u)
+#define MTU2_TCR_n_CKEG                         (0x18u)
+#define MTU2_TCR_n_CCLR                         (0xE0u)
+
+#define MTU2_TMDR_n_MD                          (0x0Fu)
+
+#define MTU2_TIOR_2_IOA                         (0x0Fu)
+#define MTU2_TIOR_2_IOB                         (0xF0u)
+
+#define MTU2_TIER_n_TGIEA                       (0x01u)
+#define MTU2_TIER_n_TGIEB                       (0x02u)
+#define MTU2_TIER_n_TCIEV                       (0x10u)
+#define MTU2_TIER_2_TCIEU                       (0x20u)
+#define MTU2_TIER_n_TTGE                        (0x80u)
+
+#define MTU2_TSR_n_TGFA                         (0x01u)
+#define MTU2_TSR_n_TGFB                         (0x02u)
+#define MTU2_TSR_n_TCFV                         (0x10u)
+#define MTU2_TSR_2_TCFU                         (0x20u)
+#define MTU2_TSR_2_TCFD                         (0x80u)
+
+#define MTU2_TCNT_n_D                           (0xFFFFu)
+
+#define MTU2_TGRA_n_D                           (0xFFFFu)
+
+#define MTU2_TGRB_n_D                           (0xFFFFu)
+
+#define MTU2_TMDR_3_BFA                         (0x10u)
+#define MTU2_TMDR_3_BFB                         (0x20u)
+
+#define MTU2_TMDR_4_BFA                         (0x10u)
+#define MTU2_TMDR_4_BFB                         (0x20u)
+
+#define MTU2_TIORH_3_IOA                        (0x0Fu)
+#define MTU2_TIORH_3_IOB                        (0xF0u)
+
+#define MTU2_TIORL_3_IOC                        (0x0Fu)
+#define MTU2_TIORL_3_IOD                        (0xF0u)
+
+#define MTU2_TIORH_4_IOA                        (0x0Fu)
+#define MTU2_TIORH_4_IOB                        (0xF0u)
+
+#define MTU2_TIORL_4_IOC                        (0x0Fu)
+#define MTU2_TIORL_4_IOD                        (0xF0u)
+
+#define MTU2_TIER_3_TGIEC                       (0x04u)
+#define MTU2_TIER_3_TGIED                       (0x08u)
+
+#define MTU2_TIER_4_TGIEC                       (0x04u)
+#define MTU2_TIER_4_TGIED                       (0x08u)
+#define MTU2_TIER_4_TTGE2                       (0x40u)
+
+#define MTU2_TOER_OE3B                          (0x01u)
+#define MTU2_TOER_OE4A                          (0x02u)
+#define MTU2_TOER_OE4B                          (0x04u)
+#define MTU2_TOER_OE3D                          (0x08u)
+#define MTU2_TOER_OE4C                          (0x10u)
+#define MTU2_TOER_OE4D                          (0x20u)
+
+#define MTU2_TGCR_UF                            (0x01u)
+#define MTU2_TGCR_VF                            (0x02u)
+#define MTU2_TGCR_WF                            (0x04u)
+#define MTU2_TGCR_FB                            (0x08u)
+#define MTU2_TGCR_P                             (0x10u)
+#define MTU2_TGCR_N                             (0x20u)
+#define MTU2_TGCR_BDC                           (0x40u)
+
+#define MTU2_TOCR1_OLSP                         (0x01u)
+#define MTU2_TOCR1_OLSN                         (0x02u)
+#define MTU2_TOCR1_TOCS                         (0x04u)
+#define MTU2_TOCR1_TOCL                         (0x08u)
+#define MTU2_TOCR1_PSYE                         (0x40u)
+
+#define MTU2_TOCR2_OLS1P                        (0x01u)
+#define MTU2_TOCR2_OLS1N                        (0x02u)
+#define MTU2_TOCR2_OLS2P                        (0x04u)
+#define MTU2_TOCR2_OLS2N                        (0x08u)
+#define MTU2_TOCR2_OLS3P                        (0x10u)
+#define MTU2_TOCR2_OLS3N                        (0x20u)
+#define MTU2_TOCR2_BF                           (0xC0u)
+
+#define MTU2_TCDR_D                             (0xFFFFu)
+
+#define MTU2_TDDR_D                             (0xFFFFu)
+
+#define MTU2_TCNTS_D                            (0xFFFFu)
+
+#define MTU2_TCBR_D                             (0xFFFFu)
+
+#define MTU2_TGRC_3_D                           (0xFFFFu)
+
+#define MTU2_TGRD_3_D                           (0xFFFFu)
+
+#define MTU2_TGRC_4_D                           (0xFFFFu)
+
+#define MTU2_TGRD_4_D                           (0xFFFFu)
+
+#define MTU2_TSR_3_TGFC                         (0x04u)
+#define MTU2_TSR_3_TGFD                         (0x08u)
+#define MTU2_TSR_3_TCFD                         (0x80u)
+
+#define MTU2_TSR_4_TGFC                         (0x04u)
+#define MTU2_TSR_4_TGFD                         (0x08u)
+#define MTU2_TSR_4_TCFD                         (0x80u)
+
+#define MTU2_TITCR_4VCOR                        (0x07u)
+#define MTU2_TITCR_T4VEN                        (0x08u)
+#define MTU2_TITCR_3ACOR                        (0x70u)
+#define MTU2_TITCR_T3AEN                        (0x80u)
+
+#define MTU2_TITCNT_4VCNT                       (0x07u)
+#define MTU2_TITCNT_3ACNT                       (0x70u)
+
+#define MTU2_TBTER_BTE                          (0x03u)
+
+#define MTU2_TDER_TDER                          (0x01u)
+
+#define MTU2_TOLBR_OLS1P                        (0x01u)
+#define MTU2_TOLBR_OLS1N                        (0x02u)
+#define MTU2_TOLBR_OLS2P                        (0x04u)
+#define MTU2_TOLBR_OLS2N                        (0x08u)
+#define MTU2_TOLBR_OLS3P                        (0x10u)
+#define MTU2_TOLBR_OLS3N                        (0x20u)
+
+#define MTU2_TBTM_3_TTSA                        (0x01u)
+#define MTU2_TBTM_3_TTSB                        (0x02u)
+
+#define MTU2_TBTM_4_TTSA                        (0x01u)
+#define MTU2_TBTM_4_TTSB                        (0x02u)
+
+#define MTU2_TADCR_ITB4VE                       (0x0001u)
+#define MTU2_TADCR_ITB3AE                       (0x0002u)
+#define MTU2_TADCR_ITA4VE                       (0x0004u)
+#define MTU2_TADCR_ITA3AE                       (0x0008u)
+#define MTU2_TADCR_DT4BE                        (0x0010u)
+#define MTU2_TADCR_UT4BE                        (0x0020u)
+#define MTU2_TADCR_DT4AE                        (0x0040u)
+#define MTU2_TADCR_UT4AE                        (0x0080u)
+#define MTU2_TADCR_BF                           (0xC000u)
+
+#define MTU2_TADCORA_4_D                        (0xFFFFu)
+
+#define MTU2_TADCORB_4_D                        (0xFFFFu)
+
+#define MTU2_TADCOBRA_4_D                       (0xFFFFu)
+
+#define MTU2_TADCOBRB_4_D                       (0xFFFFu)
+
+#define MTU2_TWCR_WRE                           (0x01u)
+#define MTU2_TWCR_CCE                           (0x80u)
+
+#define MTU2_TSTR_CST0                          (0x01u)
+#define MTU2_TSTR_CST1                          (0x02u)
+#define MTU2_TSTR_CST2                          (0x04u)
+#define MTU2_TSTR_CST3                          (0x40u)
+#define MTU2_TSTR_CST4                          (0x80u)
+
+#define MTU2_TSYR_SYNC0                         (0x01u)
+#define MTU2_TSYR_SYNC1                         (0x02u)
+#define MTU2_TSYR_SYNC2                         (0x04u)
+#define MTU2_TSYR_SYNC3                         (0x40u)
+#define MTU2_TSYR_SYNC4                         (0x80u)
+
+#define MTU2_TRWER_RWE                          (0x01u)
+
+#define MTU2_TMDR_0_BFA                         (0x10u)
+#define MTU2_TMDR_0_BFB                         (0x20u)
+#define MTU2_TMDR_0_BFE                         (0x40u)
+
+#define MTU2_TIORH_0_IOA                        (0x0Fu)
+#define MTU2_TIORH_0_IOB                        (0xF0u)
+
+#define MTU2_TIORL_0_IOC                        (0x0Fu)
+#define MTU2_TIORL_0_IOD                        (0xF0u)
+
+#define MTU2_TIER_0_TGIEC                       (0x04u)
+#define MTU2_TIER_0_TGIED                       (0x08u)
+
+#define MTU2_TSR_0_TGFC                         (0x04u)
+#define MTU2_TSR_0_TGFD                         (0x08u)
+
+#define MTU2_TGRC_0_D                           (0xFFFFu)
+
+#define MTU2_TGRD_0_D                           (0xFFFFu)
+
+#define MTU2_TGRE_0_D                           (0xFFFFu)
+
+#define MTU2_TGRF_0_D                           (0xFFFFu)
+
+#define MTU2_TIER2_0_TGIEE                      (0x01u)
+#define MTU2_TIER2_0_TGIEF                      (0x02u)
+
+#define MTU2_TSR2_0_TGFE                        (0x01u)
+#define MTU2_TSR2_0_TGFF                        (0x02u)
+
+#define MTU2_TBTM_0_TTSA                        (0x01u)
+#define MTU2_TBTM_0_TTSB                        (0x02u)
+#define MTU2_TBTM_0_TTSE                        (0x04u)
+
+#define MTU2_TIOR_1_IOA                         (0x0Fu)
+#define MTU2_TIOR_1_IOB                         (0xF0u)
+
+#define MTU2_TIER_1_TCIEU                       (0x20u)
+
+#define MTU2_TSR_1_TCFU                         (0x20u)
+#define MTU2_TSR_1_TCFD                         (0x80u)
+
+#define MTU2_TICCR_I1AE                         (0x01u)
+#define MTU2_TICCR_I1BE                         (0x02u)
+#define MTU2_TICCR_I2AE                         (0x04u)
+#define MTU2_TICCR_I2BE                         (0x08u)
+
+
+/* ==== Shift values for IO registers ==== */
+#define MTU2_TCR_n_TPSC_SHIFT                   (0u)
+#define MTU2_TCR_n_CKEG_SHIFT                   (3u)
+#define MTU2_TCR_n_CCLR_SHIFT                   (5u)
+
+#define MTU2_TMDR_n_MD_SHIFT                    (0u)
+
+#define MTU2_TIOR_2_IOA_SHIFT                   (0u)
+#define MTU2_TIOR_2_IOB_SHIFT                   (4u)
+
+#define MTU2_TIER_n_TGIEA_SHIFT                 (0u)
+#define MTU2_TIER_n_TGIEB_SHIFT                 (1u)
+#define MTU2_TIER_n_TCIEV_SHIFT                 (4u)
+#define MTU2_TIER_2_TCIEU_SHIFT                 (5u)
+#define MTU2_TIER_n_TTGE_SHIFT                  (7u)
+
+#define MTU2_TSR_n_TGFA_SHIFT                   (0u)
+#define MTU2_TSR_n_TGFB_SHIFT                   (1u)
+#define MTU2_TSR_n_TCFV_SHIFT                   (4u)
+#define MTU2_TSR_2_TCFU_SHIFT                   (5u)
+#define MTU2_TSR_2_TCFD_SHIFT                   (7u)
+
+#define MTU2_TCNT_n_D_SHIFT                     (0u)
+
+#define MTU2_TGRA_n_D_SHIFT                     (0u)
+
+#define MTU2_TGRB_n_D_SHIFT                     (0u)
+
+#define MTU2_TMDR_3_BFA_SHIFT                   (4u)
+#define MTU2_TMDR_3_BFB_SHIFT                   (5u)
+
+#define MTU2_TMDR_4_BFA_SHIFT                   (4u)
+#define MTU2_TMDR_4_BFB_SHIFT                   (5u)
+
+#define MTU2_TIORH_3_IOA_SHIFT                  (0u)
+#define MTU2_TIORH_3_IOB_SHIFT                  (4u)
+
+#define MTU2_TIORL_3_IOC_SHIFT                  (0u)
+#define MTU2_TIORL_3_IOD_SHIFT                  (4u)
+
+#define MTU2_TIORH_4_IOA_SHIFT                  (0u)
+#define MTU2_TIORH_4_IOB_SHIFT                  (4u)
+
+#define MTU2_TIORL_4_IOC_SHIFT                  (0u)
+#define MTU2_TIORL_4_IOD_SHIFT                  (4u)
+
+#define MTU2_TIER_3_TGIEC_SHIFT                 (2u)
+#define MTU2_TIER_3_TGIED_SHIFT                 (3u)
+
+#define MTU2_TIER_4_TGIEC_SHIFT                 (2u)
+#define MTU2_TIER_4_TGIED_SHIFT                 (3u)
+#define MTU2_TIER_4_TTGE2_SHIFT                 (6u)
+
+#define MTU2_TOER_OE3B_SHIFT                    (0u)
+#define MTU2_TOER_OE4A_SHIFT                    (1u)
+#define MTU2_TOER_OE4B_SHIFT                    (2u)
+#define MTU2_TOER_OE3D_SHIFT                    (3u)
+#define MTU2_TOER_OE4C_SHIFT                    (4u)
+#define MTU2_TOER_OE4D_SHIFT                    (5u)
+
+#define MTU2_TGCR_UF_SHIFT                      (0u)
+#define MTU2_TGCR_VF_SHIFT                      (1u)
+#define MTU2_TGCR_WF_SHIFT                      (2u)
+#define MTU2_TGCR_FB_SHIFT                      (3u)
+#define MTU2_TGCR_P_SHIFT                       (4u)
+#define MTU2_TGCR_N_SHIFT                       (5u)
+#define MTU2_TGCR_BDC_SHIFT                     (6u)
+
+#define MTU2_TOCR1_OLSP_SHIFT                   (0u)
+#define MTU2_TOCR1_OLSN_SHIFT                   (1u)
+#define MTU2_TOCR1_TOCS_SHIFT                   (2u)
+#define MTU2_TOCR1_TOCL_SHIFT                   (3u)
+#define MTU2_TOCR1_PSYE_SHIFT                   (6u)
+
+#define MTU2_TOCR2_OLS1P_SHIFT                  (0u)
+#define MTU2_TOCR2_OLS1N_SHIFT                  (1u)
+#define MTU2_TOCR2_OLS2P_SHIFT                  (2u)
+#define MTU2_TOCR2_OLS2N_SHIFT                  (3u)
+#define MTU2_TOCR2_OLS3P_SHIFT                  (4u)
+#define MTU2_TOCR2_OLS3N_SHIFT                  (5u)
+#define MTU2_TOCR2_BF_SHIFT                     (6u)
+
+#define MTU2_TCDR_D_SHIFT                       (0u)
+
+#define MTU2_TDDR_D_SHIFT                       (0u)
+
+#define MTU2_TCNTS_D_SHIFT                      (0u)
+
+#define MTU2_TCBR_D_SHIFT                       (0u)
+
+#define MTU2_TGRC_3_D_SHIFT                     (0u)
+
+#define MTU2_TGRD_3_D_SHIFT                     (0u)
+
+#define MTU2_TGRC_4_D_SHIFT                     (0u)
+
+#define MTU2_TGRD_4_D_SHIFT                     (0u)
+
+#define MTU2_TSR_3_TGFC_SHIFT                   (2u)
+#define MTU2_TSR_3_TGFD_SHIFT                   (3u)
+#define MTU2_TSR_3_TCFD_SHIFT                   (7u)
+
+#define MTU2_TSR_4_TGFC_SHIFT                   (2u)
+#define MTU2_TSR_4_TGFD_SHIFT                   (3u)
+#define MTU2_TSR_4_TCFD_SHIFT                   (7u)
+
+#define MTU2_TITCR_4VCOR_SHIFT                  (0u)
+#define MTU2_TITCR_T4VEN_SHIFT                  (3u)
+#define MTU2_TITCR_3ACOR_SHIFT                  (4u)
+#define MTU2_TITCR_T3AEN_SHIFT                  (7u)
+
+#define MTU2_TITCNT_4VCNT_SHIFT                 (0u)
+#define MTU2_TITCNT_3ACNT_SHIFT                 (4u)
+
+#define MTU2_TBTER_BTE_SHIFT                    (0u)
+
+#define MTU2_TDER_TDER_SHIFT                    (0u)
+
+#define MTU2_TOLBR_OLS1P_SHIFT                  (0u)
+#define MTU2_TOLBR_OLS1N_SHIFT                  (1u)
+#define MTU2_TOLBR_OLS2P_SHIFT                  (2u)
+#define MTU2_TOLBR_OLS2N_SHIFT                  (3u)
+#define MTU2_TOLBR_OLS3P_SHIFT                  (4u)
+#define MTU2_TOLBR_OLS3N_SHIFT                  (5u)
+
+#define MTU2_TBTM_3_TTSA_SHIFT                  (0u)
+#define MTU2_TBTM_3_TTSB_SHIFT                  (1u)
+
+#define MTU2_TBTM_4_TTSA_SHIFT                  (0u)
+#define MTU2_TBTM_4_TTSB_SHIFT                  (1u)
+
+#define MTU2_TADCR_ITB4VE_SHIFT                 (0u)
+#define MTU2_TADCR_ITB3AE_SHIFT                 (1u)
+#define MTU2_TADCR_ITA4VE_SHIFT                 (2u)
+#define MTU2_TADCR_ITA3AE_SHIFT                 (3u)
+#define MTU2_TADCR_DT4BE_SHIFT                  (4u)
+#define MTU2_TADCR_UT4BE_SHIFT                  (5u)
+#define MTU2_TADCR_DT4AE_SHIFT                  (6u)
+#define MTU2_TADCR_UT4AE_SHIFT                  (7u)
+#define MTU2_TADCR_BF_SHIFT                     (14u)
+
+#define MTU2_TADCORA_4_D_SHIFT                  (0u)
+
+#define MTU2_TADCORB_4_D_SHIFT                  (0u)
+
+#define MTU2_TADCOBRA_4_D_SHIFT                 (0u)
+
+#define MTU2_TADCOBRB_4_D_SHIFT                 (0u)
+
+#define MTU2_TWCR_WRE_SHIFT                     (0u)
+#define MTU2_TWCR_CCE_SHIFT                     (7u)
+
+#define MTU2_TSTR_CST0_SHIFT                    (0u)
+#define MTU2_TSTR_CST1_SHIFT                    (1u)
+#define MTU2_TSTR_CST2_SHIFT                    (2u)
+#define MTU2_TSTR_CST3_SHIFT                    (6u)
+#define MTU2_TSTR_CST4_SHIFT                    (7u)
+
+#define MTU2_TSYR_SYNC0_SHIFT                   (0u)
+#define MTU2_TSYR_SYNC1_SHIFT                   (1u)
+#define MTU2_TSYR_SYNC2_SHIFT                   (2u)
+#define MTU2_TSYR_SYNC3_SHIFT                   (6u)
+#define MTU2_TSYR_SYNC4_SHIFT                   (7u)
+
+#define MTU2_TRWER_RWE_SHIFT                    (0u)
+
+#define MTU2_TMDR_0_BFA_SHIFT                   (4u)
+#define MTU2_TMDR_0_BFB_SHIFT                   (5u)
+#define MTU2_TMDR_0_BFE_SHIFT                   (6u)
+
+#define MTU2_TIORH_0_IOA_SHIFT                  (0u)
+#define MTU2_TIORH_0_IOB_SHIFT                  (4u)
+
+#define MTU2_TIORL_0_IOC_SHIFT                  (0u)
+#define MTU2_TIORL_0_IOD_SHIFT                  (4u)
+
+#define MTU2_TIER_0_TGIEC_SHIFT                 (2u)
+#define MTU2_TIER_0_TGIED_SHIFT                 (3u)
+
+#define MTU2_TSR_0_TGFC_SHIFT                   (2u)
+#define MTU2_TSR_0_TGFD_SHIFT                   (3u)
+
+#define MTU2_TGRC_0_D_SHIFT                     (0u)
+
+#define MTU2_TGRD_0_D_SHIFT                     (0u)
+
+#define MTU2_TGRE_0_D_SHIFT                     (0u)
+
+#define MTU2_TGRF_0_D_SHIFT                     (0u)
+
+#define MTU2_TIER2_0_TGIEE_SHIFT                (0u)
+#define MTU2_TIER2_0_TGIEF_SHIFT                (1u)
+
+#define MTU2_TSR2_0_TGFE_SHIFT                  (0u)
+#define MTU2_TSR2_0_TGFF_SHIFT                  (1u)
+
+#define MTU2_TBTM_0_TTSA_SHIFT                  (0u)
+#define MTU2_TBTM_0_TTSB_SHIFT                  (1u)
+#define MTU2_TBTM_0_TTSE_SHIFT                  (2u)
+
+#define MTU2_TIOR_1_IOA_SHIFT                   (0u)
+#define MTU2_TIOR_1_IOB_SHIFT                   (4u)
+
+#define MTU2_TIER_1_TCIEU_SHIFT                 (5u)
+
+#define MTU2_TSR_1_TCFU_SHIFT                   (5u)
+#define MTU2_TSR_1_TCFD_SHIFT                   (7u)
+
+#define MTU2_TICCR_I1AE_SHIFT                   (0u)
+#define MTU2_TICCR_I1BE_SHIFT                   (1u)
+#define MTU2_TICCR_I2AE_SHIFT                   (2u)
+#define MTU2_TICCR_I2BE_SHIFT                   (3u)
+
+
+#endif /* MTU2_IOBITMASK_H */
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/ostm_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/ostm_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/ostm_iobitmask.h	(revision 429)
@@ -0,0 +1,123 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : ostm_iobitmask.h
+* $Rev: 1115 $
+* $Date:: 2014-07-09 15:35:02 +0900#$
+* Description : OSTM register define header
+*******************************************************************************/
+#ifndef OSTM_IOBITMASK_H
+#define OSTM_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+/* ---- OSTM0 ---- */
+#define OSTM0_OSTMnCMP_OSTMnCMP                 (0xFFFFFFFFuL)
+
+#define OSTM0_OSTMnCNT_OSTMnCNT                 (0xFFFFFFFFuL)
+
+#define OSTM0_OSTMnTE_OSTMnTE                   (0x01u)
+
+#define OSTM0_OSTMnTS_OSTMnTS                   (0x01u)
+
+#define OSTM0_OSTMnTT_OSTMnTT                   (0x01u)
+
+#define OSTM0_OSTMnCTL_MD0                      (0x00000001uL)
+#define OSTM0_OSTMnCTL_MD1                      (0x00000002uL)
+
+/* ---- OSTM1 ---- */
+#define OSTM1_OSTMnCMP_OSTMnCMP                 (0xFFFFFFFFuL)
+
+#define OSTM1_OSTMnCNT_OSTMnCNT                 (0xFFFFFFFFuL)
+
+#define OSTM1_OSTMnTE_OSTMnTE                   (0x01u)
+
+#define OSTM1_OSTMnTS_OSTMnTS                   (0x01u)
+
+#define OSTM1_OSTMnTT_OSTMnTT                   (0x01u)
+
+#define OSTM1_OSTMnCTL_MD0                      (0x00000001uL)
+#define OSTM1_OSTMnCTL_MD1                      (0x00000002uL)
+
+/* ---- OSTMn ---- */
+#define OSTMn_OSTMnCMP_OSTMnCMP                 (0xFFFFFFFFuL)
+
+#define OSTMn_OSTMnCNT_OSTMnCNT                 (0xFFFFFFFFuL)
+
+#define OSTMn_OSTMnTE_OSTMnTE                   (0x01u)
+
+#define OSTMn_OSTMnTS_OSTMnTS                   (0x01u)
+
+#define OSTMn_OSTMnTT_OSTMnTT                   (0x01u)
+
+#define OSTMn_OSTMnCTL_MD0                      (0x00000001uL)
+#define OSTMn_OSTMnCTL_MD1                      (0x00000002uL)
+
+
+/* ==== Shift values for IO registers ==== */
+/* ---- OSTM0 ---- */
+#define OSTM0_OSTMnCMP_OSTMnCMP_SHIFT           (0u)
+
+#define OSTM0_OSTMnCNT_OSTMnCNT_SHIFT           (0u)
+
+#define OSTM0_OSTMnTE_OSTMnTE_SHIFT             (0u)
+
+#define OSTM0_OSTMnTS_OSTMnTS_SHIFT             (0u)
+
+#define OSTM0_OSTMnTT_OSTMnTT_SHIFT             (0u)
+
+#define OSTM0_OSTMnCTL_MD0_SHIFT                (0u)
+#define OSTM0_OSTMnCTL_MD1_SHIFT                (1u)
+
+/* ---- OSTM1 ---- */
+#define OSTM1_OSTMnCMP_OSTMnCMP_SHIFT           (0u)
+
+#define OSTM1_OSTMnCNT_OSTMnCNT_SHIFT           (0u)
+
+#define OSTM1_OSTMnTE_OSTMnTE_SHIFT             (0u)
+
+#define OSTM1_OSTMnTS_OSTMnTS_SHIFT             (0u)
+
+#define OSTM1_OSTMnTT_OSTMnTT_SHIFT             (0u)
+
+#define OSTM1_OSTMnCTL_MD0_SHIFT                (0u)
+#define OSTM1_OSTMnCTL_MD1_SHIFT                (1u)
+
+/* ---- OSTMn ---- */
+#define OSTMn_OSTMnCMP_OSTMnCMP_SHIFT           (0u)
+
+#define OSTMn_OSTMnCNT_OSTMnCNT_SHIFT           (0u)
+
+#define OSTMn_OSTMnTE_OSTMnTE_SHIFT             (0u)
+
+#define OSTMn_OSTMnTS_OSTMnTS_SHIFT             (0u)
+
+#define OSTMn_OSTMnTT_OSTMnTT_SHIFT             (0u)
+
+#define OSTMn_OSTMnCTL_MD0_SHIFT                (0u)
+#define OSTMn_OSTMnCTL_MD1_SHIFT                (1u)
+
+
+#endif /* OSTM_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/riic_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/riic_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/riic_iobitmask.h	(revision 429)
@@ -0,0 +1,231 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : riic_iobitmask.h
+* $Rev: 1114 $
+* $Date:: 2014-07-09 14:56:39 +0900#$
+* Description : RIIC register define header
+*******************************************************************************/
+#ifndef RIIC_IOBITMASK_H
+#define RIIC_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+#define RIICn_RIICnCR1_SDAI                     (0x01u)
+#define RIICn_RIICnCR1_SCLI                     (0x02u)
+#define RIICn_RIICnCR1_SDAO                     (0x04u)
+#define RIICn_RIICnCR1_SCLO                     (0x08u)
+#define RIICn_RIICnCR1_SOWP                     (0x10u)
+#define RIICn_RIICnCR1_CLO                      (0x20u)
+#define RIICn_RIICnCR1_IICRST                   (0x40u)
+#define RIICn_RIICnCR1_ICE                      (0x80u)
+
+#define RIICn_RIICnCR2_ST                       (0x02u)
+#define RIICn_RIICnCR2_RS                       (0x04u)
+#define RIICn_RIICnCR2_SP                       (0x08u)
+#define RIICn_RIICnCR2_TRS                      (0x20u)
+#define RIICn_RIICnCR2_MST                      (0x40u)
+#define RIICn_RIICnCR2_BBSY                     (0x80u)
+
+#define RIICn_RIICnMR1_BC                       (0x07u)
+#define RIICn_RIICnMR1_BCWP                     (0x08u)
+#define RIICn_RIICnMR1_CKS                      (0x70u)
+#define RIICn_RIICnMR1_MTWP                     (0x80u)
+
+#define RIICn_RIICnMR2_TMOS                     (0x01u)
+#define RIICn_RIICnMR2_TMOL                     (0x02u)
+#define RIICn_RIICnMR2_TMOH                     (0x04u)
+#define RIICn_RIICnMR2_SDDL                     (0x70u)
+#define RIICn_RIICnMR2_DLCS                     (0x80u)
+
+#define RIICn_RIICnMR3_NF                       (0x03u)
+#define RIICn_RIICnMR3_ACKBR                    (0x04u)
+#define RIICn_RIICnMR3_ACKBT                    (0x08u)
+#define RIICn_RIICnMR3_ACKWP                    (0x10u)
+#define RIICn_RIICnMR3_RDRFS                    (0x20u)
+#define RIICn_RIICnMR3_WAIT                     (0x40u)
+#define RIICn_RIICnMR3_SMBS                     (0x80u)
+
+#define RIICn_RIICnFER_TMOE                     (0x01u)
+#define RIICn_RIICnFER_MALE                     (0x02u)
+#define RIICn_RIICnFER_NALE                     (0x04u)
+#define RIICn_RIICnFER_SALE                     (0x08u)
+#define RIICn_RIICnFER_NACKE                    (0x10u)
+#define RIICn_RIICnFER_NFE                      (0x20u)
+#define RIICn_RIICnFER_SCLE                     (0x40u)
+#define RIICn_RIICnFER_FMPE                     (0x80u)
+
+#define RIICn_RIICnSER_SAR0E                    (0x01u)
+#define RIICn_RIICnSER_SAR1E                    (0x02u)
+#define RIICn_RIICnSER_SAR2E                    (0x04u)
+#define RIICn_RIICnSER_GCAE                     (0x08u)
+#define RIICn_RIICnSER_DIDE                     (0x20u)
+#define RIICn_RIICnSER_HOAE                     (0x80u)
+
+#define RIICn_RIICnIER_TMOIE                    (0x01u)
+#define RIICn_RIICnIER_ALIE                     (0x02u)
+#define RIICn_RIICnIER_STIE                     (0x04u)
+#define RIICn_RIICnIER_SPIE                     (0x08u)
+#define RIICn_RIICnIER_NAKIE                    (0x10u)
+#define RIICn_RIICnIER_RIE                      (0x20u)
+#define RIICn_RIICnIER_TEIE                     (0x40u)
+#define RIICn_RIICnIER_TIE                      (0x80u)
+
+#define RIICn_RIICnSR1_AAS0                     (0x01u)
+#define RIICn_RIICnSR1_AAS1                     (0x02u)
+#define RIICn_RIICnSR1_AAS2                     (0x04u)
+#define RIICn_RIICnSR1_GCA                      (0x08u)
+#define RIICn_RIICnSR1_DID                      (0x20u)
+#define RIICn_RIICnSR1_HOA                      (0x80u)
+
+#define RIICn_RIICnSR2_TMOF                     (0x01u)
+#define RIICn_RIICnSR2_AL                       (0x02u)
+#define RIICn_RIICnSR2_START                    (0x04u)
+#define RIICn_RIICnSR2_STOP                     (0x08u)
+#define RIICn_RIICnSR2_NACKF                    (0x10u)
+#define RIICn_RIICnSR2_RDRF                     (0x20u)
+#define RIICn_RIICnSR2_TEND                     (0x40u)
+#define RIICn_RIICnSR2_TDRE                     (0x80u)
+
+#define RIICn_RIICnSAR0_SVA0                    (0x0001u)
+#define RIICn_RIICnSAR0_SVA                     (0x03FEu)
+#define RIICn_RIICnSAR0_FSy                     (0x8000u)
+
+#define RIICn_RIICnSAR1_SVA0                    (0x0001u)
+#define RIICn_RIICnSAR1_SVA                     (0x03FEu)
+#define RIICn_RIICnSAR1_FSy                     (0x8000u)
+
+#define RIICn_RIICnSAR2_SVA0                    (0x0001u)
+#define RIICn_RIICnSAR2_SVA                     (0x03FEu)
+#define RIICn_RIICnSAR2_FSy                     (0x8000u)
+
+#define RIICn_RIICnBRL_BRL                      (0x1Fu)
+
+#define RIICn_RIICnBRH_BRH                      (0x1Fu)
+
+#define RIICn_RIICnDRT_DRT                      (0xFFu)
+
+#define RIICn_RIICnDRR_DRR                      (0xFFu)
+
+
+/* ==== Shift values for IO registers ==== */
+#define RIICn_RIICnCR1_SDAI_SHIFT               (0u)
+#define RIICn_RIICnCR1_SCLI_SHIFT               (1u)
+#define RIICn_RIICnCR1_SDAO_SHIFT               (2u)
+#define RIICn_RIICnCR1_SCLO_SHIFT               (3u)
+#define RIICn_RIICnCR1_SOWP_SHIFT               (4u)
+#define RIICn_RIICnCR1_CLO_SHIFT                (5u)
+#define RIICn_RIICnCR1_IICRST_SHIFT             (6u)
+#define RIICn_RIICnCR1_ICE_SHIFT                (7u)
+
+#define RIICn_RIICnCR2_ST_SHIFT                 (1u)
+#define RIICn_RIICnCR2_RS_SHIFT                 (2u)
+#define RIICn_RIICnCR2_SP_SHIFT                 (3u)
+#define RIICn_RIICnCR2_TRS_SHIFT                (5u)
+#define RIICn_RIICnCR2_MST_SHIFT                (6u)
+#define RIICn_RIICnCR2_BBSY_SHIFT               (7u)
+
+#define RIICn_RIICnMR1_BC_SHIFT                 (0u)
+#define RIICn_RIICnMR1_BCWP_SHIFT               (3u)
+#define RIICn_RIICnMR1_CKS_SHIFT                (4u)
+#define RIICn_RIICnMR1_MTWP_SHIFT               (7u)
+
+#define RIICn_RIICnMR2_TMOS_SHIFT               (0u)
+#define RIICn_RIICnMR2_TMOL_SHIFT               (1u)
+#define RIICn_RIICnMR2_TMOH_SHIFT               (2u)
+#define RIICn_RIICnMR2_SDDL_SHIFT               (4u)
+#define RIICn_RIICnMR2_DLCS_SHIFT               (7u)
+
+#define RIICn_RIICnMR3_NF_SHIFT                 (0u)
+#define RIICn_RIICnMR3_ACKBR_SHIFT              (2u)
+#define RIICn_RIICnMR3_ACKBT_SHIFT              (3u)
+#define RIICn_RIICnMR3_ACKWP_SHIFT              (4u)
+#define RIICn_RIICnMR3_RDRFS_SHIFT              (5u)
+#define RIICn_RIICnMR3_WAIT_SHIFT               (6u)
+#define RIICn_RIICnMR3_SMBS_SHIFT               (7u)
+
+#define RIICn_RIICnFER_TMOE_SHIFT               (0u)
+#define RIICn_RIICnFER_MALE_SHIFT               (1u)
+#define RIICn_RIICnFER_NALE_SHIFT               (2u)
+#define RIICn_RIICnFER_SALE_SHIFT               (3u)
+#define RIICn_RIICnFER_NACKE_SHIFT              (4u)
+#define RIICn_RIICnFER_NFE_SHIFT                (5u)
+#define RIICn_RIICnFER_SCLE_SHIFT               (6u)
+#define RIICn_RIICnFER_FMPE_SHIFT               (7u)
+
+#define RIICn_RIICnSER_SAR0E_SHIFT              (0u)
+#define RIICn_RIICnSER_SAR1E_SHIFT              (1u)
+#define RIICn_RIICnSER_SAR2E_SHIFT              (2u)
+#define RIICn_RIICnSER_GCAE_SHIFT               (3u)
+#define RIICn_RIICnSER_DIDE_SHIFT               (5u)
+#define RIICn_RIICnSER_HOAE_SHIFT               (7u)
+
+#define RIICn_RIICnIER_TMOIE_SHIFT              (0u)
+#define RIICn_RIICnIER_ALIE_SHIFT               (1u)
+#define RIICn_RIICnIER_STIE_SHIFT               (2u)
+#define RIICn_RIICnIER_SPIE_SHIFT               (3u)
+#define RIICn_RIICnIER_NAKIE_SHIFT              (4u)
+#define RIICn_RIICnIER_RIE_SHIFT                (5u)
+#define RIICn_RIICnIER_TEIE_SHIFT               (6u)
+#define RIICn_RIICnIER_TIE_SHIFT                (7u)
+
+#define RIICn_RIICnSR1_AAS0_SHIFT               (0u)
+#define RIICn_RIICnSR1_AAS1_SHIFT               (1u)
+#define RIICn_RIICnSR1_AAS2_SHIFT               (2u)
+#define RIICn_RIICnSR1_GCA_SHIFT                (3u)
+#define RIICn_RIICnSR1_DID_SHIFT                (5u)
+#define RIICn_RIICnSR1_HOA_SHIFT                (7u)
+
+#define RIICn_RIICnSR2_TMOF_SHIFT               (0u)
+#define RIICn_RIICnSR2_AL_SHIFT                 (1u)
+#define RIICn_RIICnSR2_START_SHIFT              (2u)
+#define RIICn_RIICnSR2_STOP_SHIFT               (3u)
+#define RIICn_RIICnSR2_NACKF_SHIFT              (4u)
+#define RIICn_RIICnSR2_RDRF_SHIFT               (5u)
+#define RIICn_RIICnSR2_TEND_SHIFT               (6u)
+#define RIICn_RIICnSR2_TDRE_SHIFT               (7u)
+
+#define RIICn_RIICnSAR0_SVA0_SHIFT              (0u)
+#define RIICn_RIICnSAR0_SVA_SHIFT               (1u)
+#define RIICn_RIICnSAR0_FSy_SHIFT               (15u)
+
+#define RIICn_RIICnSAR1_SVA0_SHIFT              (0u)
+#define RIICn_RIICnSAR1_SVA_SHIFT               (1u)
+#define RIICn_RIICnSAR1_FSy_SHIFT               (15u)
+
+#define RIICn_RIICnSAR2_SVA0_SHIFT              (0u)
+#define RIICn_RIICnSAR2_SVA_SHIFT               (1u)
+#define RIICn_RIICnSAR2_FSy_SHIFT               (15u)
+
+#define RIICn_RIICnBRL_BRL_SHIFT                (0u)
+
+#define RIICn_RIICnBRH_BRH_SHIFT                (0u)
+
+#define RIICn_RIICnDRT_DRT_SHIFT                (0u)
+
+#define RIICn_RIICnDRR_DRR_SHIFT                (0u)
+
+
+#endif /* RIIC_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/rspi_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/rspi_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/rspi_iobitmask.h	(revision 429)
@@ -0,0 +1,215 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : rspi_iobitmask.h
+* $Rev: 1114 $
+* $Date:: 2014-07-09 14:56:39 +0900#$
+* Description : Renesas Serial Peripheral Interface register define header
+*******************************************************************************/
+#ifndef RSPI_IOBITMASK_H
+#define RSPI_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+#define RSPIn_SPCR_MODFEN                   (0x04u)
+#define RSPIn_SPCR_MSTR                     (0x08u)
+#define RSPIn_SPCR_SPEIE                    (0x10u)
+#define RSPIn_SPCR_SPTIE                    (0x20u)
+#define RSPIn_SPCR_SPE                      (0x40u)
+#define RSPIn_SPCR_SPRIE                    (0x80u)
+
+#define RSPIn_SSLP_SSL0P                    (0x01u)
+
+#define RSPIn_SPPCR_SPLP                    (0x01u)
+#define RSPIn_SPPCR_MOIFV                   (0x10u)
+#define RSPIn_SPPCR_MOIFE                   (0x20u)
+
+#define RSPIn_SPSR_OVRF                     (0x01u)
+#define RSPIn_SPSR_MODF                     (0x04u)
+#define RSPIn_SPSR_SPTEF                    (0x20u)
+#define RSPIn_SPSR_TEND                     (0x40u)
+#define RSPIn_SPSR_SPRF                     (0x80u)
+
+#define RSPIn_SPDR_UINT32                   (0xFFFFFFFFuL)
+
+#define RSPIn_SPDR_UINT16                   (0xFFFFu)
+
+#define RSPIn_SPDR_UINT8                    (0xFFu)
+
+#define RSPIn_SPSCR_SPSLN                   (0x03u)
+
+#define RSPIn_SPSSR_SPCP                    (0x03u)
+
+#define RSPIn_SPBR_SPR                      (0xFFu)
+
+#define RSPIn_SPDCR_SPLW                    (0x60u)
+#define RSPIn_SPDCR_TXDMY                   (0x80u)
+
+#define RSPIn_SPCKD_SCKDL                   (0x07u)
+
+#define RSPIn_SSLND_SLNDL                   (0x07u)
+
+#define RSPIn_SPND_SPNDL                    (0x07u)
+
+#define RSPIn_SPCMD0_CPHA                   (0x0001u)
+#define RSPIn_SPCMD0_CPOL                   (0x0002u)
+#define RSPIn_SPCMD0_BRDV                   (0x000Cu)
+#define RSPIn_SPCMD0_SSLKP                  (0x0080u)
+#define RSPIn_SPCMD0_SPB                    (0x0F00u)
+#define RSPIn_SPCMD0_LSBF                   (0x1000u)
+#define RSPIn_SPCMD0_SPNDEN                 (0x2000u)
+#define RSPIn_SPCMD0_SLNDEN                 (0x4000u)
+#define RSPIn_SPCMD0_SCKDEN                 (0x8000u)
+
+#define RSPIn_SPCMD1_CPHA                   (0x0001u)
+#define RSPIn_SPCMD1_CPOL                   (0x0002u)
+#define RSPIn_SPCMD1_BRDV                   (0x000Cu)
+#define RSPIn_SPCMD1_SSLKP                  (0x0080u)
+#define RSPIn_SPCMD1_SPB                    (0x0F00u)
+#define RSPIn_SPCMD1_LSBF                   (0x1000u)
+#define RSPIn_SPCMD1_SPNDEN                 (0x2000u)
+#define RSPIn_SPCMD1_SLNDEN                 (0x4000u)
+#define RSPIn_SPCMD1_SCKDEN                 (0x8000u)
+
+#define RSPIn_SPCMD2_CPHA                   (0x0001u)
+#define RSPIn_SPCMD2_CPOL                   (0x0002u)
+#define RSPIn_SPCMD2_BRDV                   (0x000Cu)
+#define RSPIn_SPCMD2_SSLKP                  (0x0080u)
+#define RSPIn_SPCMD2_SPB                    (0x0F00u)
+#define RSPIn_SPCMD2_LSBF                   (0x1000u)
+#define RSPIn_SPCMD2_SPNDEN                 (0x2000u)
+#define RSPIn_SPCMD2_SLNDEN                 (0x4000u)
+#define RSPIn_SPCMD2_SCKDEN                 (0x8000u)
+
+#define RSPIn_SPCMD3_CPHA                   (0x0001u)
+#define RSPIn_SPCMD3_CPOL                   (0x0002u)
+#define RSPIn_SPCMD3_BRDV                   (0x000Cu)
+#define RSPIn_SPCMD3_SSLKP                  (0x0080u)
+#define RSPIn_SPCMD3_SPB                    (0x0F00u)
+#define RSPIn_SPCMD3_LSBF                   (0x1000u)
+#define RSPIn_SPCMD3_SPNDEN                 (0x2000u)
+#define RSPIn_SPCMD3_SLNDEN                 (0x4000u)
+#define RSPIn_SPCMD3_SCKDEN                 (0x8000u)
+
+#define RSPIn_SPBFCR_RXTRG                  (0x07u)
+#define RSPIn_SPBFCR_TXTRG                  (0x30u)
+#define RSPIn_SPBFCR_RXRST                  (0x40u)
+#define RSPIn_SPBFCR_TXRST                  (0x80u)
+
+#define RSPIn_SPBFDR_R                      (0x003Fu)
+#define RSPIn_SPBFDR_T                      (0x0F00u)
+
+
+/* ==== Shift values for IO registers ==== */
+#define RSPIn_SPCR_MODFEN_SHIFT             (2u)
+#define RSPIn_SPCR_MSTR_SHIFT               (3u)
+#define RSPIn_SPCR_SPEIE_SHIFT              (4u)
+#define RSPIn_SPCR_SPTIE_SHIFT              (5u)
+#define RSPIn_SPCR_SPE_SHIFT                (6u)
+#define RSPIn_SPCR_SPRIE_SHIFT              (7u)
+
+#define RSPIn_SSLP_SSL0P_SHIFT              (0u)
+
+#define RSPIn_SPPCR_SPLP_SHIFT              (0u)
+#define RSPIn_SPPCR_MOIFV_SHIFT             (4u)
+#define RSPIn_SPPCR_MOIFE_SHIFT             (5u)
+
+#define RSPIn_SPSR_OVRF_SHIFT               (0u)
+#define RSPIn_SPSR_MODF_SHIFT               (2u)
+#define RSPIn_SPSR_SPTEF_SHIFT              (5u)
+#define RSPIn_SPSR_TEND_SHIFT               (6u)
+#define RSPIn_SPSR_SPRF_SHIFT               (7u)
+
+#define RSPIn_SPDR_UINT32_SHIFT             (0u)
+
+#define RSPIn_SPDR_UINT16_SHIFT             (0u)
+
+#define RSPIn_SPDR_UINT8_SHIFT              (0u)
+
+#define RSPIn_SPSCR_SPSLN_SHIFT             (0u)
+
+#define RSPIn_SPSSR_SPCP_SHIFT              (0u)
+
+#define RSPIn_SPBR_SPR_SHIFT                (0u)
+
+#define RSPIn_SPDCR_SPLW_SHIFT              (5u)
+#define RSPIn_SPDCR_TXDMY_SHIFT             (7u)
+
+#define RSPIn_SPCKD_SCKDL_SHIFT             (0u)
+
+#define RSPIn_SSLND_SLNDL_SHIFT             (0u)
+
+#define RSPIn_SPND_SPNDL_SHIFT              (0u)
+
+#define RSPIn_SPCMD0_CPHA_SHIFT             (0u)
+#define RSPIn_SPCMD0_CPOL_SHIFT             (1u)
+#define RSPIn_SPCMD0_BRDV_SHIFT             (2u)
+#define RSPIn_SPCMD0_SSLKP_SHIFT            (7u)
+#define RSPIn_SPCMD0_SPB_SHIFT              (8u)
+#define RSPIn_SPCMD0_LSBF_SHIFT             (12u)
+#define RSPIn_SPCMD0_SPNDEN_SHIFT           (13u)
+#define RSPIn_SPCMD0_SLNDEN_SHIFT           (14u)
+#define RSPIn_SPCMD0_SCKDEN_SHIFT           (15u)
+
+#define RSPIn_SPCMD1_CPHA_SHIFT             (0u)
+#define RSPIn_SPCMD1_CPOL_SHIFT             (1u)
+#define RSPIn_SPCMD1_BRDV_SHIFT             (2u)
+#define RSPIn_SPCMD1_SSLKP_SHIFT            (7u)
+#define RSPIn_SPCMD1_SPB_SHIFT              (8u)
+#define RSPIn_SPCMD1_LSBF_SHIFT             (12u)
+#define RSPIn_SPCMD1_SPNDEN_SHIFT           (13u)
+#define RSPIn_SPCMD1_SLNDEN_SHIFT           (14u)
+#define RSPIn_SPCMD1_SCKDEN_SHIFT           (15u)
+
+#define RSPIn_SPCMD2_CPHA_SHIFT             (0u)
+#define RSPIn_SPCMD2_CPOL_SHIFT             (1u)
+#define RSPIn_SPCMD2_BRDV_SHIFT             (2u)
+#define RSPIn_SPCMD2_SSLKP_SHIFT            (7u)
+#define RSPIn_SPCMD2_SPB_SHIFT              (8u)
+#define RSPIn_SPCMD2_LSBF_SHIFT             (12u)
+#define RSPIn_SPCMD2_SPNDEN_SHIFT           (13u)
+#define RSPIn_SPCMD2_SLNDEN_SHIFT           (14u)
+#define RSPIn_SPCMD2_SCKDEN_SHIFT           (15u)
+
+#define RSPIn_SPCMD3_CPHA_SHIFT             (0u)
+#define RSPIn_SPCMD3_CPOL_SHIFT             (1u)
+#define RSPIn_SPCMD3_BRDV_SHIFT             (2u)
+#define RSPIn_SPCMD3_SSLKP_SHIFT            (7u)
+#define RSPIn_SPCMD3_SPB_SHIFT              (8u)
+#define RSPIn_SPCMD3_LSBF_SHIFT             (12u)
+#define RSPIn_SPCMD3_SPNDEN_SHIFT           (13u)
+#define RSPIn_SPCMD3_SLNDEN_SHIFT           (14u)
+#define RSPIn_SPCMD3_SCKDEN_SHIFT           (15u)
+
+#define RSPIn_SPBFCR_RXTRG_SHIFT            (0u)
+#define RSPIn_SPBFCR_TXTRG_SHIFT            (4u)
+#define RSPIn_SPBFCR_RXRST_SHIFT            (6u)
+#define RSPIn_SPBFCR_TXRST_SHIFT            (7u)
+
+#define RSPIn_SPBFDR_R_SHIFT                (0u)
+#define RSPIn_SPBFDR_T_SHIFT                (8u)
+
+
+#endif /* RSPI_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/scif_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/scif_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/scif_iobitmask.h	(revision 429)
@@ -0,0 +1,1065 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : scif_iobitmask.h
+* $Rev: 1115 $
+* $Date:: 2014-07-09 15:35:02 +0900#$
+* Description : SCIF register define header
+*******************************************************************************/
+#ifndef SCIF_IOBITMASK_H
+#define SCIF_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+/* ---- SCIF0 ---- */
+#define SCIF0_SCSMR_CKS                         (0x0003u)
+#define SCIF0_SCSMR_STOP                        (0x0008u)
+#define SCIF0_SCSMR_OE                          (0x0010u)
+#define SCIF0_SCSMR_PE                          (0x0020u)
+#define SCIF0_SCSMR_CHR                         (0x0040u)
+#define SCIF0_SCSMR_CA                          (0x0080u)
+
+#define SCIF0_SCBRR_D                           (0xFFu)
+
+#define SCIF0_SCSCR_CKE                         (0x0003u)
+#define SCIF0_SCSCR_REIE                        (0x0008u)
+#define SCIF0_SCSCR_RE                          (0x0010u)
+#define SCIF0_SCSCR_TE                          (0x0020u)
+#define SCIF0_SCSCR_RIE                         (0x0040u)
+#define SCIF0_SCSCR_TIE                         (0x0080u)
+
+#define SCIF0_SCFTDR_D                          (0xFFu)
+
+#define SCIF0_SCFSR_DR                          (0x0001u)
+#define SCIF0_SCFSR_RDF                         (0x0002u)
+#define SCIF0_SCFSR_PER                         (0x0004u)
+#define SCIF0_SCFSR_FER                         (0x0008u)
+#define SCIF0_SCFSR_BRK                         (0x0010u)
+#define SCIF0_SCFSR_TDFE                        (0x0020u)
+#define SCIF0_SCFSR_TEND                        (0x0040u)
+#define SCIF0_SCFSR_ER                          (0x0080u)
+#define SCIF0_SCFSR_FERN                        (0x0F00u)
+#define SCIF0_SCFSR_PERN                        (0xF000u)
+
+#define SCIF0_SCFRDR_D                          (0xFFu)
+
+#define SCIF0_SCFCR_LOOP                        (0x0001u)
+#define SCIF0_SCFCR_RFRST                       (0x0002u)
+#define SCIF0_SCFCR_TFRST                       (0x0004u)
+#define SCIF0_SCFCR_MCE                         (0x0008u)
+#define SCIF0_SCFCR_TTRG                        (0x0030u)
+#define SCIF0_SCFCR_RTRG                        (0x00C0u)
+#define SCIF0_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIF0_SCFDR_R                           (0x001Fu)
+#define SCIF0_SCFDR_T                           (0x1F00u)
+
+#define SCIF0_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIF0_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIF0_SCSPTR_SCKDT                      (0x0004u)
+#define SCIF0_SCSPTR_SCKIO                      (0x0008u)
+#define SCIF0_SCSPTR_CTSDT                      (0x0010u)
+#define SCIF0_SCSPTR_CTSIO                      (0x0020u)
+#define SCIF0_SCSPTR_RTSDT                      (0x0040u)
+#define SCIF0_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIF0_SCLSR_ORER                        (0x0001u)
+
+#define SCIF0_SCEMR_ABCS                        (0x0001u)
+#define SCIF0_SCEMR_BGDM                        (0x0080u)
+
+/* ---- SCIF1 ---- */
+#define SCIF1_SCSMR_CKS                         (0x0003u)
+#define SCIF1_SCSMR_STOP                        (0x0008u)
+#define SCIF1_SCSMR_OE                          (0x0010u)
+#define SCIF1_SCSMR_PE                          (0x0020u)
+#define SCIF1_SCSMR_CHR                         (0x0040u)
+#define SCIF1_SCSMR_CA                          (0x0080u)
+
+#define SCIF1_SCBRR_D                           (0xFFu)
+
+#define SCIF1_SCSCR_CKE                         (0x0003u)
+#define SCIF1_SCSCR_REIE                        (0x0008u)
+#define SCIF1_SCSCR_RE                          (0x0010u)
+#define SCIF1_SCSCR_TE                          (0x0020u)
+#define SCIF1_SCSCR_RIE                         (0x0040u)
+#define SCIF1_SCSCR_TIE                         (0x0080u)
+
+#define SCIF1_SCFTDR_D                          (0xFFu)
+
+#define SCIF1_SCFSR_DR                          (0x0001u)
+#define SCIF1_SCFSR_RDF                         (0x0002u)
+#define SCIF1_SCFSR_PER                         (0x0004u)
+#define SCIF1_SCFSR_FER                         (0x0008u)
+#define SCIF1_SCFSR_BRK                         (0x0010u)
+#define SCIF1_SCFSR_TDFE                        (0x0020u)
+#define SCIF1_SCFSR_TEND                        (0x0040u)
+#define SCIF1_SCFSR_ER                          (0x0080u)
+#define SCIF1_SCFSR_FERN                        (0x0F00u)
+#define SCIF1_SCFSR_PERN                        (0xF000u)
+
+#define SCIF1_SCFRDR_D                          (0xFFu)
+
+#define SCIF1_SCFCR_LOOP                        (0x0001u)
+#define SCIF1_SCFCR_RFRST                       (0x0002u)
+#define SCIF1_SCFCR_TFRST                       (0x0004u)
+#define SCIF1_SCFCR_MCE                         (0x0008u)
+#define SCIF1_SCFCR_TTRG                        (0x0030u)
+#define SCIF1_SCFCR_RTRG                        (0x00C0u)
+#define SCIF1_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIF1_SCFDR_R                           (0x001Fu)
+#define SCIF1_SCFDR_T                           (0x1F00u)
+
+#define SCIF1_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIF1_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIF1_SCSPTR_SCKDT                      (0x0004u)
+#define SCIF1_SCSPTR_SCKIO                      (0x0008u)
+#define SCIF1_SCSPTR_CTSDT                      (0x0010u)
+#define SCIF1_SCSPTR_CTSIO                      (0x0020u)
+#define SCIF1_SCSPTR_RTSDT                      (0x0040u)
+#define SCIF1_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIF1_SCLSR_ORER                        (0x0001u)
+
+#define SCIF1_SCEMR_ABCS                        (0x0001u)
+#define SCIF1_SCEMR_BGDM                        (0x0080u)
+
+/* ---- SCIF2 ---- */
+#define SCIF2_SCSMR_CKS                         (0x0003u)
+#define SCIF2_SCSMR_STOP                        (0x0008u)
+#define SCIF2_SCSMR_OE                          (0x0010u)
+#define SCIF2_SCSMR_PE                          (0x0020u)
+#define SCIF2_SCSMR_CHR                         (0x0040u)
+#define SCIF2_SCSMR_CA                          (0x0080u)
+
+#define SCIF2_SCBRR_D                           (0xFFu)
+
+#define SCIF2_SCSCR_CKE                         (0x0003u)
+#define SCIF2_SCSCR_REIE                        (0x0008u)
+#define SCIF2_SCSCR_RE                          (0x0010u)
+#define SCIF2_SCSCR_TE                          (0x0020u)
+#define SCIF2_SCSCR_RIE                         (0x0040u)
+#define SCIF2_SCSCR_TIE                         (0x0080u)
+
+#define SCIF2_SCFTDR_D                          (0xFFu)
+
+#define SCIF2_SCFSR_DR                          (0x0001u)
+#define SCIF2_SCFSR_RDF                         (0x0002u)
+#define SCIF2_SCFSR_PER                         (0x0004u)
+#define SCIF2_SCFSR_FER                         (0x0008u)
+#define SCIF2_SCFSR_BRK                         (0x0010u)
+#define SCIF2_SCFSR_TDFE                        (0x0020u)
+#define SCIF2_SCFSR_TEND                        (0x0040u)
+#define SCIF2_SCFSR_ER                          (0x0080u)
+#define SCIF2_SCFSR_FERN                        (0x0F00u)
+#define SCIF2_SCFSR_PERN                        (0xF000u)
+
+#define SCIF2_SCFRDR_D                          (0xFFu)
+
+#define SCIF2_SCFCR_LOOP                        (0x0001u)
+#define SCIF2_SCFCR_RFRST                       (0x0002u)
+#define SCIF2_SCFCR_TFRST                       (0x0004u)
+#define SCIF2_SCFCR_MCE                         (0x0008u)
+#define SCIF2_SCFCR_TTRG                        (0x0030u)
+#define SCIF2_SCFCR_RTRG                        (0x00C0u)
+#define SCIF2_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIF2_SCFDR_R                           (0x001Fu)
+#define SCIF2_SCFDR_T                           (0x1F00u)
+
+#define SCIF2_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIF2_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIF2_SCSPTR_SCKDT                      (0x0004u)
+#define SCIF2_SCSPTR_SCKIO                      (0x0008u)
+#define SCIF2_SCSPTR_CTSDT                      (0x0010u)
+#define SCIF2_SCSPTR_CTSIO                      (0x0020u)
+#define SCIF2_SCSPTR_RTSDT                      (0x0040u)
+#define SCIF2_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIF2_SCLSR_ORER                        (0x0001u)
+
+#define SCIF2_SCEMR_ABCS                        (0x0001u)
+#define SCIF2_SCEMR_BGDM                        (0x0080u)
+
+/* ---- SCIF3 ---- */
+#define SCIF3_SCSMR_CKS                         (0x0003u)
+#define SCIF3_SCSMR_STOP                        (0x0008u)
+#define SCIF3_SCSMR_OE                          (0x0010u)
+#define SCIF3_SCSMR_PE                          (0x0020u)
+#define SCIF3_SCSMR_CHR                         (0x0040u)
+#define SCIF3_SCSMR_CA                          (0x0080u)
+
+#define SCIF3_SCBRR_D                           (0xFFu)
+
+#define SCIF3_SCSCR_CKE                         (0x0003u)
+#define SCIF3_SCSCR_REIE                        (0x0008u)
+#define SCIF3_SCSCR_RE                          (0x0010u)
+#define SCIF3_SCSCR_TE                          (0x0020u)
+#define SCIF3_SCSCR_RIE                         (0x0040u)
+#define SCIF3_SCSCR_TIE                         (0x0080u)
+
+#define SCIF3_SCFTDR_D                          (0xFFu)
+
+#define SCIF3_SCFSR_DR                          (0x0001u)
+#define SCIF3_SCFSR_RDF                         (0x0002u)
+#define SCIF3_SCFSR_PER                         (0x0004u)
+#define SCIF3_SCFSR_FER                         (0x0008u)
+#define SCIF3_SCFSR_BRK                         (0x0010u)
+#define SCIF3_SCFSR_TDFE                        (0x0020u)
+#define SCIF3_SCFSR_TEND                        (0x0040u)
+#define SCIF3_SCFSR_ER                          (0x0080u)
+#define SCIF3_SCFSR_FERN                        (0x0F00u)
+#define SCIF3_SCFSR_PERN                        (0xF000u)
+
+#define SCIF3_SCFRDR_D                          (0xFFu)
+
+#define SCIF3_SCFCR_LOOP                        (0x0001u)
+#define SCIF3_SCFCR_RFRST                       (0x0002u)
+#define SCIF3_SCFCR_TFRST                       (0x0004u)
+#define SCIF3_SCFCR_MCE                         (0x0008u)
+#define SCIF3_SCFCR_TTRG                        (0x0030u)
+#define SCIF3_SCFCR_RTRG                        (0x00C0u)
+#define SCIF3_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIF3_SCFDR_R                           (0x001Fu)
+#define SCIF3_SCFDR_T                           (0x1F00u)
+
+#define SCIF3_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIF3_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIF3_SCSPTR_SCKDT                      (0x0004u)
+#define SCIF3_SCSPTR_SCKIO                      (0x0008u)
+#define SCIF3_SCSPTR_CTSDT                      (0x0010u)
+#define SCIF3_SCSPTR_CTSIO                      (0x0020u)
+#define SCIF3_SCSPTR_RTSDT                      (0x0040u)
+#define SCIF3_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIF3_SCLSR_ORER                        (0x0001u)
+
+#define SCIF3_SCEMR_ABCS                        (0x0001u)
+#define SCIF3_SCEMR_BGDM                        (0x0080u)
+
+/* ---- SCIF4 ---- */
+#define SCIF4_SCSMR_CKS                         (0x0003u)
+#define SCIF4_SCSMR_STOP                        (0x0008u)
+#define SCIF4_SCSMR_OE                          (0x0010u)
+#define SCIF4_SCSMR_PE                          (0x0020u)
+#define SCIF4_SCSMR_CHR                         (0x0040u)
+#define SCIF4_SCSMR_CA                          (0x0080u)
+
+#define SCIF4_SCBRR_D                           (0xFFu)
+
+#define SCIF4_SCSCR_CKE                         (0x0003u)
+#define SCIF4_SCSCR_REIE                        (0x0008u)
+#define SCIF4_SCSCR_RE                          (0x0010u)
+#define SCIF4_SCSCR_TE                          (0x0020u)
+#define SCIF4_SCSCR_RIE                         (0x0040u)
+#define SCIF4_SCSCR_TIE                         (0x0080u)
+
+#define SCIF4_SCFTDR_D                          (0xFFu)
+
+#define SCIF4_SCFSR_DR                          (0x0001u)
+#define SCIF4_SCFSR_RDF                         (0x0002u)
+#define SCIF4_SCFSR_PER                         (0x0004u)
+#define SCIF4_SCFSR_FER                         (0x0008u)
+#define SCIF4_SCFSR_BRK                         (0x0010u)
+#define SCIF4_SCFSR_TDFE                        (0x0020u)
+#define SCIF4_SCFSR_TEND                        (0x0040u)
+#define SCIF4_SCFSR_ER                          (0x0080u)
+#define SCIF4_SCFSR_FERN                        (0x0F00u)
+#define SCIF4_SCFSR_PERN                        (0xF000u)
+
+#define SCIF4_SCFRDR_D                          (0xFFu)
+
+#define SCIF4_SCFCR_LOOP                        (0x0001u)
+#define SCIF4_SCFCR_RFRST                       (0x0002u)
+#define SCIF4_SCFCR_TFRST                       (0x0004u)
+#define SCIF4_SCFCR_MCE                         (0x0008u)
+#define SCIF4_SCFCR_TTRG                        (0x0030u)
+#define SCIF4_SCFCR_RTRG                        (0x00C0u)
+#define SCIF4_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIF4_SCFDR_R                           (0x001Fu)
+#define SCIF4_SCFDR_T                           (0x1F00u)
+
+#define SCIF4_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIF4_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIF4_SCSPTR_SCKDT                      (0x0004u)
+#define SCIF4_SCSPTR_SCKIO                      (0x0008u)
+#define SCIF4_SCSPTR_CTSDT                      (0x0010u)
+#define SCIF4_SCSPTR_CTSIO                      (0x0020u)
+#define SCIF4_SCSPTR_RTSDT                      (0x0040u)
+#define SCIF4_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIF4_SCLSR_ORER                        (0x0001u)
+
+#define SCIF4_SCEMR_ABCS                        (0x0001u)
+#define SCIF4_SCEMR_BGDM                        (0x0080u)
+
+/* ---- SCIF5 ---- */
+#define SCIF5_SCSMR_CKS                         (0x0003u)
+#define SCIF5_SCSMR_STOP                        (0x0008u)
+#define SCIF5_SCSMR_OE                          (0x0010u)
+#define SCIF5_SCSMR_PE                          (0x0020u)
+#define SCIF5_SCSMR_CHR                         (0x0040u)
+#define SCIF5_SCSMR_CA                          (0x0080u)
+
+#define SCIF5_SCBRR_D                           (0xFFu)
+
+#define SCIF5_SCSCR_CKE                         (0x0003u)
+#define SCIF5_SCSCR_REIE                        (0x0008u)
+#define SCIF5_SCSCR_RE                          (0x0010u)
+#define SCIF5_SCSCR_TE                          (0x0020u)
+#define SCIF5_SCSCR_RIE                         (0x0040u)
+#define SCIF5_SCSCR_TIE                         (0x0080u)
+
+#define SCIF5_SCFTDR_D                          (0xFFu)
+
+#define SCIF5_SCFSR_DR                          (0x0001u)
+#define SCIF5_SCFSR_RDF                         (0x0002u)
+#define SCIF5_SCFSR_PER                         (0x0004u)
+#define SCIF5_SCFSR_FER                         (0x0008u)
+#define SCIF5_SCFSR_BRK                         (0x0010u)
+#define SCIF5_SCFSR_TDFE                        (0x0020u)
+#define SCIF5_SCFSR_TEND                        (0x0040u)
+#define SCIF5_SCFSR_ER                          (0x0080u)
+#define SCIF5_SCFSR_FERN                        (0x0F00u)
+#define SCIF5_SCFSR_PERN                        (0xF000u)
+
+#define SCIF5_SCFRDR_D                          (0xFFu)
+
+#define SCIF5_SCFCR_LOOP                        (0x0001u)
+#define SCIF5_SCFCR_RFRST                       (0x0002u)
+#define SCIF5_SCFCR_TFRST                       (0x0004u)
+#define SCIF5_SCFCR_MCE                         (0x0008u)
+#define SCIF5_SCFCR_TTRG                        (0x0030u)
+#define SCIF5_SCFCR_RTRG                        (0x00C0u)
+#define SCIF5_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIF5_SCFDR_R                           (0x001Fu)
+#define SCIF5_SCFDR_T                           (0x1F00u)
+
+#define SCIF5_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIF5_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIF5_SCSPTR_SCKDT                      (0x0004u)
+#define SCIF5_SCSPTR_SCKIO                      (0x0008u)
+#define SCIF5_SCSPTR_CTSDT                      (0x0010u)
+#define SCIF5_SCSPTR_CTSIO                      (0x0020u)
+#define SCIF5_SCSPTR_RTSDT                      (0x0040u)
+#define SCIF5_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIF5_SCLSR_ORER                        (0x0001u)
+
+#define SCIF5_SCEMR_ABCS                        (0x0001u)
+#define SCIF5_SCEMR_BGDM                        (0x0080u)
+
+/* ---- SCIF6 ---- */
+#define SCIF6_SCSMR_CKS                         (0x0003u)
+#define SCIF6_SCSMR_STOP                        (0x0008u)
+#define SCIF6_SCSMR_OE                          (0x0010u)
+#define SCIF6_SCSMR_PE                          (0x0020u)
+#define SCIF6_SCSMR_CHR                         (0x0040u)
+#define SCIF6_SCSMR_CA                          (0x0080u)
+
+#define SCIF6_SCBRR_D                           (0xFFu)
+
+#define SCIF6_SCSCR_CKE                         (0x0003u)
+#define SCIF6_SCSCR_REIE                        (0x0008u)
+#define SCIF6_SCSCR_RE                          (0x0010u)
+#define SCIF6_SCSCR_TE                          (0x0020u)
+#define SCIF6_SCSCR_RIE                         (0x0040u)
+#define SCIF6_SCSCR_TIE                         (0x0080u)
+
+#define SCIF6_SCFTDR_D                          (0xFFu)
+
+#define SCIF6_SCFSR_DR                          (0x0001u)
+#define SCIF6_SCFSR_RDF                         (0x0002u)
+#define SCIF6_SCFSR_PER                         (0x0004u)
+#define SCIF6_SCFSR_FER                         (0x0008u)
+#define SCIF6_SCFSR_BRK                         (0x0010u)
+#define SCIF6_SCFSR_TDFE                        (0x0020u)
+#define SCIF6_SCFSR_TEND                        (0x0040u)
+#define SCIF6_SCFSR_ER                          (0x0080u)
+#define SCIF6_SCFSR_FERN                        (0x0F00u)
+#define SCIF6_SCFSR_PERN                        (0xF000u)
+
+#define SCIF6_SCFRDR_D                          (0xFFu)
+
+#define SCIF6_SCFCR_LOOP                        (0x0001u)
+#define SCIF6_SCFCR_RFRST                       (0x0002u)
+#define SCIF6_SCFCR_TFRST                       (0x0004u)
+#define SCIF6_SCFCR_MCE                         (0x0008u)
+#define SCIF6_SCFCR_TTRG                        (0x0030u)
+#define SCIF6_SCFCR_RTRG                        (0x00C0u)
+#define SCIF6_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIF6_SCFDR_R                           (0x001Fu)
+#define SCIF6_SCFDR_T                           (0x1F00u)
+
+#define SCIF6_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIF6_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIF6_SCSPTR_SCKDT                      (0x0004u)
+#define SCIF6_SCSPTR_SCKIO                      (0x0008u)
+#define SCIF6_SCSPTR_CTSDT                      (0x0010u)
+#define SCIF6_SCSPTR_CTSIO                      (0x0020u)
+#define SCIF6_SCSPTR_RTSDT                      (0x0040u)
+#define SCIF6_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIF6_SCLSR_ORER                        (0x0001u)
+
+#define SCIF6_SCEMR_ABCS                        (0x0001u)
+#define SCIF6_SCEMR_BGDM                        (0x0080u)
+
+/* ---- SCIF7 ---- */
+#define SCIF7_SCSMR_CKS                         (0x0003u)
+#define SCIF7_SCSMR_STOP                        (0x0008u)
+#define SCIF7_SCSMR_OE                          (0x0010u)
+#define SCIF7_SCSMR_PE                          (0x0020u)
+#define SCIF7_SCSMR_CHR                         (0x0040u)
+#define SCIF7_SCSMR_CA                          (0x0080u)
+
+#define SCIF7_SCBRR_D                           (0xFFu)
+
+#define SCIF7_SCSCR_CKE                         (0x0003u)
+#define SCIF7_SCSCR_REIE                        (0x0008u)
+#define SCIF7_SCSCR_RE                          (0x0010u)
+#define SCIF7_SCSCR_TE                          (0x0020u)
+#define SCIF7_SCSCR_RIE                         (0x0040u)
+#define SCIF7_SCSCR_TIE                         (0x0080u)
+
+#define SCIF7_SCFTDR_D                          (0xFFu)
+
+#define SCIF7_SCFSR_DR                          (0x0001u)
+#define SCIF7_SCFSR_RDF                         (0x0002u)
+#define SCIF7_SCFSR_PER                         (0x0004u)
+#define SCIF7_SCFSR_FER                         (0x0008u)
+#define SCIF7_SCFSR_BRK                         (0x0010u)
+#define SCIF7_SCFSR_TDFE                        (0x0020u)
+#define SCIF7_SCFSR_TEND                        (0x0040u)
+#define SCIF7_SCFSR_ER                          (0x0080u)
+#define SCIF7_SCFSR_FERN                        (0x0F00u)
+#define SCIF7_SCFSR_PERN                        (0xF000u)
+
+#define SCIF7_SCFRDR_D                          (0xFFu)
+
+#define SCIF7_SCFCR_LOOP                        (0x0001u)
+#define SCIF7_SCFCR_RFRST                       (0x0002u)
+#define SCIF7_SCFCR_TFRST                       (0x0004u)
+#define SCIF7_SCFCR_MCE                         (0x0008u)
+#define SCIF7_SCFCR_TTRG                        (0x0030u)
+#define SCIF7_SCFCR_RTRG                        (0x00C0u)
+#define SCIF7_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIF7_SCFDR_R                           (0x001Fu)
+#define SCIF7_SCFDR_T                           (0x1F00u)
+
+#define SCIF7_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIF7_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIF7_SCSPTR_SCKDT                      (0x0004u)
+#define SCIF7_SCSPTR_SCKIO                      (0x0008u)
+#define SCIF7_SCSPTR_CTSDT                      (0x0010u)
+#define SCIF7_SCSPTR_CTSIO                      (0x0020u)
+#define SCIF7_SCSPTR_RTSDT                      (0x0040u)
+#define SCIF7_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIF7_SCLSR_ORER                        (0x0001u)
+
+#define SCIF7_SCEMR_ABCS                        (0x0001u)
+#define SCIF7_SCEMR_BGDM                        (0x0080u)
+
+/* ---- SCIFn ---- */
+#define SCIFn_SCSMR_CKS                         (0x0003u)
+#define SCIFn_SCSMR_STOP                        (0x0008u)
+#define SCIFn_SCSMR_OE                          (0x0010u)
+#define SCIFn_SCSMR_PE                          (0x0020u)
+#define SCIFn_SCSMR_CHR                         (0x0040u)
+#define SCIFn_SCSMR_CA                          (0x0080u)
+
+#define SCIFn_SCBRR_D                           (0xFFu)
+
+#define SCIFn_SCSCR_CKE                         (0x0003u)
+#define SCIFn_SCSCR_REIE                        (0x0008u)
+#define SCIFn_SCSCR_RE                          (0x0010u)
+#define SCIFn_SCSCR_TE                          (0x0020u)
+#define SCIFn_SCSCR_RIE                         (0x0040u)
+#define SCIFn_SCSCR_TIE                         (0x0080u)
+
+#define SCIFn_SCFTDR_D                          (0xFFu)
+
+#define SCIFn_SCFSR_DR                          (0x0001u)
+#define SCIFn_SCFSR_RDF                         (0x0002u)
+#define SCIFn_SCFSR_PER                         (0x0004u)
+#define SCIFn_SCFSR_FER                         (0x0008u)
+#define SCIFn_SCFSR_BRK                         (0x0010u)
+#define SCIFn_SCFSR_TDFE                        (0x0020u)
+#define SCIFn_SCFSR_TEND                        (0x0040u)
+#define SCIFn_SCFSR_ER                          (0x0080u)
+#define SCIFn_SCFSR_FERN                        (0x0F00u)
+#define SCIFn_SCFSR_PERN                        (0xF000u)
+
+#define SCIFn_SCFRDR_D                          (0xFFu)
+
+#define SCIFn_SCFCR_LOOP                        (0x0001u)
+#define SCIFn_SCFCR_RFRST                       (0x0002u)
+#define SCIFn_SCFCR_TFRST                       (0x0004u)
+#define SCIFn_SCFCR_MCE                         (0x0008u)
+#define SCIFn_SCFCR_TTRG                        (0x0030u)
+#define SCIFn_SCFCR_RTRG                        (0x00C0u)
+#define SCIFn_SCFCR_RSTRG                       (0x0700u)
+
+#define SCIFn_SCFDR_R                           (0x001Fu)
+#define SCIFn_SCFDR_T                           (0x1F00u)
+
+#define SCIFn_SCSPTR_SPB2DT                     (0x0001u)
+#define SCIFn_SCSPTR_SPB2IO                     (0x0002u)
+#define SCIFn_SCSPTR_SCKDT                      (0x0004u)
+#define SCIFn_SCSPTR_SCKIO                      (0x0008u)
+#define SCIFn_SCSPTR_CTSDT                      (0x0010u)
+#define SCIFn_SCSPTR_CTSIO                      (0x0020u)
+#define SCIFn_SCSPTR_RTSDT                      (0x0040u)
+#define SCIFn_SCSPTR_RTSIO                      (0x0080u)
+
+#define SCIFn_SCLSR_ORER                        (0x0001u)
+
+#define SCIFn_SCEMR_ABCS                        (0x0001u)
+#define SCIFn_SCEMR_BGDM                        (0x0080u)
+
+
+/* ==== Shift values for IO registers ==== */
+/* ---- SCIF0 ---- */
+#define SCIF0_SCSMR_CKS_SHIFT                   (0u)
+#define SCIF0_SCSMR_STOP_SHIFT                  (3u)
+#define SCIF0_SCSMR_OE_SHIFT                    (4u)
+#define SCIF0_SCSMR_PE_SHIFT                    (5u)
+#define SCIF0_SCSMR_CHR_SHIFT                   (6u)
+#define SCIF0_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIF0_SCBRR_D_SHIFT                     (0u)
+
+#define SCIF0_SCSCR_CKE_SHIFT                   (0u)
+#define SCIF0_SCSCR_REIE_SHIFT                  (3u)
+#define SCIF0_SCSCR_RE_SHIFT                    (4u)
+#define SCIF0_SCSCR_TE_SHIFT                    (5u)
+#define SCIF0_SCSCR_RIE_SHIFT                   (6u)
+#define SCIF0_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIF0_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIF0_SCFSR_DR_SHIFT                    (0u)
+#define SCIF0_SCFSR_RDF_SHIFT                   (1u)
+#define SCIF0_SCFSR_PER_SHIFT                   (2u)
+#define SCIF0_SCFSR_FER_SHIFT                   (3u)
+#define SCIF0_SCFSR_BRK_SHIFT                   (4u)
+#define SCIF0_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIF0_SCFSR_TEND_SHIFT                  (6u)
+#define SCIF0_SCFSR_ER_SHIFT                    (7u)
+#define SCIF0_SCFSR_FERN_SHIFT                  (8u)
+#define SCIF0_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIF0_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIF0_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIF0_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIF0_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIF0_SCFCR_MCE_SHIFT                   (3u)
+#define SCIF0_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIF0_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIF0_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIF0_SCFDR_R_SHIFT                     (0u)
+#define SCIF0_SCFDR_T_SHIFT                     (8u)
+
+#define SCIF0_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIF0_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIF0_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIF0_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIF0_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIF0_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIF0_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIF0_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIF0_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIF0_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIF0_SCEMR_BGDM_SHIFT                  (7u)
+
+/* ---- SCIF1 ---- */
+#define SCIF1_SCSMR_CKS_SHIFT                   (0u)
+#define SCIF1_SCSMR_STOP_SHIFT                  (3u)
+#define SCIF1_SCSMR_OE_SHIFT                    (4u)
+#define SCIF1_SCSMR_PE_SHIFT                    (5u)
+#define SCIF1_SCSMR_CHR_SHIFT                   (6u)
+#define SCIF1_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIF1_SCBRR_D_SHIFT                     (0u)
+
+#define SCIF1_SCSCR_CKE_SHIFT                   (0u)
+#define SCIF1_SCSCR_REIE_SHIFT                  (3u)
+#define SCIF1_SCSCR_RE_SHIFT                    (4u)
+#define SCIF1_SCSCR_TE_SHIFT                    (5u)
+#define SCIF1_SCSCR_RIE_SHIFT                   (6u)
+#define SCIF1_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIF1_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIF1_SCFSR_DR_SHIFT                    (0u)
+#define SCIF1_SCFSR_RDF_SHIFT                   (1u)
+#define SCIF1_SCFSR_PER_SHIFT                   (2u)
+#define SCIF1_SCFSR_FER_SHIFT                   (3u)
+#define SCIF1_SCFSR_BRK_SHIFT                   (4u)
+#define SCIF1_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIF1_SCFSR_TEND_SHIFT                  (6u)
+#define SCIF1_SCFSR_ER_SHIFT                    (7u)
+#define SCIF1_SCFSR_FERN_SHIFT                  (8u)
+#define SCIF1_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIF1_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIF1_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIF1_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIF1_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIF1_SCFCR_MCE_SHIFT                   (3u)
+#define SCIF1_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIF1_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIF1_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIF1_SCFDR_R_SHIFT                     (0u)
+#define SCIF1_SCFDR_T_SHIFT                     (8u)
+
+#define SCIF1_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIF1_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIF1_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIF1_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIF1_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIF1_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIF1_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIF1_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIF1_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIF1_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIF1_SCEMR_BGDM_SHIFT                  (7u)
+
+/* ---- SCIF2 ---- */
+#define SCIF2_SCSMR_CKS_SHIFT                   (0u)
+#define SCIF2_SCSMR_STOP_SHIFT                  (3u)
+#define SCIF2_SCSMR_OE_SHIFT                    (4u)
+#define SCIF2_SCSMR_PE_SHIFT                    (5u)
+#define SCIF2_SCSMR_CHR_SHIFT                   (6u)
+#define SCIF2_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIF2_SCBRR_D_SHIFT                     (0u)
+
+#define SCIF2_SCSCR_CKE_SHIFT                   (0u)
+#define SCIF2_SCSCR_REIE_SHIFT                  (3u)
+#define SCIF2_SCSCR_RE_SHIFT                    (4u)
+#define SCIF2_SCSCR_TE_SHIFT                    (5u)
+#define SCIF2_SCSCR_RIE_SHIFT                   (6u)
+#define SCIF2_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIF2_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIF2_SCFSR_DR_SHIFT                    (0u)
+#define SCIF2_SCFSR_RDF_SHIFT                   (1u)
+#define SCIF2_SCFSR_PER_SHIFT                   (2u)
+#define SCIF2_SCFSR_FER_SHIFT                   (3u)
+#define SCIF2_SCFSR_BRK_SHIFT                   (4u)
+#define SCIF2_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIF2_SCFSR_TEND_SHIFT                  (6u)
+#define SCIF2_SCFSR_ER_SHIFT                    (7u)
+#define SCIF2_SCFSR_FERN_SHIFT                  (8u)
+#define SCIF2_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIF2_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIF2_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIF2_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIF2_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIF2_SCFCR_MCE_SHIFT                   (3u)
+#define SCIF2_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIF2_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIF2_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIF2_SCFDR_R_SHIFT                     (0u)
+#define SCIF2_SCFDR_T_SHIFT                     (8u)
+
+#define SCIF2_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIF2_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIF2_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIF2_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIF2_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIF2_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIF2_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIF2_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIF2_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIF2_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIF2_SCEMR_BGDM_SHIFT                  (7u)
+
+/* ---- SCIF3 ---- */
+#define SCIF3_SCSMR_CKS_SHIFT                   (0u)
+#define SCIF3_SCSMR_STOP_SHIFT                  (3u)
+#define SCIF3_SCSMR_OE_SHIFT                    (4u)
+#define SCIF3_SCSMR_PE_SHIFT                    (5u)
+#define SCIF3_SCSMR_CHR_SHIFT                   (6u)
+#define SCIF3_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIF3_SCBRR_D_SHIFT                     (0u)
+
+#define SCIF3_SCSCR_CKE_SHIFT                   (0u)
+#define SCIF3_SCSCR_REIE_SHIFT                  (3u)
+#define SCIF3_SCSCR_RE_SHIFT                    (4u)
+#define SCIF3_SCSCR_TE_SHIFT                    (5u)
+#define SCIF3_SCSCR_RIE_SHIFT                   (6u)
+#define SCIF3_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIF3_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIF3_SCFSR_DR_SHIFT                    (0u)
+#define SCIF3_SCFSR_RDF_SHIFT                   (1u)
+#define SCIF3_SCFSR_PER_SHIFT                   (2u)
+#define SCIF3_SCFSR_FER_SHIFT                   (3u)
+#define SCIF3_SCFSR_BRK_SHIFT                   (4u)
+#define SCIF3_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIF3_SCFSR_TEND_SHIFT                  (6u)
+#define SCIF3_SCFSR_ER_SHIFT                    (7u)
+#define SCIF3_SCFSR_FERN_SHIFT                  (8u)
+#define SCIF3_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIF3_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIF3_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIF3_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIF3_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIF3_SCFCR_MCE_SHIFT                   (3u)
+#define SCIF3_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIF3_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIF3_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIF3_SCFDR_R_SHIFT                     (0u)
+#define SCIF3_SCFDR_T_SHIFT                     (8u)
+
+#define SCIF3_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIF3_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIF3_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIF3_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIF3_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIF3_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIF3_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIF3_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIF3_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIF3_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIF3_SCEMR_BGDM_SHIFT                  (7u)
+
+/* ---- SCIF4 ---- */
+#define SCIF4_SCSMR_CKS_SHIFT                   (0u)
+#define SCIF4_SCSMR_STOP_SHIFT                  (3u)
+#define SCIF4_SCSMR_OE_SHIFT                    (4u)
+#define SCIF4_SCSMR_PE_SHIFT                    (5u)
+#define SCIF4_SCSMR_CHR_SHIFT                   (6u)
+#define SCIF4_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIF4_SCBRR_D_SHIFT                     (0u)
+
+#define SCIF4_SCSCR_CKE_SHIFT                   (0u)
+#define SCIF4_SCSCR_REIE_SHIFT                  (3u)
+#define SCIF4_SCSCR_RE_SHIFT                    (4u)
+#define SCIF4_SCSCR_TE_SHIFT                    (5u)
+#define SCIF4_SCSCR_RIE_SHIFT                   (6u)
+#define SCIF4_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIF4_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIF4_SCFSR_DR_SHIFT                    (0u)
+#define SCIF4_SCFSR_RDF_SHIFT                   (1u)
+#define SCIF4_SCFSR_PER_SHIFT                   (2u)
+#define SCIF4_SCFSR_FER_SHIFT                   (3u)
+#define SCIF4_SCFSR_BRK_SHIFT                   (4u)
+#define SCIF4_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIF4_SCFSR_TEND_SHIFT                  (6u)
+#define SCIF4_SCFSR_ER_SHIFT                    (7u)
+#define SCIF4_SCFSR_FERN_SHIFT                  (8u)
+#define SCIF4_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIF4_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIF4_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIF4_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIF4_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIF4_SCFCR_MCE_SHIFT                   (3u)
+#define SCIF4_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIF4_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIF4_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIF4_SCFDR_R_SHIFT                     (0u)
+#define SCIF4_SCFDR_T_SHIFT                     (8u)
+
+#define SCIF4_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIF4_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIF4_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIF4_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIF4_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIF4_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIF4_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIF4_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIF4_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIF4_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIF4_SCEMR_BGDM_SHIFT                  (7u)
+
+/* ---- SCIF5 ---- */
+#define SCIF5_SCSMR_CKS_SHIFT                   (0u)
+#define SCIF5_SCSMR_STOP_SHIFT                  (3u)
+#define SCIF5_SCSMR_OE_SHIFT                    (4u)
+#define SCIF5_SCSMR_PE_SHIFT                    (5u)
+#define SCIF5_SCSMR_CHR_SHIFT                   (6u)
+#define SCIF5_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIF5_SCBRR_D_SHIFT                     (0u)
+
+#define SCIF5_SCSCR_CKE_SHIFT                   (0u)
+#define SCIF5_SCSCR_REIE_SHIFT                  (3u)
+#define SCIF5_SCSCR_RE_SHIFT                    (4u)
+#define SCIF5_SCSCR_TE_SHIFT                    (5u)
+#define SCIF5_SCSCR_RIE_SHIFT                   (6u)
+#define SCIF5_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIF5_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIF5_SCFSR_DR_SHIFT                    (0u)
+#define SCIF5_SCFSR_RDF_SHIFT                   (1u)
+#define SCIF5_SCFSR_PER_SHIFT                   (2u)
+#define SCIF5_SCFSR_FER_SHIFT                   (3u)
+#define SCIF5_SCFSR_BRK_SHIFT                   (4u)
+#define SCIF5_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIF5_SCFSR_TEND_SHIFT                  (6u)
+#define SCIF5_SCFSR_ER_SHIFT                    (7u)
+#define SCIF5_SCFSR_FERN_SHIFT                  (8u)
+#define SCIF5_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIF5_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIF5_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIF5_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIF5_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIF5_SCFCR_MCE_SHIFT                   (3u)
+#define SCIF5_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIF5_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIF5_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIF5_SCFDR_R_SHIFT                     (0u)
+#define SCIF5_SCFDR_T_SHIFT                     (8u)
+
+#define SCIF5_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIF5_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIF5_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIF5_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIF5_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIF5_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIF5_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIF5_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIF5_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIF5_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIF5_SCEMR_BGDM_SHIFT                  (7u)
+
+/* ---- SCIF6 ---- */
+#define SCIF6_SCSMR_CKS_SHIFT                   (0u)
+#define SCIF6_SCSMR_STOP_SHIFT                  (3u)
+#define SCIF6_SCSMR_OE_SHIFT                    (4u)
+#define SCIF6_SCSMR_PE_SHIFT                    (5u)
+#define SCIF6_SCSMR_CHR_SHIFT                   (6u)
+#define SCIF6_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIF6_SCBRR_D_SHIFT                     (0u)
+
+#define SCIF6_SCSCR_CKE_SHIFT                   (0u)
+#define SCIF6_SCSCR_REIE_SHIFT                  (3u)
+#define SCIF6_SCSCR_RE_SHIFT                    (4u)
+#define SCIF6_SCSCR_TE_SHIFT                    (5u)
+#define SCIF6_SCSCR_RIE_SHIFT                   (6u)
+#define SCIF6_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIF6_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIF6_SCFSR_DR_SHIFT                    (0u)
+#define SCIF6_SCFSR_RDF_SHIFT                   (1u)
+#define SCIF6_SCFSR_PER_SHIFT                   (2u)
+#define SCIF6_SCFSR_FER_SHIFT                   (3u)
+#define SCIF6_SCFSR_BRK_SHIFT                   (4u)
+#define SCIF6_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIF6_SCFSR_TEND_SHIFT                  (6u)
+#define SCIF6_SCFSR_ER_SHIFT                    (7u)
+#define SCIF6_SCFSR_FERN_SHIFT                  (8u)
+#define SCIF6_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIF6_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIF6_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIF6_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIF6_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIF6_SCFCR_MCE_SHIFT                   (3u)
+#define SCIF6_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIF6_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIF6_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIF6_SCFDR_R_SHIFT                     (0u)
+#define SCIF6_SCFDR_T_SHIFT                     (8u)
+
+#define SCIF6_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIF6_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIF6_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIF6_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIF6_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIF6_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIF6_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIF6_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIF6_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIF6_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIF6_SCEMR_BGDM_SHIFT                  (7u)
+
+/* ---- SCIF7 ---- */
+#define SCIF7_SCSMR_CKS_SHIFT                   (0u)
+#define SCIF7_SCSMR_STOP_SHIFT                  (3u)
+#define SCIF7_SCSMR_OE_SHIFT                    (4u)
+#define SCIF7_SCSMR_PE_SHIFT                    (5u)
+#define SCIF7_SCSMR_CHR_SHIFT                   (6u)
+#define SCIF7_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIF7_SCBRR_D_SHIFT                     (0u)
+
+#define SCIF7_SCSCR_CKE_SHIFT                   (0u)
+#define SCIF7_SCSCR_REIE_SHIFT                  (3u)
+#define SCIF7_SCSCR_RE_SHIFT                    (4u)
+#define SCIF7_SCSCR_TE_SHIFT                    (5u)
+#define SCIF7_SCSCR_RIE_SHIFT                   (6u)
+#define SCIF7_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIF7_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIF7_SCFSR_DR_SHIFT                    (0u)
+#define SCIF7_SCFSR_RDF_SHIFT                   (1u)
+#define SCIF7_SCFSR_PER_SHIFT                   (2u)
+#define SCIF7_SCFSR_FER_SHIFT                   (3u)
+#define SCIF7_SCFSR_BRK_SHIFT                   (4u)
+#define SCIF7_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIF7_SCFSR_TEND_SHIFT                  (6u)
+#define SCIF7_SCFSR_ER_SHIFT                    (7u)
+#define SCIF7_SCFSR_FERN_SHIFT                  (8u)
+#define SCIF7_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIF7_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIF7_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIF7_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIF7_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIF7_SCFCR_MCE_SHIFT                   (3u)
+#define SCIF7_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIF7_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIF7_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIF7_SCFDR_R_SHIFT                     (0u)
+#define SCIF7_SCFDR_T_SHIFT                     (8u)
+
+#define SCIF7_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIF7_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIF7_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIF7_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIF7_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIF7_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIF7_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIF7_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIF7_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIF7_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIF7_SCEMR_BGDM_SHIFT                  (7u)
+
+/* ---- SCIFn ---- */
+#define SCIFn_SCSMR_CKS_SHIFT                   (0u)
+#define SCIFn_SCSMR_STOP_SHIFT                  (3u)
+#define SCIFn_SCSMR_OE_SHIFT                    (4u)
+#define SCIFn_SCSMR_PE_SHIFT                    (5u)
+#define SCIFn_SCSMR_CHR_SHIFT                   (6u)
+#define SCIFn_SCSMR_CA_SHIFT                    (7u)
+
+#define SCIFn_SCBRR_D_SHIFT                     (0u)
+
+#define SCIFn_SCSCR_CKE_SHIFT                   (0u)
+#define SCIFn_SCSCR_REIE_SHIFT                  (3u)
+#define SCIFn_SCSCR_RE_SHIFT                    (4u)
+#define SCIFn_SCSCR_TE_SHIFT                    (5u)
+#define SCIFn_SCSCR_RIE_SHIFT                   (6u)
+#define SCIFn_SCSCR_TIE_SHIFT                   (7u)
+
+#define SCIFn_SCFTDR_D_SHIFT                    (0u)
+
+#define SCIFn_SCFSR_DR_SHIFT                    (0u)
+#define SCIFn_SCFSR_RDF_SHIFT                   (1u)
+#define SCIFn_SCFSR_PER_SHIFT                   (2u)
+#define SCIFn_SCFSR_FER_SHIFT                   (3u)
+#define SCIFn_SCFSR_BRK_SHIFT                   (4u)
+#define SCIFn_SCFSR_TDFE_SHIFT                  (5u)
+#define SCIFn_SCFSR_TEND_SHIFT                  (6u)
+#define SCIFn_SCFSR_ER_SHIFT                    (7u)
+#define SCIFn_SCFSR_FERN_SHIFT                  (8u)
+#define SCIFn_SCFSR_PERN_SHIFT                  (12u)
+
+#define SCIFn_SCFRDR_D_SHIFT                    (0u)
+
+#define SCIFn_SCFCR_LOOP_SHIFT                  (0u)
+#define SCIFn_SCFCR_RFRST_SHIFT                 (1u)
+#define SCIFn_SCFCR_TFRST_SHIFT                 (2u)
+#define SCIFn_SCFCR_MCE_SHIFT                   (3u)
+#define SCIFn_SCFCR_TTRG_SHIFT                  (4u)
+#define SCIFn_SCFCR_RTRG_SHIFT                  (6u)
+#define SCIFn_SCFCR_RSTRG_SHIFT                 (8u)
+
+#define SCIFn_SCFDR_R_SHIFT                     (0u)
+#define SCIFn_SCFDR_T_SHIFT                     (8u)
+
+#define SCIFn_SCSPTR_SPB2DT_SHIFT               (0u)
+#define SCIFn_SCSPTR_SPB2IO_SHIFT               (1u)
+#define SCIFn_SCSPTR_SCKDT_SHIFT                (2u)
+#define SCIFn_SCSPTR_SCKIO_SHIFT                (3u)
+#define SCIFn_SCSPTR_CTSDT_SHIFT                (4u)
+#define SCIFn_SCSPTR_CTSIO_SHIFT                (5u)
+#define SCIFn_SCSPTR_RTSDT_SHIFT                (6u)
+#define SCIFn_SCSPTR_RTSIO_SHIFT                (7u)
+
+#define SCIFn_SCLSR_ORER_SHIFT                  (0u)
+
+#define SCIFn_SCEMR_ABCS_SHIFT                  (0u)
+#define SCIFn_SCEMR_BGDM_SHIFT                  (7u)
+
+
+#endif /* SCIF_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/spibsc_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/spibsc_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/spibsc_iobitmask.h	(revision 429)
@@ -0,0 +1,292 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+*
+* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name     : spibsc_iobitmask.h
+* $Rev: $
+* $Date::                           $
+* Description : SPI multi I/O bus controller register define header
+*******************************************************************************/
+#ifndef SPIBSC_IOBITMASK_H
+#define SPIBSC_IOBITMASK_H
+
+
+/* ==== Mask values for IO registers ==== */
+#define SPIBSC_CMNCR_BSZ               (0x00000003uL)
+
+#define SPIBSC_CMNCR_CPOL              (0x00000008uL)
+#define SPIBSC_CMNCR_SSLP              (0x00000010uL)
+#define SPIBSC_CMNCR_CPHAR             (0x00000020uL)
+#define SPIBSC_CMNCR_CPHAT             (0x00000040uL)
+
+#define SPIBSC_CMNCR_IO0FV             (0x00000300uL)
+
+#define SPIBSC_CMNCR_IO2FV             (0x00003000uL)
+#define SPIBSC_CMNCR_IO3FV             (0x0000C000uL)
+#define SPIBSC_CMNCR_MOIIO0            (0x00030000uL)
+#define SPIBSC_CMNCR_MOIIO1            (0x000C0000uL)
+#define SPIBSC_CMNCR_MOIIO2            (0x00300000uL)
+#define SPIBSC_CMNCR_MOIIO3            (0x00C00000uL)
+#define SPIBSC_CMNCR_SFDE              (0x01000000uL)
+
+#define SPIBSC_CMNCR_MD                (0x80000000uL)
+
+#define SPIBSC_SSLDR_SCKDL             (0x00000007uL)
+
+#define SPIBSC_SSLDR_SLNDL             (0x00000700uL)
+
+#define SPIBSC_SSLDR_SPNDL             (0x00070000uL)
+
+#define SPIBSC_SPBCR_BRDV              (0x00000003uL)
+
+#define SPIBSC_SPBCR_SPBR              (0x0000FF00uL)
+
+#define SPIBSC_DRCR_SSLE               (0x00000001uL)
+
+#define SPIBSC_DRCR_RBE                (0x00000100uL)
+#define SPIBSC_DRCR_RCF                (0x00000200uL)
+
+#define SPIBSC_DRCR_RBURST             (0x000F0000uL)
+
+#define SPIBSC_DRCR_SSLN               (0x01000000uL)
+
+#define SPIBSC_DRCMR_OCMD              (0x000000FFuL)
+
+#define SPIBSC_DRCMR_CMD               (0x00FF0000uL)
+
+#define SPIBSC_DREAR_EAC               (0x00000007uL)
+
+#define SPIBSC_DREAR_EAV               (0x00FF0000uL)
+
+#define SPIBSC_DROPR_OPD0              (0x000000FFuL)
+#define SPIBSC_DROPR_OPD1              (0x0000FF00uL)
+#define SPIBSC_DROPR_OPD2              (0x00FF0000uL)
+#define SPIBSC_DROPR_OPD3              (0xFF000000uL)
+
+#define SPIBSC_DRENR_OPDE              (0x000000F0uL)
+#define SPIBSC_DRENR_ADE               (0x00000F00uL)
+#define SPIBSC_DRENR_OCDE              (0x00001000uL)
+
+#define SPIBSC_DRENR_CDE               (0x00004000uL)
+#define SPIBSC_DRENR_DME               (0x00008000uL)
+#define SPIBSC_DRENR_DRDB              (0x00030000uL)
+
+#define SPIBSC_DRENR_OPDB              (0x00300000uL)
+
+#define SPIBSC_DRENR_ADB               (0x03000000uL)
+
+#define SPIBSC_DRENR_OCDB              (0x30000000uL)
+#define SPIBSC_DRENR_CDB               (0xC0000000uL)
+
+#define SPIBSC_SMCR_SPIE               (0x00000001uL)
+#define SPIBSC_SMCR_SPIWE              (0x00000002uL)
+#define SPIBSC_SMCR_SPIRE              (0x00000004uL)
+
+#define SPIBSC_SMCR_SSLKP              (0x00000100uL)
+
+#define SPIBSC_SMCMR_OCMD              (0x000000FFuL)
+
+#define SPIBSC_SMCMR_CMD               (0x00FF0000uL)
+
+#define SPIBSC_SMADR_ADR               (0xFFFFFFFFuL)
+
+#define SPIBSC_SMOPR_OPD0              (0x000000FFuL)
+#define SPIBSC_SMOPR_OPD1              (0x0000FF00uL)
+#define SPIBSC_SMOPR_OPD2              (0x00FF0000uL)
+#define SPIBSC_SMOPR_OPD3              (0xFF000000uL)
+
+#define SPIBSC_SMENR_SPIDE             (0x0000000FuL)
+#define SPIBSC_SMENR_OPDE              (0x000000F0uL)
+#define SPIBSC_SMENR_ADE               (0x00000F00uL)
+#define SPIBSC_SMENR_OCDE              (0x00001000uL)
+
+#define SPIBSC_SMENR_CDE               (0x00004000uL)
+#define SPIBSC_SMENR_DME               (0x00008000uL)
+#define SPIBSC_SMENR_SPIDB             (0x00030000uL)
+
+#define SPIBSC_SMENR_OPDB              (0x00300000uL)
+
+#define SPIBSC_SMENR_ADB               (0x03000000uL)
+
+#define SPIBSC_SMENR_OCDB              (0x30000000uL)
+#define SPIBSC_SMENR_CDB               (0xC0000000uL)
+
+#define SPIBSC_SMRDR0_RDATA0           (0xFFFFFFFFuL)
+#define SPIBSC_SMRDR1_RDATA1           (0xFFFFFFFFuL)
+#define SPIBSC_SMWDR0_WDATA0           (0xFFFFFFFFuL)
+#define SPIBSC_SMWDR1_WDATA1           (0xFFFFFFFFuL)
+
+#define SPIBSC_CMNSR_TEND              (0x00000001uL)
+#define SPIBSC_CMNSR_SSLF              (0x00000002uL)
+
+#define SPIBSC_DRDMCR_DMCYC            (0x00000007uL)
+
+#define SPIBSC_DRDMCR_DMDB             (0x00030000uL)
+
+#define SPIBSC_DRDRENR_DRDRE           (0x00000001uL)
+
+#define SPIBSC_DRDRENR_OPDRE           (0x00000010uL)
+
+#define SPIBSC_DRDRENR_ADDRE           (0x00000100uL)
+
+#define SPIBSC_SMDMCR_DMCYC            (0x00000007uL)
+
+#define SPIBSC_SMDMCR_DMDB             (0x00030000uL)
+
+#define SPIBSC_SMDRENR_SPIDRE          (0x00000001uL)
+
+#define SPIBSC_SMDRENR_OPDRE           (0x00000010uL)
+
+#define SPIBSC_SMDRENR_ADDRE           (0x00000100uL)
+
+/* Shift parameter */
+#define SPIBSC_CMNCR_BSZ_SHIFT         (0u)
+
+#define SPIBSC_CMNCR_CPOL_SHIFT        (3u)
+#define SPIBSC_CMNCR_SSLP_SHIFT        (4u)
+#define SPIBSC_CMNCR_CPHAR_SHIFT       (5u)
+#define SPIBSC_CMNCR_CPHAT_SHIFT       (6u)
+
+#define SPIBSC_CMNCR_IO0FV_SHIFT       (8u)
+
+#define SPIBSC_CMNCR_IO2FV_SHIFT       (12u)
+#define SPIBSC_CMNCR_IO3FV_SHIFT       (14u)
+#define SPIBSC_CMNCR_MOIIO0_SHIFT      (16u)
+#define SPIBSC_CMNCR_MOIIO1_SHIFT      (18u)
+#define SPIBSC_CMNCR_MOIIO2_SHIFT      (20u)
+#define SPIBSC_CMNCR_MOIIO3_SHIFT      (22u)
+#define SPIBSC_CMNCR_SFDE_SHIFT        (24u)
+
+#define SPIBSC_CMNCR_MD_SHIFT          (31u)
+
+#define SPIBSC_SSLDR_SCKDL_SHIFT       (0u)
+
+#define SPIBSC_SSLDR_SLNDL_SHIFT       (8u)
+
+#define SPIBSC_SSLDR_SPNDL_SHIFT       (16u)
+
+#define SPIBSC_SPBCR_BRDV_SHIFT        (0u)
+
+#define SPIBSC_SPBCR_SPBR_SHIFT        (8u)
+
+#define SPIBSC_DRCR_SSLE_SHIFT         (0u)
+
+#define SPIBSC_DRCR_RBE_SHIFT          (8u)
+#define SPIBSC_DRCR_RCF_SHIFT          (9u)
+
+#define SPIBSC_DRCR_RBURST_SHIFT       (16u)
+
+#define SPIBSC_DRCR_SSLN_SHIFT         (24u)
+
+#define SPIBSC_DRCMR_OCMD_SHIFT        (0u)
+
+#define SPIBSC_DRCMR_CMD_SHIFT         (16u)
+
+#define SPIBSC_DREAR_EAC_SHIFT         (0u)
+
+#define SPIBSC_DREAR_EAV_SHIFT         (16u)
+
+#define SPIBSC_DROPR_OPD0_SHIFT        (0u)
+#define SPIBSC_DROPR_OPD1_SHIFT        (8u)
+#define SPIBSC_DROPR_OPD2_SHIFT        (16u)
+#define SPIBSC_DROPR_OPD3_SHIFT        (24u)
+
+#define SPIBSC_DRENR_OPDE_SHIFT        (4u)
+#define SPIBSC_DRENR_ADE_SHIFT         (8u)
+#define SPIBSC_DRENR_OCDE_SHIFT        (12u)
+
+#define SPIBSC_DRENR_CDE_SHIFT         (14u)
+#define SPIBSC_DRENR_DME_SHIFT         (15u)
+#define SPIBSC_DRENR_DRDB_SHIFT        (16u)
+
+#define SPIBSC_DRENR_OPDB_SHIFT        (20u)
+
+#define SPIBSC_DRENR_ADB_SHIFT         (24u)
+
+#define SPIBSC_DRENR_OCDB_SHIFT        (28u)
+#define SPIBSC_DRENR_CDB_SHIFT         (30u)
+
+#define SPIBSC_SMCR_SPIE_SHIFT         (0u)
+#define SPIBSC_SMCR_SPIWE_SHIFT        (1u)
+#define SPIBSC_SMCR_SPIRE_SHIFT        (2u)
+
+#define SPIBSC_SMCR_SSLKP_SHIFT        (8u)
+
+#define SPIBSC_SMCMR_OCMD_SHIFT        (0u)
+
+#define SPIBSC_SMCMR_CMD_SHIFT         (16u)
+
+#define SPIBSC_SMADR_ADR_SHIFT         (0u)
+
+#define SPIBSC_SMOPR_OPD0_SHIFT        (0u)
+#define SPIBSC_SMOPR_OPD1_SHIFT        (8u)
+#define SPIBSC_SMOPR_OPD2_SHIFT        (16u)
+#define SPIBSC_SMOPR_OPD3_SHIFT        (24u)
+
+#define SPIBSC_SMENR_SPIDE_SHIFT       (0u)
+#define SPIBSC_SMENR_OPDE_SHIFT        (4u)
+#define SPIBSC_SMENR_ADE_SHIFT         (8u)
+#define SPIBSC_SMENR_OCDE_SHIFT        (12u)
+
+#define SPIBSC_SMENR_CDE_SHIFT         (14u)
+#define SPIBSC_SMENR_DME_SHIFT         (15u)
+#define SPIBSC_SMENR_SPIDB_SHIFT       (16u)
+
+#define SPIBSC_SMENR_OPDB_SHIFT        (20u)
+
+#define SPIBSC_SMENR_ADB_SHIFT         (24u)
+
+#define SPIBSC_SMENR_OCDB_SHIFT        (28u)
+#define SPIBSC_SMENR_CDB_SHIFT         (30u)
+
+#define SPIBSC_SMRDR0_RDATA0_SHIFT     (0u)
+#define SPIBSC_SMRDR1_RDATA1_SHIFT     (0u)
+#define SPIBSC_SMWDR0_WDATA0_SHIFT     (0u)
+#define SPIBSC_SMWDR1_WDATA1_SHIFT     (0u)
+
+#define SPIBSC_CMNSR_TEND_SHIFT        (0u)
+#define SPIBSC_CMNSR_SSLF_SHIFT        (1u)
+
+#define SPIBSC_DRDMCR_DMCYC_SHIFT      (0u)
+
+#define SPIBSC_DRDMCR_DMDB_SHIFT       (16u)
+
+#define SPIBSC_DRDRENR_DRDRE_SHIFT     (0u)
+
+#define SPIBSC_DRDRENR_OPDRE_SHIFT     (4u)
+
+#define SPIBSC_DRDRENR_ADDRE_SHIFT     (8u)
+
+#define SPIBSC_SMDMCR_DMCYC_SHIFT      (0u)
+
+#define SPIBSC_SMDMCR_DMDB_SHIFT       (16u)
+
+#define SPIBSC_SMDRENR_SPIDRE_SHIFT    (0u)
+
+#define SPIBSC_SMDRENR_OPDRE_SHIFT     (4u)
+
+#define SPIBSC_SMDRENR_ADDRE_SHIFT     (8u)
+
+#endif /* SPIBSC_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/usb_iobitmask.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/usb_iobitmask.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iobitmasks/usb_iobitmask.h	(revision 429)
@@ -0,0 +1,731 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : usb_iobitmask.h
+* $Rev: 1116 $
+* $Date:: 2014-07-09 16:29:19 +0900#$
+* Description : USB register define header
+*******************************************************************************/
+#ifndef USB_IOBITMASK_H
+#define USB_IOBITMASK_H
+
+/*==============================================*/
+/* SYSCFG                                       */
+/*==============================================*/
+#define     USB_SYSCFG_USBE                 (0x0001u)
+#define     USB_SYSCFG_UPLLE                (0x0002u)
+#define     USB_SYSCFG_UCKSEL               (0x0004u)
+/* #define  USB_SYSCFG_RESERVED1            (0x0008u) */
+#define     USB_SYSCFG_DPRPU                (0x0010u)
+#define     USB_SYSCFG_DRPD                 (0x0020u)
+#define     USB_SYSCFG_DCFM                 (0x0040u)
+#define     USB_SYSCFG_HSE                  (0x0080u)
+/* #define  USB_SYSCFG_RESERVED2            (0xFF00u) */
+
+#define     USB_SYSCFG_USBE_SHIFT           (0)
+#define     USB_SYSCFG_UPLLE_SHIFT          (1)
+#define     USB_SYSCFG_UCKSEL_SHIFT         (2)
+/* #define  USB_SYSCFG_RESERVED1_SHIFT      (3) */
+#define     USB_SYSCFG_DPRPU_SHIFT          (4)
+#define     USB_SYSCFG_DRPD_SHIFT           (5)
+#define     USB_SYSCFG_DCFM_SHIFT           (6)
+#define     USB_SYSCFG_HSE_SHIFT            (7)
+/* #define  USB_SYSCFG_RESERVED2_SHIFT      (8) */
+
+/*==============================================*/
+/* BUSWAIT                                      */
+/*==============================================*/
+#define     USB_BUSWAIT_BWAIT               (0x003Fu)
+
+#define     USB_BUSWAIT_BWAIT_SHIFT         (0)
+
+/*==============================================*/
+/* SYSSTS0                                      */
+/*==============================================*/
+#define     USB_SYSSTS0_LNST                (0x0003u)
+#define     USB_SYSSTS0_SOFEA               (0x0020u)
+#define     USB_SYSSTS0_HTACT               (0x0040u)
+
+#define     USB_SYSSTS0_LNST_SHIFT          (0)
+#define     USB_SYSSTS0_SOFEA_SHIFT         (5)
+#define     USB_SYSSTS0_HTACT_SHIFT         (6)
+
+/*==============================================*/
+/* DVSTCTR0                                     */
+/*==============================================*/
+#define     USB_DVSTCTR0_RHST               (0x0007u)
+/* #define  USB_DVSTCTR0_RESERVED           (0x0008u) */
+#define     USB_DVSTCTR0_UACT               (0x0010u)
+#define     USB_DVSTCTR0_RESUME             (0x0020u)
+#define     USB_DVSTCTR0_USBRST             (0x0040u)
+#define     USB_DVSTCTR0_RWUPE              (0x0080u)
+#define     USB_DVSTCTR0_WKUP               (0x0100u)
+
+#define     USB_DVSTCTR0_RHST_SHIFT         (0)
+/* #define  USB_DVSTCTR0_RESERVED_SHIFT     (3) */
+#define     USB_DVSTCTR0_UACT_SHIFT         (4)
+#define     USB_DVSTCTR0_RESUME_SHIFT       (5)
+#define     USB_DVSTCTR0_USBRST_SHIFT       (6)
+#define     USB_DVSTCTR0_RWUPE_SHIFT        (7)
+#define     USB_DVSTCTR0_WKUP_SHIFT         (8)
+
+/*==============================================*/
+/* TESTMODE                                     */
+/*==============================================*/
+#define     USB_TESTMODE_UTST               (0x000Fu)
+/* #define  USB_TESTMODE_RESERVED           (0xFFF0u) */
+
+#define     USB_TESTMODE_UTST_SHIFT         (0)
+/* #define  USB_TESTMODE_RESERVED_SHIFT     (4) */
+
+/*==============================================*/
+/* DnFBCFG                                      */
+/*==============================================*/
+/* #define      USB_DnFBCFG_RESERVED1       (0x000Fu) */
+#define     USB_DnFBCFG_TENDE               (0x0010u)
+/* #define      USB_DnFBCFG_RESERVED2       (0x0FE0u) */
+#define     USB_DnFBCFG_DFACC               (0x3000u)
+/* #define      USB_DnFBCFG_RESERVED3       (0xC000u) */
+
+/* #define  USB_DnFBCFG_RESERVED1_SHIFT     (0) */
+#define     USB_DnFBCFG_TENDE_SHIFT         (4)
+/* #define  USB_DnFBCFG_RESERVED2_SHIFT     (5) */
+#define     USB_DnFBCFG_DFACC_SHIFT         (12)
+/* #define  USB_DnFBCFG_RESERVED3_SHIFT     (14) */
+
+/*==============================================*/
+/* CFIFO                                        */
+/*==============================================*/
+#define     USB_CFIFO_FIFOPORT              (0xFFFFFFFFuL)
+
+#define     USB_CFIFO_FIFOPORT_SHIFT        (0)
+
+/*==============================================*/
+/* DnFIFO                                       */
+/*==============================================*/
+#define     USB_DnFIFO_FIFOPORT             (0xFFFFFFFFuL)
+
+#define     USB_DnFIFO_FIFOPORT_SHIFT       (0)
+
+/*==============================================*/
+/* CFIFOSEL                                     */
+/*==============================================*/
+#define     USB_CFIFOSEL_CURPIPE            (0x000Fu)
+/* #define  USB_CFIFOSEL_RESERVED1          (0x0010u) */
+#define     USB_CFIFOSEL_ISEL_              (0x0020u)
+/* #define  USB_CFIFOSEL_RESERVED2          (0x00C0u) */
+#define     USB_CFIFOSEL_BIGEND             (0x0100u)
+/* #define  USB_CFIFOSEL_RESERVED3          (0x0200u) */
+#define     USB_CFIFOSEL_MBW                (0x0C00u)
+/* #define  USB_CFIFOSEL_RESERVED4          (0x3000u) */
+#define     USB_CFIFOSEL_REW                (0x4000u)
+#define     USB_CFIFOSEL_RCNT               (0x8000u)
+
+#define     USB_CFIFOSEL_CURPIPE_SHIFT      (0)
+/* #define  USB_CFIFOSEL_RESERVED1_SHIFT    (4) */
+#define     USB_CFIFOSEL_ISEL_SHIFT_        (5)
+/* #define  USB_CFIFOSEL_RESERVED2_SHIFT    (6) */
+#define     USB_CFIFOSEL_BIGEND_SHIFT       (8)
+/* #define  USB_CFIFOSEL_RESERVED3_SHIFT    (9) */
+#define     USB_CFIFOSEL_MBW_SHIFT          (10)
+/* #define  USB_CFIFOSEL_RESERVED4_SHIFT    (12) */
+#define     USB_CFIFOSEL_REW_SHIFT          (14)
+#define     USB_CFIFOSEL_RCNT_SHIFT         (15)
+
+/*==============================================*/
+/* DnFIFOSEL                                    */
+/*==============================================*/
+#define     USB_DnFIFOSEL_CURPIPE           (0x000Fu)
+/* #define  USB_DnFIFOSEL_RESERVED1         (0x00F0u) */
+#define     USB_DnFIFOSEL_BIGEND            (0x0100u)
+/* #define  USB_DnFIFOSEL_RESERVED2         (0x0200u) */
+#define     USB_DnFIFOSEL_MBW               (0x0C00u)
+#define     USB_DnFIFOSEL_DREQE             (0x1000u)
+#define     USB_DnFIFOSEL_DCLRM             (0x2000u)
+#define     USB_DnFIFOSEL_REW               (0x4000u)
+#define     USB_DnFIFOSEL_RCNT              (0x8000u)
+
+#define     USB_DnFIFOSEL_CURPIPE_SHIFT     (0)
+/* #define  USB_DnFIFOSEL_RESERVED1_SHIFT   (4) */
+#define     USB_DnFIFOSEL_BIGEND_SHIFT      (8)
+/* #define  USB_DnFIFOSEL_RESERVED2_SHIFT   (9) */
+#define     USB_DnFIFOSEL_MBW_SHIFT         (10)
+#define     USB_DnFIFOSEL_DREQE_SHIFT       (12)
+#define     USB_DnFIFOSEL_DCLRM_SHIFT       (13)
+#define     USB_DnFIFOSEL_REW_SHIFT         (14)
+#define     USB_DnFIFOSEL_RCNT_SHIFT        (15)
+
+/*==============================================*/
+/* CFIFOCTR                                     */
+/*==============================================*/
+#define     USB_CFIFOCTR_DTLN               (0x0FFFu)
+/* #define  USB_CFIFOCTR_RESERVED           (0x1000u) */
+#define     USB_CFIFOCTR_FRDY               (0x2000u)
+#define     USB_CFIFOCTR_BCLR               (0x4000u)
+#define     USB_CFIFOCTR_BVAL               (0x8000u)
+
+#define     USB_CFIFOCTR_DTLN_SHIFT         (0)
+/* #define  USB_CFIFOCTR_RESERVED_SHIFT     (12) */
+#define     USB_CFIFOCTR_FRDY_SHIFT         (13)
+#define     USB_CFIFOCTR_BCLR_SHIFT         (14)
+#define     USB_CFIFOCTR_BVAL_SHIFT         (15)
+
+/*==============================================*/
+/* DnFIFOCTR                                    */
+/*==============================================*/
+#define     USB_DnFIFOCTR_DTLN              (0x0FFFu)
+/* #define  USB_DnFIFOCTR_RESERVED          (0x1000u) */
+#define     USB_DnFIFOCTR_FRDY              (0x2000u)
+#define     USB_DnFIFOCTR_BCLR              (0x4000u)
+#define     USB_DnFIFOCTR_BVAL              (0x8000u)
+
+#define     USB_DnFIFOCTR_DTLN_SHIFT        (0)
+/* #define  USB_DnFIFOCTR_RESERVED_SHIFT    (12) */
+#define     USB_DnFIFOCTR_FRDY_SHIFT        (13)
+#define     USB_DnFIFOCTR_BCLR_SHIFT        (14)
+#define     USB_DnFIFOCTR_BVAL_SHIFT        (15)
+
+/*==============================================*/
+/* INTENB0                                      */
+/*==============================================*/
+/* #define  USB_INTENB0_RESERVED            (0x00FFu) */
+#define     USB_INTENB0_BRDYE               (0x0100u)
+#define     USB_INTENB0_NRDYE               (0x0200u)
+#define     USB_INTENB0_BEMPE               (0x0400u)
+#define     USB_INTENB0_CTRE                (0x0800u)
+#define     USB_INTENB0_DVSE                (0x1000u)
+#define     USB_INTENB0_SOFE                (0x2000u)
+#define     USB_INTENB0_RSME                (0x4000u)
+#define     USB_INTENB0_VBSE                (0x8000u)
+
+/* #define  USB_INTENB0_RESERVED_SHIFT      (0) */
+#define     USB_INTENB0_BRDYE_SHIFT         (8)
+#define     USB_INTENB0_NRDYE_SHIFT         (9)
+#define     USB_INTENB0_BEMPE_SHIFT         (10)
+#define     USB_INTENB0_CTRE_SHIFT          (11)
+#define     USB_INTENB0_DVSE_SHIFT          (12)
+#define     USB_INTENB0_SOFE_SHIFT          (13)
+#define     USB_INTENB0_RSME_SHIFT          (14)
+#define     USB_INTENB0_VBSE_SHIFT          (15)
+
+/*==============================================*/
+/* INTENB1                                      */
+/*==============================================*/
+/* #define  USB_INTENB1_RESERVED1           (0x000Fu) */
+#define     USB_INTENB1_SACKE               (0x0010u)
+#define     USB_INTENB1_SIGNE               (0x0020u)
+#define     USB_INTENB1_EOFERRE             (0x0040u)
+/* #define  USB_INTENB1_RESERVED2           (0x0780u) */
+#define     USB_INTENB1_ATTCHE              (0x0800u)
+#define     USB_INTENB1_DTCHE               (0x1000u)
+/* #define  USB_INTENB1_RESERVED3           (0x2000u) */
+#define     USB_INTENB1_BCHGE               (0x4000u)
+/* #define  USB_INTENB1_RESERVED4           (0x8000u) */
+
+/* #define  USB_INTENB1_RESERVED1_SHIFT     (0) */
+#define     USB_INTENB1_SACKE_SHIFT         (4)
+#define     USB_INTENB1_SIGNE_SHIFT         (5)
+#define     USB_INTENB1_EOFERRE_SHIFT       (6)
+/* #define  USB_INTENB1_RESERVED2_SHIFT     (7) */
+#define     USB_INTENB1_ATTCHE_SHIFT        (11)
+#define     USB_INTENB1_DTCHE_SHIFT         (12)
+/* #define  USB_INTENB1_RESERVED3_SHIFT     (13) */
+#define     USB_INTENB1_BCHGE_SHIFT         (14)
+/* #define  USB_INTENB1_RESERVED4_SHIFT     (15) */
+
+/*==============================================*/
+/* BRDYENB                                      */
+/*==============================================*/
+#define     USB_BRDYENB                     (0xFFFFu)
+
+#define     USB_BRDYENB_SHIFT               (0)
+
+/*==============================================*/
+/* NRDYENB                                      */
+/*==============================================*/
+#define     USB_NRDYENB                     (0xFFFFu)
+
+#define     USB_NRDYENB_SHIFT               (0)
+
+/*==============================================*/
+/* BEMPENB                                      */
+/*==============================================*/
+#define     USB_BEMPENB                     (0xFFFFu)
+
+#define     USB_BEMPENB_SHIFT               (0)
+
+/*==============================================*/
+/* SOFCFG                                       */
+/*==============================================*/
+/* #define  USB_SOFCFG_RESERVED1            (0x003Fu) */
+#define     USB_SOFCFG_BRDYM                (0x0040u)
+/* #define  USB_SOFCFG_RESERVED2            (0x0080u) */
+#define     USB_SOFCFG_TRNENSEL             (0x0100u)
+/* #define  USB_SOFCFG_RESERVED3            (0xFE00u) */
+
+/* #define  USB_SOFCFG_RESERVED1_SHIFT      (0) */
+#define     USB_SOFCFG_BRDYM_SHIFT          (6)
+/* #define  USB_SOFCFG_RESERVED2_SHIFT      (7) */
+#define     USB_SOFCFG_TRNENSEL_SHIFT       (8)
+/* #define  USB_SOFCFG_RESERVED3_SHIFT      (9) */
+
+/*==============================================*/
+/* INTSTS0                                      */
+/*==============================================*/
+#define     USB_INTSTS0_CTSQ                (0x0007u)
+#define     USB_INTSTS0_VALID               (0x0008u)
+#define     USB_INTSTS0_DVSQ                (0x0070u)
+#define     USB_INTSTS0_VBSTS               (0x0080u)
+#define     USB_INTSTS0_BRDY                (0x0100u)
+#define     USB_INTSTS0_NRDY                (0x0200u)
+#define     USB_INTSTS0_BEMP                (0x0400u)
+#define     USB_INTSTS0_CTRT                (0x0800u)
+#define     USB_INTSTS0_DVST                (0x1000u)
+#define     USB_INTSTS0_SOFR                (0x2000u)
+#define     USB_INTSTS0_RESM                (0x4000u)
+#define     USB_INTSTS0_VBINT               (0x8000u)
+
+#define     USB_INTSTS0_CTSQ_SHIFT          (0)
+#define     USB_INTSTS0_VALID_SHIFT         (3)
+#define     USB_INTSTS0_DVSQ_SHIFT          (4)
+#define     USB_INTSTS0_VBSTS_SHIFT         (7)
+#define     USB_INTSTS0_BRDY_SHIFT          (8)
+#define     USB_INTSTS0_NRDY_SHIFT          (9)
+#define     USB_INTSTS0_BEMP_SHIFT          (10)
+#define     USB_INTSTS0_CTRT_SHIFT          (11)
+#define     USB_INTSTS0_DVST_SHIFT          (12)
+#define     USB_INTSTS0_SOFR_SHIFT          (13)
+#define     USB_INTSTS0_RESM_SHIFT          (14)
+#define     USB_INTSTS0_VBINT_SHIFT         (15)
+
+/*==============================================*/
+/* INTSTS1                                      */
+/*==============================================*/
+/* #define  USB_INTSTS1_RESERVED1           (0x000Fu) */
+#define     USB_INTSTS1_SACK                (0x0010u)
+#define     USB_INTSTS1_SIGN                (0x0020u)
+#define     USB_INTSTS1_EOFERR              (0x0040u)
+/* #define  USB_INTSTS1_RESERVED2           (0x0780u) */
+#define     USB_INTSTS1_ATTCH               (0x0800u)
+#define     USB_INTSTS1_DTCH                (0x1000u)
+/* #define  USB_INTSTS1_RESERVED3           (0x2000u) */
+#define     USB_INTSTS1_BCHG                (0x4000u)
+/* #define  USB_INTSTS1_RESERVED4           (0x8000u) */
+
+/* #define  USB_INTSTS1_RESERVED1_SHIFT     (0) */
+#define     USB_INTSTS1_SACK_SHIFT          (4)
+#define     USB_INTSTS1_SIGN_SHIFT          (5)
+#define     USB_INTSTS1_EOFERR_SHIFT        (6)
+/* #define  USB_INTSTS1_RESERVED2_SHIFT     (7) */
+#define     USB_INTSTS1_ATTCH_SHIFT         (11)
+#define     USB_INTSTS1_DTCH_SHIFT          (12)
+/* #define  USB_INTSTS1_RESERVED3_SHIFT     (13) */
+#define     USB_INTSTS1_BCHG_SHIFT          (14)
+/* #define  USB_INTSTS1_RESERVED4_SHIFT     (15) */
+
+/*==============================================*/
+/* BRDYSTS                                      */
+/*==============================================*/
+#define     USB_BRDYSTS                     (0xFFFFu)
+
+#define     USB_BRDYSTS_SHIFT               (0)
+
+/*==============================================*/
+/* NRDYSTS                                      */
+/*==============================================*/
+#define     USB_NRDYSTS                     (0xFFFFu)
+
+#define     USB_NRDYSTS_SHIFT               (0)
+
+/*==============================================*/
+/* BEMPSTS                                      */
+/*==============================================*/
+#define     USB_BEMPSTS                     (0xFFFFu)
+
+#define     USB_BEMPSTS_SHIFT               (0)
+
+/*==============================================*/
+/* FRMNUM                                       */
+/*==============================================*/
+#define     USB_FRMNUM_FRNM                 (0x07FFu)
+/* #define  USB_FRMNUM_RESERVED             (0x3800u) */
+#define     USB_FRMNUM_CRCE                 (0x4000u)
+#define     USB_FRMNUM_OVRN                 (0x8000u)
+
+#define     USB_FRMNUM_FRNM_SHIFT           (0)
+/* #define  USB_FRMNUM_RESERVED_SHIFT       (11) */
+#define     USB_FRMNUM_CRCE_SHIFT           (14)
+#define     USB_FRMNUM_OVRN_SHIFT           (15)
+
+/*==============================================*/
+/* UFRMNUM                                      */
+/*==============================================*/
+#define     USB_UFRMNUM_UFRNM               (0x0007u)
+/* #define  USB_UFRMNUM_RESERVED            (0xFFF8u) */
+
+#define     USB_UFRMNUM_UFRNM_SHIFT         (0)
+/* #define  USB_UFRMNUM_RESERVED_SHIFT      (3) */
+
+/*==============================================*/
+/* USBADDR                                      */
+/*==============================================*/
+#define     USB_USBADDR_USBADDR             (0x007Fu)
+/* #define  USB_USBADDR_RESERVED            (0xFF80u) */
+
+#define     USB_USBADDR_USBADDR_SHIFT       (0)
+/* #define  USB_USBADDR_RESERVED_SHIFT      (7) */
+
+/*==============================================*/
+/* USBREQ                                       */
+/*==============================================*/
+#define     USB_USBREQ_BMREQUESTTYPE        (0x00FFu)
+#define     USB_USBREQ_BREQUEST             (0xFF00u)
+
+#define     USB_USBREQ_BMREQUESTTYPE_SHIFT  (0)
+#define     USB_USBREQ_BREQUEST_SHIFT       (8)
+
+/*==============================================*/
+/* USBVAL                                       */
+/*==============================================*/
+#define     USB_USBVAL                      (0xFFFFu)
+
+#define     USB_USBVAL_SHIFT                (0)
+
+/*==============================================*/
+/* USBINDX                                      */
+/*==============================================*/
+#define     USB_USBINDX                     (0xFFFFu)
+
+#define     USB_USBINDX_SHIFT               (0)
+
+/*==============================================*/
+/* USBLENG                                      */
+/*==============================================*/
+#define     USB_USBLENG                     (0xFFFFu)
+
+#define     USB_USBLENG_SHIFT               (0)
+
+/*==============================================*/
+/* DCPCFG                                       */
+/*==============================================*/
+/* #define  USB_DCPCFG_RESERVED1            (0x000Fu) */
+#define     USB_DCPCFG_DIR                  (0x0010u)
+/* #define  USB_DCPCFG_RESERVED2            (0x0060u) */
+#define     USB_DCPCFG_SHTNAK               (0x0080u)
+#define     USB_DCPCFG_CNTMD                (0x0100u)
+/* #define  USB_DCPCFG_RESERVED3            (0xFE00u) */
+
+/* #define  USB_DCPCFG_RESERVED1_SHIFT      (0) */
+#define     USB_DCPCFG_DIR_SHIFT            (4)
+/* #define  USB_DCPCFG_RESERVED2_SHIFT      (5) */
+#define     USB_DCPCFG_SHTNK_SHIFT          (7)
+#define     USB_DCPCFG_CNTMD_SHIFT          (8)
+/* #define  USB_DCPCFG_RESERVED3            (9) */
+
+/*==============================================*/
+/* DCPMAXP                                      */
+/*==============================================*/
+#define     USB_DCPMAXP_MXPS                (0x007Fu)
+/* #define  USB_DCPMAXP_RESERVED            (0x0F80u) */
+#define     USB_DCPMAXP_DEVSEL              (0xF000u)
+
+#define     USB_DCPMAXP_MXPS_SHIFT          (0)
+/* #define  USB_DCPMAXP_RESERVED_SHIFT      (7) */
+#define     USB_DCPMAXP_DEVSEL_SHIFT        (12)
+
+/*==============================================*/
+/* DCPCTR                                       */
+/*==============================================*/
+#define     USB_DCPCTR_PID                  (0x0003u)
+#define     USB_DCPCTR_CCPL                 (0x0004u)
+/* #define  USB_DCPCTR_RESERVED1            (0x0008u) */
+#define     USB_DCPCTR_PINGE                (0x0010u)
+#define     USB_DCPCTR_PBUSY                (0x0020u)
+#define     USB_DCPCTR_SQMON                (0x0040u)
+#define     USB_DCPCTR_SQSET                (0x0080u)
+#define     USB_DCPCTR_SQCLR                (0x0100u)
+/* #define  USB_DCPCTR_RESERVED2            (0x0600u) */
+#define     USB_DCPCTR_SUREQCLR             (0x0800u)
+#define     USB_DCPCTR_CSSTS                (0x1000u)
+#define     USB_DCPCTR_CSCLR                (0x2000u)
+#define     USB_DCPCTR_SUREQ                (0x4000u)
+#define     USB_DCPCTR_BSTS                 (0x8000u)
+
+#define     USB_DCPCTR_PID_SHIFT            (0)
+#define     USB_DCPCTR_CCPL_SHIFT           (2)
+/* #define  USB_DCPCTR_RESERVED1_SHIFT      (3) */
+#define     USB_DCPCTR_PINGE_SHIFT          (4)
+#define     USB_DCPCTR_PBUSY_SHIFT          (5)
+#define     USB_DCPCTR_SQMON_SHIFT          (6)
+#define     USB_DCPCTR_SQSET_SHIFT          (7)
+#define     USB_DCPCTR_SQCLR_SHIFT          (8)
+/* #define  USB_DCPCTR_RESERVED2_SHIFT      (9) */
+#define     USB_DCPCTR_SUREQCLR_SHIFT       (11)
+#define     USB_DCPCTR_CSSTS_SHIFT          (12)
+#define     USB_DCPCTR_CSCLR_SHIFT          (13)
+#define     USB_DCPCTR_SUREQ_SHIFT          (14)
+#define     USB_DCPCTR_BSTS_SHIFT           (15)
+
+/*==============================================*/
+/* PIPESEL                                      */
+/*==============================================*/
+#define     USB_PIPESEL_PIPESEL             (0x000Fu)
+/* #define  USB_PIPESEL_RESERVED            (0xFFF0u) */
+
+#define     USB_PIPESEL_PIPESEL_SHIFT       (0)
+/* #define  USB_PIPESEL_RESERVED_SHIFT      (4) */
+
+/*==============================================*/
+/* PIPECFG                                      */
+/*==============================================*/
+#define     USB_PIPECFG_EPNUM               (0x000Fu)
+#define     USB_PIPECFG_DIR                 (0x0010u)
+/* #define  USB_PIPECFG_RESERVED1           (0x0060u) */
+#define     USB_PIPECFG_SHTNAK              (0x0080u)
+#define     USB_PIPECFG_CNTMD               (0x0100u)
+#define     USB_PIPECFG_DBLB                (0x0200u)
+#define     USB_PIPECFG_BFRE                (0x0400u)
+/* #define  USB_PIPECFG_RESERVED2           (0x3800u) */
+#define     USB_PIPECFG_TYPE                (0xC000u)
+
+#define     USB_PIPECFG_EPNUM_SHIFT         (0)
+#define     USB_PIPECFG_DIR_SHIFT           (4)
+/* #define  USB_PIPECFG_RESERVED1_SHIFT     (5) */
+#define     USB_PIPECFG_SHTNAK_SHIFT        (7)
+#define     USB_PIPECFG_CNTMD_SHIFT         (8)
+#define     USB_PIPECFG_DBLB_SHIFT          (9)
+#define     USB_PIPECFG_BFRE_SHIFT          (10)
+/* #define  USB_PIPECFG_RESERVED2_SHIFT     (11) */
+#define     USB_PIPECFG_TYPE_SHIFT          (14)
+
+/*==============================================*/
+/* PIPEBUF                                      */
+/*==============================================*/
+#define     USB_PIPEBUF_BUFNMB              (0x00FFu)
+/* #define  USB_PIPEBUF_RESERVED1           (0x0300u) */
+#define     USB_PIPEBUF_BUFSIZE             (0x7C00u)
+/* #define  USB_PIPEBUF_RESERVED2           (0x8000u) */
+
+#define     USB_PIPEBUF_BUFNMB_SHIFT        (0)
+/* #define  USB_PIPEBUF_RESERVED1_SHIFT     (8) */
+#define     USB_PIPEBUF_BUFSIZE_SHIFT       (10)
+/* #define  USB_PIPEBUF_RESERVED2_SHIFT     (15) */
+
+/*==============================================*/
+/* PIPEMAXP                                     */
+/*==============================================*/
+#define     USB_PIPEMAXP_MXPS               (0x07FFu)
+/* #define  USB_PIPEMAXP_RESERVED           (0x0800u) */
+#define     USB_PIPEMAXP_DEVSEL             (0xF000u)
+
+#define     USB_PIPEMAXP_MXPS_SHIFT         (0)
+/* #define  USB_PIPEMAXP_RESERVED_SHIFT     (11) */
+#define     USB_PIPEMAXP_DEVSEL_SHIFT       (12)
+
+/*==============================================*/
+/* PIPEPERI                                     */
+/*==============================================*/
+#define     USB_PIPEPERI_IITV               (0x0007u)
+/* #define  USB_PIPEPERI_RESERVED1          (0x0FF8u) */
+#define     USB_PIPEPERI_IFIS               (0x1000u)
+/* #define  USB_PIPEPERI_RESERVED2          (0xE000u) */
+
+#define     USB_PIPEPERI_IITV_SHIFT         (0)
+/* #define  USB_PIPEPERI_RESERVED1_SHIFT    (3) */
+#define     USB_PIPEPERI_IFIS_SHIFT         (12)
+/* #define  USB_PIPEPERI_RESERVED2_SHIFT    (13) */
+
+/*==============================================*/
+/* PIPEnCTR_1_5                                 */
+/*==============================================*/
+#define     USB_PIPEnCTR_1_5_PID                (0x0003u)
+/* #define  USB_PIPEnCTR_1_5_RESERVED1          (0x001Cu) */
+#define     USB_PIPEnCTR_1_5_PBUSY              (0x0020u)
+#define     USB_PIPEnCTR_1_5_SQMON              (0x0040u)
+#define     USB_PIPEnCTR_1_5_SQSET              (0x0080u)
+#define     USB_PIPEnCTR_1_5_SQCLR              (0x0100u)
+#define     USB_PIPEnCTR_1_5_ACLRM              (0x0200u)
+#define     USB_PIPEnCTR_1_5_ATREPM             (0x0400u)
+/* #define  USB_PIPEnCTR_1_5_RESERVED2          (0x0800u) */
+#define     USB_PIPEnCTR_1_5_CSSTS              (0x1000u)
+#define     USB_PIPEnCTR_1_5_CSCLR              (0x2000u)
+#define     USB_PIPEnCTR_1_5_INBUFM             (0x4000u)
+#define     USB_PIPEnCTR_1_5_BSTS               (0x8000u)
+
+#define     USB_PIPEnCTR_1_5_PID_SHIFT          (0)
+/* #define  USB_PIPEnCTR_1_5_RESERVED1_SHIFT    (2) */
+#define     USB_PIPEnCTR_1_5_PBUSY_SHIFT        (5)
+#define     USB_PIPEnCTR_1_5_SQMON_SHIFT        (6)
+#define     USB_PIPEnCTR_1_5_SQSET_SHIFT        (7)
+#define     USB_PIPEnCTR_1_5_SQCLR_SHIFT        (8)
+#define     USB_PIPEnCTR_1_5_ACLRM_SHIFT        (9)
+#define     USB_PIPEnCTR_1_5_ATREPM_SHIFT       (10)
+/* #define  USB_PIPEnCTR_1_5_RESERVED2_SHIFT    (11) */
+#define     USB_PIPEnCTR_1_5_CSSTS_SHIFT        (12)
+#define     USB_PIPEnCTR_1_5_CSCLR_SHIFT        (13)
+#define     USB_PIPEnCTR_1_5_INBUFM_SHIFT       (14)
+#define     USB_PIPEnCTR_1_5_BSTS_SHIFT         (15)
+
+/*==============================================*/
+/* PIPEnCTR_6_8                                 */
+/*==============================================*/
+#define     USB_PIPEnCTR_6_8_PID                (0x0003u)
+/* #define  USB_PIPEnCTR_6_8_RESERVED1          (0x001Cu) */
+#define     USB_PIPEnCTR_6_8_PBUSY              (0x0020u)
+#define     USB_PIPEnCTR_6_8_SQMON              (0x0040u)
+#define     USB_PIPEnCTR_6_8_SQSET              (0x0080u)
+#define     USB_PIPEnCTR_6_8_SQCLR              (0x0100u)
+#define     USB_PIPEnCTR_6_8_ACLRM              (0x0200u)
+/* #define  USB_PIPEnCTR_6_8_RESERVED2          (0x0C00u) */
+#define     USB_PIPEnCTR_6_8_CSSTS              (0x1000u)
+#define     USB_PIPEnCTR_6_8_CSCLR              (0x2000u)
+/* #define  USB_PIPEnCTR_6_8_RESERVED3          (0x4000u) */
+#define     USB_PIPEnCTR_6_8_BSTS               (0x8000u)
+
+#define     USB_PIPEnCTR_6_8_PID_SHIFT          (0)
+/* #define  USB_PIPEnCTR_6_8_RESERVED1_SHIFT    (2) */
+#define     USB_PIPEnCTR_6_8_PBUSY_SHIFT        (5)
+#define     USB_PIPEnCTR_6_8_SQMON_SHIFT        (6)
+#define     USB_PIPEnCTR_6_8_SQSET_SHIFT        (7)
+#define     USB_PIPEnCTR_6_8_SQCLR_SHIFT        (8)
+#define     USB_PIPEnCTR_6_8_ACLRM_SHIFT        (9)
+/* #define  USB_PIPEnCTR_6_8_RESERVED2_SHIFT    (10) */
+#define     USB_PIPEnCTR_6_8_CSSTS_SHIFT        (12)
+#define     USB_PIPEnCTR_6_8_CSCLR_SHIFT        (13)
+/* #define  USB_PIPEnCTR_6_8_RESERVED3_SHIFT    (14) */
+#define     USB_PIPEnCTR_6_8_BSTS_SHIFT         (15)
+
+/*==============================================*/
+/* PIPEnCTR_9                                   */
+/*==============================================*/
+#define     USB_PIPEnCTR_9_PID                  (0x0003u)
+/* #define  USB_PIPEnCTR_9_RESERVED1            (0x001Cu) */
+#define     USB_PIPEnCTR_9_PBUSY                (0x0020u)
+#define     USB_PIPEnCTR_9_SQMON                (0x0040u)
+#define     USB_PIPEnCTR_9_SQSET                (0x0080u)
+#define     USB_PIPEnCTR_9_SQCLR                (0x0100u)
+#define     USB_PIPEnCTR_9_ACLRM                (0x0200u)
+#define     USB_PIPEnCTR_9_ATREPM               (0x0400u)
+/* #define  USB_PIPEnCTR_9_RESERVED2            (0x0800u) */
+#define     USB_PIPEnCTR_9_CSSTS                (0x1000u)
+#define     USB_PIPEnCTR_9_CSCLR                (0x2000u)
+#define     USB_PIPEnCTR_9_INBUFM               (0x4000u)
+#define     USB_PIPEnCTR_9_BSTS                 (0x8000u)
+
+#define     USB_PIPEnCTR_9_PID_SHIFT            (0)
+/* #define  USB_PIPEnCTR_9_RESERVED1_SHIFT      (2) */
+#define     USB_PIPEnCTR_9_PBUSY_SHIFT          (5)
+#define     USB_PIPEnCTR_9_SQMON_SHIFT          (6)
+#define     USB_PIPEnCTR_9_SQSET_SHIFT          (7)
+#define     USB_PIPEnCTR_9_SQCLR_SHIFT          (8)
+#define     USB_PIPEnCTR_9_ACLRM_SHIFT          (9)
+#define     USB_PIPEnCTR_9_ATREPM_SHIFT         (10)
+/* #define  USB_PIPEnCTR_9_RESERVED2_SHIFT      (11) */
+#define     USB_PIPEnCTR_9_CSSTS_SHIFT          (12)
+#define     USB_PIPEnCTR_9_CSCLR_SHIFT          (13)
+#define     USB_PIPEnCTR_9_INBUFM_SHIFT         (14)
+#define     USB_PIPEnCTR_9_BSTS_SHIFT           (15)
+
+/*==============================================*/
+/* PIPEnCTR_A_F                                 */
+/*==============================================*/
+#define     USB_PIPEnCTR_A_F_PID                (0x0003u)
+/* #define  USB_PIPEnCTR_A_F_RESERVED1          (0x001Cu) */
+#define     USB_PIPEnCTR_A_F_PBUSY              (0x0020u)
+#define     USB_PIPEnCTR_A_F_SQMON              (0x0040u)
+#define     USB_PIPEnCTR_A_F_SQSET              (0x0080u)
+#define     USB_PIPEnCTR_A_F_SQCLR              (0x0100u)
+#define     USB_PIPEnCTR_A_F_ACLRM              (0x0200u)
+#define     USB_PIPEnCTR_A_F_ATREPM             (0x0400u)
+/* #define  USB_PIPEnCTR_A_F_RESERVED2          (0x3800u) */
+#define     USB_PIPEnCTR_A_F_INBUFM             (0x4000u)
+#define     USB_PIPEnCTR_A_F_BSTS               (0x8000u)
+
+#define     USB_PIPEnCTR_A_F_PID_SHIFT          (0)
+/* #define  USB_PIPEnCTR_A_F_RESERVED1_SHIFT    (2) */
+#define     USB_PIPEnCTR_A_F_PBUSY_SHIFT        (5)
+#define     USB_PIPEnCTR_A_F_SQMON_SHIFT        (6)
+#define     USB_PIPEnCTR_A_F_SQSET_SHIFT        (7)
+#define     USB_PIPEnCTR_A_F_SQCLR_SHIFT        (8)
+#define     USB_PIPEnCTR_A_F_ACLRM_SHIFT        (9)
+#define     USB_PIPEnCTR_A_F_ATREPM_SHIFT       (10)
+/* #define  USB_PIPEnCTR_A_F_RESERVED2_SHIFT    (11) */
+#define     USB_PIPEnCTR_A_F_INBUFM_SHIFT       (14)
+#define     USB_PIPEnCTR_A_F_BSTS_SHIFT         (15)
+
+/*==============================================*/
+/* PIPEnTRE                                     */
+/*==============================================*/
+/* #define  USB_PIPEnTRE_RESERVED1              (0x00FFu) */
+#define     USB_PIPEnTRE_TRCLR                  (0x0100u)
+#define     USB_PIPEnTRE_TRENB                  (0x0200u)
+/* #define  USB_PIPEnTRE_RESERVED2              (0xFC00u) */
+
+/* #define  USB_PIPEnTRE_RESERVED1_SHIFT        (0) */
+#define     USB_PIPEnTRE_TRCLR_SHIFT            (8)
+#define     USB_PIPEnTRE_TRENB_SHIFT            (9)
+/* #define  USB_PIPEnTRE_RESERVED2_SHIFT        (10) */
+
+/*==============================================*/
+/* PIPEnTRN                                     */
+/*==============================================*/
+#define     USB_PIPEnTRN                        (0xFFFFu)
+
+#define     USB_PIPEnTRN_SHIFT                  (0)
+
+/*==============================================*/
+/* DEVADDn                                      */
+/*==============================================*/
+/* #define  USB_DEVADDn_RESERVED1               (0x003Fu) */
+#define     USB_DEVADDn_USBSPD                  (0x00C0u)
+#define     USB_DEVADDn_HUBPORT                 (0x0700u)
+#define     USB_DEVADDn_UPPHUB                  (0x7800u)
+/* #define  USB_DEVADDn_RESERVED2               (0x8000u) */
+
+/* #define  USB_DEVADDn_RESERVED1_SHIFT         (0) */
+#define     USB_DEVADDn_USBSPD_SHIFT            (6)
+#define     USB_DEVADDn_HUBPORT_SHIFT           (8)
+#define     USB_DEVADDn_UPPHUB_SHIFT            (11)
+/* #define  USB_DEVADDn_RESERVED2_SHIFT         (15) */
+
+/*==============================================*/
+/* SUSPMODE                                     */
+/*==============================================*/
+/* #define  USB_SUSPMODE_RESERVED1              (0x3FFFu) */
+#define     USB_SUSPMODE_SUSPM                  (0x4000u)
+/* #define  USB_SUSPMODE_RESERVED2              (0x8000u) */
+
+/* #define  USB_SUSPMODE_RESERVED1_SHIFT        (0) */
+#define     USB_SUSPMODE_SUSPM_SHIFT            (14)
+/* #define  USB_SUSPMODE_RESERVED2_SHIFT        (15) */
+
+/*==============================================*/
+/* DnFIFOBm                                     */
+/*==============================================*/
+#define     USB_DnFIFOBm                        (0xFFFFu)
+
+#define     USB_DnFIFOBm_SHIFT                  (0)
+
+#endif /* USB_IOBITMASK_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefine.h	(revision 429)
@@ -0,0 +1,78 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef R7S721000_IODEFINE_H
+#define R7S721000_IODEFINE_H
+
+#define H H_BYTE
+
+#include "iodefines/iodefine_typedef.h"                         /* (V2.00h) */
+
+#include "iodefines/adc_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/bsc_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/ceu_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/cpg_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/disc_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/dmac_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/dvdec_iodefine.h"                           /* (V2.00h) */
+#include "iodefines/ether_iodefine.h"                           /* (V2.00h) */
+#include "iodefines/flctl_iodefine.h"                           /* (V2.00h) */
+#include "iodefines/gpio_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/ieb_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/inb_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/intc_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/irda_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/jcu_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/l2c_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/lin_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/lvds_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/mlb_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/mmc_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/mtu2_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/ostm_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/pfv_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/pwm_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/riic_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/romdec_iodefine.h"                          /* (V2.00h) */
+#include "iodefines/rscan0_iodefine.h"                          /* (V2.00h) */
+#include "iodefines/rspi_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/rtc_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/scif_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/scim_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/scux_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/sdg_iodefine.h"                             /* (V2.00h) */
+#include "iodefines/spdif_iodefine.h"                           /* (V2.00h) */
+#include "iodefines/spibsc_iodefine.h"                          /* (V2.00h) */
+#include "iodefines/ssif_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/usb20_iodefine.h"                           /* (V2.00h) */
+#include "iodefines/vdc5_iodefine.h"                            /* (V2.00h) */
+#include "iodefines/wdt_iodefine.h"                             /* (V2.00h) */
+
+#undef H
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/adc_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/adc_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/adc_iodefine.h	(revision 429)
@@ -0,0 +1,107 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : adc_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef ADC_IODEFINE_H
+#define ADC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define ADC     (*(struct st_adc     *)0xE8005800uL) /* ADC */
+
+
+#define ADCADDRA (ADC.ADDRA)
+#define ADCADDRB (ADC.ADDRB)
+#define ADCADDRC (ADC.ADDRC)
+#define ADCADDRD (ADC.ADDRD)
+#define ADCADDRE (ADC.ADDRE)
+#define ADCADDRF (ADC.ADDRF)
+#define ADCADDRG (ADC.ADDRG)
+#define ADCADDRH (ADC.ADDRH)
+#define ADCADCMPHA (ADC.ADCMPHA)
+#define ADCADCMPLA (ADC.ADCMPLA)
+#define ADCADCMPHB (ADC.ADCMPHB)
+#define ADCADCMPLB (ADC.ADCMPLB)
+#define ADCADCMPHC (ADC.ADCMPHC)
+#define ADCADCMPLC (ADC.ADCMPLC)
+#define ADCADCMPHD (ADC.ADCMPHD)
+#define ADCADCMPLD (ADC.ADCMPLD)
+#define ADCADCMPHE (ADC.ADCMPHE)
+#define ADCADCMPLE (ADC.ADCMPLE)
+#define ADCADCMPHF (ADC.ADCMPHF)
+#define ADCADCMPLF (ADC.ADCMPLF)
+#define ADCADCMPHG (ADC.ADCMPHG)
+#define ADCADCMPLG (ADC.ADCMPLG)
+#define ADCADCMPHH (ADC.ADCMPHH)
+#define ADCADCMPLH (ADC.ADCMPLH)
+#define ADCADCSR (ADC.ADCSR)
+#define ADCADCMPER (ADC.ADCMPER)
+#define ADCADCMPSR (ADC.ADCMPSR)
+
+
+typedef struct st_adc
+{
+                                                           /* ADC              */
+    volatile uint16_t ADDRA;                                  /*  ADDRA           */
+    volatile uint16_t ADDRB;                                  /*  ADDRB           */
+    volatile uint16_t ADDRC;                                  /*  ADDRC           */
+    volatile uint16_t ADDRD;                                  /*  ADDRD           */
+    volatile uint16_t ADDRE;                                  /*  ADDRE           */
+    volatile uint16_t ADDRF;                                  /*  ADDRF           */
+    volatile uint16_t ADDRG;                                  /*  ADDRG           */
+    volatile uint16_t ADDRH;                                  /*  ADDRH           */
+    volatile uint8_t   dummy32[16];                            /*                  */
+    volatile uint16_t ADCMPHA;                                /*  ADCMPHA         */
+    volatile uint16_t ADCMPLA;                                /*  ADCMPLA         */
+    volatile uint16_t ADCMPHB;                                /*  ADCMPHB         */
+    volatile uint16_t ADCMPLB;                                /*  ADCMPLB         */
+    volatile uint16_t ADCMPHC;                                /*  ADCMPHC         */
+    volatile uint16_t ADCMPLC;                                /*  ADCMPLC         */
+    volatile uint16_t ADCMPHD;                                /*  ADCMPHD         */
+    volatile uint16_t ADCMPLD;                                /*  ADCMPLD         */
+    volatile uint16_t ADCMPHE;                                /*  ADCMPHE         */
+    volatile uint16_t ADCMPLE;                                /*  ADCMPLE         */
+    volatile uint16_t ADCMPHF;                                /*  ADCMPHF         */
+    volatile uint16_t ADCMPLF;                                /*  ADCMPLF         */
+    volatile uint16_t ADCMPHG;                                /*  ADCMPHG         */
+    volatile uint16_t ADCMPLG;                                /*  ADCMPLG         */
+    volatile uint16_t ADCMPHH;                                /*  ADCMPHH         */
+    volatile uint16_t ADCMPLH;                                /*  ADCMPLH         */
+    volatile uint8_t   dummy33[32];                            /*                  */
+    volatile uint16_t ADCSR;                                  /*  ADCSR           */
+    volatile uint16_t ADCMPER;                                /*  ADCMPER         */
+    volatile uint16_t ADCMPSR;                                /*  ADCMPSR         */
+} r_io_adc_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/bsc_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/bsc_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/bsc_iodefine.h	(revision 429)
@@ -0,0 +1,115 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : bsc_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef BSC_IODEFINE_H
+#define BSC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define BSC     (*(struct st_bsc     *)0x3FFFC000uL) /* BSC */
+
+
+#define BSCCMNCR (BSC.CMNCR)
+#define BSCCS0BCR (BSC.CS0BCR)
+#define BSCCS1BCR (BSC.CS1BCR)
+#define BSCCS2BCR (BSC.CS2BCR)
+#define BSCCS3BCR (BSC.CS3BCR)
+#define BSCCS4BCR (BSC.CS4BCR)
+#define BSCCS5BCR (BSC.CS5BCR)
+#define BSCCS0WCR (BSC.CS0WCR)
+#define BSCCS1WCR (BSC.CS1WCR)
+#define BSCCS2WCR (BSC.CS2WCR)
+#define BSCCS3WCR (BSC.CS3WCR)
+#define BSCCS4WCR (BSC.CS4WCR)
+#define BSCCS5WCR (BSC.CS5WCR)
+#define BSCSDCR (BSC.SDCR)
+#define BSCRTCSR (BSC.RTCSR)
+#define BSCRTCNT (BSC.RTCNT)
+#define BSCRTCOR (BSC.RTCOR)
+#define BSCTOSCOR0 (BSC.TOSCOR0)
+#define BSCTOSCOR1 (BSC.TOSCOR1)
+#define BSCTOSCOR2 (BSC.TOSCOR2)
+#define BSCTOSCOR3 (BSC.TOSCOR3)
+#define BSCTOSCOR4 (BSC.TOSCOR4)
+#define BSCTOSCOR5 (BSC.TOSCOR5)
+#define BSCTOSTR (BSC.TOSTR)
+#define BSCTOENR (BSC.TOENR)
+
+#define BSC_CSnBCR_COUNT (6)
+#define BSC_CSnWCR_COUNT (6)
+#define BSC_TOSCORn_COUNT (6)
+
+
+typedef struct st_bsc
+{
+                                                           /* BSC              */
+    volatile uint32_t  CMNCR;                                  /*  CMNCR           */
+
+/* #define BSC_CSnBCR_COUNT (6) */
+    volatile uint32_t  CS0BCR;                                 /*  CS0BCR          */
+    volatile uint32_t  CS1BCR;                                 /*  CS1BCR          */
+    volatile uint32_t  CS2BCR;                                 /*  CS2BCR          */
+    volatile uint32_t  CS3BCR;                                 /*  CS3BCR          */
+    volatile uint32_t  CS4BCR;                                 /*  CS4BCR          */
+    volatile uint32_t  CS5BCR;                                 /*  CS5BCR          */
+    volatile uint8_t   dummy4[12];                             /*                  */
+
+/* #define BSC_CSnWCR_COUNT (6) */
+    volatile uint32_t  CS0WCR;                                 /*  CS0WCR          */
+    volatile uint32_t  CS1WCR;                                 /*  CS1WCR          */
+    volatile uint32_t  CS2WCR;                                 /*  CS2WCR          */
+    volatile uint32_t  CS3WCR;                                 /*  CS3WCR          */
+    volatile uint32_t  CS4WCR;                                 /*  CS4WCR          */
+    volatile uint32_t  CS5WCR;                                 /*  CS5WCR          */
+    volatile uint8_t   dummy5[12];                             /*                  */
+    volatile uint32_t  SDCR;                                   /*  SDCR            */
+    volatile uint32_t  RTCSR;                                  /*  RTCSR           */
+    volatile uint32_t  RTCNT;                                  /*  RTCNT           */
+    volatile uint32_t  RTCOR;                                  /*  RTCOR           */
+    volatile uint8_t   dummy6[4];                              /*                  */
+
+/* #define BSC_TOSCORn_COUNT (6) */
+    volatile uint32_t  TOSCOR0;                                /*  TOSCOR0         */
+    volatile uint32_t  TOSCOR1;                                /*  TOSCOR1         */
+    volatile uint32_t  TOSCOR2;                                /*  TOSCOR2         */
+    volatile uint32_t  TOSCOR3;                                /*  TOSCOR3         */
+    volatile uint32_t  TOSCOR4;                                /*  TOSCOR4         */
+    volatile uint32_t  TOSCOR5;                                /*  TOSCOR5         */
+    volatile uint8_t   dummy7[8];                              /*                  */
+    volatile uint32_t  TOSTR;                                  /*  TOSTR           */
+    volatile uint32_t  TOENR;                                  /*  TOENR           */
+} r_io_bsc_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ceu_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ceu_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ceu_iodefine.h	(revision 429)
@@ -0,0 +1,295 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : ceu_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef CEU_IODEFINE_H
+#define CEU_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define CEU     (*(struct st_ceu     *)0xE8210000uL) /* CEU */
+
+
+/* Start of channel array defines of CEU */
+
+/* Channel array defines of CEUn */
+/*(Sample) value = CEUn[ channel ]->CAMOR; */
+#define CEUn_COUNT  (3)
+#define CEUn_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    (volatile struct st_ceu_n*)&CEU_A, \
+    (volatile struct st_ceu_n*)&CEU_B, \
+    (volatile struct st_ceu_n*)&CEU_M \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define CEU_A   (*(struct st_ceu_n *)&CEU.CAPSR)                 /* CEU_A */
+#define CEU_B   (*(struct st_ceu_n *)&CEU.dummy3111)             /* CEU_B */
+#define CEU_M   (*(struct st_ceu_n *)&CEU.dummy3151)             /* CEU_M */
+
+/* End of channel array defines of CEU */
+
+
+#define CEUCAPSR (CEU.CAPSR)
+#define CEUCAPCR (CEU.CAPCR)
+#define CEUCAMCR (CEU.CAMCR)
+#define CEUCMCYR (CEU.CMCYR)
+#define CEUCAMOR_A (CEU.CAMOR_A)
+#define CEUCAPWR_A (CEU.CAPWR_A)
+#define CEUCAIFR (CEU.CAIFR)
+#define CEUCRCNTR (CEU.CRCNTR)
+#define CEUCRCMPR (CEU.CRCMPR)
+#define CEUCFLCR_A (CEU.CFLCR_A)
+#define CEUCFSZR_A (CEU.CFSZR_A)
+#define CEUCDWDR_A (CEU.CDWDR_A)
+#define CEUCDAYR_A (CEU.CDAYR_A)
+#define CEUCDACR_A (CEU.CDACR_A)
+#define CEUCDBYR_A (CEU.CDBYR_A)
+#define CEUCDBCR_A (CEU.CDBCR_A)
+#define CEUCBDSR_A (CEU.CBDSR_A)
+#define CEUCFWCR (CEU.CFWCR)
+#define CEUCLFCR_A (CEU.CLFCR_A)
+#define CEUCDOCR_A (CEU.CDOCR_A)
+#define CEUCEIER (CEU.CEIER)
+#define CEUCETCR (CEU.CETCR)
+#define CEUCSTSR (CEU.CSTSR)
+#define CEUCDSSR (CEU.CDSSR)
+#define CEUCDAYR2_A (CEU.CDAYR2_A)
+#define CEUCDACR2_A (CEU.CDACR2_A)
+#define CEUCDBYR2_A (CEU.CDBYR2_A)
+#define CEUCDBCR2_A (CEU.CDBCR2_A)
+#define CEUCAMOR_B (CEU.CAMOR_B)
+#define CEUCAPWR_B (CEU.CAPWR_B)
+#define CEUCFLCR_B (CEU.CFLCR_B)
+#define CEUCFSZR_B (CEU.CFSZR_B)
+#define CEUCDWDR_B (CEU.CDWDR_B)
+#define CEUCDAYR_B (CEU.CDAYR_B)
+#define CEUCDACR_B (CEU.CDACR_B)
+#define CEUCDBYR_B (CEU.CDBYR_B)
+#define CEUCDBCR_B (CEU.CDBCR_B)
+#define CEUCBDSR_B (CEU.CBDSR_B)
+#define CEUCLFCR_B (CEU.CLFCR_B)
+#define CEUCDOCR_B (CEU.CDOCR_B)
+#define CEUCDAYR2_B (CEU.CDAYR2_B)
+#define CEUCDACR2_B (CEU.CDACR2_B)
+#define CEUCDBYR2_B (CEU.CDBYR2_B)
+#define CEUCDBCR2_B (CEU.CDBCR2_B)
+#define CEUCAMOR_M (CEU.CAMOR_M)
+#define CEUCAPWR_M (CEU.CAPWR_M)
+#define CEUCFLCR_M (CEU.CFLCR_M)
+#define CEUCFSZR_M (CEU.CFSZR_M)
+#define CEUCDWDR_M (CEU.CDWDR_M)
+#define CEUCDAYR_M (CEU.CDAYR_M)
+#define CEUCDACR_M (CEU.CDACR_M)
+#define CEUCDBYR_M (CEU.CDBYR_M)
+#define CEUCDBCR_M (CEU.CDBCR_M)
+#define CEUCBDSR_M (CEU.CBDSR_M)
+#define CEUCLFCR_M (CEU.CLFCR_M)
+#define CEUCDOCR_M (CEU.CDOCR_M)
+#define CEUCDAYR2_M (CEU.CDAYR2_M)
+#define CEUCDACR2_M (CEU.CDACR2_M)
+#define CEUCDBYR2_M (CEU.CDBYR2_M)
+#define CEUCDBCR2_M (CEU.CDBCR2_M)
+
+
+typedef struct st_ceu
+{
+                                                           /* CEU              */
+
+/* start of struct st_ceu_n */
+    volatile uint32_t  CAPSR;                                  /*  CAPSR           */
+    volatile uint32_t  CAPCR;                                  /*  CAPCR           */
+    volatile uint32_t  CAMCR;                                  /*  CAMCR           */
+    volatile uint32_t  CMCYR;                                  /*  CMCYR           */
+    volatile uint32_t  CAMOR_A;                                /*  CAMOR_A         */
+    volatile uint32_t  CAPWR_A;                                /*  CAPWR_A         */
+    volatile uint32_t  CAIFR;                                  /*  CAIFR           */
+    volatile uint8_t   dummy305[12];                           /*                  */
+    volatile uint32_t  CRCNTR;                                 /*  CRCNTR          */
+    volatile uint32_t  CRCMPR;                                 /*  CRCMPR          */
+    volatile uint32_t  CFLCR_A;                                /*  CFLCR_A         */
+    volatile uint32_t  CFSZR_A;                                /*  CFSZR_A         */
+    volatile uint32_t  CDWDR_A;                                /*  CDWDR_A         */
+    volatile uint32_t  CDAYR_A;                                /*  CDAYR_A         */
+    volatile uint32_t  CDACR_A;                                /*  CDACR_A         */
+    volatile uint32_t  CDBYR_A;                                /*  CDBYR_A         */
+    volatile uint32_t  CDBCR_A;                                /*  CDBCR_A         */
+    volatile uint32_t  CBDSR_A;                                /*  CBDSR_A         */
+    volatile uint8_t   dummy306[12];                           /*                  */
+    volatile uint32_t  CFWCR;                                  /*  CFWCR           */
+    volatile uint32_t  CLFCR_A;                                /*  CLFCR_A         */
+    volatile uint32_t  CDOCR_A;                                /*  CDOCR_A         */
+    volatile uint8_t   dummy307[8];                            /*                  */
+    volatile uint32_t  CEIER;                                  /*  CEIER           */
+    volatile uint32_t  CETCR;                                  /*  CETCR           */
+    volatile uint8_t   dummy308[4];                            /*                  */
+    volatile uint32_t  CSTSR;                                  /*  CSTSR           */
+    volatile uint8_t   dummy309[4];                            /*                  */
+    volatile uint32_t  CDSSR;                                  /*  CDSSR           */
+    volatile uint8_t   dummy310[8];                            /*                  */
+    volatile uint32_t  CDAYR2_A;                               /*  CDAYR2_A        */
+    volatile uint32_t  CDACR2_A;                               /*  CDACR2_A        */
+    volatile uint32_t  CDBYR2_A;                               /*  CDBYR2_A        */
+    volatile uint32_t  CDBCR2_A;                               /*  CDBCR2_A        */
+
+/* end of struct st_ceu_n */
+    volatile uint8_t   dummy3110[3936];                        /*                  */
+
+/* start of struct st_ceu_n */
+    volatile uint8_t   dummy3111[4];                           /*                  */
+    volatile uint8_t   dummy3112[4];                           /*                  */
+    volatile uint8_t   dummy3113[4];                           /*                  */
+    volatile uint8_t   dummy3114[4];                           /*                  */
+    volatile uint32_t  CAMOR_B;                                /*  CAMOR_B         */
+    volatile uint32_t  CAPWR_B;                                /*  CAPWR_B         */
+    volatile uint8_t   dummy3120[4];                           /*                  */
+    volatile uint8_t   dummy3121[12];                          /*                  */
+    volatile uint8_t   dummy3122[4];                           /*                  */
+    volatile uint8_t   dummy3123[4];                           /*                  */
+    volatile uint32_t  CFLCR_B;                                /*  CFLCR_B         */
+    volatile uint32_t  CFSZR_B;                                /*  CFSZR_B         */
+    volatile uint32_t  CDWDR_B;                                /*  CDWDR_B         */
+    volatile uint32_t  CDAYR_B;                                /*  CDAYR_B         */
+    volatile uint32_t  CDACR_B;                                /*  CDACR_B         */
+    volatile uint32_t  CDBYR_B;                                /*  CDBYR_B         */
+    volatile uint32_t  CDBCR_B;                                /*  CDBCR_B         */
+    volatile uint32_t  CBDSR_B;                                /*  CBDSR_B         */
+    volatile uint8_t   dummy3130[12];                          /*                  */
+    volatile uint8_t   dummy3131[4];                           /*                  */
+    volatile uint32_t  CLFCR_B;                                /*  CLFCR_B         */
+    volatile uint32_t  CDOCR_B;                                /*  CDOCR_B         */
+    volatile uint8_t   dummy3140[8];                           /*                  */
+    volatile uint8_t   dummy3141[4];                           /*                  */
+    volatile uint8_t   dummy3142[4];                           /*                  */
+    volatile uint8_t   dummy3143[4];                           /*                  */
+    volatile uint8_t   dummy3144[4];                           /*                  */
+    volatile uint8_t   dummy3145[4];                           /*                  */
+    volatile uint8_t   dummy3146[4];                           /*                  */
+    volatile uint8_t   dummy3147[8];                           /*                  */
+    volatile uint32_t  CDAYR2_B;                               /*  CDAYR2_B        */
+    volatile uint32_t  CDACR2_B;                               /*  CDACR2_B        */
+    volatile uint32_t  CDBYR2_B;                               /*  CDBYR2_B        */
+    volatile uint32_t  CDBCR2_B;                               /*  CDBCR2_B        */
+
+/* end of struct st_ceu_n */
+    volatile uint8_t   dummy3150[3936];                        /*                  */
+
+/* start of struct st_ceu_n */
+    volatile uint8_t   dummy3151[4];                           /*                  */
+    volatile uint8_t   dummy3152[4];                           /*                  */
+    volatile uint8_t   dummy3153[4];                           /*                  */
+    volatile uint8_t   dummy3154[4];                           /*                  */
+    volatile uint32_t  CAMOR_M;                                /*  CAMOR_M         */
+    volatile uint32_t  CAPWR_M;                                /*  CAPWR_M         */
+    volatile uint8_t   dummy3160[4];                           /*                  */
+    volatile uint8_t   dummy3161[12];                          /*                  */
+    volatile uint8_t   dummy3162[4];                           /*                  */
+    volatile uint8_t   dummy3163[4];                           /*                  */
+    volatile uint32_t  CFLCR_M;                                /*  CFLCR_M         */
+    volatile uint32_t  CFSZR_M;                                /*  CFSZR_M         */
+    volatile uint32_t  CDWDR_M;                                /*  CDWDR_M         */
+    volatile uint32_t  CDAYR_M;                                /*  CDAYR_M         */
+    volatile uint32_t  CDACR_M;                                /*  CDACR_M         */
+    volatile uint32_t  CDBYR_M;                                /*  CDBYR_M         */
+    volatile uint32_t  CDBCR_M;                                /*  CDBCR_M         */
+    volatile uint32_t  CBDSR_M;                                /*  CBDSR_M         */
+    volatile uint8_t   dummy3170[12];                          /*                  */
+    volatile uint8_t   dummy3171[4];                           /*                  */
+    volatile uint32_t  CLFCR_M;                                /*  CLFCR_M         */
+    volatile uint32_t  CDOCR_M;                                /*  CDOCR_M         */
+    volatile uint8_t   dummy3180[8];                           /*                  */
+    volatile uint8_t   dummy3181[4];                           /*                  */
+    volatile uint8_t   dummy3182[4];                           /*                  */
+    volatile uint8_t   dummy3183[4];                           /*                  */
+    volatile uint8_t   dummy3184[4];                           /*                  */
+    volatile uint8_t   dummy3185[4];                           /*                  */
+    volatile uint8_t   dummy3186[4];                           /*                  */
+    volatile uint8_t   dummy3187[8];                           /*                  */
+    volatile uint32_t  CDAYR2_M;                               /*  CDAYR2_M        */
+    volatile uint32_t  CDACR2_M;                               /*  CDACR2_M        */
+    volatile uint32_t  CDBYR2_M;                               /*  CDBYR2_M        */
+    volatile uint32_t  CDBCR2_M;                               /*  CDBCR2_M        */
+
+/* end of struct st_ceu_n */
+} r_io_ceu_t;
+
+
+typedef struct st_ceu_n
+{
+ 
+    volatile uint32_t  not_common1;                            /*                  */
+    volatile uint32_t  not_common2;                            /*                  */
+    volatile uint32_t  not_common3;                            /*                  */
+    volatile uint32_t  not_common4;                            /*                  */
+    volatile uint32_t  CAMOR;                                  /*  CAMOR           */
+    volatile uint32_t  CAPWR;                                  /*  CAPWR           */
+    volatile uint32_t  not_common5;                            /*                  */
+    volatile uint8_t   dummy322[12];                           /*                  */
+    volatile uint32_t  not_common6;                            /*                  */
+    volatile uint32_t  not_common7;                            /*                  */
+    volatile uint32_t  CFLCR;                                  /*  CFLCR           */
+    volatile uint32_t  CFSZR;                                  /*  CFSZR           */
+    volatile uint32_t  CDWDR;                                  /*  CDWDR           */
+    volatile uint32_t  CDAYR;                                  /*  CDAYR           */
+    volatile uint32_t  CDACR;                                  /*  CDACR           */
+    volatile uint32_t  CDBYR;                                  /*  CDBYR           */
+    volatile uint32_t  CDBCR;                                  /*  CDBCR           */
+    volatile uint32_t  CBDSR;                                  /*  CBDSR           */
+    volatile uint8_t   dummy323[12];                           /*                  */
+    volatile uint32_t  not_common8;                            /*                  */
+    volatile uint32_t  CLFCR;                                  /*  CLFCR           */
+    volatile uint32_t  CDOCR;                                  /*  CDOCR           */
+    volatile uint8_t   dummy324[8];                            /*                  */
+    volatile uint32_t  not_common9;                            /*                  */
+    volatile uint32_t  not_common10;                           /*                  */
+    volatile uint8_t   dummy325[4];                            /*                  */
+    volatile uint32_t  not_common11;                           /*                  */
+    volatile uint8_t   dummy326[4];                            /*                  */
+    volatile uint32_t  not_common12;                           /*                  */
+    volatile uint8_t   dummy327[8];                            /*                  */
+    volatile uint32_t  CDAYR2;                                 /*  CDAYR2          */
+    volatile uint32_t  CDACR2;                                 /*  CDACR2          */
+    volatile uint32_t  CDBYR2;                                 /*  CDBYR2          */
+    volatile uint32_t  CDBCR2;                                 /*  CDBCR2          */
+} r_io_ceu_n_t;
+
+
+/* Channel array defines of CEUn (2)*/
+#ifdef  DECLARE_CEUn_CHANNELS
+volatile struct st_ceu_n*  CEUn[ CEUn_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    CEUn_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_CEUn_CHANNELS */
+/* End of channel array defines of CEUn (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/cpg_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/cpg_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/cpg_iodefine.h	(revision 429)
@@ -0,0 +1,307 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : cpg_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef CPG_IODEFINE_H
+#define CPG_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define CPG     (*(struct st_cpg     *)0xFCFE0010uL) /* CPG */
+
+
+/* Start of channel array defines of CPG */
+
+/* Channel array defines of CPG_FROM_SWRSTCR1_ARRAY */
+/*(Sample) value = CPG_FROM_SWRSTCR1_ARRAY[ channel ]->SWRSTCR1; */
+#define CPG_FROM_SWRSTCR1_ARRAY_COUNT  (3)
+#define CPG_FROM_SWRSTCR1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &CPG_FROM_SWRSTCR1, &CPG_FROM_SWRSTCR2, &CPG_FROM_SWRSTCR3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define CPG_FROM_SWRSTCR1 (*(struct st_cpg_from_swrstcr1 *)&CPG.SWRSTCR1) /* CPG_FROM_SWRSTCR1 */
+#define CPG_FROM_SWRSTCR2 (*(struct st_cpg_from_swrstcr1 *)&CPG.SWRSTCR2) /* CPG_FROM_SWRSTCR2 */
+#define CPG_FROM_SWRSTCR3 (*(struct st_cpg_from_swrstcr1 *)&CPG.SWRSTCR3) /* CPG_FROM_SWRSTCR3 */
+
+
+/* Channel array defines of CPG_FROM_STBCR3_ARRAY */
+/*(Sample) value = CPG_FROM_STBCR3_ARRAY[ channel ]->STBCR3; */
+#define CPG_FROM_STBCR3_ARRAY_COUNT  (10)
+#define CPG_FROM_STBCR3_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &CPG_FROM_STBCR3, &CPG_FROM_STBCR4, &CPG_FROM_STBCR5, &CPG_FROM_STBCR6, &CPG_FROM_STBCR7, &CPG_FROM_STBCR8, &CPG_FROM_STBCR9, &CPG_FROM_STBCR10, \
+    &CPG_FROM_STBCR11, &CPG_FROM_STBCR12 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define CPG_FROM_STBCR3 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR3) /* CPG_FROM_STBCR3 */
+#define CPG_FROM_STBCR4 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR4) /* CPG_FROM_STBCR4 */
+#define CPG_FROM_STBCR5 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR5) /* CPG_FROM_STBCR5 */
+#define CPG_FROM_STBCR6 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR6) /* CPG_FROM_STBCR6 */
+#define CPG_FROM_STBCR7 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR7) /* CPG_FROM_STBCR7 */
+#define CPG_FROM_STBCR8 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR8) /* CPG_FROM_STBCR8 */
+#define CPG_FROM_STBCR9 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR9) /* CPG_FROM_STBCR9 */
+#define CPG_FROM_STBCR10 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR10) /* CPG_FROM_STBCR10 */
+#define CPG_FROM_STBCR11 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR11) /* CPG_FROM_STBCR11 */
+#define CPG_FROM_STBCR12 (*(struct st_cpg_from_stbcr3 *)&CPG.STBCR12) /* CPG_FROM_STBCR12 */
+
+
+/* Channel array defines of CPG_FROM_SYSCR1_ARRAY */
+/*(Sample) value = CPG_FROM_SYSCR1_ARRAY[ channel ]->SYSCR1; */
+#define CPG_FROM_SYSCR1_ARRAY_COUNT  (3)
+#define CPG_FROM_SYSCR1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &CPG_FROM_SYSCR1, &CPG_FROM_SYSCR2, &CPG_FROM_SYSCR3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define CPG_FROM_SYSCR1 (*(struct st_cpg_from_syscr1 *)&CPG.SYSCR1) /* CPG_FROM_SYSCR1 */
+#define CPG_FROM_SYSCR2 (*(struct st_cpg_from_syscr1 *)&CPG.SYSCR2) /* CPG_FROM_SYSCR2 */
+#define CPG_FROM_SYSCR3 (*(struct st_cpg_from_syscr1 *)&CPG.SYSCR3) /* CPG_FROM_SYSCR3 */
+
+/* End of channel array defines of CPG */
+
+
+#define CPGFRQCR (CPG.FRQCR)
+#define CPGFRQCR2 (CPG.FRQCR2)
+#define CPGCPUSTS (CPG.CPUSTS)
+#define CPGSTBCR1 (CPG.STBCR1)
+#define CPGSTBCR2 (CPG.STBCR2)
+#define CPGSTBREQ1 (CPG.STBREQ1)
+#define CPGSTBREQ2 (CPG.STBREQ2)
+#define CPGSTBACK1 (CPG.STBACK1)
+#define CPGSTBACK2 (CPG.STBACK2)
+#define CPGSYSCR1 (CPG.SYSCR1)
+#define CPGSYSCR2 (CPG.SYSCR2)
+#define CPGSYSCR3 (CPG.SYSCR3)
+#define CPGSTBCR3 (CPG.STBCR3)
+#define CPGSTBCR4 (CPG.STBCR4)
+#define CPGSTBCR5 (CPG.STBCR5)
+#define CPGSTBCR6 (CPG.STBCR6)
+#define CPGSTBCR7 (CPG.STBCR7)
+#define CPGSTBCR8 (CPG.STBCR8)
+#define CPGSTBCR9 (CPG.STBCR9)
+#define CPGSTBCR10 (CPG.STBCR10)
+#define CPGSTBCR11 (CPG.STBCR11)
+#define CPGSTBCR12 (CPG.STBCR12)
+#define CPGSWRSTCR1 (CPG.SWRSTCR1)
+#define CPGSWRSTCR2 (CPG.SWRSTCR2)
+#define CPGSWRSTCR3 (CPG.SWRSTCR3)
+#define CPGSTBCR13 (CPG.STBCR13)
+#define CPGRRAMKP (CPG.RRAMKP)
+#define CPGDSCTR (CPG.DSCTR)
+#define CPGDSSSR (CPG.DSSSR)
+#define CPGDSESR (CPG.DSESR)
+#define CPGDSFR (CPG.DSFR)
+#define CPGXTALCTR (CPG.XTALCTR)
+
+
+typedef struct st_cpg
+{
+                                                           /* CPG              */
+    volatile uint16_t FRQCR;                                  /*  FRQCR           */
+    volatile uint8_t   dummy319[2];                            /*                  */
+    volatile uint16_t FRQCR2;                                 /*  FRQCR2          */
+    volatile uint8_t   dummy320[2];                            /*                  */
+    volatile uint8_t   CPUSTS;                                 /*  CPUSTS          */
+    volatile uint8_t   dummy321[7];                            /*                  */
+    volatile uint8_t   STBCR1;                                 /*  STBCR1          */
+    volatile uint8_t   dummy322[3];                            /*                  */
+    volatile uint8_t   STBCR2;                                 /*  STBCR2          */
+    volatile uint8_t   dummy323[11];                           /*                  */
+    volatile uint8_t   STBREQ1;                                /*  STBREQ1         */
+    volatile uint8_t   dummy324[3];                            /*                  */
+    volatile uint8_t   STBREQ2;                                /*  STBREQ2         */
+    volatile uint8_t   dummy325[11];                           /*                  */
+    volatile uint8_t   STBACK1;                                /*  STBACK1         */
+    volatile uint8_t   dummy326[3];                            /*                  */
+    volatile uint8_t   STBACK2;                                /*  STBACK2         */
+    volatile uint8_t   dummy327[955];                          /*                  */
+
+/* start of struct st_cpg_from_syscr1 */
+    volatile uint8_t   SYSCR1;                                 /*  SYSCR1          */
+    volatile uint8_t   dummy328[3];                            /*                  */
+
+/* end of struct st_cpg_from_syscr1 */
+
+/* start of struct st_cpg_from_syscr1 */
+    volatile uint8_t   SYSCR2;                                 /*  SYSCR2          */
+    volatile uint8_t   dummy329[3];                            /*                  */
+
+/* end of struct st_cpg_from_syscr1 */
+
+/* start of struct st_cpg_from_syscr1 */
+    volatile uint8_t   SYSCR3;                                 /*  SYSCR3          */
+    volatile uint8_t   dummy3300[3];                           /*                  */
+
+/* end of struct st_cpg_from_syscr1 */
+    volatile uint8_t   dummy3301[20];                          /*                  */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR3;                                 /*  STBCR3          */
+    volatile uint8_t   dummy331[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR4;                                 /*  STBCR4          */
+    volatile uint8_t   dummy332[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR5;                                 /*  STBCR5          */
+    volatile uint8_t   dummy333[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR6;                                 /*  STBCR6          */
+    volatile uint8_t   dummy334[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR7;                                 /*  STBCR7          */
+    volatile uint8_t   dummy335[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR8;                                 /*  STBCR8          */
+    volatile uint8_t   dummy336[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR9;                                 /*  STBCR9          */
+    volatile uint8_t   dummy337[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR10;                                /*  STBCR10         */
+    volatile uint8_t   dummy338[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR11;                                /*  STBCR11         */
+    volatile uint8_t   dummy339[3];                            /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+
+/* start of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   STBCR12;                                /*  STBCR12         */
+    volatile uint8_t   dummy3400[3];                           /*                  */
+
+/* end of struct st_cpg_from_stbcr3 */
+    volatile uint8_t   dummy3401[24];                          /*                  */
+
+/* start of struct st_cpg_from_swrstcr1 */
+    volatile uint8_t   SWRSTCR1;                               /*  SWRSTCR1        */
+    volatile uint8_t   dummy341[3];                            /*                  */
+
+/* end of struct st_cpg_from_swrstcr1 */
+
+/* start of struct st_cpg_from_swrstcr1 */
+    volatile uint8_t   SWRSTCR2;                               /*  SWRSTCR2        */
+    volatile uint8_t   dummy342[3];                            /*                  */
+
+/* end of struct st_cpg_from_swrstcr1 */
+
+/* start of struct st_cpg_from_swrstcr1 */
+    volatile uint8_t   SWRSTCR3;                               /*  SWRSTCR3        */
+    volatile uint8_t   dummy3430[3];                           /*                  */
+
+/* end of struct st_cpg_from_swrstcr1 */
+    volatile uint8_t   dummy3431[4];                           /*                  */
+    volatile uint8_t   STBCR13;                                /*  STBCR13         */
+    volatile uint8_t   dummy344[70543];                        /*                  */
+    volatile uint8_t   RRAMKP;                                 /*  RRAMKP          */
+    volatile uint8_t   dummy345[1];                            /*                  */
+    volatile uint8_t   DSCTR;                                  /*  DSCTR           */
+    volatile uint8_t   dummy346[1];                            /*                  */
+    volatile uint16_t DSSSR;                                  /*  DSSSR           */
+    volatile uint16_t DSESR;                                  /*  DSESR           */
+    volatile uint16_t DSFR;                                   /*  DSFR            */
+    volatile uint8_t   dummy347[6];                            /*                  */
+    volatile uint8_t   XTALCTR;                                /*  XTALCTR         */
+} r_io_cpg_t;
+
+
+typedef struct st_cpg_from_syscr1
+{
+ 
+    volatile uint8_t   SYSCR1;                                 /*  SYSCR1          */
+    volatile uint8_t   dummy1[3];                              /*                  */
+} r_io_cpg_from_syscr1_t;
+
+
+typedef struct st_cpg_from_stbcr3
+{
+ 
+    volatile uint8_t   STBCR3;                                 /*  STBCR3          */
+    volatile uint8_t   dummy1[3];                              /*                  */
+} r_io_cpg_from_stbcr3_t;
+
+
+typedef struct st_cpg_from_swrstcr1
+{
+ 
+    volatile uint8_t   SWRSTCR1;                               /*  SWRSTCR1        */
+    volatile uint8_t   dummy1[3];                              /*                  */
+} r_io_cpg_from_swrstcr1_t;
+
+
+/* Channel array defines of CPG (2)*/
+#ifdef  DECLARE_CPG_FROM_SWRSTCR1_ARRAY_CHANNELS
+volatile struct st_cpg_from_swrstcr1*  CPG_FROM_SWRSTCR1_ARRAY[ CPG_FROM_SWRSTCR1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    CPG_FROM_SWRSTCR1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_CPG_FROM_SWRSTCR1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_CPG_FROM_STBCR3_ARRAY_CHANNELS
+volatile struct st_cpg_from_stbcr3*  CPG_FROM_STBCR3_ARRAY[ CPG_FROM_STBCR3_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    CPG_FROM_STBCR3_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_CPG_FROM_STBCR3_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_CPG_FROM_SYSCR1_ARRAY_CHANNELS
+volatile struct st_cpg_from_syscr1*  CPG_FROM_SYSCR1_ARRAY[ CPG_FROM_SYSCR1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    CPG_FROM_SYSCR1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_CPG_FROM_SYSCR1_ARRAY_CHANNELS */
+/* End of channel array defines of CPG (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/disc_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/disc_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/disc_iodefine.h	(revision 429)
@@ -0,0 +1,112 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : disc_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef DISC_IODEFINE_H
+#define DISC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define DISC0   (*(struct st_disc    *)0xFCFFA800uL) /* DISC0 */
+#define DISC1   (*(struct st_disc    *)0xFCFFB000uL) /* DISC1 */
+
+
+/* Start of channel array defines of DISC */
+
+/* Channel array defines of DISC */
+/*(Sample) value = DISC[ channel ]->DOCMCR; */
+#define DISC_COUNT  (2)
+#define DISC_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &DISC0, &DISC1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of DISC */
+
+
+#define DISC0DOCMCR (DISC0.DOCMCR)
+#define DISC0DOCMSTR (DISC0.DOCMSTR)
+#define DISC0DOCMCLSTR (DISC0.DOCMCLSTR)
+#define DISC0DOCMIENR (DISC0.DOCMIENR)
+#define DISC0DOCMPMR (DISC0.DOCMPMR)
+#define DISC0DOCMECRCR (DISC0.DOCMECRCR)
+#define DISC0DOCMCCRCR (DISC0.DOCMCCRCR)
+#define DISC0DOCMSPXR (DISC0.DOCMSPXR)
+#define DISC0DOCMSPYR (DISC0.DOCMSPYR)
+#define DISC0DOCMSZXR (DISC0.DOCMSZXR)
+#define DISC0DOCMSZYR (DISC0.DOCMSZYR)
+#define DISC0DOCMCRCIR (DISC0.DOCMCRCIR)
+#define DISC1DOCMCR (DISC1.DOCMCR)
+#define DISC1DOCMSTR (DISC1.DOCMSTR)
+#define DISC1DOCMCLSTR (DISC1.DOCMCLSTR)
+#define DISC1DOCMIENR (DISC1.DOCMIENR)
+#define DISC1DOCMPMR (DISC1.DOCMPMR)
+#define DISC1DOCMECRCR (DISC1.DOCMECRCR)
+#define DISC1DOCMCCRCR (DISC1.DOCMCCRCR)
+#define DISC1DOCMSPXR (DISC1.DOCMSPXR)
+#define DISC1DOCMSPYR (DISC1.DOCMSPYR)
+#define DISC1DOCMSZXR (DISC1.DOCMSZXR)
+#define DISC1DOCMSZYR (DISC1.DOCMSZYR)
+#define DISC1DOCMCRCIR (DISC1.DOCMCRCIR)
+
+
+typedef struct st_disc
+{
+                                                           /* DISC             */
+    volatile uint32_t  DOCMCR;                                 /*  DOCMCR          */
+    volatile uint32_t  DOCMSTR;                                /*  DOCMSTR         */
+    volatile uint32_t  DOCMCLSTR;                              /*  DOCMCLSTR       */
+    volatile uint32_t  DOCMIENR;                               /*  DOCMIENR        */
+    volatile uint8_t   dummy1[4];                              /*                  */
+    volatile uint32_t  DOCMPMR;                                /*  DOCMPMR         */
+    volatile uint32_t  DOCMECRCR;                              /*  DOCMECRCR       */
+    volatile uint32_t  DOCMCCRCR;                              /*  DOCMCCRCR       */
+    volatile uint32_t  DOCMSPXR;                               /*  DOCMSPXR        */
+    volatile uint32_t  DOCMSPYR;                               /*  DOCMSPYR        */
+    volatile uint32_t  DOCMSZXR;                               /*  DOCMSZXR        */
+    volatile uint32_t  DOCMSZYR;                               /*  DOCMSZYR        */
+    volatile uint32_t  DOCMCRCIR;                              /*  DOCMCRCIR       */
+} r_io_disc_t;
+
+
+/* Channel array defines of DISC (2)*/
+#ifdef  DECLARE_DISC_CHANNELS
+volatile struct st_disc*  DISC[ DISC_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    DISC_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_DISC_CHANNELS */
+/* End of channel array defines of DISC (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/dmac_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/dmac_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/dmac_iodefine.h	(revision 429)
@@ -0,0 +1,807 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : dmac_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef DMAC_IODEFINE_H
+#define DMAC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+
+
+/* Channel array defines of DMACmm */
+#define DMACmm_COUNT  (8)
+#define DMACmm_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &DMAC01, &DMAC23, &DMAC45, &DMAC67, &DMAC89, &DMAC1011, &DMAC1213, &DMAC1415 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define DMAC01    (*(struct st_dmars_mm *)&DMAC.DMARS0)  /* DMAC0-1   */
+#define DMAC23    (*(struct st_dmars_mm *)&DMAC.DMARS1)  /* DMAC2-3   */
+#define DMAC45    (*(struct st_dmars_mm *)&DMAC.DMARS2)  /* DMAC4-5   */
+#define DMAC67    (*(struct st_dmars_mm *)&DMAC.DMARS3)  /* DMAC6-7   */
+#define DMAC89    (*(struct st_dmars_mm *)&DMAC.DMARS4)  /* DMAC8-9   */
+#define DMAC1011  (*(struct st_dmars_mm *)&DMAC.DMARS5)  /* DMAC10-11 */
+#define DMAC1213  (*(struct st_dmars_mm *)&DMAC.DMARS6)  /* DMAC12-13 */
+#define DMAC1415  (*(struct st_dmars_mm *)&DMAC.DMARS7)  /* DMAC14-15 */
+
+
+/*(Sample) value = DMACmm[ channel / 2 ]->DMARS; */
+#define DMAC    (*(struct st_dmac    *)0xE8200000uL) /* DMAC */
+
+
+/* Start of channel array defines of DMAC */
+
+/* Channel array defines of DMACn */
+/*(Sample) value = DMACn[ channel ]->N0SA_n; */
+#define DMACn_COUNT  (16)
+#define DMACn_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &DMAC0, &DMAC1, &DMAC2, &DMAC3, &DMAC4, &DMAC5, &DMAC6, &DMAC7, \
+    &DMAC8, &DMAC9, &DMAC10, &DMAC11, &DMAC12, &DMAC13, &DMAC14, &DMAC15 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define DMAC0   (*(struct st_dmac_n *)&DMAC.N0SA_0)              /* DMAC0 */
+#define DMAC1   (*(struct st_dmac_n *)&DMAC.N0SA_1)              /* DMAC1 */
+#define DMAC2   (*(struct st_dmac_n *)&DMAC.N0SA_2)              /* DMAC2 */
+#define DMAC3   (*(struct st_dmac_n *)&DMAC.N0SA_3)              /* DMAC3 */
+#define DMAC4   (*(struct st_dmac_n *)&DMAC.N0SA_4)              /* DMAC4 */
+#define DMAC5   (*(struct st_dmac_n *)&DMAC.N0SA_5)              /* DMAC5 */
+#define DMAC6   (*(struct st_dmac_n *)&DMAC.N0SA_6)              /* DMAC6 */
+#define DMAC7   (*(struct st_dmac_n *)&DMAC.N0SA_7)              /* DMAC7 */
+#define DMAC8   (*(struct st_dmac_n *)&DMAC.N0SA_8)              /* DMAC8 */
+#define DMAC9   (*(struct st_dmac_n *)&DMAC.N0SA_9)              /* DMAC9 */
+#define DMAC10  (*(struct st_dmac_n *)&DMAC.N0SA_10)             /* DMAC10 */
+#define DMAC11  (*(struct st_dmac_n *)&DMAC.N0SA_11)             /* DMAC11 */
+#define DMAC12  (*(struct st_dmac_n *)&DMAC.N0SA_12)             /* DMAC12 */
+#define DMAC13  (*(struct st_dmac_n *)&DMAC.N0SA_13)             /* DMAC13 */
+#define DMAC14  (*(struct st_dmac_n *)&DMAC.N0SA_14)             /* DMAC14 */
+#define DMAC15  (*(struct st_dmac_n *)&DMAC.N0SA_15)             /* DMAC15 */
+
+
+/* Channel array defines of DMACnn */
+/*(Sample) value = DMACnn[ channel / 8 ]->DCTRL_0_7; */
+#define DMACnn_COUNT  (2)
+#define DMACnn_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &DMAC07, &DMAC815 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define DMAC07  (*(struct st_dmaccommon_n *)&DMAC.DCTRL_0_7)     /* DMAC07 */
+#define DMAC815 (*(struct st_dmaccommon_n *)&DMAC.DCTRL_8_15)    /* DMAC815 */
+
+/* End of channel array defines of DMAC */
+
+
+#define DMACN0SA_0 (DMAC.N0SA_0)
+#define DMACN0DA_0 (DMAC.N0DA_0)
+#define DMACN0TB_0 (DMAC.N0TB_0)
+#define DMACN1SA_0 (DMAC.N1SA_0)
+#define DMACN1DA_0 (DMAC.N1DA_0)
+#define DMACN1TB_0 (DMAC.N1TB_0)
+#define DMACCRSA_0 (DMAC.CRSA_0)
+#define DMACCRDA_0 (DMAC.CRDA_0)
+#define DMACCRTB_0 (DMAC.CRTB_0)
+#define DMACCHSTAT_0 (DMAC.CHSTAT_0)
+#define DMACCHCTRL_0 (DMAC.CHCTRL_0)
+#define DMACCHCFG_0 (DMAC.CHCFG_0)
+#define DMACCHITVL_0 (DMAC.CHITVL_0)
+#define DMACCHEXT_0 (DMAC.CHEXT_0)
+#define DMACNXLA_0 (DMAC.NXLA_0)
+#define DMACCRLA_0 (DMAC.CRLA_0)
+#define DMACN0SA_1 (DMAC.N0SA_1)
+#define DMACN0DA_1 (DMAC.N0DA_1)
+#define DMACN0TB_1 (DMAC.N0TB_1)
+#define DMACN1SA_1 (DMAC.N1SA_1)
+#define DMACN1DA_1 (DMAC.N1DA_1)
+#define DMACN1TB_1 (DMAC.N1TB_1)
+#define DMACCRSA_1 (DMAC.CRSA_1)
+#define DMACCRDA_1 (DMAC.CRDA_1)
+#define DMACCRTB_1 (DMAC.CRTB_1)
+#define DMACCHSTAT_1 (DMAC.CHSTAT_1)
+#define DMACCHCTRL_1 (DMAC.CHCTRL_1)
+#define DMACCHCFG_1 (DMAC.CHCFG_1)
+#define DMACCHITVL_1 (DMAC.CHITVL_1)
+#define DMACCHEXT_1 (DMAC.CHEXT_1)
+#define DMACNXLA_1 (DMAC.NXLA_1)
+#define DMACCRLA_1 (DMAC.CRLA_1)
+#define DMACN0SA_2 (DMAC.N0SA_2)
+#define DMACN0DA_2 (DMAC.N0DA_2)
+#define DMACN0TB_2 (DMAC.N0TB_2)
+#define DMACN1SA_2 (DMAC.N1SA_2)
+#define DMACN1DA_2 (DMAC.N1DA_2)
+#define DMACN1TB_2 (DMAC.N1TB_2)
+#define DMACCRSA_2 (DMAC.CRSA_2)
+#define DMACCRDA_2 (DMAC.CRDA_2)
+#define DMACCRTB_2 (DMAC.CRTB_2)
+#define DMACCHSTAT_2 (DMAC.CHSTAT_2)
+#define DMACCHCTRL_2 (DMAC.CHCTRL_2)
+#define DMACCHCFG_2 (DMAC.CHCFG_2)
+#define DMACCHITVL_2 (DMAC.CHITVL_2)
+#define DMACCHEXT_2 (DMAC.CHEXT_2)
+#define DMACNXLA_2 (DMAC.NXLA_2)
+#define DMACCRLA_2 (DMAC.CRLA_2)
+#define DMACN0SA_3 (DMAC.N0SA_3)
+#define DMACN0DA_3 (DMAC.N0DA_3)
+#define DMACN0TB_3 (DMAC.N0TB_3)
+#define DMACN1SA_3 (DMAC.N1SA_3)
+#define DMACN1DA_3 (DMAC.N1DA_3)
+#define DMACN1TB_3 (DMAC.N1TB_3)
+#define DMACCRSA_3 (DMAC.CRSA_3)
+#define DMACCRDA_3 (DMAC.CRDA_3)
+#define DMACCRTB_3 (DMAC.CRTB_3)
+#define DMACCHSTAT_3 (DMAC.CHSTAT_3)
+#define DMACCHCTRL_3 (DMAC.CHCTRL_3)
+#define DMACCHCFG_3 (DMAC.CHCFG_3)
+#define DMACCHITVL_3 (DMAC.CHITVL_3)
+#define DMACCHEXT_3 (DMAC.CHEXT_3)
+#define DMACNXLA_3 (DMAC.NXLA_3)
+#define DMACCRLA_3 (DMAC.CRLA_3)
+#define DMACN0SA_4 (DMAC.N0SA_4)
+#define DMACN0DA_4 (DMAC.N0DA_4)
+#define DMACN0TB_4 (DMAC.N0TB_4)
+#define DMACN1SA_4 (DMAC.N1SA_4)
+#define DMACN1DA_4 (DMAC.N1DA_4)
+#define DMACN1TB_4 (DMAC.N1TB_4)
+#define DMACCRSA_4 (DMAC.CRSA_4)
+#define DMACCRDA_4 (DMAC.CRDA_4)
+#define DMACCRTB_4 (DMAC.CRTB_4)
+#define DMACCHSTAT_4 (DMAC.CHSTAT_4)
+#define DMACCHCTRL_4 (DMAC.CHCTRL_4)
+#define DMACCHCFG_4 (DMAC.CHCFG_4)
+#define DMACCHITVL_4 (DMAC.CHITVL_4)
+#define DMACCHEXT_4 (DMAC.CHEXT_4)
+#define DMACNXLA_4 (DMAC.NXLA_4)
+#define DMACCRLA_4 (DMAC.CRLA_4)
+#define DMACN0SA_5 (DMAC.N0SA_5)
+#define DMACN0DA_5 (DMAC.N0DA_5)
+#define DMACN0TB_5 (DMAC.N0TB_5)
+#define DMACN1SA_5 (DMAC.N1SA_5)
+#define DMACN1DA_5 (DMAC.N1DA_5)
+#define DMACN1TB_5 (DMAC.N1TB_5)
+#define DMACCRSA_5 (DMAC.CRSA_5)
+#define DMACCRDA_5 (DMAC.CRDA_5)
+#define DMACCRTB_5 (DMAC.CRTB_5)
+#define DMACCHSTAT_5 (DMAC.CHSTAT_5)
+#define DMACCHCTRL_5 (DMAC.CHCTRL_5)
+#define DMACCHCFG_5 (DMAC.CHCFG_5)
+#define DMACCHITVL_5 (DMAC.CHITVL_5)
+#define DMACCHEXT_5 (DMAC.CHEXT_5)
+#define DMACNXLA_5 (DMAC.NXLA_5)
+#define DMACCRLA_5 (DMAC.CRLA_5)
+#define DMACN0SA_6 (DMAC.N0SA_6)
+#define DMACN0DA_6 (DMAC.N0DA_6)
+#define DMACN0TB_6 (DMAC.N0TB_6)
+#define DMACN1SA_6 (DMAC.N1SA_6)
+#define DMACN1DA_6 (DMAC.N1DA_6)
+#define DMACN1TB_6 (DMAC.N1TB_6)
+#define DMACCRSA_6 (DMAC.CRSA_6)
+#define DMACCRDA_6 (DMAC.CRDA_6)
+#define DMACCRTB_6 (DMAC.CRTB_6)
+#define DMACCHSTAT_6 (DMAC.CHSTAT_6)
+#define DMACCHCTRL_6 (DMAC.CHCTRL_6)
+#define DMACCHCFG_6 (DMAC.CHCFG_6)
+#define DMACCHITVL_6 (DMAC.CHITVL_6)
+#define DMACCHEXT_6 (DMAC.CHEXT_6)
+#define DMACNXLA_6 (DMAC.NXLA_6)
+#define DMACCRLA_6 (DMAC.CRLA_6)
+#define DMACN0SA_7 (DMAC.N0SA_7)
+#define DMACN0DA_7 (DMAC.N0DA_7)
+#define DMACN0TB_7 (DMAC.N0TB_7)
+#define DMACN1SA_7 (DMAC.N1SA_7)
+#define DMACN1DA_7 (DMAC.N1DA_7)
+#define DMACN1TB_7 (DMAC.N1TB_7)
+#define DMACCRSA_7 (DMAC.CRSA_7)
+#define DMACCRDA_7 (DMAC.CRDA_7)
+#define DMACCRTB_7 (DMAC.CRTB_7)
+#define DMACCHSTAT_7 (DMAC.CHSTAT_7)
+#define DMACCHCTRL_7 (DMAC.CHCTRL_7)
+#define DMACCHCFG_7 (DMAC.CHCFG_7)
+#define DMACCHITVL_7 (DMAC.CHITVL_7)
+#define DMACCHEXT_7 (DMAC.CHEXT_7)
+#define DMACNXLA_7 (DMAC.NXLA_7)
+#define DMACCRLA_7 (DMAC.CRLA_7)
+#define DMACDCTRL_0_7 (DMAC.DCTRL_0_7)
+#define DMACDSTAT_EN_0_7 (DMAC.DSTAT_EN_0_7)
+#define DMACDSTAT_ER_0_7 (DMAC.DSTAT_ER_0_7)
+#define DMACDSTAT_END_0_7 (DMAC.DSTAT_END_0_7)
+#define DMACDSTAT_TC_0_7 (DMAC.DSTAT_TC_0_7)
+#define DMACDSTAT_SUS_0_7 (DMAC.DSTAT_SUS_0_7)
+#define DMACN0SA_8 (DMAC.N0SA_8)
+#define DMACN0DA_8 (DMAC.N0DA_8)
+#define DMACN0TB_8 (DMAC.N0TB_8)
+#define DMACN1SA_8 (DMAC.N1SA_8)
+#define DMACN1DA_8 (DMAC.N1DA_8)
+#define DMACN1TB_8 (DMAC.N1TB_8)
+#define DMACCRSA_8 (DMAC.CRSA_8)
+#define DMACCRDA_8 (DMAC.CRDA_8)
+#define DMACCRTB_8 (DMAC.CRTB_8)
+#define DMACCHSTAT_8 (DMAC.CHSTAT_8)
+#define DMACCHCTRL_8 (DMAC.CHCTRL_8)
+#define DMACCHCFG_8 (DMAC.CHCFG_8)
+#define DMACCHITVL_8 (DMAC.CHITVL_8)
+#define DMACCHEXT_8 (DMAC.CHEXT_8)
+#define DMACNXLA_8 (DMAC.NXLA_8)
+#define DMACCRLA_8 (DMAC.CRLA_8)
+#define DMACN0SA_9 (DMAC.N0SA_9)
+#define DMACN0DA_9 (DMAC.N0DA_9)
+#define DMACN0TB_9 (DMAC.N0TB_9)
+#define DMACN1SA_9 (DMAC.N1SA_9)
+#define DMACN1DA_9 (DMAC.N1DA_9)
+#define DMACN1TB_9 (DMAC.N1TB_9)
+#define DMACCRSA_9 (DMAC.CRSA_9)
+#define DMACCRDA_9 (DMAC.CRDA_9)
+#define DMACCRTB_9 (DMAC.CRTB_9)
+#define DMACCHSTAT_9 (DMAC.CHSTAT_9)
+#define DMACCHCTRL_9 (DMAC.CHCTRL_9)
+#define DMACCHCFG_9 (DMAC.CHCFG_9)
+#define DMACCHITVL_9 (DMAC.CHITVL_9)
+#define DMACCHEXT_9 (DMAC.CHEXT_9)
+#define DMACNXLA_9 (DMAC.NXLA_9)
+#define DMACCRLA_9 (DMAC.CRLA_9)
+#define DMACN0SA_10 (DMAC.N0SA_10)
+#define DMACN0DA_10 (DMAC.N0DA_10)
+#define DMACN0TB_10 (DMAC.N0TB_10)
+#define DMACN1SA_10 (DMAC.N1SA_10)
+#define DMACN1DA_10 (DMAC.N1DA_10)
+#define DMACN1TB_10 (DMAC.N1TB_10)
+#define DMACCRSA_10 (DMAC.CRSA_10)
+#define DMACCRDA_10 (DMAC.CRDA_10)
+#define DMACCRTB_10 (DMAC.CRTB_10)
+#define DMACCHSTAT_10 (DMAC.CHSTAT_10)
+#define DMACCHCTRL_10 (DMAC.CHCTRL_10)
+#define DMACCHCFG_10 (DMAC.CHCFG_10)
+#define DMACCHITVL_10 (DMAC.CHITVL_10)
+#define DMACCHEXT_10 (DMAC.CHEXT_10)
+#define DMACNXLA_10 (DMAC.NXLA_10)
+#define DMACCRLA_10 (DMAC.CRLA_10)
+#define DMACN0SA_11 (DMAC.N0SA_11)
+#define DMACN0DA_11 (DMAC.N0DA_11)
+#define DMACN0TB_11 (DMAC.N0TB_11)
+#define DMACN1SA_11 (DMAC.N1SA_11)
+#define DMACN1DA_11 (DMAC.N1DA_11)
+#define DMACN1TB_11 (DMAC.N1TB_11)
+#define DMACCRSA_11 (DMAC.CRSA_11)
+#define DMACCRDA_11 (DMAC.CRDA_11)
+#define DMACCRTB_11 (DMAC.CRTB_11)
+#define DMACCHSTAT_11 (DMAC.CHSTAT_11)
+#define DMACCHCTRL_11 (DMAC.CHCTRL_11)
+#define DMACCHCFG_11 (DMAC.CHCFG_11)
+#define DMACCHITVL_11 (DMAC.CHITVL_11)
+#define DMACCHEXT_11 (DMAC.CHEXT_11)
+#define DMACNXLA_11 (DMAC.NXLA_11)
+#define DMACCRLA_11 (DMAC.CRLA_11)
+#define DMACN0SA_12 (DMAC.N0SA_12)
+#define DMACN0DA_12 (DMAC.N0DA_12)
+#define DMACN0TB_12 (DMAC.N0TB_12)
+#define DMACN1SA_12 (DMAC.N1SA_12)
+#define DMACN1DA_12 (DMAC.N1DA_12)
+#define DMACN1TB_12 (DMAC.N1TB_12)
+#define DMACCRSA_12 (DMAC.CRSA_12)
+#define DMACCRDA_12 (DMAC.CRDA_12)
+#define DMACCRTB_12 (DMAC.CRTB_12)
+#define DMACCHSTAT_12 (DMAC.CHSTAT_12)
+#define DMACCHCTRL_12 (DMAC.CHCTRL_12)
+#define DMACCHCFG_12 (DMAC.CHCFG_12)
+#define DMACCHITVL_12 (DMAC.CHITVL_12)
+#define DMACCHEXT_12 (DMAC.CHEXT_12)
+#define DMACNXLA_12 (DMAC.NXLA_12)
+#define DMACCRLA_12 (DMAC.CRLA_12)
+#define DMACN0SA_13 (DMAC.N0SA_13)
+#define DMACN0DA_13 (DMAC.N0DA_13)
+#define DMACN0TB_13 (DMAC.N0TB_13)
+#define DMACN1SA_13 (DMAC.N1SA_13)
+#define DMACN1DA_13 (DMAC.N1DA_13)
+#define DMACN1TB_13 (DMAC.N1TB_13)
+#define DMACCRSA_13 (DMAC.CRSA_13)
+#define DMACCRDA_13 (DMAC.CRDA_13)
+#define DMACCRTB_13 (DMAC.CRTB_13)
+#define DMACCHSTAT_13 (DMAC.CHSTAT_13)
+#define DMACCHCTRL_13 (DMAC.CHCTRL_13)
+#define DMACCHCFG_13 (DMAC.CHCFG_13)
+#define DMACCHITVL_13 (DMAC.CHITVL_13)
+#define DMACCHEXT_13 (DMAC.CHEXT_13)
+#define DMACNXLA_13 (DMAC.NXLA_13)
+#define DMACCRLA_13 (DMAC.CRLA_13)
+#define DMACN0SA_14 (DMAC.N0SA_14)
+#define DMACN0DA_14 (DMAC.N0DA_14)
+#define DMACN0TB_14 (DMAC.N0TB_14)
+#define DMACN1SA_14 (DMAC.N1SA_14)
+#define DMACN1DA_14 (DMAC.N1DA_14)
+#define DMACN1TB_14 (DMAC.N1TB_14)
+#define DMACCRSA_14 (DMAC.CRSA_14)
+#define DMACCRDA_14 (DMAC.CRDA_14)
+#define DMACCRTB_14 (DMAC.CRTB_14)
+#define DMACCHSTAT_14 (DMAC.CHSTAT_14)
+#define DMACCHCTRL_14 (DMAC.CHCTRL_14)
+#define DMACCHCFG_14 (DMAC.CHCFG_14)
+#define DMACCHITVL_14 (DMAC.CHITVL_14)
+#define DMACCHEXT_14 (DMAC.CHEXT_14)
+#define DMACNXLA_14 (DMAC.NXLA_14)
+#define DMACCRLA_14 (DMAC.CRLA_14)
+#define DMACN0SA_15 (DMAC.N0SA_15)
+#define DMACN0DA_15 (DMAC.N0DA_15)
+#define DMACN0TB_15 (DMAC.N0TB_15)
+#define DMACN1SA_15 (DMAC.N1SA_15)
+#define DMACN1DA_15 (DMAC.N1DA_15)
+#define DMACN1TB_15 (DMAC.N1TB_15)
+#define DMACCRSA_15 (DMAC.CRSA_15)
+#define DMACCRDA_15 (DMAC.CRDA_15)
+#define DMACCRTB_15 (DMAC.CRTB_15)
+#define DMACCHSTAT_15 (DMAC.CHSTAT_15)
+#define DMACCHCTRL_15 (DMAC.CHCTRL_15)
+#define DMACCHCFG_15 (DMAC.CHCFG_15)
+#define DMACCHITVL_15 (DMAC.CHITVL_15)
+#define DMACCHEXT_15 (DMAC.CHEXT_15)
+#define DMACNXLA_15 (DMAC.NXLA_15)
+#define DMACCRLA_15 (DMAC.CRLA_15)
+#define DMACDCTRL_8_15 (DMAC.DCTRL_8_15)
+#define DMACDSTAT_EN_8_15 (DMAC.DSTAT_EN_8_15)
+#define DMACDSTAT_ER_8_15 (DMAC.DSTAT_ER_8_15)
+#define DMACDSTAT_END_8_15 (DMAC.DSTAT_END_8_15)
+#define DMACDSTAT_TC_8_15 (DMAC.DSTAT_TC_8_15)
+#define DMACDSTAT_SUS_8_15 (DMAC.DSTAT_SUS_8_15)
+#define DMACDMARS0 (DMAC.DMARS0)
+#define DMACDMARS1 (DMAC.DMARS1)
+#define DMACDMARS2 (DMAC.DMARS2)
+#define DMACDMARS3 (DMAC.DMARS3)
+#define DMACDMARS4 (DMAC.DMARS4)
+#define DMACDMARS5 (DMAC.DMARS5)
+#define DMACDMARS6 (DMAC.DMARS6)
+#define DMACDMARS7 (DMAC.DMARS7)
+
+
+typedef struct st_dmars_mm
+{
+ 
+    volatile uint32_t  DMARS;                                    /*  DMARS     */
+} r_io_dmars_mm_t;
+
+
+typedef struct st_dmac
+{
+                                                           /* DMAC             */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_0;                                 /*  N0SA_0          */
+    volatile uint32_t  N0DA_0;                                 /*  N0DA_0          */
+    volatile uint32_t  N0TB_0;                                 /*  N0TB_0          */
+    volatile uint32_t  N1SA_0;                                 /*  N1SA_0          */
+    volatile uint32_t  N1DA_0;                                 /*  N1DA_0          */
+    volatile uint32_t  N1TB_0;                                 /*  N1TB_0          */
+    volatile uint32_t  CRSA_0;                                 /*  CRSA_0          */
+    volatile uint32_t  CRDA_0;                                 /*  CRDA_0          */
+    volatile uint32_t  CRTB_0;                                 /*  CRTB_0          */
+    volatile uint32_t  CHSTAT_0;                               /*  CHSTAT_0        */
+    volatile uint32_t  CHCTRL_0;                               /*  CHCTRL_0        */
+    volatile uint32_t  CHCFG_0;                                /*  CHCFG_0         */
+    volatile uint32_t  CHITVL_0;                               /*  CHITVL_0        */
+    volatile uint32_t  CHEXT_0;                                /*  CHEXT_0         */
+    volatile uint32_t  NXLA_0;                                 /*  NXLA_0          */
+    volatile uint32_t  CRLA_0;                                 /*  CRLA_0          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_1;                                 /*  N0SA_1          */
+    volatile uint32_t  N0DA_1;                                 /*  N0DA_1          */
+    volatile uint32_t  N0TB_1;                                 /*  N0TB_1          */
+    volatile uint32_t  N1SA_1;                                 /*  N1SA_1          */
+    volatile uint32_t  N1DA_1;                                 /*  N1DA_1          */
+    volatile uint32_t  N1TB_1;                                 /*  N1TB_1          */
+    volatile uint32_t  CRSA_1;                                 /*  CRSA_1          */
+    volatile uint32_t  CRDA_1;                                 /*  CRDA_1          */
+    volatile uint32_t  CRTB_1;                                 /*  CRTB_1          */
+    volatile uint32_t  CHSTAT_1;                               /*  CHSTAT_1        */
+    volatile uint32_t  CHCTRL_1;                               /*  CHCTRL_1        */
+    volatile uint32_t  CHCFG_1;                                /*  CHCFG_1         */
+    volatile uint32_t  CHITVL_1;                               /*  CHITVL_1        */
+    volatile uint32_t  CHEXT_1;                                /*  CHEXT_1         */
+    volatile uint32_t  NXLA_1;                                 /*  NXLA_1          */
+    volatile uint32_t  CRLA_1;                                 /*  CRLA_1          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_2;                                 /*  N0SA_2          */
+    volatile uint32_t  N0DA_2;                                 /*  N0DA_2          */
+    volatile uint32_t  N0TB_2;                                 /*  N0TB_2          */
+    volatile uint32_t  N1SA_2;                                 /*  N1SA_2          */
+    volatile uint32_t  N1DA_2;                                 /*  N1DA_2          */
+    volatile uint32_t  N1TB_2;                                 /*  N1TB_2          */
+    volatile uint32_t  CRSA_2;                                 /*  CRSA_2          */
+    volatile uint32_t  CRDA_2;                                 /*  CRDA_2          */
+    volatile uint32_t  CRTB_2;                                 /*  CRTB_2          */
+    volatile uint32_t  CHSTAT_2;                               /*  CHSTAT_2        */
+    volatile uint32_t  CHCTRL_2;                               /*  CHCTRL_2        */
+    volatile uint32_t  CHCFG_2;                                /*  CHCFG_2         */
+    volatile uint32_t  CHITVL_2;                               /*  CHITVL_2        */
+    volatile uint32_t  CHEXT_2;                                /*  CHEXT_2         */
+    volatile uint32_t  NXLA_2;                                 /*  NXLA_2          */
+    volatile uint32_t  CRLA_2;                                 /*  CRLA_2          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_3;                                 /*  N0SA_3          */
+    volatile uint32_t  N0DA_3;                                 /*  N0DA_3          */
+    volatile uint32_t  N0TB_3;                                 /*  N0TB_3          */
+    volatile uint32_t  N1SA_3;                                 /*  N1SA_3          */
+    volatile uint32_t  N1DA_3;                                 /*  N1DA_3          */
+    volatile uint32_t  N1TB_3;                                 /*  N1TB_3          */
+    volatile uint32_t  CRSA_3;                                 /*  CRSA_3          */
+    volatile uint32_t  CRDA_3;                                 /*  CRDA_3          */
+    volatile uint32_t  CRTB_3;                                 /*  CRTB_3          */
+    volatile uint32_t  CHSTAT_3;                               /*  CHSTAT_3        */
+    volatile uint32_t  CHCTRL_3;                               /*  CHCTRL_3        */
+    volatile uint32_t  CHCFG_3;                                /*  CHCFG_3         */
+    volatile uint32_t  CHITVL_3;                               /*  CHITVL_3        */
+    volatile uint32_t  CHEXT_3;                                /*  CHEXT_3         */
+    volatile uint32_t  NXLA_3;                                 /*  NXLA_3          */
+    volatile uint32_t  CRLA_3;                                 /*  CRLA_3          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_4;                                 /*  N0SA_4          */
+    volatile uint32_t  N0DA_4;                                 /*  N0DA_4          */
+    volatile uint32_t  N0TB_4;                                 /*  N0TB_4          */
+    volatile uint32_t  N1SA_4;                                 /*  N1SA_4          */
+    volatile uint32_t  N1DA_4;                                 /*  N1DA_4          */
+    volatile uint32_t  N1TB_4;                                 /*  N1TB_4          */
+    volatile uint32_t  CRSA_4;                                 /*  CRSA_4          */
+    volatile uint32_t  CRDA_4;                                 /*  CRDA_4          */
+    volatile uint32_t  CRTB_4;                                 /*  CRTB_4          */
+    volatile uint32_t  CHSTAT_4;                               /*  CHSTAT_4        */
+    volatile uint32_t  CHCTRL_4;                               /*  CHCTRL_4        */
+    volatile uint32_t  CHCFG_4;                                /*  CHCFG_4         */
+    volatile uint32_t  CHITVL_4;                               /*  CHITVL_4        */
+    volatile uint32_t  CHEXT_4;                                /*  CHEXT_4         */
+    volatile uint32_t  NXLA_4;                                 /*  NXLA_4          */
+    volatile uint32_t  CRLA_4;                                 /*  CRLA_4          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_5;                                 /*  N0SA_5          */
+    volatile uint32_t  N0DA_5;                                 /*  N0DA_5          */
+    volatile uint32_t  N0TB_5;                                 /*  N0TB_5          */
+    volatile uint32_t  N1SA_5;                                 /*  N1SA_5          */
+    volatile uint32_t  N1DA_5;                                 /*  N1DA_5          */
+    volatile uint32_t  N1TB_5;                                 /*  N1TB_5          */
+    volatile uint32_t  CRSA_5;                                 /*  CRSA_5          */
+    volatile uint32_t  CRDA_5;                                 /*  CRDA_5          */
+    volatile uint32_t  CRTB_5;                                 /*  CRTB_5          */
+    volatile uint32_t  CHSTAT_5;                               /*  CHSTAT_5        */
+    volatile uint32_t  CHCTRL_5;                               /*  CHCTRL_5        */
+    volatile uint32_t  CHCFG_5;                                /*  CHCFG_5         */
+    volatile uint32_t  CHITVL_5;                               /*  CHITVL_5        */
+    volatile uint32_t  CHEXT_5;                                /*  CHEXT_5         */
+    volatile uint32_t  NXLA_5;                                 /*  NXLA_5          */
+    volatile uint32_t  CRLA_5;                                 /*  CRLA_5          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_6;                                 /*  N0SA_6          */
+    volatile uint32_t  N0DA_6;                                 /*  N0DA_6          */
+    volatile uint32_t  N0TB_6;                                 /*  N0TB_6          */
+    volatile uint32_t  N1SA_6;                                 /*  N1SA_6          */
+    volatile uint32_t  N1DA_6;                                 /*  N1DA_6          */
+    volatile uint32_t  N1TB_6;                                 /*  N1TB_6          */
+    volatile uint32_t  CRSA_6;                                 /*  CRSA_6          */
+    volatile uint32_t  CRDA_6;                                 /*  CRDA_6          */
+    volatile uint32_t  CRTB_6;                                 /*  CRTB_6          */
+    volatile uint32_t  CHSTAT_6;                               /*  CHSTAT_6        */
+    volatile uint32_t  CHCTRL_6;                               /*  CHCTRL_6        */
+    volatile uint32_t  CHCFG_6;                                /*  CHCFG_6         */
+    volatile uint32_t  CHITVL_6;                               /*  CHITVL_6        */
+    volatile uint32_t  CHEXT_6;                                /*  CHEXT_6         */
+    volatile uint32_t  NXLA_6;                                 /*  NXLA_6          */
+    volatile uint32_t  CRLA_6;                                 /*  CRLA_6          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_7;                                 /*  N0SA_7          */
+    volatile uint32_t  N0DA_7;                                 /*  N0DA_7          */
+    volatile uint32_t  N0TB_7;                                 /*  N0TB_7          */
+    volatile uint32_t  N1SA_7;                                 /*  N1SA_7          */
+    volatile uint32_t  N1DA_7;                                 /*  N1DA_7          */
+    volatile uint32_t  N1TB_7;                                 /*  N1TB_7          */
+    volatile uint32_t  CRSA_7;                                 /*  CRSA_7          */
+    volatile uint32_t  CRDA_7;                                 /*  CRDA_7          */
+    volatile uint32_t  CRTB_7;                                 /*  CRTB_7          */
+    volatile uint32_t  CHSTAT_7;                               /*  CHSTAT_7        */
+    volatile uint32_t  CHCTRL_7;                               /*  CHCTRL_7        */
+    volatile uint32_t  CHCFG_7;                                /*  CHCFG_7         */
+    volatile uint32_t  CHITVL_7;                               /*  CHITVL_7        */
+    volatile uint32_t  CHEXT_7;                                /*  CHEXT_7         */
+    volatile uint32_t  NXLA_7;                                 /*  NXLA_7          */
+    volatile uint32_t  CRLA_7;                                 /*  CRLA_7          */
+
+/* end of struct st_dmac_n */
+    volatile uint8_t   dummy187[256];                          /*                  */
+
+/* start of struct st_dmaccommon_n */
+    volatile uint32_t  DCTRL_0_7;                              /*  DCTRL_0_7       */
+    volatile uint8_t   dummy188[12];                           /*                  */
+    volatile uint32_t  DSTAT_EN_0_7;                           /*  DSTAT_EN_0_7    */
+    volatile uint32_t  DSTAT_ER_0_7;                           /*  DSTAT_ER_0_7    */
+    volatile uint32_t  DSTAT_END_0_7;                          /*  DSTAT_END_0_7   */
+    volatile uint32_t  DSTAT_TC_0_7;                           /*  DSTAT_TC_0_7    */
+    volatile uint32_t  DSTAT_SUS_0_7;                          /*  DSTAT_SUS_0_7   */
+
+/* end of struct st_dmaccommon_n */
+    volatile uint8_t   dummy189[220];                          /*                  */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_8;                                 /*  N0SA_8          */
+    volatile uint32_t  N0DA_8;                                 /*  N0DA_8          */
+    volatile uint32_t  N0TB_8;                                 /*  N0TB_8          */
+    volatile uint32_t  N1SA_8;                                 /*  N1SA_8          */
+    volatile uint32_t  N1DA_8;                                 /*  N1DA_8          */
+    volatile uint32_t  N1TB_8;                                 /*  N1TB_8          */
+    volatile uint32_t  CRSA_8;                                 /*  CRSA_8          */
+    volatile uint32_t  CRDA_8;                                 /*  CRDA_8          */
+    volatile uint32_t  CRTB_8;                                 /*  CRTB_8          */
+    volatile uint32_t  CHSTAT_8;                               /*  CHSTAT_8        */
+    volatile uint32_t  CHCTRL_8;                               /*  CHCTRL_8        */
+    volatile uint32_t  CHCFG_8;                                /*  CHCFG_8         */
+    volatile uint32_t  CHITVL_8;                               /*  CHITVL_8        */
+    volatile uint32_t  CHEXT_8;                                /*  CHEXT_8         */
+    volatile uint32_t  NXLA_8;                                 /*  NXLA_8          */
+    volatile uint32_t  CRLA_8;                                 /*  CRLA_8          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_9;                                 /*  N0SA_9          */
+    volatile uint32_t  N0DA_9;                                 /*  N0DA_9          */
+    volatile uint32_t  N0TB_9;                                 /*  N0TB_9          */
+    volatile uint32_t  N1SA_9;                                 /*  N1SA_9          */
+    volatile uint32_t  N1DA_9;                                 /*  N1DA_9          */
+    volatile uint32_t  N1TB_9;                                 /*  N1TB_9          */
+    volatile uint32_t  CRSA_9;                                 /*  CRSA_9          */
+    volatile uint32_t  CRDA_9;                                 /*  CRDA_9          */
+    volatile uint32_t  CRTB_9;                                 /*  CRTB_9          */
+    volatile uint32_t  CHSTAT_9;                               /*  CHSTAT_9        */
+    volatile uint32_t  CHCTRL_9;                               /*  CHCTRL_9        */
+    volatile uint32_t  CHCFG_9;                                /*  CHCFG_9         */
+    volatile uint32_t  CHITVL_9;                               /*  CHITVL_9        */
+    volatile uint32_t  CHEXT_9;                                /*  CHEXT_9         */
+    volatile uint32_t  NXLA_9;                                 /*  NXLA_9          */
+    volatile uint32_t  CRLA_9;                                 /*  CRLA_9          */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_10;                                /*  N0SA_10         */
+    volatile uint32_t  N0DA_10;                                /*  N0DA_10         */
+    volatile uint32_t  N0TB_10;                                /*  N0TB_10         */
+    volatile uint32_t  N1SA_10;                                /*  N1SA_10         */
+    volatile uint32_t  N1DA_10;                                /*  N1DA_10         */
+    volatile uint32_t  N1TB_10;                                /*  N1TB_10         */
+    volatile uint32_t  CRSA_10;                                /*  CRSA_10         */
+    volatile uint32_t  CRDA_10;                                /*  CRDA_10         */
+    volatile uint32_t  CRTB_10;                                /*  CRTB_10         */
+    volatile uint32_t  CHSTAT_10;                              /*  CHSTAT_10       */
+    volatile uint32_t  CHCTRL_10;                              /*  CHCTRL_10       */
+    volatile uint32_t  CHCFG_10;                               /*  CHCFG_10        */
+    volatile uint32_t  CHITVL_10;                              /*  CHITVL_10       */
+    volatile uint32_t  CHEXT_10;                               /*  CHEXT_10        */
+    volatile uint32_t  NXLA_10;                                /*  NXLA_10         */
+    volatile uint32_t  CRLA_10;                                /*  CRLA_10         */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_11;                                /*  N0SA_11         */
+    volatile uint32_t  N0DA_11;                                /*  N0DA_11         */
+    volatile uint32_t  N0TB_11;                                /*  N0TB_11         */
+    volatile uint32_t  N1SA_11;                                /*  N1SA_11         */
+    volatile uint32_t  N1DA_11;                                /*  N1DA_11         */
+    volatile uint32_t  N1TB_11;                                /*  N1TB_11         */
+    volatile uint32_t  CRSA_11;                                /*  CRSA_11         */
+    volatile uint32_t  CRDA_11;                                /*  CRDA_11         */
+    volatile uint32_t  CRTB_11;                                /*  CRTB_11         */
+    volatile uint32_t  CHSTAT_11;                              /*  CHSTAT_11       */
+    volatile uint32_t  CHCTRL_11;                              /*  CHCTRL_11       */
+    volatile uint32_t  CHCFG_11;                               /*  CHCFG_11        */
+    volatile uint32_t  CHITVL_11;                              /*  CHITVL_11       */
+    volatile uint32_t  CHEXT_11;                               /*  CHEXT_11        */
+    volatile uint32_t  NXLA_11;                                /*  NXLA_11         */
+    volatile uint32_t  CRLA_11;                                /*  CRLA_11         */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_12;                                /*  N0SA_12         */
+    volatile uint32_t  N0DA_12;                                /*  N0DA_12         */
+    volatile uint32_t  N0TB_12;                                /*  N0TB_12         */
+    volatile uint32_t  N1SA_12;                                /*  N1SA_12         */
+    volatile uint32_t  N1DA_12;                                /*  N1DA_12         */
+    volatile uint32_t  N1TB_12;                                /*  N1TB_12         */
+    volatile uint32_t  CRSA_12;                                /*  CRSA_12         */
+    volatile uint32_t  CRDA_12;                                /*  CRDA_12         */
+    volatile uint32_t  CRTB_12;                                /*  CRTB_12         */
+    volatile uint32_t  CHSTAT_12;                              /*  CHSTAT_12       */
+    volatile uint32_t  CHCTRL_12;                              /*  CHCTRL_12       */
+    volatile uint32_t  CHCFG_12;                               /*  CHCFG_12        */
+    volatile uint32_t  CHITVL_12;                              /*  CHITVL_12       */
+    volatile uint32_t  CHEXT_12;                               /*  CHEXT_12        */
+    volatile uint32_t  NXLA_12;                                /*  NXLA_12         */
+    volatile uint32_t  CRLA_12;                                /*  CRLA_12         */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_13;                                /*  N0SA_13         */
+    volatile uint32_t  N0DA_13;                                /*  N0DA_13         */
+    volatile uint32_t  N0TB_13;                                /*  N0TB_13         */
+    volatile uint32_t  N1SA_13;                                /*  N1SA_13         */
+    volatile uint32_t  N1DA_13;                                /*  N1DA_13         */
+    volatile uint32_t  N1TB_13;                                /*  N1TB_13         */
+    volatile uint32_t  CRSA_13;                                /*  CRSA_13         */
+    volatile uint32_t  CRDA_13;                                /*  CRDA_13         */
+    volatile uint32_t  CRTB_13;                                /*  CRTB_13         */
+    volatile uint32_t  CHSTAT_13;                              /*  CHSTAT_13       */
+    volatile uint32_t  CHCTRL_13;                              /*  CHCTRL_13       */
+    volatile uint32_t  CHCFG_13;                               /*  CHCFG_13        */
+    volatile uint32_t  CHITVL_13;                              /*  CHITVL_13       */
+    volatile uint32_t  CHEXT_13;                               /*  CHEXT_13        */
+    volatile uint32_t  NXLA_13;                                /*  NXLA_13         */
+    volatile uint32_t  CRLA_13;                                /*  CRLA_13         */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_14;                                /*  N0SA_14         */
+    volatile uint32_t  N0DA_14;                                /*  N0DA_14         */
+    volatile uint32_t  N0TB_14;                                /*  N0TB_14         */
+    volatile uint32_t  N1SA_14;                                /*  N1SA_14         */
+    volatile uint32_t  N1DA_14;                                /*  N1DA_14         */
+    volatile uint32_t  N1TB_14;                                /*  N1TB_14         */
+    volatile uint32_t  CRSA_14;                                /*  CRSA_14         */
+    volatile uint32_t  CRDA_14;                                /*  CRDA_14         */
+    volatile uint32_t  CRTB_14;                                /*  CRTB_14         */
+    volatile uint32_t  CHSTAT_14;                              /*  CHSTAT_14       */
+    volatile uint32_t  CHCTRL_14;                              /*  CHCTRL_14       */
+    volatile uint32_t  CHCFG_14;                               /*  CHCFG_14        */
+    volatile uint32_t  CHITVL_14;                              /*  CHITVL_14       */
+    volatile uint32_t  CHEXT_14;                               /*  CHEXT_14        */
+    volatile uint32_t  NXLA_14;                                /*  NXLA_14         */
+    volatile uint32_t  CRLA_14;                                /*  CRLA_14         */
+
+/* end of struct st_dmac_n */
+
+/* start of struct st_dmac_n */
+    volatile uint32_t  N0SA_15;                                /*  N0SA_15         */
+    volatile uint32_t  N0DA_15;                                /*  N0DA_15         */
+    volatile uint32_t  N0TB_15;                                /*  N0TB_15         */
+    volatile uint32_t  N1SA_15;                                /*  N1SA_15         */
+    volatile uint32_t  N1DA_15;                                /*  N1DA_15         */
+    volatile uint32_t  N1TB_15;                                /*  N1TB_15         */
+    volatile uint32_t  CRSA_15;                                /*  CRSA_15         */
+    volatile uint32_t  CRDA_15;                                /*  CRDA_15         */
+    volatile uint32_t  CRTB_15;                                /*  CRTB_15         */
+    volatile uint32_t  CHSTAT_15;                              /*  CHSTAT_15       */
+    volatile uint32_t  CHCTRL_15;                              /*  CHCTRL_15       */
+    volatile uint32_t  CHCFG_15;                               /*  CHCFG_15        */
+    volatile uint32_t  CHITVL_15;                              /*  CHITVL_15       */
+    volatile uint32_t  CHEXT_15;                               /*  CHEXT_15        */
+    volatile uint32_t  NXLA_15;                                /*  NXLA_15         */
+    volatile uint32_t  CRLA_15;                                /*  CRLA_15         */
+
+/* end of struct st_dmac_n */
+    volatile uint8_t   dummy190[256];                          /*                  */
+
+/* start of struct st_dmaccommon_n */
+    volatile uint32_t  DCTRL_8_15;                             /*  DCTRL_8_15      */
+    volatile uint8_t   dummy191[12];                           /*                  */
+    volatile uint32_t  DSTAT_EN_8_15;                          /*  DSTAT_EN_8_15   */
+    volatile uint32_t  DSTAT_ER_8_15;                          /*  DSTAT_ER_8_15   */
+    volatile uint32_t  DSTAT_END_8_15;                         /*  DSTAT_END_8_15  */
+    volatile uint32_t  DSTAT_TC_8_15;                          /*  DSTAT_TC_8_15   */
+    volatile uint32_t  DSTAT_SUS_8_15;                         /*  DSTAT_SUS_8_15  */
+
+/* end of struct st_dmaccommon_n */
+    volatile uint8_t   dummy192[350095580];                    /*                  */
+    volatile uint32_t  DMARS0;                                 /*  DMARS0          */
+    volatile uint32_t  DMARS1;                                 /*  DMARS1          */
+    volatile uint32_t  DMARS2;                                 /*  DMARS2          */
+    volatile uint32_t  DMARS3;                                 /*  DMARS3          */
+    volatile uint32_t  DMARS4;                                 /*  DMARS4          */
+    volatile uint32_t  DMARS5;                                 /*  DMARS5          */
+    volatile uint32_t  DMARS6;                                 /*  DMARS6          */
+    volatile uint32_t  DMARS7;                                 /*  DMARS7          */
+} r_io_dmac_t;
+
+
+typedef struct st_dmaccommon_n
+{
+ 
+    volatile uint32_t  DCTRL_0_7;                              /*  DCTRL_0_7       */
+    volatile uint8_t   dummy1[12];                             /*                  */
+    volatile uint32_t  DSTAT_EN_0_7;                           /*  DSTAT_EN_0_7    */
+    volatile uint32_t  DSTAT_ER_0_7;                           /*  DSTAT_ER_0_7    */
+    volatile uint32_t  DSTAT_END_0_7;                          /*  DSTAT_END_0_7   */
+    volatile uint32_t  DSTAT_TC_0_7;                           /*  DSTAT_TC_0_7    */
+    volatile uint32_t  DSTAT_SUS_0_7;                          /*  DSTAT_SUS_0_7   */
+} r_io_dmaccommon_n_t;
+
+
+typedef struct st_dmac_n
+{
+ 
+    volatile uint32_t  N0SA_n;                                 /*  N0SA_n          */
+    volatile uint32_t  N0DA_n;                                 /*  N0DA_n          */
+    volatile uint32_t  N0TB_n;                                 /*  N0TB_n          */
+    volatile uint32_t  N1SA_n;                                 /*  N1SA_n          */
+    volatile uint32_t  N1DA_n;                                 /*  N1DA_n          */
+    volatile uint32_t  N1TB_n;                                 /*  N1TB_n          */
+    volatile uint32_t  CRSA_n;                                 /*  CRSA_n          */
+    volatile uint32_t  CRDA_n;                                 /*  CRDA_n          */
+    volatile uint32_t  CRTB_n;                                 /*  CRTB_n          */
+    volatile uint32_t  CHSTAT_n;                               /*  CHSTAT_n        */
+    volatile uint32_t  CHCTRL_n;                               /*  CHCTRL_n        */
+    volatile uint32_t  CHCFG_n;                                /*  CHCFG_n         */
+    volatile uint32_t  CHITVL_n;                               /*  CHITVL_n        */
+    volatile uint32_t  CHEXT_n;                                /*  CHEXT_n         */
+    volatile uint32_t  NXLA_n;                                 /*  NXLA_n          */
+    volatile uint32_t  CRLA_n;                                 /*  CRLA_n          */
+} r_io_dmac_n_t;
+
+
+/* Channel array defines of DMAC (2)*/
+#ifdef  DECLARE_DMACmm_CHANNELS
+volatile struct st_dmars_mm*  DMACmm[ DMACmm_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    DMACmm_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_DMACmm_CHANNELS */
+
+#ifdef  DECLARE_DMACn_CHANNELS
+volatile struct st_dmac_n*  DMACn[ DMACn_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    DMACn_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_DMACn_CHANNELS */
+
+#ifdef  DECLARE_DMACnn_CHANNELS
+volatile struct st_dmaccommon_n*  DMACnn[ DMACnn_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    DMACnn_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_DMACnn_CHANNELS */
+/* End of channel array defines of DMAC (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/dvdec_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/dvdec_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/dvdec_iodefine.h	(revision 429)
@@ -0,0 +1,441 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : dvdec_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef DVDEC_IODEFINE_H
+#define DVDEC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define DVDEC1  (*(struct st_dvdec   *)0xFCFFA008uL) /* DVDEC1 */
+#define DVDEC0  (*(struct st_dvdec   *)0xFCFFB808uL) /* DVDEC0 */
+
+
+/* Start of channel array defines of DVDEC */
+
+/* Channel array defines of DVDEC */
+/*(Sample) value = DVDEC[ channel ]->ADCCR1; */
+#define DVDEC_COUNT  (2)
+#define DVDEC_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &DVDEC0, &DVDEC1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of DVDEC */
+
+
+#define ADCCR1_1 (DVDEC1.ADCCR1)
+#define TGCR1_1 (DVDEC1.TGCR1)
+#define TGCR2_1 (DVDEC1.TGCR2)
+#define TGCR3_1 (DVDEC1.TGCR3)
+#define SYNSCR1_1 (DVDEC1.SYNSCR1)
+#define SYNSCR2_1 (DVDEC1.SYNSCR2)
+#define SYNSCR3_1 (DVDEC1.SYNSCR3)
+#define SYNSCR4_1 (DVDEC1.SYNSCR4)
+#define SYNSCR5_1 (DVDEC1.SYNSCR5)
+#define HAFCCR1_1 (DVDEC1.HAFCCR1)
+#define HAFCCR2_1 (DVDEC1.HAFCCR2)
+#define HAFCCR3_1 (DVDEC1.HAFCCR3)
+#define VCDWCR1_1 (DVDEC1.VCDWCR1)
+#define DCPCR1_1 (DVDEC1.DCPCR1)
+#define DCPCR2_1 (DVDEC1.DCPCR2)
+#define DCPCR3_1 (DVDEC1.DCPCR3)
+#define DCPCR4_1 (DVDEC1.DCPCR4)
+#define DCPCR5_1 (DVDEC1.DCPCR5)
+#define DCPCR6_1 (DVDEC1.DCPCR6)
+#define DCPCR7_1 (DVDEC1.DCPCR7)
+#define DCPCR8_1 (DVDEC1.DCPCR8)
+#define NSDCR_1 (DVDEC1.NSDCR)
+#define BTLCR_1 (DVDEC1.BTLCR)
+#define BTGPCR_1 (DVDEC1.BTGPCR)
+#define ACCCR1_1 (DVDEC1.ACCCR1)
+#define ACCCR2_1 (DVDEC1.ACCCR2)
+#define ACCCR3_1 (DVDEC1.ACCCR3)
+#define TINTCR_1 (DVDEC1.TINTCR)
+#define YCDCR_1 (DVDEC1.YCDCR)
+#define AGCCR1_1 (DVDEC1.AGCCR1)
+#define AGCCR2_1 (DVDEC1.AGCCR2)
+#define PKLIMITCR_1 (DVDEC1.PKLIMITCR)
+#define RGORCR1_1 (DVDEC1.RGORCR1)
+#define RGORCR2_1 (DVDEC1.RGORCR2)
+#define RGORCR3_1 (DVDEC1.RGORCR3)
+#define RGORCR4_1 (DVDEC1.RGORCR4)
+#define RGORCR5_1 (DVDEC1.RGORCR5)
+#define RGORCR6_1 (DVDEC1.RGORCR6)
+#define RGORCR7_1 (DVDEC1.RGORCR7)
+#define AFCPFCR_1 (DVDEC1.AFCPFCR)
+#define RUPDCR_1 (DVDEC1.RUPDCR)
+#define VSYNCSR_1 (DVDEC1.VSYNCSR)
+#define HSYNCSR_1 (DVDEC1.HSYNCSR)
+#define DCPSR1_1 (DVDEC1.DCPSR1)
+#define DCPSR2_1 (DVDEC1.DCPSR2)
+#define NSDSR_1 (DVDEC1.NSDSR)
+#define CROMASR1_1 (DVDEC1.CROMASR1)
+#define CROMASR2_1 (DVDEC1.CROMASR2)
+#define SYNCSSR_1 (DVDEC1.SYNCSSR)
+#define AGCCSR1_1 (DVDEC1.AGCCSR1)
+#define AGCCSR2_1 (DVDEC1.AGCCSR2)
+#define YCSCR3_1 (DVDEC1.YCSCR3)
+#define YCSCR4_1 (DVDEC1.YCSCR4)
+#define YCSCR5_1 (DVDEC1.YCSCR5)
+#define YCSCR6_1 (DVDEC1.YCSCR6)
+#define YCSCR7_1 (DVDEC1.YCSCR7)
+#define YCSCR8_1 (DVDEC1.YCSCR8)
+#define YCSCR9_1 (DVDEC1.YCSCR9)
+#define YCSCR11_1 (DVDEC1.YCSCR11)
+#define YCSCR12_1 (DVDEC1.YCSCR12)
+#define DCPCR9_1 (DVDEC1.DCPCR9)
+#define YCTWA_F0_1 (DVDEC1.YCTWA_F0)
+#define YCTWA_F1_1 (DVDEC1.YCTWA_F1)
+#define YCTWA_F2_1 (DVDEC1.YCTWA_F2)
+#define YCTWA_F3_1 (DVDEC1.YCTWA_F3)
+#define YCTWA_F4_1 (DVDEC1.YCTWA_F4)
+#define YCTWA_F5_1 (DVDEC1.YCTWA_F5)
+#define YCTWA_F6_1 (DVDEC1.YCTWA_F6)
+#define YCTWA_F7_1 (DVDEC1.YCTWA_F7)
+#define YCTWA_F8_1 (DVDEC1.YCTWA_F8)
+#define YCTWB_F0_1 (DVDEC1.YCTWB_F0)
+#define YCTWB_F1_1 (DVDEC1.YCTWB_F1)
+#define YCTWB_F2_1 (DVDEC1.YCTWB_F2)
+#define YCTWB_F3_1 (DVDEC1.YCTWB_F3)
+#define YCTWB_F4_1 (DVDEC1.YCTWB_F4)
+#define YCTWB_F5_1 (DVDEC1.YCTWB_F5)
+#define YCTWB_F6_1 (DVDEC1.YCTWB_F6)
+#define YCTWB_F7_1 (DVDEC1.YCTWB_F7)
+#define YCTWB_F8_1 (DVDEC1.YCTWB_F8)
+#define YCTNA_F0_1 (DVDEC1.YCTNA_F0)
+#define YCTNA_F1_1 (DVDEC1.YCTNA_F1)
+#define YCTNA_F2_1 (DVDEC1.YCTNA_F2)
+#define YCTNA_F3_1 (DVDEC1.YCTNA_F3)
+#define YCTNA_F4_1 (DVDEC1.YCTNA_F4)
+#define YCTNA_F5_1 (DVDEC1.YCTNA_F5)
+#define YCTNA_F6_1 (DVDEC1.YCTNA_F6)
+#define YCTNA_F7_1 (DVDEC1.YCTNA_F7)
+#define YCTNA_F8_1 (DVDEC1.YCTNA_F8)
+#define YCTNB_F0_1 (DVDEC1.YCTNB_F0)
+#define YCTNB_F1_1 (DVDEC1.YCTNB_F1)
+#define YCTNB_F2_1 (DVDEC1.YCTNB_F2)
+#define YCTNB_F3_1 (DVDEC1.YCTNB_F3)
+#define YCTNB_F4_1 (DVDEC1.YCTNB_F4)
+#define YCTNB_F5_1 (DVDEC1.YCTNB_F5)
+#define YCTNB_F6_1 (DVDEC1.YCTNB_F6)
+#define YCTNB_F7_1 (DVDEC1.YCTNB_F7)
+#define YCTNB_F8_1 (DVDEC1.YCTNB_F8)
+#define YGAINCR_1 (DVDEC1.YGAINCR)
+#define CBGAINCR_1 (DVDEC1.CBGAINCR)
+#define CRGAINCR_1 (DVDEC1.CRGAINCR)
+#define PGA_UPDATE_1 (DVDEC1.PGA_UPDATE)
+#define PGACR_1 (DVDEC1.PGACR)
+#define ADCCR2_1 (DVDEC1.ADCCR2)
+#define ADCCR1_0 (DVDEC0.ADCCR1)
+#define TGCR1_0 (DVDEC0.TGCR1)
+#define TGCR2_0 (DVDEC0.TGCR2)
+#define TGCR3_0 (DVDEC0.TGCR3)
+#define SYNSCR1_0 (DVDEC0.SYNSCR1)
+#define SYNSCR2_0 (DVDEC0.SYNSCR2)
+#define SYNSCR3_0 (DVDEC0.SYNSCR3)
+#define SYNSCR4_0 (DVDEC0.SYNSCR4)
+#define SYNSCR5_0 (DVDEC0.SYNSCR5)
+#define HAFCCR1_0 (DVDEC0.HAFCCR1)
+#define HAFCCR2_0 (DVDEC0.HAFCCR2)
+#define HAFCCR3_0 (DVDEC0.HAFCCR3)
+#define VCDWCR1_0 (DVDEC0.VCDWCR1)
+#define DCPCR1_0 (DVDEC0.DCPCR1)
+#define DCPCR2_0 (DVDEC0.DCPCR2)
+#define DCPCR3_0 (DVDEC0.DCPCR3)
+#define DCPCR4_0 (DVDEC0.DCPCR4)
+#define DCPCR5_0 (DVDEC0.DCPCR5)
+#define DCPCR6_0 (DVDEC0.DCPCR6)
+#define DCPCR7_0 (DVDEC0.DCPCR7)
+#define DCPCR8_0 (DVDEC0.DCPCR8)
+#define NSDCR_0 (DVDEC0.NSDCR)
+#define BTLCR_0 (DVDEC0.BTLCR)
+#define BTGPCR_0 (DVDEC0.BTGPCR)
+#define ACCCR1_0 (DVDEC0.ACCCR1)
+#define ACCCR2_0 (DVDEC0.ACCCR2)
+#define ACCCR3_0 (DVDEC0.ACCCR3)
+#define TINTCR_0 (DVDEC0.TINTCR)
+#define YCDCR_0 (DVDEC0.YCDCR)
+#define AGCCR1_0 (DVDEC0.AGCCR1)
+#define AGCCR2_0 (DVDEC0.AGCCR2)
+#define PKLIMITCR_0 (DVDEC0.PKLIMITCR)
+#define RGORCR1_0 (DVDEC0.RGORCR1)
+#define RGORCR2_0 (DVDEC0.RGORCR2)
+#define RGORCR3_0 (DVDEC0.RGORCR3)
+#define RGORCR4_0 (DVDEC0.RGORCR4)
+#define RGORCR5_0 (DVDEC0.RGORCR5)
+#define RGORCR6_0 (DVDEC0.RGORCR6)
+#define RGORCR7_0 (DVDEC0.RGORCR7)
+#define AFCPFCR_0 (DVDEC0.AFCPFCR)
+#define RUPDCR_0 (DVDEC0.RUPDCR)
+#define VSYNCSR_0 (DVDEC0.VSYNCSR)
+#define HSYNCSR_0 (DVDEC0.HSYNCSR)
+#define DCPSR1_0 (DVDEC0.DCPSR1)
+#define DCPSR2_0 (DVDEC0.DCPSR2)
+#define NSDSR_0 (DVDEC0.NSDSR)
+#define CROMASR1_0 (DVDEC0.CROMASR1)
+#define CROMASR2_0 (DVDEC0.CROMASR2)
+#define SYNCSSR_0 (DVDEC0.SYNCSSR)
+#define AGCCSR1_0 (DVDEC0.AGCCSR1)
+#define AGCCSR2_0 (DVDEC0.AGCCSR2)
+#define YCSCR3_0 (DVDEC0.YCSCR3)
+#define YCSCR4_0 (DVDEC0.YCSCR4)
+#define YCSCR5_0 (DVDEC0.YCSCR5)
+#define YCSCR6_0 (DVDEC0.YCSCR6)
+#define YCSCR7_0 (DVDEC0.YCSCR7)
+#define YCSCR8_0 (DVDEC0.YCSCR8)
+#define YCSCR9_0 (DVDEC0.YCSCR9)
+#define YCSCR11_0 (DVDEC0.YCSCR11)
+#define YCSCR12_0 (DVDEC0.YCSCR12)
+#define DCPCR9_0 (DVDEC0.DCPCR9)
+#define YCTWA_F0_0 (DVDEC0.YCTWA_F0)
+#define YCTWA_F1_0 (DVDEC0.YCTWA_F1)
+#define YCTWA_F2_0 (DVDEC0.YCTWA_F2)
+#define YCTWA_F3_0 (DVDEC0.YCTWA_F3)
+#define YCTWA_F4_0 (DVDEC0.YCTWA_F4)
+#define YCTWA_F5_0 (DVDEC0.YCTWA_F5)
+#define YCTWA_F6_0 (DVDEC0.YCTWA_F6)
+#define YCTWA_F7_0 (DVDEC0.YCTWA_F7)
+#define YCTWA_F8_0 (DVDEC0.YCTWA_F8)
+#define YCTWB_F0_0 (DVDEC0.YCTWB_F0)
+#define YCTWB_F1_0 (DVDEC0.YCTWB_F1)
+#define YCTWB_F2_0 (DVDEC0.YCTWB_F2)
+#define YCTWB_F3_0 (DVDEC0.YCTWB_F3)
+#define YCTWB_F4_0 (DVDEC0.YCTWB_F4)
+#define YCTWB_F5_0 (DVDEC0.YCTWB_F5)
+#define YCTWB_F6_0 (DVDEC0.YCTWB_F6)
+#define YCTWB_F7_0 (DVDEC0.YCTWB_F7)
+#define YCTWB_F8_0 (DVDEC0.YCTWB_F8)
+#define YCTNA_F0_0 (DVDEC0.YCTNA_F0)
+#define YCTNA_F1_0 (DVDEC0.YCTNA_F1)
+#define YCTNA_F2_0 (DVDEC0.YCTNA_F2)
+#define YCTNA_F3_0 (DVDEC0.YCTNA_F3)
+#define YCTNA_F4_0 (DVDEC0.YCTNA_F4)
+#define YCTNA_F5_0 (DVDEC0.YCTNA_F5)
+#define YCTNA_F6_0 (DVDEC0.YCTNA_F6)
+#define YCTNA_F7_0 (DVDEC0.YCTNA_F7)
+#define YCTNA_F8_0 (DVDEC0.YCTNA_F8)
+#define YCTNB_F0_0 (DVDEC0.YCTNB_F0)
+#define YCTNB_F1_0 (DVDEC0.YCTNB_F1)
+#define YCTNB_F2_0 (DVDEC0.YCTNB_F2)
+#define YCTNB_F3_0 (DVDEC0.YCTNB_F3)
+#define YCTNB_F4_0 (DVDEC0.YCTNB_F4)
+#define YCTNB_F5_0 (DVDEC0.YCTNB_F5)
+#define YCTNB_F6_0 (DVDEC0.YCTNB_F6)
+#define YCTNB_F7_0 (DVDEC0.YCTNB_F7)
+#define YCTNB_F8_0 (DVDEC0.YCTNB_F8)
+#define YGAINCR_0 (DVDEC0.YGAINCR)
+#define CBGAINCR_0 (DVDEC0.CBGAINCR)
+#define CRGAINCR_0 (DVDEC0.CRGAINCR)
+#define PGA_UPDATE_0 (DVDEC0.PGA_UPDATE)
+#define PGACR_0 (DVDEC0.PGACR)
+#define ADCCR2_0 (DVDEC0.ADCCR2)
+
+#define DVDEC_TGCRn_COUNT (3)
+#define DVDEC_SYNSCRn_COUNT (5)
+#define DVDEC_HAFCCRn_COUNT (3)
+#define DVDEC_DCPCRn_COUNT (8)
+#define DVDEC_ACCCRn_COUNT (3)
+#define DVDEC_AGCCRn_COUNT (2)
+#define DVDEC_RGORCRn_COUNT (7)
+#define DVDEC_DCPSRn_COUNT (2)
+#define DVDEC_CROMASRn_COUNT (2)
+#define DVDEC_AGCCSRn_COUNT (2)
+#define DVDEC_YCSCRn_COUNT (7)
+#define DVDEC_YCTWA_Fn_COUNT (9)
+#define DVDEC_YCTWB_Fn_COUNT (9)
+#define DVDEC_YCTNA_Fn_COUNT (9)
+#define DVDEC_YCTNB_Fn_COUNT (9)
+
+
+typedef struct st_dvdec
+{
+                                                           /* DVDEC            */
+    volatile uint16_t ADCCR1;                                 /*  ADCCR1          */
+    volatile uint8_t   dummy1[4];                              /*                  */
+
+/* #define DVDEC_TGCRn_COUNT (3) */
+    volatile uint16_t TGCR1;                                  /*  TGCR1           */
+    volatile uint16_t TGCR2;                                  /*  TGCR2           */
+    volatile uint16_t TGCR3;                                  /*  TGCR3           */
+    volatile uint8_t   dummy2[6];                              /*                  */
+
+/* #define DVDEC_SYNSCRn_COUNT (5) */
+    volatile uint16_t SYNSCR1;                                /*  SYNSCR1         */
+    volatile uint16_t SYNSCR2;                                /*  SYNSCR2         */
+    volatile uint16_t SYNSCR3;                                /*  SYNSCR3         */
+    volatile uint16_t SYNSCR4;                                /*  SYNSCR4         */
+    volatile uint16_t SYNSCR5;                                /*  SYNSCR5         */
+
+/* #define DVDEC_HAFCCRn_COUNT (3) */
+    volatile uint16_t HAFCCR1;                                /*  HAFCCR1         */
+    volatile uint16_t HAFCCR2;                                /*  HAFCCR2         */
+    volatile uint16_t HAFCCR3;                                /*  HAFCCR3         */
+    volatile uint16_t VCDWCR1;                                /*  VCDWCR1         */
+    volatile uint8_t   dummy3[4];                              /*                  */
+
+/* #define DVDEC_DCPCRn_COUNT (8) */
+    volatile uint16_t DCPCR1;                                 /*  DCPCR1          */
+    volatile uint16_t DCPCR2;                                 /*  DCPCR2          */
+    volatile uint16_t DCPCR3;                                 /*  DCPCR3          */
+    volatile uint16_t DCPCR4;                                 /*  DCPCR4          */
+    volatile uint16_t DCPCR5;                                 /*  DCPCR5          */
+    volatile uint16_t DCPCR6;                                 /*  DCPCR6          */
+    volatile uint16_t DCPCR7;                                 /*  DCPCR7          */
+    volatile uint16_t DCPCR8;                                 /*  DCPCR8          */
+    volatile uint16_t NSDCR;                                  /*  NSDCR           */
+    volatile uint16_t BTLCR;                                  /*  BTLCR           */
+    volatile uint16_t BTGPCR;                                 /*  BTGPCR          */
+
+/* #define DVDEC_ACCCRn_COUNT (3) */
+    volatile uint16_t ACCCR1;                                 /*  ACCCR1          */
+    volatile uint16_t ACCCR2;                                 /*  ACCCR2          */
+    volatile uint16_t ACCCR3;                                 /*  ACCCR3          */
+    volatile uint16_t TINTCR;                                 /*  TINTCR          */
+    volatile uint16_t YCDCR;                                  /*  YCDCR           */
+
+/* #define DVDEC_AGCCRn_COUNT (2) */
+    volatile uint16_t AGCCR1;                                 /*  AGCCR1          */
+    volatile uint16_t AGCCR2;                                 /*  AGCCR2          */
+    volatile uint16_t PKLIMITCR;                              /*  PKLIMITCR       */
+
+/* #define DVDEC_RGORCRn_COUNT (7) */
+    volatile uint16_t RGORCR1;                                /*  RGORCR1         */
+    volatile uint16_t RGORCR2;                                /*  RGORCR2         */
+    volatile uint16_t RGORCR3;                                /*  RGORCR3         */
+    volatile uint16_t RGORCR4;                                /*  RGORCR4         */
+    volatile uint16_t RGORCR5;                                /*  RGORCR5         */
+    volatile uint16_t RGORCR6;                                /*  RGORCR6         */
+    volatile uint16_t RGORCR7;                                /*  RGORCR7         */
+    volatile uint8_t   dummy4[24];                             /*                  */
+    volatile uint16_t AFCPFCR;                                /*  AFCPFCR         */
+    volatile uint16_t RUPDCR;                                 /*  RUPDCR          */
+    volatile uint16_t VSYNCSR;                                /*  VSYNCSR         */
+    volatile uint16_t HSYNCSR;                                /*  HSYNCSR         */
+
+/* #define DVDEC_DCPSRn_COUNT (2) */
+    volatile uint16_t DCPSR1;                                 /*  DCPSR1          */
+    volatile uint16_t DCPSR2;                                 /*  DCPSR2          */
+    volatile uint8_t   dummy5[4];                              /*                  */
+    volatile uint16_t NSDSR;                                  /*  NSDSR           */
+
+/* #define DVDEC_CROMASRn_COUNT (2) */
+    volatile uint16_t CROMASR1;                               /*  CROMASR1        */
+    volatile uint16_t CROMASR2;                               /*  CROMASR2        */
+    volatile uint16_t SYNCSSR;                                /*  SYNCSSR         */
+
+/* #define DVDEC_AGCCSRn_COUNT (2) */
+    volatile uint16_t AGCCSR1;                                /*  AGCCSR1         */
+    volatile uint16_t AGCCSR2;                                /*  AGCCSR2         */
+    volatile uint8_t   dummy6[108];                            /*                  */
+
+/* #define DVDEC_YCSCRn_COUNT (7) */
+    volatile uint16_t YCSCR3;                                 /*  YCSCR3          */
+    volatile uint16_t YCSCR4;                                 /*  YCSCR4          */
+    volatile uint16_t YCSCR5;                                 /*  YCSCR5          */
+    volatile uint16_t YCSCR6;                                 /*  YCSCR6          */
+    volatile uint16_t YCSCR7;                                 /*  YCSCR7          */
+    volatile uint16_t YCSCR8;                                 /*  YCSCR8          */
+    volatile uint16_t YCSCR9;                                 /*  YCSCR9          */
+    volatile uint8_t   dummy7[2];                              /*                  */
+    volatile uint16_t YCSCR11;                                /*  YCSCR11         */
+    volatile uint16_t YCSCR12;                                /*  YCSCR12         */
+    volatile uint8_t   dummy8[104];                            /*                  */
+    volatile uint16_t DCPCR9;                                 /*  DCPCR9          */
+    volatile uint8_t   dummy9[16];                             /*                  */
+
+/* #define DVDEC_YCTWA_Fn_COUNT (9) */
+    volatile uint16_t YCTWA_F0;                               /*  YCTWA_F0        */
+    volatile uint16_t YCTWA_F1;                               /*  YCTWA_F1        */
+    volatile uint16_t YCTWA_F2;                               /*  YCTWA_F2        */
+    volatile uint16_t YCTWA_F3;                               /*  YCTWA_F3        */
+    volatile uint16_t YCTWA_F4;                               /*  YCTWA_F4        */
+    volatile uint16_t YCTWA_F5;                               /*  YCTWA_F5        */
+    volatile uint16_t YCTWA_F6;                               /*  YCTWA_F6        */
+    volatile uint16_t YCTWA_F7;                               /*  YCTWA_F7        */
+    volatile uint16_t YCTWA_F8;                               /*  YCTWA_F8        */
+
+/* #define DVDEC_YCTWB_Fn_COUNT (9) */
+    volatile uint16_t YCTWB_F0;                               /*  YCTWB_F0        */
+    volatile uint16_t YCTWB_F1;                               /*  YCTWB_F1        */
+    volatile uint16_t YCTWB_F2;                               /*  YCTWB_F2        */
+    volatile uint16_t YCTWB_F3;                               /*  YCTWB_F3        */
+    volatile uint16_t YCTWB_F4;                               /*  YCTWB_F4        */
+    volatile uint16_t YCTWB_F5;                               /*  YCTWB_F5        */
+    volatile uint16_t YCTWB_F6;                               /*  YCTWB_F6        */
+    volatile uint16_t YCTWB_F7;                               /*  YCTWB_F7        */
+    volatile uint16_t YCTWB_F8;                               /*  YCTWB_F8        */
+
+/* #define DVDEC_YCTNA_Fn_COUNT (9) */
+    volatile uint16_t YCTNA_F0;                               /*  YCTNA_F0        */
+    volatile uint16_t YCTNA_F1;                               /*  YCTNA_F1        */
+    volatile uint16_t YCTNA_F2;                               /*  YCTNA_F2        */
+    volatile uint16_t YCTNA_F3;                               /*  YCTNA_F3        */
+    volatile uint16_t YCTNA_F4;                               /*  YCTNA_F4        */
+    volatile uint16_t YCTNA_F5;                               /*  YCTNA_F5        */
+    volatile uint16_t YCTNA_F6;                               /*  YCTNA_F6        */
+    volatile uint16_t YCTNA_F7;                               /*  YCTNA_F7        */
+    volatile uint16_t YCTNA_F8;                               /*  YCTNA_F8        */
+
+/* #define DVDEC_YCTNB_Fn_COUNT (9) */
+    volatile uint16_t YCTNB_F0;                               /*  YCTNB_F0        */
+    volatile uint16_t YCTNB_F1;                               /*  YCTNB_F1        */
+    volatile uint16_t YCTNB_F2;                               /*  YCTNB_F2        */
+    volatile uint16_t YCTNB_F3;                               /*  YCTNB_F3        */
+    volatile uint16_t YCTNB_F4;                               /*  YCTNB_F4        */
+    volatile uint16_t YCTNB_F5;                               /*  YCTNB_F5        */
+    volatile uint16_t YCTNB_F6;                               /*  YCTNB_F6        */
+    volatile uint16_t YCTNB_F7;                               /*  YCTNB_F7        */
+    volatile uint16_t YCTNB_F8;                               /*  YCTNB_F8        */
+    volatile uint8_t   dummy10[38];                            /*                  */
+    volatile uint16_t YGAINCR;                                /*  YGAINCR         */
+    volatile uint16_t CBGAINCR;                               /*  CBGAINCR        */
+    volatile uint16_t CRGAINCR;                               /*  CRGAINCR        */
+    volatile uint8_t   dummy11[122];                           /*                  */
+    volatile uint16_t PGA_UPDATE;                             /*  PGA_UPDATE      */
+    volatile uint16_t PGACR;                                  /*  PGACR           */
+    volatile uint16_t ADCCR2;                                 /*  ADCCR2          */
+} r_io_dvdec_t;
+
+
+/* Channel array defines of DVDEC (2)*/
+#ifdef  DECLARE_DVDEC_CHANNELS
+volatile struct st_dvdec*  DVDEC[ DVDEC_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    DVDEC_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_DVDEC_CHANNELS */
+/* End of channel array defines of DVDEC (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ether_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ether_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ether_iodefine.h	(revision 429)
@@ -0,0 +1,509 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : ether_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef ETHER_IODEFINE_H
+#define ETHER_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define ETHER   (*(struct st_ether   *)0xE8203000uL) /* ETHER */
+
+
+/* Start of channel array defines of ETHER */
+
+/* Channel array defines of ETHER_FROM_TSU_ADRH0_ARRAY */
+/*(Sample) value = ETHER_FROM_TSU_ADRH0_ARRAY[ channel ]->TSU_ADRH0; */
+#define ETHER_FROM_TSU_ADRH0_ARRAY_COUNT  (32)
+#define ETHER_FROM_TSU_ADRH0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &ETHER_FROM_TSU_ADRH0, &ETHER_FROM_TSU_ADRH1, &ETHER_FROM_TSU_ADRH2, &ETHER_FROM_TSU_ADRH3, &ETHER_FROM_TSU_ADRH4, &ETHER_FROM_TSU_ADRH5, &ETHER_FROM_TSU_ADRH6, &ETHER_FROM_TSU_ADRH7, \
+    &ETHER_FROM_TSU_ADRH8, &ETHER_FROM_TSU_ADRH9, &ETHER_FROM_TSU_ADRH10, &ETHER_FROM_TSU_ADRH11, &ETHER_FROM_TSU_ADRH12, &ETHER_FROM_TSU_ADRH13, &ETHER_FROM_TSU_ADRH14, &ETHER_FROM_TSU_ADRH15, \
+    &ETHER_FROM_TSU_ADRH16, &ETHER_FROM_TSU_ADRH17, &ETHER_FROM_TSU_ADRH18, &ETHER_FROM_TSU_ADRH19, &ETHER_FROM_TSU_ADRH20, &ETHER_FROM_TSU_ADRH21, &ETHER_FROM_TSU_ADRH22, &ETHER_FROM_TSU_ADRH23, \
+    &ETHER_FROM_TSU_ADRH24, &ETHER_FROM_TSU_ADRH25, &ETHER_FROM_TSU_ADRH26, &ETHER_FROM_TSU_ADRH27, &ETHER_FROM_TSU_ADRH28, &ETHER_FROM_TSU_ADRH29, &ETHER_FROM_TSU_ADRH30, &ETHER_FROM_TSU_ADRH31 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define ETHER_FROM_TSU_ADRH0 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH0) /* ETHER_FROM_TSU_ADRH0 */
+#define ETHER_FROM_TSU_ADRH1 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH1) /* ETHER_FROM_TSU_ADRH1 */
+#define ETHER_FROM_TSU_ADRH2 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH2) /* ETHER_FROM_TSU_ADRH2 */
+#define ETHER_FROM_TSU_ADRH3 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH3) /* ETHER_FROM_TSU_ADRH3 */
+#define ETHER_FROM_TSU_ADRH4 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH4) /* ETHER_FROM_TSU_ADRH4 */
+#define ETHER_FROM_TSU_ADRH5 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH5) /* ETHER_FROM_TSU_ADRH5 */
+#define ETHER_FROM_TSU_ADRH6 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH6) /* ETHER_FROM_TSU_ADRH6 */
+#define ETHER_FROM_TSU_ADRH7 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH7) /* ETHER_FROM_TSU_ADRH7 */
+#define ETHER_FROM_TSU_ADRH8 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH8) /* ETHER_FROM_TSU_ADRH8 */
+#define ETHER_FROM_TSU_ADRH9 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH9) /* ETHER_FROM_TSU_ADRH9 */
+#define ETHER_FROM_TSU_ADRH10 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH10) /* ETHER_FROM_TSU_ADRH10 */
+#define ETHER_FROM_TSU_ADRH11 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH11) /* ETHER_FROM_TSU_ADRH11 */
+#define ETHER_FROM_TSU_ADRH12 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH12) /* ETHER_FROM_TSU_ADRH12 */
+#define ETHER_FROM_TSU_ADRH13 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH13) /* ETHER_FROM_TSU_ADRH13 */
+#define ETHER_FROM_TSU_ADRH14 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH14) /* ETHER_FROM_TSU_ADRH14 */
+#define ETHER_FROM_TSU_ADRH15 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH15) /* ETHER_FROM_TSU_ADRH15 */
+#define ETHER_FROM_TSU_ADRH16 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH16) /* ETHER_FROM_TSU_ADRH16 */
+#define ETHER_FROM_TSU_ADRH17 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH17) /* ETHER_FROM_TSU_ADRH17 */
+#define ETHER_FROM_TSU_ADRH18 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH18) /* ETHER_FROM_TSU_ADRH18 */
+#define ETHER_FROM_TSU_ADRH19 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH19) /* ETHER_FROM_TSU_ADRH19 */
+#define ETHER_FROM_TSU_ADRH20 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH20) /* ETHER_FROM_TSU_ADRH20 */
+#define ETHER_FROM_TSU_ADRH21 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH21) /* ETHER_FROM_TSU_ADRH21 */
+#define ETHER_FROM_TSU_ADRH22 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH22) /* ETHER_FROM_TSU_ADRH22 */
+#define ETHER_FROM_TSU_ADRH23 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH23) /* ETHER_FROM_TSU_ADRH23 */
+#define ETHER_FROM_TSU_ADRH24 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH24) /* ETHER_FROM_TSU_ADRH24 */
+#define ETHER_FROM_TSU_ADRH25 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH25) /* ETHER_FROM_TSU_ADRH25 */
+#define ETHER_FROM_TSU_ADRH26 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH26) /* ETHER_FROM_TSU_ADRH26 */
+#define ETHER_FROM_TSU_ADRH27 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH27) /* ETHER_FROM_TSU_ADRH27 */
+#define ETHER_FROM_TSU_ADRH28 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH28) /* ETHER_FROM_TSU_ADRH28 */
+#define ETHER_FROM_TSU_ADRH29 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH29) /* ETHER_FROM_TSU_ADRH29 */
+#define ETHER_FROM_TSU_ADRH30 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH30) /* ETHER_FROM_TSU_ADRH30 */
+#define ETHER_FROM_TSU_ADRH31 (*(struct st_ether_from_tsu_adrh0 *)&ETHER.TSU_ADRH31) /* ETHER_FROM_TSU_ADRH31 */
+
+/* End of channel array defines of ETHER */
+
+
+#define ETHEREDSR0 (ETHER.EDSR0)
+#define ETHERTDLAR0 (ETHER.TDLAR0)
+#define ETHERTDFAR0 (ETHER.TDFAR0)
+#define ETHERTDFXR0 (ETHER.TDFXR0)
+#define ETHERTDFFR0 (ETHER.TDFFR0)
+#define ETHERRDLAR0 (ETHER.RDLAR0)
+#define ETHERRDFAR0 (ETHER.RDFAR0)
+#define ETHERRDFXR0 (ETHER.RDFXR0)
+#define ETHERRDFFR0 (ETHER.RDFFR0)
+#define ETHEREDMR0 (ETHER.EDMR0)
+#define ETHEREDTRR0 (ETHER.EDTRR0)
+#define ETHEREDRRR0 (ETHER.EDRRR0)
+#define ETHEREESR0 (ETHER.EESR0)
+#define ETHEREESIPR0 (ETHER.EESIPR0)
+#define ETHERTRSCER0 (ETHER.TRSCER0)
+#define ETHERRMFCR0 (ETHER.RMFCR0)
+#define ETHERTFTR0 (ETHER.TFTR0)
+#define ETHERFDR0 (ETHER.FDR0)
+#define ETHERRMCR0 (ETHER.RMCR0)
+#define ETHERRPADIR0 (ETHER.RPADIR0)
+#define ETHERFCFTR0 (ETHER.FCFTR0)
+#define ETHERCSMR (ETHER.CSMR)
+#define ETHERCSSBM (ETHER.CSSBM)
+#define ETHERCSSMR (ETHER.CSSMR)
+#define ETHERECMR0 (ETHER.ECMR0)
+#define ETHERRFLR0 (ETHER.RFLR0)
+#define ETHERECSR0 (ETHER.ECSR0)
+#define ETHERECSIPR0 (ETHER.ECSIPR0)
+#define ETHERPIR0 (ETHER.PIR0)
+#define ETHERAPR0 (ETHER.APR0)
+#define ETHERMPR0 (ETHER.MPR0)
+#define ETHERPFTCR0 (ETHER.PFTCR0)
+#define ETHERPFRCR0 (ETHER.PFRCR0)
+#define ETHERTPAUSER0 (ETHER.TPAUSER0)
+#define ETHERMAHR0 (ETHER.MAHR0)
+#define ETHERMALR0 (ETHER.MALR0)
+#define ETHERCEFCR0 (ETHER.CEFCR0)
+#define ETHERFRECR0 (ETHER.FRECR0)
+#define ETHERTSFRCR0 (ETHER.TSFRCR0)
+#define ETHERTLFRCR0 (ETHER.TLFRCR0)
+#define ETHERRFCR0 (ETHER.RFCR0)
+#define ETHERMAFCR0 (ETHER.MAFCR0)
+#define ETHERARSTR (ETHER.ARSTR)
+#define ETHERTSU_CTRST (ETHER.TSU_CTRST)
+#define ETHERTSU_VTAG0 (ETHER.TSU_VTAG0)
+#define ETHERTSU_ADSBSY (ETHER.TSU_ADSBSY)
+#define ETHERTSU_TEN (ETHER.TSU_TEN)
+#define ETHERTXNLCR0 (ETHER.TXNLCR0)
+#define ETHERTXALCR0 (ETHER.TXALCR0)
+#define ETHERRXNLCR0 (ETHER.RXNLCR0)
+#define ETHERRXALCR0 (ETHER.RXALCR0)
+#define ETHERTSU_ADRH0 (ETHER.TSU_ADRH0)
+#define ETHERTSU_ADRL0 (ETHER.TSU_ADRL0)
+#define ETHERTSU_ADRH1 (ETHER.TSU_ADRH1)
+#define ETHERTSU_ADRL1 (ETHER.TSU_ADRL1)
+#define ETHERTSU_ADRH2 (ETHER.TSU_ADRH2)
+#define ETHERTSU_ADRL2 (ETHER.TSU_ADRL2)
+#define ETHERTSU_ADRH3 (ETHER.TSU_ADRH3)
+#define ETHERTSU_ADRL3 (ETHER.TSU_ADRL3)
+#define ETHERTSU_ADRH4 (ETHER.TSU_ADRH4)
+#define ETHERTSU_ADRL4 (ETHER.TSU_ADRL4)
+#define ETHERTSU_ADRH5 (ETHER.TSU_ADRH5)
+#define ETHERTSU_ADRL5 (ETHER.TSU_ADRL5)
+#define ETHERTSU_ADRH6 (ETHER.TSU_ADRH6)
+#define ETHERTSU_ADRL6 (ETHER.TSU_ADRL6)
+#define ETHERTSU_ADRH7 (ETHER.TSU_ADRH7)
+#define ETHERTSU_ADRL7 (ETHER.TSU_ADRL7)
+#define ETHERTSU_ADRH8 (ETHER.TSU_ADRH8)
+#define ETHERTSU_ADRL8 (ETHER.TSU_ADRL8)
+#define ETHERTSU_ADRH9 (ETHER.TSU_ADRH9)
+#define ETHERTSU_ADRL9 (ETHER.TSU_ADRL9)
+#define ETHERTSU_ADRH10 (ETHER.TSU_ADRH10)
+#define ETHERTSU_ADRL10 (ETHER.TSU_ADRL10)
+#define ETHERTSU_ADRH11 (ETHER.TSU_ADRH11)
+#define ETHERTSU_ADRL11 (ETHER.TSU_ADRL11)
+#define ETHERTSU_ADRH12 (ETHER.TSU_ADRH12)
+#define ETHERTSU_ADRL12 (ETHER.TSU_ADRL12)
+#define ETHERTSU_ADRH13 (ETHER.TSU_ADRH13)
+#define ETHERTSU_ADRL13 (ETHER.TSU_ADRL13)
+#define ETHERTSU_ADRH14 (ETHER.TSU_ADRH14)
+#define ETHERTSU_ADRL14 (ETHER.TSU_ADRL14)
+#define ETHERTSU_ADRH15 (ETHER.TSU_ADRH15)
+#define ETHERTSU_ADRL15 (ETHER.TSU_ADRL15)
+#define ETHERTSU_ADRH16 (ETHER.TSU_ADRH16)
+#define ETHERTSU_ADRL16 (ETHER.TSU_ADRL16)
+#define ETHERTSU_ADRH17 (ETHER.TSU_ADRH17)
+#define ETHERTSU_ADRL17 (ETHER.TSU_ADRL17)
+#define ETHERTSU_ADRH18 (ETHER.TSU_ADRH18)
+#define ETHERTSU_ADRL18 (ETHER.TSU_ADRL18)
+#define ETHERTSU_ADRH19 (ETHER.TSU_ADRH19)
+#define ETHERTSU_ADRL19 (ETHER.TSU_ADRL19)
+#define ETHERTSU_ADRH20 (ETHER.TSU_ADRH20)
+#define ETHERTSU_ADRL20 (ETHER.TSU_ADRL20)
+#define ETHERTSU_ADRH21 (ETHER.TSU_ADRH21)
+#define ETHERTSU_ADRL21 (ETHER.TSU_ADRL21)
+#define ETHERTSU_ADRH22 (ETHER.TSU_ADRH22)
+#define ETHERTSU_ADRL22 (ETHER.TSU_ADRL22)
+#define ETHERTSU_ADRH23 (ETHER.TSU_ADRH23)
+#define ETHERTSU_ADRL23 (ETHER.TSU_ADRL23)
+#define ETHERTSU_ADRH24 (ETHER.TSU_ADRH24)
+#define ETHERTSU_ADRL24 (ETHER.TSU_ADRL24)
+#define ETHERTSU_ADRH25 (ETHER.TSU_ADRH25)
+#define ETHERTSU_ADRL25 (ETHER.TSU_ADRL25)
+#define ETHERTSU_ADRH26 (ETHER.TSU_ADRH26)
+#define ETHERTSU_ADRL26 (ETHER.TSU_ADRL26)
+#define ETHERTSU_ADRH27 (ETHER.TSU_ADRH27)
+#define ETHERTSU_ADRL27 (ETHER.TSU_ADRL27)
+#define ETHERTSU_ADRH28 (ETHER.TSU_ADRH28)
+#define ETHERTSU_ADRL28 (ETHER.TSU_ADRL28)
+#define ETHERTSU_ADRH29 (ETHER.TSU_ADRH29)
+#define ETHERTSU_ADRL29 (ETHER.TSU_ADRL29)
+#define ETHERTSU_ADRH30 (ETHER.TSU_ADRH30)
+#define ETHERTSU_ADRL30 (ETHER.TSU_ADRL30)
+#define ETHERTSU_ADRH31 (ETHER.TSU_ADRH31)
+#define ETHERTSU_ADRL31 (ETHER.TSU_ADRL31)
+
+
+typedef struct st_ether
+{
+                                                           /* ETHER            */
+    volatile uint32_t  EDSR0;                                  /*  EDSR0           */
+    volatile uint8_t   dummy207[12];                           /*                  */
+    volatile uint32_t  TDLAR0;                                 /*  TDLAR0          */
+    volatile uint32_t  TDFAR0;                                 /*  TDFAR0          */
+    volatile uint32_t  TDFXR0;                                 /*  TDFXR0          */
+    volatile uint32_t  TDFFR0;                                 /*  TDFFR0          */
+    volatile uint8_t   dummy208[16];                           /*                  */
+    volatile uint32_t  RDLAR0;                                 /*  RDLAR0          */
+    volatile uint32_t  RDFAR0;                                 /*  RDFAR0          */
+    volatile uint32_t  RDFXR0;                                 /*  RDFXR0          */
+    volatile uint32_t  RDFFR0;                                 /*  RDFFR0          */
+    volatile uint8_t   dummy209[960];                          /*                  */
+    volatile uint32_t  EDMR0;                                  /*  EDMR0           */
+    volatile uint8_t   dummy210[4];                            /*                  */
+    volatile uint32_t  EDTRR0;                                 /*  EDTRR0          */
+    volatile uint8_t   dummy211[4];                            /*                  */
+    volatile uint32_t  EDRRR0;                                 /*  EDRRR0          */
+    volatile uint8_t   dummy212[20];                           /*                  */
+    volatile uint32_t  EESR0;                                  /*  EESR0           */
+    volatile uint8_t   dummy213[4];                            /*                  */
+    volatile uint32_t  EESIPR0;                                /*  EESIPR0         */
+    volatile uint8_t   dummy214[4];                            /*                  */
+    volatile uint32_t  TRSCER0;                                /*  TRSCER0         */
+    volatile uint8_t   dummy215[4];                            /*                  */
+    volatile uint32_t  RMFCR0;                                 /*  RMFCR0          */
+    volatile uint8_t   dummy216[4];                            /*                  */
+    volatile uint32_t  TFTR0;                                  /*  TFTR0           */
+    volatile uint8_t   dummy217[4];                            /*                  */
+    volatile uint32_t  FDR0;                                   /*  FDR0            */
+    volatile uint8_t   dummy218[4];                            /*                  */
+    volatile uint32_t  RMCR0;                                  /*  RMCR0           */
+    volatile uint8_t   dummy219[4];                            /*                  */
+    volatile uint32_t  RPADIR0;                                /*  RPADIR0         */
+    volatile uint8_t   dummy220[4];                            /*                  */
+    volatile uint32_t  FCFTR0;                                 /*  FCFTR0          */
+    volatile uint8_t   dummy221[120];                          /*                  */
+    volatile uint32_t  CSMR;                                   /*  CSMR            */
+    volatile uint32_t  CSSBM;                                  /*  CSSBM           */
+    volatile uint32_t  CSSMR;                                  /*  CSSMR           */
+    volatile uint8_t   dummy222[16];                           /*                  */
+    volatile uint32_t  ECMR0;                                  /*  ECMR0           */
+    volatile uint8_t   dummy223[4];                            /*                  */
+    volatile uint32_t  RFLR0;                                  /*  RFLR0           */
+    volatile uint8_t   dummy224[4];                            /*                  */
+    volatile uint32_t  ECSR0;                                  /*  ECSR0           */
+    volatile uint8_t   dummy225[4];                            /*                  */
+    volatile uint32_t  ECSIPR0;                                /*  ECSIPR0         */
+    volatile uint8_t   dummy226[4];                            /*                  */
+    volatile uint32_t  PIR0;                                   /*  PIR0            */
+    volatile uint8_t   dummy227[48];                           /*                  */
+    volatile uint32_t  APR0;                                   /*  APR0            */
+    volatile uint32_t  MPR0;                                   /*  MPR0            */
+    volatile uint32_t  PFTCR0;                                 /*  PFTCR0          */
+    volatile uint32_t  PFRCR0;                                 /*  PFRCR0          */
+    volatile uint32_t  TPAUSER0;                               /*  TPAUSER0        */
+    volatile uint8_t   dummy228[88];                           /*                  */
+    volatile uint32_t  MAHR0;                                  /*  MAHR0           */
+    volatile uint8_t   dummy229[4];                            /*                  */
+    volatile uint32_t  MALR0;                                  /*  MALR0           */
+    volatile uint8_t   dummy230[372];                          /*                  */
+    volatile uint32_t  CEFCR0;                                 /*  CEFCR0          */
+    volatile uint8_t   dummy231[4];                            /*                  */
+    volatile uint32_t  FRECR0;                                 /*  FRECR0          */
+    volatile uint8_t   dummy232[4];                            /*                  */
+    volatile uint32_t  TSFRCR0;                                /*  TSFRCR0         */
+    volatile uint8_t   dummy233[4];                            /*                  */
+    volatile uint32_t  TLFRCR0;                                /*  TLFRCR0         */
+    volatile uint8_t   dummy234[4];                            /*                  */
+    volatile uint32_t  RFCR0;                                  /*  RFCR0           */
+    volatile uint8_t   dummy235[20];                           /*                  */
+    volatile uint32_t  MAFCR0;                                 /*  MAFCR0          */
+    volatile uint8_t   dummy236[4228];                         /*                  */
+    volatile uint32_t  ARSTR;                                  /*  ARSTR           */
+    volatile uint32_t  TSU_CTRST;                              /*  TSU_CTRST       */
+    volatile uint8_t   dummy237[80];                           /*                  */
+    volatile uint32_t  TSU_VTAG0;                              /*  TSU_VTAG0       */
+    volatile uint8_t   dummy238[4];                            /*                  */
+    volatile uint32_t  TSU_ADSBSY;                             /*  TSU_ADSBSY      */
+    volatile uint32_t  TSU_TEN;                                /*  TSU_TEN         */
+    volatile uint8_t   dummy239[24];                           /*                  */
+    volatile uint32_t  TXNLCR0;                                /*  TXNLCR0         */
+    volatile uint32_t  TXALCR0;                                /*  TXALCR0         */
+    volatile uint32_t  RXNLCR0;                                /*  RXNLCR0         */
+    volatile uint32_t  RXALCR0;                                /*  RXALCR0         */
+    volatile uint8_t   dummy240[112];                          /*                  */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH0;                              /*  TSU_ADRH0       */
+    volatile uint32_t  TSU_ADRL0;                              /*  TSU_ADRL0       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH1;                              /*  TSU_ADRH1       */
+    volatile uint32_t  TSU_ADRL1;                              /*  TSU_ADRL1       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH2;                              /*  TSU_ADRH2       */
+    volatile uint32_t  TSU_ADRL2;                              /*  TSU_ADRL2       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH3;                              /*  TSU_ADRH3       */
+    volatile uint32_t  TSU_ADRL3;                              /*  TSU_ADRL3       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH4;                              /*  TSU_ADRH4       */
+    volatile uint32_t  TSU_ADRL4;                              /*  TSU_ADRL4       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH5;                              /*  TSU_ADRH5       */
+    volatile uint32_t  TSU_ADRL5;                              /*  TSU_ADRL5       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH6;                              /*  TSU_ADRH6       */
+    volatile uint32_t  TSU_ADRL6;                              /*  TSU_ADRL6       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH7;                              /*  TSU_ADRH7       */
+    volatile uint32_t  TSU_ADRL7;                              /*  TSU_ADRL7       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH8;                              /*  TSU_ADRH8       */
+    volatile uint32_t  TSU_ADRL8;                              /*  TSU_ADRL8       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH9;                              /*  TSU_ADRH9       */
+    volatile uint32_t  TSU_ADRL9;                              /*  TSU_ADRL9       */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH10;                             /*  TSU_ADRH10      */
+    volatile uint32_t  TSU_ADRL10;                             /*  TSU_ADRL10      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH11;                             /*  TSU_ADRH11      */
+    volatile uint32_t  TSU_ADRL11;                             /*  TSU_ADRL11      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH12;                             /*  TSU_ADRH12      */
+    volatile uint32_t  TSU_ADRL12;                             /*  TSU_ADRL12      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH13;                             /*  TSU_ADRH13      */
+    volatile uint32_t  TSU_ADRL13;                             /*  TSU_ADRL13      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH14;                             /*  TSU_ADRH14      */
+    volatile uint32_t  TSU_ADRL14;                             /*  TSU_ADRL14      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH15;                             /*  TSU_ADRH15      */
+    volatile uint32_t  TSU_ADRL15;                             /*  TSU_ADRL15      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH16;                             /*  TSU_ADRH16      */
+    volatile uint32_t  TSU_ADRL16;                             /*  TSU_ADRL16      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH17;                             /*  TSU_ADRH17      */
+    volatile uint32_t  TSU_ADRL17;                             /*  TSU_ADRL17      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH18;                             /*  TSU_ADRH18      */
+    volatile uint32_t  TSU_ADRL18;                             /*  TSU_ADRL18      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH19;                             /*  TSU_ADRH19      */
+    volatile uint32_t  TSU_ADRL19;                             /*  TSU_ADRL19      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH20;                             /*  TSU_ADRH20      */
+    volatile uint32_t  TSU_ADRL20;                             /*  TSU_ADRL20      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH21;                             /*  TSU_ADRH21      */
+    volatile uint32_t  TSU_ADRL21;                             /*  TSU_ADRL21      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH22;                             /*  TSU_ADRH22      */
+    volatile uint32_t  TSU_ADRL22;                             /*  TSU_ADRL22      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH23;                             /*  TSU_ADRH23      */
+    volatile uint32_t  TSU_ADRL23;                             /*  TSU_ADRL23      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH24;                             /*  TSU_ADRH24      */
+    volatile uint32_t  TSU_ADRL24;                             /*  TSU_ADRL24      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH25;                             /*  TSU_ADRH25      */
+    volatile uint32_t  TSU_ADRL25;                             /*  TSU_ADRL25      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH26;                             /*  TSU_ADRH26      */
+    volatile uint32_t  TSU_ADRL26;                             /*  TSU_ADRL26      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH27;                             /*  TSU_ADRH27      */
+    volatile uint32_t  TSU_ADRL27;                             /*  TSU_ADRL27      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH28;                             /*  TSU_ADRH28      */
+    volatile uint32_t  TSU_ADRL28;                             /*  TSU_ADRL28      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH29;                             /*  TSU_ADRH29      */
+    volatile uint32_t  TSU_ADRL29;                             /*  TSU_ADRL29      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH30;                             /*  TSU_ADRH30      */
+    volatile uint32_t  TSU_ADRL30;                             /*  TSU_ADRL30      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+
+/* start of struct st_ether_from_tsu_adrh0 */
+    volatile uint32_t  TSU_ADRH31;                             /*  TSU_ADRH31      */
+    volatile uint32_t  TSU_ADRL31;                             /*  TSU_ADRL31      */
+
+/* end of struct st_ether_from_tsu_adrh0 */
+} r_io_ether_t;
+
+
+typedef struct st_ether_from_tsu_adrh0
+{
+ 
+    volatile uint32_t  TSU_ADRH0;                              /*  TSU_ADRH0       */
+    volatile uint32_t  TSU_ADRL0;                              /*  TSU_ADRL0       */
+} r_io_ether_from_tsu_adrh0_t;
+
+
+/* Channel array defines of ETHER (2)*/
+#ifdef  DECLARE_ETHER_FROM_TSU_ADRH0_ARRAY_CHANNELS
+volatile struct st_ether_from_tsu_adrh0*  ETHER_FROM_TSU_ADRH0_ARRAY[ ETHER_FROM_TSU_ADRH0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    ETHER_FROM_TSU_ADRH0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_ETHER_FROM_TSU_ADRH0_ARRAY_CHANNELS */
+/* End of channel array defines of ETHER (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/flctl_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/flctl_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/flctl_iodefine.h	(revision 429)
@@ -0,0 +1,78 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : flctl_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef FLCTL_IODEFINE_H
+#define FLCTL_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define FLCTL   (*(struct st_flctl   *)0xFCFF4000uL) /* FLCTL */
+
+
+#define FLCTLFLCMNCR (FLCTL.FLCMNCR)
+#define FLCTLFLCMDCR (FLCTL.FLCMDCR)
+#define FLCTLFLCMCDR (FLCTL.FLCMCDR)
+#define FLCTLFLADR (FLCTL.FLADR)
+#define FLCTLFLDATAR (FLCTL.FLDATAR)
+#define FLCTLFLDTCNTR (FLCTL.FLDTCNTR)
+#define FLCTLFLINTDMACR (FLCTL.FLINTDMACR)
+#define FLCTLFLBSYTMR (FLCTL.FLBSYTMR)
+#define FLCTLFLBSYCNT (FLCTL.FLBSYCNT)
+#define FLCTLFLTRCR (FLCTL.FLTRCR)
+#define FLCTLFLADR2 (FLCTL.FLADR2)
+#define FLCTLFLDTFIFO (FLCTL.FLDTFIFO)
+
+
+typedef struct st_flctl
+{
+                                                           /* FLCTL            */
+    volatile uint32_t  FLCMNCR;                                /*  FLCMNCR         */
+    volatile uint32_t  FLCMDCR;                                /*  FLCMDCR         */
+    volatile uint32_t  FLCMCDR;                                /*  FLCMCDR         */
+    volatile uint32_t  FLADR;                                  /*  FLADR           */
+    volatile uint32_t  FLDATAR;                                /*  FLDATAR         */
+    volatile uint32_t  FLDTCNTR;                               /*  FLDTCNTR        */
+    volatile uint32_t  FLINTDMACR;                             /*  FLINTDMACR      */
+    volatile uint32_t  FLBSYTMR;                               /*  FLBSYTMR        */
+    volatile uint32_t  FLBSYCNT;                               /*  FLBSYCNT        */
+    volatile uint8_t   dummy555[8];                            /*                  */
+    volatile uint8_t   FLTRCR;                                 /*  FLTRCR          */
+    volatile uint8_t   dummy556[15];                           /*                  */
+    volatile uint32_t  FLADR2;                                 /*  FLADR2          */
+    volatile uint8_t   dummy557[16];                           /*                  */
+    volatile uint32_t  FLDTFIFO;                               /*  FLDTFIFO        */
+} r_io_flctl_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/gpio_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/gpio_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/gpio_iodefine.h	(revision 429)
@@ -0,0 +1,1431 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : gpio_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef GPIO_IODEFINE_H
+#define GPIO_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define GPIO    (*(struct st_gpio    *)0xFCFE3004uL) /* GPIO */
+
+
+/* Start of channel array defines of GPIO */
+
+/* Channel array defines of GPIO_FROM_PIPC1_ARRAY */
+/*(Sample) value = GPIO_FROM_PIPC1_ARRAY[ channel ]->PIPC1; */
+#define GPIO_FROM_PIPC1_ARRAY_COUNT  (11)
+#define GPIO_FROM_PIPC1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PIPC1, &GPIO_FROM_PIPC2, &GPIO_FROM_PIPC3, &GPIO_FROM_PIPC4, &GPIO_FROM_PIPC5, &GPIO_FROM_PIPC6, &GPIO_FROM_PIPC7, &GPIO_FROM_PIPC8, \
+    &GPIO_FROM_PIPC9, &GPIO_FROM_PIPC10, &GPIO_FROM_PIPC11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PIPC1 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC1) /* GPIO_FROM_PIPC1 */
+#define GPIO_FROM_PIPC2 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC2) /* GPIO_FROM_PIPC2 */
+#define GPIO_FROM_PIPC3 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC3) /* GPIO_FROM_PIPC3 */
+#define GPIO_FROM_PIPC4 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC4) /* GPIO_FROM_PIPC4 */
+#define GPIO_FROM_PIPC5 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC5) /* GPIO_FROM_PIPC5 */
+#define GPIO_FROM_PIPC6 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC6) /* GPIO_FROM_PIPC6 */
+#define GPIO_FROM_PIPC7 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC7) /* GPIO_FROM_PIPC7 */
+#define GPIO_FROM_PIPC8 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC8) /* GPIO_FROM_PIPC8 */
+#define GPIO_FROM_PIPC9 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC9) /* GPIO_FROM_PIPC9 */
+#define GPIO_FROM_PIPC10 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC10) /* GPIO_FROM_PIPC10 */
+#define GPIO_FROM_PIPC11 (*(struct st_gpio_from_pipc1 *)&GPIO.PIPC11) /* GPIO_FROM_PIPC11 */
+
+
+/* Channel array defines of GPIO_FROM_PBDC1_ARRAY */
+/*(Sample) value = GPIO_FROM_PBDC1_ARRAY[ channel ]->PBDC1; */
+#define GPIO_FROM_PBDC1_ARRAY_COUNT  (11)
+#define GPIO_FROM_PBDC1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PBDC1, &GPIO_FROM_PBDC2, &GPIO_FROM_PBDC3, &GPIO_FROM_PBDC4, &GPIO_FROM_PBDC5, &GPIO_FROM_PBDC6, &GPIO_FROM_PBDC7, &GPIO_FROM_PBDC8, \
+    &GPIO_FROM_PBDC9, &GPIO_FROM_PBDC10, &GPIO_FROM_PBDC11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PBDC1 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC1) /* GPIO_FROM_PBDC1 */
+#define GPIO_FROM_PBDC2 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC2) /* GPIO_FROM_PBDC2 */
+#define GPIO_FROM_PBDC3 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC3) /* GPIO_FROM_PBDC3 */
+#define GPIO_FROM_PBDC4 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC4) /* GPIO_FROM_PBDC4 */
+#define GPIO_FROM_PBDC5 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC5) /* GPIO_FROM_PBDC5 */
+#define GPIO_FROM_PBDC6 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC6) /* GPIO_FROM_PBDC6 */
+#define GPIO_FROM_PBDC7 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC7) /* GPIO_FROM_PBDC7 */
+#define GPIO_FROM_PBDC8 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC8) /* GPIO_FROM_PBDC8 */
+#define GPIO_FROM_PBDC9 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC9) /* GPIO_FROM_PBDC9 */
+#define GPIO_FROM_PBDC10 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC10) /* GPIO_FROM_PBDC10 */
+#define GPIO_FROM_PBDC11 (*(struct st_gpio_from_pbdc1 *)&GPIO.PBDC11) /* GPIO_FROM_PBDC11 */
+
+
+/* Channel array defines of GPIO_FROM_PIBC1_ARRAY */
+/*(Sample) value = GPIO_FROM_PIBC1_ARRAY[ channel ]->PIBC1; */
+#define GPIO_FROM_PIBC1_ARRAY_COUNT  (12)
+#define GPIO_FROM_PIBC1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PIBC0, &GPIO_FROM_PIBC1, &GPIO_FROM_PIBC2, &GPIO_FROM_PIBC3, &GPIO_FROM_PIBC4, &GPIO_FROM_PIBC5, &GPIO_FROM_PIBC6, &GPIO_FROM_PIBC7, \
+    &GPIO_FROM_PIBC8, &GPIO_FROM_PIBC9, &GPIO_FROM_PIBC10, &GPIO_FROM_PIBC11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PIBC0 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC0) /* GPIO_FROM_PIBC0 */
+#define GPIO_FROM_PIBC1 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC1) /* GPIO_FROM_PIBC1 */
+#define GPIO_FROM_PIBC2 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC2) /* GPIO_FROM_PIBC2 */
+#define GPIO_FROM_PIBC3 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC3) /* GPIO_FROM_PIBC3 */
+#define GPIO_FROM_PIBC4 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC4) /* GPIO_FROM_PIBC4 */
+#define GPIO_FROM_PIBC5 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC5) /* GPIO_FROM_PIBC5 */
+#define GPIO_FROM_PIBC6 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC6) /* GPIO_FROM_PIBC6 */
+#define GPIO_FROM_PIBC7 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC7) /* GPIO_FROM_PIBC7 */
+#define GPIO_FROM_PIBC8 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC8) /* GPIO_FROM_PIBC8 */
+#define GPIO_FROM_PIBC9 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC9) /* GPIO_FROM_PIBC9 */
+#define GPIO_FROM_PIBC10 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC10) /* GPIO_FROM_PIBC10 */
+#define GPIO_FROM_PIBC11 (*(struct st_gpio_from_pibc1 *)&GPIO.PIBC11) /* GPIO_FROM_PIBC11 */
+
+
+/* Channel array defines of GPIO_FROM_PFCAE1_ARRAY */
+/*(Sample) value = GPIO_FROM_PFCAE1_ARRAY[ channel ]->PFCAE1; */
+#define GPIO_FROM_PFCAE1_ARRAY_COUNT  (11)
+#define GPIO_FROM_PFCAE1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PFCAE1, &GPIO_FROM_PFCAE2, &GPIO_FROM_PFCAE3, &GPIO_FROM_PFCAE4, &GPIO_FROM_PFCAE5, &GPIO_FROM_PFCAE6, &GPIO_FROM_PFCAE7, &GPIO_FROM_PFCAE8, \
+    &GPIO_FROM_PFCAE9, &GPIO_FROM_PFCAE10, &GPIO_FROM_PFCAE11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PFCAE1 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE1) /* GPIO_FROM_PFCAE1 */
+#define GPIO_FROM_PFCAE2 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE2) /* GPIO_FROM_PFCAE2 */
+#define GPIO_FROM_PFCAE3 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE3) /* GPIO_FROM_PFCAE3 */
+#define GPIO_FROM_PFCAE4 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE4) /* GPIO_FROM_PFCAE4 */
+#define GPIO_FROM_PFCAE5 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE5) /* GPIO_FROM_PFCAE5 */
+#define GPIO_FROM_PFCAE6 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE6) /* GPIO_FROM_PFCAE6 */
+#define GPIO_FROM_PFCAE7 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE7) /* GPIO_FROM_PFCAE7 */
+#define GPIO_FROM_PFCAE8 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE8) /* GPIO_FROM_PFCAE8 */
+#define GPIO_FROM_PFCAE9 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE9) /* GPIO_FROM_PFCAE9 */
+#define GPIO_FROM_PFCAE10 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE10) /* GPIO_FROM_PFCAE10 */
+#define GPIO_FROM_PFCAE11 (*(struct st_gpio_from_pfcae1 *)&GPIO.PFCAE11) /* GPIO_FROM_PFCAE11 */
+
+
+/* Channel array defines of GPIO_FROM_PNOT1_ARRAY */
+/*(Sample) value = GPIO_FROM_PNOT1_ARRAY[ channel ]->PNOT1; */
+#define GPIO_FROM_PNOT1_ARRAY_COUNT  (11)
+#define GPIO_FROM_PNOT1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PNOT1, &GPIO_FROM_PNOT2, &GPIO_FROM_PNOT3, &GPIO_FROM_PNOT4, &GPIO_FROM_PNOT5, &GPIO_FROM_PNOT6, &GPIO_FROM_PNOT7, &GPIO_FROM_PNOT8, \
+    &GPIO_FROM_PNOT9, &GPIO_FROM_PNOT10, &GPIO_FROM_PNOT11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PNOT1 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT1) /* GPIO_FROM_PNOT1 */
+#define GPIO_FROM_PNOT2 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT2) /* GPIO_FROM_PNOT2 */
+#define GPIO_FROM_PNOT3 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT3) /* GPIO_FROM_PNOT3 */
+#define GPIO_FROM_PNOT4 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT4) /* GPIO_FROM_PNOT4 */
+#define GPIO_FROM_PNOT5 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT5) /* GPIO_FROM_PNOT5 */
+#define GPIO_FROM_PNOT6 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT6) /* GPIO_FROM_PNOT6 */
+#define GPIO_FROM_PNOT7 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT7) /* GPIO_FROM_PNOT7 */
+#define GPIO_FROM_PNOT8 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT8) /* GPIO_FROM_PNOT8 */
+#define GPIO_FROM_PNOT9 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT9) /* GPIO_FROM_PNOT9 */
+#define GPIO_FROM_PNOT10 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT10) /* GPIO_FROM_PNOT10 */
+#define GPIO_FROM_PNOT11 (*(struct st_gpio_from_pnot1 *)&GPIO.PNOT11) /* GPIO_FROM_PNOT11 */
+
+
+/* Channel array defines of GPIO_FROM_PFCE1_ARRAY */
+/*(Sample) value = GPIO_FROM_PFCE1_ARRAY[ channel ]->PFCE1; */
+#define GPIO_FROM_PFCE1_ARRAY_COUNT  (11)
+#define GPIO_FROM_PFCE1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PFCE1, &GPIO_FROM_PFCE2, &GPIO_FROM_PFCE3, &GPIO_FROM_PFCE4, &GPIO_FROM_PFCE5, &GPIO_FROM_PFCE6, &GPIO_FROM_PFCE7, &GPIO_FROM_PFCE8, \
+    &GPIO_FROM_PFCE9, &GPIO_FROM_PFCE10, &GPIO_FROM_PFCE11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PFCE1 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE1) /* GPIO_FROM_PFCE1 */
+#define GPIO_FROM_PFCE2 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE2) /* GPIO_FROM_PFCE2 */
+#define GPIO_FROM_PFCE3 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE3) /* GPIO_FROM_PFCE3 */
+#define GPIO_FROM_PFCE4 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE4) /* GPIO_FROM_PFCE4 */
+#define GPIO_FROM_PFCE5 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE5) /* GPIO_FROM_PFCE5 */
+#define GPIO_FROM_PFCE6 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE6) /* GPIO_FROM_PFCE6 */
+#define GPIO_FROM_PFCE7 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE7) /* GPIO_FROM_PFCE7 */
+#define GPIO_FROM_PFCE8 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE8) /* GPIO_FROM_PFCE8 */
+#define GPIO_FROM_PFCE9 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE9) /* GPIO_FROM_PFCE9 */
+#define GPIO_FROM_PFCE10 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE10) /* GPIO_FROM_PFCE10 */
+#define GPIO_FROM_PFCE11 (*(struct st_gpio_from_pfce1 *)&GPIO.PFCE11) /* GPIO_FROM_PFCE11 */
+
+
+/* Channel array defines of GPIO_FROM_PFC1_ARRAY */
+/*(Sample) value = GPIO_FROM_PFC1_ARRAY[ channel ]->PFC1; */
+#define GPIO_FROM_PFC1_ARRAY_COUNT  (11)
+#define GPIO_FROM_PFC1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PFC1, &GPIO_FROM_PFC2, &GPIO_FROM_PFC3, &GPIO_FROM_PFC4, &GPIO_FROM_PFC5, &GPIO_FROM_PFC6, &GPIO_FROM_PFC7, &GPIO_FROM_PFC8, \
+    &GPIO_FROM_PFC9, &GPIO_FROM_PFC10, &GPIO_FROM_PFC11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PFC1 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC1) /* GPIO_FROM_PFC1 */
+#define GPIO_FROM_PFC2 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC2) /* GPIO_FROM_PFC2 */
+#define GPIO_FROM_PFC3 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC3) /* GPIO_FROM_PFC3 */
+#define GPIO_FROM_PFC4 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC4) /* GPIO_FROM_PFC4 */
+#define GPIO_FROM_PFC5 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC5) /* GPIO_FROM_PFC5 */
+#define GPIO_FROM_PFC6 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC6) /* GPIO_FROM_PFC6 */
+#define GPIO_FROM_PFC7 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC7) /* GPIO_FROM_PFC7 */
+#define GPIO_FROM_PFC8 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC8) /* GPIO_FROM_PFC8 */
+#define GPIO_FROM_PFC9 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC9) /* GPIO_FROM_PFC9 */
+#define GPIO_FROM_PFC10 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC10) /* GPIO_FROM_PFC10 */
+#define GPIO_FROM_PFC11 (*(struct st_gpio_from_pfc1 *)&GPIO.PFC11) /* GPIO_FROM_PFC11 */
+
+
+/* Channel array defines of GPIO_FROM_PMC0_ARRAY */
+/*(Sample) value = GPIO_FROM_PMC0_ARRAY[ channel ]->PMC0; */
+#define GPIO_FROM_PMC0_ARRAY_COUNT  (12)
+#define GPIO_FROM_PMC0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PMC0, &GPIO_FROM_PMC1, &GPIO_FROM_PMC2, &GPIO_FROM_PMC3, &GPIO_FROM_PMC4, &GPIO_FROM_PMC5, &GPIO_FROM_PMC6, &GPIO_FROM_PMC7, \
+    &GPIO_FROM_PMC8, &GPIO_FROM_PMC9, &GPIO_FROM_PMC10, &GPIO_FROM_PMC11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PMC0 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC0) /* GPIO_FROM_PMC0 */
+#define GPIO_FROM_PMC1 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC1) /* GPIO_FROM_PMC1 */
+#define GPIO_FROM_PMC2 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC2) /* GPIO_FROM_PMC2 */
+#define GPIO_FROM_PMC3 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC3) /* GPIO_FROM_PMC3 */
+#define GPIO_FROM_PMC4 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC4) /* GPIO_FROM_PMC4 */
+#define GPIO_FROM_PMC5 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC5) /* GPIO_FROM_PMC5 */
+#define GPIO_FROM_PMC6 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC6) /* GPIO_FROM_PMC6 */
+#define GPIO_FROM_PMC7 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC7) /* GPIO_FROM_PMC7 */
+#define GPIO_FROM_PMC8 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC8) /* GPIO_FROM_PMC8 */
+#define GPIO_FROM_PMC9 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC9) /* GPIO_FROM_PMC9 */
+#define GPIO_FROM_PMC10 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC10) /* GPIO_FROM_PMC10 */
+#define GPIO_FROM_PMC11 (*(struct st_gpio_from_pmc0 *)&GPIO.PMC11) /* GPIO_FROM_PMC11 */
+
+
+/* Channel array defines of GPIO_FROM_PM1_ARRAY */
+/*(Sample) value = GPIO_FROM_PM1_ARRAY[ channel ]->PM1; */
+#define GPIO_FROM_PM1_ARRAY_COUNT  (11)
+#define GPIO_FROM_PM1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PM1, &GPIO_FROM_PM2, &GPIO_FROM_PM3, &GPIO_FROM_PM4, &GPIO_FROM_PM5, &GPIO_FROM_PM6, &GPIO_FROM_PM7, &GPIO_FROM_PM8, \
+    &GPIO_FROM_PM9, &GPIO_FROM_PM10, &GPIO_FROM_PM11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PM1 (*(struct st_gpio_from_pm1 *)&GPIO.PM1)    /* GPIO_FROM_PM1 */
+#define GPIO_FROM_PM2 (*(struct st_gpio_from_pm1 *)&GPIO.PM2)    /* GPIO_FROM_PM2 */
+#define GPIO_FROM_PM3 (*(struct st_gpio_from_pm1 *)&GPIO.PM3)    /* GPIO_FROM_PM3 */
+#define GPIO_FROM_PM4 (*(struct st_gpio_from_pm1 *)&GPIO.PM4)    /* GPIO_FROM_PM4 */
+#define GPIO_FROM_PM5 (*(struct st_gpio_from_pm1 *)&GPIO.PM5)    /* GPIO_FROM_PM5 */
+#define GPIO_FROM_PM6 (*(struct st_gpio_from_pm1 *)&GPIO.PM6)    /* GPIO_FROM_PM6 */
+#define GPIO_FROM_PM7 (*(struct st_gpio_from_pm1 *)&GPIO.PM7)    /* GPIO_FROM_PM7 */
+#define GPIO_FROM_PM8 (*(struct st_gpio_from_pm1 *)&GPIO.PM8)    /* GPIO_FROM_PM8 */
+#define GPIO_FROM_PM9 (*(struct st_gpio_from_pm1 *)&GPIO.PM9)    /* GPIO_FROM_PM9 */
+#define GPIO_FROM_PM10 (*(struct st_gpio_from_pm1 *)&GPIO.PM10)  /* GPIO_FROM_PM10 */
+#define GPIO_FROM_PM11 (*(struct st_gpio_from_pm1 *)&GPIO.PM11)  /* GPIO_FROM_PM11 */
+
+
+/* Channel array defines of GPIO_FROM_PPR0_ARRAY */
+/*(Sample) value = GPIO_FROM_PPR0_ARRAY[ channel ]->PPR0; */
+#define GPIO_FROM_PPR0_ARRAY_COUNT  (12)
+#define GPIO_FROM_PPR0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_PPR0, &GPIO_FROM_PPR1, &GPIO_FROM_PPR2, &GPIO_FROM_PPR3, &GPIO_FROM_PPR4, &GPIO_FROM_PPR5, &GPIO_FROM_PPR6, &GPIO_FROM_PPR7, \
+    &GPIO_FROM_PPR8, &GPIO_FROM_PPR9, &GPIO_FROM_PPR10, &GPIO_FROM_PPR11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_PPR0 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR0) /* GPIO_FROM_PPR0 */
+#define GPIO_FROM_PPR1 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR1) /* GPIO_FROM_PPR1 */
+#define GPIO_FROM_PPR2 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR2) /* GPIO_FROM_PPR2 */
+#define GPIO_FROM_PPR3 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR3) /* GPIO_FROM_PPR3 */
+#define GPIO_FROM_PPR4 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR4) /* GPIO_FROM_PPR4 */
+#define GPIO_FROM_PPR5 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR5) /* GPIO_FROM_PPR5 */
+#define GPIO_FROM_PPR6 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR6) /* GPIO_FROM_PPR6 */
+#define GPIO_FROM_PPR7 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR7) /* GPIO_FROM_PPR7 */
+#define GPIO_FROM_PPR8 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR8) /* GPIO_FROM_PPR8 */
+#define GPIO_FROM_PPR9 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR9) /* GPIO_FROM_PPR9 */
+#define GPIO_FROM_PPR10 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR10) /* GPIO_FROM_PPR10 */
+#define GPIO_FROM_PPR11 (*(struct st_gpio_from_ppr0 *)&GPIO.PPR11) /* GPIO_FROM_PPR11 */
+
+
+/* Channel array defines of GPIO_FROM_P1_ARRAY */
+/*(Sample) value = GPIO_FROM_P1_ARRAY[ channel ]->P1; */
+#define GPIO_FROM_P1_ARRAY_COUNT  (11)
+#define GPIO_FROM_P1_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &GPIO_FROM_P1, &GPIO_FROM_P2, &GPIO_FROM_P3, &GPIO_FROM_P4, &GPIO_FROM_P5, &GPIO_FROM_P6, &GPIO_FROM_P7, &GPIO_FROM_P8, \
+    &GPIO_FROM_P9, &GPIO_FROM_P10, &GPIO_FROM_P11 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define GPIO_FROM_P1 (*(struct st_gpio_from_p1 *)&GPIO.P1)       /* GPIO_FROM_P1 */
+#define GPIO_FROM_P2 (*(struct st_gpio_from_p1 *)&GPIO.P2)       /* GPIO_FROM_P2 */
+#define GPIO_FROM_P3 (*(struct st_gpio_from_p1 *)&GPIO.P3)       /* GPIO_FROM_P3 */
+#define GPIO_FROM_P4 (*(struct st_gpio_from_p1 *)&GPIO.P4)       /* GPIO_FROM_P4 */
+#define GPIO_FROM_P5 (*(struct st_gpio_from_p1 *)&GPIO.P5)       /* GPIO_FROM_P5 */
+#define GPIO_FROM_P6 (*(struct st_gpio_from_p1 *)&GPIO.P6)       /* GPIO_FROM_P6 */
+#define GPIO_FROM_P7 (*(struct st_gpio_from_p1 *)&GPIO.P7)       /* GPIO_FROM_P7 */
+#define GPIO_FROM_P8 (*(struct st_gpio_from_p1 *)&GPIO.P8)       /* GPIO_FROM_P8 */
+#define GPIO_FROM_P9 (*(struct st_gpio_from_p1 *)&GPIO.P9)       /* GPIO_FROM_P9 */
+#define GPIO_FROM_P10 (*(struct st_gpio_from_p1 *)&GPIO.P10)     /* GPIO_FROM_P10 */
+#define GPIO_FROM_P11 (*(struct st_gpio_from_p1 *)&GPIO.P11)     /* GPIO_FROM_P11 */
+
+/* End of channel array defines of GPIO */
+
+
+#define GPIOP1 (GPIO.P1)
+#define GPIOP2 (GPIO.P2)
+#define GPIOP3 (GPIO.P3)
+#define GPIOP4 (GPIO.P4)
+#define GPIOP5 (GPIO.P5)
+#define GPIOP6 (GPIO.P6)
+#define GPIOP7 (GPIO.P7)
+#define GPIOP8 (GPIO.P8)
+#define GPIOP9 (GPIO.P9)
+#define GPIOP10 (GPIO.P10)
+#define GPIOP11 (GPIO.P11)
+#define GPIOPSR1 (GPIO.PSR1)
+#define GPIOPSR2 (GPIO.PSR2)
+#define GPIOPSR3 (GPIO.PSR3)
+#define GPIOPSR4 (GPIO.PSR4)
+#define GPIOPSR5 (GPIO.PSR5)
+#define GPIOPSR6 (GPIO.PSR6)
+#define GPIOPSR7 (GPIO.PSR7)
+#define GPIOPSR8 (GPIO.PSR8)
+#define GPIOPSR9 (GPIO.PSR9)
+#define GPIOPSR10 (GPIO.PSR10)
+#define GPIOPSR11 (GPIO.PSR11)
+#define GPIOPPR0 (GPIO.PPR0)
+#define GPIOPPR1 (GPIO.PPR1)
+#define GPIOPPR2 (GPIO.PPR2)
+#define GPIOPPR3 (GPIO.PPR3)
+#define GPIOPPR4 (GPIO.PPR4)
+#define GPIOPPR5 (GPIO.PPR5)
+#define GPIOPPR6 (GPIO.PPR6)
+#define GPIOPPR7 (GPIO.PPR7)
+#define GPIOPPR8 (GPIO.PPR8)
+#define GPIOPPR9 (GPIO.PPR9)
+#define GPIOPPR10 (GPIO.PPR10)
+#define GPIOPPR11 (GPIO.PPR11)
+#define GPIOPM1 (GPIO.PM1)
+#define GPIOPM2 (GPIO.PM2)
+#define GPIOPM3 (GPIO.PM3)
+#define GPIOPM4 (GPIO.PM4)
+#define GPIOPM5 (GPIO.PM5)
+#define GPIOPM6 (GPIO.PM6)
+#define GPIOPM7 (GPIO.PM7)
+#define GPIOPM8 (GPIO.PM8)
+#define GPIOPM9 (GPIO.PM9)
+#define GPIOPM10 (GPIO.PM10)
+#define GPIOPM11 (GPIO.PM11)
+#define GPIOPMC0 (GPIO.PMC0)
+#define GPIOPMC1 (GPIO.PMC1)
+#define GPIOPMC2 (GPIO.PMC2)
+#define GPIOPMC3 (GPIO.PMC3)
+#define GPIOPMC4 (GPIO.PMC4)
+#define GPIOPMC5 (GPIO.PMC5)
+#define GPIOPMC6 (GPIO.PMC6)
+#define GPIOPMC7 (GPIO.PMC7)
+#define GPIOPMC8 (GPIO.PMC8)
+#define GPIOPMC9 (GPIO.PMC9)
+#define GPIOPMC10 (GPIO.PMC10)
+#define GPIOPMC11 (GPIO.PMC11)
+#define GPIOPFC1 (GPIO.PFC1)
+#define GPIOPFC2 (GPIO.PFC2)
+#define GPIOPFC3 (GPIO.PFC3)
+#define GPIOPFC4 (GPIO.PFC4)
+#define GPIOPFC5 (GPIO.PFC5)
+#define GPIOPFC6 (GPIO.PFC6)
+#define GPIOPFC7 (GPIO.PFC7)
+#define GPIOPFC8 (GPIO.PFC8)
+#define GPIOPFC9 (GPIO.PFC9)
+#define GPIOPFC10 (GPIO.PFC10)
+#define GPIOPFC11 (GPIO.PFC11)
+#define GPIOPFCE1 (GPIO.PFCE1)
+#define GPIOPFCE2 (GPIO.PFCE2)
+#define GPIOPFCE3 (GPIO.PFCE3)
+#define GPIOPFCE4 (GPIO.PFCE4)
+#define GPIOPFCE5 (GPIO.PFCE5)
+#define GPIOPFCE6 (GPIO.PFCE6)
+#define GPIOPFCE7 (GPIO.PFCE7)
+#define GPIOPFCE8 (GPIO.PFCE8)
+#define GPIOPFCE9 (GPIO.PFCE9)
+#define GPIOPFCE10 (GPIO.PFCE10)
+#define GPIOPFCE11 (GPIO.PFCE11)
+#define GPIOPNOT1 (GPIO.PNOT1)
+#define GPIOPNOT2 (GPIO.PNOT2)
+#define GPIOPNOT3 (GPIO.PNOT3)
+#define GPIOPNOT4 (GPIO.PNOT4)
+#define GPIOPNOT5 (GPIO.PNOT5)
+#define GPIOPNOT6 (GPIO.PNOT6)
+#define GPIOPNOT7 (GPIO.PNOT7)
+#define GPIOPNOT8 (GPIO.PNOT8)
+#define GPIOPNOT9 (GPIO.PNOT9)
+#define GPIOPNOT10 (GPIO.PNOT10)
+#define GPIOPNOT11 (GPIO.PNOT11)
+#define GPIOPMSR1 (GPIO.PMSR1)
+#define GPIOPMSR2 (GPIO.PMSR2)
+#define GPIOPMSR3 (GPIO.PMSR3)
+#define GPIOPMSR4 (GPIO.PMSR4)
+#define GPIOPMSR5 (GPIO.PMSR5)
+#define GPIOPMSR6 (GPIO.PMSR6)
+#define GPIOPMSR7 (GPIO.PMSR7)
+#define GPIOPMSR8 (GPIO.PMSR8)
+#define GPIOPMSR9 (GPIO.PMSR9)
+#define GPIOPMSR10 (GPIO.PMSR10)
+#define GPIOPMSR11 (GPIO.PMSR11)
+#define GPIOPMCSR0 (GPIO.PMCSR0)
+#define GPIOPMCSR1 (GPIO.PMCSR1)
+#define GPIOPMCSR2 (GPIO.PMCSR2)
+#define GPIOPMCSR3 (GPIO.PMCSR3)
+#define GPIOPMCSR4 (GPIO.PMCSR4)
+#define GPIOPMCSR5 (GPIO.PMCSR5)
+#define GPIOPMCSR6 (GPIO.PMCSR6)
+#define GPIOPMCSR7 (GPIO.PMCSR7)
+#define GPIOPMCSR8 (GPIO.PMCSR8)
+#define GPIOPMCSR9 (GPIO.PMCSR9)
+#define GPIOPMCSR10 (GPIO.PMCSR10)
+#define GPIOPMCSR11 (GPIO.PMCSR11)
+#define GPIOPFCAE1 (GPIO.PFCAE1)
+#define GPIOPFCAE2 (GPIO.PFCAE2)
+#define GPIOPFCAE3 (GPIO.PFCAE3)
+#define GPIOPFCAE4 (GPIO.PFCAE4)
+#define GPIOPFCAE5 (GPIO.PFCAE5)
+#define GPIOPFCAE6 (GPIO.PFCAE6)
+#define GPIOPFCAE7 (GPIO.PFCAE7)
+#define GPIOPFCAE8 (GPIO.PFCAE8)
+#define GPIOPFCAE9 (GPIO.PFCAE9)
+#define GPIOPFCAE10 (GPIO.PFCAE10)
+#define GPIOPFCAE11 (GPIO.PFCAE11)
+#define GPIOSNCR (GPIO.SNCR)
+#define GPIOPIBC0 (GPIO.PIBC0)
+#define GPIOPIBC1 (GPIO.PIBC1)
+#define GPIOPIBC2 (GPIO.PIBC2)
+#define GPIOPIBC3 (GPIO.PIBC3)
+#define GPIOPIBC4 (GPIO.PIBC4)
+#define GPIOPIBC5 (GPIO.PIBC5)
+#define GPIOPIBC6 (GPIO.PIBC6)
+#define GPIOPIBC7 (GPIO.PIBC7)
+#define GPIOPIBC8 (GPIO.PIBC8)
+#define GPIOPIBC9 (GPIO.PIBC9)
+#define GPIOPIBC10 (GPIO.PIBC10)
+#define GPIOPIBC11 (GPIO.PIBC11)
+#define GPIOPBDC1 (GPIO.PBDC1)
+#define GPIOPBDC2 (GPIO.PBDC2)
+#define GPIOPBDC3 (GPIO.PBDC3)
+#define GPIOPBDC4 (GPIO.PBDC4)
+#define GPIOPBDC5 (GPIO.PBDC5)
+#define GPIOPBDC6 (GPIO.PBDC6)
+#define GPIOPBDC7 (GPIO.PBDC7)
+#define GPIOPBDC8 (GPIO.PBDC8)
+#define GPIOPBDC9 (GPIO.PBDC9)
+#define GPIOPBDC10 (GPIO.PBDC10)
+#define GPIOPBDC11 (GPIO.PBDC11)
+#define GPIOPIPC1 (GPIO.PIPC1)
+#define GPIOPIPC2 (GPIO.PIPC2)
+#define GPIOPIPC3 (GPIO.PIPC3)
+#define GPIOPIPC4 (GPIO.PIPC4)
+#define GPIOPIPC5 (GPIO.PIPC5)
+#define GPIOPIPC6 (GPIO.PIPC6)
+#define GPIOPIPC7 (GPIO.PIPC7)
+#define GPIOPIPC8 (GPIO.PIPC8)
+#define GPIOPIPC9 (GPIO.PIPC9)
+#define GPIOPIPC10 (GPIO.PIPC10)
+#define GPIOPIPC11 (GPIO.PIPC11)
+#define GPIOJPPR0 (GPIO.JPPR0)
+#define GPIOJPMC0 (GPIO.JPMC0)
+#define GPIOJPMCSR0 (GPIO.JPMCSR0)
+#define GPIOJPIBC0 (GPIO.JPIBC0)
+
+#define GPIO_PSRn_COUNT (11)
+#define GPIO_PMSRn_COUNT (11)
+#define GPIO_PMCSRn_COUNT (12)
+
+
+typedef struct st_gpio
+{
+                                                           /* GPIO             */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P1;                                     /*  P1              */
+    volatile uint8_t   dummy348[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P2;                                     /*  P2              */
+    volatile uint8_t   dummy349[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P3;                                     /*  P3              */
+    volatile uint8_t   dummy350[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P4;                                     /*  P4              */
+    volatile uint8_t   dummy351[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P5;                                     /*  P5              */
+    volatile uint8_t   dummy352[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P6;                                     /*  P6              */
+    volatile uint8_t   dummy353[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P7;                                     /*  P7              */
+    volatile uint8_t   dummy354[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P8;                                     /*  P8              */
+    volatile uint8_t   dummy355[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P9;                                     /*  P9              */
+    volatile uint8_t   dummy356[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P10;                                    /*  P10             */
+    volatile uint8_t   dummy357[2];                            /*                  */
+
+/* end of struct st_gpio_from_p1 */
+
+/* start of struct st_gpio_from_p1 */
+    volatile uint16_t P11;                                    /*  P11             */
+    volatile uint8_t   dummy3580[2];                           /*                  */
+
+/* end of struct st_gpio_from_p1 */
+    volatile uint8_t   dummy3581[212];                         /*                  */
+
+/* #define GPIO_PSRn_COUNT (11) */
+    volatile uint32_t  PSR1;                                   /*  PSR1            */
+    volatile uint32_t  PSR2;                                   /*  PSR2            */
+    volatile uint32_t  PSR3;                                   /*  PSR3            */
+    volatile uint32_t  PSR4;                                   /*  PSR4            */
+    volatile uint32_t  PSR5;                                   /*  PSR5            */
+    volatile uint32_t  PSR6;                                   /*  PSR6            */
+    volatile uint32_t  PSR7;                                   /*  PSR7            */
+    volatile uint32_t  PSR8;                                   /*  PSR8            */
+    volatile uint32_t  PSR9;                                   /*  PSR9            */
+    volatile uint32_t  PSR10;                                  /*  PSR10           */
+    volatile uint32_t  PSR11;                                  /*  PSR11           */
+    volatile uint8_t   dummy359[208];                          /*                  */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR0;                                   /*  PPR0            */
+    volatile uint8_t   dummy360[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR1;                                   /*  PPR1            */
+    volatile uint8_t   dummy361[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR2;                                   /*  PPR2            */
+    volatile uint8_t   dummy362[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR3;                                   /*  PPR3            */
+    volatile uint8_t   dummy363[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR4;                                   /*  PPR4            */
+    volatile uint8_t   dummy364[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR5;                                   /*  PPR5            */
+    volatile uint8_t   dummy365[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR6;                                   /*  PPR6            */
+    volatile uint8_t   dummy366[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR7;                                   /*  PPR7            */
+    volatile uint8_t   dummy367[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR8;                                   /*  PPR8            */
+    volatile uint8_t   dummy368[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR9;                                   /*  PPR9            */
+    volatile uint8_t   dummy369[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR10;                                  /*  PPR10           */
+    volatile uint8_t   dummy370[2];                            /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+
+/* start of struct st_gpio_from_ppr0 */
+    volatile uint16_t PPR11;                                  /*  PPR11           */
+    volatile uint8_t   dummy3710[2];                           /*                  */
+
+/* end of struct st_gpio_from_ppr0 */
+    volatile uint8_t   dummy3711[212];                         /*                  */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM1;                                    /*  PM1             */
+    volatile uint8_t   dummy372[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM2;                                    /*  PM2             */
+    volatile uint8_t   dummy373[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM3;                                    /*  PM3             */
+    volatile uint8_t   dummy374[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM4;                                    /*  PM4             */
+    volatile uint8_t   dummy375[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM5;                                    /*  PM5             */
+    volatile uint8_t   dummy376[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM6;                                    /*  PM6             */
+    volatile uint8_t   dummy377[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM7;                                    /*  PM7             */
+    volatile uint8_t   dummy378[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM8;                                    /*  PM8             */
+    volatile uint8_t   dummy379[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM9;                                    /*  PM9             */
+    volatile uint8_t   dummy380[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM10;                                   /*  PM10            */
+    volatile uint8_t   dummy381[2];                            /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+
+/* start of struct st_gpio_from_pm1 */
+    volatile uint16_t PM11;                                   /*  PM11            */
+    volatile uint8_t   dummy3820[2];                           /*                  */
+
+/* end of struct st_gpio_from_pm1 */
+    volatile uint8_t   dummy3821[208];                         /*                  */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC0;                                   /*  PMC0            */
+    volatile uint8_t   dummy383[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC1;                                   /*  PMC1            */
+    volatile uint8_t   dummy384[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC2;                                   /*  PMC2            */
+    volatile uint8_t   dummy385[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC3;                                   /*  PMC3            */
+    volatile uint8_t   dummy386[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC4;                                   /*  PMC4            */
+    volatile uint8_t   dummy387[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC5;                                   /*  PMC5            */
+    volatile uint8_t   dummy388[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC6;                                   /*  PMC6            */
+    volatile uint8_t   dummy389[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC7;                                   /*  PMC7            */
+    volatile uint8_t   dummy390[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC8;                                   /*  PMC8            */
+    volatile uint8_t   dummy391[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC9;                                   /*  PMC9            */
+    volatile uint8_t   dummy392[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC10;                                  /*  PMC10           */
+    volatile uint8_t   dummy393[2];                            /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+
+/* start of struct st_gpio_from_pmc0 */
+    volatile uint16_t PMC11;                                  /*  PMC11           */
+    volatile uint8_t   dummy3940[2];                           /*                  */
+
+/* end of struct st_gpio_from_pmc0 */
+    volatile uint8_t   dummy3941[212];                         /*                  */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC1;                                   /*  PFC1            */
+    volatile uint8_t   dummy395[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC2;                                   /*  PFC2            */
+    volatile uint8_t   dummy396[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC3;                                   /*  PFC3            */
+    volatile uint8_t   dummy397[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC4;                                   /*  PFC4            */
+    volatile uint8_t   dummy398[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC5;                                   /*  PFC5            */
+    volatile uint8_t   dummy399[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC6;                                   /*  PFC6            */
+    volatile uint8_t   dummy400[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC7;                                   /*  PFC7            */
+    volatile uint8_t   dummy401[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC8;                                   /*  PFC8            */
+    volatile uint8_t   dummy402[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC9;                                   /*  PFC9            */
+    volatile uint8_t   dummy403[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC10;                                  /*  PFC10           */
+    volatile uint8_t   dummy404[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+
+/* start of struct st_gpio_from_pfc1 */
+    volatile uint16_t PFC11;                                  /*  PFC11           */
+    volatile uint8_t   dummy4050[2];                           /*                  */
+
+/* end of struct st_gpio_from_pfc1 */
+    volatile uint8_t   dummy4051[212];                         /*                  */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE1;                                  /*  PFCE1           */
+    volatile uint8_t   dummy406[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE2;                                  /*  PFCE2           */
+    volatile uint8_t   dummy407[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE3;                                  /*  PFCE3           */
+    volatile uint8_t   dummy408[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE4;                                  /*  PFCE4           */
+    volatile uint8_t   dummy409[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE5;                                  /*  PFCE5           */
+    volatile uint8_t   dummy410[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE6;                                  /*  PFCE6           */
+    volatile uint8_t   dummy411[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE7;                                  /*  PFCE7           */
+    volatile uint8_t   dummy412[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE8;                                  /*  PFCE8           */
+    volatile uint8_t   dummy413[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE9;                                  /*  PFCE9           */
+    volatile uint8_t   dummy414[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE10;                                 /*  PFCE10          */
+    volatile uint8_t   dummy415[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+
+/* start of struct st_gpio_from_pfce1 */
+    volatile uint16_t PFCE11;                                 /*  PFCE11          */
+    volatile uint8_t   dummy4160[2];                           /*                  */
+
+/* end of struct st_gpio_from_pfce1 */
+    volatile uint8_t   dummy4161[212];                         /*                  */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT1;                                  /*  PNOT1           */
+    volatile uint8_t   dummy417[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT2;                                  /*  PNOT2           */
+    volatile uint8_t   dummy418[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT3;                                  /*  PNOT3           */
+    volatile uint8_t   dummy419[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT4;                                  /*  PNOT4           */
+    volatile uint8_t   dummy420[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT5;                                  /*  PNOT5           */
+    volatile uint8_t   dummy421[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT6;                                  /*  PNOT6           */
+    volatile uint8_t   dummy422[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT7;                                  /*  PNOT7           */
+    volatile uint8_t   dummy423[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT8;                                  /*  PNOT8           */
+    volatile uint8_t   dummy424[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT9;                                  /*  PNOT9           */
+    volatile uint8_t   dummy425[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT10;                                 /*  PNOT10          */
+    volatile uint8_t   dummy426[2];                            /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+
+/* start of struct st_gpio_from_pnot1 */
+    volatile uint16_t PNOT11;                                 /*  PNOT11          */
+    volatile uint8_t   dummy4270[2];                           /*                  */
+
+/* end of struct st_gpio_from_pnot1 */
+    volatile uint8_t   dummy4271[212];                         /*                  */
+
+/* #define GPIO_PMSRn_COUNT (11) */
+    volatile uint32_t  PMSR1;                                  /*  PMSR1           */
+    volatile uint32_t  PMSR2;                                  /*  PMSR2           */
+    volatile uint32_t  PMSR3;                                  /*  PMSR3           */
+    volatile uint32_t  PMSR4;                                  /*  PMSR4           */
+    volatile uint32_t  PMSR5;                                  /*  PMSR5           */
+    volatile uint32_t  PMSR6;                                  /*  PMSR6           */
+    volatile uint32_t  PMSR7;                                  /*  PMSR7           */
+    volatile uint32_t  PMSR8;                                  /*  PMSR8           */
+    volatile uint32_t  PMSR9;                                  /*  PMSR9           */
+    volatile uint32_t  PMSR10;                                 /*  PMSR10          */
+    volatile uint32_t  PMSR11;                                 /*  PMSR11          */
+    volatile uint8_t   dummy428[208];                          /*                  */
+
+/* #define GPIO_PMCSRn_COUNT (12) */
+    volatile uint32_t  PMCSR0;                                 /*  PMCSR0          */
+    volatile uint32_t  PMCSR1;                                 /*  PMCSR1          */
+    volatile uint32_t  PMCSR2;                                 /*  PMCSR2          */
+    volatile uint32_t  PMCSR3;                                 /*  PMCSR3          */
+    volatile uint32_t  PMCSR4;                                 /*  PMCSR4          */
+    volatile uint32_t  PMCSR5;                                 /*  PMCSR5          */
+    volatile uint32_t  PMCSR6;                                 /*  PMCSR6          */
+    volatile uint32_t  PMCSR7;                                 /*  PMCSR7          */
+    volatile uint32_t  PMCSR8;                                 /*  PMCSR8          */
+    volatile uint32_t  PMCSR9;                                 /*  PMCSR9          */
+    volatile uint32_t  PMCSR10;                                /*  PMCSR10         */
+    volatile uint32_t  PMCSR11;                                /*  PMCSR11         */
+    volatile uint8_t   dummy429[212];                          /*                  */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE1;                                 /*  PFCAE1          */
+    volatile uint8_t   dummy430[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE2;                                 /*  PFCAE2          */
+    volatile uint8_t   dummy431[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE3;                                 /*  PFCAE3          */
+    volatile uint8_t   dummy432[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE4;                                 /*  PFCAE4          */
+    volatile uint8_t   dummy433[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE5;                                 /*  PFCAE5          */
+    volatile uint8_t   dummy434[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE6;                                 /*  PFCAE6          */
+    volatile uint8_t   dummy435[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE7;                                 /*  PFCAE7          */
+    volatile uint8_t   dummy436[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE8;                                 /*  PFCAE8          */
+    volatile uint8_t   dummy437[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE9;                                 /*  PFCAE9          */
+    volatile uint8_t   dummy438[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE10;                                /*  PFCAE10         */
+    volatile uint8_t   dummy439[2];                            /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+
+/* start of struct st_gpio_from_pfcae1 */
+    volatile uint16_t PFCAE11;                                /*  PFCAE11         */
+    volatile uint8_t   dummy4400[2];                           /*                  */
+
+/* end of struct st_gpio_from_pfcae1 */
+    volatile uint8_t   dummy4401[464];                         /*                  */
+    volatile uint32_t  SNCR;                                   /*  SNCR            */
+    volatile uint8_t   dummy441[13308];                        /*                  */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC0;                                  /*  PIBC0           */
+    volatile uint8_t   dummy442[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC1;                                  /*  PIBC1           */
+    volatile uint8_t   dummy443[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC2;                                  /*  PIBC2           */
+    volatile uint8_t   dummy444[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC3;                                  /*  PIBC3           */
+    volatile uint8_t   dummy445[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC4;                                  /*  PIBC4           */
+    volatile uint8_t   dummy446[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC5;                                  /*  PIBC5           */
+    volatile uint8_t   dummy447[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC6;                                  /*  PIBC6           */
+    volatile uint8_t   dummy448[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC7;                                  /*  PIBC7           */
+    volatile uint8_t   dummy449[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC8;                                  /*  PIBC8           */
+    volatile uint8_t   dummy450[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC9;                                  /*  PIBC9           */
+    volatile uint8_t   dummy451[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC10;                                 /*  PIBC10          */
+    volatile uint8_t   dummy452[2];                            /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+
+/* start of struct st_gpio_from_pibc1 */
+    volatile uint16_t PIBC11;                                 /*  PIBC11          */
+    volatile uint8_t   dummy4530[2];                           /*                  */
+
+/* end of struct st_gpio_from_pibc1 */
+    volatile uint8_t   dummy4531[212];                         /*                  */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC1;                                  /*  PBDC1           */
+    volatile uint8_t   dummy454[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC2;                                  /*  PBDC2           */
+    volatile uint8_t   dummy455[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC3;                                  /*  PBDC3           */
+    volatile uint8_t   dummy456[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC4;                                  /*  PBDC4           */
+    volatile uint8_t   dummy457[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC5;                                  /*  PBDC5           */
+    volatile uint8_t   dummy458[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC6;                                  /*  PBDC6           */
+    volatile uint8_t   dummy459[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC7;                                  /*  PBDC7           */
+    volatile uint8_t   dummy460[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC8;                                  /*  PBDC8           */
+    volatile uint8_t   dummy461[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC9;                                  /*  PBDC9           */
+    volatile uint8_t   dummy462[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC10;                                 /*  PBDC10          */
+    volatile uint8_t   dummy463[2];                            /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+
+/* start of struct st_gpio_from_pbdc1 */
+    volatile uint16_t PBDC11;                                 /*  PBDC11          */
+    volatile uint8_t   dummy4640[2];                           /*                  */
+
+/* end of struct st_gpio_from_pbdc1 */
+    volatile uint8_t   dummy4641[212];                         /*                  */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC1;                                  /*  PIPC1           */
+    volatile uint8_t   dummy465[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC2;                                  /*  PIPC2           */
+    volatile uint8_t   dummy466[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC3;                                  /*  PIPC3           */
+    volatile uint8_t   dummy467[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC4;                                  /*  PIPC4           */
+    volatile uint8_t   dummy468[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC5;                                  /*  PIPC5           */
+    volatile uint8_t   dummy469[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC6;                                  /*  PIPC6           */
+    volatile uint8_t   dummy470[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC7;                                  /*  PIPC7           */
+    volatile uint8_t   dummy471[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC8;                                  /*  PIPC8           */
+    volatile uint8_t   dummy472[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC9;                                  /*  PIPC9           */
+    volatile uint8_t   dummy473[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC10;                                 /*  PIPC10          */
+    volatile uint8_t   dummy474[2];                            /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+
+/* start of struct st_gpio_from_pipc1 */
+    volatile uint16_t PIPC11;                                 /*  PIPC11          */
+    volatile uint8_t   dummy4750[2];                           /*                  */
+
+/* end of struct st_gpio_from_pipc1 */
+    volatile uint8_t   dummy4751[2288];                        /*                  */
+    volatile uint16_t JPPR0;                                  /*  JPPR0           */
+    volatile uint8_t   dummy476[30];                           /*                  */
+    volatile uint16_t JPMC0;                                  /*  JPMC0           */
+    volatile uint8_t   dummy477[78];                           /*                  */
+    volatile uint32_t  JPMCSR0;                                /*  JPMCSR0         */
+    volatile uint8_t   dummy478[876];                          /*                  */
+    volatile uint16_t JPIBC0;                                 /*  JPIBC0          */
+} r_io_gpio_t;
+
+
+typedef struct st_gpio_from_p1
+{
+ 
+    volatile uint16_t P1;                                     /*  P1              */
+    volatile uint8_t   dummy1[3];                              /*                  */
+} r_io_gpio_from_p1_t;
+
+
+typedef struct st_gpio_from_ppr0
+{
+ 
+    volatile uint16_t PPR0;                                   /*  PPR0            */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_ppr0_t;
+
+
+typedef struct st_gpio_from_pm1
+{
+ 
+    volatile uint16_t PM1;                                    /*  PM1             */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pm1_t;
+
+
+typedef struct st_gpio_from_pmc0
+{
+ 
+    volatile uint16_t PMC0;                                   /*  PMC0            */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pmc0_t;
+
+
+typedef struct st_gpio_from_pfc1
+{
+ 
+    volatile uint16_t PFC1;                                   /*  PFC1            */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pfc1_t;
+
+
+typedef struct st_gpio_from_pfce1
+{
+ 
+    volatile uint16_t PFCE1;                                  /*  PFCE1           */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pfce1_t;
+
+
+typedef struct st_gpio_from_pnot1
+{
+ 
+    volatile uint16_t PNOT1;                                  /*  PNOT1           */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pnot1_t;
+
+
+typedef struct st_gpio_from_pfcae1
+{
+ 
+    volatile uint16_t PFCAE1;                                 /*  PFCAE1          */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pfcae1_t;
+
+
+typedef struct st_gpio_from_pibc1
+{
+ 
+    volatile uint16_t PIBC1;                                  /*  PIBC1           */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pibc1_t;
+
+
+typedef struct st_gpio_from_pbdc1
+{
+ 
+    volatile uint16_t PBDC1;                                  /*  PBDC1           */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pbdc1_t;
+
+
+typedef struct st_gpio_from_pipc1
+{
+ 
+    volatile uint16_t PIPC1;                                  /*  PIPC1           */
+    volatile uint8_t   dummy1[2];                              /*                  */
+} r_io_gpio_from_pipc1_t;
+
+
+/* Channel array defines of GPIO (2)*/
+#ifdef  DECLARE_GPIO_FROM_PIPC1_ARRAY_CHANNELS
+volatile struct st_gpio_from_pipc1*  GPIO_FROM_PIPC1_ARRAY[ GPIO_FROM_PIPC1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PIPC1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PIPC1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PBDC1_ARRAY_CHANNELS
+volatile struct st_gpio_from_pbdc1*  GPIO_FROM_PBDC1_ARRAY[ GPIO_FROM_PBDC1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PBDC1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PBDC1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PIBC1_ARRAY_CHANNELS
+volatile struct st_gpio_from_pibc1*  GPIO_FROM_PIBC1_ARRAY[ GPIO_FROM_PIBC1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PIBC1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PIBC1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PFCAE1_ARRAY_CHANNELS
+volatile struct st_gpio_from_pfcae1*  GPIO_FROM_PFCAE1_ARRAY[ GPIO_FROM_PFCAE1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PFCAE1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PFCAE1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PNOT1_ARRAY_CHANNELS
+volatile struct st_gpio_from_pnot1*  GPIO_FROM_PNOT1_ARRAY[ GPIO_FROM_PNOT1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PNOT1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PNOT1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PFCE1_ARRAY_CHANNELS
+volatile struct st_gpio_from_pfce1*  GPIO_FROM_PFCE1_ARRAY[ GPIO_FROM_PFCE1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PFCE1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PFCE1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PFC1_ARRAY_CHANNELS
+volatile struct st_gpio_from_pfc1*  GPIO_FROM_PFC1_ARRAY[ GPIO_FROM_PFC1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PFC1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PFC1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PMC0_ARRAY_CHANNELS
+volatile struct st_gpio_from_pmc0*  GPIO_FROM_PMC0_ARRAY[ GPIO_FROM_PMC0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PMC0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PMC0_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PM1_ARRAY_CHANNELS
+volatile struct st_gpio_from_pm1*  GPIO_FROM_PM1_ARRAY[ GPIO_FROM_PM1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PM1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PM1_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_PPR0_ARRAY_CHANNELS
+volatile struct st_gpio_from_ppr0*  GPIO_FROM_PPR0_ARRAY[ GPIO_FROM_PPR0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_PPR0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_PPR0_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_GPIO_FROM_P1_ARRAY_CHANNELS
+volatile struct st_gpio_from_p1*  GPIO_FROM_P1_ARRAY[ GPIO_FROM_P1_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    GPIO_FROM_P1_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_GPIO_FROM_P1_ARRAY_CHANNELS */
+/* End of channel array defines of GPIO (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ieb_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ieb_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ieb_iodefine.h	(revision 429)
@@ -0,0 +1,128 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : ieb_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef IEB_IODEFINE_H
+#define IEB_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define IEB     (*(struct st_ieb     *)0xFCFEF000uL) /* IEB */
+
+
+#define IEBB0BCR (IEB.B0BCR)
+#define IEBB0PSR (IEB.B0PSR)
+#define IEBB0UAR (IEB.B0UAR)
+#define IEBB0SAR (IEB.B0SAR)
+#define IEBB0PAR (IEB.B0PAR)
+#define IEBB0RSA (IEB.B0RSA)
+#define IEBB0CDR (IEB.B0CDR)
+#define IEBB0TCD (IEB.B0TCD)
+#define IEBB0RCD (IEB.B0RCD)
+#define IEBB0DLR (IEB.B0DLR)
+#define IEBB0TDL (IEB.B0TDL)
+#define IEBB0RDL (IEB.B0RDL)
+#define IEBB0CKS (IEB.B0CKS)
+#define IEBB0TMS (IEB.B0TMS)
+#define IEBB0PCR (IEB.B0PCR)
+#define IEBB0BSR (IEB.B0BSR)
+#define IEBB0SSR (IEB.B0SSR)
+#define IEBB0USR (IEB.B0USR)
+#define IEBB0ISR (IEB.B0ISR)
+#define IEBB0ESR (IEB.B0ESR)
+#define IEBB0FSR (IEB.B0FSR)
+#define IEBB0SCR (IEB.B0SCR)
+#define IEBB0CCR (IEB.B0CCR)
+#define IEBB0STC0 (IEB.B0STC0)
+#define IEBB0STC1 (IEB.B0STC1)
+#define IEBB0DR (IEB.B0DR)
+
+
+typedef struct st_ieb
+{
+                                                           /* IEB              */
+    volatile uint8_t   B0BCR;                                  /*  B0BCR           */
+    volatile uint8_t   dummy495[3];                            /*                  */
+    volatile uint8_t   B0PSR;                                  /*  B0PSR           */
+    volatile uint8_t   dummy496[3];                            /*                  */
+    volatile uint16_t B0UAR;                                  /*  B0UAR           */
+    volatile uint8_t   dummy497[2];                            /*                  */
+    volatile uint16_t B0SAR;                                  /*  B0SAR           */
+    volatile uint8_t   dummy498[2];                            /*                  */
+    volatile uint16_t B0PAR;                                  /*  B0PAR           */
+    volatile uint8_t   dummy499[2];                            /*                  */
+    volatile uint16_t B0RSA;                                  /*  B0RSA           */
+    volatile uint8_t   dummy500[2];                            /*                  */
+    volatile uint8_t   B0CDR;                                  /*  B0CDR           */
+    volatile uint8_t   dummy501[3];                            /*                  */
+    volatile uint8_t   B0TCD;                                  /*  B0TCD           */
+    volatile uint8_t   dummy502[3];                            /*                  */
+    volatile uint8_t   B0RCD;                                  /*  B0RCD           */
+    volatile uint8_t   dummy503[3];                            /*                  */
+    volatile uint8_t   B0DLR;                                  /*  B0DLR           */
+    volatile uint8_t   dummy504[3];                            /*                  */
+    volatile uint8_t   B0TDL;                                  /*  B0TDL           */
+    volatile uint8_t   dummy505[3];                            /*                  */
+    volatile uint8_t   B0RDL;                                  /*  B0RDL           */
+    volatile uint8_t   dummy506[3];                            /*                  */
+    volatile uint8_t   B0CKS;                                  /*  B0CKS           */
+    volatile uint8_t   dummy507[3];                            /*                  */
+    volatile uint8_t   B0TMS;                                  /*  B0TMS           */
+    volatile uint8_t   dummy508[3];                            /*                  */
+    volatile uint8_t   B0PCR;                                  /*  B0PCR           */
+    volatile uint8_t   dummy509[3];                            /*                  */
+    volatile uint16_t B0BSR;                                  /*  B0BSR           */
+    volatile uint8_t   dummy510[2];                            /*                  */
+    volatile uint8_t   B0SSR;                                  /*  B0SSR           */
+    volatile uint8_t   dummy511[3];                            /*                  */
+    volatile uint8_t   B0USR;                                  /*  B0USR           */
+    volatile uint8_t   dummy512[3];                            /*                  */
+    volatile uint8_t   B0ISR;                                  /*  B0ISR           */
+    volatile uint8_t   dummy513[3];                            /*                  */
+    volatile uint8_t   B0ESR;                                  /*  B0ESR           */
+    volatile uint8_t   dummy514[3];                            /*                  */
+    volatile uint8_t   B0FSR;                                  /*  B0FSR           */
+    volatile uint8_t   dummy515[3];                            /*                  */
+    volatile uint8_t   B0SCR;                                  /*  B0SCR           */
+    volatile uint8_t   dummy516[3];                            /*                  */
+    volatile uint8_t   B0CCR;                                  /*  B0CCR           */
+    volatile uint8_t   dummy517[3];                            /*                  */
+    volatile uint8_t   B0STC0;                                 /*  B0STC0          */
+    volatile uint8_t   dummy518[3];                            /*                  */
+    volatile uint8_t   B0STC1;                                 /*  B0STC1          */
+    volatile uint8_t   dummy519[3];                            /*                  */
+    volatile uint8_t   B0DR;                                   /*  B0DR            */
+} r_io_ieb_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/inb_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/inb_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/inb_iodefine.h	(revision 429)
@@ -0,0 +1,112 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : inb_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef INB_IODEFINE_H
+#define INB_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define INB     (*(struct st_inb     *)0xFCFE1A00uL) /* INB */
+
+
+#define INBRMPR (INB.RMPR)
+#define INBAXIBUSCTL0 (INB.AXIBUSCTL0)
+#define INBAXIBUSCTL1 (INB.AXIBUSCTL1)
+#define INBAXIBUSCTL2 (INB.AXIBUSCTL2)
+#define INBAXIBUSCTL3 (INB.AXIBUSCTL3)
+#define INBAXIBUSCTL4 (INB.AXIBUSCTL4)
+#define INBAXIBUSCTL5 (INB.AXIBUSCTL5)
+#define INBAXIBUSCTL6 (INB.AXIBUSCTL6)
+#define INBAXIBUSCTL7 (INB.AXIBUSCTL7)
+#define INBAXIBUSCTL8 (INB.AXIBUSCTL8)
+#define INBAXIBUSCTL9 (INB.AXIBUSCTL9)
+#define INBAXIBUSCTL10 (INB.AXIBUSCTL10)
+#define INBAXIRERRCTL0 (INB.AXIRERRCTL0)
+#define INBAXIRERRCTL1 (INB.AXIRERRCTL1)
+#define INBAXIRERRCTL2 (INB.AXIRERRCTL2)
+#define INBAXIRERRCTL3 (INB.AXIRERRCTL3)
+#define INBAXIRERRST0 (INB.AXIRERRST0)
+#define INBAXIRERRST1 (INB.AXIRERRST1)
+#define INBAXIRERRST2 (INB.AXIRERRST2)
+#define INBAXIRERRST3 (INB.AXIRERRST3)
+#define INBAXIRERRCLR0 (INB.AXIRERRCLR0)
+#define INBAXIRERRCLR1 (INB.AXIRERRCLR1)
+#define INBAXIRERRCLR2 (INB.AXIRERRCLR2)
+#define INBAXIRERRCLR3 (INB.AXIRERRCLR3)
+
+#define INB_AXIBUSCTLn_COUNT (11)
+#define INB_AXIRERRCTLn_COUNT (4)
+#define INB_AXIRERRSTn_COUNT (4)
+#define INB_AXIRERRCLRn_COUNT (4)
+
+
+typedef struct st_inb
+{
+                                                           /* INB              */
+    volatile uint32_t  RMPR;                                   /*  RMPR            */
+
+/* #define INB_AXIBUSCTLn_COUNT (11) */
+    volatile uint32_t  AXIBUSCTL0;                             /*  AXIBUSCTL0      */
+    volatile uint32_t  AXIBUSCTL1;                             /*  AXIBUSCTL1      */
+    volatile uint32_t  AXIBUSCTL2;                             /*  AXIBUSCTL2      */
+    volatile uint32_t  AXIBUSCTL3;                             /*  AXIBUSCTL3      */
+    volatile uint32_t  AXIBUSCTL4;                             /*  AXIBUSCTL4      */
+    volatile uint32_t  AXIBUSCTL5;                             /*  AXIBUSCTL5      */
+    volatile uint32_t  AXIBUSCTL6;                             /*  AXIBUSCTL6      */
+    volatile uint32_t  AXIBUSCTL7;                             /*  AXIBUSCTL7      */
+    volatile uint32_t  AXIBUSCTL8;                             /*  AXIBUSCTL8      */
+    volatile uint32_t  AXIBUSCTL9;                             /*  AXIBUSCTL9      */
+    volatile uint32_t  AXIBUSCTL10;                            /*  AXIBUSCTL10     */
+
+/* #define INB_AXIRERRCTLn_COUNT (4) */
+    volatile uint32_t  AXIRERRCTL0;                            /*  AXIRERRCTL0     */
+    volatile uint32_t  AXIRERRCTL1;                            /*  AXIRERRCTL1     */
+    volatile uint32_t  AXIRERRCTL2;                            /*  AXIRERRCTL2     */
+    volatile uint32_t  AXIRERRCTL3;                            /*  AXIRERRCTL3     */
+
+/* #define INB_AXIRERRSTn_COUNT (4) */
+    volatile uint32_t  AXIRERRST0;                             /*  AXIRERRST0      */
+    volatile uint32_t  AXIRERRST1;                             /*  AXIRERRST1      */
+    volatile uint32_t  AXIRERRST2;                             /*  AXIRERRST2      */
+    volatile uint32_t  AXIRERRST3;                             /*  AXIRERRST3      */
+
+/* #define INB_AXIRERRCLRn_COUNT (4) */
+    volatile uint32_t  AXIRERRCLR0;                            /*  AXIRERRCLR0     */
+    volatile uint32_t  AXIRERRCLR1;                            /*  AXIRERRCLR1     */
+    volatile uint32_t  AXIRERRCLR2;                            /*  AXIRERRCLR2     */
+    volatile uint32_t  AXIRERRCLR3;                            /*  AXIRERRCLR3     */
+} r_io_inb_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/intc_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/intc_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/intc_iodefine.h	(revision 429)
@@ -0,0 +1,1054 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : intc_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef INTC_IODEFINE_H
+#define INTC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define INTC    (*(struct st_intc    *)0xE8201000uL) /* INTC */
+
+
+#define INTCICDDCR (INTC.ICDDCR)
+#define INTCICDICTR (INTC.ICDICTR)
+#define INTCICDIIDR (INTC.ICDIIDR)
+#define INTCICDISR0 (INTC.ICDISR0)
+#define INTCICDISR1 (INTC.ICDISR1)
+#define INTCICDISR2 (INTC.ICDISR2)
+#define INTCICDISR3 (INTC.ICDISR3)
+#define INTCICDISR4 (INTC.ICDISR4)
+#define INTCICDISR5 (INTC.ICDISR5)
+#define INTCICDISR6 (INTC.ICDISR6)
+#define INTCICDISR7 (INTC.ICDISR7)
+#define INTCICDISR8 (INTC.ICDISR8)
+#define INTCICDISR9 (INTC.ICDISR9)
+#define INTCICDISR10 (INTC.ICDISR10)
+#define INTCICDISR11 (INTC.ICDISR11)
+#define INTCICDISR12 (INTC.ICDISR12)
+#define INTCICDISR13 (INTC.ICDISR13)
+#define INTCICDISR14 (INTC.ICDISR14)
+#define INTCICDISR15 (INTC.ICDISR15)
+#define INTCICDISR16 (INTC.ICDISR16)
+#define INTCICDISR17 (INTC.ICDISR17)
+#define INTCICDISR18 (INTC.ICDISR18)
+#define INTCICDISER0 (INTC.ICDISER0)
+#define INTCICDISER1 (INTC.ICDISER1)
+#define INTCICDISER2 (INTC.ICDISER2)
+#define INTCICDISER3 (INTC.ICDISER3)
+#define INTCICDISER4 (INTC.ICDISER4)
+#define INTCICDISER5 (INTC.ICDISER5)
+#define INTCICDISER6 (INTC.ICDISER6)
+#define INTCICDISER7 (INTC.ICDISER7)
+#define INTCICDISER8 (INTC.ICDISER8)
+#define INTCICDISER9 (INTC.ICDISER9)
+#define INTCICDISER10 (INTC.ICDISER10)
+#define INTCICDISER11 (INTC.ICDISER11)
+#define INTCICDISER12 (INTC.ICDISER12)
+#define INTCICDISER13 (INTC.ICDISER13)
+#define INTCICDISER14 (INTC.ICDISER14)
+#define INTCICDISER15 (INTC.ICDISER15)
+#define INTCICDISER16 (INTC.ICDISER16)
+#define INTCICDISER17 (INTC.ICDISER17)
+#define INTCICDISER18 (INTC.ICDISER18)
+#define INTCICDICER0 (INTC.ICDICER0)
+#define INTCICDICER1 (INTC.ICDICER1)
+#define INTCICDICER2 (INTC.ICDICER2)
+#define INTCICDICER3 (INTC.ICDICER3)
+#define INTCICDICER4 (INTC.ICDICER4)
+#define INTCICDICER5 (INTC.ICDICER5)
+#define INTCICDICER6 (INTC.ICDICER6)
+#define INTCICDICER7 (INTC.ICDICER7)
+#define INTCICDICER8 (INTC.ICDICER8)
+#define INTCICDICER9 (INTC.ICDICER9)
+#define INTCICDICER10 (INTC.ICDICER10)
+#define INTCICDICER11 (INTC.ICDICER11)
+#define INTCICDICER12 (INTC.ICDICER12)
+#define INTCICDICER13 (INTC.ICDICER13)
+#define INTCICDICER14 (INTC.ICDICER14)
+#define INTCICDICER15 (INTC.ICDICER15)
+#define INTCICDICER16 (INTC.ICDICER16)
+#define INTCICDICER17 (INTC.ICDICER17)
+#define INTCICDICER18 (INTC.ICDICER18)
+#define INTCICDISPR0 (INTC.ICDISPR0)
+#define INTCICDISPR1 (INTC.ICDISPR1)
+#define INTCICDISPR2 (INTC.ICDISPR2)
+#define INTCICDISPR3 (INTC.ICDISPR3)
+#define INTCICDISPR4 (INTC.ICDISPR4)
+#define INTCICDISPR5 (INTC.ICDISPR5)
+#define INTCICDISPR6 (INTC.ICDISPR6)
+#define INTCICDISPR7 (INTC.ICDISPR7)
+#define INTCICDISPR8 (INTC.ICDISPR8)
+#define INTCICDISPR9 (INTC.ICDISPR9)
+#define INTCICDISPR10 (INTC.ICDISPR10)
+#define INTCICDISPR11 (INTC.ICDISPR11)
+#define INTCICDISPR12 (INTC.ICDISPR12)
+#define INTCICDISPR13 (INTC.ICDISPR13)
+#define INTCICDISPR14 (INTC.ICDISPR14)
+#define INTCICDISPR15 (INTC.ICDISPR15)
+#define INTCICDISPR16 (INTC.ICDISPR16)
+#define INTCICDISPR17 (INTC.ICDISPR17)
+#define INTCICDISPR18 (INTC.ICDISPR18)
+#define INTCICDICPR0 (INTC.ICDICPR0)
+#define INTCICDICPR1 (INTC.ICDICPR1)
+#define INTCICDICPR2 (INTC.ICDICPR2)
+#define INTCICDICPR3 (INTC.ICDICPR3)
+#define INTCICDICPR4 (INTC.ICDICPR4)
+#define INTCICDICPR5 (INTC.ICDICPR5)
+#define INTCICDICPR6 (INTC.ICDICPR6)
+#define INTCICDICPR7 (INTC.ICDICPR7)
+#define INTCICDICPR8 (INTC.ICDICPR8)
+#define INTCICDICPR9 (INTC.ICDICPR9)
+#define INTCICDICPR10 (INTC.ICDICPR10)
+#define INTCICDICPR11 (INTC.ICDICPR11)
+#define INTCICDICPR12 (INTC.ICDICPR12)
+#define INTCICDICPR13 (INTC.ICDICPR13)
+#define INTCICDICPR14 (INTC.ICDICPR14)
+#define INTCICDICPR15 (INTC.ICDICPR15)
+#define INTCICDICPR16 (INTC.ICDICPR16)
+#define INTCICDICPR17 (INTC.ICDICPR17)
+#define INTCICDICPR18 (INTC.ICDICPR18)
+#define INTCICDABR0 (INTC.ICDABR0)
+#define INTCICDABR1 (INTC.ICDABR1)
+#define INTCICDABR2 (INTC.ICDABR2)
+#define INTCICDABR3 (INTC.ICDABR3)
+#define INTCICDABR4 (INTC.ICDABR4)
+#define INTCICDABR5 (INTC.ICDABR5)
+#define INTCICDABR6 (INTC.ICDABR6)
+#define INTCICDABR7 (INTC.ICDABR7)
+#define INTCICDABR8 (INTC.ICDABR8)
+#define INTCICDABR9 (INTC.ICDABR9)
+#define INTCICDABR10 (INTC.ICDABR10)
+#define INTCICDABR11 (INTC.ICDABR11)
+#define INTCICDABR12 (INTC.ICDABR12)
+#define INTCICDABR13 (INTC.ICDABR13)
+#define INTCICDABR14 (INTC.ICDABR14)
+#define INTCICDABR15 (INTC.ICDABR15)
+#define INTCICDABR16 (INTC.ICDABR16)
+#define INTCICDABR17 (INTC.ICDABR17)
+#define INTCICDABR18 (INTC.ICDABR18)
+#define INTCICDIPR0 (INTC.ICDIPR0)
+#define INTCICDIPR1 (INTC.ICDIPR1)
+#define INTCICDIPR2 (INTC.ICDIPR2)
+#define INTCICDIPR3 (INTC.ICDIPR3)
+#define INTCICDIPR4 (INTC.ICDIPR4)
+#define INTCICDIPR5 (INTC.ICDIPR5)
+#define INTCICDIPR6 (INTC.ICDIPR6)
+#define INTCICDIPR7 (INTC.ICDIPR7)
+#define INTCICDIPR8 (INTC.ICDIPR8)
+#define INTCICDIPR9 (INTC.ICDIPR9)
+#define INTCICDIPR10 (INTC.ICDIPR10)
+#define INTCICDIPR11 (INTC.ICDIPR11)
+#define INTCICDIPR12 (INTC.ICDIPR12)
+#define INTCICDIPR13 (INTC.ICDIPR13)
+#define INTCICDIPR14 (INTC.ICDIPR14)
+#define INTCICDIPR15 (INTC.ICDIPR15)
+#define INTCICDIPR16 (INTC.ICDIPR16)
+#define INTCICDIPR17 (INTC.ICDIPR17)
+#define INTCICDIPR18 (INTC.ICDIPR18)
+#define INTCICDIPR19 (INTC.ICDIPR19)
+#define INTCICDIPR20 (INTC.ICDIPR20)
+#define INTCICDIPR21 (INTC.ICDIPR21)
+#define INTCICDIPR22 (INTC.ICDIPR22)
+#define INTCICDIPR23 (INTC.ICDIPR23)
+#define INTCICDIPR24 (INTC.ICDIPR24)
+#define INTCICDIPR25 (INTC.ICDIPR25)
+#define INTCICDIPR26 (INTC.ICDIPR26)
+#define INTCICDIPR27 (INTC.ICDIPR27)
+#define INTCICDIPR28 (INTC.ICDIPR28)
+#define INTCICDIPR29 (INTC.ICDIPR29)
+#define INTCICDIPR30 (INTC.ICDIPR30)
+#define INTCICDIPR31 (INTC.ICDIPR31)
+#define INTCICDIPR32 (INTC.ICDIPR32)
+#define INTCICDIPR33 (INTC.ICDIPR33)
+#define INTCICDIPR34 (INTC.ICDIPR34)
+#define INTCICDIPR35 (INTC.ICDIPR35)
+#define INTCICDIPR36 (INTC.ICDIPR36)
+#define INTCICDIPR37 (INTC.ICDIPR37)
+#define INTCICDIPR38 (INTC.ICDIPR38)
+#define INTCICDIPR39 (INTC.ICDIPR39)
+#define INTCICDIPR40 (INTC.ICDIPR40)
+#define INTCICDIPR41 (INTC.ICDIPR41)
+#define INTCICDIPR42 (INTC.ICDIPR42)
+#define INTCICDIPR43 (INTC.ICDIPR43)
+#define INTCICDIPR44 (INTC.ICDIPR44)
+#define INTCICDIPR45 (INTC.ICDIPR45)
+#define INTCICDIPR46 (INTC.ICDIPR46)
+#define INTCICDIPR47 (INTC.ICDIPR47)
+#define INTCICDIPR48 (INTC.ICDIPR48)
+#define INTCICDIPR49 (INTC.ICDIPR49)
+#define INTCICDIPR50 (INTC.ICDIPR50)
+#define INTCICDIPR51 (INTC.ICDIPR51)
+#define INTCICDIPR52 (INTC.ICDIPR52)
+#define INTCICDIPR53 (INTC.ICDIPR53)
+#define INTCICDIPR54 (INTC.ICDIPR54)
+#define INTCICDIPR55 (INTC.ICDIPR55)
+#define INTCICDIPR56 (INTC.ICDIPR56)
+#define INTCICDIPR57 (INTC.ICDIPR57)
+#define INTCICDIPR58 (INTC.ICDIPR58)
+#define INTCICDIPR59 (INTC.ICDIPR59)
+#define INTCICDIPR60 (INTC.ICDIPR60)
+#define INTCICDIPR61 (INTC.ICDIPR61)
+#define INTCICDIPR62 (INTC.ICDIPR62)
+#define INTCICDIPR63 (INTC.ICDIPR63)
+#define INTCICDIPR64 (INTC.ICDIPR64)
+#define INTCICDIPR65 (INTC.ICDIPR65)
+#define INTCICDIPR66 (INTC.ICDIPR66)
+#define INTCICDIPR67 (INTC.ICDIPR67)
+#define INTCICDIPR68 (INTC.ICDIPR68)
+#define INTCICDIPR69 (INTC.ICDIPR69)
+#define INTCICDIPR70 (INTC.ICDIPR70)
+#define INTCICDIPR71 (INTC.ICDIPR71)
+#define INTCICDIPR72 (INTC.ICDIPR72)
+#define INTCICDIPR73 (INTC.ICDIPR73)
+#define INTCICDIPR74 (INTC.ICDIPR74)
+#define INTCICDIPR75 (INTC.ICDIPR75)
+#define INTCICDIPR76 (INTC.ICDIPR76)
+#define INTCICDIPR77 (INTC.ICDIPR77)
+#define INTCICDIPR78 (INTC.ICDIPR78)
+#define INTCICDIPR79 (INTC.ICDIPR79)
+#define INTCICDIPR80 (INTC.ICDIPR80)
+#define INTCICDIPR81 (INTC.ICDIPR81)
+#define INTCICDIPR82 (INTC.ICDIPR82)
+#define INTCICDIPR83 (INTC.ICDIPR83)
+#define INTCICDIPR84 (INTC.ICDIPR84)
+#define INTCICDIPR85 (INTC.ICDIPR85)
+#define INTCICDIPR86 (INTC.ICDIPR86)
+#define INTCICDIPR87 (INTC.ICDIPR87)
+#define INTCICDIPR88 (INTC.ICDIPR88)
+#define INTCICDIPR89 (INTC.ICDIPR89)
+#define INTCICDIPR90 (INTC.ICDIPR90)
+#define INTCICDIPR91 (INTC.ICDIPR91)
+#define INTCICDIPR92 (INTC.ICDIPR92)
+#define INTCICDIPR93 (INTC.ICDIPR93)
+#define INTCICDIPR94 (INTC.ICDIPR94)
+#define INTCICDIPR95 (INTC.ICDIPR95)
+#define INTCICDIPR96 (INTC.ICDIPR96)
+#define INTCICDIPR97 (INTC.ICDIPR97)
+#define INTCICDIPR98 (INTC.ICDIPR98)
+#define INTCICDIPR99 (INTC.ICDIPR99)
+#define INTCICDIPR100 (INTC.ICDIPR100)
+#define INTCICDIPR101 (INTC.ICDIPR101)
+#define INTCICDIPR102 (INTC.ICDIPR102)
+#define INTCICDIPR103 (INTC.ICDIPR103)
+#define INTCICDIPR104 (INTC.ICDIPR104)
+#define INTCICDIPR105 (INTC.ICDIPR105)
+#define INTCICDIPR106 (INTC.ICDIPR106)
+#define INTCICDIPR107 (INTC.ICDIPR107)
+#define INTCICDIPR108 (INTC.ICDIPR108)
+#define INTCICDIPR109 (INTC.ICDIPR109)
+#define INTCICDIPR110 (INTC.ICDIPR110)
+#define INTCICDIPR111 (INTC.ICDIPR111)
+#define INTCICDIPR112 (INTC.ICDIPR112)
+#define INTCICDIPR113 (INTC.ICDIPR113)
+#define INTCICDIPR114 (INTC.ICDIPR114)
+#define INTCICDIPR115 (INTC.ICDIPR115)
+#define INTCICDIPR116 (INTC.ICDIPR116)
+#define INTCICDIPR117 (INTC.ICDIPR117)
+#define INTCICDIPR118 (INTC.ICDIPR118)
+#define INTCICDIPR119 (INTC.ICDIPR119)
+#define INTCICDIPR120 (INTC.ICDIPR120)
+#define INTCICDIPR121 (INTC.ICDIPR121)
+#define INTCICDIPR122 (INTC.ICDIPR122)
+#define INTCICDIPR123 (INTC.ICDIPR123)
+#define INTCICDIPR124 (INTC.ICDIPR124)
+#define INTCICDIPR125 (INTC.ICDIPR125)
+#define INTCICDIPR126 (INTC.ICDIPR126)
+#define INTCICDIPR127 (INTC.ICDIPR127)
+#define INTCICDIPR128 (INTC.ICDIPR128)
+#define INTCICDIPR129 (INTC.ICDIPR129)
+#define INTCICDIPR130 (INTC.ICDIPR130)
+#define INTCICDIPR131 (INTC.ICDIPR131)
+#define INTCICDIPR132 (INTC.ICDIPR132)
+#define INTCICDIPR133 (INTC.ICDIPR133)
+#define INTCICDIPR134 (INTC.ICDIPR134)
+#define INTCICDIPR135 (INTC.ICDIPR135)
+#define INTCICDIPR136 (INTC.ICDIPR136)
+#define INTCICDIPR137 (INTC.ICDIPR137)
+#define INTCICDIPR138 (INTC.ICDIPR138)
+#define INTCICDIPR139 (INTC.ICDIPR139)
+#define INTCICDIPR140 (INTC.ICDIPR140)
+#define INTCICDIPR141 (INTC.ICDIPR141)
+#define INTCICDIPR142 (INTC.ICDIPR142)
+#define INTCICDIPR143 (INTC.ICDIPR143)
+#define INTCICDIPR144 (INTC.ICDIPR144)
+#define INTCICDIPR145 (INTC.ICDIPR145)
+#define INTCICDIPR146 (INTC.ICDIPR146)
+#define INTCICDIPTR0 (INTC.ICDIPTR0)
+#define INTCICDIPTR1 (INTC.ICDIPTR1)
+#define INTCICDIPTR2 (INTC.ICDIPTR2)
+#define INTCICDIPTR3 (INTC.ICDIPTR3)
+#define INTCICDIPTR4 (INTC.ICDIPTR4)
+#define INTCICDIPTR5 (INTC.ICDIPTR5)
+#define INTCICDIPTR6 (INTC.ICDIPTR6)
+#define INTCICDIPTR7 (INTC.ICDIPTR7)
+#define INTCICDIPTR8 (INTC.ICDIPTR8)
+#define INTCICDIPTR9 (INTC.ICDIPTR9)
+#define INTCICDIPTR10 (INTC.ICDIPTR10)
+#define INTCICDIPTR11 (INTC.ICDIPTR11)
+#define INTCICDIPTR12 (INTC.ICDIPTR12)
+#define INTCICDIPTR13 (INTC.ICDIPTR13)
+#define INTCICDIPTR14 (INTC.ICDIPTR14)
+#define INTCICDIPTR15 (INTC.ICDIPTR15)
+#define INTCICDIPTR16 (INTC.ICDIPTR16)
+#define INTCICDIPTR17 (INTC.ICDIPTR17)
+#define INTCICDIPTR18 (INTC.ICDIPTR18)
+#define INTCICDIPTR19 (INTC.ICDIPTR19)
+#define INTCICDIPTR20 (INTC.ICDIPTR20)
+#define INTCICDIPTR21 (INTC.ICDIPTR21)
+#define INTCICDIPTR22 (INTC.ICDIPTR22)
+#define INTCICDIPTR23 (INTC.ICDIPTR23)
+#define INTCICDIPTR24 (INTC.ICDIPTR24)
+#define INTCICDIPTR25 (INTC.ICDIPTR25)
+#define INTCICDIPTR26 (INTC.ICDIPTR26)
+#define INTCICDIPTR27 (INTC.ICDIPTR27)
+#define INTCICDIPTR28 (INTC.ICDIPTR28)
+#define INTCICDIPTR29 (INTC.ICDIPTR29)
+#define INTCICDIPTR30 (INTC.ICDIPTR30)
+#define INTCICDIPTR31 (INTC.ICDIPTR31)
+#define INTCICDIPTR32 (INTC.ICDIPTR32)
+#define INTCICDIPTR33 (INTC.ICDIPTR33)
+#define INTCICDIPTR34 (INTC.ICDIPTR34)
+#define INTCICDIPTR35 (INTC.ICDIPTR35)
+#define INTCICDIPTR36 (INTC.ICDIPTR36)
+#define INTCICDIPTR37 (INTC.ICDIPTR37)
+#define INTCICDIPTR38 (INTC.ICDIPTR38)
+#define INTCICDIPTR39 (INTC.ICDIPTR39)
+#define INTCICDIPTR40 (INTC.ICDIPTR40)
+#define INTCICDIPTR41 (INTC.ICDIPTR41)
+#define INTCICDIPTR42 (INTC.ICDIPTR42)
+#define INTCICDIPTR43 (INTC.ICDIPTR43)
+#define INTCICDIPTR44 (INTC.ICDIPTR44)
+#define INTCICDIPTR45 (INTC.ICDIPTR45)
+#define INTCICDIPTR46 (INTC.ICDIPTR46)
+#define INTCICDIPTR47 (INTC.ICDIPTR47)
+#define INTCICDIPTR48 (INTC.ICDIPTR48)
+#define INTCICDIPTR49 (INTC.ICDIPTR49)
+#define INTCICDIPTR50 (INTC.ICDIPTR50)
+#define INTCICDIPTR51 (INTC.ICDIPTR51)
+#define INTCICDIPTR52 (INTC.ICDIPTR52)
+#define INTCICDIPTR53 (INTC.ICDIPTR53)
+#define INTCICDIPTR54 (INTC.ICDIPTR54)
+#define INTCICDIPTR55 (INTC.ICDIPTR55)
+#define INTCICDIPTR56 (INTC.ICDIPTR56)
+#define INTCICDIPTR57 (INTC.ICDIPTR57)
+#define INTCICDIPTR58 (INTC.ICDIPTR58)
+#define INTCICDIPTR59 (INTC.ICDIPTR59)
+#define INTCICDIPTR60 (INTC.ICDIPTR60)
+#define INTCICDIPTR61 (INTC.ICDIPTR61)
+#define INTCICDIPTR62 (INTC.ICDIPTR62)
+#define INTCICDIPTR63 (INTC.ICDIPTR63)
+#define INTCICDIPTR64 (INTC.ICDIPTR64)
+#define INTCICDIPTR65 (INTC.ICDIPTR65)
+#define INTCICDIPTR66 (INTC.ICDIPTR66)
+#define INTCICDIPTR67 (INTC.ICDIPTR67)
+#define INTCICDIPTR68 (INTC.ICDIPTR68)
+#define INTCICDIPTR69 (INTC.ICDIPTR69)
+#define INTCICDIPTR70 (INTC.ICDIPTR70)
+#define INTCICDIPTR71 (INTC.ICDIPTR71)
+#define INTCICDIPTR72 (INTC.ICDIPTR72)
+#define INTCICDIPTR73 (INTC.ICDIPTR73)
+#define INTCICDIPTR74 (INTC.ICDIPTR74)
+#define INTCICDIPTR75 (INTC.ICDIPTR75)
+#define INTCICDIPTR76 (INTC.ICDIPTR76)
+#define INTCICDIPTR77 (INTC.ICDIPTR77)
+#define INTCICDIPTR78 (INTC.ICDIPTR78)
+#define INTCICDIPTR79 (INTC.ICDIPTR79)
+#define INTCICDIPTR80 (INTC.ICDIPTR80)
+#define INTCICDIPTR81 (INTC.ICDIPTR81)
+#define INTCICDIPTR82 (INTC.ICDIPTR82)
+#define INTCICDIPTR83 (INTC.ICDIPTR83)
+#define INTCICDIPTR84 (INTC.ICDIPTR84)
+#define INTCICDIPTR85 (INTC.ICDIPTR85)
+#define INTCICDIPTR86 (INTC.ICDIPTR86)
+#define INTCICDIPTR87 (INTC.ICDIPTR87)
+#define INTCICDIPTR88 (INTC.ICDIPTR88)
+#define INTCICDIPTR89 (INTC.ICDIPTR89)
+#define INTCICDIPTR90 (INTC.ICDIPTR90)
+#define INTCICDIPTR91 (INTC.ICDIPTR91)
+#define INTCICDIPTR92 (INTC.ICDIPTR92)
+#define INTCICDIPTR93 (INTC.ICDIPTR93)
+#define INTCICDIPTR94 (INTC.ICDIPTR94)
+#define INTCICDIPTR95 (INTC.ICDIPTR95)
+#define INTCICDIPTR96 (INTC.ICDIPTR96)
+#define INTCICDIPTR97 (INTC.ICDIPTR97)
+#define INTCICDIPTR98 (INTC.ICDIPTR98)
+#define INTCICDIPTR99 (INTC.ICDIPTR99)
+#define INTCICDIPTR100 (INTC.ICDIPTR100)
+#define INTCICDIPTR101 (INTC.ICDIPTR101)
+#define INTCICDIPTR102 (INTC.ICDIPTR102)
+#define INTCICDIPTR103 (INTC.ICDIPTR103)
+#define INTCICDIPTR104 (INTC.ICDIPTR104)
+#define INTCICDIPTR105 (INTC.ICDIPTR105)
+#define INTCICDIPTR106 (INTC.ICDIPTR106)
+#define INTCICDIPTR107 (INTC.ICDIPTR107)
+#define INTCICDIPTR108 (INTC.ICDIPTR108)
+#define INTCICDIPTR109 (INTC.ICDIPTR109)
+#define INTCICDIPTR110 (INTC.ICDIPTR110)
+#define INTCICDIPTR111 (INTC.ICDIPTR111)
+#define INTCICDIPTR112 (INTC.ICDIPTR112)
+#define INTCICDIPTR113 (INTC.ICDIPTR113)
+#define INTCICDIPTR114 (INTC.ICDIPTR114)
+#define INTCICDIPTR115 (INTC.ICDIPTR115)
+#define INTCICDIPTR116 (INTC.ICDIPTR116)
+#define INTCICDIPTR117 (INTC.ICDIPTR117)
+#define INTCICDIPTR118 (INTC.ICDIPTR118)
+#define INTCICDIPTR119 (INTC.ICDIPTR119)
+#define INTCICDIPTR120 (INTC.ICDIPTR120)
+#define INTCICDIPTR121 (INTC.ICDIPTR121)
+#define INTCICDIPTR122 (INTC.ICDIPTR122)
+#define INTCICDIPTR123 (INTC.ICDIPTR123)
+#define INTCICDIPTR124 (INTC.ICDIPTR124)
+#define INTCICDIPTR125 (INTC.ICDIPTR125)
+#define INTCICDIPTR126 (INTC.ICDIPTR126)
+#define INTCICDIPTR127 (INTC.ICDIPTR127)
+#define INTCICDIPTR128 (INTC.ICDIPTR128)
+#define INTCICDIPTR129 (INTC.ICDIPTR129)
+#define INTCICDIPTR130 (INTC.ICDIPTR130)
+#define INTCICDIPTR131 (INTC.ICDIPTR131)
+#define INTCICDIPTR132 (INTC.ICDIPTR132)
+#define INTCICDIPTR133 (INTC.ICDIPTR133)
+#define INTCICDIPTR134 (INTC.ICDIPTR134)
+#define INTCICDIPTR135 (INTC.ICDIPTR135)
+#define INTCICDIPTR136 (INTC.ICDIPTR136)
+#define INTCICDIPTR137 (INTC.ICDIPTR137)
+#define INTCICDIPTR138 (INTC.ICDIPTR138)
+#define INTCICDIPTR139 (INTC.ICDIPTR139)
+#define INTCICDIPTR140 (INTC.ICDIPTR140)
+#define INTCICDIPTR141 (INTC.ICDIPTR141)
+#define INTCICDIPTR142 (INTC.ICDIPTR142)
+#define INTCICDIPTR143 (INTC.ICDIPTR143)
+#define INTCICDIPTR144 (INTC.ICDIPTR144)
+#define INTCICDIPTR145 (INTC.ICDIPTR145)
+#define INTCICDIPTR146 (INTC.ICDIPTR146)
+#define INTCICDICFR0 (INTC.ICDICFR0)
+#define INTCICDICFR1 (INTC.ICDICFR1)
+#define INTCICDICFR2 (INTC.ICDICFR2)
+#define INTCICDICFR3 (INTC.ICDICFR3)
+#define INTCICDICFR4 (INTC.ICDICFR4)
+#define INTCICDICFR5 (INTC.ICDICFR5)
+#define INTCICDICFR6 (INTC.ICDICFR6)
+#define INTCICDICFR7 (INTC.ICDICFR7)
+#define INTCICDICFR8 (INTC.ICDICFR8)
+#define INTCICDICFR9 (INTC.ICDICFR9)
+#define INTCICDICFR10 (INTC.ICDICFR10)
+#define INTCICDICFR11 (INTC.ICDICFR11)
+#define INTCICDICFR12 (INTC.ICDICFR12)
+#define INTCICDICFR13 (INTC.ICDICFR13)
+#define INTCICDICFR14 (INTC.ICDICFR14)
+#define INTCICDICFR15 (INTC.ICDICFR15)
+#define INTCICDICFR16 (INTC.ICDICFR16)
+#define INTCICDICFR17 (INTC.ICDICFR17)
+#define INTCICDICFR18 (INTC.ICDICFR18)
+#define INTCICDICFR19 (INTC.ICDICFR19)
+#define INTCICDICFR20 (INTC.ICDICFR20)
+#define INTCICDICFR21 (INTC.ICDICFR21)
+#define INTCICDICFR22 (INTC.ICDICFR22)
+#define INTCICDICFR23 (INTC.ICDICFR23)
+#define INTCICDICFR24 (INTC.ICDICFR24)
+#define INTCICDICFR25 (INTC.ICDICFR25)
+#define INTCICDICFR26 (INTC.ICDICFR26)
+#define INTCICDICFR27 (INTC.ICDICFR27)
+#define INTCICDICFR28 (INTC.ICDICFR28)
+#define INTCICDICFR29 (INTC.ICDICFR29)
+#define INTCICDICFR30 (INTC.ICDICFR30)
+#define INTCICDICFR31 (INTC.ICDICFR31)
+#define INTCICDICFR32 (INTC.ICDICFR32)
+#define INTCICDICFR33 (INTC.ICDICFR33)
+#define INTCICDICFR34 (INTC.ICDICFR34)
+#define INTCICDICFR35 (INTC.ICDICFR35)
+#define INTCICDICFR36 (INTC.ICDICFR36)
+#define INTCPPI_STATUS (INTC.PPI_STATUS)
+#define INTCSPI_STATUS0 (INTC.SPI_STATUS0)
+#define INTCSPI_STATUS1 (INTC.SPI_STATUS1)
+#define INTCSPI_STATUS2 (INTC.SPI_STATUS2)
+#define INTCSPI_STATUS3 (INTC.SPI_STATUS3)
+#define INTCSPI_STATUS4 (INTC.SPI_STATUS4)
+#define INTCSPI_STATUS5 (INTC.SPI_STATUS5)
+#define INTCSPI_STATUS6 (INTC.SPI_STATUS6)
+#define INTCSPI_STATUS7 (INTC.SPI_STATUS7)
+#define INTCSPI_STATUS8 (INTC.SPI_STATUS8)
+#define INTCSPI_STATUS9 (INTC.SPI_STATUS9)
+#define INTCSPI_STATUS10 (INTC.SPI_STATUS10)
+#define INTCSPI_STATUS11 (INTC.SPI_STATUS11)
+#define INTCSPI_STATUS12 (INTC.SPI_STATUS12)
+#define INTCSPI_STATUS13 (INTC.SPI_STATUS13)
+#define INTCSPI_STATUS14 (INTC.SPI_STATUS14)
+#define INTCSPI_STATUS15 (INTC.SPI_STATUS15)
+#define INTCSPI_STATUS16 (INTC.SPI_STATUS16)
+#define INTCICDSGIR (INTC.ICDSGIR)
+#define INTCICCICR (INTC.ICCICR)
+#define INTCICCPMR (INTC.ICCPMR)
+#define INTCICCBPR (INTC.ICCBPR)
+#define INTCICCIAR (INTC.ICCIAR)
+#define INTCICCEOIR (INTC.ICCEOIR)
+#define INTCICCRPR (INTC.ICCRPR)
+#define INTCICCHPIR (INTC.ICCHPIR)
+#define INTCICCABPR (INTC.ICCABPR)
+#define INTCICCIIDR (INTC.ICCIIDR)
+#define INTCICR0 (INTC.ICR0)
+#define INTCICR1 (INTC.ICR1)
+#define INTCIRQRR (INTC.IRQRR)
+
+#define INTC_ICDISR0_COUNT (19)
+#define INTC_ICDISER0_COUNT (19)
+#define INTC_ICDICER0_COUNT (19)
+#define INTC_ICDISPR0_COUNT (19)
+#define INTC_ICDICPR0_COUNT (19)
+#define INTC_ICDABR0_COUNT (19)
+#define INTC_ICDIPR0_COUNT (147)
+#define INTC_ICDIPTR0_COUNT (147)
+#define INTC_ICDICFR0_COUNT (37)
+#define INTC_SPI_STATUS0_COUNT (17)
+
+
+typedef struct st_intc
+{
+                                                           /* INTC             */
+    volatile uint32_t  ICDDCR;                                 /*  ICDDCR          */
+    volatile uint32_t  ICDICTR;                                /*  ICDICTR         */
+    volatile uint32_t  ICDIIDR;                                /*  ICDIIDR         */
+    volatile uint8_t   dummy193[116];                          /*                  */
+
+/* #define INTC_ICDISR0_COUNT (19) */
+    volatile uint32_t  ICDISR0;                                /*  ICDISR0         */
+    volatile uint32_t  ICDISR1;                                /*  ICDISR1         */
+    volatile uint32_t  ICDISR2;                                /*  ICDISR2         */
+    volatile uint32_t  ICDISR3;                                /*  ICDISR3         */
+    volatile uint32_t  ICDISR4;                                /*  ICDISR4         */
+    volatile uint32_t  ICDISR5;                                /*  ICDISR5         */
+    volatile uint32_t  ICDISR6;                                /*  ICDISR6         */
+    volatile uint32_t  ICDISR7;                                /*  ICDISR7         */
+    volatile uint32_t  ICDISR8;                                /*  ICDISR8         */
+    volatile uint32_t  ICDISR9;                                /*  ICDISR9         */
+    volatile uint32_t  ICDISR10;                               /*  ICDISR10        */
+    volatile uint32_t  ICDISR11;                               /*  ICDISR11        */
+    volatile uint32_t  ICDISR12;                               /*  ICDISR12        */
+    volatile uint32_t  ICDISR13;                               /*  ICDISR13        */
+    volatile uint32_t  ICDISR14;                               /*  ICDISR14        */
+    volatile uint32_t  ICDISR15;                               /*  ICDISR15        */
+    volatile uint32_t  ICDISR16;                               /*  ICDISR16        */
+    volatile uint32_t  ICDISR17;                               /*  ICDISR17        */
+    volatile uint32_t  ICDISR18;                               /*  ICDISR18        */
+    volatile uint8_t   dummy194[52];                           /*                  */
+
+/* #define INTC_ICDISER0_COUNT (19) */
+    volatile uint32_t  ICDISER0;                               /*  ICDISER0        */
+    volatile uint32_t  ICDISER1;                               /*  ICDISER1        */
+    volatile uint32_t  ICDISER2;                               /*  ICDISER2        */
+    volatile uint32_t  ICDISER3;                               /*  ICDISER3        */
+    volatile uint32_t  ICDISER4;                               /*  ICDISER4        */
+    volatile uint32_t  ICDISER5;                               /*  ICDISER5        */
+    volatile uint32_t  ICDISER6;                               /*  ICDISER6        */
+    volatile uint32_t  ICDISER7;                               /*  ICDISER7        */
+    volatile uint32_t  ICDISER8;                               /*  ICDISER8        */
+    volatile uint32_t  ICDISER9;                               /*  ICDISER9        */
+    volatile uint32_t  ICDISER10;                              /*  ICDISER10       */
+    volatile uint32_t  ICDISER11;                              /*  ICDISER11       */
+    volatile uint32_t  ICDISER12;                              /*  ICDISER12       */
+    volatile uint32_t  ICDISER13;                              /*  ICDISER13       */
+    volatile uint32_t  ICDISER14;                              /*  ICDISER14       */
+    volatile uint32_t  ICDISER15;                              /*  ICDISER15       */
+    volatile uint32_t  ICDISER16;                              /*  ICDISER16       */
+    volatile uint32_t  ICDISER17;                              /*  ICDISER17       */
+    volatile uint32_t  ICDISER18;                              /*  ICDISER18       */
+    volatile uint8_t   dummy195[52];                           /*                  */
+
+/* #define INTC_ICDICER0_COUNT (19) */
+    volatile uint32_t  ICDICER0;                               /*  ICDICER0        */
+    volatile uint32_t  ICDICER1;                               /*  ICDICER1        */
+    volatile uint32_t  ICDICER2;                               /*  ICDICER2        */
+    volatile uint32_t  ICDICER3;                               /*  ICDICER3        */
+    volatile uint32_t  ICDICER4;                               /*  ICDICER4        */
+    volatile uint32_t  ICDICER5;                               /*  ICDICER5        */
+    volatile uint32_t  ICDICER6;                               /*  ICDICER6        */
+    volatile uint32_t  ICDICER7;                               /*  ICDICER7        */
+    volatile uint32_t  ICDICER8;                               /*  ICDICER8        */
+    volatile uint32_t  ICDICER9;                               /*  ICDICER9        */
+    volatile uint32_t  ICDICER10;                              /*  ICDICER10       */
+    volatile uint32_t  ICDICER11;                              /*  ICDICER11       */
+    volatile uint32_t  ICDICER12;                              /*  ICDICER12       */
+    volatile uint32_t  ICDICER13;                              /*  ICDICER13       */
+    volatile uint32_t  ICDICER14;                              /*  ICDICER14       */
+    volatile uint32_t  ICDICER15;                              /*  ICDICER15       */
+    volatile uint32_t  ICDICER16;                              /*  ICDICER16       */
+    volatile uint32_t  ICDICER17;                              /*  ICDICER17       */
+    volatile uint32_t  ICDICER18;                              /*  ICDICER18       */
+    volatile uint8_t   dummy196[52];                           /*                  */
+
+/* #define INTC_ICDISPR0_COUNT (19) */
+    volatile uint32_t  ICDISPR0;                               /*  ICDISPR0        */
+    volatile uint32_t  ICDISPR1;                               /*  ICDISPR1        */
+    volatile uint32_t  ICDISPR2;                               /*  ICDISPR2        */
+    volatile uint32_t  ICDISPR3;                               /*  ICDISPR3        */
+    volatile uint32_t  ICDISPR4;                               /*  ICDISPR4        */
+    volatile uint32_t  ICDISPR5;                               /*  ICDISPR5        */
+    volatile uint32_t  ICDISPR6;                               /*  ICDISPR6        */
+    volatile uint32_t  ICDISPR7;                               /*  ICDISPR7        */
+    volatile uint32_t  ICDISPR8;                               /*  ICDISPR8        */
+    volatile uint32_t  ICDISPR9;                               /*  ICDISPR9        */
+    volatile uint32_t  ICDISPR10;                              /*  ICDISPR10       */
+    volatile uint32_t  ICDISPR11;                              /*  ICDISPR11       */
+    volatile uint32_t  ICDISPR12;                              /*  ICDISPR12       */
+    volatile uint32_t  ICDISPR13;                              /*  ICDISPR13       */
+    volatile uint32_t  ICDISPR14;                              /*  ICDISPR14       */
+    volatile uint32_t  ICDISPR15;                              /*  ICDISPR15       */
+    volatile uint32_t  ICDISPR16;                              /*  ICDISPR16       */
+    volatile uint32_t  ICDISPR17;                              /*  ICDISPR17       */
+    volatile uint32_t  ICDISPR18;                              /*  ICDISPR18       */
+    volatile uint8_t   dummy197[52];                           /*                  */
+
+/* #define INTC_ICDICPR0_COUNT (19) */
+    volatile uint32_t  ICDICPR0;                               /*  ICDICPR0        */
+    volatile uint32_t  ICDICPR1;                               /*  ICDICPR1        */
+    volatile uint32_t  ICDICPR2;                               /*  ICDICPR2        */
+    volatile uint32_t  ICDICPR3;                               /*  ICDICPR3        */
+    volatile uint32_t  ICDICPR4;                               /*  ICDICPR4        */
+    volatile uint32_t  ICDICPR5;                               /*  ICDICPR5        */
+    volatile uint32_t  ICDICPR6;                               /*  ICDICPR6        */
+    volatile uint32_t  ICDICPR7;                               /*  ICDICPR7        */
+    volatile uint32_t  ICDICPR8;                               /*  ICDICPR8        */
+    volatile uint32_t  ICDICPR9;                               /*  ICDICPR9        */
+    volatile uint32_t  ICDICPR10;                              /*  ICDICPR10       */
+    volatile uint32_t  ICDICPR11;                              /*  ICDICPR11       */
+    volatile uint32_t  ICDICPR12;                              /*  ICDICPR12       */
+    volatile uint32_t  ICDICPR13;                              /*  ICDICPR13       */
+    volatile uint32_t  ICDICPR14;                              /*  ICDICPR14       */
+    volatile uint32_t  ICDICPR15;                              /*  ICDICPR15       */
+    volatile uint32_t  ICDICPR16;                              /*  ICDICPR16       */
+    volatile uint32_t  ICDICPR17;                              /*  ICDICPR17       */
+    volatile uint32_t  ICDICPR18;                              /*  ICDICPR18       */
+    volatile uint8_t   dummy198[52];                           /*                  */
+
+/* #define INTC_ICDABR0_COUNT (19) */
+    volatile uint32_t  ICDABR0;                                /*  ICDABR0         */
+    volatile uint32_t  ICDABR1;                                /*  ICDABR1         */
+    volatile uint32_t  ICDABR2;                                /*  ICDABR2         */
+    volatile uint32_t  ICDABR3;                                /*  ICDABR3         */
+    volatile uint32_t  ICDABR4;                                /*  ICDABR4         */
+    volatile uint32_t  ICDABR5;                                /*  ICDABR5         */
+    volatile uint32_t  ICDABR6;                                /*  ICDABR6         */
+    volatile uint32_t  ICDABR7;                                /*  ICDABR7         */
+    volatile uint32_t  ICDABR8;                                /*  ICDABR8         */
+    volatile uint32_t  ICDABR9;                                /*  ICDABR9         */
+    volatile uint32_t  ICDABR10;                               /*  ICDABR10        */
+    volatile uint32_t  ICDABR11;                               /*  ICDABR11        */
+    volatile uint32_t  ICDABR12;                               /*  ICDABR12        */
+    volatile uint32_t  ICDABR13;                               /*  ICDABR13        */
+    volatile uint32_t  ICDABR14;                               /*  ICDABR14        */
+    volatile uint32_t  ICDABR15;                               /*  ICDABR15        */
+    volatile uint32_t  ICDABR16;                               /*  ICDABR16        */
+    volatile uint32_t  ICDABR17;                               /*  ICDABR17        */
+    volatile uint32_t  ICDABR18;                               /*  ICDABR18        */
+    volatile uint8_t   dummy199[180];                          /*                  */
+
+/* #define INTC_ICDIPR0_COUNT (147) */
+    volatile uint32_t  ICDIPR0;                                /*  ICDIPR0         */
+    volatile uint32_t  ICDIPR1;                                /*  ICDIPR1         */
+    volatile uint32_t  ICDIPR2;                                /*  ICDIPR2         */
+    volatile uint32_t  ICDIPR3;                                /*  ICDIPR3         */
+    volatile uint32_t  ICDIPR4;                                /*  ICDIPR4         */
+    volatile uint32_t  ICDIPR5;                                /*  ICDIPR5         */
+    volatile uint32_t  ICDIPR6;                                /*  ICDIPR6         */
+    volatile uint32_t  ICDIPR7;                                /*  ICDIPR7         */
+    volatile uint32_t  ICDIPR8;                                /*  ICDIPR8         */
+    volatile uint32_t  ICDIPR9;                                /*  ICDIPR9         */
+    volatile uint32_t  ICDIPR10;                               /*  ICDIPR10        */
+    volatile uint32_t  ICDIPR11;                               /*  ICDIPR11        */
+    volatile uint32_t  ICDIPR12;                               /*  ICDIPR12        */
+    volatile uint32_t  ICDIPR13;                               /*  ICDIPR13        */
+    volatile uint32_t  ICDIPR14;                               /*  ICDIPR14        */
+    volatile uint32_t  ICDIPR15;                               /*  ICDIPR15        */
+    volatile uint32_t  ICDIPR16;                               /*  ICDIPR16        */
+    volatile uint32_t  ICDIPR17;                               /*  ICDIPR17        */
+    volatile uint32_t  ICDIPR18;                               /*  ICDIPR18        */
+    volatile uint32_t  ICDIPR19;                               /*  ICDIPR19        */
+    volatile uint32_t  ICDIPR20;                               /*  ICDIPR20        */
+    volatile uint32_t  ICDIPR21;                               /*  ICDIPR21        */
+    volatile uint32_t  ICDIPR22;                               /*  ICDIPR22        */
+    volatile uint32_t  ICDIPR23;                               /*  ICDIPR23        */
+    volatile uint32_t  ICDIPR24;                               /*  ICDIPR24        */
+    volatile uint32_t  ICDIPR25;                               /*  ICDIPR25        */
+    volatile uint32_t  ICDIPR26;                               /*  ICDIPR26        */
+    volatile uint32_t  ICDIPR27;                               /*  ICDIPR27        */
+    volatile uint32_t  ICDIPR28;                               /*  ICDIPR28        */
+    volatile uint32_t  ICDIPR29;                               /*  ICDIPR29        */
+    volatile uint32_t  ICDIPR30;                               /*  ICDIPR30        */
+    volatile uint32_t  ICDIPR31;                               /*  ICDIPR31        */
+    volatile uint32_t  ICDIPR32;                               /*  ICDIPR32        */
+    volatile uint32_t  ICDIPR33;                               /*  ICDIPR33        */
+    volatile uint32_t  ICDIPR34;                               /*  ICDIPR34        */
+    volatile uint32_t  ICDIPR35;                               /*  ICDIPR35        */
+    volatile uint32_t  ICDIPR36;                               /*  ICDIPR36        */
+    volatile uint32_t  ICDIPR37;                               /*  ICDIPR37        */
+    volatile uint32_t  ICDIPR38;                               /*  ICDIPR38        */
+    volatile uint32_t  ICDIPR39;                               /*  ICDIPR39        */
+    volatile uint32_t  ICDIPR40;                               /*  ICDIPR40        */
+    volatile uint32_t  ICDIPR41;                               /*  ICDIPR41        */
+    volatile uint32_t  ICDIPR42;                               /*  ICDIPR42        */
+    volatile uint32_t  ICDIPR43;                               /*  ICDIPR43        */
+    volatile uint32_t  ICDIPR44;                               /*  ICDIPR44        */
+    volatile uint32_t  ICDIPR45;                               /*  ICDIPR45        */
+    volatile uint32_t  ICDIPR46;                               /*  ICDIPR46        */
+    volatile uint32_t  ICDIPR47;                               /*  ICDIPR47        */
+    volatile uint32_t  ICDIPR48;                               /*  ICDIPR48        */
+    volatile uint32_t  ICDIPR49;                               /*  ICDIPR49        */
+    volatile uint32_t  ICDIPR50;                               /*  ICDIPR50        */
+    volatile uint32_t  ICDIPR51;                               /*  ICDIPR51        */
+    volatile uint32_t  ICDIPR52;                               /*  ICDIPR52        */
+    volatile uint32_t  ICDIPR53;                               /*  ICDIPR53        */
+    volatile uint32_t  ICDIPR54;                               /*  ICDIPR54        */
+    volatile uint32_t  ICDIPR55;                               /*  ICDIPR55        */
+    volatile uint32_t  ICDIPR56;                               /*  ICDIPR56        */
+    volatile uint32_t  ICDIPR57;                               /*  ICDIPR57        */
+    volatile uint32_t  ICDIPR58;                               /*  ICDIPR58        */
+    volatile uint32_t  ICDIPR59;                               /*  ICDIPR59        */
+    volatile uint32_t  ICDIPR60;                               /*  ICDIPR60        */
+    volatile uint32_t  ICDIPR61;                               /*  ICDIPR61        */
+    volatile uint32_t  ICDIPR62;                               /*  ICDIPR62        */
+    volatile uint32_t  ICDIPR63;                               /*  ICDIPR63        */
+    volatile uint32_t  ICDIPR64;                               /*  ICDIPR64        */
+    volatile uint32_t  ICDIPR65;                               /*  ICDIPR65        */
+    volatile uint32_t  ICDIPR66;                               /*  ICDIPR66        */
+    volatile uint32_t  ICDIPR67;                               /*  ICDIPR67        */
+    volatile uint32_t  ICDIPR68;                               /*  ICDIPR68        */
+    volatile uint32_t  ICDIPR69;                               /*  ICDIPR69        */
+    volatile uint32_t  ICDIPR70;                               /*  ICDIPR70        */
+    volatile uint32_t  ICDIPR71;                               /*  ICDIPR71        */
+    volatile uint32_t  ICDIPR72;                               /*  ICDIPR72        */
+    volatile uint32_t  ICDIPR73;                               /*  ICDIPR73        */
+    volatile uint32_t  ICDIPR74;                               /*  ICDIPR74        */
+    volatile uint32_t  ICDIPR75;                               /*  ICDIPR75        */
+    volatile uint32_t  ICDIPR76;                               /*  ICDIPR76        */
+    volatile uint32_t  ICDIPR77;                               /*  ICDIPR77        */
+    volatile uint32_t  ICDIPR78;                               /*  ICDIPR78        */
+    volatile uint32_t  ICDIPR79;                               /*  ICDIPR79        */
+    volatile uint32_t  ICDIPR80;                               /*  ICDIPR80        */
+    volatile uint32_t  ICDIPR81;                               /*  ICDIPR81        */
+    volatile uint32_t  ICDIPR82;                               /*  ICDIPR82        */
+    volatile uint32_t  ICDIPR83;                               /*  ICDIPR83        */
+    volatile uint32_t  ICDIPR84;                               /*  ICDIPR84        */
+    volatile uint32_t  ICDIPR85;                               /*  ICDIPR85        */
+    volatile uint32_t  ICDIPR86;                               /*  ICDIPR86        */
+    volatile uint32_t  ICDIPR87;                               /*  ICDIPR87        */
+    volatile uint32_t  ICDIPR88;                               /*  ICDIPR88        */
+    volatile uint32_t  ICDIPR89;                               /*  ICDIPR89        */
+    volatile uint32_t  ICDIPR90;                               /*  ICDIPR90        */
+    volatile uint32_t  ICDIPR91;                               /*  ICDIPR91        */
+    volatile uint32_t  ICDIPR92;                               /*  ICDIPR92        */
+    volatile uint32_t  ICDIPR93;                               /*  ICDIPR93        */
+    volatile uint32_t  ICDIPR94;                               /*  ICDIPR94        */
+    volatile uint32_t  ICDIPR95;                               /*  ICDIPR95        */
+    volatile uint32_t  ICDIPR96;                               /*  ICDIPR96        */
+    volatile uint32_t  ICDIPR97;                               /*  ICDIPR97        */
+    volatile uint32_t  ICDIPR98;                               /*  ICDIPR98        */
+    volatile uint32_t  ICDIPR99;                               /*  ICDIPR99        */
+    volatile uint32_t  ICDIPR100;                              /*  ICDIPR100       */
+    volatile uint32_t  ICDIPR101;                              /*  ICDIPR101       */
+    volatile uint32_t  ICDIPR102;                              /*  ICDIPR102       */
+    volatile uint32_t  ICDIPR103;                              /*  ICDIPR103       */
+    volatile uint32_t  ICDIPR104;                              /*  ICDIPR104       */
+    volatile uint32_t  ICDIPR105;                              /*  ICDIPR105       */
+    volatile uint32_t  ICDIPR106;                              /*  ICDIPR106       */
+    volatile uint32_t  ICDIPR107;                              /*  ICDIPR107       */
+    volatile uint32_t  ICDIPR108;                              /*  ICDIPR108       */
+    volatile uint32_t  ICDIPR109;                              /*  ICDIPR109       */
+    volatile uint32_t  ICDIPR110;                              /*  ICDIPR110       */
+    volatile uint32_t  ICDIPR111;                              /*  ICDIPR111       */
+    volatile uint32_t  ICDIPR112;                              /*  ICDIPR112       */
+    volatile uint32_t  ICDIPR113;                              /*  ICDIPR113       */
+    volatile uint32_t  ICDIPR114;                              /*  ICDIPR114       */
+    volatile uint32_t  ICDIPR115;                              /*  ICDIPR115       */
+    volatile uint32_t  ICDIPR116;                              /*  ICDIPR116       */
+    volatile uint32_t  ICDIPR117;                              /*  ICDIPR117       */
+    volatile uint32_t  ICDIPR118;                              /*  ICDIPR118       */
+    volatile uint32_t  ICDIPR119;                              /*  ICDIPR119       */
+    volatile uint32_t  ICDIPR120;                              /*  ICDIPR120       */
+    volatile uint32_t  ICDIPR121;                              /*  ICDIPR121       */
+    volatile uint32_t  ICDIPR122;                              /*  ICDIPR122       */
+    volatile uint32_t  ICDIPR123;                              /*  ICDIPR123       */
+    volatile uint32_t  ICDIPR124;                              /*  ICDIPR124       */
+    volatile uint32_t  ICDIPR125;                              /*  ICDIPR125       */
+    volatile uint32_t  ICDIPR126;                              /*  ICDIPR126       */
+    volatile uint32_t  ICDIPR127;                              /*  ICDIPR127       */
+    volatile uint32_t  ICDIPR128;                              /*  ICDIPR128       */
+    volatile uint32_t  ICDIPR129;                              /*  ICDIPR129       */
+    volatile uint32_t  ICDIPR130;                              /*  ICDIPR130       */
+    volatile uint32_t  ICDIPR131;                              /*  ICDIPR131       */
+    volatile uint32_t  ICDIPR132;                              /*  ICDIPR132       */
+    volatile uint32_t  ICDIPR133;                              /*  ICDIPR133       */
+    volatile uint32_t  ICDIPR134;                              /*  ICDIPR134       */
+    volatile uint32_t  ICDIPR135;                              /*  ICDIPR135       */
+    volatile uint32_t  ICDIPR136;                              /*  ICDIPR136       */
+    volatile uint32_t  ICDIPR137;                              /*  ICDIPR137       */
+    volatile uint32_t  ICDIPR138;                              /*  ICDIPR138       */
+    volatile uint32_t  ICDIPR139;                              /*  ICDIPR139       */
+    volatile uint32_t  ICDIPR140;                              /*  ICDIPR140       */
+    volatile uint32_t  ICDIPR141;                              /*  ICDIPR141       */
+    volatile uint32_t  ICDIPR142;                              /*  ICDIPR142       */
+    volatile uint32_t  ICDIPR143;                              /*  ICDIPR143       */
+    volatile uint32_t  ICDIPR144;                              /*  ICDIPR144       */
+    volatile uint32_t  ICDIPR145;                              /*  ICDIPR145       */
+    volatile uint32_t  ICDIPR146;                              /*  ICDIPR146       */
+    volatile uint8_t   dummy200[436];                          /*                  */
+
+/* #define INTC_ICDIPTR0_COUNT (147) */
+    volatile uint32_t  ICDIPTR0;                               /*  ICDIPTR0        */
+    volatile uint32_t  ICDIPTR1;                               /*  ICDIPTR1        */
+    volatile uint32_t  ICDIPTR2;                               /*  ICDIPTR2        */
+    volatile uint32_t  ICDIPTR3;                               /*  ICDIPTR3        */
+    volatile uint32_t  ICDIPTR4;                               /*  ICDIPTR4        */
+    volatile uint32_t  ICDIPTR5;                               /*  ICDIPTR5        */
+    volatile uint32_t  ICDIPTR6;                               /*  ICDIPTR6        */
+    volatile uint32_t  ICDIPTR7;                               /*  ICDIPTR7        */
+    volatile uint32_t  ICDIPTR8;                               /*  ICDIPTR8        */
+    volatile uint32_t  ICDIPTR9;                               /*  ICDIPTR9        */
+    volatile uint32_t  ICDIPTR10;                              /*  ICDIPTR10       */
+    volatile uint32_t  ICDIPTR11;                              /*  ICDIPTR11       */
+    volatile uint32_t  ICDIPTR12;                              /*  ICDIPTR12       */
+    volatile uint32_t  ICDIPTR13;                              /*  ICDIPTR13       */
+    volatile uint32_t  ICDIPTR14;                              /*  ICDIPTR14       */
+    volatile uint32_t  ICDIPTR15;                              /*  ICDIPTR15       */
+    volatile uint32_t  ICDIPTR16;                              /*  ICDIPTR16       */
+    volatile uint32_t  ICDIPTR17;                              /*  ICDIPTR17       */
+    volatile uint32_t  ICDIPTR18;                              /*  ICDIPTR18       */
+    volatile uint32_t  ICDIPTR19;                              /*  ICDIPTR19       */
+    volatile uint32_t  ICDIPTR20;                              /*  ICDIPTR20       */
+    volatile uint32_t  ICDIPTR21;                              /*  ICDIPTR21       */
+    volatile uint32_t  ICDIPTR22;                              /*  ICDIPTR22       */
+    volatile uint32_t  ICDIPTR23;                              /*  ICDIPTR23       */
+    volatile uint32_t  ICDIPTR24;                              /*  ICDIPTR24       */
+    volatile uint32_t  ICDIPTR25;                              /*  ICDIPTR25       */
+    volatile uint32_t  ICDIPTR26;                              /*  ICDIPTR26       */
+    volatile uint32_t  ICDIPTR27;                              /*  ICDIPTR27       */
+    volatile uint32_t  ICDIPTR28;                              /*  ICDIPTR28       */
+    volatile uint32_t  ICDIPTR29;                              /*  ICDIPTR29       */
+    volatile uint32_t  ICDIPTR30;                              /*  ICDIPTR30       */
+    volatile uint32_t  ICDIPTR31;                              /*  ICDIPTR31       */
+    volatile uint32_t  ICDIPTR32;                              /*  ICDIPTR32       */
+    volatile uint32_t  ICDIPTR33;                              /*  ICDIPTR33       */
+    volatile uint32_t  ICDIPTR34;                              /*  ICDIPTR34       */
+    volatile uint32_t  ICDIPTR35;                              /*  ICDIPTR35       */
+    volatile uint32_t  ICDIPTR36;                              /*  ICDIPTR36       */
+    volatile uint32_t  ICDIPTR37;                              /*  ICDIPTR37       */
+    volatile uint32_t  ICDIPTR38;                              /*  ICDIPTR38       */
+    volatile uint32_t  ICDIPTR39;                              /*  ICDIPTR39       */
+    volatile uint32_t  ICDIPTR40;                              /*  ICDIPTR40       */
+    volatile uint32_t  ICDIPTR41;                              /*  ICDIPTR41       */
+    volatile uint32_t  ICDIPTR42;                              /*  ICDIPTR42       */
+    volatile uint32_t  ICDIPTR43;                              /*  ICDIPTR43       */
+    volatile uint32_t  ICDIPTR44;                              /*  ICDIPTR44       */
+    volatile uint32_t  ICDIPTR45;                              /*  ICDIPTR45       */
+    volatile uint32_t  ICDIPTR46;                              /*  ICDIPTR46       */
+    volatile uint32_t  ICDIPTR47;                              /*  ICDIPTR47       */
+    volatile uint32_t  ICDIPTR48;                              /*  ICDIPTR48       */
+    volatile uint32_t  ICDIPTR49;                              /*  ICDIPTR49       */
+    volatile uint32_t  ICDIPTR50;                              /*  ICDIPTR50       */
+    volatile uint32_t  ICDIPTR51;                              /*  ICDIPTR51       */
+    volatile uint32_t  ICDIPTR52;                              /*  ICDIPTR52       */
+    volatile uint32_t  ICDIPTR53;                              /*  ICDIPTR53       */
+    volatile uint32_t  ICDIPTR54;                              /*  ICDIPTR54       */
+    volatile uint32_t  ICDIPTR55;                              /*  ICDIPTR55       */
+    volatile uint32_t  ICDIPTR56;                              /*  ICDIPTR56       */
+    volatile uint32_t  ICDIPTR57;                              /*  ICDIPTR57       */
+    volatile uint32_t  ICDIPTR58;                              /*  ICDIPTR58       */
+    volatile uint32_t  ICDIPTR59;                              /*  ICDIPTR59       */
+    volatile uint32_t  ICDIPTR60;                              /*  ICDIPTR60       */
+    volatile uint32_t  ICDIPTR61;                              /*  ICDIPTR61       */
+    volatile uint32_t  ICDIPTR62;                              /*  ICDIPTR62       */
+    volatile uint32_t  ICDIPTR63;                              /*  ICDIPTR63       */
+    volatile uint32_t  ICDIPTR64;                              /*  ICDIPTR64       */
+    volatile uint32_t  ICDIPTR65;                              /*  ICDIPTR65       */
+    volatile uint32_t  ICDIPTR66;                              /*  ICDIPTR66       */
+    volatile uint32_t  ICDIPTR67;                              /*  ICDIPTR67       */
+    volatile uint32_t  ICDIPTR68;                              /*  ICDIPTR68       */
+    volatile uint32_t  ICDIPTR69;                              /*  ICDIPTR69       */
+    volatile uint32_t  ICDIPTR70;                              /*  ICDIPTR70       */
+    volatile uint32_t  ICDIPTR71;                              /*  ICDIPTR71       */
+    volatile uint32_t  ICDIPTR72;                              /*  ICDIPTR72       */
+    volatile uint32_t  ICDIPTR73;                              /*  ICDIPTR73       */
+    volatile uint32_t  ICDIPTR74;                              /*  ICDIPTR74       */
+    volatile uint32_t  ICDIPTR75;                              /*  ICDIPTR75       */
+    volatile uint32_t  ICDIPTR76;                              /*  ICDIPTR76       */
+    volatile uint32_t  ICDIPTR77;                              /*  ICDIPTR77       */
+    volatile uint32_t  ICDIPTR78;                              /*  ICDIPTR78       */
+    volatile uint32_t  ICDIPTR79;                              /*  ICDIPTR79       */
+    volatile uint32_t  ICDIPTR80;                              /*  ICDIPTR80       */
+    volatile uint32_t  ICDIPTR81;                              /*  ICDIPTR81       */
+    volatile uint32_t  ICDIPTR82;                              /*  ICDIPTR82       */
+    volatile uint32_t  ICDIPTR83;                              /*  ICDIPTR83       */
+    volatile uint32_t  ICDIPTR84;                              /*  ICDIPTR84       */
+    volatile uint32_t  ICDIPTR85;                              /*  ICDIPTR85       */
+    volatile uint32_t  ICDIPTR86;                              /*  ICDIPTR86       */
+    volatile uint32_t  ICDIPTR87;                              /*  ICDIPTR87       */
+    volatile uint32_t  ICDIPTR88;                              /*  ICDIPTR88       */
+    volatile uint32_t  ICDIPTR89;                              /*  ICDIPTR89       */
+    volatile uint32_t  ICDIPTR90;                              /*  ICDIPTR90       */
+    volatile uint32_t  ICDIPTR91;                              /*  ICDIPTR91       */
+    volatile uint32_t  ICDIPTR92;                              /*  ICDIPTR92       */
+    volatile uint32_t  ICDIPTR93;                              /*  ICDIPTR93       */
+    volatile uint32_t  ICDIPTR94;                              /*  ICDIPTR94       */
+    volatile uint32_t  ICDIPTR95;                              /*  ICDIPTR95       */
+    volatile uint32_t  ICDIPTR96;                              /*  ICDIPTR96       */
+    volatile uint32_t  ICDIPTR97;                              /*  ICDIPTR97       */
+    volatile uint32_t  ICDIPTR98;                              /*  ICDIPTR98       */
+    volatile uint32_t  ICDIPTR99;                              /*  ICDIPTR99       */
+    volatile uint32_t  ICDIPTR100;                             /*  ICDIPTR100      */
+    volatile uint32_t  ICDIPTR101;                             /*  ICDIPTR101      */
+    volatile uint32_t  ICDIPTR102;                             /*  ICDIPTR102      */
+    volatile uint32_t  ICDIPTR103;                             /*  ICDIPTR103      */
+    volatile uint32_t  ICDIPTR104;                             /*  ICDIPTR104      */
+    volatile uint32_t  ICDIPTR105;                             /*  ICDIPTR105      */
+    volatile uint32_t  ICDIPTR106;                             /*  ICDIPTR106      */
+    volatile uint32_t  ICDIPTR107;                             /*  ICDIPTR107      */
+    volatile uint32_t  ICDIPTR108;                             /*  ICDIPTR108      */
+    volatile uint32_t  ICDIPTR109;                             /*  ICDIPTR109      */
+    volatile uint32_t  ICDIPTR110;                             /*  ICDIPTR110      */
+    volatile uint32_t  ICDIPTR111;                             /*  ICDIPTR111      */
+    volatile uint32_t  ICDIPTR112;                             /*  ICDIPTR112      */
+    volatile uint32_t  ICDIPTR113;                             /*  ICDIPTR113      */
+    volatile uint32_t  ICDIPTR114;                             /*  ICDIPTR114      */
+    volatile uint32_t  ICDIPTR115;                             /*  ICDIPTR115      */
+    volatile uint32_t  ICDIPTR116;                             /*  ICDIPTR116      */
+    volatile uint32_t  ICDIPTR117;                             /*  ICDIPTR117      */
+    volatile uint32_t  ICDIPTR118;                             /*  ICDIPTR118      */
+    volatile uint32_t  ICDIPTR119;                             /*  ICDIPTR119      */
+    volatile uint32_t  ICDIPTR120;                             /*  ICDIPTR120      */
+    volatile uint32_t  ICDIPTR121;                             /*  ICDIPTR121      */
+    volatile uint32_t  ICDIPTR122;                             /*  ICDIPTR122      */
+    volatile uint32_t  ICDIPTR123;                             /*  ICDIPTR123      */
+    volatile uint32_t  ICDIPTR124;                             /*  ICDIPTR124      */
+    volatile uint32_t  ICDIPTR125;                             /*  ICDIPTR125      */
+    volatile uint32_t  ICDIPTR126;                             /*  ICDIPTR126      */
+    volatile uint32_t  ICDIPTR127;                             /*  ICDIPTR127      */
+    volatile uint32_t  ICDIPTR128;                             /*  ICDIPTR128      */
+    volatile uint32_t  ICDIPTR129;                             /*  ICDIPTR129      */
+    volatile uint32_t  ICDIPTR130;                             /*  ICDIPTR130      */
+    volatile uint32_t  ICDIPTR131;                             /*  ICDIPTR131      */
+    volatile uint32_t  ICDIPTR132;                             /*  ICDIPTR132      */
+    volatile uint32_t  ICDIPTR133;                             /*  ICDIPTR133      */
+    volatile uint32_t  ICDIPTR134;                             /*  ICDIPTR134      */
+    volatile uint32_t  ICDIPTR135;                             /*  ICDIPTR135      */
+    volatile uint32_t  ICDIPTR136;                             /*  ICDIPTR136      */
+    volatile uint32_t  ICDIPTR137;                             /*  ICDIPTR137      */
+    volatile uint32_t  ICDIPTR138;                             /*  ICDIPTR138      */
+    volatile uint32_t  ICDIPTR139;                             /*  ICDIPTR139      */
+    volatile uint32_t  ICDIPTR140;                             /*  ICDIPTR140      */
+    volatile uint32_t  ICDIPTR141;                             /*  ICDIPTR141      */
+    volatile uint32_t  ICDIPTR142;                             /*  ICDIPTR142      */
+    volatile uint32_t  ICDIPTR143;                             /*  ICDIPTR143      */
+    volatile uint32_t  ICDIPTR144;                             /*  ICDIPTR144      */
+    volatile uint32_t  ICDIPTR145;                             /*  ICDIPTR145      */
+    volatile uint32_t  ICDIPTR146;                             /*  ICDIPTR146      */
+    volatile uint8_t   dummy201[436];                          /*                  */
+
+/* #define INTC_ICDICFR0_COUNT (37) */
+    volatile uint32_t  ICDICFR0;                               /*  ICDICFR0        */
+    volatile uint32_t  ICDICFR1;                               /*  ICDICFR1        */
+    volatile uint32_t  ICDICFR2;                               /*  ICDICFR2        */
+    volatile uint32_t  ICDICFR3;                               /*  ICDICFR3        */
+    volatile uint32_t  ICDICFR4;                               /*  ICDICFR4        */
+    volatile uint32_t  ICDICFR5;                               /*  ICDICFR5        */
+    volatile uint32_t  ICDICFR6;                               /*  ICDICFR6        */
+    volatile uint32_t  ICDICFR7;                               /*  ICDICFR7        */
+    volatile uint32_t  ICDICFR8;                               /*  ICDICFR8        */
+    volatile uint32_t  ICDICFR9;                               /*  ICDICFR9        */
+    volatile uint32_t  ICDICFR10;                              /*  ICDICFR10       */
+    volatile uint32_t  ICDICFR11;                              /*  ICDICFR11       */
+    volatile uint32_t  ICDICFR12;                              /*  ICDICFR12       */
+    volatile uint32_t  ICDICFR13;                              /*  ICDICFR13       */
+    volatile uint32_t  ICDICFR14;                              /*  ICDICFR14       */
+    volatile uint32_t  ICDICFR15;                              /*  ICDICFR15       */
+    volatile uint32_t  ICDICFR16;                              /*  ICDICFR16       */
+    volatile uint32_t  ICDICFR17;                              /*  ICDICFR17       */
+    volatile uint32_t  ICDICFR18;                              /*  ICDICFR18       */
+    volatile uint32_t  ICDICFR19;                              /*  ICDICFR19       */
+    volatile uint32_t  ICDICFR20;                              /*  ICDICFR20       */
+    volatile uint32_t  ICDICFR21;                              /*  ICDICFR21       */
+    volatile uint32_t  ICDICFR22;                              /*  ICDICFR22       */
+    volatile uint32_t  ICDICFR23;                              /*  ICDICFR23       */
+    volatile uint32_t  ICDICFR24;                              /*  ICDICFR24       */
+    volatile uint32_t  ICDICFR25;                              /*  ICDICFR25       */
+    volatile uint32_t  ICDICFR26;                              /*  ICDICFR26       */
+    volatile uint32_t  ICDICFR27;                              /*  ICDICFR27       */
+    volatile uint32_t  ICDICFR28;                              /*  ICDICFR28       */
+    volatile uint32_t  ICDICFR29;                              /*  ICDICFR29       */
+    volatile uint32_t  ICDICFR30;                              /*  ICDICFR30       */
+    volatile uint32_t  ICDICFR31;                              /*  ICDICFR31       */
+    volatile uint32_t  ICDICFR32;                              /*  ICDICFR32       */
+    volatile uint32_t  ICDICFR33;                              /*  ICDICFR33       */
+    volatile uint32_t  ICDICFR34;                              /*  ICDICFR34       */
+    volatile uint32_t  ICDICFR35;                              /*  ICDICFR35       */
+    volatile uint32_t  ICDICFR36;                              /*  ICDICFR36       */
+    volatile uint8_t   dummy202[108];                          /*                  */
+    volatile uint32_t  PPI_STATUS;                             /*  PPI_STATUS      */
+
+/* #define INTC_SPI_STATUS0_COUNT (17) */
+    volatile uint32_t  SPI_STATUS0;                            /*  SPI_STATUS0     */
+    volatile uint32_t  SPI_STATUS1;                            /*  SPI_STATUS1     */
+    volatile uint32_t  SPI_STATUS2;                            /*  SPI_STATUS2     */
+    volatile uint32_t  SPI_STATUS3;                            /*  SPI_STATUS3     */
+    volatile uint32_t  SPI_STATUS4;                            /*  SPI_STATUS4     */
+    volatile uint32_t  SPI_STATUS5;                            /*  SPI_STATUS5     */
+    volatile uint32_t  SPI_STATUS6;                            /*  SPI_STATUS6     */
+    volatile uint32_t  SPI_STATUS7;                            /*  SPI_STATUS7     */
+    volatile uint32_t  SPI_STATUS8;                            /*  SPI_STATUS8     */
+    volatile uint32_t  SPI_STATUS9;                            /*  SPI_STATUS9     */
+    volatile uint32_t  SPI_STATUS10;                           /*  SPI_STATUS10    */
+    volatile uint32_t  SPI_STATUS11;                           /*  SPI_STATUS11    */
+    volatile uint32_t  SPI_STATUS12;                           /*  SPI_STATUS12    */
+    volatile uint32_t  SPI_STATUS13;                           /*  SPI_STATUS13    */
+    volatile uint32_t  SPI_STATUS14;                           /*  SPI_STATUS14    */
+    volatile uint32_t  SPI_STATUS15;                           /*  SPI_STATUS15    */
+    volatile uint32_t  SPI_STATUS16;                           /*  SPI_STATUS16    */
+    volatile uint8_t   dummy203[440];                          /*                  */
+    volatile uint32_t  ICDSGIR;                                /*  ICDSGIR         */
+    volatile uint8_t   dummy204[252];                          /*                  */
+    volatile uint32_t  ICCICR;                                 /*  ICCICR          */
+    volatile uint32_t  ICCPMR;                                 /*  ICCPMR          */
+    volatile uint32_t  ICCBPR;                                 /*  ICCBPR          */
+    volatile uint32_t  ICCIAR;                                 /*  ICCIAR          */
+    volatile uint32_t  ICCEOIR;                                /*  ICCEOIR         */
+    volatile uint32_t  ICCRPR;                                 /*  ICCRPR          */
+    volatile uint32_t  ICCHPIR;                                /*  ICCHPIR         */
+    volatile uint32_t  ICCABPR;                                /*  ICCABPR         */
+    volatile uint8_t   dummy205[220];                          /*                  */
+    volatile uint32_t  ICCIIDR;                                /*  ICCIIDR         */
+    volatile uint8_t   dummy206[350148352];                    /*                  */
+    volatile uint16_t ICR0;                                   /*  ICR0            */
+    volatile uint16_t ICR1;                                   /*  ICR1            */
+    volatile uint16_t IRQRR;                                  /*  IRQRR           */
+} r_io_intc_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/iodefine_typedef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/iodefine_typedef.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/iodefine_typedef.h	(revision 429)
@@ -0,0 +1,118 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : iodefine_typedef.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef IODEFINE_TYPEDEF_H
+#define IODEFINE_TYPEDEF_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+/* Shared types and macros for iodefine.h */
+
+/***********************************************************************
+* Macro: IODEFINE_H_VERSION
+************************************************************************/
+#define IODEFINE_H_VERSION  (200)
+
+
+/***********************************************************************
+* Enum: iodefine_byte_select_t
+*
+*   R_IO_L - Low 16bit or Low 8 bit
+*   R_IO_H - High 16bit or Low 8 bit
+*   R_IO_LL - Low 8 bit
+*   R_IO_LH - Middle Low 8 bit
+*   R_IO_HL - Middle High 8 bit
+*   R_IO_HH - High 8 bit
+************************************************************************/
+typedef enum iodefine_byte_select_t
+{
+    R_IO_L = 0, R_IO_H = 1,
+    R_IO_LL= 0, R_IO_LH = 1, R_IO_HL = 2, R_IO_HH = 3,
+    L = 0, H = 1,
+    LL= 0, LH = 1, HL = 2, HH = 3
+} iodefine_byte_select_t;
+
+
+/***********************************************************************
+* Type: iodefine_reg32_t
+*   32/16/8 bit access register
+*
+* - Padding : sizeof(iodefine_reg32_t) == 4
+* - Alignment(Offset) : &UINT32==0, &UINT16[0]==0, &UINT16[1]==2
+*                       &UINT8[0]==0, &UINT8[1]==1, &UINT8[2]==2, &UINT8[3]==3
+* - Endian : Independent (Same as CPU endian as register endian)
+* - Bit-Order : Independent
+************************************************************************/
+typedef union iodefine_reg32_t
+{
+    volatile uint32_t  UINT32;                                  /*  32-bit Access   */
+    volatile uint16_t  UINT16[2];                               /*  16-bit Access   */
+    volatile uint8_t   UINT8[4];                                /*  8-bit Access    */
+} iodefine_reg32_t;
+
+
+/***********************************************************************
+* Type: iodefine_reg32_16_t
+*   32/16 bit access register
+* 
+* - Padding : sizeof(iodefine_reg32_16_t) == 4
+* - Alignment(Offset) : &UINT32==0, &UINT16[0]==0, &UINT16[1]==2
+* - Endian : Independent (Same as CPU endian as register endian)
+* - Bit-Order : Independent
+************************************************************************/
+typedef union iodefine_reg32_16_t
+{
+    volatile uint32_t  UINT32;                                  /*  32-bit Access   */
+    volatile uint16_t  UINT16[2];                               /*  16-bit Access   */
+} iodefine_reg32_16_t;
+
+
+/***********************************************************************
+* Type: iodefine_reg16_8_t
+*   16/8 bit access register
+* 
+* - Padding : sizeof(iodefine_reg16_8_t) == 2
+* - Alignment(Offset) : &UINT16==0, &UINT8[0]==0, &UINT8[1]==1
+* - Endian : Independent (Same as CPU endian as register endian)
+* - Bit-Order : Independent
+************************************************************************/
+typedef union iodefine_reg16_8_t
+{
+    volatile uint16_t  UINT16;                                  /*  16-bit Access   */
+    volatile uint8_t   UINT8[2];                                /*  8-bit Access    */
+} iodefine_reg16_8_t;
+
+
+/* End of shared types and macros for iodefine.h */
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/irda_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/irda_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/irda_iodefine.h	(revision 429)
@@ -0,0 +1,53 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : irda_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef IRDA_IODEFINE_H
+#define IRDA_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define IRDA    (*(struct st_irda    *)0xE8014000uL) /* IRDA */
+
+
+#define IRDAIRCR (IRDA.IRCR)
+
+
+typedef struct st_irda
+{
+                                                           /* IRDA             */
+    volatile uint8_t   IRCR;                                   /*  IRCR            */
+} r_io_irda_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/jcu_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/jcu_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/jcu_iodefine.h	(revision 429)
@@ -0,0 +1,197 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : jcu_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef JCU_IODEFINE_H
+#define JCU_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define JCU     (*(struct st_jcu     *)0xE8017000uL) /* JCU */
+
+
+/* Start of channel array defines of JCU */
+
+/* Channel array defines of JCU_JCQTBL0 */
+/*(Sample) value = JCU_JCQTBL0[ channel ]->JCQTBL0; */
+#define JCU_JCQTBL0_COUNT  (4)
+#define JCU_JCQTBL0_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &JCU_FROM_JCQTBL0, &JCU_FROM_JCQTBL1, &JCU_FROM_JCQTBL2, &JCU_FROM_JCQTBL3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define JCU_FROM_JCQTBL0 (*(struct st_jcu_from_jcqtbl0 *)&JCU.JCQTBL0) /* JCU_FROM_JCQTBL0 */
+#define JCU_FROM_JCQTBL1 (*(struct st_jcu_from_jcqtbl0 *)&JCU.JCQTBL1) /* JCU_FROM_JCQTBL1 */
+#define JCU_FROM_JCQTBL2 (*(struct st_jcu_from_jcqtbl0 *)&JCU.JCQTBL2) /* JCU_FROM_JCQTBL2 */
+#define JCU_FROM_JCQTBL3 (*(struct st_jcu_from_jcqtbl0 *)&JCU.JCQTBL3) /* JCU_FROM_JCQTBL3 */
+
+/* End of channel array defines of JCU */
+
+
+#define JCUJCMOD (JCU.JCMOD)
+#define JCUJCCMD (JCU.JCCMD)
+#define JCUJCQTN (JCU.JCQTN)
+#define JCUJCHTN (JCU.JCHTN)
+#define JCUJCDRIU (JCU.JCDRIU)
+#define JCUJCDRID (JCU.JCDRID)
+#define JCUJCVSZU (JCU.JCVSZU)
+#define JCUJCVSZD (JCU.JCVSZD)
+#define JCUJCHSZU (JCU.JCHSZU)
+#define JCUJCHSZD (JCU.JCHSZD)
+#define JCUJCDTCU (JCU.JCDTCU)
+#define JCUJCDTCM (JCU.JCDTCM)
+#define JCUJCDTCD (JCU.JCDTCD)
+#define JCUJINTE0 (JCU.JINTE0)
+#define JCUJINTS0 (JCU.JINTS0)
+#define JCUJCDERR (JCU.JCDERR)
+#define JCUJCRST (JCU.JCRST)
+#define JCUJIFECNT (JCU.JIFECNT)
+#define JCUJIFESA (JCU.JIFESA)
+#define JCUJIFESOFST (JCU.JIFESOFST)
+#define JCUJIFEDA (JCU.JIFEDA)
+#define JCUJIFESLC (JCU.JIFESLC)
+#define JCUJIFEDDC (JCU.JIFEDDC)
+#define JCUJIFDCNT (JCU.JIFDCNT)
+#define JCUJIFDSA (JCU.JIFDSA)
+#define JCUJIFDDOFST (JCU.JIFDDOFST)
+#define JCUJIFDDA (JCU.JIFDDA)
+#define JCUJIFDSDC (JCU.JIFDSDC)
+#define JCUJIFDDLC (JCU.JIFDDLC)
+#define JCUJIFDADT (JCU.JIFDADT)
+#define JCUJINTE1 (JCU.JINTE1)
+#define JCUJINTS1 (JCU.JINTS1)
+#define JCUJIFESVSZ (JCU.JIFESVSZ)
+#define JCUJIFESHSZ (JCU.JIFESHSZ)
+#define JCUJCQTBL0 (JCU.JCQTBL0)
+#define JCUJCQTBL1 (JCU.JCQTBL1)
+#define JCUJCQTBL2 (JCU.JCQTBL2)
+#define JCUJCQTBL3 (JCU.JCQTBL3)
+#define JCUJCHTBD0 (JCU.JCHTBD0)
+#define JCUJCHTBA0 (JCU.JCHTBA0)
+#define JCUJCHTBD1 (JCU.JCHTBD1)
+#define JCUJCHTBA1 (JCU.JCHTBA1)
+
+
+typedef struct st_jcu
+{
+                                                           /* JCU              */
+    volatile uint8_t   JCMOD;                                  /*  JCMOD           */
+    volatile uint8_t   JCCMD;                                  /*  JCCMD           */
+    volatile uint8_t   dummy145[1];                            /*                  */
+    volatile uint8_t   JCQTN;                                  /*  JCQTN           */
+    volatile uint8_t   JCHTN;                                  /*  JCHTN           */
+    volatile uint8_t   JCDRIU;                                 /*  JCDRIU          */
+    volatile uint8_t   JCDRID;                                 /*  JCDRID          */
+    volatile uint8_t   JCVSZU;                                 /*  JCVSZU          */
+    volatile uint8_t   JCVSZD;                                 /*  JCVSZD          */
+    volatile uint8_t   JCHSZU;                                 /*  JCHSZU          */
+    volatile uint8_t   JCHSZD;                                 /*  JCHSZD          */
+    volatile uint8_t   JCDTCU;                                 /*  JCDTCU          */
+    volatile uint8_t   JCDTCM;                                 /*  JCDTCM          */
+    volatile uint8_t   JCDTCD;                                 /*  JCDTCD          */
+    volatile uint8_t   JINTE0;                                 /*  JINTE0          */
+    volatile uint8_t   JINTS0;                                 /*  JINTS0          */
+    volatile uint8_t   JCDERR;                                 /*  JCDERR          */
+    volatile uint8_t   JCRST;                                  /*  JCRST           */
+    volatile uint8_t   dummy146[46];                           /*                  */
+    volatile uint32_t  JIFECNT;                                /*  JIFECNT         */
+    volatile uint32_t  JIFESA;                                 /*  JIFESA          */
+    volatile uint32_t  JIFESOFST;                              /*  JIFESOFST       */
+    volatile uint32_t  JIFEDA;                                 /*  JIFEDA          */
+    volatile uint32_t  JIFESLC;                                /*  JIFESLC         */
+    volatile uint32_t  JIFEDDC;                                /*  JIFEDDC         */
+    volatile uint32_t  JIFDCNT;                                /*  JIFDCNT         */
+    volatile uint32_t  JIFDSA;                                 /*  JIFDSA          */
+    volatile uint32_t  JIFDDOFST;                              /*  JIFDDOFST       */
+    volatile uint32_t  JIFDDA;                                 /*  JIFDDA          */
+    volatile uint32_t  JIFDSDC;                                /*  JIFDSDC         */
+    volatile uint32_t  JIFDDLC;                                /*  JIFDDLC         */
+    volatile uint32_t  JIFDADT;                                /*  JIFDADT         */
+    volatile uint8_t   dummy147[24];                           /*                  */
+    volatile uint32_t  JINTE1;                                 /*  JINTE1          */
+    volatile uint32_t  JINTS1;                                 /*  JINTS1          */
+    volatile uint32_t  JIFESVSZ;                               /*  JIFESVSZ        */
+    volatile uint32_t  JIFESHSZ;                               /*  JIFESHSZ        */
+    volatile uint8_t   dummy148[100];                          /*                  */
+
+/* start of struct st_jcu_from_jcqtbl0 */
+    volatile uint8_t   JCQTBL0;                                /*  JCQTBL0         */
+    volatile uint8_t   dummy149[63];                           /*                  */
+
+/* end of struct st_jcu_from_jcqtbl0 */
+
+/* start of struct st_jcu_from_jcqtbl0 */
+    volatile uint8_t   JCQTBL1;                                /*  JCQTBL1         */
+    volatile uint8_t   dummy150[63];                           /*                  */
+
+/* end of struct st_jcu_from_jcqtbl0 */
+
+/* start of struct st_jcu_from_jcqtbl0 */
+    volatile uint8_t   JCQTBL2;                                /*  JCQTBL2         */
+    volatile uint8_t   dummy151[63];                           /*                  */
+
+/* end of struct st_jcu_from_jcqtbl0 */
+
+/* start of struct st_jcu_from_jcqtbl0 */
+    volatile uint8_t   JCQTBL3;                                /*  JCQTBL3         */
+    volatile uint8_t   dummy152[63];                           /*                  */
+
+/* end of struct st_jcu_from_jcqtbl0 */
+    volatile uint8_t   JCHTBD0;                                /*  JCHTBD0         */
+    volatile uint8_t   dummy153[31];                           /*                  */
+    volatile uint8_t   JCHTBA0;                                /*  JCHTBA0         */
+    volatile uint8_t   dummy154[223];                          /*                  */
+    volatile uint8_t   JCHTBD1;                                /*  JCHTBD1         */
+    volatile uint8_t   dummy155[31];                           /*                  */
+    volatile uint8_t   JCHTBA1;                                /*  JCHTBA1         */
+} r_io_jcu_t;
+
+
+typedef struct st_jcu_from_jcqtbl0
+{
+ 
+    volatile uint8_t   JCQTBL0;                                /*  JCQTBL0         */
+    volatile uint8_t   dummy1[63];                             /*                  */
+} r_io_jcu_from_jcqtbl0_t;
+
+
+/* Channel array defines of JCU (2)*/
+#ifdef  DECLARE_JCU_JCQTBL0_CHANNELS
+volatile struct st_jcu_from_jcqtbl0*  JCU_JCQTBL0[ JCU_JCQTBL0_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    JCU_JCQTBL0_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_JCU_JCQTBL0_CHANNELS */
+/* End of channel array defines of JCU (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/l2c_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/l2c_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/l2c_iodefine.h	(revision 429)
@@ -0,0 +1,231 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : l2c_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef L2C_IODEFINE_H
+#define L2C_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define L2C     (*(struct st_l2c     *)0x3FFFF000uL) /* L2C */
+
+
+/* Start of channel array defines of L2C */
+
+/* Channel array defines of L2C_FROM_REG9_D_LOCKDOWN0_ARRAY */
+/*(Sample) value = L2C_FROM_REG9_D_LOCKDOWN0_ARRAY[ channel ]->REG9_D_LOCKDOWN0; */
+#define L2C_FROM_REG9_D_LOCKDOWN0_ARRAY_COUNT  (8)
+#define L2C_FROM_REG9_D_LOCKDOWN0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &L2C_FROM_REG9_D_LOCKDOWN0, &L2C_FROM_REG9_D_LOCKDOWN1, &L2C_FROM_REG9_D_LOCKDOWN2, &L2C_FROM_REG9_D_LOCKDOWN3, &L2C_FROM_REG9_D_LOCKDOWN4, &L2C_FROM_REG9_D_LOCKDOWN5, &L2C_FROM_REG9_D_LOCKDOWN6, &L2C_FROM_REG9_D_LOCKDOWN7 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define L2C_FROM_REG9_D_LOCKDOWN0 (*(struct st_l2c_from_reg9_d_lockdown0 *)&L2C.REG9_D_LOCKDOWN0) /* L2C_FROM_REG9_D_LOCKDOWN0 */
+#define L2C_FROM_REG9_D_LOCKDOWN1 (*(struct st_l2c_from_reg9_d_lockdown0 *)&L2C.REG9_D_LOCKDOWN1) /* L2C_FROM_REG9_D_LOCKDOWN1 */
+#define L2C_FROM_REG9_D_LOCKDOWN2 (*(struct st_l2c_from_reg9_d_lockdown0 *)&L2C.REG9_D_LOCKDOWN2) /* L2C_FROM_REG9_D_LOCKDOWN2 */
+#define L2C_FROM_REG9_D_LOCKDOWN3 (*(struct st_l2c_from_reg9_d_lockdown0 *)&L2C.REG9_D_LOCKDOWN3) /* L2C_FROM_REG9_D_LOCKDOWN3 */
+#define L2C_FROM_REG9_D_LOCKDOWN4 (*(struct st_l2c_from_reg9_d_lockdown0 *)&L2C.REG9_D_LOCKDOWN4) /* L2C_FROM_REG9_D_LOCKDOWN4 */
+#define L2C_FROM_REG9_D_LOCKDOWN5 (*(struct st_l2c_from_reg9_d_lockdown0 *)&L2C.REG9_D_LOCKDOWN5) /* L2C_FROM_REG9_D_LOCKDOWN5 */
+#define L2C_FROM_REG9_D_LOCKDOWN6 (*(struct st_l2c_from_reg9_d_lockdown0 *)&L2C.REG9_D_LOCKDOWN6) /* L2C_FROM_REG9_D_LOCKDOWN6 */
+#define L2C_FROM_REG9_D_LOCKDOWN7 (*(struct st_l2c_from_reg9_d_lockdown0 *)&L2C.REG9_D_LOCKDOWN7) /* L2C_FROM_REG9_D_LOCKDOWN7 */
+
+/* End of channel array defines of L2C */
+
+
+#define L2CREG0_CACHE_ID (L2C.REG0_CACHE_ID)
+#define L2CREG0_CACHE_TYPE (L2C.REG0_CACHE_TYPE)
+#define L2CREG1_CONTROL (L2C.REG1_CONTROL)
+#define L2CREG1_AUX_CONTROL (L2C.REG1_AUX_CONTROL)
+#define L2CREG1_TAG_RAM_CONTROL (L2C.REG1_TAG_RAM_CONTROL)
+#define L2CREG1_DATA_RAM_CONTROL (L2C.REG1_DATA_RAM_CONTROL)
+#define L2CREG2_EV_COUNTER_CTRL (L2C.REG2_EV_COUNTER_CTRL)
+#define L2CREG2_EV_COUNTER1_CFG (L2C.REG2_EV_COUNTER1_CFG)
+#define L2CREG2_EV_COUNTER0_CFG (L2C.REG2_EV_COUNTER0_CFG)
+#define L2CREG2_EV_COUNTER1 (L2C.REG2_EV_COUNTER1)
+#define L2CREG2_EV_COUNTER0 (L2C.REG2_EV_COUNTER0)
+#define L2CREG2_INT_MASK (L2C.REG2_INT_MASK)
+#define L2CREG2_INT_MASK_STATUS (L2C.REG2_INT_MASK_STATUS)
+#define L2CREG2_INT_RAW_STATUS (L2C.REG2_INT_RAW_STATUS)
+#define L2CREG2_INT_CLEAR (L2C.REG2_INT_CLEAR)
+#define L2CREG7_CACHE_SYNC (L2C.REG7_CACHE_SYNC)
+#define L2CREG7_INV_PA (L2C.REG7_INV_PA)
+#define L2CREG7_INV_WAY (L2C.REG7_INV_WAY)
+#define L2CREG7_CLEAN_PA (L2C.REG7_CLEAN_PA)
+#define L2CREG7_CLEAN_INDEX (L2C.REG7_CLEAN_INDEX)
+#define L2CREG7_CLEAN_WAY (L2C.REG7_CLEAN_WAY)
+#define L2CREG7_CLEAN_INV_PA (L2C.REG7_CLEAN_INV_PA)
+#define L2CREG7_CLEAN_INV_INDEX (L2C.REG7_CLEAN_INV_INDEX)
+#define L2CREG7_CLEAN_INV_WAY (L2C.REG7_CLEAN_INV_WAY)
+#define L2CREG9_D_LOCKDOWN0 (L2C.REG9_D_LOCKDOWN0)
+#define L2CREG9_I_LOCKDOWN0 (L2C.REG9_I_LOCKDOWN0)
+#define L2CREG9_D_LOCKDOWN1 (L2C.REG9_D_LOCKDOWN1)
+#define L2CREG9_I_LOCKDOWN1 (L2C.REG9_I_LOCKDOWN1)
+#define L2CREG9_D_LOCKDOWN2 (L2C.REG9_D_LOCKDOWN2)
+#define L2CREG9_I_LOCKDOWN2 (L2C.REG9_I_LOCKDOWN2)
+#define L2CREG9_D_LOCKDOWN3 (L2C.REG9_D_LOCKDOWN3)
+#define L2CREG9_I_LOCKDOWN3 (L2C.REG9_I_LOCKDOWN3)
+#define L2CREG9_D_LOCKDOWN4 (L2C.REG9_D_LOCKDOWN4)
+#define L2CREG9_I_LOCKDOWN4 (L2C.REG9_I_LOCKDOWN4)
+#define L2CREG9_D_LOCKDOWN5 (L2C.REG9_D_LOCKDOWN5)
+#define L2CREG9_I_LOCKDOWN5 (L2C.REG9_I_LOCKDOWN5)
+#define L2CREG9_D_LOCKDOWN6 (L2C.REG9_D_LOCKDOWN6)
+#define L2CREG9_I_LOCKDOWN6 (L2C.REG9_I_LOCKDOWN6)
+#define L2CREG9_D_LOCKDOWN7 (L2C.REG9_D_LOCKDOWN7)
+#define L2CREG9_I_LOCKDOWN7 (L2C.REG9_I_LOCKDOWN7)
+#define L2CREG9_LOCK_LINE_EN (L2C.REG9_LOCK_LINE_EN)
+#define L2CREG9_UNLOCK_WAY (L2C.REG9_UNLOCK_WAY)
+#define L2CREG12_ADDR_FILTERING_START (L2C.REG12_ADDR_FILTERING_START)
+#define L2CREG12_ADDR_FILTERING_END (L2C.REG12_ADDR_FILTERING_END)
+#define L2CREG15_DEBUG_CTRL (L2C.REG15_DEBUG_CTRL)
+#define L2CREG15_PREFETCH_CTRL (L2C.REG15_PREFETCH_CTRL)
+#define L2CREG15_POWER_CTRL (L2C.REG15_POWER_CTRL)
+
+
+typedef struct st_l2c
+{
+                                                           /* L2C              */
+    volatile uint32_t  REG0_CACHE_ID;                          /*  REG0_CACHE_ID   */
+    volatile uint32_t  REG0_CACHE_TYPE;                        /*  REG0_CACHE_TYPE */
+    volatile uint8_t   dummy8[248];                            /*                  */
+    volatile uint32_t  REG1_CONTROL;                           /*  REG1_CONTROL    */
+    volatile uint32_t  REG1_AUX_CONTROL;                       /*  REG1_AUX_CONTROL */
+    volatile uint32_t  REG1_TAG_RAM_CONTROL;                   /*  REG1_TAG_RAM_CONTROL */
+    volatile uint32_t  REG1_DATA_RAM_CONTROL;                  /*  REG1_DATA_RAM_CONTROL */
+    volatile uint8_t   dummy9[240];                            /*                  */
+    volatile uint32_t  REG2_EV_COUNTER_CTRL;                   /*  REG2_EV_COUNTER_CTRL */
+    volatile uint32_t  REG2_EV_COUNTER1_CFG;                   /*  REG2_EV_COUNTER1_CFG */
+    volatile uint32_t  REG2_EV_COUNTER0_CFG;                   /*  REG2_EV_COUNTER0_CFG */
+    volatile uint32_t  REG2_EV_COUNTER1;                       /*  REG2_EV_COUNTER1 */
+    volatile uint32_t  REG2_EV_COUNTER0;                       /*  REG2_EV_COUNTER0 */
+    volatile uint32_t  REG2_INT_MASK;                          /*  REG2_INT_MASK   */
+    volatile uint32_t  REG2_INT_MASK_STATUS;                   /*  REG2_INT_MASK_STATUS */
+    volatile uint32_t  REG2_INT_RAW_STATUS;                    /*  REG2_INT_RAW_STATUS */
+    volatile uint32_t  REG2_INT_CLEAR;                         /*  REG2_INT_CLEAR  */
+    volatile uint8_t   dummy10[1292];                          /*                  */
+    volatile uint32_t  REG7_CACHE_SYNC;                        /*  REG7_CACHE_SYNC */
+    volatile uint8_t   dummy11[60];                            /*                  */
+    volatile uint32_t  REG7_INV_PA;                            /*  REG7_INV_PA     */
+    volatile uint8_t   dummy12[8];                             /*                  */
+    volatile uint32_t  REG7_INV_WAY;                           /*  REG7_INV_WAY    */
+    volatile uint8_t   dummy13[48];                            /*                  */
+    volatile uint32_t  REG7_CLEAN_PA;                          /*  REG7_CLEAN_PA   */
+    volatile uint8_t   dummy14[4];                             /*                  */
+    volatile uint32_t  REG7_CLEAN_INDEX;                       /*  REG7_CLEAN_INDEX */
+    volatile uint32_t  REG7_CLEAN_WAY;                         /*  REG7_CLEAN_WAY  */
+    volatile uint8_t   dummy15[48];                            /*                  */
+    volatile uint32_t  REG7_CLEAN_INV_PA;                      /*  REG7_CLEAN_INV_PA */
+    volatile uint8_t   dummy16[4];                             /*                  */
+    volatile uint32_t  REG7_CLEAN_INV_INDEX;                   /*  REG7_CLEAN_INV_INDEX */
+    volatile uint32_t  REG7_CLEAN_INV_WAY;                     /*  REG7_CLEAN_INV_WAY */
+    volatile uint8_t   dummy17[256];                           /*                  */
+
+/* start of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint32_t  REG9_D_LOCKDOWN0;                       /*  REG9_D_LOCKDOWN0 */
+    volatile uint32_t  REG9_I_LOCKDOWN0;                       /*  REG9_I_LOCKDOWN0 */
+
+/* end of struct st_l2c_from_reg9_d_lockdown0 */
+
+/* start of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint32_t  REG9_D_LOCKDOWN1;                       /*  REG9_D_LOCKDOWN1 */
+    volatile uint32_t  REG9_I_LOCKDOWN1;                       /*  REG9_I_LOCKDOWN1 */
+
+/* end of struct st_l2c_from_reg9_d_lockdown0 */
+
+/* start of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint32_t  REG9_D_LOCKDOWN2;                       /*  REG9_D_LOCKDOWN2 */
+    volatile uint32_t  REG9_I_LOCKDOWN2;                       /*  REG9_I_LOCKDOWN2 */
+
+/* end of struct st_l2c_from_reg9_d_lockdown0 */
+
+/* start of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint32_t  REG9_D_LOCKDOWN3;                       /*  REG9_D_LOCKDOWN3 */
+    volatile uint32_t  REG9_I_LOCKDOWN3;                       /*  REG9_I_LOCKDOWN3 */
+
+/* end of struct st_l2c_from_reg9_d_lockdown0 */
+
+/* start of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint32_t  REG9_D_LOCKDOWN4;                       /*  REG9_D_LOCKDOWN4 */
+    volatile uint32_t  REG9_I_LOCKDOWN4;                       /*  REG9_I_LOCKDOWN4 */
+
+/* end of struct st_l2c_from_reg9_d_lockdown0 */
+
+/* start of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint32_t  REG9_D_LOCKDOWN5;                       /*  REG9_D_LOCKDOWN5 */
+    volatile uint32_t  REG9_I_LOCKDOWN5;                       /*  REG9_I_LOCKDOWN5 */
+
+/* end of struct st_l2c_from_reg9_d_lockdown0 */
+
+/* start of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint32_t  REG9_D_LOCKDOWN6;                       /*  REG9_D_LOCKDOWN6 */
+    volatile uint32_t  REG9_I_LOCKDOWN6;                       /*  REG9_I_LOCKDOWN6 */
+
+/* end of struct st_l2c_from_reg9_d_lockdown0 */
+
+/* start of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint32_t  REG9_D_LOCKDOWN7;                       /*  REG9_D_LOCKDOWN7 */
+    volatile uint32_t  REG9_I_LOCKDOWN7;                       /*  REG9_I_LOCKDOWN7 */
+
+/* end of struct st_l2c_from_reg9_d_lockdown0 */
+    volatile uint8_t   dummy18[16];                            /*                  */
+    volatile uint32_t  REG9_LOCK_LINE_EN;                      /*  REG9_LOCK_LINE_EN */
+    volatile uint32_t  REG9_UNLOCK_WAY;                        /*  REG9_UNLOCK_WAY */
+    volatile uint8_t   dummy19[680];                           /*                  */
+    volatile uint32_t  REG12_ADDR_FILTERING_START;             /*  REG12_ADDR_FILTERING_START */
+    volatile uint32_t  REG12_ADDR_FILTERING_END;               /*  REG12_ADDR_FILTERING_END */
+    volatile uint8_t   dummy20[824];                           /*                  */
+    volatile uint32_t  REG15_DEBUG_CTRL;                       /*  REG15_DEBUG_CTRL */
+    volatile uint8_t   dummy21[28];                            /*                  */
+    volatile uint32_t  REG15_PREFETCH_CTRL;                    /*  REG15_PREFETCH_CTRL */
+    volatile uint8_t   dummy22[28];                            /*                  */
+    volatile uint32_t  REG15_POWER_CTRL;                       /*  REG15_POWER_CTRL */
+} r_io_l2c_t;
+
+
+typedef struct st_l2c_from_reg9_d_lockdown0
+{
+ 
+    volatile uint32_t  REG9_D_LOCKDOWN0;                       /*  REG9_D_LOCKDOWN0 */
+    volatile uint32_t  REG9_I_LOCKDOWN0;                       /*  REG9_I_LOCKDOWN0 */
+} r_io_l2c_from_reg9_d_lockdown_t /* Short of r_io_l2c_from_reg9_d_lockdown0_t */;
+
+
+/* Channel array defines of L2C (2)*/
+#ifdef  DECLARE_L2C_FROM_REG9_D_LOCKDOWN0_ARRAY_CHANNELS
+volatile struct st_l2c_from_reg9_d_lockdown0*  L2C_FROM_REG9_D_LOCKDOWN0_ARRAY[ L2C_FROM_REG9_D_LOCKDOWN0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    L2C_FROM_REG9_D_LOCKDOWN0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_L2C_FROM_REG9_D_LOCKDOWN0_ARRAY_CHANNELS */
+/* End of channel array defines of L2C (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/lin_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/lin_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/lin_iodefine.h	(revision 429)
@@ -0,0 +1,161 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : lin_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef LIN_IODEFINE_H
+#define LIN_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define LIN0    (*(struct st_lin     *)0xFCFE9000uL) /* LIN0 */
+#define LIN1    (*(struct st_lin     *)0xFCFE9800uL) /* LIN1 */
+
+
+/* Start of channel array defines of LIN */
+
+/* Channel array defines of LIN */
+/*(Sample) value = LIN[ channel ]->RLN3nLWBR; */
+#define LIN_COUNT  (2)
+#define LIN_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &LIN0, &LIN1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of LIN */
+
+
+#define LIN0RLN30LWBR (LIN0.RLN3nLWBR)
+#define LIN0RLN30LBRP0 (LIN0.RLN3nLBRP0)
+#define LIN0RLN30LBRP1 (LIN0.RLN3nLBRP1)
+#define LIN0RLN30LSTC (LIN0.RLN3nLSTC)
+#define LIN0RLN30LMD (LIN0.RLN3nLMD)
+#define LIN0RLN30LBFC (LIN0.RLN3nLBFC)
+#define LIN0RLN30LSC (LIN0.RLN3nLSC)
+#define LIN0RLN30LWUP (LIN0.RLN3nLWUP)
+#define LIN0RLN30LIE (LIN0.RLN3nLIE)
+#define LIN0RLN30LEDE (LIN0.RLN3nLEDE)
+#define LIN0RLN30LCUC (LIN0.RLN3nLCUC)
+#define LIN0RLN30LTRC (LIN0.RLN3nLTRC)
+#define LIN0RLN30LMST (LIN0.RLN3nLMST)
+#define LIN0RLN30LST (LIN0.RLN3nLST)
+#define LIN0RLN30LEST (LIN0.RLN3nLEST)
+#define LIN0RLN30LDFC (LIN0.RLN3nLDFC)
+#define LIN0RLN30LIDB (LIN0.RLN3nLIDB)
+#define LIN0RLN30LCBR (LIN0.RLN3nLCBR)
+#define LIN0RLN30LDBR1 (LIN0.RLN3nLDBR1)
+#define LIN0RLN30LDBR2 (LIN0.RLN3nLDBR2)
+#define LIN0RLN30LDBR3 (LIN0.RLN3nLDBR3)
+#define LIN0RLN30LDBR4 (LIN0.RLN3nLDBR4)
+#define LIN0RLN30LDBR5 (LIN0.RLN3nLDBR5)
+#define LIN0RLN30LDBR6 (LIN0.RLN3nLDBR6)
+#define LIN0RLN30LDBR7 (LIN0.RLN3nLDBR7)
+#define LIN0RLN30LDBR8 (LIN0.RLN3nLDBR8)
+#define LIN1RLN31LWBR (LIN1.RLN3nLWBR)
+#define LIN1RLN31LBRP0 (LIN1.RLN3nLBRP0)
+#define LIN1RLN31LBRP1 (LIN1.RLN3nLBRP1)
+#define LIN1RLN31LSTC (LIN1.RLN3nLSTC)
+#define LIN1RLN31LMD (LIN1.RLN3nLMD)
+#define LIN1RLN31LBFC (LIN1.RLN3nLBFC)
+#define LIN1RLN31LSC (LIN1.RLN3nLSC)
+#define LIN1RLN31LWUP (LIN1.RLN3nLWUP)
+#define LIN1RLN31LIE (LIN1.RLN3nLIE)
+#define LIN1RLN31LEDE (LIN1.RLN3nLEDE)
+#define LIN1RLN31LCUC (LIN1.RLN3nLCUC)
+#define LIN1RLN31LTRC (LIN1.RLN3nLTRC)
+#define LIN1RLN31LMST (LIN1.RLN3nLMST)
+#define LIN1RLN31LST (LIN1.RLN3nLST)
+#define LIN1RLN31LEST (LIN1.RLN3nLEST)
+#define LIN1RLN31LDFC (LIN1.RLN3nLDFC)
+#define LIN1RLN31LIDB (LIN1.RLN3nLIDB)
+#define LIN1RLN31LCBR (LIN1.RLN3nLCBR)
+#define LIN1RLN31LDBR1 (LIN1.RLN3nLDBR1)
+#define LIN1RLN31LDBR2 (LIN1.RLN3nLDBR2)
+#define LIN1RLN31LDBR3 (LIN1.RLN3nLDBR3)
+#define LIN1RLN31LDBR4 (LIN1.RLN3nLDBR4)
+#define LIN1RLN31LDBR5 (LIN1.RLN3nLDBR5)
+#define LIN1RLN31LDBR6 (LIN1.RLN3nLDBR6)
+#define LIN1RLN31LDBR7 (LIN1.RLN3nLDBR7)
+#define LIN1RLN31LDBR8 (LIN1.RLN3nLDBR8)
+
+#define LIN_LDBn_COUNT (8)
+
+
+typedef struct st_lin
+{
+                                                           /* LIN              */
+    volatile uint8_t   dummy1[1];                              /*                  */
+    volatile uint8_t   RLN3nLWBR;                              /*  RLN3nLWBR       */
+    volatile uint8_t   RLN3nLBRP0;                             /*  RLN3nLBRP0      */
+    volatile uint8_t   RLN3nLBRP1;                             /*  RLN3nLBRP1      */
+    volatile uint8_t   RLN3nLSTC;                              /*  RLN3nLSTC       */
+    volatile uint8_t   dummy2[3];                              /*                  */
+    volatile uint8_t   RLN3nLMD;                               /*  RLN3nLMD        */
+    volatile uint8_t   RLN3nLBFC;                              /*  RLN3nLBFC       */
+    volatile uint8_t   RLN3nLSC;                               /*  RLN3nLSC        */
+    volatile uint8_t   RLN3nLWUP;                              /*  RLN3nLWUP       */
+    volatile uint8_t   RLN3nLIE;                               /*  RLN3nLIE        */
+    volatile uint8_t   RLN3nLEDE;                              /*  RLN3nLEDE       */
+    volatile uint8_t   RLN3nLCUC;                              /*  RLN3nLCUC       */
+    volatile uint8_t   dummy3[1];                              /*                  */
+    volatile uint8_t   RLN3nLTRC;                              /*  RLN3nLTRC       */
+    volatile uint8_t   RLN3nLMST;                              /*  RLN3nLMST       */
+    volatile uint8_t   RLN3nLST;                               /*  RLN3nLST        */
+    volatile uint8_t   RLN3nLEST;                              /*  RLN3nLEST       */
+    volatile uint8_t   RLN3nLDFC;                              /*  RLN3nLDFC       */
+    volatile uint8_t   RLN3nLIDB;                              /*  RLN3nLIDB       */
+    volatile uint8_t   RLN3nLCBR;                              /*  RLN3nLCBR       */
+    volatile uint8_t   dummy4[1];                              /*                  */
+
+/* #define LIN_LDBn_COUNT (8) */
+    volatile uint8_t   RLN3nLDBR1;                             /*  RLN3nLDBR1      */
+    volatile uint8_t   RLN3nLDBR2;                             /*  RLN3nLDBR2      */
+    volatile uint8_t   RLN3nLDBR3;                             /*  RLN3nLDBR3      */
+    volatile uint8_t   RLN3nLDBR4;                             /*  RLN3nLDBR4      */
+    volatile uint8_t   RLN3nLDBR5;                             /*  RLN3nLDBR5      */
+    volatile uint8_t   RLN3nLDBR6;                             /*  RLN3nLDBR6      */
+    volatile uint8_t   RLN3nLDBR7;                             /*  RLN3nLDBR7      */
+    volatile uint8_t   RLN3nLDBR8;                             /*  RLN3nLDBR8      */
+} r_io_lin_t;
+
+
+/* Channel array defines of LIN (2)*/
+#ifdef  DECLARE_LIN_CHANNELS
+volatile struct st_lin*  LIN[ LIN_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    LIN_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_LIN_CHANNELS */
+/* End of channel array defines of LIN (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/lvds_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/lvds_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/lvds_iodefine.h	(revision 429)
@@ -0,0 +1,63 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : lvds_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef LVDS_IODEFINE_H
+#define LVDS_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define LVDS    (*(struct st_lvds    *)0xFCFF7A30uL) /* LVDS */
+
+
+#define LVDSLVDS_UPDATE (LVDS.LVDS_UPDATE)
+#define LVDSLVDSFCL (LVDS.LVDSFCL)
+#define LVDSLCLKSELR (LVDS.LCLKSELR)
+#define LVDSLPLLSETR (LVDS.LPLLSETR)
+#define LVDSLPHYACC (LVDS.LPHYACC)
+
+
+typedef struct st_lvds
+{
+                                                           /* LVDS             */
+    volatile uint32_t  LVDS_UPDATE;                            /*  LVDS_UPDATE     */
+    volatile uint32_t  LVDSFCL;                                /*  LVDSFCL         */
+    volatile uint8_t   dummy608[24];                           /*                  */
+    volatile uint32_t  LCLKSELR;                               /*  LCLKSELR        */
+    volatile uint32_t  LPLLSETR;                               /*  LPLLSETR        */
+    volatile uint8_t   dummy609[4];                            /*                  */
+    volatile uint32_t  LPHYACC;                                /*  LPHYACC         */
+} r_io_lvds_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mlb_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mlb_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mlb_iodefine.h	(revision 429)
@@ -0,0 +1,579 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : mlb_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef MLB_IODEFINE_H
+#define MLB_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define MLB     (*(struct st_mlb     *)0xE8034000uL) /* MLB */
+
+
+/* Start of channel array defines of MLB */
+
+/* Channel array defines of MLB_FROM_CECR0_ARRAY */
+/*(Sample) value = MLB_FROM_CECR0_ARRAY[ channel ]->CECR0; */
+#define MLB_FROM_CECR0_ARRAY_COUNT  (31)
+#define MLB_FROM_CECR0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &MLB_FROM_CECR0, &MLB_FROM_CECR1, &MLB_FROM_CECR2, &MLB_FROM_CECR3, &MLB_FROM_CECR4, &MLB_FROM_CECR5, &MLB_FROM_CECR6, &MLB_FROM_CECR7, \
+    &MLB_FROM_CECR8, &MLB_FROM_CECR9, &MLB_FROM_CECR10, &MLB_FROM_CECR11, &MLB_FROM_CECR12, &MLB_FROM_CECR13, &MLB_FROM_CECR14, &MLB_FROM_CECR15, \
+    &MLB_FROM_CECR16, &MLB_FROM_CECR17, &MLB_FROM_CECR18, &MLB_FROM_CECR19, &MLB_FROM_CECR20, &MLB_FROM_CECR21, &MLB_FROM_CECR22, &MLB_FROM_CECR23, \
+    &MLB_FROM_CECR24, &MLB_FROM_CECR25, &MLB_FROM_CECR26, &MLB_FROM_CECR27, &MLB_FROM_CECR28, &MLB_FROM_CECR29, &MLB_FROM_CECR30 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define MLB_FROM_CECR0 (*(struct st_mlb_from_cecr0 *)&MLB.CECR0) /* MLB_FROM_CECR0 */
+#define MLB_FROM_CECR1 (*(struct st_mlb_from_cecr0 *)&MLB.CECR1) /* MLB_FROM_CECR1 */
+#define MLB_FROM_CECR2 (*(struct st_mlb_from_cecr0 *)&MLB.CECR2) /* MLB_FROM_CECR2 */
+#define MLB_FROM_CECR3 (*(struct st_mlb_from_cecr0 *)&MLB.CECR3) /* MLB_FROM_CECR3 */
+#define MLB_FROM_CECR4 (*(struct st_mlb_from_cecr0 *)&MLB.CECR4) /* MLB_FROM_CECR4 */
+#define MLB_FROM_CECR5 (*(struct st_mlb_from_cecr0 *)&MLB.CECR5) /* MLB_FROM_CECR5 */
+#define MLB_FROM_CECR6 (*(struct st_mlb_from_cecr0 *)&MLB.CECR6) /* MLB_FROM_CECR6 */
+#define MLB_FROM_CECR7 (*(struct st_mlb_from_cecr0 *)&MLB.CECR7) /* MLB_FROM_CECR7 */
+#define MLB_FROM_CECR8 (*(struct st_mlb_from_cecr0 *)&MLB.CECR8) /* MLB_FROM_CECR8 */
+#define MLB_FROM_CECR9 (*(struct st_mlb_from_cecr0 *)&MLB.CECR9) /* MLB_FROM_CECR9 */
+#define MLB_FROM_CECR10 (*(struct st_mlb_from_cecr0 *)&MLB.CECR10) /* MLB_FROM_CECR10 */
+#define MLB_FROM_CECR11 (*(struct st_mlb_from_cecr0 *)&MLB.CECR11) /* MLB_FROM_CECR11 */
+#define MLB_FROM_CECR12 (*(struct st_mlb_from_cecr0 *)&MLB.CECR12) /* MLB_FROM_CECR12 */
+#define MLB_FROM_CECR13 (*(struct st_mlb_from_cecr0 *)&MLB.CECR13) /* MLB_FROM_CECR13 */
+#define MLB_FROM_CECR14 (*(struct st_mlb_from_cecr0 *)&MLB.CECR14) /* MLB_FROM_CECR14 */
+#define MLB_FROM_CECR15 (*(struct st_mlb_from_cecr0 *)&MLB.CECR15) /* MLB_FROM_CECR15 */
+#define MLB_FROM_CECR16 (*(struct st_mlb_from_cecr0 *)&MLB.CECR16) /* MLB_FROM_CECR16 */
+#define MLB_FROM_CECR17 (*(struct st_mlb_from_cecr0 *)&MLB.CECR17) /* MLB_FROM_CECR17 */
+#define MLB_FROM_CECR18 (*(struct st_mlb_from_cecr0 *)&MLB.CECR18) /* MLB_FROM_CECR18 */
+#define MLB_FROM_CECR19 (*(struct st_mlb_from_cecr0 *)&MLB.CECR19) /* MLB_FROM_CECR19 */
+#define MLB_FROM_CECR20 (*(struct st_mlb_from_cecr0 *)&MLB.CECR20) /* MLB_FROM_CECR20 */
+#define MLB_FROM_CECR21 (*(struct st_mlb_from_cecr0 *)&MLB.CECR21) /* MLB_FROM_CECR21 */
+#define MLB_FROM_CECR22 (*(struct st_mlb_from_cecr0 *)&MLB.CECR22) /* MLB_FROM_CECR22 */
+#define MLB_FROM_CECR23 (*(struct st_mlb_from_cecr0 *)&MLB.CECR23) /* MLB_FROM_CECR23 */
+#define MLB_FROM_CECR24 (*(struct st_mlb_from_cecr0 *)&MLB.CECR24) /* MLB_FROM_CECR24 */
+#define MLB_FROM_CECR25 (*(struct st_mlb_from_cecr0 *)&MLB.CECR25) /* MLB_FROM_CECR25 */
+#define MLB_FROM_CECR26 (*(struct st_mlb_from_cecr0 *)&MLB.CECR26) /* MLB_FROM_CECR26 */
+#define MLB_FROM_CECR27 (*(struct st_mlb_from_cecr0 *)&MLB.CECR27) /* MLB_FROM_CECR27 */
+#define MLB_FROM_CECR28 (*(struct st_mlb_from_cecr0 *)&MLB.CECR28) /* MLB_FROM_CECR28 */
+#define MLB_FROM_CECR29 (*(struct st_mlb_from_cecr0 *)&MLB.CECR29) /* MLB_FROM_CECR29 */
+#define MLB_FROM_CECR30 (*(struct st_mlb_from_cecr0 *)&MLB.CECR30) /* MLB_FROM_CECR30 */
+
+/* End of channel array defines of MLB */
+
+
+#define MLBDCCR (MLB.DCCR)
+#define MLBSSCR (MLB.SSCR)
+#define MLBSDCR (MLB.SDCR)
+#define MLBSMCR (MLB.SMCR)
+#define MLBVCCR (MLB.VCCR)
+#define MLBSBCR (MLB.SBCR)
+#define MLBABCR (MLB.ABCR)
+#define MLBCBCR (MLB.CBCR)
+#define MLBIBCR (MLB.IBCR)
+#define MLBCICR (MLB.CICR)
+#define MLBCECR0 (MLB.CECR0)
+#define MLBCSCR0 (MLB.CSCR0)
+#define MLBCCBCR0 (MLB.CCBCR0)
+#define MLBCNBCR0 (MLB.CNBCR0)
+#define MLBCECR1 (MLB.CECR1)
+#define MLBCSCR1 (MLB.CSCR1)
+#define MLBCCBCR1 (MLB.CCBCR1)
+#define MLBCNBCR1 (MLB.CNBCR1)
+#define MLBCECR2 (MLB.CECR2)
+#define MLBCSCR2 (MLB.CSCR2)
+#define MLBCCBCR2 (MLB.CCBCR2)
+#define MLBCNBCR2 (MLB.CNBCR2)
+#define MLBCECR3 (MLB.CECR3)
+#define MLBCSCR3 (MLB.CSCR3)
+#define MLBCCBCR3 (MLB.CCBCR3)
+#define MLBCNBCR3 (MLB.CNBCR3)
+#define MLBCECR4 (MLB.CECR4)
+#define MLBCSCR4 (MLB.CSCR4)
+#define MLBCCBCR4 (MLB.CCBCR4)
+#define MLBCNBCR4 (MLB.CNBCR4)
+#define MLBCECR5 (MLB.CECR5)
+#define MLBCSCR5 (MLB.CSCR5)
+#define MLBCCBCR5 (MLB.CCBCR5)
+#define MLBCNBCR5 (MLB.CNBCR5)
+#define MLBCECR6 (MLB.CECR6)
+#define MLBCSCR6 (MLB.CSCR6)
+#define MLBCCBCR6 (MLB.CCBCR6)
+#define MLBCNBCR6 (MLB.CNBCR6)
+#define MLBCECR7 (MLB.CECR7)
+#define MLBCSCR7 (MLB.CSCR7)
+#define MLBCCBCR7 (MLB.CCBCR7)
+#define MLBCNBCR7 (MLB.CNBCR7)
+#define MLBCECR8 (MLB.CECR8)
+#define MLBCSCR8 (MLB.CSCR8)
+#define MLBCCBCR8 (MLB.CCBCR8)
+#define MLBCNBCR8 (MLB.CNBCR8)
+#define MLBCECR9 (MLB.CECR9)
+#define MLBCSCR9 (MLB.CSCR9)
+#define MLBCCBCR9 (MLB.CCBCR9)
+#define MLBCNBCR9 (MLB.CNBCR9)
+#define MLBCECR10 (MLB.CECR10)
+#define MLBCSCR10 (MLB.CSCR10)
+#define MLBCCBCR10 (MLB.CCBCR10)
+#define MLBCNBCR10 (MLB.CNBCR10)
+#define MLBCECR11 (MLB.CECR11)
+#define MLBCSCR11 (MLB.CSCR11)
+#define MLBCCBCR11 (MLB.CCBCR11)
+#define MLBCNBCR11 (MLB.CNBCR11)
+#define MLBCECR12 (MLB.CECR12)
+#define MLBCSCR12 (MLB.CSCR12)
+#define MLBCCBCR12 (MLB.CCBCR12)
+#define MLBCNBCR12 (MLB.CNBCR12)
+#define MLBCECR13 (MLB.CECR13)
+#define MLBCSCR13 (MLB.CSCR13)
+#define MLBCCBCR13 (MLB.CCBCR13)
+#define MLBCNBCR13 (MLB.CNBCR13)
+#define MLBCECR14 (MLB.CECR14)
+#define MLBCSCR14 (MLB.CSCR14)
+#define MLBCCBCR14 (MLB.CCBCR14)
+#define MLBCNBCR14 (MLB.CNBCR14)
+#define MLBCECR15 (MLB.CECR15)
+#define MLBCSCR15 (MLB.CSCR15)
+#define MLBCCBCR15 (MLB.CCBCR15)
+#define MLBCNBCR15 (MLB.CNBCR15)
+#define MLBCECR16 (MLB.CECR16)
+#define MLBCSCR16 (MLB.CSCR16)
+#define MLBCCBCR16 (MLB.CCBCR16)
+#define MLBCNBCR16 (MLB.CNBCR16)
+#define MLBCECR17 (MLB.CECR17)
+#define MLBCSCR17 (MLB.CSCR17)
+#define MLBCCBCR17 (MLB.CCBCR17)
+#define MLBCNBCR17 (MLB.CNBCR17)
+#define MLBCECR18 (MLB.CECR18)
+#define MLBCSCR18 (MLB.CSCR18)
+#define MLBCCBCR18 (MLB.CCBCR18)
+#define MLBCNBCR18 (MLB.CNBCR18)
+#define MLBCECR19 (MLB.CECR19)
+#define MLBCSCR19 (MLB.CSCR19)
+#define MLBCCBCR19 (MLB.CCBCR19)
+#define MLBCNBCR19 (MLB.CNBCR19)
+#define MLBCECR20 (MLB.CECR20)
+#define MLBCSCR20 (MLB.CSCR20)
+#define MLBCCBCR20 (MLB.CCBCR20)
+#define MLBCNBCR20 (MLB.CNBCR20)
+#define MLBCECR21 (MLB.CECR21)
+#define MLBCSCR21 (MLB.CSCR21)
+#define MLBCCBCR21 (MLB.CCBCR21)
+#define MLBCNBCR21 (MLB.CNBCR21)
+#define MLBCECR22 (MLB.CECR22)
+#define MLBCSCR22 (MLB.CSCR22)
+#define MLBCCBCR22 (MLB.CCBCR22)
+#define MLBCNBCR22 (MLB.CNBCR22)
+#define MLBCECR23 (MLB.CECR23)
+#define MLBCSCR23 (MLB.CSCR23)
+#define MLBCCBCR23 (MLB.CCBCR23)
+#define MLBCNBCR23 (MLB.CNBCR23)
+#define MLBCECR24 (MLB.CECR24)
+#define MLBCSCR24 (MLB.CSCR24)
+#define MLBCCBCR24 (MLB.CCBCR24)
+#define MLBCNBCR24 (MLB.CNBCR24)
+#define MLBCECR25 (MLB.CECR25)
+#define MLBCSCR25 (MLB.CSCR25)
+#define MLBCCBCR25 (MLB.CCBCR25)
+#define MLBCNBCR25 (MLB.CNBCR25)
+#define MLBCECR26 (MLB.CECR26)
+#define MLBCSCR26 (MLB.CSCR26)
+#define MLBCCBCR26 (MLB.CCBCR26)
+#define MLBCNBCR26 (MLB.CNBCR26)
+#define MLBCECR27 (MLB.CECR27)
+#define MLBCSCR27 (MLB.CSCR27)
+#define MLBCCBCR27 (MLB.CCBCR27)
+#define MLBCNBCR27 (MLB.CNBCR27)
+#define MLBCECR28 (MLB.CECR28)
+#define MLBCSCR28 (MLB.CSCR28)
+#define MLBCCBCR28 (MLB.CCBCR28)
+#define MLBCNBCR28 (MLB.CNBCR28)
+#define MLBCECR29 (MLB.CECR29)
+#define MLBCSCR29 (MLB.CSCR29)
+#define MLBCCBCR29 (MLB.CCBCR29)
+#define MLBCNBCR29 (MLB.CNBCR29)
+#define MLBCECR30 (MLB.CECR30)
+#define MLBCSCR30 (MLB.CSCR30)
+#define MLBCCBCR30 (MLB.CCBCR30)
+#define MLBCNBCR30 (MLB.CNBCR30)
+#define MLBLCBCR0 (MLB.LCBCR0)
+#define MLBLCBCR1 (MLB.LCBCR1)
+#define MLBLCBCR2 (MLB.LCBCR2)
+#define MLBLCBCR3 (MLB.LCBCR3)
+#define MLBLCBCR4 (MLB.LCBCR4)
+#define MLBLCBCR5 (MLB.LCBCR5)
+#define MLBLCBCR6 (MLB.LCBCR6)
+#define MLBLCBCR7 (MLB.LCBCR7)
+#define MLBLCBCR8 (MLB.LCBCR8)
+#define MLBLCBCR9 (MLB.LCBCR9)
+#define MLBLCBCR10 (MLB.LCBCR10)
+#define MLBLCBCR11 (MLB.LCBCR11)
+#define MLBLCBCR12 (MLB.LCBCR12)
+#define MLBLCBCR13 (MLB.LCBCR13)
+#define MLBLCBCR14 (MLB.LCBCR14)
+#define MLBLCBCR15 (MLB.LCBCR15)
+#define MLBLCBCR16 (MLB.LCBCR16)
+#define MLBLCBCR17 (MLB.LCBCR17)
+#define MLBLCBCR18 (MLB.LCBCR18)
+#define MLBLCBCR19 (MLB.LCBCR19)
+#define MLBLCBCR20 (MLB.LCBCR20)
+#define MLBLCBCR21 (MLB.LCBCR21)
+#define MLBLCBCR22 (MLB.LCBCR22)
+#define MLBLCBCR23 (MLB.LCBCR23)
+#define MLBLCBCR24 (MLB.LCBCR24)
+#define MLBLCBCR25 (MLB.LCBCR25)
+#define MLBLCBCR26 (MLB.LCBCR26)
+#define MLBLCBCR27 (MLB.LCBCR27)
+#define MLBLCBCR28 (MLB.LCBCR28)
+#define MLBLCBCR29 (MLB.LCBCR29)
+#define MLBLCBCR30 (MLB.LCBCR30)
+
+#define MLB_LCBCR0_COUNT (31)
+
+
+typedef struct st_mlb
+{
+                                                           /* MLB              */
+    volatile uint32_t  DCCR;                                   /*  DCCR            */
+    volatile uint32_t  SSCR;                                   /*  SSCR            */
+    volatile uint32_t  SDCR;                                   /*  SDCR            */
+    volatile uint32_t  SMCR;                                   /*  SMCR            */
+    volatile uint8_t   dummy156[12];                           /*                  */
+    volatile uint32_t  VCCR;                                   /*  VCCR            */
+    volatile uint32_t  SBCR;                                   /*  SBCR            */
+    volatile uint32_t  ABCR;                                   /*  ABCR            */
+    volatile uint32_t  CBCR;                                   /*  CBCR            */
+    volatile uint32_t  IBCR;                                   /*  IBCR            */
+    volatile uint32_t  CICR;                                   /*  CICR            */
+    volatile uint8_t   dummy157[12];                           /*                  */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR0;                                  /*  CECR0           */
+    volatile uint32_t  CSCR0;                                  /*  CSCR0           */
+    volatile uint32_t  CCBCR0;                                 /*  CCBCR0          */
+    volatile uint32_t  CNBCR0;                                 /*  CNBCR0          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR1;                                  /*  CECR1           */
+    volatile uint32_t  CSCR1;                                  /*  CSCR1           */
+    volatile uint32_t  CCBCR1;                                 /*  CCBCR1          */
+    volatile uint32_t  CNBCR1;                                 /*  CNBCR1          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR2;                                  /*  CECR2           */
+    volatile uint32_t  CSCR2;                                  /*  CSCR2           */
+    volatile uint32_t  CCBCR2;                                 /*  CCBCR2          */
+    volatile uint32_t  CNBCR2;                                 /*  CNBCR2          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR3;                                  /*  CECR3           */
+    volatile uint32_t  CSCR3;                                  /*  CSCR3           */
+    volatile uint32_t  CCBCR3;                                 /*  CCBCR3          */
+    volatile uint32_t  CNBCR3;                                 /*  CNBCR3          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR4;                                  /*  CECR4           */
+    volatile uint32_t  CSCR4;                                  /*  CSCR4           */
+    volatile uint32_t  CCBCR4;                                 /*  CCBCR4          */
+    volatile uint32_t  CNBCR4;                                 /*  CNBCR4          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR5;                                  /*  CECR5           */
+    volatile uint32_t  CSCR5;                                  /*  CSCR5           */
+    volatile uint32_t  CCBCR5;                                 /*  CCBCR5          */
+    volatile uint32_t  CNBCR5;                                 /*  CNBCR5          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR6;                                  /*  CECR6           */
+    volatile uint32_t  CSCR6;                                  /*  CSCR6           */
+    volatile uint32_t  CCBCR6;                                 /*  CCBCR6          */
+    volatile uint32_t  CNBCR6;                                 /*  CNBCR6          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR7;                                  /*  CECR7           */
+    volatile uint32_t  CSCR7;                                  /*  CSCR7           */
+    volatile uint32_t  CCBCR7;                                 /*  CCBCR7          */
+    volatile uint32_t  CNBCR7;                                 /*  CNBCR7          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR8;                                  /*  CECR8           */
+    volatile uint32_t  CSCR8;                                  /*  CSCR8           */
+    volatile uint32_t  CCBCR8;                                 /*  CCBCR8          */
+    volatile uint32_t  CNBCR8;                                 /*  CNBCR8          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR9;                                  /*  CECR9           */
+    volatile uint32_t  CSCR9;                                  /*  CSCR9           */
+    volatile uint32_t  CCBCR9;                                 /*  CCBCR9          */
+    volatile uint32_t  CNBCR9;                                 /*  CNBCR9          */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR10;                                 /*  CECR10          */
+    volatile uint32_t  CSCR10;                                 /*  CSCR10          */
+    volatile uint32_t  CCBCR10;                                /*  CCBCR10         */
+    volatile uint32_t  CNBCR10;                                /*  CNBCR10         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR11;                                 /*  CECR11          */
+    volatile uint32_t  CSCR11;                                 /*  CSCR11          */
+    volatile uint32_t  CCBCR11;                                /*  CCBCR11         */
+    volatile uint32_t  CNBCR11;                                /*  CNBCR11         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR12;                                 /*  CECR12          */
+    volatile uint32_t  CSCR12;                                 /*  CSCR12          */
+    volatile uint32_t  CCBCR12;                                /*  CCBCR12         */
+    volatile uint32_t  CNBCR12;                                /*  CNBCR12         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR13;                                 /*  CECR13          */
+    volatile uint32_t  CSCR13;                                 /*  CSCR13          */
+    volatile uint32_t  CCBCR13;                                /*  CCBCR13         */
+    volatile uint32_t  CNBCR13;                                /*  CNBCR13         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR14;                                 /*  CECR14          */
+    volatile uint32_t  CSCR14;                                 /*  CSCR14          */
+    volatile uint32_t  CCBCR14;                                /*  CCBCR14         */
+    volatile uint32_t  CNBCR14;                                /*  CNBCR14         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR15;                                 /*  CECR15          */
+    volatile uint32_t  CSCR15;                                 /*  CSCR15          */
+    volatile uint32_t  CCBCR15;                                /*  CCBCR15         */
+    volatile uint32_t  CNBCR15;                                /*  CNBCR15         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR16;                                 /*  CECR16          */
+    volatile uint32_t  CSCR16;                                 /*  CSCR16          */
+    volatile uint32_t  CCBCR16;                                /*  CCBCR16         */
+    volatile uint32_t  CNBCR16;                                /*  CNBCR16         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR17;                                 /*  CECR17          */
+    volatile uint32_t  CSCR17;                                 /*  CSCR17          */
+    volatile uint32_t  CCBCR17;                                /*  CCBCR17         */
+    volatile uint32_t  CNBCR17;                                /*  CNBCR17         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR18;                                 /*  CECR18          */
+    volatile uint32_t  CSCR18;                                 /*  CSCR18          */
+    volatile uint32_t  CCBCR18;                                /*  CCBCR18         */
+    volatile uint32_t  CNBCR18;                                /*  CNBCR18         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR19;                                 /*  CECR19          */
+    volatile uint32_t  CSCR19;                                 /*  CSCR19          */
+    volatile uint32_t  CCBCR19;                                /*  CCBCR19         */
+    volatile uint32_t  CNBCR19;                                /*  CNBCR19         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR20;                                 /*  CECR20          */
+    volatile uint32_t  CSCR20;                                 /*  CSCR20          */
+    volatile uint32_t  CCBCR20;                                /*  CCBCR20         */
+    volatile uint32_t  CNBCR20;                                /*  CNBCR20         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR21;                                 /*  CECR21          */
+    volatile uint32_t  CSCR21;                                 /*  CSCR21          */
+    volatile uint32_t  CCBCR21;                                /*  CCBCR21         */
+    volatile uint32_t  CNBCR21;                                /*  CNBCR21         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR22;                                 /*  CECR22          */
+    volatile uint32_t  CSCR22;                                 /*  CSCR22          */
+    volatile uint32_t  CCBCR22;                                /*  CCBCR22         */
+    volatile uint32_t  CNBCR22;                                /*  CNBCR22         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR23;                                 /*  CECR23          */
+    volatile uint32_t  CSCR23;                                 /*  CSCR23          */
+    volatile uint32_t  CCBCR23;                                /*  CCBCR23         */
+    volatile uint32_t  CNBCR23;                                /*  CNBCR23         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR24;                                 /*  CECR24          */
+    volatile uint32_t  CSCR24;                                 /*  CSCR24          */
+    volatile uint32_t  CCBCR24;                                /*  CCBCR24         */
+    volatile uint32_t  CNBCR24;                                /*  CNBCR24         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR25;                                 /*  CECR25          */
+    volatile uint32_t  CSCR25;                                 /*  CSCR25          */
+    volatile uint32_t  CCBCR25;                                /*  CCBCR25         */
+    volatile uint32_t  CNBCR25;                                /*  CNBCR25         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR26;                                 /*  CECR26          */
+    volatile uint32_t  CSCR26;                                 /*  CSCR26          */
+    volatile uint32_t  CCBCR26;                                /*  CCBCR26         */
+    volatile uint32_t  CNBCR26;                                /*  CNBCR26         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR27;                                 /*  CECR27          */
+    volatile uint32_t  CSCR27;                                 /*  CSCR27          */
+    volatile uint32_t  CCBCR27;                                /*  CCBCR27         */
+    volatile uint32_t  CNBCR27;                                /*  CNBCR27         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR28;                                 /*  CECR28          */
+    volatile uint32_t  CSCR28;                                 /*  CSCR28          */
+    volatile uint32_t  CCBCR28;                                /*  CCBCR28         */
+    volatile uint32_t  CNBCR28;                                /*  CNBCR28         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR29;                                 /*  CECR29          */
+    volatile uint32_t  CSCR29;                                 /*  CSCR29          */
+    volatile uint32_t  CCBCR29;                                /*  CCBCR29         */
+    volatile uint32_t  CNBCR29;                                /*  CNBCR29         */
+
+/* end of struct st_mlb_from_cecr0 */
+
+/* start of struct st_mlb_from_cecr0 */
+    volatile uint32_t  CECR30;                                 /*  CECR30          */
+    volatile uint32_t  CSCR30;                                 /*  CSCR30          */
+    volatile uint32_t  CCBCR30;                                /*  CCBCR30         */
+    volatile uint32_t  CNBCR30;                                /*  CNBCR30         */
+
+/* end of struct st_mlb_from_cecr0 */
+    volatile uint8_t   dummy158[80];                           /*                  */
+
+/* #define MLB_LCBCR0_COUNT (31) */
+    volatile uint32_t  LCBCR0;                                 /*  LCBCR0          */
+    volatile uint32_t  LCBCR1;                                 /*  LCBCR1          */
+    volatile uint32_t  LCBCR2;                                 /*  LCBCR2          */
+    volatile uint32_t  LCBCR3;                                 /*  LCBCR3          */
+    volatile uint32_t  LCBCR4;                                 /*  LCBCR4          */
+    volatile uint32_t  LCBCR5;                                 /*  LCBCR5          */
+    volatile uint32_t  LCBCR6;                                 /*  LCBCR6          */
+    volatile uint32_t  LCBCR7;                                 /*  LCBCR7          */
+    volatile uint32_t  LCBCR8;                                 /*  LCBCR8          */
+    volatile uint32_t  LCBCR9;                                 /*  LCBCR9          */
+    volatile uint32_t  LCBCR10;                                /*  LCBCR10         */
+    volatile uint32_t  LCBCR11;                                /*  LCBCR11         */
+    volatile uint32_t  LCBCR12;                                /*  LCBCR12         */
+    volatile uint32_t  LCBCR13;                                /*  LCBCR13         */
+    volatile uint32_t  LCBCR14;                                /*  LCBCR14         */
+    volatile uint32_t  LCBCR15;                                /*  LCBCR15         */
+    volatile uint32_t  LCBCR16;                                /*  LCBCR16         */
+    volatile uint32_t  LCBCR17;                                /*  LCBCR17         */
+    volatile uint32_t  LCBCR18;                                /*  LCBCR18         */
+    volatile uint32_t  LCBCR19;                                /*  LCBCR19         */
+    volatile uint32_t  LCBCR20;                                /*  LCBCR20         */
+    volatile uint32_t  LCBCR21;                                /*  LCBCR21         */
+    volatile uint32_t  LCBCR22;                                /*  LCBCR22         */
+    volatile uint32_t  LCBCR23;                                /*  LCBCR23         */
+    volatile uint32_t  LCBCR24;                                /*  LCBCR24         */
+    volatile uint32_t  LCBCR25;                                /*  LCBCR25         */
+    volatile uint32_t  LCBCR26;                                /*  LCBCR26         */
+    volatile uint32_t  LCBCR27;                                /*  LCBCR27         */
+    volatile uint32_t  LCBCR28;                                /*  LCBCR28         */
+    volatile uint32_t  LCBCR29;                                /*  LCBCR29         */
+    volatile uint32_t  LCBCR30;                                /*  LCBCR30         */
+} r_io_mlb_t;
+
+
+typedef struct st_mlb_from_cecr0
+{
+ 
+    volatile uint32_t  CECR0;                                  /*  CECR0           */
+    volatile uint32_t  CSCR0;                                  /*  CSCR0           */
+    volatile uint32_t  CCBCR0;                                 /*  CCBCR0          */
+    volatile uint32_t  CNBCR0;                                 /*  CNBCR0          */
+} r_io_mlb_from_cecr0_t;
+
+
+/* Channel array defines of MLB (2)*/
+#ifdef  DECLARE_MLB_FROM_CECR0_ARRAY_CHANNELS
+volatile struct st_mlb_from_cecr0*  MLB_FROM_CECR0_ARRAY[ MLB_FROM_CECR0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    MLB_FROM_CECR0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_MLB_FROM_CECR0_ARRAY_CHANNELS */
+/* End of channel array defines of MLB (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mmc_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mmc_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mmc_iodefine.h	(revision 429)
@@ -0,0 +1,104 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : mmc_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef MMC_IODEFINE_H
+#define MMC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define MMC     (*(struct st_mmc     *)0xE804C800uL) /* MMC */
+
+
+#define MMCCE_CMD_SETH (MMC.CE_CMD_SETH)
+#define MMCCE_CMD_SETL (MMC.CE_CMD_SETL)
+#define MMCCE_ARG (MMC.CE_ARG)
+#define MMCCE_ARG_CMD12 (MMC.CE_ARG_CMD12)
+#define MMCCE_CMD_CTRL (MMC.CE_CMD_CTRL)
+#define MMCCE_BLOCK_SET (MMC.CE_BLOCK_SET)
+#define MMCCE_CLK_CTRL (MMC.CE_CLK_CTRL)
+#define MMCCE_BUF_ACC (MMC.CE_BUF_ACC)
+#define MMCCE_RESP3 (MMC.CE_RESP3)
+#define MMCCE_RESP2 (MMC.CE_RESP2)
+#define MMCCE_RESP1 (MMC.CE_RESP1)
+#define MMCCE_RESP0 (MMC.CE_RESP0)
+#define MMCCE_RESP_CMD12 (MMC.CE_RESP_CMD12)
+#define MMCCE_DATA (MMC.CE_DATA)
+#define MMCCE_INT (MMC.CE_INT)
+#define MMCCE_INT_EN (MMC.CE_INT_EN)
+#define MMCCE_HOST_STS1 (MMC.CE_HOST_STS1)
+#define MMCCE_HOST_STS2 (MMC.CE_HOST_STS2)
+#define MMCCE_DMA_MODE (MMC.CE_DMA_MODE)
+#define MMCCE_DETECT (MMC.CE_DETECT)
+#define MMCCE_ADD_MODE (MMC.CE_ADD_MODE)
+#define MMCCE_VERSION (MMC.CE_VERSION)
+
+#define MMC_CE_RESPn_COUNT (4)
+
+
+typedef struct st_mmc
+{
+                                                           /* MMC              */
+    volatile uint16_t CE_CMD_SETH;                      /*  CE_CMD_SETH */
+    volatile uint16_t CE_CMD_SETL;                      /*  CE_CMD_SETL */
+    volatile uint8_t   dummy182[4];                            /*                  */
+    volatile uint32_t  CE_ARG;                                 /*  CE_ARG          */
+    volatile uint32_t  CE_ARG_CMD12;                           /*  CE_ARG_CMD12    */
+    volatile uint32_t  CE_CMD_CTRL;                            /*  CE_CMD_CTRL     */
+    volatile uint32_t  CE_BLOCK_SET;                           /*  CE_BLOCK_SET    */
+    volatile uint32_t  CE_CLK_CTRL;                            /*  CE_CLK_CTRL     */
+    volatile uint32_t  CE_BUF_ACC;                             /*  CE_BUF_ACC      */
+
+/* #define MMC_CE_RESPn_COUNT (4) */
+    volatile uint32_t  CE_RESP3;                               /*  CE_RESP3        */
+    volatile uint32_t  CE_RESP2;                               /*  CE_RESP2        */
+    volatile uint32_t  CE_RESP1;                               /*  CE_RESP1        */
+    volatile uint32_t  CE_RESP0;                               /*  CE_RESP0        */
+    volatile uint32_t  CE_RESP_CMD12;                          /*  CE_RESP_CMD12   */
+    volatile uint32_t  CE_DATA;                                /*  CE_DATA         */
+    volatile uint8_t   dummy183[8];                            /*                  */
+    volatile uint32_t  CE_INT;                                 /*  CE_INT          */
+    volatile uint32_t  CE_INT_EN;                              /*  CE_INT_EN       */
+    volatile uint32_t  CE_HOST_STS1;                           /*  CE_HOST_STS1    */
+    volatile uint32_t  CE_HOST_STS2;                           /*  CE_HOST_STS2    */
+    volatile uint8_t   dummy184[12];                           /*                  */
+    volatile uint32_t  CE_DMA_MODE;                            /*  CE_DMA_MODE     */
+    volatile uint8_t   dummy185[16];                           /*                  */
+    volatile uint32_t  CE_DETECT;                              /*  CE_DETECT       */
+    volatile uint32_t  CE_ADD_MODE;                            /*  CE_ADD_MODE     */
+    volatile uint8_t   dummy186[4];                            /*                  */
+    volatile uint32_t  CE_VERSION;                             /*  CE_VERSION      */
+} r_io_mmc_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mtu2_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mtu2_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/mtu2_iodefine.h	(revision 429)
@@ -0,0 +1,226 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : mtu2_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef MTU2_IODEFINE_H
+#define MTU2_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define MTU2    (*(struct st_mtu2    *)0xFCFF0000uL) /* MTU2 */
+
+
+#define MTU2TCR_2 (MTU2.TCR_2)
+#define MTU2TMDR_2 (MTU2.TMDR_2)
+#define MTU2TIOR_2 (MTU2.TIOR_2)
+#define MTU2TIER_2 (MTU2.TIER_2)
+#define MTU2TSR_2 (MTU2.TSR_2)
+#define MTU2TCNT_2 (MTU2.TCNT_2)
+#define MTU2TGRA_2 (MTU2.TGRA_2)
+#define MTU2TGRB_2 (MTU2.TGRB_2)
+#define MTU2TCR_3 (MTU2.TCR_3)
+#define MTU2TCR_4 (MTU2.TCR_4)
+#define MTU2TMDR_3 (MTU2.TMDR_3)
+#define MTU2TMDR_4 (MTU2.TMDR_4)
+#define MTU2TIORH_3 (MTU2.TIORH_3)
+#define MTU2TIORL_3 (MTU2.TIORL_3)
+#define MTU2TIORH_4 (MTU2.TIORH_4)
+#define MTU2TIORL_4 (MTU2.TIORL_4)
+#define MTU2TIER_3 (MTU2.TIER_3)
+#define MTU2TIER_4 (MTU2.TIER_4)
+#define MTU2TOER (MTU2.TOER)
+#define MTU2TGCR (MTU2.TGCR)
+#define MTU2TOCR1 (MTU2.TOCR1)
+#define MTU2TOCR2 (MTU2.TOCR2)
+#define MTU2TCNT_3 (MTU2.TCNT_3)
+#define MTU2TCNT_4 (MTU2.TCNT_4)
+#define MTU2TCDR (MTU2.TCDR)
+#define MTU2TDDR (MTU2.TDDR)
+#define MTU2TGRA_3 (MTU2.TGRA_3)
+#define MTU2TGRB_3 (MTU2.TGRB_3)
+#define MTU2TGRA_4 (MTU2.TGRA_4)
+#define MTU2TGRB_4 (MTU2.TGRB_4)
+#define MTU2TCNTS (MTU2.TCNTS)
+#define MTU2TCBR (MTU2.TCBR)
+#define MTU2TGRC_3 (MTU2.TGRC_3)
+#define MTU2TGRD_3 (MTU2.TGRD_3)
+#define MTU2TGRC_4 (MTU2.TGRC_4)
+#define MTU2TGRD_4 (MTU2.TGRD_4)
+#define MTU2TSR_3 (MTU2.TSR_3)
+#define MTU2TSR_4 (MTU2.TSR_4)
+#define MTU2TITCR (MTU2.TITCR)
+#define MTU2TITCNT (MTU2.TITCNT)
+#define MTU2TBTER (MTU2.TBTER)
+#define MTU2TDER (MTU2.TDER)
+#define MTU2TOLBR (MTU2.TOLBR)
+#define MTU2TBTM_3 (MTU2.TBTM_3)
+#define MTU2TBTM_4 (MTU2.TBTM_4)
+#define MTU2TADCR (MTU2.TADCR)
+#define MTU2TADCORA_4 (MTU2.TADCORA_4)
+#define MTU2TADCORB_4 (MTU2.TADCORB_4)
+#define MTU2TADCOBRA_4 (MTU2.TADCOBRA_4)
+#define MTU2TADCOBRB_4 (MTU2.TADCOBRB_4)
+#define MTU2TWCR (MTU2.TWCR)
+#define MTU2TSTR (MTU2.TSTR)
+#define MTU2TSYR (MTU2.TSYR)
+#define MTU2TRWER (MTU2.TRWER)
+#define MTU2TCR_0 (MTU2.TCR_0)
+#define MTU2TMDR_0 (MTU2.TMDR_0)
+#define MTU2TIORH_0 (MTU2.TIORH_0)
+#define MTU2TIORL_0 (MTU2.TIORL_0)
+#define MTU2TIER_0 (MTU2.TIER_0)
+#define MTU2TSR_0 (MTU2.TSR_0)
+#define MTU2TCNT_0 (MTU2.TCNT_0)
+#define MTU2TGRA_0 (MTU2.TGRA_0)
+#define MTU2TGRB_0 (MTU2.TGRB_0)
+#define MTU2TGRC_0 (MTU2.TGRC_0)
+#define MTU2TGRD_0 (MTU2.TGRD_0)
+#define MTU2TGRE_0 (MTU2.TGRE_0)
+#define MTU2TGRF_0 (MTU2.TGRF_0)
+#define MTU2TIER2_0 (MTU2.TIER2_0)
+#define MTU2TSR2_0 (MTU2.TSR2_0)
+#define MTU2TBTM_0 (MTU2.TBTM_0)
+#define MTU2TCR_1 (MTU2.TCR_1)
+#define MTU2TMDR_1 (MTU2.TMDR_1)
+#define MTU2TIOR_1 (MTU2.TIOR_1)
+#define MTU2TIER_1 (MTU2.TIER_1)
+#define MTU2TSR_1 (MTU2.TSR_1)
+#define MTU2TCNT_1 (MTU2.TCNT_1)
+#define MTU2TGRA_1 (MTU2.TGRA_1)
+#define MTU2TGRB_1 (MTU2.TGRB_1)
+#define MTU2TICCR (MTU2.TICCR)
+
+
+typedef struct st_mtu2
+{
+                                                           /* MTU2             */
+    volatile uint8_t   TCR_2;                                  /*  TCR_2           */
+    volatile uint8_t   TMDR_2;                                 /*  TMDR_2          */
+    volatile uint8_t   TIOR_2;                                 /*  TIOR_2          */
+    volatile uint8_t   dummy520[1];                            /*                  */
+    volatile uint8_t   TIER_2;                                 /*  TIER_2          */
+    volatile uint8_t   TSR_2;                                  /*  TSR_2           */
+    volatile uint16_t TCNT_2;                                 /*  TCNT_2          */
+    volatile uint16_t TGRA_2;                                 /*  TGRA_2          */
+    volatile uint16_t TGRB_2;                                 /*  TGRB_2          */
+    volatile uint8_t   dummy521[500];                          /*                  */
+    volatile uint8_t   TCR_3;                                  /*  TCR_3           */
+    volatile uint8_t   TCR_4;                                  /*  TCR_4           */
+    volatile uint8_t   TMDR_3;                                 /*  TMDR_3          */
+    volatile uint8_t   TMDR_4;                                 /*  TMDR_4          */
+    volatile uint8_t   TIORH_3;                                /*  TIORH_3         */
+    volatile uint8_t   TIORL_3;                                /*  TIORL_3         */
+    volatile uint8_t   TIORH_4;                                /*  TIORH_4         */
+    volatile uint8_t   TIORL_4;                                /*  TIORL_4         */
+    volatile uint8_t   TIER_3;                                 /*  TIER_3          */
+    volatile uint8_t   TIER_4;                                 /*  TIER_4          */
+    volatile uint8_t   TOER;                                   /*  TOER            */
+    volatile uint8_t   dummy522[2];                            /*                  */
+    volatile uint8_t   TGCR;                                   /*  TGCR            */
+    volatile uint8_t   TOCR1;                                  /*  TOCR1           */
+    volatile uint8_t   TOCR2;                                  /*  TOCR2           */
+    volatile uint16_t TCNT_3;                                 /*  TCNT_3          */
+    volatile uint16_t TCNT_4;                                 /*  TCNT_4          */
+    volatile uint16_t TCDR;                                   /*  TCDR            */
+    volatile uint16_t TDDR;                                   /*  TDDR            */
+    volatile uint16_t TGRA_3;                                 /*  TGRA_3          */
+    volatile uint16_t TGRB_3;                                 /*  TGRB_3          */
+    volatile uint16_t TGRA_4;                                 /*  TGRA_4          */
+    volatile uint16_t TGRB_4;                                 /*  TGRB_4          */
+    volatile uint16_t TCNTS;                                  /*  TCNTS           */
+    volatile uint16_t TCBR;                                   /*  TCBR            */
+    volatile uint16_t TGRC_3;                                 /*  TGRC_3          */
+    volatile uint16_t TGRD_3;                                 /*  TGRD_3          */
+    volatile uint16_t TGRC_4;                                 /*  TGRC_4          */
+    volatile uint16_t TGRD_4;                                 /*  TGRD_4          */
+    volatile uint8_t   TSR_3;                                  /*  TSR_3           */
+    volatile uint8_t   TSR_4;                                  /*  TSR_4           */
+    volatile uint8_t   dummy523[2];                            /*                  */
+    volatile uint8_t   TITCR;                                  /*  TITCR           */
+    volatile uint8_t   TITCNT;                                 /*  TITCNT          */
+    volatile uint8_t   TBTER;                                  /*  TBTER           */
+    volatile uint8_t   dummy524[1];                            /*                  */
+    volatile uint8_t   TDER;                                   /*  TDER            */
+    volatile uint8_t   dummy525[1];                            /*                  */
+    volatile uint8_t   TOLBR;                                  /*  TOLBR           */
+    volatile uint8_t   dummy526[1];                            /*                  */
+    volatile uint8_t   TBTM_3;                                 /*  TBTM_3          */
+    volatile uint8_t   TBTM_4;                                 /*  TBTM_4          */
+    volatile uint8_t   dummy527[6];                            /*                  */
+    volatile uint16_t TADCR;                                  /*  TADCR           */
+    volatile uint8_t   dummy528[2];                            /*                  */
+    volatile uint16_t TADCORA_4;                              /*  TADCORA_4       */
+    volatile uint16_t TADCORB_4;                              /*  TADCORB_4       */
+    volatile uint16_t TADCOBRA_4;                             /*  TADCOBRA_4      */
+    volatile uint16_t TADCOBRB_4;                             /*  TADCOBRB_4      */
+    volatile uint8_t   dummy529[20];                           /*                  */
+    volatile uint8_t   TWCR;                                   /*  TWCR            */
+    volatile uint8_t   dummy530[31];                           /*                  */
+    volatile uint8_t   TSTR;                                   /*  TSTR            */
+    volatile uint8_t   TSYR;                                   /*  TSYR            */
+    volatile uint8_t   dummy531[2];                            /*                  */
+    volatile uint8_t   TRWER;                                  /*  TRWER           */
+    volatile uint8_t   dummy532[123];                          /*                  */
+    volatile uint8_t   TCR_0;                                  /*  TCR_0           */
+    volatile uint8_t   TMDR_0;                                 /*  TMDR_0          */
+    volatile uint8_t   TIORH_0;                                /*  TIORH_0         */
+    volatile uint8_t   TIORL_0;                                /*  TIORL_0         */
+    volatile uint8_t   TIER_0;                                 /*  TIER_0          */
+    volatile uint8_t   TSR_0;                                  /*  TSR_0           */
+    volatile uint16_t TCNT_0;                                 /*  TCNT_0          */
+    volatile uint16_t TGRA_0;                                 /*  TGRA_0          */
+    volatile uint16_t TGRB_0;                                 /*  TGRB_0          */
+    volatile uint16_t TGRC_0;                                 /*  TGRC_0          */
+    volatile uint16_t TGRD_0;                                 /*  TGRD_0          */
+    volatile uint8_t   dummy533[16];                           /*                  */
+    volatile uint16_t TGRE_0;                                 /*  TGRE_0          */
+    volatile uint16_t TGRF_0;                                 /*  TGRF_0          */
+    volatile uint8_t   TIER2_0;                                /*  TIER2_0         */
+    volatile uint8_t   TSR2_0;                                 /*  TSR2_0          */
+    volatile uint8_t   TBTM_0;                                 /*  TBTM_0          */
+    volatile uint8_t   dummy534[89];                           /*                  */
+    volatile uint8_t   TCR_1;                                  /*  TCR_1           */
+    volatile uint8_t   TMDR_1;                                 /*  TMDR_1          */
+    volatile uint8_t   TIOR_1;                                 /*  TIOR_1          */
+    volatile uint8_t   dummy535[1];                            /*                  */
+    volatile uint8_t   TIER_1;                                 /*  TIER_1          */
+    volatile uint8_t   TSR_1;                                  /*  TSR_1           */
+    volatile uint16_t TCNT_1;                                 /*  TCNT_1          */
+    volatile uint16_t TGRA_1;                                 /*  TGRA_1          */
+    volatile uint16_t TGRB_1;                                 /*  TGRB_1          */
+    volatile uint8_t   dummy536[4];                            /*                  */
+    volatile uint8_t   TICCR;                                  /*  TICCR           */
+} r_io_mtu2_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ostm_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ostm_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ostm_iodefine.h	(revision 429)
@@ -0,0 +1,97 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : ostm_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef OSTM_IODEFINE_H
+#define OSTM_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define OSTM0   (*(struct st_ostm    *)0xFCFEC000uL) /* OSTM0 */
+#define OSTM1   (*(struct st_ostm    *)0xFCFEC400uL) /* OSTM1 */
+
+
+/* Start of channel array defines of OSTM */
+
+/* Channel array defines of OSTM */
+/*(Sample) value = OSTM[ channel ]->OSTMnCMP; */
+#define OSTM_COUNT  (2)
+#define OSTM_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &OSTM0, &OSTM1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of OSTM */
+
+
+#define OSTM0CMP (OSTM0.OSTMnCMP)
+#define OSTM0CNT (OSTM0.OSTMnCNT)
+#define OSTM0TE (OSTM0.OSTMnTE)
+#define OSTM0TS (OSTM0.OSTMnTS)
+#define OSTM0TT (OSTM0.OSTMnTT)
+#define OSTM0CTL (OSTM0.OSTMnCTL)
+#define OSTM1CMP (OSTM1.OSTMnCMP)
+#define OSTM1CNT (OSTM1.OSTMnCNT)
+#define OSTM1TE (OSTM1.OSTMnTE)
+#define OSTM1TS (OSTM1.OSTMnTS)
+#define OSTM1TT (OSTM1.OSTMnTT)
+#define OSTM1CTL (OSTM1.OSTMnCTL)
+
+
+typedef struct st_ostm
+{
+                                                           /* OSTM             */
+    volatile uint32_t  OSTMnCMP;                               /*  OSTMnCMP        */
+    volatile uint32_t  OSTMnCNT;                               /*  OSTMnCNT        */
+    volatile uint8_t   dummy1[8];                              /*                  */
+    volatile uint8_t   OSTMnTE;                                /*  OSTMnTE         */
+    volatile uint8_t   dummy2[3];                              /*                  */
+    volatile uint8_t   OSTMnTS;                                /*  OSTMnTS         */
+    volatile uint8_t   dummy3[3];                              /*                  */
+    volatile uint8_t   OSTMnTT;                                /*  OSTMnTT         */
+    volatile uint8_t   dummy4[7];                              /*                  */
+    volatile uint8_t   OSTMnCTL;                               /*  OSTMnCTL        */
+} r_io_ostm_t;
+
+
+/* Channel array defines of OSTM (2)*/
+#ifdef  DECLARE_OSTM_CHANNELS
+volatile struct st_ostm*  OSTM[ OSTM_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    OSTM_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_OSTM_CHANNELS */
+/* End of channel array defines of OSTM (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/pfv_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/pfv_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/pfv_iodefine.h	(revision 429)
@@ -0,0 +1,174 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : pfv_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef PFV_IODEFINE_H
+#define PFV_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define PFV0    (*(struct st_pfv     *)0xE8205000uL) /* PFV0 */
+#define PFV1    (*(struct st_pfv     *)0xE8205800uL) /* PFV1 */
+
+
+/* Start of channel array defines of PFV */
+
+/* Channel array defines of PFV */
+/*(Sample) value = PFV[ channel ]->PFVCR; */
+#define PFV_COUNT  (2)
+#define PFV_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &PFV0, &PFV1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of PFV */
+
+
+#define PFV0PFVCR (PFV0.PFVCR)
+#define PFV0PFVICR (PFV0.PFVICR)
+#define PFV0PFVISR (PFV0.PFVISR)
+#define PFV0PFVID0 (PFV0.PFVID0)
+#define PFV0PFVID1 (PFV0.PFVID1)
+#define PFV0PFVID2 (PFV0.PFVID2)
+#define PFV0PFVID3 (PFV0.PFVID3)
+#define PFV0PFVID4 (PFV0.PFVID4)
+#define PFV0PFVID5 (PFV0.PFVID5)
+#define PFV0PFVID6 (PFV0.PFVID6)
+#define PFV0PFVID7 (PFV0.PFVID7)
+#define PFV0PFVOD0 (PFV0.PFVOD0)
+#define PFV0PFVOD1 (PFV0.PFVOD1)
+#define PFV0PFVOD2 (PFV0.PFVOD2)
+#define PFV0PFVOD3 (PFV0.PFVOD3)
+#define PFV0PFVOD4 (PFV0.PFVOD4)
+#define PFV0PFVOD5 (PFV0.PFVOD5)
+#define PFV0PFVOD6 (PFV0.PFVOD6)
+#define PFV0PFVOD7 (PFV0.PFVOD7)
+#define PFV0PFVIFSR (PFV0.PFVIFSR)
+#define PFV0PFVOFSR (PFV0.PFVOFSR)
+#define PFV0PFVACR (PFV0.PFVACR)
+#define PFV0PFV_MTX_MODE (PFV0.PFV_MTX_MODE)
+#define PFV0PFV_MTX_YG_ADJ0 (PFV0.PFV_MTX_YG_ADJ0)
+#define PFV0PFV_MTX_YG_ADJ1 (PFV0.PFV_MTX_YG_ADJ1)
+#define PFV0PFV_MTX_CBB_ADJ0 (PFV0.PFV_MTX_CBB_ADJ0)
+#define PFV0PFV_MTX_CBB_ADJ1 (PFV0.PFV_MTX_CBB_ADJ1)
+#define PFV0PFV_MTX_CRR_ADJ0 (PFV0.PFV_MTX_CRR_ADJ0)
+#define PFV0PFV_MTX_CRR_ADJ1 (PFV0.PFV_MTX_CRR_ADJ1)
+#define PFV0PFVSZR (PFV0.PFVSZR)
+#define PFV1PFVCR (PFV1.PFVCR)
+#define PFV1PFVICR (PFV1.PFVICR)
+#define PFV1PFVISR (PFV1.PFVISR)
+#define PFV1PFVID0 (PFV1.PFVID0)
+#define PFV1PFVID1 (PFV1.PFVID1)
+#define PFV1PFVID2 (PFV1.PFVID2)
+#define PFV1PFVID3 (PFV1.PFVID3)
+#define PFV1PFVID4 (PFV1.PFVID4)
+#define PFV1PFVID5 (PFV1.PFVID5)
+#define PFV1PFVID6 (PFV1.PFVID6)
+#define PFV1PFVID7 (PFV1.PFVID7)
+#define PFV1PFVOD0 (PFV1.PFVOD0)
+#define PFV1PFVOD1 (PFV1.PFVOD1)
+#define PFV1PFVOD2 (PFV1.PFVOD2)
+#define PFV1PFVOD3 (PFV1.PFVOD3)
+#define PFV1PFVOD4 (PFV1.PFVOD4)
+#define PFV1PFVOD5 (PFV1.PFVOD5)
+#define PFV1PFVOD6 (PFV1.PFVOD6)
+#define PFV1PFVOD7 (PFV1.PFVOD7)
+#define PFV1PFVIFSR (PFV1.PFVIFSR)
+#define PFV1PFVOFSR (PFV1.PFVOFSR)
+#define PFV1PFVACR (PFV1.PFVACR)
+#define PFV1PFV_MTX_MODE (PFV1.PFV_MTX_MODE)
+#define PFV1PFV_MTX_YG_ADJ0 (PFV1.PFV_MTX_YG_ADJ0)
+#define PFV1PFV_MTX_YG_ADJ1 (PFV1.PFV_MTX_YG_ADJ1)
+#define PFV1PFV_MTX_CBB_ADJ0 (PFV1.PFV_MTX_CBB_ADJ0)
+#define PFV1PFV_MTX_CBB_ADJ1 (PFV1.PFV_MTX_CBB_ADJ1)
+#define PFV1PFV_MTX_CRR_ADJ0 (PFV1.PFV_MTX_CRR_ADJ0)
+#define PFV1PFV_MTX_CRR_ADJ1 (PFV1.PFV_MTX_CRR_ADJ1)
+#define PFV1PFVSZR (PFV1.PFVSZR)
+
+#define PFVID_COUNT (8)
+#define PFVOD_COUNT (8)
+
+
+typedef struct st_pfv
+{
+                                                           /* PFV              */
+    volatile uint32_t  PFVCR;                                  /*  PFVCR           */
+    volatile uint32_t  PFVICR;                                 /*  PFVICR          */
+    volatile uint32_t  PFVISR;                                 /*  PFVISR          */
+    volatile uint8_t   dummy1[20];                             /*                  */
+
+/* #define PFVID_COUNT (8) */
+    volatile uint32_t  PFVID0;                                 /*  PFVID0          */
+    volatile uint32_t  PFVID1;                                 /*  PFVID1          */
+    volatile uint32_t  PFVID2;                                 /*  PFVID2          */
+    volatile uint32_t  PFVID3;                                 /*  PFVID3          */
+    volatile uint32_t  PFVID4;                                 /*  PFVID4          */
+    volatile uint32_t  PFVID5;                                 /*  PFVID5          */
+    volatile uint32_t  PFVID6;                                 /*  PFVID6          */
+    volatile uint32_t  PFVID7;                                 /*  PFVID7          */
+
+/* #define PFVOD_COUNT (8) */
+    volatile uint32_t  PFVOD0;                                 /*  PFVOD0          */
+    volatile uint32_t  PFVOD1;                                 /*  PFVOD1          */
+    volatile uint32_t  PFVOD2;                                 /*  PFVOD2          */
+    volatile uint32_t  PFVOD3;                                 /*  PFVOD3          */
+    volatile uint32_t  PFVOD4;                                 /*  PFVOD4          */
+    volatile uint32_t  PFVOD5;                                 /*  PFVOD5          */
+    volatile uint32_t  PFVOD6;                                 /*  PFVOD6          */
+    volatile uint32_t  PFVOD7;                                 /*  PFVOD7          */
+    volatile uint8_t   dummy2[4];                              /*                  */
+    volatile uint32_t  PFVIFSR;                                /*  PFVIFSR         */
+    volatile uint32_t  PFVOFSR;                                /*  PFVOFSR         */
+    volatile uint32_t  PFVACR;                                 /*  PFVACR          */
+    volatile uint32_t  PFV_MTX_MODE;                           /*  PFV_MTX_MODE    */
+    volatile uint32_t  PFV_MTX_YG_ADJ0;                        /*  PFV_MTX_YG_ADJ0 */
+    volatile uint32_t  PFV_MTX_YG_ADJ1;                        /*  PFV_MTX_YG_ADJ1 */
+    volatile uint32_t  PFV_MTX_CBB_ADJ0;                       /*  PFV_MTX_CBB_ADJ0 */
+    volatile uint32_t  PFV_MTX_CBB_ADJ1;                       /*  PFV_MTX_CBB_ADJ1 */
+    volatile uint32_t  PFV_MTX_CRR_ADJ0;                       /*  PFV_MTX_CRR_ADJ0 */
+    volatile uint32_t  PFV_MTX_CRR_ADJ1;                       /*  PFV_MTX_CRR_ADJ1 */
+    volatile uint32_t  PFVSZR;                                 /*  PFVSZR          */
+} r_io_pfv_t;
+
+
+/* Channel array defines of PFV (2)*/
+#ifdef  DECLARE_PFV_CHANNELS
+volatile struct st_pfv*  PFV[ PFV_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    PFV_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_PFV_CHANNELS */
+/* End of channel array defines of PFV (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/pwm_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/pwm_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/pwm_iodefine.h	(revision 429)
@@ -0,0 +1,135 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : pwm_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef PWM_IODEFINE_H
+#define PWM_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define PWM     (*(struct st_pwm     *)0xFCFF5004uL) /* PWM */
+
+
+/* Start of channel array defines of PWM */
+
+/* Channel array defines of PWMn */
+/*(Sample) value = PWMn[ channel ]->PWCR_1; */
+#define PWMn_COUNT  (2)
+#define PWMn_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &PWM1, &PWM2 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define PWM1    (*(struct st_pwm_common *)&PWM.PWCR_1)           /* PWM1 */
+#define PWM2    (*(struct st_pwm_common *)&PWM.PWCR_2)           /* PWM2 */
+
+/* End of channel array defines of PWM */
+
+
+#define PWMPWBTCR (PWM.PWBTCR)
+#define PWMPWCR_1 (PWM.PWCR_1)
+#define PWMPWPR_1 (PWM.PWPR_1)
+#define PWMPWCYR_1 (PWM.PWCYR_1)
+#define PWMPWBFR_1A (PWM.PWBFR_1A)
+#define PWMPWBFR_1C (PWM.PWBFR_1C)
+#define PWMPWBFR_1E (PWM.PWBFR_1E)
+#define PWMPWBFR_1G (PWM.PWBFR_1G)
+#define PWMPWCR_2 (PWM.PWCR_2)
+#define PWMPWPR_2 (PWM.PWPR_2)
+#define PWMPWCYR_2 (PWM.PWCYR_2)
+#define PWMPWBFR_2A (PWM.PWBFR_2A)
+#define PWMPWBFR_2C (PWM.PWBFR_2C)
+#define PWMPWBFR_2E (PWM.PWBFR_2E)
+#define PWMPWBFR_2G (PWM.PWBFR_2G)
+
+
+typedef struct st_pwm
+{
+                                                           /* PWM              */
+    volatile uint8_t   dummy559[2];                            /*                  */
+    volatile uint8_t   PWBTCR;                                 /*  PWBTCR          */
+    volatile uint8_t   dummy560[217];                          /*                  */
+
+/* start of struct st_pwm_common */
+    volatile uint8_t   PWCR_1;                                 /*  PWCR_1          */
+    volatile uint8_t   dummy561[3];                            /*                  */
+    volatile uint8_t   PWPR_1;                                 /*  PWPR_1          */
+    volatile uint8_t   dummy562[1];                            /*                  */
+    volatile uint16_t PWCYR_1;                                /*  PWCYR_1         */
+    volatile uint16_t PWBFR_1A;                               /*  PWBFR_1A        */
+    volatile uint16_t PWBFR_1C;                               /*  PWBFR_1C        */
+    volatile uint16_t PWBFR_1E;                               /*  PWBFR_1E        */
+    volatile uint16_t PWBFR_1G;                               /*  PWBFR_1G        */
+
+/* end of struct st_pwm_common */
+
+/* start of struct st_pwm_common */
+    volatile uint8_t   PWCR_2;                                 /*  PWCR_2          */
+    volatile uint8_t   dummy563[3];                            /*                  */
+    volatile uint8_t   PWPR_2;                                 /*  PWPR_2          */
+    volatile uint8_t   dummy564[1];                            /*                  */
+    volatile uint16_t PWCYR_2;                                /*  PWCYR_2         */
+    volatile uint16_t PWBFR_2A;                               /*  PWBFR_2A        */
+    volatile uint16_t PWBFR_2C;                               /*  PWBFR_2C        */
+    volatile uint16_t PWBFR_2E;                               /*  PWBFR_2E        */
+    volatile uint16_t PWBFR_2G;                               /*  PWBFR_2G        */
+
+/* end of struct st_pwm_common */
+} r_io_pwm_t;
+
+
+typedef struct st_pwm_common
+{
+ 
+    volatile uint8_t   PWCR_1;                                 /*  PWCR_1          */
+    volatile uint8_t   dummy562[3];                            /*                  */
+    volatile uint8_t   PWPR_1;                                 /*  PWPR_1          */
+    volatile uint8_t   dummy563[1];                            /*                  */
+    volatile uint16_t PWCYR_1;                                /*  PWCYR_1         */
+    volatile uint16_t PWBFR_1A;                               /*  PWBFR_1A        */
+    volatile uint16_t PWBFR_1C;                               /*  PWBFR_1C        */
+    volatile uint16_t PWBFR_1E;                               /*  PWBFR_1E        */
+    volatile uint16_t PWBFR_1G;                               /*  PWBFR_1G        */
+} r_io_pwm_common_t;
+
+
+/* Channel array defines of PWMn (2)*/
+#ifdef  DECLARE_PWMn_CHANNELS
+volatile struct st_pwm_common*  PWMn[ PWMn_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    PWMn_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_PWMn_CHANNELS */
+/* End of channel array defines of PWMn (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/riic_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/riic_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/riic_iodefine.h	(revision 429)
@@ -0,0 +1,584 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : riic_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef RIIC_IODEFINE_H
+#define RIIC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define RIIC0   (*(struct st_riic    *)0xFCFEE000uL) /* RIIC0 */
+#define RIIC1   (*(struct st_riic    *)0xFCFEE400uL) /* RIIC1 */
+#define RIIC2   (*(struct st_riic    *)0xFCFEE800uL) /* RIIC2 */
+#define RIIC3   (*(struct st_riic    *)0xFCFEEC00uL) /* RIIC3 */
+
+
+/* Start of channel array defines of RIIC */
+
+/* Channel array defines of RIIC */
+/*(Sample) value = RIIC[ channel ]->RIICnCR1.UINT32; */
+#define RIIC_COUNT  (4)
+#define RIIC_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &RIIC0, &RIIC1, &RIIC2, &RIIC3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of RIIC */
+
+
+#define RIIC0CR1 (RIIC0.RIICnCR1.UINT32)
+#define RIIC0CR1L (RIIC0.RIICnCR1.UINT16[R_IO_L])
+#define RIIC0CR1LL (RIIC0.RIICnCR1.UINT8[R_IO_LL])
+#define RIIC0CR1LH (RIIC0.RIICnCR1.UINT8[R_IO_LH])
+#define RIIC0CR1H (RIIC0.RIICnCR1.UINT16[R_IO_H])
+#define RIIC0CR1HL (RIIC0.RIICnCR1.UINT8[R_IO_HL])
+#define RIIC0CR1HH (RIIC0.RIICnCR1.UINT8[R_IO_HH])
+#define RIIC0CR2 (RIIC0.RIICnCR2.UINT32)
+#define RIIC0CR2L (RIIC0.RIICnCR2.UINT16[R_IO_L])
+#define RIIC0CR2LL (RIIC0.RIICnCR2.UINT8[R_IO_LL])
+#define RIIC0CR2LH (RIIC0.RIICnCR2.UINT8[R_IO_LH])
+#define RIIC0CR2H (RIIC0.RIICnCR2.UINT16[R_IO_H])
+#define RIIC0CR2HL (RIIC0.RIICnCR2.UINT8[R_IO_HL])
+#define RIIC0CR2HH (RIIC0.RIICnCR2.UINT8[R_IO_HH])
+#define RIIC0MR1 (RIIC0.RIICnMR1.UINT32)
+#define RIIC0MR1L (RIIC0.RIICnMR1.UINT16[R_IO_L])
+#define RIIC0MR1LL (RIIC0.RIICnMR1.UINT8[R_IO_LL])
+#define RIIC0MR1LH (RIIC0.RIICnMR1.UINT8[R_IO_LH])
+#define RIIC0MR1H (RIIC0.RIICnMR1.UINT16[R_IO_H])
+#define RIIC0MR1HL (RIIC0.RIICnMR1.UINT8[R_IO_HL])
+#define RIIC0MR1HH (RIIC0.RIICnMR1.UINT8[R_IO_HH])
+#define RIIC0MR2 (RIIC0.RIICnMR2.UINT32)
+#define RIIC0MR2L (RIIC0.RIICnMR2.UINT16[R_IO_L])
+#define RIIC0MR2LL (RIIC0.RIICnMR2.UINT8[R_IO_LL])
+#define RIIC0MR2LH (RIIC0.RIICnMR2.UINT8[R_IO_LH])
+#define RIIC0MR2H (RIIC0.RIICnMR2.UINT16[R_IO_H])
+#define RIIC0MR2HL (RIIC0.RIICnMR2.UINT8[R_IO_HL])
+#define RIIC0MR2HH (RIIC0.RIICnMR2.UINT8[R_IO_HH])
+#define RIIC0MR3 (RIIC0.RIICnMR3.UINT32)
+#define RIIC0MR3L (RIIC0.RIICnMR3.UINT16[R_IO_L])
+#define RIIC0MR3LL (RIIC0.RIICnMR3.UINT8[R_IO_LL])
+#define RIIC0MR3LH (RIIC0.RIICnMR3.UINT8[R_IO_LH])
+#define RIIC0MR3H (RIIC0.RIICnMR3.UINT16[R_IO_H])
+#define RIIC0MR3HL (RIIC0.RIICnMR3.UINT8[R_IO_HL])
+#define RIIC0MR3HH (RIIC0.RIICnMR3.UINT8[R_IO_HH])
+#define RIIC0FER (RIIC0.RIICnFER.UINT32)
+#define RIIC0FERL (RIIC0.RIICnFER.UINT16[R_IO_L])
+#define RIIC0FERLL (RIIC0.RIICnFER.UINT8[R_IO_LL])
+#define RIIC0FERLH (RIIC0.RIICnFER.UINT8[R_IO_LH])
+#define RIIC0FERH (RIIC0.RIICnFER.UINT16[R_IO_H])
+#define RIIC0FERHL (RIIC0.RIICnFER.UINT8[R_IO_HL])
+#define RIIC0FERHH (RIIC0.RIICnFER.UINT8[R_IO_HH])
+#define RIIC0SER (RIIC0.RIICnSER.UINT32)
+#define RIIC0SERL (RIIC0.RIICnSER.UINT16[R_IO_L])
+#define RIIC0SERLL (RIIC0.RIICnSER.UINT8[R_IO_LL])
+#define RIIC0SERLH (RIIC0.RIICnSER.UINT8[R_IO_LH])
+#define RIIC0SERH (RIIC0.RIICnSER.UINT16[R_IO_H])
+#define RIIC0SERHL (RIIC0.RIICnSER.UINT8[R_IO_HL])
+#define RIIC0SERHH (RIIC0.RIICnSER.UINT8[R_IO_HH])
+#define RIIC0IER (RIIC0.RIICnIER.UINT32)
+#define RIIC0IERL (RIIC0.RIICnIER.UINT16[R_IO_L])
+#define RIIC0IERLL (RIIC0.RIICnIER.UINT8[R_IO_LL])
+#define RIIC0IERLH (RIIC0.RIICnIER.UINT8[R_IO_LH])
+#define RIIC0IERH (RIIC0.RIICnIER.UINT16[R_IO_H])
+#define RIIC0IERHL (RIIC0.RIICnIER.UINT8[R_IO_HL])
+#define RIIC0IERHH (RIIC0.RIICnIER.UINT8[R_IO_HH])
+#define RIIC0SR1 (RIIC0.RIICnSR1.UINT32)
+#define RIIC0SR1L (RIIC0.RIICnSR1.UINT16[R_IO_L])
+#define RIIC0SR1LL (RIIC0.RIICnSR1.UINT8[R_IO_LL])
+#define RIIC0SR1LH (RIIC0.RIICnSR1.UINT8[R_IO_LH])
+#define RIIC0SR1H (RIIC0.RIICnSR1.UINT16[R_IO_H])
+#define RIIC0SR1HL (RIIC0.RIICnSR1.UINT8[R_IO_HL])
+#define RIIC0SR1HH (RIIC0.RIICnSR1.UINT8[R_IO_HH])
+#define RIIC0SR2 (RIIC0.RIICnSR2.UINT32)
+#define RIIC0SR2L (RIIC0.RIICnSR2.UINT16[R_IO_L])
+#define RIIC0SR2LL (RIIC0.RIICnSR2.UINT8[R_IO_LL])
+#define RIIC0SR2LH (RIIC0.RIICnSR2.UINT8[R_IO_LH])
+#define RIIC0SR2H (RIIC0.RIICnSR2.UINT16[R_IO_H])
+#define RIIC0SR2HL (RIIC0.RIICnSR2.UINT8[R_IO_HL])
+#define RIIC0SR2HH (RIIC0.RIICnSR2.UINT8[R_IO_HH])
+#define RIIC0SAR0 (RIIC0.RIICnSAR0.UINT32)
+#define RIIC0SAR0L (RIIC0.RIICnSAR0.UINT16[R_IO_L])
+#define RIIC0SAR0LL (RIIC0.RIICnSAR0.UINT8[R_IO_LL])
+#define RIIC0SAR0LH (RIIC0.RIICnSAR0.UINT8[R_IO_LH])
+#define RIIC0SAR0H (RIIC0.RIICnSAR0.UINT16[R_IO_H])
+#define RIIC0SAR0HL (RIIC0.RIICnSAR0.UINT8[R_IO_HL])
+#define RIIC0SAR0HH (RIIC0.RIICnSAR0.UINT8[R_IO_HH])
+#define RIIC0SAR1 (RIIC0.RIICnSAR1.UINT32)
+#define RIIC0SAR1L (RIIC0.RIICnSAR1.UINT16[R_IO_L])
+#define RIIC0SAR1LL (RIIC0.RIICnSAR1.UINT8[R_IO_LL])
+#define RIIC0SAR1LH (RIIC0.RIICnSAR1.UINT8[R_IO_LH])
+#define RIIC0SAR1H (RIIC0.RIICnSAR1.UINT16[R_IO_H])
+#define RIIC0SAR1HL (RIIC0.RIICnSAR1.UINT8[R_IO_HL])
+#define RIIC0SAR1HH (RIIC0.RIICnSAR1.UINT8[R_IO_HH])
+#define RIIC0SAR2 (RIIC0.RIICnSAR2.UINT32)
+#define RIIC0SAR2L (RIIC0.RIICnSAR2.UINT16[R_IO_L])
+#define RIIC0SAR2LL (RIIC0.RIICnSAR2.UINT8[R_IO_LL])
+#define RIIC0SAR2LH (RIIC0.RIICnSAR2.UINT8[R_IO_LH])
+#define RIIC0SAR2H (RIIC0.RIICnSAR2.UINT16[R_IO_H])
+#define RIIC0SAR2HL (RIIC0.RIICnSAR2.UINT8[R_IO_HL])
+#define RIIC0SAR2HH (RIIC0.RIICnSAR2.UINT8[R_IO_HH])
+#define RIIC0BRL (RIIC0.RIICnBRL.UINT32)
+#define RIIC0BRLL (RIIC0.RIICnBRL.UINT16[R_IO_L])
+#define RIIC0BRLLL (RIIC0.RIICnBRL.UINT8[R_IO_LL])
+#define RIIC0BRLLH (RIIC0.RIICnBRL.UINT8[R_IO_LH])
+#define RIIC0BRLH (RIIC0.RIICnBRL.UINT16[R_IO_H])
+#define RIIC0BRLHL (RIIC0.RIICnBRL.UINT8[R_IO_HL])
+#define RIIC0BRLHH (RIIC0.RIICnBRL.UINT8[R_IO_HH])
+#define RIIC0BRH (RIIC0.RIICnBRH.UINT32)
+#define RIIC0BRHL (RIIC0.RIICnBRH.UINT16[R_IO_L])
+#define RIIC0BRHLL (RIIC0.RIICnBRH.UINT8[R_IO_LL])
+#define RIIC0BRHLH (RIIC0.RIICnBRH.UINT8[R_IO_LH])
+#define RIIC0BRHH (RIIC0.RIICnBRH.UINT16[R_IO_H])
+#define RIIC0BRHHL (RIIC0.RIICnBRH.UINT8[R_IO_HL])
+#define RIIC0BRHHH (RIIC0.RIICnBRH.UINT8[R_IO_HH])
+#define RIIC0DRT (RIIC0.RIICnDRT.UINT32)
+#define RIIC0DRTL (RIIC0.RIICnDRT.UINT16[R_IO_L])
+#define RIIC0DRTLL (RIIC0.RIICnDRT.UINT8[R_IO_LL])
+#define RIIC0DRTLH (RIIC0.RIICnDRT.UINT8[R_IO_LH])
+#define RIIC0DRTH (RIIC0.RIICnDRT.UINT16[R_IO_H])
+#define RIIC0DRTHL (RIIC0.RIICnDRT.UINT8[R_IO_HL])
+#define RIIC0DRTHH (RIIC0.RIICnDRT.UINT8[R_IO_HH])
+#define RIIC0DRR (RIIC0.RIICnDRR.UINT32)
+#define RIIC0DRRL (RIIC0.RIICnDRR.UINT16[R_IO_L])
+#define RIIC0DRRLL (RIIC0.RIICnDRR.UINT8[R_IO_LL])
+#define RIIC0DRRLH (RIIC0.RIICnDRR.UINT8[R_IO_LH])
+#define RIIC0DRRH (RIIC0.RIICnDRR.UINT16[R_IO_H])
+#define RIIC0DRRHL (RIIC0.RIICnDRR.UINT8[R_IO_HL])
+#define RIIC0DRRHH (RIIC0.RIICnDRR.UINT8[R_IO_HH])
+#define RIIC1CR1 (RIIC1.RIICnCR1.UINT32)
+#define RIIC1CR1L (RIIC1.RIICnCR1.UINT16[R_IO_L])
+#define RIIC1CR1LL (RIIC1.RIICnCR1.UINT8[R_IO_LL])
+#define RIIC1CR1LH (RIIC1.RIICnCR1.UINT8[R_IO_LH])
+#define RIIC1CR1H (RIIC1.RIICnCR1.UINT16[R_IO_H])
+#define RIIC1CR1HL (RIIC1.RIICnCR1.UINT8[R_IO_HL])
+#define RIIC1CR1HH (RIIC1.RIICnCR1.UINT8[R_IO_HH])
+#define RIIC1CR2 (RIIC1.RIICnCR2.UINT32)
+#define RIIC1CR2L (RIIC1.RIICnCR2.UINT16[R_IO_L])
+#define RIIC1CR2LL (RIIC1.RIICnCR2.UINT8[R_IO_LL])
+#define RIIC1CR2LH (RIIC1.RIICnCR2.UINT8[R_IO_LH])
+#define RIIC1CR2H (RIIC1.RIICnCR2.UINT16[R_IO_H])
+#define RIIC1CR2HL (RIIC1.RIICnCR2.UINT8[R_IO_HL])
+#define RIIC1CR2HH (RIIC1.RIICnCR2.UINT8[R_IO_HH])
+#define RIIC1MR1 (RIIC1.RIICnMR1.UINT32)
+#define RIIC1MR1L (RIIC1.RIICnMR1.UINT16[R_IO_L])
+#define RIIC1MR1LL (RIIC1.RIICnMR1.UINT8[R_IO_LL])
+#define RIIC1MR1LH (RIIC1.RIICnMR1.UINT8[R_IO_LH])
+#define RIIC1MR1H (RIIC1.RIICnMR1.UINT16[R_IO_H])
+#define RIIC1MR1HL (RIIC1.RIICnMR1.UINT8[R_IO_HL])
+#define RIIC1MR1HH (RIIC1.RIICnMR1.UINT8[R_IO_HH])
+#define RIIC1MR2 (RIIC1.RIICnMR2.UINT32)
+#define RIIC1MR2L (RIIC1.RIICnMR2.UINT16[R_IO_L])
+#define RIIC1MR2LL (RIIC1.RIICnMR2.UINT8[R_IO_LL])
+#define RIIC1MR2LH (RIIC1.RIICnMR2.UINT8[R_IO_LH])
+#define RIIC1MR2H (RIIC1.RIICnMR2.UINT16[R_IO_H])
+#define RIIC1MR2HL (RIIC1.RIICnMR2.UINT8[R_IO_HL])
+#define RIIC1MR2HH (RIIC1.RIICnMR2.UINT8[R_IO_HH])
+#define RIIC1MR3 (RIIC1.RIICnMR3.UINT32)
+#define RIIC1MR3L (RIIC1.RIICnMR3.UINT16[R_IO_L])
+#define RIIC1MR3LL (RIIC1.RIICnMR3.UINT8[R_IO_LL])
+#define RIIC1MR3LH (RIIC1.RIICnMR3.UINT8[R_IO_LH])
+#define RIIC1MR3H (RIIC1.RIICnMR3.UINT16[R_IO_H])
+#define RIIC1MR3HL (RIIC1.RIICnMR3.UINT8[R_IO_HL])
+#define RIIC1MR3HH (RIIC1.RIICnMR3.UINT8[R_IO_HH])
+#define RIIC1FER (RIIC1.RIICnFER.UINT32)
+#define RIIC1FERL (RIIC1.RIICnFER.UINT16[R_IO_L])
+#define RIIC1FERLL (RIIC1.RIICnFER.UINT8[R_IO_LL])
+#define RIIC1FERLH (RIIC1.RIICnFER.UINT8[R_IO_LH])
+#define RIIC1FERH (RIIC1.RIICnFER.UINT16[R_IO_H])
+#define RIIC1FERHL (RIIC1.RIICnFER.UINT8[R_IO_HL])
+#define RIIC1FERHH (RIIC1.RIICnFER.UINT8[R_IO_HH])
+#define RIIC1SER (RIIC1.RIICnSER.UINT32)
+#define RIIC1SERL (RIIC1.RIICnSER.UINT16[R_IO_L])
+#define RIIC1SERLL (RIIC1.RIICnSER.UINT8[R_IO_LL])
+#define RIIC1SERLH (RIIC1.RIICnSER.UINT8[R_IO_LH])
+#define RIIC1SERH (RIIC1.RIICnSER.UINT16[R_IO_H])
+#define RIIC1SERHL (RIIC1.RIICnSER.UINT8[R_IO_HL])
+#define RIIC1SERHH (RIIC1.RIICnSER.UINT8[R_IO_HH])
+#define RIIC1IER (RIIC1.RIICnIER.UINT32)
+#define RIIC1IERL (RIIC1.RIICnIER.UINT16[R_IO_L])
+#define RIIC1IERLL (RIIC1.RIICnIER.UINT8[R_IO_LL])
+#define RIIC1IERLH (RIIC1.RIICnIER.UINT8[R_IO_LH])
+#define RIIC1IERH (RIIC1.RIICnIER.UINT16[R_IO_H])
+#define RIIC1IERHL (RIIC1.RIICnIER.UINT8[R_IO_HL])
+#define RIIC1IERHH (RIIC1.RIICnIER.UINT8[R_IO_HH])
+#define RIIC1SR1 (RIIC1.RIICnSR1.UINT32)
+#define RIIC1SR1L (RIIC1.RIICnSR1.UINT16[R_IO_L])
+#define RIIC1SR1LL (RIIC1.RIICnSR1.UINT8[R_IO_LL])
+#define RIIC1SR1LH (RIIC1.RIICnSR1.UINT8[R_IO_LH])
+#define RIIC1SR1H (RIIC1.RIICnSR1.UINT16[R_IO_H])
+#define RIIC1SR1HL (RIIC1.RIICnSR1.UINT8[R_IO_HL])
+#define RIIC1SR1HH (RIIC1.RIICnSR1.UINT8[R_IO_HH])
+#define RIIC1SR2 (RIIC1.RIICnSR2.UINT32)
+#define RIIC1SR2L (RIIC1.RIICnSR2.UINT16[R_IO_L])
+#define RIIC1SR2LL (RIIC1.RIICnSR2.UINT8[R_IO_LL])
+#define RIIC1SR2LH (RIIC1.RIICnSR2.UINT8[R_IO_LH])
+#define RIIC1SR2H (RIIC1.RIICnSR2.UINT16[R_IO_H])
+#define RIIC1SR2HL (RIIC1.RIICnSR2.UINT8[R_IO_HL])
+#define RIIC1SR2HH (RIIC1.RIICnSR2.UINT8[R_IO_HH])
+#define RIIC1SAR0 (RIIC1.RIICnSAR0.UINT32)
+#define RIIC1SAR0L (RIIC1.RIICnSAR0.UINT16[R_IO_L])
+#define RIIC1SAR0LL (RIIC1.RIICnSAR0.UINT8[R_IO_LL])
+#define RIIC1SAR0LH (RIIC1.RIICnSAR0.UINT8[R_IO_LH])
+#define RIIC1SAR0H (RIIC1.RIICnSAR0.UINT16[R_IO_H])
+#define RIIC1SAR0HL (RIIC1.RIICnSAR0.UINT8[R_IO_HL])
+#define RIIC1SAR0HH (RIIC1.RIICnSAR0.UINT8[R_IO_HH])
+#define RIIC1SAR1 (RIIC1.RIICnSAR1.UINT32)
+#define RIIC1SAR1L (RIIC1.RIICnSAR1.UINT16[R_IO_L])
+#define RIIC1SAR1LL (RIIC1.RIICnSAR1.UINT8[R_IO_LL])
+#define RIIC1SAR1LH (RIIC1.RIICnSAR1.UINT8[R_IO_LH])
+#define RIIC1SAR1H (RIIC1.RIICnSAR1.UINT16[R_IO_H])
+#define RIIC1SAR1HL (RIIC1.RIICnSAR1.UINT8[R_IO_HL])
+#define RIIC1SAR1HH (RIIC1.RIICnSAR1.UINT8[R_IO_HH])
+#define RIIC1SAR2 (RIIC1.RIICnSAR2.UINT32)
+#define RIIC1SAR2L (RIIC1.RIICnSAR2.UINT16[R_IO_L])
+#define RIIC1SAR2LL (RIIC1.RIICnSAR2.UINT8[R_IO_LL])
+#define RIIC1SAR2LH (RIIC1.RIICnSAR2.UINT8[R_IO_LH])
+#define RIIC1SAR2H (RIIC1.RIICnSAR2.UINT16[R_IO_H])
+#define RIIC1SAR2HL (RIIC1.RIICnSAR2.UINT8[R_IO_HL])
+#define RIIC1SAR2HH (RIIC1.RIICnSAR2.UINT8[R_IO_HH])
+#define RIIC1BRL (RIIC1.RIICnBRL.UINT32)
+#define RIIC1BRLL (RIIC1.RIICnBRL.UINT16[R_IO_L])
+#define RIIC1BRLLL (RIIC1.RIICnBRL.UINT8[R_IO_LL])
+#define RIIC1BRLLH (RIIC1.RIICnBRL.UINT8[R_IO_LH])
+#define RIIC1BRLH (RIIC1.RIICnBRL.UINT16[R_IO_H])
+#define RIIC1BRLHL (RIIC1.RIICnBRL.UINT8[R_IO_HL])
+#define RIIC1BRLHH (RIIC1.RIICnBRL.UINT8[R_IO_HH])
+#define RIIC1BRH (RIIC1.RIICnBRH.UINT32)
+#define RIIC1BRHL (RIIC1.RIICnBRH.UINT16[R_IO_L])
+#define RIIC1BRHLL (RIIC1.RIICnBRH.UINT8[R_IO_LL])
+#define RIIC1BRHLH (RIIC1.RIICnBRH.UINT8[R_IO_LH])
+#define RIIC1BRHH (RIIC1.RIICnBRH.UINT16[R_IO_H])
+#define RIIC1BRHHL (RIIC1.RIICnBRH.UINT8[R_IO_HL])
+#define RIIC1BRHHH (RIIC1.RIICnBRH.UINT8[R_IO_HH])
+#define RIIC1DRT (RIIC1.RIICnDRT.UINT32)
+#define RIIC1DRTL (RIIC1.RIICnDRT.UINT16[R_IO_L])
+#define RIIC1DRTLL (RIIC1.RIICnDRT.UINT8[R_IO_LL])
+#define RIIC1DRTLH (RIIC1.RIICnDRT.UINT8[R_IO_LH])
+#define RIIC1DRTH (RIIC1.RIICnDRT.UINT16[R_IO_H])
+#define RIIC1DRTHL (RIIC1.RIICnDRT.UINT8[R_IO_HL])
+#define RIIC1DRTHH (RIIC1.RIICnDRT.UINT8[R_IO_HH])
+#define RIIC1DRR (RIIC1.RIICnDRR.UINT32)
+#define RIIC1DRRL (RIIC1.RIICnDRR.UINT16[R_IO_L])
+#define RIIC1DRRLL (RIIC1.RIICnDRR.UINT8[R_IO_LL])
+#define RIIC1DRRLH (RIIC1.RIICnDRR.UINT8[R_IO_LH])
+#define RIIC1DRRH (RIIC1.RIICnDRR.UINT16[R_IO_H])
+#define RIIC1DRRHL (RIIC1.RIICnDRR.UINT8[R_IO_HL])
+#define RIIC1DRRHH (RIIC1.RIICnDRR.UINT8[R_IO_HH])
+#define RIIC2CR1 (RIIC2.RIICnCR1.UINT32)
+#define RIIC2CR1L (RIIC2.RIICnCR1.UINT16[R_IO_L])
+#define RIIC2CR1LL (RIIC2.RIICnCR1.UINT8[R_IO_LL])
+#define RIIC2CR1LH (RIIC2.RIICnCR1.UINT8[R_IO_LH])
+#define RIIC2CR1H (RIIC2.RIICnCR1.UINT16[R_IO_H])
+#define RIIC2CR1HL (RIIC2.RIICnCR1.UINT8[R_IO_HL])
+#define RIIC2CR1HH (RIIC2.RIICnCR1.UINT8[R_IO_HH])
+#define RIIC2CR2 (RIIC2.RIICnCR2.UINT32)
+#define RIIC2CR2L (RIIC2.RIICnCR2.UINT16[R_IO_L])
+#define RIIC2CR2LL (RIIC2.RIICnCR2.UINT8[R_IO_LL])
+#define RIIC2CR2LH (RIIC2.RIICnCR2.UINT8[R_IO_LH])
+#define RIIC2CR2H (RIIC2.RIICnCR2.UINT16[R_IO_H])
+#define RIIC2CR2HL (RIIC2.RIICnCR2.UINT8[R_IO_HL])
+#define RIIC2CR2HH (RIIC2.RIICnCR2.UINT8[R_IO_HH])
+#define RIIC2MR1 (RIIC2.RIICnMR1.UINT32)
+#define RIIC2MR1L (RIIC2.RIICnMR1.UINT16[R_IO_L])
+#define RIIC2MR1LL (RIIC2.RIICnMR1.UINT8[R_IO_LL])
+#define RIIC2MR1LH (RIIC2.RIICnMR1.UINT8[R_IO_LH])
+#define RIIC2MR1H (RIIC2.RIICnMR1.UINT16[R_IO_H])
+#define RIIC2MR1HL (RIIC2.RIICnMR1.UINT8[R_IO_HL])
+#define RIIC2MR1HH (RIIC2.RIICnMR1.UINT8[R_IO_HH])
+#define RIIC2MR2 (RIIC2.RIICnMR2.UINT32)
+#define RIIC2MR2L (RIIC2.RIICnMR2.UINT16[R_IO_L])
+#define RIIC2MR2LL (RIIC2.RIICnMR2.UINT8[R_IO_LL])
+#define RIIC2MR2LH (RIIC2.RIICnMR2.UINT8[R_IO_LH])
+#define RIIC2MR2H (RIIC2.RIICnMR2.UINT16[R_IO_H])
+#define RIIC2MR2HL (RIIC2.RIICnMR2.UINT8[R_IO_HL])
+#define RIIC2MR2HH (RIIC2.RIICnMR2.UINT8[R_IO_HH])
+#define RIIC2MR3 (RIIC2.RIICnMR3.UINT32)
+#define RIIC2MR3L (RIIC2.RIICnMR3.UINT16[R_IO_L])
+#define RIIC2MR3LL (RIIC2.RIICnMR3.UINT8[R_IO_LL])
+#define RIIC2MR3LH (RIIC2.RIICnMR3.UINT8[R_IO_LH])
+#define RIIC2MR3H (RIIC2.RIICnMR3.UINT16[R_IO_H])
+#define RIIC2MR3HL (RIIC2.RIICnMR3.UINT8[R_IO_HL])
+#define RIIC2MR3HH (RIIC2.RIICnMR3.UINT8[R_IO_HH])
+#define RIIC2FER (RIIC2.RIICnFER.UINT32)
+#define RIIC2FERL (RIIC2.RIICnFER.UINT16[R_IO_L])
+#define RIIC2FERLL (RIIC2.RIICnFER.UINT8[R_IO_LL])
+#define RIIC2FERLH (RIIC2.RIICnFER.UINT8[R_IO_LH])
+#define RIIC2FERH (RIIC2.RIICnFER.UINT16[R_IO_H])
+#define RIIC2FERHL (RIIC2.RIICnFER.UINT8[R_IO_HL])
+#define RIIC2FERHH (RIIC2.RIICnFER.UINT8[R_IO_HH])
+#define RIIC2SER (RIIC2.RIICnSER.UINT32)
+#define RIIC2SERL (RIIC2.RIICnSER.UINT16[R_IO_L])
+#define RIIC2SERLL (RIIC2.RIICnSER.UINT8[R_IO_LL])
+#define RIIC2SERLH (RIIC2.RIICnSER.UINT8[R_IO_LH])
+#define RIIC2SERH (RIIC2.RIICnSER.UINT16[R_IO_H])
+#define RIIC2SERHL (RIIC2.RIICnSER.UINT8[R_IO_HL])
+#define RIIC2SERHH (RIIC2.RIICnSER.UINT8[R_IO_HH])
+#define RIIC2IER (RIIC2.RIICnIER.UINT32)
+#define RIIC2IERL (RIIC2.RIICnIER.UINT16[R_IO_L])
+#define RIIC2IERLL (RIIC2.RIICnIER.UINT8[R_IO_LL])
+#define RIIC2IERLH (RIIC2.RIICnIER.UINT8[R_IO_LH])
+#define RIIC2IERH (RIIC2.RIICnIER.UINT16[R_IO_H])
+#define RIIC2IERHL (RIIC2.RIICnIER.UINT8[R_IO_HL])
+#define RIIC2IERHH (RIIC2.RIICnIER.UINT8[R_IO_HH])
+#define RIIC2SR1 (RIIC2.RIICnSR1.UINT32)
+#define RIIC2SR1L (RIIC2.RIICnSR1.UINT16[R_IO_L])
+#define RIIC2SR1LL (RIIC2.RIICnSR1.UINT8[R_IO_LL])
+#define RIIC2SR1LH (RIIC2.RIICnSR1.UINT8[R_IO_LH])
+#define RIIC2SR1H (RIIC2.RIICnSR1.UINT16[R_IO_H])
+#define RIIC2SR1HL (RIIC2.RIICnSR1.UINT8[R_IO_HL])
+#define RIIC2SR1HH (RIIC2.RIICnSR1.UINT8[R_IO_HH])
+#define RIIC2SR2 (RIIC2.RIICnSR2.UINT32)
+#define RIIC2SR2L (RIIC2.RIICnSR2.UINT16[R_IO_L])
+#define RIIC2SR2LL (RIIC2.RIICnSR2.UINT8[R_IO_LL])
+#define RIIC2SR2LH (RIIC2.RIICnSR2.UINT8[R_IO_LH])
+#define RIIC2SR2H (RIIC2.RIICnSR2.UINT16[R_IO_H])
+#define RIIC2SR2HL (RIIC2.RIICnSR2.UINT8[R_IO_HL])
+#define RIIC2SR2HH (RIIC2.RIICnSR2.UINT8[R_IO_HH])
+#define RIIC2SAR0 (RIIC2.RIICnSAR0.UINT32)
+#define RIIC2SAR0L (RIIC2.RIICnSAR0.UINT16[R_IO_L])
+#define RIIC2SAR0LL (RIIC2.RIICnSAR0.UINT8[R_IO_LL])
+#define RIIC2SAR0LH (RIIC2.RIICnSAR0.UINT8[R_IO_LH])
+#define RIIC2SAR0H (RIIC2.RIICnSAR0.UINT16[R_IO_H])
+#define RIIC2SAR0HL (RIIC2.RIICnSAR0.UINT8[R_IO_HL])
+#define RIIC2SAR0HH (RIIC2.RIICnSAR0.UINT8[R_IO_HH])
+#define RIIC2SAR1 (RIIC2.RIICnSAR1.UINT32)
+#define RIIC2SAR1L (RIIC2.RIICnSAR1.UINT16[R_IO_L])
+#define RIIC2SAR1LL (RIIC2.RIICnSAR1.UINT8[R_IO_LL])
+#define RIIC2SAR1LH (RIIC2.RIICnSAR1.UINT8[R_IO_LH])
+#define RIIC2SAR1H (RIIC2.RIICnSAR1.UINT16[R_IO_H])
+#define RIIC2SAR1HL (RIIC2.RIICnSAR1.UINT8[R_IO_HL])
+#define RIIC2SAR1HH (RIIC2.RIICnSAR1.UINT8[R_IO_HH])
+#define RIIC2SAR2 (RIIC2.RIICnSAR2.UINT32)
+#define RIIC2SAR2L (RIIC2.RIICnSAR2.UINT16[R_IO_L])
+#define RIIC2SAR2LL (RIIC2.RIICnSAR2.UINT8[R_IO_LL])
+#define RIIC2SAR2LH (RIIC2.RIICnSAR2.UINT8[R_IO_LH])
+#define RIIC2SAR2H (RIIC2.RIICnSAR2.UINT16[R_IO_H])
+#define RIIC2SAR2HL (RIIC2.RIICnSAR2.UINT8[R_IO_HL])
+#define RIIC2SAR2HH (RIIC2.RIICnSAR2.UINT8[R_IO_HH])
+#define RIIC2BRL (RIIC2.RIICnBRL.UINT32)
+#define RIIC2BRLL (RIIC2.RIICnBRL.UINT16[R_IO_L])
+#define RIIC2BRLLL (RIIC2.RIICnBRL.UINT8[R_IO_LL])
+#define RIIC2BRLLH (RIIC2.RIICnBRL.UINT8[R_IO_LH])
+#define RIIC2BRLH (RIIC2.RIICnBRL.UINT16[R_IO_H])
+#define RIIC2BRLHL (RIIC2.RIICnBRL.UINT8[R_IO_HL])
+#define RIIC2BRLHH (RIIC2.RIICnBRL.UINT8[R_IO_HH])
+#define RIIC2BRH (RIIC2.RIICnBRH.UINT32)
+#define RIIC2BRHL (RIIC2.RIICnBRH.UINT16[R_IO_L])
+#define RIIC2BRHLL (RIIC2.RIICnBRH.UINT8[R_IO_LL])
+#define RIIC2BRHLH (RIIC2.RIICnBRH.UINT8[R_IO_LH])
+#define RIIC2BRHH (RIIC2.RIICnBRH.UINT16[R_IO_H])
+#define RIIC2BRHHL (RIIC2.RIICnBRH.UINT8[R_IO_HL])
+#define RIIC2BRHHH (RIIC2.RIICnBRH.UINT8[R_IO_HH])
+#define RIIC2DRT (RIIC2.RIICnDRT.UINT32)
+#define RIIC2DRTL (RIIC2.RIICnDRT.UINT16[R_IO_L])
+#define RIIC2DRTLL (RIIC2.RIICnDRT.UINT8[R_IO_LL])
+#define RIIC2DRTLH (RIIC2.RIICnDRT.UINT8[R_IO_LH])
+#define RIIC2DRTH (RIIC2.RIICnDRT.UINT16[R_IO_H])
+#define RIIC2DRTHL (RIIC2.RIICnDRT.UINT8[R_IO_HL])
+#define RIIC2DRTHH (RIIC2.RIICnDRT.UINT8[R_IO_HH])
+#define RIIC2DRR (RIIC2.RIICnDRR.UINT32)
+#define RIIC2DRRL (RIIC2.RIICnDRR.UINT16[R_IO_L])
+#define RIIC2DRRLL (RIIC2.RIICnDRR.UINT8[R_IO_LL])
+#define RIIC2DRRLH (RIIC2.RIICnDRR.UINT8[R_IO_LH])
+#define RIIC2DRRH (RIIC2.RIICnDRR.UINT16[R_IO_H])
+#define RIIC2DRRHL (RIIC2.RIICnDRR.UINT8[R_IO_HL])
+#define RIIC2DRRHH (RIIC2.RIICnDRR.UINT8[R_IO_HH])
+#define RIIC3CR1 (RIIC3.RIICnCR1.UINT32)
+#define RIIC3CR1L (RIIC3.RIICnCR1.UINT16[R_IO_L])
+#define RIIC3CR1LL (RIIC3.RIICnCR1.UINT8[R_IO_LL])
+#define RIIC3CR1LH (RIIC3.RIICnCR1.UINT8[R_IO_LH])
+#define RIIC3CR1H (RIIC3.RIICnCR1.UINT16[R_IO_H])
+#define RIIC3CR1HL (RIIC3.RIICnCR1.UINT8[R_IO_HL])
+#define RIIC3CR1HH (RIIC3.RIICnCR1.UINT8[R_IO_HH])
+#define RIIC3CR2 (RIIC3.RIICnCR2.UINT32)
+#define RIIC3CR2L (RIIC3.RIICnCR2.UINT16[R_IO_L])
+#define RIIC3CR2LL (RIIC3.RIICnCR2.UINT8[R_IO_LL])
+#define RIIC3CR2LH (RIIC3.RIICnCR2.UINT8[R_IO_LH])
+#define RIIC3CR2H (RIIC3.RIICnCR2.UINT16[R_IO_H])
+#define RIIC3CR2HL (RIIC3.RIICnCR2.UINT8[R_IO_HL])
+#define RIIC3CR2HH (RIIC3.RIICnCR2.UINT8[R_IO_HH])
+#define RIIC3MR1 (RIIC3.RIICnMR1.UINT32)
+#define RIIC3MR1L (RIIC3.RIICnMR1.UINT16[R_IO_L])
+#define RIIC3MR1LL (RIIC3.RIICnMR1.UINT8[R_IO_LL])
+#define RIIC3MR1LH (RIIC3.RIICnMR1.UINT8[R_IO_LH])
+#define RIIC3MR1H (RIIC3.RIICnMR1.UINT16[R_IO_H])
+#define RIIC3MR1HL (RIIC3.RIICnMR1.UINT8[R_IO_HL])
+#define RIIC3MR1HH (RIIC3.RIICnMR1.UINT8[R_IO_HH])
+#define RIIC3MR2 (RIIC3.RIICnMR2.UINT32)
+#define RIIC3MR2L (RIIC3.RIICnMR2.UINT16[R_IO_L])
+#define RIIC3MR2LL (RIIC3.RIICnMR2.UINT8[R_IO_LL])
+#define RIIC3MR2LH (RIIC3.RIICnMR2.UINT8[R_IO_LH])
+#define RIIC3MR2H (RIIC3.RIICnMR2.UINT16[R_IO_H])
+#define RIIC3MR2HL (RIIC3.RIICnMR2.UINT8[R_IO_HL])
+#define RIIC3MR2HH (RIIC3.RIICnMR2.UINT8[R_IO_HH])
+#define RIIC3MR3 (RIIC3.RIICnMR3.UINT32)
+#define RIIC3MR3L (RIIC3.RIICnMR3.UINT16[R_IO_L])
+#define RIIC3MR3LL (RIIC3.RIICnMR3.UINT8[R_IO_LL])
+#define RIIC3MR3LH (RIIC3.RIICnMR3.UINT8[R_IO_LH])
+#define RIIC3MR3H (RIIC3.RIICnMR3.UINT16[R_IO_H])
+#define RIIC3MR3HL (RIIC3.RIICnMR3.UINT8[R_IO_HL])
+#define RIIC3MR3HH (RIIC3.RIICnMR3.UINT8[R_IO_HH])
+#define RIIC3FER (RIIC3.RIICnFER.UINT32)
+#define RIIC3FERL (RIIC3.RIICnFER.UINT16[R_IO_L])
+#define RIIC3FERLL (RIIC3.RIICnFER.UINT8[R_IO_LL])
+#define RIIC3FERLH (RIIC3.RIICnFER.UINT8[R_IO_LH])
+#define RIIC3FERH (RIIC3.RIICnFER.UINT16[R_IO_H])
+#define RIIC3FERHL (RIIC3.RIICnFER.UINT8[R_IO_HL])
+#define RIIC3FERHH (RIIC3.RIICnFER.UINT8[R_IO_HH])
+#define RIIC3SER (RIIC3.RIICnSER.UINT32)
+#define RIIC3SERL (RIIC3.RIICnSER.UINT16[R_IO_L])
+#define RIIC3SERLL (RIIC3.RIICnSER.UINT8[R_IO_LL])
+#define RIIC3SERLH (RIIC3.RIICnSER.UINT8[R_IO_LH])
+#define RIIC3SERH (RIIC3.RIICnSER.UINT16[R_IO_H])
+#define RIIC3SERHL (RIIC3.RIICnSER.UINT8[R_IO_HL])
+#define RIIC3SERHH (RIIC3.RIICnSER.UINT8[R_IO_HH])
+#define RIIC3IER (RIIC3.RIICnIER.UINT32)
+#define RIIC3IERL (RIIC3.RIICnIER.UINT16[R_IO_L])
+#define RIIC3IERLL (RIIC3.RIICnIER.UINT8[R_IO_LL])
+#define RIIC3IERLH (RIIC3.RIICnIER.UINT8[R_IO_LH])
+#define RIIC3IERH (RIIC3.RIICnIER.UINT16[R_IO_H])
+#define RIIC3IERHL (RIIC3.RIICnIER.UINT8[R_IO_HL])
+#define RIIC3IERHH (RIIC3.RIICnIER.UINT8[R_IO_HH])
+#define RIIC3SR1 (RIIC3.RIICnSR1.UINT32)
+#define RIIC3SR1L (RIIC3.RIICnSR1.UINT16[R_IO_L])
+#define RIIC3SR1LL (RIIC3.RIICnSR1.UINT8[R_IO_LL])
+#define RIIC3SR1LH (RIIC3.RIICnSR1.UINT8[R_IO_LH])
+#define RIIC3SR1H (RIIC3.RIICnSR1.UINT16[R_IO_H])
+#define RIIC3SR1HL (RIIC3.RIICnSR1.UINT8[R_IO_HL])
+#define RIIC3SR1HH (RIIC3.RIICnSR1.UINT8[R_IO_HH])
+#define RIIC3SR2 (RIIC3.RIICnSR2.UINT32)
+#define RIIC3SR2L (RIIC3.RIICnSR2.UINT16[R_IO_L])
+#define RIIC3SR2LL (RIIC3.RIICnSR2.UINT8[R_IO_LL])
+#define RIIC3SR2LH (RIIC3.RIICnSR2.UINT8[R_IO_LH])
+#define RIIC3SR2H (RIIC3.RIICnSR2.UINT16[R_IO_H])
+#define RIIC3SR2HL (RIIC3.RIICnSR2.UINT8[R_IO_HL])
+#define RIIC3SR2HH (RIIC3.RIICnSR2.UINT8[R_IO_HH])
+#define RIIC3SAR0 (RIIC3.RIICnSAR0.UINT32)
+#define RIIC3SAR0L (RIIC3.RIICnSAR0.UINT16[R_IO_L])
+#define RIIC3SAR0LL (RIIC3.RIICnSAR0.UINT8[R_IO_LL])
+#define RIIC3SAR0LH (RIIC3.RIICnSAR0.UINT8[R_IO_LH])
+#define RIIC3SAR0H (RIIC3.RIICnSAR0.UINT16[R_IO_H])
+#define RIIC3SAR0HL (RIIC3.RIICnSAR0.UINT8[R_IO_HL])
+#define RIIC3SAR0HH (RIIC3.RIICnSAR0.UINT8[R_IO_HH])
+#define RIIC3SAR1 (RIIC3.RIICnSAR1.UINT32)
+#define RIIC3SAR1L (RIIC3.RIICnSAR1.UINT16[R_IO_L])
+#define RIIC3SAR1LL (RIIC3.RIICnSAR1.UINT8[R_IO_LL])
+#define RIIC3SAR1LH (RIIC3.RIICnSAR1.UINT8[R_IO_LH])
+#define RIIC3SAR1H (RIIC3.RIICnSAR1.UINT16[R_IO_H])
+#define RIIC3SAR1HL (RIIC3.RIICnSAR1.UINT8[R_IO_HL])
+#define RIIC3SAR1HH (RIIC3.RIICnSAR1.UINT8[R_IO_HH])
+#define RIIC3SAR2 (RIIC3.RIICnSAR2.UINT32)
+#define RIIC3SAR2L (RIIC3.RIICnSAR2.UINT16[R_IO_L])
+#define RIIC3SAR2LL (RIIC3.RIICnSAR2.UINT8[R_IO_LL])
+#define RIIC3SAR2LH (RIIC3.RIICnSAR2.UINT8[R_IO_LH])
+#define RIIC3SAR2H (RIIC3.RIICnSAR2.UINT16[R_IO_H])
+#define RIIC3SAR2HL (RIIC3.RIICnSAR2.UINT8[R_IO_HL])
+#define RIIC3SAR2HH (RIIC3.RIICnSAR2.UINT8[R_IO_HH])
+#define RIIC3BRL (RIIC3.RIICnBRL.UINT32)
+#define RIIC3BRLL (RIIC3.RIICnBRL.UINT16[R_IO_L])
+#define RIIC3BRLLL (RIIC3.RIICnBRL.UINT8[R_IO_LL])
+#define RIIC3BRLLH (RIIC3.RIICnBRL.UINT8[R_IO_LH])
+#define RIIC3BRLH (RIIC3.RIICnBRL.UINT16[R_IO_H])
+#define RIIC3BRLHL (RIIC3.RIICnBRL.UINT8[R_IO_HL])
+#define RIIC3BRLHH (RIIC3.RIICnBRL.UINT8[R_IO_HH])
+#define RIIC3BRH (RIIC3.RIICnBRH.UINT32)
+#define RIIC3BRHL (RIIC3.RIICnBRH.UINT16[R_IO_L])
+#define RIIC3BRHLL (RIIC3.RIICnBRH.UINT8[R_IO_LL])
+#define RIIC3BRHLH (RIIC3.RIICnBRH.UINT8[R_IO_LH])
+#define RIIC3BRHH (RIIC3.RIICnBRH.UINT16[R_IO_H])
+#define RIIC3BRHHL (RIIC3.RIICnBRH.UINT8[R_IO_HL])
+#define RIIC3BRHHH (RIIC3.RIICnBRH.UINT8[R_IO_HH])
+#define RIIC3DRT (RIIC3.RIICnDRT.UINT32)
+#define RIIC3DRTL (RIIC3.RIICnDRT.UINT16[R_IO_L])
+#define RIIC3DRTLL (RIIC3.RIICnDRT.UINT8[R_IO_LL])
+#define RIIC3DRTLH (RIIC3.RIICnDRT.UINT8[R_IO_LH])
+#define RIIC3DRTH (RIIC3.RIICnDRT.UINT16[R_IO_H])
+#define RIIC3DRTHL (RIIC3.RIICnDRT.UINT8[R_IO_HL])
+#define RIIC3DRTHH (RIIC3.RIICnDRT.UINT8[R_IO_HH])
+#define RIIC3DRR (RIIC3.RIICnDRR.UINT32)
+#define RIIC3DRRL (RIIC3.RIICnDRR.UINT16[R_IO_L])
+#define RIIC3DRRLL (RIIC3.RIICnDRR.UINT8[R_IO_LL])
+#define RIIC3DRRLH (RIIC3.RIICnDRR.UINT8[R_IO_LH])
+#define RIIC3DRRH (RIIC3.RIICnDRR.UINT16[R_IO_H])
+#define RIIC3DRRHL (RIIC3.RIICnDRR.UINT8[R_IO_HL])
+#define RIIC3DRRHH (RIIC3.RIICnDRR.UINT8[R_IO_HH])
+
+#define RIICnCRm_COUNT (2)
+#define RIICnMRm_COUNT (3)
+#define RIICnSRm_COUNT (2)
+#define RIICnSARm_COUNT (3)
+
+
+typedef struct st_riic
+{
+                                                           /* RIIC             */
+
+/* #define RIICnCRm_COUNT (2) */
+    union iodefine_reg32_t  RIICnCR1;                      /*  RIICnCR1        */
+    union iodefine_reg32_t  RIICnCR2;                      /*  RIICnCR2        */
+
+/* #define RIICnMRm_COUNT (3) */
+    union iodefine_reg32_t  RIICnMR1;                      /*  RIICnMR1        */
+    union iodefine_reg32_t  RIICnMR2;                      /*  RIICnMR2        */
+    union iodefine_reg32_t  RIICnMR3;                      /*  RIICnMR3        */
+    union iodefine_reg32_t  RIICnFER;                      /*  RIICnFER        */
+    union iodefine_reg32_t  RIICnSER;                      /*  RIICnSER        */
+    union iodefine_reg32_t  RIICnIER;                      /*  RIICnIER        */
+
+/* #define RIICnSRm_COUNT (2) */
+    union iodefine_reg32_t  RIICnSR1;                      /*  RIICnSR1        */
+    union iodefine_reg32_t  RIICnSR2;                      /*  RIICnSR2        */
+
+/* #define RIICnSARm_COUNT (3) */
+    union iodefine_reg32_t  RIICnSAR0;                     /*  RIICnSAR0       */
+    union iodefine_reg32_t  RIICnSAR1;                     /*  RIICnSAR1       */
+    union iodefine_reg32_t  RIICnSAR2;                     /*  RIICnSAR2       */
+    union iodefine_reg32_t  RIICnBRL;                      /*  RIICnBRL        */
+    union iodefine_reg32_t  RIICnBRH;                      /*  RIICnBRH        */
+    union iodefine_reg32_t  RIICnDRT;                      /*  RIICnDRT        */
+    union iodefine_reg32_t  RIICnDRR;                      /*  RIICnDRR        */
+    
+} r_io_riic_t;
+
+
+/* Channel array defines of RIIC (2)*/
+#ifdef  DECLARE_RIIC_CHANNELS
+volatile struct st_riic*  RIIC[ RIIC_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    RIIC_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_RIIC_CHANNELS */
+/* End of channel array defines of RIIC (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/romdec_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/romdec_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/romdec_iodefine.h	(revision 429)
@@ -0,0 +1,194 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : romdec_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef ROMDEC_IODEFINE_H
+#define ROMDEC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define ROMDEC  (*(struct st_romdec  *)0xE8005000uL) /* ROMDEC */
+
+
+#define ROMDECCROMEN (ROMDEC.CROMEN)
+#define ROMDECCROMSY0 (ROMDEC.CROMSY0)
+#define ROMDECCROMCTL0 (ROMDEC.CROMCTL0)
+#define ROMDECCROMCTL1 (ROMDEC.CROMCTL1)
+#define ROMDECCROMCTL3 (ROMDEC.CROMCTL3)
+#define ROMDECCROMCTL4 (ROMDEC.CROMCTL4)
+#define ROMDECCROMCTL5 (ROMDEC.CROMCTL5)
+#define ROMDECCROMST0 (ROMDEC.CROMST0)
+#define ROMDECCROMST1 (ROMDEC.CROMST1)
+#define ROMDECCROMST3 (ROMDEC.CROMST3)
+#define ROMDECCROMST4 (ROMDEC.CROMST4)
+#define ROMDECCROMST5 (ROMDEC.CROMST5)
+#define ROMDECCROMST6 (ROMDEC.CROMST6)
+#define ROMDECCBUFST0 (ROMDEC.CBUFST0)
+#define ROMDECCBUFST1 (ROMDEC.CBUFST1)
+#define ROMDECCBUFST2 (ROMDEC.CBUFST2)
+#define ROMDECHEAD00 (ROMDEC.HEAD00)
+#define ROMDECHEAD01 (ROMDEC.HEAD01)
+#define ROMDECHEAD02 (ROMDEC.HEAD02)
+#define ROMDECHEAD03 (ROMDEC.HEAD03)
+#define ROMDECSHEAD00 (ROMDEC.SHEAD00)
+#define ROMDECSHEAD01 (ROMDEC.SHEAD01)
+#define ROMDECSHEAD02 (ROMDEC.SHEAD02)
+#define ROMDECSHEAD03 (ROMDEC.SHEAD03)
+#define ROMDECSHEAD04 (ROMDEC.SHEAD04)
+#define ROMDECSHEAD05 (ROMDEC.SHEAD05)
+#define ROMDECSHEAD06 (ROMDEC.SHEAD06)
+#define ROMDECSHEAD07 (ROMDEC.SHEAD07)
+#define ROMDECHEAD20 (ROMDEC.HEAD20)
+#define ROMDECHEAD21 (ROMDEC.HEAD21)
+#define ROMDECHEAD22 (ROMDEC.HEAD22)
+#define ROMDECHEAD23 (ROMDEC.HEAD23)
+#define ROMDECSHEAD20 (ROMDEC.SHEAD20)
+#define ROMDECSHEAD21 (ROMDEC.SHEAD21)
+#define ROMDECSHEAD22 (ROMDEC.SHEAD22)
+#define ROMDECSHEAD23 (ROMDEC.SHEAD23)
+#define ROMDECSHEAD24 (ROMDEC.SHEAD24)
+#define ROMDECSHEAD25 (ROMDEC.SHEAD25)
+#define ROMDECSHEAD26 (ROMDEC.SHEAD26)
+#define ROMDECSHEAD27 (ROMDEC.SHEAD27)
+#define ROMDECCBUFCTL0 (ROMDEC.CBUFCTL0)
+#define ROMDECCBUFCTL1 (ROMDEC.CBUFCTL1)
+#define ROMDECCBUFCTL2 (ROMDEC.CBUFCTL2)
+#define ROMDECCBUFCTL3 (ROMDEC.CBUFCTL3)
+#define ROMDECCROMST0M (ROMDEC.CROMST0M)
+#define ROMDECROMDECRST (ROMDEC.ROMDECRST)
+#define ROMDECRSTSTAT (ROMDEC.RSTSTAT)
+#define ROMDECSSI (ROMDEC.SSI)
+#define ROMDECINTHOLD (ROMDEC.INTHOLD)
+#define ROMDECINHINT (ROMDEC.INHINT)
+#define ROMDECSTRMDIN0 (ROMDEC.STRMDIN0)
+#define ROMDECSTRMDIN2 (ROMDEC.STRMDIN2)
+#define ROMDECSTRMDOUT0 (ROMDEC.STRMDOUT0)
+
+#define ROMDEC_CROMCTL0_COUNT (2)
+#define ROMDEC_CROMST0_COUNT (2)
+#define ROMDEC_CBUFST0_COUNT (3)
+#define ROMDEC_HEAD00_COUNT (4)
+#define ROMDEC_SHEAD00_COUNT (8)
+#define ROMDEC_HEAD20_COUNT (4)
+#define ROMDEC_SHEAD20_COUNT (8)
+#define ROMDEC_CBUFCTL0_COUNT (4)
+#define ROMDEC_STRMDIN0_COUNT (2)
+
+
+typedef struct st_romdec
+{
+                                                           /* ROMDEC           */
+    volatile uint8_t   CROMEN;                                 /*  CROMEN          */
+    volatile uint8_t   CROMSY0;                                /*  CROMSY0         */
+
+/* #define ROMDEC_CROMCTL0_COUNT (2) */
+    volatile uint8_t   CROMCTL0;                               /*  CROMCTL0        */
+    volatile uint8_t   CROMCTL1;                               /*  CROMCTL1        */
+    volatile uint8_t   dummy23[1];                             /*                  */
+    volatile uint8_t   CROMCTL3;                               /*  CROMCTL3        */
+    volatile uint8_t   CROMCTL4;                               /*  CROMCTL4        */
+    volatile uint8_t   CROMCTL5;                               /*  CROMCTL5        */
+
+/* #define ROMDEC_CROMST0_COUNT (2) */
+    volatile uint8_t   CROMST0;                                /*  CROMST0         */
+    volatile uint8_t   CROMST1;                                /*  CROMST1         */
+    volatile uint8_t   dummy24[1];                             /*                  */
+    volatile uint8_t   CROMST3;                                /*  CROMST3         */
+    volatile uint8_t   CROMST4;                                /*  CROMST4         */
+    volatile uint8_t   CROMST5;                                /*  CROMST5         */
+    volatile uint8_t   CROMST6;                                /*  CROMST6         */
+    volatile uint8_t   dummy25[5];                             /*                  */
+
+/* #define ROMDEC_CBUFST0_COUNT (3) */
+    volatile uint8_t   CBUFST0;                                /*  CBUFST0         */
+    volatile uint8_t   CBUFST1;                                /*  CBUFST1         */
+    volatile uint8_t   CBUFST2;                                /*  CBUFST2         */
+    volatile uint8_t   dummy26[1];                             /*                  */
+
+/* #define ROMDEC_HEAD00_COUNT (4) */
+    volatile uint8_t   HEAD00;                                 /*  HEAD00          */
+    volatile uint8_t   HEAD01;                                 /*  HEAD01          */
+    volatile uint8_t   HEAD02;                                 /*  HEAD02          */
+    volatile uint8_t   HEAD03;                                 /*  HEAD03          */
+
+/* #define ROMDEC_SHEAD00_COUNT (8) */
+    volatile uint8_t   SHEAD00;                                /*  SHEAD00         */
+    volatile uint8_t   SHEAD01;                                /*  SHEAD01         */
+    volatile uint8_t   SHEAD02;                                /*  SHEAD02         */
+    volatile uint8_t   SHEAD03;                                /*  SHEAD03         */
+    volatile uint8_t   SHEAD04;                                /*  SHEAD04         */
+    volatile uint8_t   SHEAD05;                                /*  SHEAD05         */
+    volatile uint8_t   SHEAD06;                                /*  SHEAD06         */
+    volatile uint8_t   SHEAD07;                                /*  SHEAD07         */
+
+/* #define ROMDEC_HEAD20_COUNT (4) */
+    volatile uint8_t   HEAD20;                                 /*  HEAD20          */
+    volatile uint8_t   HEAD21;                                 /*  HEAD21          */
+    volatile uint8_t   HEAD22;                                 /*  HEAD22          */
+    volatile uint8_t   HEAD23;                                 /*  HEAD23          */
+
+/* #define ROMDEC_SHEAD20_COUNT (8) */
+    volatile uint8_t   SHEAD20;                                /*  SHEAD20         */
+    volatile uint8_t   SHEAD21;                                /*  SHEAD21         */
+    volatile uint8_t   SHEAD22;                                /*  SHEAD22         */
+    volatile uint8_t   SHEAD23;                                /*  SHEAD23         */
+    volatile uint8_t   SHEAD24;                                /*  SHEAD24         */
+    volatile uint8_t   SHEAD25;                                /*  SHEAD25         */
+    volatile uint8_t   SHEAD26;                                /*  SHEAD26         */
+    volatile uint8_t   SHEAD27;                                /*  SHEAD27         */
+    volatile uint8_t   dummy27[16];                            /*                  */
+
+/* #define ROMDEC_CBUFCTL0_COUNT (4) */
+    volatile uint8_t   CBUFCTL0;                               /*  CBUFCTL0        */
+    volatile uint8_t   CBUFCTL1;                               /*  CBUFCTL1        */
+    volatile uint8_t   CBUFCTL2;                               /*  CBUFCTL2        */
+    volatile uint8_t   CBUFCTL3;                               /*  CBUFCTL3        */
+    volatile uint8_t   dummy28[1];                             /*                  */
+    volatile uint8_t   CROMST0M;                               /*  CROMST0M        */
+    volatile uint8_t   dummy29[186];                           /*                  */
+    volatile uint8_t   ROMDECRST;                              /*  ROMDECRST       */
+    volatile uint8_t   RSTSTAT;                                /*  RSTSTAT         */
+    volatile uint8_t   SSI;                                    /*  SSI             */
+    volatile uint8_t   dummy30[5];                             /*                  */
+    volatile uint8_t   INTHOLD;                                /*  INTHOLD         */
+    volatile uint8_t   INHINT;                                 /*  INHINT          */
+    volatile uint8_t   dummy31[246];                           /*                  */
+
+/* #define ROMDEC_STRMDIN0_COUNT (2) */
+    volatile uint16_t STRMDIN0;                               /*  STRMDIN0        */
+    volatile uint16_t STRMDIN2;                               /*  STRMDIN2        */
+    volatile uint16_t STRMDOUT0;                              /*  STRMDOUT0       */
+} r_io_romdec_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rscan0_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rscan0_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rscan0_iodefine.h	(revision 429)
@@ -0,0 +1,9346 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : rscan0_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef RSCAN0_IODEFINE_H
+#define RSCAN0_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define RSCAN0  (*(struct st_rscan0  *)0xE803A000uL) /* RSCAN0 */
+
+
+/* Start of channel array defines of RSCAN0 */
+
+/* Channel array defines of RSCAN_FROM_RSCAN0_CFIDm */
+/*(Sample) value = RSCAN_FROM_RSCAN0_CFIDm[ channel ]->CFIDm.UINT32; */
+#define RSCAN_FROM_RSCAN0_CFIDm_COUNT  (15)
+#define RSCAN_FROM_RSCAN0_CFIDm_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &RSCAN_FROM_RSCAN0CFID0, &RSCAN_FROM_RSCAN0CFID1, &RSCAN_FROM_RSCAN0CFID2, &RSCAN_FROM_RSCAN0CFID3, &RSCAN_FROM_RSCAN0CFID4, &RSCAN_FROM_RSCAN0CFID5, &RSCAN_FROM_RSCAN0CFID6, &RSCAN_FROM_RSCAN0CFID7, \
+    &RSCAN_FROM_RSCAN0CFID8, &RSCAN_FROM_RSCAN0CFID9, &RSCAN_FROM_RSCAN0CFID10, &RSCAN_FROM_RSCAN0CFID11, &RSCAN_FROM_RSCAN0CFID12, &RSCAN_FROM_RSCAN0CFID13, &RSCAN_FROM_RSCAN0CFID14 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define RSCAN_FROM_RSCAN0CFID0 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID0) /* RSCAN_FROM_RSCAN0CFID0 */
+#define RSCAN_FROM_RSCAN0CFID1 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID1) /* RSCAN_FROM_RSCAN0CFID1 */
+#define RSCAN_FROM_RSCAN0CFID2 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID2) /* RSCAN_FROM_RSCAN0CFID2 */
+#define RSCAN_FROM_RSCAN0CFID3 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID3) /* RSCAN_FROM_RSCAN0CFID3 */
+#define RSCAN_FROM_RSCAN0CFID4 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID4) /* RSCAN_FROM_RSCAN0CFID4 */
+#define RSCAN_FROM_RSCAN0CFID5 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID5) /* RSCAN_FROM_RSCAN0CFID5 */
+#define RSCAN_FROM_RSCAN0CFID6 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID6) /* RSCAN_FROM_RSCAN0CFID6 */
+#define RSCAN_FROM_RSCAN0CFID7 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID7) /* RSCAN_FROM_RSCAN0CFID7 */
+#define RSCAN_FROM_RSCAN0CFID8 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID8) /* RSCAN_FROM_RSCAN0CFID8 */
+#define RSCAN_FROM_RSCAN0CFID9 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID9) /* RSCAN_FROM_RSCAN0CFID9 */
+#define RSCAN_FROM_RSCAN0CFID10 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID10) /* RSCAN_FROM_RSCAN0CFID10 */
+#define RSCAN_FROM_RSCAN0CFID11 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID11) /* RSCAN_FROM_RSCAN0CFID11 */
+#define RSCAN_FROM_RSCAN0CFID12 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID12) /* RSCAN_FROM_RSCAN0CFID12 */
+#define RSCAN_FROM_RSCAN0CFID13 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID13) /* RSCAN_FROM_RSCAN0CFID13 */
+#define RSCAN_FROM_RSCAN0CFID14 (*(struct st_rscan_from_rscan0cfidm *)&RSCAN0.CFID14) /* RSCAN_FROM_RSCAN0CFID14 */
+
+
+/* Channel array defines of RSCAN_FROM_RSCAN0_TMIDp */
+/*(Sample) value = RSCAN_FROM_RSCAN0_TMIDp[ channel ]->TMIDp.UINT32; */
+#define RSCAN_FROM_RSCAN0_TMIDp_COUNT  (80)
+#define RSCAN_FROM_RSCAN0_TMIDp_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &RSCAN_FROM_RSCAN0TMID0, &RSCAN_FROM_RSCAN0TMID1, &RSCAN_FROM_RSCAN0TMID2, &RSCAN_FROM_RSCAN0TMID3, &RSCAN_FROM_RSCAN0TMID4, &RSCAN_FROM_RSCAN0TMID5, &RSCAN_FROM_RSCAN0TMID6, &RSCAN_FROM_RSCAN0TMID7, \
+    &RSCAN_FROM_RSCAN0TMID8, &RSCAN_FROM_RSCAN0TMID9, &RSCAN_FROM_RSCAN0TMID10, &RSCAN_FROM_RSCAN0TMID11, &RSCAN_FROM_RSCAN0TMID12, &RSCAN_FROM_RSCAN0TMID13, &RSCAN_FROM_RSCAN0TMID14, &RSCAN_FROM_RSCAN0TMID15, \
+    &RSCAN_FROM_RSCAN0TMID16, &RSCAN_FROM_RSCAN0TMID17, &RSCAN_FROM_RSCAN0TMID18, &RSCAN_FROM_RSCAN0TMID19, &RSCAN_FROM_RSCAN0TMID20, &RSCAN_FROM_RSCAN0TMID21, &RSCAN_FROM_RSCAN0TMID22, &RSCAN_FROM_RSCAN0TMID23, \
+    &RSCAN_FROM_RSCAN0TMID24, &RSCAN_FROM_RSCAN0TMID25, &RSCAN_FROM_RSCAN0TMID26, &RSCAN_FROM_RSCAN0TMID27, &RSCAN_FROM_RSCAN0TMID28, &RSCAN_FROM_RSCAN0TMID29, &RSCAN_FROM_RSCAN0TMID30, &RSCAN_FROM_RSCAN0TMID31, \
+    &RSCAN_FROM_RSCAN0TMID32, &RSCAN_FROM_RSCAN0TMID33, &RSCAN_FROM_RSCAN0TMID34, &RSCAN_FROM_RSCAN0TMID35, &RSCAN_FROM_RSCAN0TMID36, &RSCAN_FROM_RSCAN0TMID37, &RSCAN_FROM_RSCAN0TMID38, &RSCAN_FROM_RSCAN0TMID39, \
+    &RSCAN_FROM_RSCAN0TMID40, &RSCAN_FROM_RSCAN0TMID41, &RSCAN_FROM_RSCAN0TMID42, &RSCAN_FROM_RSCAN0TMID43, &RSCAN_FROM_RSCAN0TMID44, &RSCAN_FROM_RSCAN0TMID45, &RSCAN_FROM_RSCAN0TMID46, &RSCAN_FROM_RSCAN0TMID47, \
+    &RSCAN_FROM_RSCAN0TMID48, &RSCAN_FROM_RSCAN0TMID49, &RSCAN_FROM_RSCAN0TMID50, &RSCAN_FROM_RSCAN0TMID51, &RSCAN_FROM_RSCAN0TMID52, &RSCAN_FROM_RSCAN0TMID53, &RSCAN_FROM_RSCAN0TMID54, &RSCAN_FROM_RSCAN0TMID55, \
+    &RSCAN_FROM_RSCAN0TMID56, &RSCAN_FROM_RSCAN0TMID57, &RSCAN_FROM_RSCAN0TMID58, &RSCAN_FROM_RSCAN0TMID59, &RSCAN_FROM_RSCAN0TMID60, &RSCAN_FROM_RSCAN0TMID61, &RSCAN_FROM_RSCAN0TMID62, &RSCAN_FROM_RSCAN0TMID63, \
+    &RSCAN_FROM_RSCAN0TMID64, &RSCAN_FROM_RSCAN0TMID65, &RSCAN_FROM_RSCAN0TMID66, &RSCAN_FROM_RSCAN0TMID67, &RSCAN_FROM_RSCAN0TMID68, &RSCAN_FROM_RSCAN0TMID69, &RSCAN_FROM_RSCAN0TMID70, &RSCAN_FROM_RSCAN0TMID71, \
+    &RSCAN_FROM_RSCAN0TMID72, &RSCAN_FROM_RSCAN0TMID73, &RSCAN_FROM_RSCAN0TMID74, &RSCAN_FROM_RSCAN0TMID75, &RSCAN_FROM_RSCAN0TMID76, &RSCAN_FROM_RSCAN0TMID77, &RSCAN_FROM_RSCAN0TMID78, &RSCAN_FROM_RSCAN0TMID79 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define RSCAN_FROM_RSCAN0TMID0 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID0) /* RSCAN_FROM_RSCAN0TMID0 */
+#define RSCAN_FROM_RSCAN0TMID1 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID1) /* RSCAN_FROM_RSCAN0TMID1 */
+#define RSCAN_FROM_RSCAN0TMID2 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID2) /* RSCAN_FROM_RSCAN0TMID2 */
+#define RSCAN_FROM_RSCAN0TMID3 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID3) /* RSCAN_FROM_RSCAN0TMID3 */
+#define RSCAN_FROM_RSCAN0TMID4 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID4) /* RSCAN_FROM_RSCAN0TMID4 */
+#define RSCAN_FROM_RSCAN0TMID5 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID5) /* RSCAN_FROM_RSCAN0TMID5 */
+#define RSCAN_FROM_RSCAN0TMID6 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID6) /* RSCAN_FROM_RSCAN0TMID6 */
+#define RSCAN_FROM_RSCAN0TMID7 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID7) /* RSCAN_FROM_RSCAN0TMID7 */
+#define RSCAN_FROM_RSCAN0TMID8 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID8) /* RSCAN_FROM_RSCAN0TMID8 */
+#define RSCAN_FROM_RSCAN0TMID9 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID9) /* RSCAN_FROM_RSCAN0TMID9 */
+#define RSCAN_FROM_RSCAN0TMID10 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID10) /* RSCAN_FROM_RSCAN0TMID10 */
+#define RSCAN_FROM_RSCAN0TMID11 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID11) /* RSCAN_FROM_RSCAN0TMID11 */
+#define RSCAN_FROM_RSCAN0TMID12 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID12) /* RSCAN_FROM_RSCAN0TMID12 */
+#define RSCAN_FROM_RSCAN0TMID13 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID13) /* RSCAN_FROM_RSCAN0TMID13 */
+#define RSCAN_FROM_RSCAN0TMID14 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID14) /* RSCAN_FROM_RSCAN0TMID14 */
+#define RSCAN_FROM_RSCAN0TMID15 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID15) /* RSCAN_FROM_RSCAN0TMID15 */
+#define RSCAN_FROM_RSCAN0TMID16 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID16) /* RSCAN_FROM_RSCAN0TMID16 */
+#define RSCAN_FROM_RSCAN0TMID17 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID17) /* RSCAN_FROM_RSCAN0TMID17 */
+#define RSCAN_FROM_RSCAN0TMID18 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID18) /* RSCAN_FROM_RSCAN0TMID18 */
+#define RSCAN_FROM_RSCAN0TMID19 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID19) /* RSCAN_FROM_RSCAN0TMID19 */
+#define RSCAN_FROM_RSCAN0TMID20 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID20) /* RSCAN_FROM_RSCAN0TMID20 */
+#define RSCAN_FROM_RSCAN0TMID21 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID21) /* RSCAN_FROM_RSCAN0TMID21 */
+#define RSCAN_FROM_RSCAN0TMID22 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID22) /* RSCAN_FROM_RSCAN0TMID22 */
+#define RSCAN_FROM_RSCAN0TMID23 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID23) /* RSCAN_FROM_RSCAN0TMID23 */
+#define RSCAN_FROM_RSCAN0TMID24 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID24) /* RSCAN_FROM_RSCAN0TMID24 */
+#define RSCAN_FROM_RSCAN0TMID25 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID25) /* RSCAN_FROM_RSCAN0TMID25 */
+#define RSCAN_FROM_RSCAN0TMID26 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID26) /* RSCAN_FROM_RSCAN0TMID26 */
+#define RSCAN_FROM_RSCAN0TMID27 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID27) /* RSCAN_FROM_RSCAN0TMID27 */
+#define RSCAN_FROM_RSCAN0TMID28 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID28) /* RSCAN_FROM_RSCAN0TMID28 */
+#define RSCAN_FROM_RSCAN0TMID29 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID29) /* RSCAN_FROM_RSCAN0TMID29 */
+#define RSCAN_FROM_RSCAN0TMID30 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID30) /* RSCAN_FROM_RSCAN0TMID30 */
+#define RSCAN_FROM_RSCAN0TMID31 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID31) /* RSCAN_FROM_RSCAN0TMID31 */
+#define RSCAN_FROM_RSCAN0TMID32 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID32) /* RSCAN_FROM_RSCAN0TMID32 */
+#define RSCAN_FROM_RSCAN0TMID33 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID33) /* RSCAN_FROM_RSCAN0TMID33 */
+#define RSCAN_FROM_RSCAN0TMID34 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID34) /* RSCAN_FROM_RSCAN0TMID34 */
+#define RSCAN_FROM_RSCAN0TMID35 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID35) /* RSCAN_FROM_RSCAN0TMID35 */
+#define RSCAN_FROM_RSCAN0TMID36 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID36) /* RSCAN_FROM_RSCAN0TMID36 */
+#define RSCAN_FROM_RSCAN0TMID37 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID37) /* RSCAN_FROM_RSCAN0TMID37 */
+#define RSCAN_FROM_RSCAN0TMID38 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID38) /* RSCAN_FROM_RSCAN0TMID38 */
+#define RSCAN_FROM_RSCAN0TMID39 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID39) /* RSCAN_FROM_RSCAN0TMID39 */
+#define RSCAN_FROM_RSCAN0TMID40 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID40) /* RSCAN_FROM_RSCAN0TMID40 */
+#define RSCAN_FROM_RSCAN0TMID41 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID41) /* RSCAN_FROM_RSCAN0TMID41 */
+#define RSCAN_FROM_RSCAN0TMID42 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID42) /* RSCAN_FROM_RSCAN0TMID42 */
+#define RSCAN_FROM_RSCAN0TMID43 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID43) /* RSCAN_FROM_RSCAN0TMID43 */
+#define RSCAN_FROM_RSCAN0TMID44 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID44) /* RSCAN_FROM_RSCAN0TMID44 */
+#define RSCAN_FROM_RSCAN0TMID45 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID45) /* RSCAN_FROM_RSCAN0TMID45 */
+#define RSCAN_FROM_RSCAN0TMID46 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID46) /* RSCAN_FROM_RSCAN0TMID46 */
+#define RSCAN_FROM_RSCAN0TMID47 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID47) /* RSCAN_FROM_RSCAN0TMID47 */
+#define RSCAN_FROM_RSCAN0TMID48 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID48) /* RSCAN_FROM_RSCAN0TMID48 */
+#define RSCAN_FROM_RSCAN0TMID49 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID49) /* RSCAN_FROM_RSCAN0TMID49 */
+#define RSCAN_FROM_RSCAN0TMID50 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID50) /* RSCAN_FROM_RSCAN0TMID50 */
+#define RSCAN_FROM_RSCAN0TMID51 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID51) /* RSCAN_FROM_RSCAN0TMID51 */
+#define RSCAN_FROM_RSCAN0TMID52 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID52) /* RSCAN_FROM_RSCAN0TMID52 */
+#define RSCAN_FROM_RSCAN0TMID53 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID53) /* RSCAN_FROM_RSCAN0TMID53 */
+#define RSCAN_FROM_RSCAN0TMID54 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID54) /* RSCAN_FROM_RSCAN0TMID54 */
+#define RSCAN_FROM_RSCAN0TMID55 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID55) /* RSCAN_FROM_RSCAN0TMID55 */
+#define RSCAN_FROM_RSCAN0TMID56 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID56) /* RSCAN_FROM_RSCAN0TMID56 */
+#define RSCAN_FROM_RSCAN0TMID57 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID57) /* RSCAN_FROM_RSCAN0TMID57 */
+#define RSCAN_FROM_RSCAN0TMID58 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID58) /* RSCAN_FROM_RSCAN0TMID58 */
+#define RSCAN_FROM_RSCAN0TMID59 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID59) /* RSCAN_FROM_RSCAN0TMID59 */
+#define RSCAN_FROM_RSCAN0TMID60 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID60) /* RSCAN_FROM_RSCAN0TMID60 */
+#define RSCAN_FROM_RSCAN0TMID61 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID61) /* RSCAN_FROM_RSCAN0TMID61 */
+#define RSCAN_FROM_RSCAN0TMID62 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID62) /* RSCAN_FROM_RSCAN0TMID62 */
+#define RSCAN_FROM_RSCAN0TMID63 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID63) /* RSCAN_FROM_RSCAN0TMID63 */
+#define RSCAN_FROM_RSCAN0TMID64 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID64) /* RSCAN_FROM_RSCAN0TMID64 */
+#define RSCAN_FROM_RSCAN0TMID65 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID65) /* RSCAN_FROM_RSCAN0TMID65 */
+#define RSCAN_FROM_RSCAN0TMID66 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID66) /* RSCAN_FROM_RSCAN0TMID66 */
+#define RSCAN_FROM_RSCAN0TMID67 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID67) /* RSCAN_FROM_RSCAN0TMID67 */
+#define RSCAN_FROM_RSCAN0TMID68 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID68) /* RSCAN_FROM_RSCAN0TMID68 */
+#define RSCAN_FROM_RSCAN0TMID69 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID69) /* RSCAN_FROM_RSCAN0TMID69 */
+#define RSCAN_FROM_RSCAN0TMID70 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID70) /* RSCAN_FROM_RSCAN0TMID70 */
+#define RSCAN_FROM_RSCAN0TMID71 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID71) /* RSCAN_FROM_RSCAN0TMID71 */
+#define RSCAN_FROM_RSCAN0TMID72 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID72) /* RSCAN_FROM_RSCAN0TMID72 */
+#define RSCAN_FROM_RSCAN0TMID73 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID73) /* RSCAN_FROM_RSCAN0TMID73 */
+#define RSCAN_FROM_RSCAN0TMID74 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID74) /* RSCAN_FROM_RSCAN0TMID74 */
+#define RSCAN_FROM_RSCAN0TMID75 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID75) /* RSCAN_FROM_RSCAN0TMID75 */
+#define RSCAN_FROM_RSCAN0TMID76 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID76) /* RSCAN_FROM_RSCAN0TMID76 */
+#define RSCAN_FROM_RSCAN0TMID77 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID77) /* RSCAN_FROM_RSCAN0TMID77 */
+#define RSCAN_FROM_RSCAN0TMID78 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID78) /* RSCAN_FROM_RSCAN0TMID78 */
+#define RSCAN_FROM_RSCAN0TMID79 (*(struct st_rscan_from_rscan0tmidp *)&RSCAN0.TMID79) /* RSCAN_FROM_RSCAN0TMID79 */
+
+
+/* Channel array defines of RSCAN_FROM_RSCAN0_RFIDm */
+/*(Sample) value = RSCAN_FROM_RSCAN0_RFIDm[ channel ]->RFIDm.UINT32; */
+#define RSCAN_FROM_RSCAN0_RFIDm_COUNT  (8)
+#define RSCAN_FROM_RSCAN0_RFIDm_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &RSCAN_FROM_RSCAN0RFID0, &RSCAN_FROM_RSCAN0RFID1, &RSCAN_FROM_RSCAN0RFID2, &RSCAN_FROM_RSCAN0RFID3, &RSCAN_FROM_RSCAN0RFID4, &RSCAN_FROM_RSCAN0RFID5, &RSCAN_FROM_RSCAN0RFID6, &RSCAN_FROM_RSCAN0RFID7 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define RSCAN_FROM_RSCAN0RFID0 (*(struct st_rscan_from_rscan0rfidm *)&RSCAN0.RFID0) /* RSCAN_FROM_RSCAN0RFID0 */
+#define RSCAN_FROM_RSCAN0RFID1 (*(struct st_rscan_from_rscan0rfidm *)&RSCAN0.RFID1) /* RSCAN_FROM_RSCAN0RFID1 */
+#define RSCAN_FROM_RSCAN0RFID2 (*(struct st_rscan_from_rscan0rfidm *)&RSCAN0.RFID2) /* RSCAN_FROM_RSCAN0RFID2 */
+#define RSCAN_FROM_RSCAN0RFID3 (*(struct st_rscan_from_rscan0rfidm *)&RSCAN0.RFID3) /* RSCAN_FROM_RSCAN0RFID3 */
+#define RSCAN_FROM_RSCAN0RFID4 (*(struct st_rscan_from_rscan0rfidm *)&RSCAN0.RFID4) /* RSCAN_FROM_RSCAN0RFID4 */
+#define RSCAN_FROM_RSCAN0RFID5 (*(struct st_rscan_from_rscan0rfidm *)&RSCAN0.RFID5) /* RSCAN_FROM_RSCAN0RFID5 */
+#define RSCAN_FROM_RSCAN0RFID6 (*(struct st_rscan_from_rscan0rfidm *)&RSCAN0.RFID6) /* RSCAN_FROM_RSCAN0RFID6 */
+#define RSCAN_FROM_RSCAN0RFID7 (*(struct st_rscan_from_rscan0rfidm *)&RSCAN0.RFID7) /* RSCAN_FROM_RSCAN0RFID7 */
+
+
+/* Channel array defines of RSCAN_FROM_RSCAN0_RMIDp */
+/*(Sample) value = RSCAN_FROM_RSCAN0_RMIDp[ channel ]->RMIDp.UINT32; */
+#define RSCAN_FROM_RSCAN0_RMIDp_COUNT  (80)
+#define RSCAN_FROM_RSCAN0_RMIDp_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &RSCAN_FROM_RSCAN0RMID0, &RSCAN_FROM_RSCAN0RMID1, &RSCAN_FROM_RSCAN0RMID2, &RSCAN_FROM_RSCAN0RMID3, &RSCAN_FROM_RSCAN0RMID4, &RSCAN_FROM_RSCAN0RMID5, &RSCAN_FROM_RSCAN0RMID6, &RSCAN_FROM_RSCAN0RMID7, \
+    &RSCAN_FROM_RSCAN0RMID8, &RSCAN_FROM_RSCAN0RMID9, &RSCAN_FROM_RSCAN0RMID10, &RSCAN_FROM_RSCAN0RMID11, &RSCAN_FROM_RSCAN0RMID12, &RSCAN_FROM_RSCAN0RMID13, &RSCAN_FROM_RSCAN0RMID14, &RSCAN_FROM_RSCAN0RMID15, \
+    &RSCAN_FROM_RSCAN0RMID16, &RSCAN_FROM_RSCAN0RMID17, &RSCAN_FROM_RSCAN0RMID18, &RSCAN_FROM_RSCAN0RMID19, &RSCAN_FROM_RSCAN0RMID20, &RSCAN_FROM_RSCAN0RMID21, &RSCAN_FROM_RSCAN0RMID22, &RSCAN_FROM_RSCAN0RMID23, \
+    &RSCAN_FROM_RSCAN0RMID24, &RSCAN_FROM_RSCAN0RMID25, &RSCAN_FROM_RSCAN0RMID26, &RSCAN_FROM_RSCAN0RMID27, &RSCAN_FROM_RSCAN0RMID28, &RSCAN_FROM_RSCAN0RMID29, &RSCAN_FROM_RSCAN0RMID30, &RSCAN_FROM_RSCAN0RMID31, \
+    &RSCAN_FROM_RSCAN0RMID32, &RSCAN_FROM_RSCAN0RMID33, &RSCAN_FROM_RSCAN0RMID34, &RSCAN_FROM_RSCAN0RMID35, &RSCAN_FROM_RSCAN0RMID36, &RSCAN_FROM_RSCAN0RMID37, &RSCAN_FROM_RSCAN0RMID38, &RSCAN_FROM_RSCAN0RMID39, \
+    &RSCAN_FROM_RSCAN0RMID40, &RSCAN_FROM_RSCAN0RMID41, &RSCAN_FROM_RSCAN0RMID42, &RSCAN_FROM_RSCAN0RMID43, &RSCAN_FROM_RSCAN0RMID44, &RSCAN_FROM_RSCAN0RMID45, &RSCAN_FROM_RSCAN0RMID46, &RSCAN_FROM_RSCAN0RMID47, \
+    &RSCAN_FROM_RSCAN0RMID48, &RSCAN_FROM_RSCAN0RMID49, &RSCAN_FROM_RSCAN0RMID50, &RSCAN_FROM_RSCAN0RMID51, &RSCAN_FROM_RSCAN0RMID52, &RSCAN_FROM_RSCAN0RMID53, &RSCAN_FROM_RSCAN0RMID54, &RSCAN_FROM_RSCAN0RMID55, \
+    &RSCAN_FROM_RSCAN0RMID56, &RSCAN_FROM_RSCAN0RMID57, &RSCAN_FROM_RSCAN0RMID58, &RSCAN_FROM_RSCAN0RMID59, &RSCAN_FROM_RSCAN0RMID60, &RSCAN_FROM_RSCAN0RMID61, &RSCAN_FROM_RSCAN0RMID62, &RSCAN_FROM_RSCAN0RMID63, \
+    &RSCAN_FROM_RSCAN0RMID64, &RSCAN_FROM_RSCAN0RMID65, &RSCAN_FROM_RSCAN0RMID66, &RSCAN_FROM_RSCAN0RMID67, &RSCAN_FROM_RSCAN0RMID68, &RSCAN_FROM_RSCAN0RMID69, &RSCAN_FROM_RSCAN0RMID70, &RSCAN_FROM_RSCAN0RMID71, \
+    &RSCAN_FROM_RSCAN0RMID72, &RSCAN_FROM_RSCAN0RMID73, &RSCAN_FROM_RSCAN0RMID74, &RSCAN_FROM_RSCAN0RMID75, &RSCAN_FROM_RSCAN0RMID76, &RSCAN_FROM_RSCAN0RMID77, &RSCAN_FROM_RSCAN0RMID78, &RSCAN_FROM_RSCAN0RMID79 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define RSCAN_FROM_RSCAN0RMID0 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID0) /* RSCAN_FROM_RSCAN0RMID0 */
+#define RSCAN_FROM_RSCAN0RMID1 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID1) /* RSCAN_FROM_RSCAN0RMID1 */
+#define RSCAN_FROM_RSCAN0RMID2 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID2) /* RSCAN_FROM_RSCAN0RMID2 */
+#define RSCAN_FROM_RSCAN0RMID3 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID3) /* RSCAN_FROM_RSCAN0RMID3 */
+#define RSCAN_FROM_RSCAN0RMID4 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID4) /* RSCAN_FROM_RSCAN0RMID4 */
+#define RSCAN_FROM_RSCAN0RMID5 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID5) /* RSCAN_FROM_RSCAN0RMID5 */
+#define RSCAN_FROM_RSCAN0RMID6 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID6) /* RSCAN_FROM_RSCAN0RMID6 */
+#define RSCAN_FROM_RSCAN0RMID7 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID7) /* RSCAN_FROM_RSCAN0RMID7 */
+#define RSCAN_FROM_RSCAN0RMID8 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID8) /* RSCAN_FROM_RSCAN0RMID8 */
+#define RSCAN_FROM_RSCAN0RMID9 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID9) /* RSCAN_FROM_RSCAN0RMID9 */
+#define RSCAN_FROM_RSCAN0RMID10 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID10) /* RSCAN_FROM_RSCAN0RMID10 */
+#define RSCAN_FROM_RSCAN0RMID11 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID11) /* RSCAN_FROM_RSCAN0RMID11 */
+#define RSCAN_FROM_RSCAN0RMID12 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID12) /* RSCAN_FROM_RSCAN0RMID12 */
+#define RSCAN_FROM_RSCAN0RMID13 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID13) /* RSCAN_FROM_RSCAN0RMID13 */
+#define RSCAN_FROM_RSCAN0RMID14 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID14) /* RSCAN_FROM_RSCAN0RMID14 */
+#define RSCAN_FROM_RSCAN0RMID15 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID15) /* RSCAN_FROM_RSCAN0RMID15 */
+#define RSCAN_FROM_RSCAN0RMID16 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID16) /* RSCAN_FROM_RSCAN0RMID16 */
+#define RSCAN_FROM_RSCAN0RMID17 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID17) /* RSCAN_FROM_RSCAN0RMID17 */
+#define RSCAN_FROM_RSCAN0RMID18 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID18) /* RSCAN_FROM_RSCAN0RMID18 */
+#define RSCAN_FROM_RSCAN0RMID19 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID19) /* RSCAN_FROM_RSCAN0RMID19 */
+#define RSCAN_FROM_RSCAN0RMID20 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID20) /* RSCAN_FROM_RSCAN0RMID20 */
+#define RSCAN_FROM_RSCAN0RMID21 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID21) /* RSCAN_FROM_RSCAN0RMID21 */
+#define RSCAN_FROM_RSCAN0RMID22 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID22) /* RSCAN_FROM_RSCAN0RMID22 */
+#define RSCAN_FROM_RSCAN0RMID23 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID23) /* RSCAN_FROM_RSCAN0RMID23 */
+#define RSCAN_FROM_RSCAN0RMID24 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID24) /* RSCAN_FROM_RSCAN0RMID24 */
+#define RSCAN_FROM_RSCAN0RMID25 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID25) /* RSCAN_FROM_RSCAN0RMID25 */
+#define RSCAN_FROM_RSCAN0RMID26 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID26) /* RSCAN_FROM_RSCAN0RMID26 */
+#define RSCAN_FROM_RSCAN0RMID27 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID27) /* RSCAN_FROM_RSCAN0RMID27 */
+#define RSCAN_FROM_RSCAN0RMID28 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID28) /* RSCAN_FROM_RSCAN0RMID28 */
+#define RSCAN_FROM_RSCAN0RMID29 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID29) /* RSCAN_FROM_RSCAN0RMID29 */
+#define RSCAN_FROM_RSCAN0RMID30 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID30) /* RSCAN_FROM_RSCAN0RMID30 */
+#define RSCAN_FROM_RSCAN0RMID31 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID31) /* RSCAN_FROM_RSCAN0RMID31 */
+#define RSCAN_FROM_RSCAN0RMID32 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID32) /* RSCAN_FROM_RSCAN0RMID32 */
+#define RSCAN_FROM_RSCAN0RMID33 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID33) /* RSCAN_FROM_RSCAN0RMID33 */
+#define RSCAN_FROM_RSCAN0RMID34 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID34) /* RSCAN_FROM_RSCAN0RMID34 */
+#define RSCAN_FROM_RSCAN0RMID35 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID35) /* RSCAN_FROM_RSCAN0RMID35 */
+#define RSCAN_FROM_RSCAN0RMID36 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID36) /* RSCAN_FROM_RSCAN0RMID36 */
+#define RSCAN_FROM_RSCAN0RMID37 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID37) /* RSCAN_FROM_RSCAN0RMID37 */
+#define RSCAN_FROM_RSCAN0RMID38 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID38) /* RSCAN_FROM_RSCAN0RMID38 */
+#define RSCAN_FROM_RSCAN0RMID39 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID39) /* RSCAN_FROM_RSCAN0RMID39 */
+#define RSCAN_FROM_RSCAN0RMID40 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID40) /* RSCAN_FROM_RSCAN0RMID40 */
+#define RSCAN_FROM_RSCAN0RMID41 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID41) /* RSCAN_FROM_RSCAN0RMID41 */
+#define RSCAN_FROM_RSCAN0RMID42 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID42) /* RSCAN_FROM_RSCAN0RMID42 */
+#define RSCAN_FROM_RSCAN0RMID43 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID43) /* RSCAN_FROM_RSCAN0RMID43 */
+#define RSCAN_FROM_RSCAN0RMID44 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID44) /* RSCAN_FROM_RSCAN0RMID44 */
+#define RSCAN_FROM_RSCAN0RMID45 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID45) /* RSCAN_FROM_RSCAN0RMID45 */
+#define RSCAN_FROM_RSCAN0RMID46 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID46) /* RSCAN_FROM_RSCAN0RMID46 */
+#define RSCAN_FROM_RSCAN0RMID47 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID47) /* RSCAN_FROM_RSCAN0RMID47 */
+#define RSCAN_FROM_RSCAN0RMID48 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID48) /* RSCAN_FROM_RSCAN0RMID48 */
+#define RSCAN_FROM_RSCAN0RMID49 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID49) /* RSCAN_FROM_RSCAN0RMID49 */
+#define RSCAN_FROM_RSCAN0RMID50 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID50) /* RSCAN_FROM_RSCAN0RMID50 */
+#define RSCAN_FROM_RSCAN0RMID51 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID51) /* RSCAN_FROM_RSCAN0RMID51 */
+#define RSCAN_FROM_RSCAN0RMID52 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID52) /* RSCAN_FROM_RSCAN0RMID52 */
+#define RSCAN_FROM_RSCAN0RMID53 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID53) /* RSCAN_FROM_RSCAN0RMID53 */
+#define RSCAN_FROM_RSCAN0RMID54 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID54) /* RSCAN_FROM_RSCAN0RMID54 */
+#define RSCAN_FROM_RSCAN0RMID55 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID55) /* RSCAN_FROM_RSCAN0RMID55 */
+#define RSCAN_FROM_RSCAN0RMID56 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID56) /* RSCAN_FROM_RSCAN0RMID56 */
+#define RSCAN_FROM_RSCAN0RMID57 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID57) /* RSCAN_FROM_RSCAN0RMID57 */
+#define RSCAN_FROM_RSCAN0RMID58 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID58) /* RSCAN_FROM_RSCAN0RMID58 */
+#define RSCAN_FROM_RSCAN0RMID59 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID59) /* RSCAN_FROM_RSCAN0RMID59 */
+#define RSCAN_FROM_RSCAN0RMID60 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID60) /* RSCAN_FROM_RSCAN0RMID60 */
+#define RSCAN_FROM_RSCAN0RMID61 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID61) /* RSCAN_FROM_RSCAN0RMID61 */
+#define RSCAN_FROM_RSCAN0RMID62 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID62) /* RSCAN_FROM_RSCAN0RMID62 */
+#define RSCAN_FROM_RSCAN0RMID63 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID63) /* RSCAN_FROM_RSCAN0RMID63 */
+#define RSCAN_FROM_RSCAN0RMID64 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID64) /* RSCAN_FROM_RSCAN0RMID64 */
+#define RSCAN_FROM_RSCAN0RMID65 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID65) /* RSCAN_FROM_RSCAN0RMID65 */
+#define RSCAN_FROM_RSCAN0RMID66 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID66) /* RSCAN_FROM_RSCAN0RMID66 */
+#define RSCAN_FROM_RSCAN0RMID67 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID67) /* RSCAN_FROM_RSCAN0RMID67 */
+#define RSCAN_FROM_RSCAN0RMID68 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID68) /* RSCAN_FROM_RSCAN0RMID68 */
+#define RSCAN_FROM_RSCAN0RMID69 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID69) /* RSCAN_FROM_RSCAN0RMID69 */
+#define RSCAN_FROM_RSCAN0RMID70 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID70) /* RSCAN_FROM_RSCAN0RMID70 */
+#define RSCAN_FROM_RSCAN0RMID71 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID71) /* RSCAN_FROM_RSCAN0RMID71 */
+#define RSCAN_FROM_RSCAN0RMID72 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID72) /* RSCAN_FROM_RSCAN0RMID72 */
+#define RSCAN_FROM_RSCAN0RMID73 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID73) /* RSCAN_FROM_RSCAN0RMID73 */
+#define RSCAN_FROM_RSCAN0RMID74 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID74) /* RSCAN_FROM_RSCAN0RMID74 */
+#define RSCAN_FROM_RSCAN0RMID75 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID75) /* RSCAN_FROM_RSCAN0RMID75 */
+#define RSCAN_FROM_RSCAN0RMID76 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID76) /* RSCAN_FROM_RSCAN0RMID76 */
+#define RSCAN_FROM_RSCAN0RMID77 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID77) /* RSCAN_FROM_RSCAN0RMID77 */
+#define RSCAN_FROM_RSCAN0RMID78 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID78) /* RSCAN_FROM_RSCAN0RMID78 */
+#define RSCAN_FROM_RSCAN0RMID79 (*(struct st_rscan_from_rscan0rmidp *)&RSCAN0.RMID79) /* RSCAN_FROM_RSCAN0RMID79 */
+
+
+/* Channel array defines of RSCAN_FROM_RSCAN0_GAFLIDj */
+/*(Sample) value = RSCAN_FROM_RSCAN0_GAFLIDj[ channel ]->GAFLIDj.UINT32; */
+#define RSCAN_FROM_RSCAN0_GAFLIDj_COUNT  (16)
+#define RSCAN_FROM_RSCAN0_GAFLIDj_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &RSCAN_FROM_RSCAN0GAFLID0, &RSCAN_FROM_RSCAN0GAFLID1, &RSCAN_FROM_RSCAN0GAFLID2, &RSCAN_FROM_RSCAN0GAFLID3, &RSCAN_FROM_RSCAN0GAFLID4, &RSCAN_FROM_RSCAN0GAFLID5, &RSCAN_FROM_RSCAN0GAFLID6, &RSCAN_FROM_RSCAN0GAFLID7, \
+    &RSCAN_FROM_RSCAN0GAFLID8, &RSCAN_FROM_RSCAN0GAFLID9, &RSCAN_FROM_RSCAN0GAFLID10, &RSCAN_FROM_RSCAN0GAFLID11, &RSCAN_FROM_RSCAN0GAFLID12, &RSCAN_FROM_RSCAN0GAFLID13, &RSCAN_FROM_RSCAN0GAFLID14, &RSCAN_FROM_RSCAN0GAFLID15 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define RSCAN_FROM_RSCAN0GAFLID0 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID0) /* RSCAN_FROM_RSCAN0GAFLID0 */
+#define RSCAN_FROM_RSCAN0GAFLID1 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID1) /* RSCAN_FROM_RSCAN0GAFLID1 */
+#define RSCAN_FROM_RSCAN0GAFLID2 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID2) /* RSCAN_FROM_RSCAN0GAFLID2 */
+#define RSCAN_FROM_RSCAN0GAFLID3 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID3) /* RSCAN_FROM_RSCAN0GAFLID3 */
+#define RSCAN_FROM_RSCAN0GAFLID4 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID4) /* RSCAN_FROM_RSCAN0GAFLID4 */
+#define RSCAN_FROM_RSCAN0GAFLID5 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID5) /* RSCAN_FROM_RSCAN0GAFLID5 */
+#define RSCAN_FROM_RSCAN0GAFLID6 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID6) /* RSCAN_FROM_RSCAN0GAFLID6 */
+#define RSCAN_FROM_RSCAN0GAFLID7 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID7) /* RSCAN_FROM_RSCAN0GAFLID7 */
+#define RSCAN_FROM_RSCAN0GAFLID8 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID8) /* RSCAN_FROM_RSCAN0GAFLID8 */
+#define RSCAN_FROM_RSCAN0GAFLID9 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID9) /* RSCAN_FROM_RSCAN0GAFLID9 */
+#define RSCAN_FROM_RSCAN0GAFLID10 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID10) /* RSCAN_FROM_RSCAN0GAFLID10 */
+#define RSCAN_FROM_RSCAN0GAFLID11 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID11) /* RSCAN_FROM_RSCAN0GAFLID11 */
+#define RSCAN_FROM_RSCAN0GAFLID12 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID12) /* RSCAN_FROM_RSCAN0GAFLID12 */
+#define RSCAN_FROM_RSCAN0GAFLID13 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID13) /* RSCAN_FROM_RSCAN0GAFLID13 */
+#define RSCAN_FROM_RSCAN0GAFLID14 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID14) /* RSCAN_FROM_RSCAN0GAFLID14 */
+#define RSCAN_FROM_RSCAN0GAFLID15 (*(struct st_rscan_from_rscan0gaflidj *)&RSCAN0.GAFLID15) /* RSCAN_FROM_RSCAN0GAFLID15 */
+
+
+/* Channel array defines of RSCAN_FROM_RSCAN0_CnCFG */
+/*(Sample) value = RSCAN_FROM_RSCAN0_CnCFG[ channel ]->CnCFG.UINT32; */
+#define RSCAN_FROM_RSCAN0_CnCFG_COUNT  (5)
+#define RSCAN_FROM_RSCAN0_CnCFG_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &RSCAN_FROM_RSCAN0C0CFG, &RSCAN_FROM_RSCAN0C1CFG, &RSCAN_FROM_RSCAN0C2CFG, &RSCAN_FROM_RSCAN0C3CFG, &RSCAN_FROM_RSCAN0C4CFG \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define RSCAN_FROM_RSCAN0C0CFG (*(struct st_rscan_from_rscan0cncfg *)&RSCAN0.C0CFG) /* RSCAN_FROM_RSCAN0C0CFG */
+#define RSCAN_FROM_RSCAN0C1CFG (*(struct st_rscan_from_rscan0cncfg *)&RSCAN0.C1CFG) /* RSCAN_FROM_RSCAN0C1CFG */
+#define RSCAN_FROM_RSCAN0C2CFG (*(struct st_rscan_from_rscan0cncfg *)&RSCAN0.C2CFG) /* RSCAN_FROM_RSCAN0C2CFG */
+#define RSCAN_FROM_RSCAN0C3CFG (*(struct st_rscan_from_rscan0cncfg *)&RSCAN0.C3CFG) /* RSCAN_FROM_RSCAN0C3CFG */
+#define RSCAN_FROM_RSCAN0C4CFG (*(struct st_rscan_from_rscan0cncfg *)&RSCAN0.C4CFG) /* RSCAN_FROM_RSCAN0C4CFG */
+
+/* End of channel array defines of RSCAN0 */
+
+
+#define RSCAN0C0CFG (RSCAN0.C0CFG.UINT32)
+#define RSCAN0C0CFGL (RSCAN0.C0CFG.UINT16[R_IO_L])
+#define RSCAN0C0CFGLL (RSCAN0.C0CFG.UINT8[R_IO_LL])
+#define RSCAN0C0CFGLH (RSCAN0.C0CFG.UINT8[R_IO_LH])
+#define RSCAN0C0CFGH (RSCAN0.C0CFG.UINT16[R_IO_H])
+#define RSCAN0C0CFGHL (RSCAN0.C0CFG.UINT8[R_IO_HL])
+#define RSCAN0C0CFGHH (RSCAN0.C0CFG.UINT8[R_IO_HH])
+#define RSCAN0C0CTR (RSCAN0.C0CTR.UINT32)
+#define RSCAN0C0CTRL (RSCAN0.C0CTR.UINT16[R_IO_L])
+#define RSCAN0C0CTRLL (RSCAN0.C0CTR.UINT8[R_IO_LL])
+#define RSCAN0C0CTRLH (RSCAN0.C0CTR.UINT8[R_IO_LH])
+#define RSCAN0C0CTRH (RSCAN0.C0CTR.UINT16[R_IO_H])
+#define RSCAN0C0CTRHL (RSCAN0.C0CTR.UINT8[R_IO_HL])
+#define RSCAN0C0CTRHH (RSCAN0.C0CTR.UINT8[R_IO_HH])
+#define RSCAN0C0STS (RSCAN0.C0STS.UINT32)
+#define RSCAN0C0STSL (RSCAN0.C0STS.UINT16[R_IO_L])
+#define RSCAN0C0STSLL (RSCAN0.C0STS.UINT8[R_IO_LL])
+#define RSCAN0C0STSLH (RSCAN0.C0STS.UINT8[R_IO_LH])
+#define RSCAN0C0STSH (RSCAN0.C0STS.UINT16[R_IO_H])
+#define RSCAN0C0STSHL (RSCAN0.C0STS.UINT8[R_IO_HL])
+#define RSCAN0C0STSHH (RSCAN0.C0STS.UINT8[R_IO_HH])
+#define RSCAN0C0ERFL (RSCAN0.C0ERFL.UINT32)
+#define RSCAN0C0ERFLL (RSCAN0.C0ERFL.UINT16[R_IO_L])
+#define RSCAN0C0ERFLLL (RSCAN0.C0ERFL.UINT8[R_IO_LL])
+#define RSCAN0C0ERFLLH (RSCAN0.C0ERFL.UINT8[R_IO_LH])
+#define RSCAN0C0ERFLH (RSCAN0.C0ERFL.UINT16[R_IO_H])
+#define RSCAN0C0ERFLHL (RSCAN0.C0ERFL.UINT8[R_IO_HL])
+#define RSCAN0C0ERFLHH (RSCAN0.C0ERFL.UINT8[R_IO_HH])
+#define RSCAN0C1CFG (RSCAN0.C1CFG.UINT32)
+#define RSCAN0C1CFGL (RSCAN0.C1CFG.UINT16[R_IO_L])
+#define RSCAN0C1CFGLL (RSCAN0.C1CFG.UINT8[R_IO_LL])
+#define RSCAN0C1CFGLH (RSCAN0.C1CFG.UINT8[R_IO_LH])
+#define RSCAN0C1CFGH (RSCAN0.C1CFG.UINT16[R_IO_H])
+#define RSCAN0C1CFGHL (RSCAN0.C1CFG.UINT8[R_IO_HL])
+#define RSCAN0C1CFGHH (RSCAN0.C1CFG.UINT8[R_IO_HH])
+#define RSCAN0C1CTR (RSCAN0.C1CTR.UINT32)
+#define RSCAN0C1CTRL (RSCAN0.C1CTR.UINT16[R_IO_L])
+#define RSCAN0C1CTRLL (RSCAN0.C1CTR.UINT8[R_IO_LL])
+#define RSCAN0C1CTRLH (RSCAN0.C1CTR.UINT8[R_IO_LH])
+#define RSCAN0C1CTRH (RSCAN0.C1CTR.UINT16[R_IO_H])
+#define RSCAN0C1CTRHL (RSCAN0.C1CTR.UINT8[R_IO_HL])
+#define RSCAN0C1CTRHH (RSCAN0.C1CTR.UINT8[R_IO_HH])
+#define RSCAN0C1STS (RSCAN0.C1STS.UINT32)
+#define RSCAN0C1STSL (RSCAN0.C1STS.UINT16[R_IO_L])
+#define RSCAN0C1STSLL (RSCAN0.C1STS.UINT8[R_IO_LL])
+#define RSCAN0C1STSLH (RSCAN0.C1STS.UINT8[R_IO_LH])
+#define RSCAN0C1STSH (RSCAN0.C1STS.UINT16[R_IO_H])
+#define RSCAN0C1STSHL (RSCAN0.C1STS.UINT8[R_IO_HL])
+#define RSCAN0C1STSHH (RSCAN0.C1STS.UINT8[R_IO_HH])
+#define RSCAN0C1ERFL (RSCAN0.C1ERFL.UINT32)
+#define RSCAN0C1ERFLL (RSCAN0.C1ERFL.UINT16[R_IO_L])
+#define RSCAN0C1ERFLLL (RSCAN0.C1ERFL.UINT8[R_IO_LL])
+#define RSCAN0C1ERFLLH (RSCAN0.C1ERFL.UINT8[R_IO_LH])
+#define RSCAN0C1ERFLH (RSCAN0.C1ERFL.UINT16[R_IO_H])
+#define RSCAN0C1ERFLHL (RSCAN0.C1ERFL.UINT8[R_IO_HL])
+#define RSCAN0C1ERFLHH (RSCAN0.C1ERFL.UINT8[R_IO_HH])
+#define RSCAN0C2CFG (RSCAN0.C2CFG.UINT32)
+#define RSCAN0C2CFGL (RSCAN0.C2CFG.UINT16[R_IO_L])
+#define RSCAN0C2CFGLL (RSCAN0.C2CFG.UINT8[R_IO_LL])
+#define RSCAN0C2CFGLH (RSCAN0.C2CFG.UINT8[R_IO_LH])
+#define RSCAN0C2CFGH (RSCAN0.C2CFG.UINT16[R_IO_H])
+#define RSCAN0C2CFGHL (RSCAN0.C2CFG.UINT8[R_IO_HL])
+#define RSCAN0C2CFGHH (RSCAN0.C2CFG.UINT8[R_IO_HH])
+#define RSCAN0C2CTR (RSCAN0.C2CTR.UINT32)
+#define RSCAN0C2CTRL (RSCAN0.C2CTR.UINT16[R_IO_L])
+#define RSCAN0C2CTRLL (RSCAN0.C2CTR.UINT8[R_IO_LL])
+#define RSCAN0C2CTRLH (RSCAN0.C2CTR.UINT8[R_IO_LH])
+#define RSCAN0C2CTRH (RSCAN0.C2CTR.UINT16[R_IO_H])
+#define RSCAN0C2CTRHL (RSCAN0.C2CTR.UINT8[R_IO_HL])
+#define RSCAN0C2CTRHH (RSCAN0.C2CTR.UINT8[R_IO_HH])
+#define RSCAN0C2STS (RSCAN0.C2STS.UINT32)
+#define RSCAN0C2STSL (RSCAN0.C2STS.UINT16[R_IO_L])
+#define RSCAN0C2STSLL (RSCAN0.C2STS.UINT8[R_IO_LL])
+#define RSCAN0C2STSLH (RSCAN0.C2STS.UINT8[R_IO_LH])
+#define RSCAN0C2STSH (RSCAN0.C2STS.UINT16[R_IO_H])
+#define RSCAN0C2STSHL (RSCAN0.C2STS.UINT8[R_IO_HL])
+#define RSCAN0C2STSHH (RSCAN0.C2STS.UINT8[R_IO_HH])
+#define RSCAN0C2ERFL (RSCAN0.C2ERFL.UINT32)
+#define RSCAN0C2ERFLL (RSCAN0.C2ERFL.UINT16[R_IO_L])
+#define RSCAN0C2ERFLLL (RSCAN0.C2ERFL.UINT8[R_IO_LL])
+#define RSCAN0C2ERFLLH (RSCAN0.C2ERFL.UINT8[R_IO_LH])
+#define RSCAN0C2ERFLH (RSCAN0.C2ERFL.UINT16[R_IO_H])
+#define RSCAN0C2ERFLHL (RSCAN0.C2ERFL.UINT8[R_IO_HL])
+#define RSCAN0C2ERFLHH (RSCAN0.C2ERFL.UINT8[R_IO_HH])
+#define RSCAN0C3CFG (RSCAN0.C3CFG.UINT32)
+#define RSCAN0C3CFGL (RSCAN0.C3CFG.UINT16[R_IO_L])
+#define RSCAN0C3CFGLL (RSCAN0.C3CFG.UINT8[R_IO_LL])
+#define RSCAN0C3CFGLH (RSCAN0.C3CFG.UINT8[R_IO_LH])
+#define RSCAN0C3CFGH (RSCAN0.C3CFG.UINT16[R_IO_H])
+#define RSCAN0C3CFGHL (RSCAN0.C3CFG.UINT8[R_IO_HL])
+#define RSCAN0C3CFGHH (RSCAN0.C3CFG.UINT8[R_IO_HH])
+#define RSCAN0C3CTR (RSCAN0.C3CTR.UINT32)
+#define RSCAN0C3CTRL (RSCAN0.C3CTR.UINT16[R_IO_L])
+#define RSCAN0C3CTRLL (RSCAN0.C3CTR.UINT8[R_IO_LL])
+#define RSCAN0C3CTRLH (RSCAN0.C3CTR.UINT8[R_IO_LH])
+#define RSCAN0C3CTRH (RSCAN0.C3CTR.UINT16[R_IO_H])
+#define RSCAN0C3CTRHL (RSCAN0.C3CTR.UINT8[R_IO_HL])
+#define RSCAN0C3CTRHH (RSCAN0.C3CTR.UINT8[R_IO_HH])
+#define RSCAN0C3STS (RSCAN0.C3STS.UINT32)
+#define RSCAN0C3STSL (RSCAN0.C3STS.UINT16[R_IO_L])
+#define RSCAN0C3STSLL (RSCAN0.C3STS.UINT8[R_IO_LL])
+#define RSCAN0C3STSLH (RSCAN0.C3STS.UINT8[R_IO_LH])
+#define RSCAN0C3STSH (RSCAN0.C3STS.UINT16[R_IO_H])
+#define RSCAN0C3STSHL (RSCAN0.C3STS.UINT8[R_IO_HL])
+#define RSCAN0C3STSHH (RSCAN0.C3STS.UINT8[R_IO_HH])
+#define RSCAN0C3ERFL (RSCAN0.C3ERFL.UINT32)
+#define RSCAN0C3ERFLL (RSCAN0.C3ERFL.UINT16[R_IO_L])
+#define RSCAN0C3ERFLLL (RSCAN0.C3ERFL.UINT8[R_IO_LL])
+#define RSCAN0C3ERFLLH (RSCAN0.C3ERFL.UINT8[R_IO_LH])
+#define RSCAN0C3ERFLH (RSCAN0.C3ERFL.UINT16[R_IO_H])
+#define RSCAN0C3ERFLHL (RSCAN0.C3ERFL.UINT8[R_IO_HL])
+#define RSCAN0C3ERFLHH (RSCAN0.C3ERFL.UINT8[R_IO_HH])
+#define RSCAN0C4CFG (RSCAN0.C4CFG.UINT32)
+#define RSCAN0C4CFGL (RSCAN0.C4CFG.UINT16[R_IO_L])
+#define RSCAN0C4CFGLL (RSCAN0.C4CFG.UINT8[R_IO_LL])
+#define RSCAN0C4CFGLH (RSCAN0.C4CFG.UINT8[R_IO_LH])
+#define RSCAN0C4CFGH (RSCAN0.C4CFG.UINT16[R_IO_H])
+#define RSCAN0C4CFGHL (RSCAN0.C4CFG.UINT8[R_IO_HL])
+#define RSCAN0C4CFGHH (RSCAN0.C4CFG.UINT8[R_IO_HH])
+#define RSCAN0C4CTR (RSCAN0.C4CTR.UINT32)
+#define RSCAN0C4CTRL (RSCAN0.C4CTR.UINT16[R_IO_L])
+#define RSCAN0C4CTRLL (RSCAN0.C4CTR.UINT8[R_IO_LL])
+#define RSCAN0C4CTRLH (RSCAN0.C4CTR.UINT8[R_IO_LH])
+#define RSCAN0C4CTRH (RSCAN0.C4CTR.UINT16[R_IO_H])
+#define RSCAN0C4CTRHL (RSCAN0.C4CTR.UINT8[R_IO_HL])
+#define RSCAN0C4CTRHH (RSCAN0.C4CTR.UINT8[R_IO_HH])
+#define RSCAN0C4STS (RSCAN0.C4STS.UINT32)
+#define RSCAN0C4STSL (RSCAN0.C4STS.UINT16[R_IO_L])
+#define RSCAN0C4STSLL (RSCAN0.C4STS.UINT8[R_IO_LL])
+#define RSCAN0C4STSLH (RSCAN0.C4STS.UINT8[R_IO_LH])
+#define RSCAN0C4STSH (RSCAN0.C4STS.UINT16[R_IO_H])
+#define RSCAN0C4STSHL (RSCAN0.C4STS.UINT8[R_IO_HL])
+#define RSCAN0C4STSHH (RSCAN0.C4STS.UINT8[R_IO_HH])
+#define RSCAN0C4ERFL (RSCAN0.C4ERFL.UINT32)
+#define RSCAN0C4ERFLL (RSCAN0.C4ERFL.UINT16[R_IO_L])
+#define RSCAN0C4ERFLLL (RSCAN0.C4ERFL.UINT8[R_IO_LL])
+#define RSCAN0C4ERFLLH (RSCAN0.C4ERFL.UINT8[R_IO_LH])
+#define RSCAN0C4ERFLH (RSCAN0.C4ERFL.UINT16[R_IO_H])
+#define RSCAN0C4ERFLHL (RSCAN0.C4ERFL.UINT8[R_IO_HL])
+#define RSCAN0C4ERFLHH (RSCAN0.C4ERFL.UINT8[R_IO_HH])
+#define RSCAN0GCFG (RSCAN0.GCFG.UINT32)
+#define RSCAN0GCFGL (RSCAN0.GCFG.UINT16[R_IO_L])
+#define RSCAN0GCFGLL (RSCAN0.GCFG.UINT8[R_IO_LL])
+#define RSCAN0GCFGLH (RSCAN0.GCFG.UINT8[R_IO_LH])
+#define RSCAN0GCFGH (RSCAN0.GCFG.UINT16[R_IO_H])
+#define RSCAN0GCFGHL (RSCAN0.GCFG.UINT8[R_IO_HL])
+#define RSCAN0GCFGHH (RSCAN0.GCFG.UINT8[R_IO_HH])
+#define RSCAN0GCTR (RSCAN0.GCTR.UINT32)
+#define RSCAN0GCTRL (RSCAN0.GCTR.UINT16[R_IO_L])
+#define RSCAN0GCTRLL (RSCAN0.GCTR.UINT8[R_IO_LL])
+#define RSCAN0GCTRLH (RSCAN0.GCTR.UINT8[R_IO_LH])
+#define RSCAN0GCTRH (RSCAN0.GCTR.UINT16[R_IO_H])
+#define RSCAN0GCTRHL (RSCAN0.GCTR.UINT8[R_IO_HL])
+#define RSCAN0GCTRHH (RSCAN0.GCTR.UINT8[R_IO_HH])
+#define RSCAN0GSTS (RSCAN0.GSTS.UINT32)
+#define RSCAN0GSTSL (RSCAN0.GSTS.UINT16[R_IO_L])
+#define RSCAN0GSTSLL (RSCAN0.GSTS.UINT8[R_IO_LL])
+#define RSCAN0GSTSLH (RSCAN0.GSTS.UINT8[R_IO_LH])
+#define RSCAN0GSTSH (RSCAN0.GSTS.UINT16[R_IO_H])
+#define RSCAN0GSTSHL (RSCAN0.GSTS.UINT8[R_IO_HL])
+#define RSCAN0GSTSHH (RSCAN0.GSTS.UINT8[R_IO_HH])
+#define RSCAN0GERFL (RSCAN0.GERFL.UINT32)
+#define RSCAN0GERFLL (RSCAN0.GERFL.UINT16[R_IO_L])
+#define RSCAN0GERFLLL (RSCAN0.GERFL.UINT8[R_IO_LL])
+#define RSCAN0GERFLLH (RSCAN0.GERFL.UINT8[R_IO_LH])
+#define RSCAN0GERFLH (RSCAN0.GERFL.UINT16[R_IO_H])
+#define RSCAN0GERFLHL (RSCAN0.GERFL.UINT8[R_IO_HL])
+#define RSCAN0GERFLHH (RSCAN0.GERFL.UINT8[R_IO_HH])
+#define RSCAN0GTSC (RSCAN0.GTSC.UINT32)
+#define RSCAN0GTSCL (RSCAN0.GTSC.UINT16[R_IO_L])
+#define RSCAN0GTSCH (RSCAN0.GTSC.UINT16[R_IO_H])
+#define RSCAN0GAFLECTR (RSCAN0.GAFLECTR.UINT32)
+#define RSCAN0GAFLECTRL (RSCAN0.GAFLECTR.UINT16[R_IO_L])
+#define RSCAN0GAFLECTRLL (RSCAN0.GAFLECTR.UINT8[R_IO_LL])
+#define RSCAN0GAFLECTRLH (RSCAN0.GAFLECTR.UINT8[R_IO_LH])
+#define RSCAN0GAFLECTRH (RSCAN0.GAFLECTR.UINT16[R_IO_H])
+#define RSCAN0GAFLECTRHL (RSCAN0.GAFLECTR.UINT8[R_IO_HL])
+#define RSCAN0GAFLECTRHH (RSCAN0.GAFLECTR.UINT8[R_IO_HH])
+#define RSCAN0GAFLCFG0 (RSCAN0.GAFLCFG0.UINT32)
+#define RSCAN0GAFLCFG0L (RSCAN0.GAFLCFG0.UINT16[R_IO_L])
+#define RSCAN0GAFLCFG0LL (RSCAN0.GAFLCFG0.UINT8[R_IO_LL])
+#define RSCAN0GAFLCFG0LH (RSCAN0.GAFLCFG0.UINT8[R_IO_LH])
+#define RSCAN0GAFLCFG0H (RSCAN0.GAFLCFG0.UINT16[R_IO_H])
+#define RSCAN0GAFLCFG0HL (RSCAN0.GAFLCFG0.UINT8[R_IO_HL])
+#define RSCAN0GAFLCFG0HH (RSCAN0.GAFLCFG0.UINT8[R_IO_HH])
+#define RSCAN0GAFLCFG1 (RSCAN0.GAFLCFG1.UINT32)
+#define RSCAN0GAFLCFG1L (RSCAN0.GAFLCFG1.UINT16[R_IO_L])
+#define RSCAN0GAFLCFG1LL (RSCAN0.GAFLCFG1.UINT8[R_IO_LL])
+#define RSCAN0GAFLCFG1LH (RSCAN0.GAFLCFG1.UINT8[R_IO_LH])
+#define RSCAN0GAFLCFG1H (RSCAN0.GAFLCFG1.UINT16[R_IO_H])
+#define RSCAN0GAFLCFG1HL (RSCAN0.GAFLCFG1.UINT8[R_IO_HL])
+#define RSCAN0GAFLCFG1HH (RSCAN0.GAFLCFG1.UINT8[R_IO_HH])
+#define RSCAN0RMNB (RSCAN0.RMNB.UINT32)
+#define RSCAN0RMNBL (RSCAN0.RMNB.UINT16[R_IO_L])
+#define RSCAN0RMNBLL (RSCAN0.RMNB.UINT8[R_IO_LL])
+#define RSCAN0RMNBLH (RSCAN0.RMNB.UINT8[R_IO_LH])
+#define RSCAN0RMNBH (RSCAN0.RMNB.UINT16[R_IO_H])
+#define RSCAN0RMNBHL (RSCAN0.RMNB.UINT8[R_IO_HL])
+#define RSCAN0RMNBHH (RSCAN0.RMNB.UINT8[R_IO_HH])
+#define RSCAN0RMND0 (RSCAN0.RMND0.UINT32)
+#define RSCAN0RMND0L (RSCAN0.RMND0.UINT16[R_IO_L])
+#define RSCAN0RMND0LL (RSCAN0.RMND0.UINT8[R_IO_LL])
+#define RSCAN0RMND0LH (RSCAN0.RMND0.UINT8[R_IO_LH])
+#define RSCAN0RMND0H (RSCAN0.RMND0.UINT16[R_IO_H])
+#define RSCAN0RMND0HL (RSCAN0.RMND0.UINT8[R_IO_HL])
+#define RSCAN0RMND0HH (RSCAN0.RMND0.UINT8[R_IO_HH])
+#define RSCAN0RMND1 (RSCAN0.RMND1.UINT32)
+#define RSCAN0RMND1L (RSCAN0.RMND1.UINT16[R_IO_L])
+#define RSCAN0RMND1LL (RSCAN0.RMND1.UINT8[R_IO_LL])
+#define RSCAN0RMND1LH (RSCAN0.RMND1.UINT8[R_IO_LH])
+#define RSCAN0RMND1H (RSCAN0.RMND1.UINT16[R_IO_H])
+#define RSCAN0RMND1HL (RSCAN0.RMND1.UINT8[R_IO_HL])
+#define RSCAN0RMND1HH (RSCAN0.RMND1.UINT8[R_IO_HH])
+#define RSCAN0RMND2 (RSCAN0.RMND2.UINT32)
+#define RSCAN0RMND2L (RSCAN0.RMND2.UINT16[R_IO_L])
+#define RSCAN0RMND2LL (RSCAN0.RMND2.UINT8[R_IO_LL])
+#define RSCAN0RMND2LH (RSCAN0.RMND2.UINT8[R_IO_LH])
+#define RSCAN0RMND2H (RSCAN0.RMND2.UINT16[R_IO_H])
+#define RSCAN0RMND2HL (RSCAN0.RMND2.UINT8[R_IO_HL])
+#define RSCAN0RMND2HH (RSCAN0.RMND2.UINT8[R_IO_HH])
+#define RSCAN0RFCC0 (RSCAN0.RFCC0.UINT32)
+#define RSCAN0RFCC0L (RSCAN0.RFCC0.UINT16[R_IO_L])
+#define RSCAN0RFCC0LL (RSCAN0.RFCC0.UINT8[R_IO_LL])
+#define RSCAN0RFCC0LH (RSCAN0.RFCC0.UINT8[R_IO_LH])
+#define RSCAN0RFCC0H (RSCAN0.RFCC0.UINT16[R_IO_H])
+#define RSCAN0RFCC0HL (RSCAN0.RFCC0.UINT8[R_IO_HL])
+#define RSCAN0RFCC0HH (RSCAN0.RFCC0.UINT8[R_IO_HH])
+#define RSCAN0RFCC1 (RSCAN0.RFCC1.UINT32)
+#define RSCAN0RFCC1L (RSCAN0.RFCC1.UINT16[R_IO_L])
+#define RSCAN0RFCC1LL (RSCAN0.RFCC1.UINT8[R_IO_LL])
+#define RSCAN0RFCC1LH (RSCAN0.RFCC1.UINT8[R_IO_LH])
+#define RSCAN0RFCC1H (RSCAN0.RFCC1.UINT16[R_IO_H])
+#define RSCAN0RFCC1HL (RSCAN0.RFCC1.UINT8[R_IO_HL])
+#define RSCAN0RFCC1HH (RSCAN0.RFCC1.UINT8[R_IO_HH])
+#define RSCAN0RFCC2 (RSCAN0.RFCC2.UINT32)
+#define RSCAN0RFCC2L (RSCAN0.RFCC2.UINT16[R_IO_L])
+#define RSCAN0RFCC2LL (RSCAN0.RFCC2.UINT8[R_IO_LL])
+#define RSCAN0RFCC2LH (RSCAN0.RFCC2.UINT8[R_IO_LH])
+#define RSCAN0RFCC2H (RSCAN0.RFCC2.UINT16[R_IO_H])
+#define RSCAN0RFCC2HL (RSCAN0.RFCC2.UINT8[R_IO_HL])
+#define RSCAN0RFCC2HH (RSCAN0.RFCC2.UINT8[R_IO_HH])
+#define RSCAN0RFCC3 (RSCAN0.RFCC3.UINT32)
+#define RSCAN0RFCC3L (RSCAN0.RFCC3.UINT16[R_IO_L])
+#define RSCAN0RFCC3LL (RSCAN0.RFCC3.UINT8[R_IO_LL])
+#define RSCAN0RFCC3LH (RSCAN0.RFCC3.UINT8[R_IO_LH])
+#define RSCAN0RFCC3H (RSCAN0.RFCC3.UINT16[R_IO_H])
+#define RSCAN0RFCC3HL (RSCAN0.RFCC3.UINT8[R_IO_HL])
+#define RSCAN0RFCC3HH (RSCAN0.RFCC3.UINT8[R_IO_HH])
+#define RSCAN0RFCC4 (RSCAN0.RFCC4.UINT32)
+#define RSCAN0RFCC4L (RSCAN0.RFCC4.UINT16[R_IO_L])
+#define RSCAN0RFCC4LL (RSCAN0.RFCC4.UINT8[R_IO_LL])
+#define RSCAN0RFCC4LH (RSCAN0.RFCC4.UINT8[R_IO_LH])
+#define RSCAN0RFCC4H (RSCAN0.RFCC4.UINT16[R_IO_H])
+#define RSCAN0RFCC4HL (RSCAN0.RFCC4.UINT8[R_IO_HL])
+#define RSCAN0RFCC4HH (RSCAN0.RFCC4.UINT8[R_IO_HH])
+#define RSCAN0RFCC5 (RSCAN0.RFCC5.UINT32)
+#define RSCAN0RFCC5L (RSCAN0.RFCC5.UINT16[R_IO_L])
+#define RSCAN0RFCC5LL (RSCAN0.RFCC5.UINT8[R_IO_LL])
+#define RSCAN0RFCC5LH (RSCAN0.RFCC5.UINT8[R_IO_LH])
+#define RSCAN0RFCC5H (RSCAN0.RFCC5.UINT16[R_IO_H])
+#define RSCAN0RFCC5HL (RSCAN0.RFCC5.UINT8[R_IO_HL])
+#define RSCAN0RFCC5HH (RSCAN0.RFCC5.UINT8[R_IO_HH])
+#define RSCAN0RFCC6 (RSCAN0.RFCC6.UINT32)
+#define RSCAN0RFCC6L (RSCAN0.RFCC6.UINT16[R_IO_L])
+#define RSCAN0RFCC6LL (RSCAN0.RFCC6.UINT8[R_IO_LL])
+#define RSCAN0RFCC6LH (RSCAN0.RFCC6.UINT8[R_IO_LH])
+#define RSCAN0RFCC6H (RSCAN0.RFCC6.UINT16[R_IO_H])
+#define RSCAN0RFCC6HL (RSCAN0.RFCC6.UINT8[R_IO_HL])
+#define RSCAN0RFCC6HH (RSCAN0.RFCC6.UINT8[R_IO_HH])
+#define RSCAN0RFCC7 (RSCAN0.RFCC7.UINT32)
+#define RSCAN0RFCC7L (RSCAN0.RFCC7.UINT16[R_IO_L])
+#define RSCAN0RFCC7LL (RSCAN0.RFCC7.UINT8[R_IO_LL])
+#define RSCAN0RFCC7LH (RSCAN0.RFCC7.UINT8[R_IO_LH])
+#define RSCAN0RFCC7H (RSCAN0.RFCC7.UINT16[R_IO_H])
+#define RSCAN0RFCC7HL (RSCAN0.RFCC7.UINT8[R_IO_HL])
+#define RSCAN0RFCC7HH (RSCAN0.RFCC7.UINT8[R_IO_HH])
+#define RSCAN0RFSTS0 (RSCAN0.RFSTS0.UINT32)
+#define RSCAN0RFSTS0L (RSCAN0.RFSTS0.UINT16[R_IO_L])
+#define RSCAN0RFSTS0LL (RSCAN0.RFSTS0.UINT8[R_IO_LL])
+#define RSCAN0RFSTS0LH (RSCAN0.RFSTS0.UINT8[R_IO_LH])
+#define RSCAN0RFSTS0H (RSCAN0.RFSTS0.UINT16[R_IO_H])
+#define RSCAN0RFSTS0HL (RSCAN0.RFSTS0.UINT8[R_IO_HL])
+#define RSCAN0RFSTS0HH (RSCAN0.RFSTS0.UINT8[R_IO_HH])
+#define RSCAN0RFSTS1 (RSCAN0.RFSTS1.UINT32)
+#define RSCAN0RFSTS1L (RSCAN0.RFSTS1.UINT16[R_IO_L])
+#define RSCAN0RFSTS1LL (RSCAN0.RFSTS1.UINT8[R_IO_LL])
+#define RSCAN0RFSTS1LH (RSCAN0.RFSTS1.UINT8[R_IO_LH])
+#define RSCAN0RFSTS1H (RSCAN0.RFSTS1.UINT16[R_IO_H])
+#define RSCAN0RFSTS1HL (RSCAN0.RFSTS1.UINT8[R_IO_HL])
+#define RSCAN0RFSTS1HH (RSCAN0.RFSTS1.UINT8[R_IO_HH])
+#define RSCAN0RFSTS2 (RSCAN0.RFSTS2.UINT32)
+#define RSCAN0RFSTS2L (RSCAN0.RFSTS2.UINT16[R_IO_L])
+#define RSCAN0RFSTS2LL (RSCAN0.RFSTS2.UINT8[R_IO_LL])
+#define RSCAN0RFSTS2LH (RSCAN0.RFSTS2.UINT8[R_IO_LH])
+#define RSCAN0RFSTS2H (RSCAN0.RFSTS2.UINT16[R_IO_H])
+#define RSCAN0RFSTS2HL (RSCAN0.RFSTS2.UINT8[R_IO_HL])
+#define RSCAN0RFSTS2HH (RSCAN0.RFSTS2.UINT8[R_IO_HH])
+#define RSCAN0RFSTS3 (RSCAN0.RFSTS3.UINT32)
+#define RSCAN0RFSTS3L (RSCAN0.RFSTS3.UINT16[R_IO_L])
+#define RSCAN0RFSTS3LL (RSCAN0.RFSTS3.UINT8[R_IO_LL])
+#define RSCAN0RFSTS3LH (RSCAN0.RFSTS3.UINT8[R_IO_LH])
+#define RSCAN0RFSTS3H (RSCAN0.RFSTS3.UINT16[R_IO_H])
+#define RSCAN0RFSTS3HL (RSCAN0.RFSTS3.UINT8[R_IO_HL])
+#define RSCAN0RFSTS3HH (RSCAN0.RFSTS3.UINT8[R_IO_HH])
+#define RSCAN0RFSTS4 (RSCAN0.RFSTS4.UINT32)
+#define RSCAN0RFSTS4L (RSCAN0.RFSTS4.UINT16[R_IO_L])
+#define RSCAN0RFSTS4LL (RSCAN0.RFSTS4.UINT8[R_IO_LL])
+#define RSCAN0RFSTS4LH (RSCAN0.RFSTS4.UINT8[R_IO_LH])
+#define RSCAN0RFSTS4H (RSCAN0.RFSTS4.UINT16[R_IO_H])
+#define RSCAN0RFSTS4HL (RSCAN0.RFSTS4.UINT8[R_IO_HL])
+#define RSCAN0RFSTS4HH (RSCAN0.RFSTS4.UINT8[R_IO_HH])
+#define RSCAN0RFSTS5 (RSCAN0.RFSTS5.UINT32)
+#define RSCAN0RFSTS5L (RSCAN0.RFSTS5.UINT16[R_IO_L])
+#define RSCAN0RFSTS5LL (RSCAN0.RFSTS5.UINT8[R_IO_LL])
+#define RSCAN0RFSTS5LH (RSCAN0.RFSTS5.UINT8[R_IO_LH])
+#define RSCAN0RFSTS5H (RSCAN0.RFSTS5.UINT16[R_IO_H])
+#define RSCAN0RFSTS5HL (RSCAN0.RFSTS5.UINT8[R_IO_HL])
+#define RSCAN0RFSTS5HH (RSCAN0.RFSTS5.UINT8[R_IO_HH])
+#define RSCAN0RFSTS6 (RSCAN0.RFSTS6.UINT32)
+#define RSCAN0RFSTS6L (RSCAN0.RFSTS6.UINT16[R_IO_L])
+#define RSCAN0RFSTS6LL (RSCAN0.RFSTS6.UINT8[R_IO_LL])
+#define RSCAN0RFSTS6LH (RSCAN0.RFSTS6.UINT8[R_IO_LH])
+#define RSCAN0RFSTS6H (RSCAN0.RFSTS6.UINT16[R_IO_H])
+#define RSCAN0RFSTS6HL (RSCAN0.RFSTS6.UINT8[R_IO_HL])
+#define RSCAN0RFSTS6HH (RSCAN0.RFSTS6.UINT8[R_IO_HH])
+#define RSCAN0RFSTS7 (RSCAN0.RFSTS7.UINT32)
+#define RSCAN0RFSTS7L (RSCAN0.RFSTS7.UINT16[R_IO_L])
+#define RSCAN0RFSTS7LL (RSCAN0.RFSTS7.UINT8[R_IO_LL])
+#define RSCAN0RFSTS7LH (RSCAN0.RFSTS7.UINT8[R_IO_LH])
+#define RSCAN0RFSTS7H (RSCAN0.RFSTS7.UINT16[R_IO_H])
+#define RSCAN0RFSTS7HL (RSCAN0.RFSTS7.UINT8[R_IO_HL])
+#define RSCAN0RFSTS7HH (RSCAN0.RFSTS7.UINT8[R_IO_HH])
+#define RSCAN0RFPCTR0 (RSCAN0.RFPCTR0.UINT32)
+#define RSCAN0RFPCTR0L (RSCAN0.RFPCTR0.UINT16[R_IO_L])
+#define RSCAN0RFPCTR0LL (RSCAN0.RFPCTR0.UINT8[R_IO_LL])
+#define RSCAN0RFPCTR0LH (RSCAN0.RFPCTR0.UINT8[R_IO_LH])
+#define RSCAN0RFPCTR0H (RSCAN0.RFPCTR0.UINT16[R_IO_H])
+#define RSCAN0RFPCTR0HL (RSCAN0.RFPCTR0.UINT8[R_IO_HL])
+#define RSCAN0RFPCTR0HH (RSCAN0.RFPCTR0.UINT8[R_IO_HH])
+#define RSCAN0RFPCTR1 (RSCAN0.RFPCTR1.UINT32)
+#define RSCAN0RFPCTR1L (RSCAN0.RFPCTR1.UINT16[R_IO_L])
+#define RSCAN0RFPCTR1LL (RSCAN0.RFPCTR1.UINT8[R_IO_LL])
+#define RSCAN0RFPCTR1LH (RSCAN0.RFPCTR1.UINT8[R_IO_LH])
+#define RSCAN0RFPCTR1H (RSCAN0.RFPCTR1.UINT16[R_IO_H])
+#define RSCAN0RFPCTR1HL (RSCAN0.RFPCTR1.UINT8[R_IO_HL])
+#define RSCAN0RFPCTR1HH (RSCAN0.RFPCTR1.UINT8[R_IO_HH])
+#define RSCAN0RFPCTR2 (RSCAN0.RFPCTR2.UINT32)
+#define RSCAN0RFPCTR2L (RSCAN0.RFPCTR2.UINT16[R_IO_L])
+#define RSCAN0RFPCTR2LL (RSCAN0.RFPCTR2.UINT8[R_IO_LL])
+#define RSCAN0RFPCTR2LH (RSCAN0.RFPCTR2.UINT8[R_IO_LH])
+#define RSCAN0RFPCTR2H (RSCAN0.RFPCTR2.UINT16[R_IO_H])
+#define RSCAN0RFPCTR2HL (RSCAN0.RFPCTR2.UINT8[R_IO_HL])
+#define RSCAN0RFPCTR2HH (RSCAN0.RFPCTR2.UINT8[R_IO_HH])
+#define RSCAN0RFPCTR3 (RSCAN0.RFPCTR3.UINT32)
+#define RSCAN0RFPCTR3L (RSCAN0.RFPCTR3.UINT16[R_IO_L])
+#define RSCAN0RFPCTR3LL (RSCAN0.RFPCTR3.UINT8[R_IO_LL])
+#define RSCAN0RFPCTR3LH (RSCAN0.RFPCTR3.UINT8[R_IO_LH])
+#define RSCAN0RFPCTR3H (RSCAN0.RFPCTR3.UINT16[R_IO_H])
+#define RSCAN0RFPCTR3HL (RSCAN0.RFPCTR3.UINT8[R_IO_HL])
+#define RSCAN0RFPCTR3HH (RSCAN0.RFPCTR3.UINT8[R_IO_HH])
+#define RSCAN0RFPCTR4 (RSCAN0.RFPCTR4.UINT32)
+#define RSCAN0RFPCTR4L (RSCAN0.RFPCTR4.UINT16[R_IO_L])
+#define RSCAN0RFPCTR4LL (RSCAN0.RFPCTR4.UINT8[R_IO_LL])
+#define RSCAN0RFPCTR4LH (RSCAN0.RFPCTR4.UINT8[R_IO_LH])
+#define RSCAN0RFPCTR4H (RSCAN0.RFPCTR4.UINT16[R_IO_H])
+#define RSCAN0RFPCTR4HL (RSCAN0.RFPCTR4.UINT8[R_IO_HL])
+#define RSCAN0RFPCTR4HH (RSCAN0.RFPCTR4.UINT8[R_IO_HH])
+#define RSCAN0RFPCTR5 (RSCAN0.RFPCTR5.UINT32)
+#define RSCAN0RFPCTR5L (RSCAN0.RFPCTR5.UINT16[R_IO_L])
+#define RSCAN0RFPCTR5LL (RSCAN0.RFPCTR5.UINT8[R_IO_LL])
+#define RSCAN0RFPCTR5LH (RSCAN0.RFPCTR5.UINT8[R_IO_LH])
+#define RSCAN0RFPCTR5H (RSCAN0.RFPCTR5.UINT16[R_IO_H])
+#define RSCAN0RFPCTR5HL (RSCAN0.RFPCTR5.UINT8[R_IO_HL])
+#define RSCAN0RFPCTR5HH (RSCAN0.RFPCTR5.UINT8[R_IO_HH])
+#define RSCAN0RFPCTR6 (RSCAN0.RFPCTR6.UINT32)
+#define RSCAN0RFPCTR6L (RSCAN0.RFPCTR6.UINT16[R_IO_L])
+#define RSCAN0RFPCTR6LL (RSCAN0.RFPCTR6.UINT8[R_IO_LL])
+#define RSCAN0RFPCTR6LH (RSCAN0.RFPCTR6.UINT8[R_IO_LH])
+#define RSCAN0RFPCTR6H (RSCAN0.RFPCTR6.UINT16[R_IO_H])
+#define RSCAN0RFPCTR6HL (RSCAN0.RFPCTR6.UINT8[R_IO_HL])
+#define RSCAN0RFPCTR6HH (RSCAN0.RFPCTR6.UINT8[R_IO_HH])
+#define RSCAN0RFPCTR7 (RSCAN0.RFPCTR7.UINT32)
+#define RSCAN0RFPCTR7L (RSCAN0.RFPCTR7.UINT16[R_IO_L])
+#define RSCAN0RFPCTR7LL (RSCAN0.RFPCTR7.UINT8[R_IO_LL])
+#define RSCAN0RFPCTR7LH (RSCAN0.RFPCTR7.UINT8[R_IO_LH])
+#define RSCAN0RFPCTR7H (RSCAN0.RFPCTR7.UINT16[R_IO_H])
+#define RSCAN0RFPCTR7HL (RSCAN0.RFPCTR7.UINT8[R_IO_HL])
+#define RSCAN0RFPCTR7HH (RSCAN0.RFPCTR7.UINT8[R_IO_HH])
+#define RSCAN0CFCC0 (RSCAN0.CFCC0.UINT32)
+#define RSCAN0CFCC0L (RSCAN0.CFCC0.UINT16[R_IO_L])
+#define RSCAN0CFCC0LL (RSCAN0.CFCC0.UINT8[R_IO_LL])
+#define RSCAN0CFCC0LH (RSCAN0.CFCC0.UINT8[R_IO_LH])
+#define RSCAN0CFCC0H (RSCAN0.CFCC0.UINT16[R_IO_H])
+#define RSCAN0CFCC0HL (RSCAN0.CFCC0.UINT8[R_IO_HL])
+#define RSCAN0CFCC0HH (RSCAN0.CFCC0.UINT8[R_IO_HH])
+#define RSCAN0CFCC1 (RSCAN0.CFCC1.UINT32)
+#define RSCAN0CFCC1L (RSCAN0.CFCC1.UINT16[R_IO_L])
+#define RSCAN0CFCC1LL (RSCAN0.CFCC1.UINT8[R_IO_LL])
+#define RSCAN0CFCC1LH (RSCAN0.CFCC1.UINT8[R_IO_LH])
+#define RSCAN0CFCC1H (RSCAN0.CFCC1.UINT16[R_IO_H])
+#define RSCAN0CFCC1HL (RSCAN0.CFCC1.UINT8[R_IO_HL])
+#define RSCAN0CFCC1HH (RSCAN0.CFCC1.UINT8[R_IO_HH])
+#define RSCAN0CFCC2 (RSCAN0.CFCC2.UINT32)
+#define RSCAN0CFCC2L (RSCAN0.CFCC2.UINT16[R_IO_L])
+#define RSCAN0CFCC2LL (RSCAN0.CFCC2.UINT8[R_IO_LL])
+#define RSCAN0CFCC2LH (RSCAN0.CFCC2.UINT8[R_IO_LH])
+#define RSCAN0CFCC2H (RSCAN0.CFCC2.UINT16[R_IO_H])
+#define RSCAN0CFCC2HL (RSCAN0.CFCC2.UINT8[R_IO_HL])
+#define RSCAN0CFCC2HH (RSCAN0.CFCC2.UINT8[R_IO_HH])
+#define RSCAN0CFCC3 (RSCAN0.CFCC3.UINT32)
+#define RSCAN0CFCC3L (RSCAN0.CFCC3.UINT16[R_IO_L])
+#define RSCAN0CFCC3LL (RSCAN0.CFCC3.UINT8[R_IO_LL])
+#define RSCAN0CFCC3LH (RSCAN0.CFCC3.UINT8[R_IO_LH])
+#define RSCAN0CFCC3H (RSCAN0.CFCC3.UINT16[R_IO_H])
+#define RSCAN0CFCC3HL (RSCAN0.CFCC3.UINT8[R_IO_HL])
+#define RSCAN0CFCC3HH (RSCAN0.CFCC3.UINT8[R_IO_HH])
+#define RSCAN0CFCC4 (RSCAN0.CFCC4.UINT32)
+#define RSCAN0CFCC4L (RSCAN0.CFCC4.UINT16[R_IO_L])
+#define RSCAN0CFCC4LL (RSCAN0.CFCC4.UINT8[R_IO_LL])
+#define RSCAN0CFCC4LH (RSCAN0.CFCC4.UINT8[R_IO_LH])
+#define RSCAN0CFCC4H (RSCAN0.CFCC4.UINT16[R_IO_H])
+#define RSCAN0CFCC4HL (RSCAN0.CFCC4.UINT8[R_IO_HL])
+#define RSCAN0CFCC4HH (RSCAN0.CFCC4.UINT8[R_IO_HH])
+#define RSCAN0CFCC5 (RSCAN0.CFCC5.UINT32)
+#define RSCAN0CFCC5L (RSCAN0.CFCC5.UINT16[R_IO_L])
+#define RSCAN0CFCC5LL (RSCAN0.CFCC5.UINT8[R_IO_LL])
+#define RSCAN0CFCC5LH (RSCAN0.CFCC5.UINT8[R_IO_LH])
+#define RSCAN0CFCC5H (RSCAN0.CFCC5.UINT16[R_IO_H])
+#define RSCAN0CFCC5HL (RSCAN0.CFCC5.UINT8[R_IO_HL])
+#define RSCAN0CFCC5HH (RSCAN0.CFCC5.UINT8[R_IO_HH])
+#define RSCAN0CFCC6 (RSCAN0.CFCC6.UINT32)
+#define RSCAN0CFCC6L (RSCAN0.CFCC6.UINT16[R_IO_L])
+#define RSCAN0CFCC6LL (RSCAN0.CFCC6.UINT8[R_IO_LL])
+#define RSCAN0CFCC6LH (RSCAN0.CFCC6.UINT8[R_IO_LH])
+#define RSCAN0CFCC6H (RSCAN0.CFCC6.UINT16[R_IO_H])
+#define RSCAN0CFCC6HL (RSCAN0.CFCC6.UINT8[R_IO_HL])
+#define RSCAN0CFCC6HH (RSCAN0.CFCC6.UINT8[R_IO_HH])
+#define RSCAN0CFCC7 (RSCAN0.CFCC7.UINT32)
+#define RSCAN0CFCC7L (RSCAN0.CFCC7.UINT16[R_IO_L])
+#define RSCAN0CFCC7LL (RSCAN0.CFCC7.UINT8[R_IO_LL])
+#define RSCAN0CFCC7LH (RSCAN0.CFCC7.UINT8[R_IO_LH])
+#define RSCAN0CFCC7H (RSCAN0.CFCC7.UINT16[R_IO_H])
+#define RSCAN0CFCC7HL (RSCAN0.CFCC7.UINT8[R_IO_HL])
+#define RSCAN0CFCC7HH (RSCAN0.CFCC7.UINT8[R_IO_HH])
+#define RSCAN0CFCC8 (RSCAN0.CFCC8.UINT32)
+#define RSCAN0CFCC8L (RSCAN0.CFCC8.UINT16[R_IO_L])
+#define RSCAN0CFCC8LL (RSCAN0.CFCC8.UINT8[R_IO_LL])
+#define RSCAN0CFCC8LH (RSCAN0.CFCC8.UINT8[R_IO_LH])
+#define RSCAN0CFCC8H (RSCAN0.CFCC8.UINT16[R_IO_H])
+#define RSCAN0CFCC8HL (RSCAN0.CFCC8.UINT8[R_IO_HL])
+#define RSCAN0CFCC8HH (RSCAN0.CFCC8.UINT8[R_IO_HH])
+#define RSCAN0CFCC9 (RSCAN0.CFCC9.UINT32)
+#define RSCAN0CFCC9L (RSCAN0.CFCC9.UINT16[R_IO_L])
+#define RSCAN0CFCC9LL (RSCAN0.CFCC9.UINT8[R_IO_LL])
+#define RSCAN0CFCC9LH (RSCAN0.CFCC9.UINT8[R_IO_LH])
+#define RSCAN0CFCC9H (RSCAN0.CFCC9.UINT16[R_IO_H])
+#define RSCAN0CFCC9HL (RSCAN0.CFCC9.UINT8[R_IO_HL])
+#define RSCAN0CFCC9HH (RSCAN0.CFCC9.UINT8[R_IO_HH])
+#define RSCAN0CFCC10 (RSCAN0.CFCC10.UINT32)
+#define RSCAN0CFCC10L (RSCAN0.CFCC10.UINT16[R_IO_L])
+#define RSCAN0CFCC10LL (RSCAN0.CFCC10.UINT8[R_IO_LL])
+#define RSCAN0CFCC10LH (RSCAN0.CFCC10.UINT8[R_IO_LH])
+#define RSCAN0CFCC10H (RSCAN0.CFCC10.UINT16[R_IO_H])
+#define RSCAN0CFCC10HL (RSCAN0.CFCC10.UINT8[R_IO_HL])
+#define RSCAN0CFCC10HH (RSCAN0.CFCC10.UINT8[R_IO_HH])
+#define RSCAN0CFCC11 (RSCAN0.CFCC11.UINT32)
+#define RSCAN0CFCC11L (RSCAN0.CFCC11.UINT16[R_IO_L])
+#define RSCAN0CFCC11LL (RSCAN0.CFCC11.UINT8[R_IO_LL])
+#define RSCAN0CFCC11LH (RSCAN0.CFCC11.UINT8[R_IO_LH])
+#define RSCAN0CFCC11H (RSCAN0.CFCC11.UINT16[R_IO_H])
+#define RSCAN0CFCC11HL (RSCAN0.CFCC11.UINT8[R_IO_HL])
+#define RSCAN0CFCC11HH (RSCAN0.CFCC11.UINT8[R_IO_HH])
+#define RSCAN0CFCC12 (RSCAN0.CFCC12.UINT32)
+#define RSCAN0CFCC12L (RSCAN0.CFCC12.UINT16[R_IO_L])
+#define RSCAN0CFCC12LL (RSCAN0.CFCC12.UINT8[R_IO_LL])
+#define RSCAN0CFCC12LH (RSCAN0.CFCC12.UINT8[R_IO_LH])
+#define RSCAN0CFCC12H (RSCAN0.CFCC12.UINT16[R_IO_H])
+#define RSCAN0CFCC12HL (RSCAN0.CFCC12.UINT8[R_IO_HL])
+#define RSCAN0CFCC12HH (RSCAN0.CFCC12.UINT8[R_IO_HH])
+#define RSCAN0CFCC13 (RSCAN0.CFCC13.UINT32)
+#define RSCAN0CFCC13L (RSCAN0.CFCC13.UINT16[R_IO_L])
+#define RSCAN0CFCC13LL (RSCAN0.CFCC13.UINT8[R_IO_LL])
+#define RSCAN0CFCC13LH (RSCAN0.CFCC13.UINT8[R_IO_LH])
+#define RSCAN0CFCC13H (RSCAN0.CFCC13.UINT16[R_IO_H])
+#define RSCAN0CFCC13HL (RSCAN0.CFCC13.UINT8[R_IO_HL])
+#define RSCAN0CFCC13HH (RSCAN0.CFCC13.UINT8[R_IO_HH])
+#define RSCAN0CFCC14 (RSCAN0.CFCC14.UINT32)
+#define RSCAN0CFCC14L (RSCAN0.CFCC14.UINT16[R_IO_L])
+#define RSCAN0CFCC14LL (RSCAN0.CFCC14.UINT8[R_IO_LL])
+#define RSCAN0CFCC14LH (RSCAN0.CFCC14.UINT8[R_IO_LH])
+#define RSCAN0CFCC14H (RSCAN0.CFCC14.UINT16[R_IO_H])
+#define RSCAN0CFCC14HL (RSCAN0.CFCC14.UINT8[R_IO_HL])
+#define RSCAN0CFCC14HH (RSCAN0.CFCC14.UINT8[R_IO_HH])
+#define RSCAN0CFSTS0 (RSCAN0.CFSTS0.UINT32)
+#define RSCAN0CFSTS0L (RSCAN0.CFSTS0.UINT16[R_IO_L])
+#define RSCAN0CFSTS0LL (RSCAN0.CFSTS0.UINT8[R_IO_LL])
+#define RSCAN0CFSTS0LH (RSCAN0.CFSTS0.UINT8[R_IO_LH])
+#define RSCAN0CFSTS0H (RSCAN0.CFSTS0.UINT16[R_IO_H])
+#define RSCAN0CFSTS0HL (RSCAN0.CFSTS0.UINT8[R_IO_HL])
+#define RSCAN0CFSTS0HH (RSCAN0.CFSTS0.UINT8[R_IO_HH])
+#define RSCAN0CFSTS1 (RSCAN0.CFSTS1.UINT32)
+#define RSCAN0CFSTS1L (RSCAN0.CFSTS1.UINT16[R_IO_L])
+#define RSCAN0CFSTS1LL (RSCAN0.CFSTS1.UINT8[R_IO_LL])
+#define RSCAN0CFSTS1LH (RSCAN0.CFSTS1.UINT8[R_IO_LH])
+#define RSCAN0CFSTS1H (RSCAN0.CFSTS1.UINT16[R_IO_H])
+#define RSCAN0CFSTS1HL (RSCAN0.CFSTS1.UINT8[R_IO_HL])
+#define RSCAN0CFSTS1HH (RSCAN0.CFSTS1.UINT8[R_IO_HH])
+#define RSCAN0CFSTS2 (RSCAN0.CFSTS2.UINT32)
+#define RSCAN0CFSTS2L (RSCAN0.CFSTS2.UINT16[R_IO_L])
+#define RSCAN0CFSTS2LL (RSCAN0.CFSTS2.UINT8[R_IO_LL])
+#define RSCAN0CFSTS2LH (RSCAN0.CFSTS2.UINT8[R_IO_LH])
+#define RSCAN0CFSTS2H (RSCAN0.CFSTS2.UINT16[R_IO_H])
+#define RSCAN0CFSTS2HL (RSCAN0.CFSTS2.UINT8[R_IO_HL])
+#define RSCAN0CFSTS2HH (RSCAN0.CFSTS2.UINT8[R_IO_HH])
+#define RSCAN0CFSTS3 (RSCAN0.CFSTS3.UINT32)
+#define RSCAN0CFSTS3L (RSCAN0.CFSTS3.UINT16[R_IO_L])
+#define RSCAN0CFSTS3LL (RSCAN0.CFSTS3.UINT8[R_IO_LL])
+#define RSCAN0CFSTS3LH (RSCAN0.CFSTS3.UINT8[R_IO_LH])
+#define RSCAN0CFSTS3H (RSCAN0.CFSTS3.UINT16[R_IO_H])
+#define RSCAN0CFSTS3HL (RSCAN0.CFSTS3.UINT8[R_IO_HL])
+#define RSCAN0CFSTS3HH (RSCAN0.CFSTS3.UINT8[R_IO_HH])
+#define RSCAN0CFSTS4 (RSCAN0.CFSTS4.UINT32)
+#define RSCAN0CFSTS4L (RSCAN0.CFSTS4.UINT16[R_IO_L])
+#define RSCAN0CFSTS4LL (RSCAN0.CFSTS4.UINT8[R_IO_LL])
+#define RSCAN0CFSTS4LH (RSCAN0.CFSTS4.UINT8[R_IO_LH])
+#define RSCAN0CFSTS4H (RSCAN0.CFSTS4.UINT16[R_IO_H])
+#define RSCAN0CFSTS4HL (RSCAN0.CFSTS4.UINT8[R_IO_HL])
+#define RSCAN0CFSTS4HH (RSCAN0.CFSTS4.UINT8[R_IO_HH])
+#define RSCAN0CFSTS5 (RSCAN0.CFSTS5.UINT32)
+#define RSCAN0CFSTS5L (RSCAN0.CFSTS5.UINT16[R_IO_L])
+#define RSCAN0CFSTS5LL (RSCAN0.CFSTS5.UINT8[R_IO_LL])
+#define RSCAN0CFSTS5LH (RSCAN0.CFSTS5.UINT8[R_IO_LH])
+#define RSCAN0CFSTS5H (RSCAN0.CFSTS5.UINT16[R_IO_H])
+#define RSCAN0CFSTS5HL (RSCAN0.CFSTS5.UINT8[R_IO_HL])
+#define RSCAN0CFSTS5HH (RSCAN0.CFSTS5.UINT8[R_IO_HH])
+#define RSCAN0CFSTS6 (RSCAN0.CFSTS6.UINT32)
+#define RSCAN0CFSTS6L (RSCAN0.CFSTS6.UINT16[R_IO_L])
+#define RSCAN0CFSTS6LL (RSCAN0.CFSTS6.UINT8[R_IO_LL])
+#define RSCAN0CFSTS6LH (RSCAN0.CFSTS6.UINT8[R_IO_LH])
+#define RSCAN0CFSTS6H (RSCAN0.CFSTS6.UINT16[R_IO_H])
+#define RSCAN0CFSTS6HL (RSCAN0.CFSTS6.UINT8[R_IO_HL])
+#define RSCAN0CFSTS6HH (RSCAN0.CFSTS6.UINT8[R_IO_HH])
+#define RSCAN0CFSTS7 (RSCAN0.CFSTS7.UINT32)
+#define RSCAN0CFSTS7L (RSCAN0.CFSTS7.UINT16[R_IO_L])
+#define RSCAN0CFSTS7LL (RSCAN0.CFSTS7.UINT8[R_IO_LL])
+#define RSCAN0CFSTS7LH (RSCAN0.CFSTS7.UINT8[R_IO_LH])
+#define RSCAN0CFSTS7H (RSCAN0.CFSTS7.UINT16[R_IO_H])
+#define RSCAN0CFSTS7HL (RSCAN0.CFSTS7.UINT8[R_IO_HL])
+#define RSCAN0CFSTS7HH (RSCAN0.CFSTS7.UINT8[R_IO_HH])
+#define RSCAN0CFSTS8 (RSCAN0.CFSTS8.UINT32)
+#define RSCAN0CFSTS8L (RSCAN0.CFSTS8.UINT16[R_IO_L])
+#define RSCAN0CFSTS8LL (RSCAN0.CFSTS8.UINT8[R_IO_LL])
+#define RSCAN0CFSTS8LH (RSCAN0.CFSTS8.UINT8[R_IO_LH])
+#define RSCAN0CFSTS8H (RSCAN0.CFSTS8.UINT16[R_IO_H])
+#define RSCAN0CFSTS8HL (RSCAN0.CFSTS8.UINT8[R_IO_HL])
+#define RSCAN0CFSTS8HH (RSCAN0.CFSTS8.UINT8[R_IO_HH])
+#define RSCAN0CFSTS9 (RSCAN0.CFSTS9.UINT32)
+#define RSCAN0CFSTS9L (RSCAN0.CFSTS9.UINT16[R_IO_L])
+#define RSCAN0CFSTS9LL (RSCAN0.CFSTS9.UINT8[R_IO_LL])
+#define RSCAN0CFSTS9LH (RSCAN0.CFSTS9.UINT8[R_IO_LH])
+#define RSCAN0CFSTS9H (RSCAN0.CFSTS9.UINT16[R_IO_H])
+#define RSCAN0CFSTS9HL (RSCAN0.CFSTS9.UINT8[R_IO_HL])
+#define RSCAN0CFSTS9HH (RSCAN0.CFSTS9.UINT8[R_IO_HH])
+#define RSCAN0CFSTS10 (RSCAN0.CFSTS10.UINT32)
+#define RSCAN0CFSTS10L (RSCAN0.CFSTS10.UINT16[R_IO_L])
+#define RSCAN0CFSTS10LL (RSCAN0.CFSTS10.UINT8[R_IO_LL])
+#define RSCAN0CFSTS10LH (RSCAN0.CFSTS10.UINT8[R_IO_LH])
+#define RSCAN0CFSTS10H (RSCAN0.CFSTS10.UINT16[R_IO_H])
+#define RSCAN0CFSTS10HL (RSCAN0.CFSTS10.UINT8[R_IO_HL])
+#define RSCAN0CFSTS10HH (RSCAN0.CFSTS10.UINT8[R_IO_HH])
+#define RSCAN0CFSTS11 (RSCAN0.CFSTS11.UINT32)
+#define RSCAN0CFSTS11L (RSCAN0.CFSTS11.UINT16[R_IO_L])
+#define RSCAN0CFSTS11LL (RSCAN0.CFSTS11.UINT8[R_IO_LL])
+#define RSCAN0CFSTS11LH (RSCAN0.CFSTS11.UINT8[R_IO_LH])
+#define RSCAN0CFSTS11H (RSCAN0.CFSTS11.UINT16[R_IO_H])
+#define RSCAN0CFSTS11HL (RSCAN0.CFSTS11.UINT8[R_IO_HL])
+#define RSCAN0CFSTS11HH (RSCAN0.CFSTS11.UINT8[R_IO_HH])
+#define RSCAN0CFSTS12 (RSCAN0.CFSTS12.UINT32)
+#define RSCAN0CFSTS12L (RSCAN0.CFSTS12.UINT16[R_IO_L])
+#define RSCAN0CFSTS12LL (RSCAN0.CFSTS12.UINT8[R_IO_LL])
+#define RSCAN0CFSTS12LH (RSCAN0.CFSTS12.UINT8[R_IO_LH])
+#define RSCAN0CFSTS12H (RSCAN0.CFSTS12.UINT16[R_IO_H])
+#define RSCAN0CFSTS12HL (RSCAN0.CFSTS12.UINT8[R_IO_HL])
+#define RSCAN0CFSTS12HH (RSCAN0.CFSTS12.UINT8[R_IO_HH])
+#define RSCAN0CFSTS13 (RSCAN0.CFSTS13.UINT32)
+#define RSCAN0CFSTS13L (RSCAN0.CFSTS13.UINT16[R_IO_L])
+#define RSCAN0CFSTS13LL (RSCAN0.CFSTS13.UINT8[R_IO_LL])
+#define RSCAN0CFSTS13LH (RSCAN0.CFSTS13.UINT8[R_IO_LH])
+#define RSCAN0CFSTS13H (RSCAN0.CFSTS13.UINT16[R_IO_H])
+#define RSCAN0CFSTS13HL (RSCAN0.CFSTS13.UINT8[R_IO_HL])
+#define RSCAN0CFSTS13HH (RSCAN0.CFSTS13.UINT8[R_IO_HH])
+#define RSCAN0CFSTS14 (RSCAN0.CFSTS14.UINT32)
+#define RSCAN0CFSTS14L (RSCAN0.CFSTS14.UINT16[R_IO_L])
+#define RSCAN0CFSTS14LL (RSCAN0.CFSTS14.UINT8[R_IO_LL])
+#define RSCAN0CFSTS14LH (RSCAN0.CFSTS14.UINT8[R_IO_LH])
+#define RSCAN0CFSTS14H (RSCAN0.CFSTS14.UINT16[R_IO_H])
+#define RSCAN0CFSTS14HL (RSCAN0.CFSTS14.UINT8[R_IO_HL])
+#define RSCAN0CFSTS14HH (RSCAN0.CFSTS14.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR0 (RSCAN0.CFPCTR0.UINT32)
+#define RSCAN0CFPCTR0L (RSCAN0.CFPCTR0.UINT16[R_IO_L])
+#define RSCAN0CFPCTR0LL (RSCAN0.CFPCTR0.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR0LH (RSCAN0.CFPCTR0.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR0H (RSCAN0.CFPCTR0.UINT16[R_IO_H])
+#define RSCAN0CFPCTR0HL (RSCAN0.CFPCTR0.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR0HH (RSCAN0.CFPCTR0.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR1 (RSCAN0.CFPCTR1.UINT32)
+#define RSCAN0CFPCTR1L (RSCAN0.CFPCTR1.UINT16[R_IO_L])
+#define RSCAN0CFPCTR1LL (RSCAN0.CFPCTR1.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR1LH (RSCAN0.CFPCTR1.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR1H (RSCAN0.CFPCTR1.UINT16[R_IO_H])
+#define RSCAN0CFPCTR1HL (RSCAN0.CFPCTR1.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR1HH (RSCAN0.CFPCTR1.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR2 (RSCAN0.CFPCTR2.UINT32)
+#define RSCAN0CFPCTR2L (RSCAN0.CFPCTR2.UINT16[R_IO_L])
+#define RSCAN0CFPCTR2LL (RSCAN0.CFPCTR2.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR2LH (RSCAN0.CFPCTR2.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR2H (RSCAN0.CFPCTR2.UINT16[R_IO_H])
+#define RSCAN0CFPCTR2HL (RSCAN0.CFPCTR2.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR2HH (RSCAN0.CFPCTR2.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR3 (RSCAN0.CFPCTR3.UINT32)
+#define RSCAN0CFPCTR3L (RSCAN0.CFPCTR3.UINT16[R_IO_L])
+#define RSCAN0CFPCTR3LL (RSCAN0.CFPCTR3.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR3LH (RSCAN0.CFPCTR3.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR3H (RSCAN0.CFPCTR3.UINT16[R_IO_H])
+#define RSCAN0CFPCTR3HL (RSCAN0.CFPCTR3.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR3HH (RSCAN0.CFPCTR3.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR4 (RSCAN0.CFPCTR4.UINT32)
+#define RSCAN0CFPCTR4L (RSCAN0.CFPCTR4.UINT16[R_IO_L])
+#define RSCAN0CFPCTR4LL (RSCAN0.CFPCTR4.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR4LH (RSCAN0.CFPCTR4.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR4H (RSCAN0.CFPCTR4.UINT16[R_IO_H])
+#define RSCAN0CFPCTR4HL (RSCAN0.CFPCTR4.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR4HH (RSCAN0.CFPCTR4.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR5 (RSCAN0.CFPCTR5.UINT32)
+#define RSCAN0CFPCTR5L (RSCAN0.CFPCTR5.UINT16[R_IO_L])
+#define RSCAN0CFPCTR5LL (RSCAN0.CFPCTR5.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR5LH (RSCAN0.CFPCTR5.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR5H (RSCAN0.CFPCTR5.UINT16[R_IO_H])
+#define RSCAN0CFPCTR5HL (RSCAN0.CFPCTR5.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR5HH (RSCAN0.CFPCTR5.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR6 (RSCAN0.CFPCTR6.UINT32)
+#define RSCAN0CFPCTR6L (RSCAN0.CFPCTR6.UINT16[R_IO_L])
+#define RSCAN0CFPCTR6LL (RSCAN0.CFPCTR6.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR6LH (RSCAN0.CFPCTR6.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR6H (RSCAN0.CFPCTR6.UINT16[R_IO_H])
+#define RSCAN0CFPCTR6HL (RSCAN0.CFPCTR6.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR6HH (RSCAN0.CFPCTR6.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR7 (RSCAN0.CFPCTR7.UINT32)
+#define RSCAN0CFPCTR7L (RSCAN0.CFPCTR7.UINT16[R_IO_L])
+#define RSCAN0CFPCTR7LL (RSCAN0.CFPCTR7.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR7LH (RSCAN0.CFPCTR7.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR7H (RSCAN0.CFPCTR7.UINT16[R_IO_H])
+#define RSCAN0CFPCTR7HL (RSCAN0.CFPCTR7.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR7HH (RSCAN0.CFPCTR7.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR8 (RSCAN0.CFPCTR8.UINT32)
+#define RSCAN0CFPCTR8L (RSCAN0.CFPCTR8.UINT16[R_IO_L])
+#define RSCAN0CFPCTR8LL (RSCAN0.CFPCTR8.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR8LH (RSCAN0.CFPCTR8.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR8H (RSCAN0.CFPCTR8.UINT16[R_IO_H])
+#define RSCAN0CFPCTR8HL (RSCAN0.CFPCTR8.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR8HH (RSCAN0.CFPCTR8.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR9 (RSCAN0.CFPCTR9.UINT32)
+#define RSCAN0CFPCTR9L (RSCAN0.CFPCTR9.UINT16[R_IO_L])
+#define RSCAN0CFPCTR9LL (RSCAN0.CFPCTR9.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR9LH (RSCAN0.CFPCTR9.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR9H (RSCAN0.CFPCTR9.UINT16[R_IO_H])
+#define RSCAN0CFPCTR9HL (RSCAN0.CFPCTR9.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR9HH (RSCAN0.CFPCTR9.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR10 (RSCAN0.CFPCTR10.UINT32)
+#define RSCAN0CFPCTR10L (RSCAN0.CFPCTR10.UINT16[R_IO_L])
+#define RSCAN0CFPCTR10LL (RSCAN0.CFPCTR10.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR10LH (RSCAN0.CFPCTR10.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR10H (RSCAN0.CFPCTR10.UINT16[R_IO_H])
+#define RSCAN0CFPCTR10HL (RSCAN0.CFPCTR10.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR10HH (RSCAN0.CFPCTR10.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR11 (RSCAN0.CFPCTR11.UINT32)
+#define RSCAN0CFPCTR11L (RSCAN0.CFPCTR11.UINT16[R_IO_L])
+#define RSCAN0CFPCTR11LL (RSCAN0.CFPCTR11.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR11LH (RSCAN0.CFPCTR11.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR11H (RSCAN0.CFPCTR11.UINT16[R_IO_H])
+#define RSCAN0CFPCTR11HL (RSCAN0.CFPCTR11.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR11HH (RSCAN0.CFPCTR11.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR12 (RSCAN0.CFPCTR12.UINT32)
+#define RSCAN0CFPCTR12L (RSCAN0.CFPCTR12.UINT16[R_IO_L])
+#define RSCAN0CFPCTR12LL (RSCAN0.CFPCTR12.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR12LH (RSCAN0.CFPCTR12.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR12H (RSCAN0.CFPCTR12.UINT16[R_IO_H])
+#define RSCAN0CFPCTR12HL (RSCAN0.CFPCTR12.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR12HH (RSCAN0.CFPCTR12.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR13 (RSCAN0.CFPCTR13.UINT32)
+#define RSCAN0CFPCTR13L (RSCAN0.CFPCTR13.UINT16[R_IO_L])
+#define RSCAN0CFPCTR13LL (RSCAN0.CFPCTR13.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR13LH (RSCAN0.CFPCTR13.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR13H (RSCAN0.CFPCTR13.UINT16[R_IO_H])
+#define RSCAN0CFPCTR13HL (RSCAN0.CFPCTR13.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR13HH (RSCAN0.CFPCTR13.UINT8[R_IO_HH])
+#define RSCAN0CFPCTR14 (RSCAN0.CFPCTR14.UINT32)
+#define RSCAN0CFPCTR14L (RSCAN0.CFPCTR14.UINT16[R_IO_L])
+#define RSCAN0CFPCTR14LL (RSCAN0.CFPCTR14.UINT8[R_IO_LL])
+#define RSCAN0CFPCTR14LH (RSCAN0.CFPCTR14.UINT8[R_IO_LH])
+#define RSCAN0CFPCTR14H (RSCAN0.CFPCTR14.UINT16[R_IO_H])
+#define RSCAN0CFPCTR14HL (RSCAN0.CFPCTR14.UINT8[R_IO_HL])
+#define RSCAN0CFPCTR14HH (RSCAN0.CFPCTR14.UINT8[R_IO_HH])
+#define RSCAN0FESTS (RSCAN0.FESTS.UINT32)
+#define RSCAN0FESTSL (RSCAN0.FESTS.UINT16[R_IO_L])
+#define RSCAN0FESTSLL (RSCAN0.FESTS.UINT8[R_IO_LL])
+#define RSCAN0FESTSLH (RSCAN0.FESTS.UINT8[R_IO_LH])
+#define RSCAN0FESTSH (RSCAN0.FESTS.UINT16[R_IO_H])
+#define RSCAN0FESTSHL (RSCAN0.FESTS.UINT8[R_IO_HL])
+#define RSCAN0FESTSHH (RSCAN0.FESTS.UINT8[R_IO_HH])
+#define RSCAN0FFSTS (RSCAN0.FFSTS.UINT32)
+#define RSCAN0FFSTSL (RSCAN0.FFSTS.UINT16[R_IO_L])
+#define RSCAN0FFSTSLL (RSCAN0.FFSTS.UINT8[R_IO_LL])
+#define RSCAN0FFSTSLH (RSCAN0.FFSTS.UINT8[R_IO_LH])
+#define RSCAN0FFSTSH (RSCAN0.FFSTS.UINT16[R_IO_H])
+#define RSCAN0FFSTSHL (RSCAN0.FFSTS.UINT8[R_IO_HL])
+#define RSCAN0FFSTSHH (RSCAN0.FFSTS.UINT8[R_IO_HH])
+#define RSCAN0FMSTS (RSCAN0.FMSTS.UINT32)
+#define RSCAN0FMSTSL (RSCAN0.FMSTS.UINT16[R_IO_L])
+#define RSCAN0FMSTSLL (RSCAN0.FMSTS.UINT8[R_IO_LL])
+#define RSCAN0FMSTSLH (RSCAN0.FMSTS.UINT8[R_IO_LH])
+#define RSCAN0FMSTSH (RSCAN0.FMSTS.UINT16[R_IO_H])
+#define RSCAN0FMSTSHL (RSCAN0.FMSTS.UINT8[R_IO_HL])
+#define RSCAN0FMSTSHH (RSCAN0.FMSTS.UINT8[R_IO_HH])
+#define RSCAN0RFISTS (RSCAN0.RFISTS.UINT32)
+#define RSCAN0RFISTSL (RSCAN0.RFISTS.UINT16[R_IO_L])
+#define RSCAN0RFISTSLL (RSCAN0.RFISTS.UINT8[R_IO_LL])
+#define RSCAN0RFISTSLH (RSCAN0.RFISTS.UINT8[R_IO_LH])
+#define RSCAN0RFISTSH (RSCAN0.RFISTS.UINT16[R_IO_H])
+#define RSCAN0RFISTSHL (RSCAN0.RFISTS.UINT8[R_IO_HL])
+#define RSCAN0RFISTSHH (RSCAN0.RFISTS.UINT8[R_IO_HH])
+#define RSCAN0CFRISTS (RSCAN0.CFRISTS.UINT32)
+#define RSCAN0CFRISTSL (RSCAN0.CFRISTS.UINT16[R_IO_L])
+#define RSCAN0CFRISTSLL (RSCAN0.CFRISTS.UINT8[R_IO_LL])
+#define RSCAN0CFRISTSLH (RSCAN0.CFRISTS.UINT8[R_IO_LH])
+#define RSCAN0CFRISTSH (RSCAN0.CFRISTS.UINT16[R_IO_H])
+#define RSCAN0CFRISTSHL (RSCAN0.CFRISTS.UINT8[R_IO_HL])
+#define RSCAN0CFRISTSHH (RSCAN0.CFRISTS.UINT8[R_IO_HH])
+#define RSCAN0CFTISTS (RSCAN0.CFTISTS.UINT32)
+#define RSCAN0CFTISTSL (RSCAN0.CFTISTS.UINT16[R_IO_L])
+#define RSCAN0CFTISTSLL (RSCAN0.CFTISTS.UINT8[R_IO_LL])
+#define RSCAN0CFTISTSLH (RSCAN0.CFTISTS.UINT8[R_IO_LH])
+#define RSCAN0CFTISTSH (RSCAN0.CFTISTS.UINT16[R_IO_H])
+#define RSCAN0CFTISTSHL (RSCAN0.CFTISTS.UINT8[R_IO_HL])
+#define RSCAN0CFTISTSHH (RSCAN0.CFTISTS.UINT8[R_IO_HH])
+#define RSCAN0TMC0 (RSCAN0.TMC0)
+#define RSCAN0TMC1 (RSCAN0.TMC1)
+#define RSCAN0TMC2 (RSCAN0.TMC2)
+#define RSCAN0TMC3 (RSCAN0.TMC3)
+#define RSCAN0TMC4 (RSCAN0.TMC4)
+#define RSCAN0TMC5 (RSCAN0.TMC5)
+#define RSCAN0TMC6 (RSCAN0.TMC6)
+#define RSCAN0TMC7 (RSCAN0.TMC7)
+#define RSCAN0TMC8 (RSCAN0.TMC8)
+#define RSCAN0TMC9 (RSCAN0.TMC9)
+#define RSCAN0TMC10 (RSCAN0.TMC10)
+#define RSCAN0TMC11 (RSCAN0.TMC11)
+#define RSCAN0TMC12 (RSCAN0.TMC12)
+#define RSCAN0TMC13 (RSCAN0.TMC13)
+#define RSCAN0TMC14 (RSCAN0.TMC14)
+#define RSCAN0TMC15 (RSCAN0.TMC15)
+#define RSCAN0TMC16 (RSCAN0.TMC16)
+#define RSCAN0TMC17 (RSCAN0.TMC17)
+#define RSCAN0TMC18 (RSCAN0.TMC18)
+#define RSCAN0TMC19 (RSCAN0.TMC19)
+#define RSCAN0TMC20 (RSCAN0.TMC20)
+#define RSCAN0TMC21 (RSCAN0.TMC21)
+#define RSCAN0TMC22 (RSCAN0.TMC22)
+#define RSCAN0TMC23 (RSCAN0.TMC23)
+#define RSCAN0TMC24 (RSCAN0.TMC24)
+#define RSCAN0TMC25 (RSCAN0.TMC25)
+#define RSCAN0TMC26 (RSCAN0.TMC26)
+#define RSCAN0TMC27 (RSCAN0.TMC27)
+#define RSCAN0TMC28 (RSCAN0.TMC28)
+#define RSCAN0TMC29 (RSCAN0.TMC29)
+#define RSCAN0TMC30 (RSCAN0.TMC30)
+#define RSCAN0TMC31 (RSCAN0.TMC31)
+#define RSCAN0TMC32 (RSCAN0.TMC32)
+#define RSCAN0TMC33 (RSCAN0.TMC33)
+#define RSCAN0TMC34 (RSCAN0.TMC34)
+#define RSCAN0TMC35 (RSCAN0.TMC35)
+#define RSCAN0TMC36 (RSCAN0.TMC36)
+#define RSCAN0TMC37 (RSCAN0.TMC37)
+#define RSCAN0TMC38 (RSCAN0.TMC38)
+#define RSCAN0TMC39 (RSCAN0.TMC39)
+#define RSCAN0TMC40 (RSCAN0.TMC40)
+#define RSCAN0TMC41 (RSCAN0.TMC41)
+#define RSCAN0TMC42 (RSCAN0.TMC42)
+#define RSCAN0TMC43 (RSCAN0.TMC43)
+#define RSCAN0TMC44 (RSCAN0.TMC44)
+#define RSCAN0TMC45 (RSCAN0.TMC45)
+#define RSCAN0TMC46 (RSCAN0.TMC46)
+#define RSCAN0TMC47 (RSCAN0.TMC47)
+#define RSCAN0TMC48 (RSCAN0.TMC48)
+#define RSCAN0TMC49 (RSCAN0.TMC49)
+#define RSCAN0TMC50 (RSCAN0.TMC50)
+#define RSCAN0TMC51 (RSCAN0.TMC51)
+#define RSCAN0TMC52 (RSCAN0.TMC52)
+#define RSCAN0TMC53 (RSCAN0.TMC53)
+#define RSCAN0TMC54 (RSCAN0.TMC54)
+#define RSCAN0TMC55 (RSCAN0.TMC55)
+#define RSCAN0TMC56 (RSCAN0.TMC56)
+#define RSCAN0TMC57 (RSCAN0.TMC57)
+#define RSCAN0TMC58 (RSCAN0.TMC58)
+#define RSCAN0TMC59 (RSCAN0.TMC59)
+#define RSCAN0TMC60 (RSCAN0.TMC60)
+#define RSCAN0TMC61 (RSCAN0.TMC61)
+#define RSCAN0TMC62 (RSCAN0.TMC62)
+#define RSCAN0TMC63 (RSCAN0.TMC63)
+#define RSCAN0TMC64 (RSCAN0.TMC64)
+#define RSCAN0TMC65 (RSCAN0.TMC65)
+#define RSCAN0TMC66 (RSCAN0.TMC66)
+#define RSCAN0TMC67 (RSCAN0.TMC67)
+#define RSCAN0TMC68 (RSCAN0.TMC68)
+#define RSCAN0TMC69 (RSCAN0.TMC69)
+#define RSCAN0TMC70 (RSCAN0.TMC70)
+#define RSCAN0TMC71 (RSCAN0.TMC71)
+#define RSCAN0TMC72 (RSCAN0.TMC72)
+#define RSCAN0TMC73 (RSCAN0.TMC73)
+#define RSCAN0TMC74 (RSCAN0.TMC74)
+#define RSCAN0TMC75 (RSCAN0.TMC75)
+#define RSCAN0TMC76 (RSCAN0.TMC76)
+#define RSCAN0TMC77 (RSCAN0.TMC77)
+#define RSCAN0TMC78 (RSCAN0.TMC78)
+#define RSCAN0TMC79 (RSCAN0.TMC79)
+#define RSCAN0TMSTS0 (RSCAN0.TMSTS0)
+#define RSCAN0TMSTS1 (RSCAN0.TMSTS1)
+#define RSCAN0TMSTS2 (RSCAN0.TMSTS2)
+#define RSCAN0TMSTS3 (RSCAN0.TMSTS3)
+#define RSCAN0TMSTS4 (RSCAN0.TMSTS4)
+#define RSCAN0TMSTS5 (RSCAN0.TMSTS5)
+#define RSCAN0TMSTS6 (RSCAN0.TMSTS6)
+#define RSCAN0TMSTS7 (RSCAN0.TMSTS7)
+#define RSCAN0TMSTS8 (RSCAN0.TMSTS8)
+#define RSCAN0TMSTS9 (RSCAN0.TMSTS9)
+#define RSCAN0TMSTS10 (RSCAN0.TMSTS10)
+#define RSCAN0TMSTS11 (RSCAN0.TMSTS11)
+#define RSCAN0TMSTS12 (RSCAN0.TMSTS12)
+#define RSCAN0TMSTS13 (RSCAN0.TMSTS13)
+#define RSCAN0TMSTS14 (RSCAN0.TMSTS14)
+#define RSCAN0TMSTS15 (RSCAN0.TMSTS15)
+#define RSCAN0TMSTS16 (RSCAN0.TMSTS16)
+#define RSCAN0TMSTS17 (RSCAN0.TMSTS17)
+#define RSCAN0TMSTS18 (RSCAN0.TMSTS18)
+#define RSCAN0TMSTS19 (RSCAN0.TMSTS19)
+#define RSCAN0TMSTS20 (RSCAN0.TMSTS20)
+#define RSCAN0TMSTS21 (RSCAN0.TMSTS21)
+#define RSCAN0TMSTS22 (RSCAN0.TMSTS22)
+#define RSCAN0TMSTS23 (RSCAN0.TMSTS23)
+#define RSCAN0TMSTS24 (RSCAN0.TMSTS24)
+#define RSCAN0TMSTS25 (RSCAN0.TMSTS25)
+#define RSCAN0TMSTS26 (RSCAN0.TMSTS26)
+#define RSCAN0TMSTS27 (RSCAN0.TMSTS27)
+#define RSCAN0TMSTS28 (RSCAN0.TMSTS28)
+#define RSCAN0TMSTS29 (RSCAN0.TMSTS29)
+#define RSCAN0TMSTS30 (RSCAN0.TMSTS30)
+#define RSCAN0TMSTS31 (RSCAN0.TMSTS31)
+#define RSCAN0TMSTS32 (RSCAN0.TMSTS32)
+#define RSCAN0TMSTS33 (RSCAN0.TMSTS33)
+#define RSCAN0TMSTS34 (RSCAN0.TMSTS34)
+#define RSCAN0TMSTS35 (RSCAN0.TMSTS35)
+#define RSCAN0TMSTS36 (RSCAN0.TMSTS36)
+#define RSCAN0TMSTS37 (RSCAN0.TMSTS37)
+#define RSCAN0TMSTS38 (RSCAN0.TMSTS38)
+#define RSCAN0TMSTS39 (RSCAN0.TMSTS39)
+#define RSCAN0TMSTS40 (RSCAN0.TMSTS40)
+#define RSCAN0TMSTS41 (RSCAN0.TMSTS41)
+#define RSCAN0TMSTS42 (RSCAN0.TMSTS42)
+#define RSCAN0TMSTS43 (RSCAN0.TMSTS43)
+#define RSCAN0TMSTS44 (RSCAN0.TMSTS44)
+#define RSCAN0TMSTS45 (RSCAN0.TMSTS45)
+#define RSCAN0TMSTS46 (RSCAN0.TMSTS46)
+#define RSCAN0TMSTS47 (RSCAN0.TMSTS47)
+#define RSCAN0TMSTS48 (RSCAN0.TMSTS48)
+#define RSCAN0TMSTS49 (RSCAN0.TMSTS49)
+#define RSCAN0TMSTS50 (RSCAN0.TMSTS50)
+#define RSCAN0TMSTS51 (RSCAN0.TMSTS51)
+#define RSCAN0TMSTS52 (RSCAN0.TMSTS52)
+#define RSCAN0TMSTS53 (RSCAN0.TMSTS53)
+#define RSCAN0TMSTS54 (RSCAN0.TMSTS54)
+#define RSCAN0TMSTS55 (RSCAN0.TMSTS55)
+#define RSCAN0TMSTS56 (RSCAN0.TMSTS56)
+#define RSCAN0TMSTS57 (RSCAN0.TMSTS57)
+#define RSCAN0TMSTS58 (RSCAN0.TMSTS58)
+#define RSCAN0TMSTS59 (RSCAN0.TMSTS59)
+#define RSCAN0TMSTS60 (RSCAN0.TMSTS60)
+#define RSCAN0TMSTS61 (RSCAN0.TMSTS61)
+#define RSCAN0TMSTS62 (RSCAN0.TMSTS62)
+#define RSCAN0TMSTS63 (RSCAN0.TMSTS63)
+#define RSCAN0TMSTS64 (RSCAN0.TMSTS64)
+#define RSCAN0TMSTS65 (RSCAN0.TMSTS65)
+#define RSCAN0TMSTS66 (RSCAN0.TMSTS66)
+#define RSCAN0TMSTS67 (RSCAN0.TMSTS67)
+#define RSCAN0TMSTS68 (RSCAN0.TMSTS68)
+#define RSCAN0TMSTS69 (RSCAN0.TMSTS69)
+#define RSCAN0TMSTS70 (RSCAN0.TMSTS70)
+#define RSCAN0TMSTS71 (RSCAN0.TMSTS71)
+#define RSCAN0TMSTS72 (RSCAN0.TMSTS72)
+#define RSCAN0TMSTS73 (RSCAN0.TMSTS73)
+#define RSCAN0TMSTS74 (RSCAN0.TMSTS74)
+#define RSCAN0TMSTS75 (RSCAN0.TMSTS75)
+#define RSCAN0TMSTS76 (RSCAN0.TMSTS76)
+#define RSCAN0TMSTS77 (RSCAN0.TMSTS77)
+#define RSCAN0TMSTS78 (RSCAN0.TMSTS78)
+#define RSCAN0TMSTS79 (RSCAN0.TMSTS79)
+#define RSCAN0TMTRSTS0 (RSCAN0.TMTRSTS0.UINT32)
+#define RSCAN0TMTRSTS0L (RSCAN0.TMTRSTS0.UINT16[R_IO_L])
+#define RSCAN0TMTRSTS0LL (RSCAN0.TMTRSTS0.UINT8[R_IO_LL])
+#define RSCAN0TMTRSTS0LH (RSCAN0.TMTRSTS0.UINT8[R_IO_LH])
+#define RSCAN0TMTRSTS0H (RSCAN0.TMTRSTS0.UINT16[R_IO_H])
+#define RSCAN0TMTRSTS0HL (RSCAN0.TMTRSTS0.UINT8[R_IO_HL])
+#define RSCAN0TMTRSTS0HH (RSCAN0.TMTRSTS0.UINT8[R_IO_HH])
+#define RSCAN0TMTRSTS1 (RSCAN0.TMTRSTS1.UINT32)
+#define RSCAN0TMTRSTS1L (RSCAN0.TMTRSTS1.UINT16[R_IO_L])
+#define RSCAN0TMTRSTS1LL (RSCAN0.TMTRSTS1.UINT8[R_IO_LL])
+#define RSCAN0TMTRSTS1LH (RSCAN0.TMTRSTS1.UINT8[R_IO_LH])
+#define RSCAN0TMTRSTS1H (RSCAN0.TMTRSTS1.UINT16[R_IO_H])
+#define RSCAN0TMTRSTS1HL (RSCAN0.TMTRSTS1.UINT8[R_IO_HL])
+#define RSCAN0TMTRSTS1HH (RSCAN0.TMTRSTS1.UINT8[R_IO_HH])
+#define RSCAN0TMTRSTS2 (RSCAN0.TMTRSTS2.UINT32)
+#define RSCAN0TMTRSTS2L (RSCAN0.TMTRSTS2.UINT16[R_IO_L])
+#define RSCAN0TMTRSTS2LL (RSCAN0.TMTRSTS2.UINT8[R_IO_LL])
+#define RSCAN0TMTRSTS2LH (RSCAN0.TMTRSTS2.UINT8[R_IO_LH])
+#define RSCAN0TMTRSTS2H (RSCAN0.TMTRSTS2.UINT16[R_IO_H])
+#define RSCAN0TMTRSTS2HL (RSCAN0.TMTRSTS2.UINT8[R_IO_HL])
+#define RSCAN0TMTRSTS2HH (RSCAN0.TMTRSTS2.UINT8[R_IO_HH])
+#define RSCAN0TMTARSTS0 (RSCAN0.TMTARSTS0.UINT32)
+#define RSCAN0TMTARSTS0L (RSCAN0.TMTARSTS0.UINT16[R_IO_L])
+#define RSCAN0TMTARSTS0LL (RSCAN0.TMTARSTS0.UINT8[R_IO_LL])
+#define RSCAN0TMTARSTS0LH (RSCAN0.TMTARSTS0.UINT8[R_IO_LH])
+#define RSCAN0TMTARSTS0H (RSCAN0.TMTARSTS0.UINT16[R_IO_H])
+#define RSCAN0TMTARSTS0HL (RSCAN0.TMTARSTS0.UINT8[R_IO_HL])
+#define RSCAN0TMTARSTS0HH (RSCAN0.TMTARSTS0.UINT8[R_IO_HH])
+#define RSCAN0TMTARSTS1 (RSCAN0.TMTARSTS1.UINT32)
+#define RSCAN0TMTARSTS1L (RSCAN0.TMTARSTS1.UINT16[R_IO_L])
+#define RSCAN0TMTARSTS1LL (RSCAN0.TMTARSTS1.UINT8[R_IO_LL])
+#define RSCAN0TMTARSTS1LH (RSCAN0.TMTARSTS1.UINT8[R_IO_LH])
+#define RSCAN0TMTARSTS1H (RSCAN0.TMTARSTS1.UINT16[R_IO_H])
+#define RSCAN0TMTARSTS1HL (RSCAN0.TMTARSTS1.UINT8[R_IO_HL])
+#define RSCAN0TMTARSTS1HH (RSCAN0.TMTARSTS1.UINT8[R_IO_HH])
+#define RSCAN0TMTARSTS2 (RSCAN0.TMTARSTS2.UINT32)
+#define RSCAN0TMTARSTS2L (RSCAN0.TMTARSTS2.UINT16[R_IO_L])
+#define RSCAN0TMTARSTS2LL (RSCAN0.TMTARSTS2.UINT8[R_IO_LL])
+#define RSCAN0TMTARSTS2LH (RSCAN0.TMTARSTS2.UINT8[R_IO_LH])
+#define RSCAN0TMTARSTS2H (RSCAN0.TMTARSTS2.UINT16[R_IO_H])
+#define RSCAN0TMTARSTS2HL (RSCAN0.TMTARSTS2.UINT8[R_IO_HL])
+#define RSCAN0TMTARSTS2HH (RSCAN0.TMTARSTS2.UINT8[R_IO_HH])
+#define RSCAN0TMTCSTS0 (RSCAN0.TMTCSTS0.UINT32)
+#define RSCAN0TMTCSTS0L (RSCAN0.TMTCSTS0.UINT16[R_IO_L])
+#define RSCAN0TMTCSTS0LL (RSCAN0.TMTCSTS0.UINT8[R_IO_LL])
+#define RSCAN0TMTCSTS0LH (RSCAN0.TMTCSTS0.UINT8[R_IO_LH])
+#define RSCAN0TMTCSTS0H (RSCAN0.TMTCSTS0.UINT16[R_IO_H])
+#define RSCAN0TMTCSTS0HL (RSCAN0.TMTCSTS0.UINT8[R_IO_HL])
+#define RSCAN0TMTCSTS0HH (RSCAN0.TMTCSTS0.UINT8[R_IO_HH])
+#define RSCAN0TMTCSTS1 (RSCAN0.TMTCSTS1.UINT32)
+#define RSCAN0TMTCSTS1L (RSCAN0.TMTCSTS1.UINT16[R_IO_L])
+#define RSCAN0TMTCSTS1LL (RSCAN0.TMTCSTS1.UINT8[R_IO_LL])
+#define RSCAN0TMTCSTS1LH (RSCAN0.TMTCSTS1.UINT8[R_IO_LH])
+#define RSCAN0TMTCSTS1H (RSCAN0.TMTCSTS1.UINT16[R_IO_H])
+#define RSCAN0TMTCSTS1HL (RSCAN0.TMTCSTS1.UINT8[R_IO_HL])
+#define RSCAN0TMTCSTS1HH (RSCAN0.TMTCSTS1.UINT8[R_IO_HH])
+#define RSCAN0TMTCSTS2 (RSCAN0.TMTCSTS2.UINT32)
+#define RSCAN0TMTCSTS2L (RSCAN0.TMTCSTS2.UINT16[R_IO_L])
+#define RSCAN0TMTCSTS2LL (RSCAN0.TMTCSTS2.UINT8[R_IO_LL])
+#define RSCAN0TMTCSTS2LH (RSCAN0.TMTCSTS2.UINT8[R_IO_LH])
+#define RSCAN0TMTCSTS2H (RSCAN0.TMTCSTS2.UINT16[R_IO_H])
+#define RSCAN0TMTCSTS2HL (RSCAN0.TMTCSTS2.UINT8[R_IO_HL])
+#define RSCAN0TMTCSTS2HH (RSCAN0.TMTCSTS2.UINT8[R_IO_HH])
+#define RSCAN0TMTASTS0 (RSCAN0.TMTASTS0.UINT32)
+#define RSCAN0TMTASTS0L (RSCAN0.TMTASTS0.UINT16[R_IO_L])
+#define RSCAN0TMTASTS0LL (RSCAN0.TMTASTS0.UINT8[R_IO_LL])
+#define RSCAN0TMTASTS0LH (RSCAN0.TMTASTS0.UINT8[R_IO_LH])
+#define RSCAN0TMTASTS0H (RSCAN0.TMTASTS0.UINT16[R_IO_H])
+#define RSCAN0TMTASTS0HL (RSCAN0.TMTASTS0.UINT8[R_IO_HL])
+#define RSCAN0TMTASTS0HH (RSCAN0.TMTASTS0.UINT8[R_IO_HH])
+#define RSCAN0TMTASTS1 (RSCAN0.TMTASTS1.UINT32)
+#define RSCAN0TMTASTS1L (RSCAN0.TMTASTS1.UINT16[R_IO_L])
+#define RSCAN0TMTASTS1LL (RSCAN0.TMTASTS1.UINT8[R_IO_LL])
+#define RSCAN0TMTASTS1LH (RSCAN0.TMTASTS1.UINT8[R_IO_LH])
+#define RSCAN0TMTASTS1H (RSCAN0.TMTASTS1.UINT16[R_IO_H])
+#define RSCAN0TMTASTS1HL (RSCAN0.TMTASTS1.UINT8[R_IO_HL])
+#define RSCAN0TMTASTS1HH (RSCAN0.TMTASTS1.UINT8[R_IO_HH])
+#define RSCAN0TMTASTS2 (RSCAN0.TMTASTS2.UINT32)
+#define RSCAN0TMTASTS2L (RSCAN0.TMTASTS2.UINT16[R_IO_L])
+#define RSCAN0TMTASTS2LL (RSCAN0.TMTASTS2.UINT8[R_IO_LL])
+#define RSCAN0TMTASTS2LH (RSCAN0.TMTASTS2.UINT8[R_IO_LH])
+#define RSCAN0TMTASTS2H (RSCAN0.TMTASTS2.UINT16[R_IO_H])
+#define RSCAN0TMTASTS2HL (RSCAN0.TMTASTS2.UINT8[R_IO_HL])
+#define RSCAN0TMTASTS2HH (RSCAN0.TMTASTS2.UINT8[R_IO_HH])
+#define RSCAN0TMIEC0 (RSCAN0.TMIEC0.UINT32)
+#define RSCAN0TMIEC0L (RSCAN0.TMIEC0.UINT16[R_IO_L])
+#define RSCAN0TMIEC0LL (RSCAN0.TMIEC0.UINT8[R_IO_LL])
+#define RSCAN0TMIEC0LH (RSCAN0.TMIEC0.UINT8[R_IO_LH])
+#define RSCAN0TMIEC0H (RSCAN0.TMIEC0.UINT16[R_IO_H])
+#define RSCAN0TMIEC0HL (RSCAN0.TMIEC0.UINT8[R_IO_HL])
+#define RSCAN0TMIEC0HH (RSCAN0.TMIEC0.UINT8[R_IO_HH])
+#define RSCAN0TMIEC1 (RSCAN0.TMIEC1.UINT32)
+#define RSCAN0TMIEC1L (RSCAN0.TMIEC1.UINT16[R_IO_L])
+#define RSCAN0TMIEC1LL (RSCAN0.TMIEC1.UINT8[R_IO_LL])
+#define RSCAN0TMIEC1LH (RSCAN0.TMIEC1.UINT8[R_IO_LH])
+#define RSCAN0TMIEC1H (RSCAN0.TMIEC1.UINT16[R_IO_H])
+#define RSCAN0TMIEC1HL (RSCAN0.TMIEC1.UINT8[R_IO_HL])
+#define RSCAN0TMIEC1HH (RSCAN0.TMIEC1.UINT8[R_IO_HH])
+#define RSCAN0TMIEC2 (RSCAN0.TMIEC2.UINT32)
+#define RSCAN0TMIEC2L (RSCAN0.TMIEC2.UINT16[R_IO_L])
+#define RSCAN0TMIEC2LL (RSCAN0.TMIEC2.UINT8[R_IO_LL])
+#define RSCAN0TMIEC2LH (RSCAN0.TMIEC2.UINT8[R_IO_LH])
+#define RSCAN0TMIEC2H (RSCAN0.TMIEC2.UINT16[R_IO_H])
+#define RSCAN0TMIEC2HL (RSCAN0.TMIEC2.UINT8[R_IO_HL])
+#define RSCAN0TMIEC2HH (RSCAN0.TMIEC2.UINT8[R_IO_HH])
+#define RSCAN0TXQCC0 (RSCAN0.TXQCC0.UINT32)
+#define RSCAN0TXQCC0L (RSCAN0.TXQCC0.UINT16[R_IO_L])
+#define RSCAN0TXQCC0LL (RSCAN0.TXQCC0.UINT8[R_IO_LL])
+#define RSCAN0TXQCC0LH (RSCAN0.TXQCC0.UINT8[R_IO_LH])
+#define RSCAN0TXQCC0H (RSCAN0.TXQCC0.UINT16[R_IO_H])
+#define RSCAN0TXQCC0HL (RSCAN0.TXQCC0.UINT8[R_IO_HL])
+#define RSCAN0TXQCC0HH (RSCAN0.TXQCC0.UINT8[R_IO_HH])
+#define RSCAN0TXQCC1 (RSCAN0.TXQCC1.UINT32)
+#define RSCAN0TXQCC1L (RSCAN0.TXQCC1.UINT16[R_IO_L])
+#define RSCAN0TXQCC1LL (RSCAN0.TXQCC1.UINT8[R_IO_LL])
+#define RSCAN0TXQCC1LH (RSCAN0.TXQCC1.UINT8[R_IO_LH])
+#define RSCAN0TXQCC1H (RSCAN0.TXQCC1.UINT16[R_IO_H])
+#define RSCAN0TXQCC1HL (RSCAN0.TXQCC1.UINT8[R_IO_HL])
+#define RSCAN0TXQCC1HH (RSCAN0.TXQCC1.UINT8[R_IO_HH])
+#define RSCAN0TXQCC2 (RSCAN0.TXQCC2.UINT32)
+#define RSCAN0TXQCC2L (RSCAN0.TXQCC2.UINT16[R_IO_L])
+#define RSCAN0TXQCC2LL (RSCAN0.TXQCC2.UINT8[R_IO_LL])
+#define RSCAN0TXQCC2LH (RSCAN0.TXQCC2.UINT8[R_IO_LH])
+#define RSCAN0TXQCC2H (RSCAN0.TXQCC2.UINT16[R_IO_H])
+#define RSCAN0TXQCC2HL (RSCAN0.TXQCC2.UINT8[R_IO_HL])
+#define RSCAN0TXQCC2HH (RSCAN0.TXQCC2.UINT8[R_IO_HH])
+#define RSCAN0TXQCC3 (RSCAN0.TXQCC3.UINT32)
+#define RSCAN0TXQCC3L (RSCAN0.TXQCC3.UINT16[R_IO_L])
+#define RSCAN0TXQCC3LL (RSCAN0.TXQCC3.UINT8[R_IO_LL])
+#define RSCAN0TXQCC3LH (RSCAN0.TXQCC3.UINT8[R_IO_LH])
+#define RSCAN0TXQCC3H (RSCAN0.TXQCC3.UINT16[R_IO_H])
+#define RSCAN0TXQCC3HL (RSCAN0.TXQCC3.UINT8[R_IO_HL])
+#define RSCAN0TXQCC3HH (RSCAN0.TXQCC3.UINT8[R_IO_HH])
+#define RSCAN0TXQCC4 (RSCAN0.TXQCC4.UINT32)
+#define RSCAN0TXQCC4L (RSCAN0.TXQCC4.UINT16[R_IO_L])
+#define RSCAN0TXQCC4LL (RSCAN0.TXQCC4.UINT8[R_IO_LL])
+#define RSCAN0TXQCC4LH (RSCAN0.TXQCC4.UINT8[R_IO_LH])
+#define RSCAN0TXQCC4H (RSCAN0.TXQCC4.UINT16[R_IO_H])
+#define RSCAN0TXQCC4HL (RSCAN0.TXQCC4.UINT8[R_IO_HL])
+#define RSCAN0TXQCC4HH (RSCAN0.TXQCC4.UINT8[R_IO_HH])
+#define RSCAN0TXQSTS0 (RSCAN0.TXQSTS0.UINT32)
+#define RSCAN0TXQSTS0L (RSCAN0.TXQSTS0.UINT16[R_IO_L])
+#define RSCAN0TXQSTS0LL (RSCAN0.TXQSTS0.UINT8[R_IO_LL])
+#define RSCAN0TXQSTS0LH (RSCAN0.TXQSTS0.UINT8[R_IO_LH])
+#define RSCAN0TXQSTS0H (RSCAN0.TXQSTS0.UINT16[R_IO_H])
+#define RSCAN0TXQSTS0HL (RSCAN0.TXQSTS0.UINT8[R_IO_HL])
+#define RSCAN0TXQSTS0HH (RSCAN0.TXQSTS0.UINT8[R_IO_HH])
+#define RSCAN0TXQSTS1 (RSCAN0.TXQSTS1.UINT32)
+#define RSCAN0TXQSTS1L (RSCAN0.TXQSTS1.UINT16[R_IO_L])
+#define RSCAN0TXQSTS1LL (RSCAN0.TXQSTS1.UINT8[R_IO_LL])
+#define RSCAN0TXQSTS1LH (RSCAN0.TXQSTS1.UINT8[R_IO_LH])
+#define RSCAN0TXQSTS1H (RSCAN0.TXQSTS1.UINT16[R_IO_H])
+#define RSCAN0TXQSTS1HL (RSCAN0.TXQSTS1.UINT8[R_IO_HL])
+#define RSCAN0TXQSTS1HH (RSCAN0.TXQSTS1.UINT8[R_IO_HH])
+#define RSCAN0TXQSTS2 (RSCAN0.TXQSTS2.UINT32)
+#define RSCAN0TXQSTS2L (RSCAN0.TXQSTS2.UINT16[R_IO_L])
+#define RSCAN0TXQSTS2LL (RSCAN0.TXQSTS2.UINT8[R_IO_LL])
+#define RSCAN0TXQSTS2LH (RSCAN0.TXQSTS2.UINT8[R_IO_LH])
+#define RSCAN0TXQSTS2H (RSCAN0.TXQSTS2.UINT16[R_IO_H])
+#define RSCAN0TXQSTS2HL (RSCAN0.TXQSTS2.UINT8[R_IO_HL])
+#define RSCAN0TXQSTS2HH (RSCAN0.TXQSTS2.UINT8[R_IO_HH])
+#define RSCAN0TXQSTS3 (RSCAN0.TXQSTS3.UINT32)
+#define RSCAN0TXQSTS3L (RSCAN0.TXQSTS3.UINT16[R_IO_L])
+#define RSCAN0TXQSTS3LL (RSCAN0.TXQSTS3.UINT8[R_IO_LL])
+#define RSCAN0TXQSTS3LH (RSCAN0.TXQSTS3.UINT8[R_IO_LH])
+#define RSCAN0TXQSTS3H (RSCAN0.TXQSTS3.UINT16[R_IO_H])
+#define RSCAN0TXQSTS3HL (RSCAN0.TXQSTS3.UINT8[R_IO_HL])
+#define RSCAN0TXQSTS3HH (RSCAN0.TXQSTS3.UINT8[R_IO_HH])
+#define RSCAN0TXQSTS4 (RSCAN0.TXQSTS4.UINT32)
+#define RSCAN0TXQSTS4L (RSCAN0.TXQSTS4.UINT16[R_IO_L])
+#define RSCAN0TXQSTS4LL (RSCAN0.TXQSTS4.UINT8[R_IO_LL])
+#define RSCAN0TXQSTS4LH (RSCAN0.TXQSTS4.UINT8[R_IO_LH])
+#define RSCAN0TXQSTS4H (RSCAN0.TXQSTS4.UINT16[R_IO_H])
+#define RSCAN0TXQSTS4HL (RSCAN0.TXQSTS4.UINT8[R_IO_HL])
+#define RSCAN0TXQSTS4HH (RSCAN0.TXQSTS4.UINT8[R_IO_HH])
+#define RSCAN0TXQPCTR0 (RSCAN0.TXQPCTR0.UINT32)
+#define RSCAN0TXQPCTR0L (RSCAN0.TXQPCTR0.UINT16[R_IO_L])
+#define RSCAN0TXQPCTR0LL (RSCAN0.TXQPCTR0.UINT8[R_IO_LL])
+#define RSCAN0TXQPCTR0LH (RSCAN0.TXQPCTR0.UINT8[R_IO_LH])
+#define RSCAN0TXQPCTR0H (RSCAN0.TXQPCTR0.UINT16[R_IO_H])
+#define RSCAN0TXQPCTR0HL (RSCAN0.TXQPCTR0.UINT8[R_IO_HL])
+#define RSCAN0TXQPCTR0HH (RSCAN0.TXQPCTR0.UINT8[R_IO_HH])
+#define RSCAN0TXQPCTR1 (RSCAN0.TXQPCTR1.UINT32)
+#define RSCAN0TXQPCTR1L (RSCAN0.TXQPCTR1.UINT16[R_IO_L])
+#define RSCAN0TXQPCTR1LL (RSCAN0.TXQPCTR1.UINT8[R_IO_LL])
+#define RSCAN0TXQPCTR1LH (RSCAN0.TXQPCTR1.UINT8[R_IO_LH])
+#define RSCAN0TXQPCTR1H (RSCAN0.TXQPCTR1.UINT16[R_IO_H])
+#define RSCAN0TXQPCTR1HL (RSCAN0.TXQPCTR1.UINT8[R_IO_HL])
+#define RSCAN0TXQPCTR1HH (RSCAN0.TXQPCTR1.UINT8[R_IO_HH])
+#define RSCAN0TXQPCTR2 (RSCAN0.TXQPCTR2.UINT32)
+#define RSCAN0TXQPCTR2L (RSCAN0.TXQPCTR2.UINT16[R_IO_L])
+#define RSCAN0TXQPCTR2LL (RSCAN0.TXQPCTR2.UINT8[R_IO_LL])
+#define RSCAN0TXQPCTR2LH (RSCAN0.TXQPCTR2.UINT8[R_IO_LH])
+#define RSCAN0TXQPCTR2H (RSCAN0.TXQPCTR2.UINT16[R_IO_H])
+#define RSCAN0TXQPCTR2HL (RSCAN0.TXQPCTR2.UINT8[R_IO_HL])
+#define RSCAN0TXQPCTR2HH (RSCAN0.TXQPCTR2.UINT8[R_IO_HH])
+#define RSCAN0TXQPCTR3 (RSCAN0.TXQPCTR3.UINT32)
+#define RSCAN0TXQPCTR3L (RSCAN0.TXQPCTR3.UINT16[R_IO_L])
+#define RSCAN0TXQPCTR3LL (RSCAN0.TXQPCTR3.UINT8[R_IO_LL])
+#define RSCAN0TXQPCTR3LH (RSCAN0.TXQPCTR3.UINT8[R_IO_LH])
+#define RSCAN0TXQPCTR3H (RSCAN0.TXQPCTR3.UINT16[R_IO_H])
+#define RSCAN0TXQPCTR3HL (RSCAN0.TXQPCTR3.UINT8[R_IO_HL])
+#define RSCAN0TXQPCTR3HH (RSCAN0.TXQPCTR3.UINT8[R_IO_HH])
+#define RSCAN0TXQPCTR4 (RSCAN0.TXQPCTR4.UINT32)
+#define RSCAN0TXQPCTR4L (RSCAN0.TXQPCTR4.UINT16[R_IO_L])
+#define RSCAN0TXQPCTR4LL (RSCAN0.TXQPCTR4.UINT8[R_IO_LL])
+#define RSCAN0TXQPCTR4LH (RSCAN0.TXQPCTR4.UINT8[R_IO_LH])
+#define RSCAN0TXQPCTR4H (RSCAN0.TXQPCTR4.UINT16[R_IO_H])
+#define RSCAN0TXQPCTR4HL (RSCAN0.TXQPCTR4.UINT8[R_IO_HL])
+#define RSCAN0TXQPCTR4HH (RSCAN0.TXQPCTR4.UINT8[R_IO_HH])
+#define RSCAN0THLCC0 (RSCAN0.THLCC0.UINT32)
+#define RSCAN0THLCC0L (RSCAN0.THLCC0.UINT16[R_IO_L])
+#define RSCAN0THLCC0LL (RSCAN0.THLCC0.UINT8[R_IO_LL])
+#define RSCAN0THLCC0LH (RSCAN0.THLCC0.UINT8[R_IO_LH])
+#define RSCAN0THLCC0H (RSCAN0.THLCC0.UINT16[R_IO_H])
+#define RSCAN0THLCC0HL (RSCAN0.THLCC0.UINT8[R_IO_HL])
+#define RSCAN0THLCC0HH (RSCAN0.THLCC0.UINT8[R_IO_HH])
+#define RSCAN0THLCC1 (RSCAN0.THLCC1.UINT32)
+#define RSCAN0THLCC1L (RSCAN0.THLCC1.UINT16[R_IO_L])
+#define RSCAN0THLCC1LL (RSCAN0.THLCC1.UINT8[R_IO_LL])
+#define RSCAN0THLCC1LH (RSCAN0.THLCC1.UINT8[R_IO_LH])
+#define RSCAN0THLCC1H (RSCAN0.THLCC1.UINT16[R_IO_H])
+#define RSCAN0THLCC1HL (RSCAN0.THLCC1.UINT8[R_IO_HL])
+#define RSCAN0THLCC1HH (RSCAN0.THLCC1.UINT8[R_IO_HH])
+#define RSCAN0THLCC2 (RSCAN0.THLCC2.UINT32)
+#define RSCAN0THLCC2L (RSCAN0.THLCC2.UINT16[R_IO_L])
+#define RSCAN0THLCC2LL (RSCAN0.THLCC2.UINT8[R_IO_LL])
+#define RSCAN0THLCC2LH (RSCAN0.THLCC2.UINT8[R_IO_LH])
+#define RSCAN0THLCC2H (RSCAN0.THLCC2.UINT16[R_IO_H])
+#define RSCAN0THLCC2HL (RSCAN0.THLCC2.UINT8[R_IO_HL])
+#define RSCAN0THLCC2HH (RSCAN0.THLCC2.UINT8[R_IO_HH])
+#define RSCAN0THLCC3 (RSCAN0.THLCC3.UINT32)
+#define RSCAN0THLCC3L (RSCAN0.THLCC3.UINT16[R_IO_L])
+#define RSCAN0THLCC3LL (RSCAN0.THLCC3.UINT8[R_IO_LL])
+#define RSCAN0THLCC3LH (RSCAN0.THLCC3.UINT8[R_IO_LH])
+#define RSCAN0THLCC3H (RSCAN0.THLCC3.UINT16[R_IO_H])
+#define RSCAN0THLCC3HL (RSCAN0.THLCC3.UINT8[R_IO_HL])
+#define RSCAN0THLCC3HH (RSCAN0.THLCC3.UINT8[R_IO_HH])
+#define RSCAN0THLCC4 (RSCAN0.THLCC4.UINT32)
+#define RSCAN0THLCC4L (RSCAN0.THLCC4.UINT16[R_IO_L])
+#define RSCAN0THLCC4LL (RSCAN0.THLCC4.UINT8[R_IO_LL])
+#define RSCAN0THLCC4LH (RSCAN0.THLCC4.UINT8[R_IO_LH])
+#define RSCAN0THLCC4H (RSCAN0.THLCC4.UINT16[R_IO_H])
+#define RSCAN0THLCC4HL (RSCAN0.THLCC4.UINT8[R_IO_HL])
+#define RSCAN0THLCC4HH (RSCAN0.THLCC4.UINT8[R_IO_HH])
+#define RSCAN0THLSTS0 (RSCAN0.THLSTS0.UINT32)
+#define RSCAN0THLSTS0L (RSCAN0.THLSTS0.UINT16[R_IO_L])
+#define RSCAN0THLSTS0LL (RSCAN0.THLSTS0.UINT8[R_IO_LL])
+#define RSCAN0THLSTS0LH (RSCAN0.THLSTS0.UINT8[R_IO_LH])
+#define RSCAN0THLSTS0H (RSCAN0.THLSTS0.UINT16[R_IO_H])
+#define RSCAN0THLSTS0HL (RSCAN0.THLSTS0.UINT8[R_IO_HL])
+#define RSCAN0THLSTS0HH (RSCAN0.THLSTS0.UINT8[R_IO_HH])
+#define RSCAN0THLSTS1 (RSCAN0.THLSTS1.UINT32)
+#define RSCAN0THLSTS1L (RSCAN0.THLSTS1.UINT16[R_IO_L])
+#define RSCAN0THLSTS1LL (RSCAN0.THLSTS1.UINT8[R_IO_LL])
+#define RSCAN0THLSTS1LH (RSCAN0.THLSTS1.UINT8[R_IO_LH])
+#define RSCAN0THLSTS1H (RSCAN0.THLSTS1.UINT16[R_IO_H])
+#define RSCAN0THLSTS1HL (RSCAN0.THLSTS1.UINT8[R_IO_HL])
+#define RSCAN0THLSTS1HH (RSCAN0.THLSTS1.UINT8[R_IO_HH])
+#define RSCAN0THLSTS2 (RSCAN0.THLSTS2.UINT32)
+#define RSCAN0THLSTS2L (RSCAN0.THLSTS2.UINT16[R_IO_L])
+#define RSCAN0THLSTS2LL (RSCAN0.THLSTS2.UINT8[R_IO_LL])
+#define RSCAN0THLSTS2LH (RSCAN0.THLSTS2.UINT8[R_IO_LH])
+#define RSCAN0THLSTS2H (RSCAN0.THLSTS2.UINT16[R_IO_H])
+#define RSCAN0THLSTS2HL (RSCAN0.THLSTS2.UINT8[R_IO_HL])
+#define RSCAN0THLSTS2HH (RSCAN0.THLSTS2.UINT8[R_IO_HH])
+#define RSCAN0THLSTS3 (RSCAN0.THLSTS3.UINT32)
+#define RSCAN0THLSTS3L (RSCAN0.THLSTS3.UINT16[R_IO_L])
+#define RSCAN0THLSTS3LL (RSCAN0.THLSTS3.UINT8[R_IO_LL])
+#define RSCAN0THLSTS3LH (RSCAN0.THLSTS3.UINT8[R_IO_LH])
+#define RSCAN0THLSTS3H (RSCAN0.THLSTS3.UINT16[R_IO_H])
+#define RSCAN0THLSTS3HL (RSCAN0.THLSTS3.UINT8[R_IO_HL])
+#define RSCAN0THLSTS3HH (RSCAN0.THLSTS3.UINT8[R_IO_HH])
+#define RSCAN0THLSTS4 (RSCAN0.THLSTS4.UINT32)
+#define RSCAN0THLSTS4L (RSCAN0.THLSTS4.UINT16[R_IO_L])
+#define RSCAN0THLSTS4LL (RSCAN0.THLSTS4.UINT8[R_IO_LL])
+#define RSCAN0THLSTS4LH (RSCAN0.THLSTS4.UINT8[R_IO_LH])
+#define RSCAN0THLSTS4H (RSCAN0.THLSTS4.UINT16[R_IO_H])
+#define RSCAN0THLSTS4HL (RSCAN0.THLSTS4.UINT8[R_IO_HL])
+#define RSCAN0THLSTS4HH (RSCAN0.THLSTS4.UINT8[R_IO_HH])
+#define RSCAN0THLPCTR0 (RSCAN0.THLPCTR0.UINT32)
+#define RSCAN0THLPCTR0L (RSCAN0.THLPCTR0.UINT16[R_IO_L])
+#define RSCAN0THLPCTR0LL (RSCAN0.THLPCTR0.UINT8[R_IO_LL])
+#define RSCAN0THLPCTR0LH (RSCAN0.THLPCTR0.UINT8[R_IO_LH])
+#define RSCAN0THLPCTR0H (RSCAN0.THLPCTR0.UINT16[R_IO_H])
+#define RSCAN0THLPCTR0HL (RSCAN0.THLPCTR0.UINT8[R_IO_HL])
+#define RSCAN0THLPCTR0HH (RSCAN0.THLPCTR0.UINT8[R_IO_HH])
+#define RSCAN0THLPCTR1 (RSCAN0.THLPCTR1.UINT32)
+#define RSCAN0THLPCTR1L (RSCAN0.THLPCTR1.UINT16[R_IO_L])
+#define RSCAN0THLPCTR1LL (RSCAN0.THLPCTR1.UINT8[R_IO_LL])
+#define RSCAN0THLPCTR1LH (RSCAN0.THLPCTR1.UINT8[R_IO_LH])
+#define RSCAN0THLPCTR1H (RSCAN0.THLPCTR1.UINT16[R_IO_H])
+#define RSCAN0THLPCTR1HL (RSCAN0.THLPCTR1.UINT8[R_IO_HL])
+#define RSCAN0THLPCTR1HH (RSCAN0.THLPCTR1.UINT8[R_IO_HH])
+#define RSCAN0THLPCTR2 (RSCAN0.THLPCTR2.UINT32)
+#define RSCAN0THLPCTR2L (RSCAN0.THLPCTR2.UINT16[R_IO_L])
+#define RSCAN0THLPCTR2LL (RSCAN0.THLPCTR2.UINT8[R_IO_LL])
+#define RSCAN0THLPCTR2LH (RSCAN0.THLPCTR2.UINT8[R_IO_LH])
+#define RSCAN0THLPCTR2H (RSCAN0.THLPCTR2.UINT16[R_IO_H])
+#define RSCAN0THLPCTR2HL (RSCAN0.THLPCTR2.UINT8[R_IO_HL])
+#define RSCAN0THLPCTR2HH (RSCAN0.THLPCTR2.UINT8[R_IO_HH])
+#define RSCAN0THLPCTR3 (RSCAN0.THLPCTR3.UINT32)
+#define RSCAN0THLPCTR3L (RSCAN0.THLPCTR3.UINT16[R_IO_L])
+#define RSCAN0THLPCTR3LL (RSCAN0.THLPCTR3.UINT8[R_IO_LL])
+#define RSCAN0THLPCTR3LH (RSCAN0.THLPCTR3.UINT8[R_IO_LH])
+#define RSCAN0THLPCTR3H (RSCAN0.THLPCTR3.UINT16[R_IO_H])
+#define RSCAN0THLPCTR3HL (RSCAN0.THLPCTR3.UINT8[R_IO_HL])
+#define RSCAN0THLPCTR3HH (RSCAN0.THLPCTR3.UINT8[R_IO_HH])
+#define RSCAN0THLPCTR4 (RSCAN0.THLPCTR4.UINT32)
+#define RSCAN0THLPCTR4L (RSCAN0.THLPCTR4.UINT16[R_IO_L])
+#define RSCAN0THLPCTR4LL (RSCAN0.THLPCTR4.UINT8[R_IO_LL])
+#define RSCAN0THLPCTR4LH (RSCAN0.THLPCTR4.UINT8[R_IO_LH])
+#define RSCAN0THLPCTR4H (RSCAN0.THLPCTR4.UINT16[R_IO_H])
+#define RSCAN0THLPCTR4HL (RSCAN0.THLPCTR4.UINT8[R_IO_HL])
+#define RSCAN0THLPCTR4HH (RSCAN0.THLPCTR4.UINT8[R_IO_HH])
+#define RSCAN0GTINTSTS0 (RSCAN0.GTINTSTS0.UINT32)
+#define RSCAN0GTINTSTS0L (RSCAN0.GTINTSTS0.UINT16[R_IO_L])
+#define RSCAN0GTINTSTS0LL (RSCAN0.GTINTSTS0.UINT8[R_IO_LL])
+#define RSCAN0GTINTSTS0LH (RSCAN0.GTINTSTS0.UINT8[R_IO_LH])
+#define RSCAN0GTINTSTS0H (RSCAN0.GTINTSTS0.UINT16[R_IO_H])
+#define RSCAN0GTINTSTS0HL (RSCAN0.GTINTSTS0.UINT8[R_IO_HL])
+#define RSCAN0GTINTSTS0HH (RSCAN0.GTINTSTS0.UINT8[R_IO_HH])
+#define RSCAN0GTINTSTS1 (RSCAN0.GTINTSTS1.UINT32)
+#define RSCAN0GTINTSTS1L (RSCAN0.GTINTSTS1.UINT16[R_IO_L])
+#define RSCAN0GTINTSTS1LL (RSCAN0.GTINTSTS1.UINT8[R_IO_LL])
+#define RSCAN0GTINTSTS1LH (RSCAN0.GTINTSTS1.UINT8[R_IO_LH])
+#define RSCAN0GTINTSTS1H (RSCAN0.GTINTSTS1.UINT16[R_IO_H])
+#define RSCAN0GTINTSTS1HL (RSCAN0.GTINTSTS1.UINT8[R_IO_HL])
+#define RSCAN0GTINTSTS1HH (RSCAN0.GTINTSTS1.UINT8[R_IO_HH])
+#define RSCAN0GTSTCFG (RSCAN0.GTSTCFG.UINT32)
+#define RSCAN0GTSTCFGL (RSCAN0.GTSTCFG.UINT16[R_IO_L])
+#define RSCAN0GTSTCFGLL (RSCAN0.GTSTCFG.UINT8[R_IO_LL])
+#define RSCAN0GTSTCFGLH (RSCAN0.GTSTCFG.UINT8[R_IO_LH])
+#define RSCAN0GTSTCFGH (RSCAN0.GTSTCFG.UINT16[R_IO_H])
+#define RSCAN0GTSTCFGHL (RSCAN0.GTSTCFG.UINT8[R_IO_HL])
+#define RSCAN0GTSTCFGHH (RSCAN0.GTSTCFG.UINT8[R_IO_HH])
+#define RSCAN0GTSTCTR (RSCAN0.GTSTCTR.UINT32)
+#define RSCAN0GTSTCTRL (RSCAN0.GTSTCTR.UINT16[R_IO_L])
+#define RSCAN0GTSTCTRLL (RSCAN0.GTSTCTR.UINT8[R_IO_LL])
+#define RSCAN0GTSTCTRLH (RSCAN0.GTSTCTR.UINT8[R_IO_LH])
+#define RSCAN0GTSTCTRH (RSCAN0.GTSTCTR.UINT16[R_IO_H])
+#define RSCAN0GTSTCTRHL (RSCAN0.GTSTCTR.UINT8[R_IO_HL])
+#define RSCAN0GTSTCTRHH (RSCAN0.GTSTCTR.UINT8[R_IO_HH])
+#define RSCAN0GLOCKK (RSCAN0.GLOCKK.UINT32)
+#define RSCAN0GLOCKKL (RSCAN0.GLOCKK.UINT16[R_IO_L])
+#define RSCAN0GLOCKKH (RSCAN0.GLOCKK.UINT16[R_IO_H])
+#define RSCAN0GAFLID0 (RSCAN0.GAFLID0.UINT32)
+#define RSCAN0GAFLID0L (RSCAN0.GAFLID0.UINT16[R_IO_L])
+#define RSCAN0GAFLID0LL (RSCAN0.GAFLID0.UINT8[R_IO_LL])
+#define RSCAN0GAFLID0LH (RSCAN0.GAFLID0.UINT8[R_IO_LH])
+#define RSCAN0GAFLID0H (RSCAN0.GAFLID0.UINT16[R_IO_H])
+#define RSCAN0GAFLID0HL (RSCAN0.GAFLID0.UINT8[R_IO_HL])
+#define RSCAN0GAFLID0HH (RSCAN0.GAFLID0.UINT8[R_IO_HH])
+#define RSCAN0GAFLM0 (RSCAN0.GAFLM0.UINT32)
+#define RSCAN0GAFLM0L (RSCAN0.GAFLM0.UINT16[R_IO_L])
+#define RSCAN0GAFLM0LL (RSCAN0.GAFLM0.UINT8[R_IO_LL])
+#define RSCAN0GAFLM0LH (RSCAN0.GAFLM0.UINT8[R_IO_LH])
+#define RSCAN0GAFLM0H (RSCAN0.GAFLM0.UINT16[R_IO_H])
+#define RSCAN0GAFLM0HL (RSCAN0.GAFLM0.UINT8[R_IO_HL])
+#define RSCAN0GAFLM0HH (RSCAN0.GAFLM0.UINT8[R_IO_HH])
+#define RSCAN0GAFLP00 (RSCAN0.GAFLP00.UINT32)
+#define RSCAN0GAFLP00L (RSCAN0.GAFLP00.UINT16[R_IO_L])
+#define RSCAN0GAFLP00LL (RSCAN0.GAFLP00.UINT8[R_IO_LL])
+#define RSCAN0GAFLP00LH (RSCAN0.GAFLP00.UINT8[R_IO_LH])
+#define RSCAN0GAFLP00H (RSCAN0.GAFLP00.UINT16[R_IO_H])
+#define RSCAN0GAFLP00HL (RSCAN0.GAFLP00.UINT8[R_IO_HL])
+#define RSCAN0GAFLP00HH (RSCAN0.GAFLP00.UINT8[R_IO_HH])
+#define RSCAN0GAFLP10 (RSCAN0.GAFLP10.UINT32)
+#define RSCAN0GAFLP10L (RSCAN0.GAFLP10.UINT16[R_IO_L])
+#define RSCAN0GAFLP10LL (RSCAN0.GAFLP10.UINT8[R_IO_LL])
+#define RSCAN0GAFLP10LH (RSCAN0.GAFLP10.UINT8[R_IO_LH])
+#define RSCAN0GAFLP10H (RSCAN0.GAFLP10.UINT16[R_IO_H])
+#define RSCAN0GAFLP10HL (RSCAN0.GAFLP10.UINT8[R_IO_HL])
+#define RSCAN0GAFLP10HH (RSCAN0.GAFLP10.UINT8[R_IO_HH])
+#define RSCAN0GAFLID1 (RSCAN0.GAFLID1.UINT32)
+#define RSCAN0GAFLID1L (RSCAN0.GAFLID1.UINT16[R_IO_L])
+#define RSCAN0GAFLID1LL (RSCAN0.GAFLID1.UINT8[R_IO_LL])
+#define RSCAN0GAFLID1LH (RSCAN0.GAFLID1.UINT8[R_IO_LH])
+#define RSCAN0GAFLID1H (RSCAN0.GAFLID1.UINT16[R_IO_H])
+#define RSCAN0GAFLID1HL (RSCAN0.GAFLID1.UINT8[R_IO_HL])
+#define RSCAN0GAFLID1HH (RSCAN0.GAFLID1.UINT8[R_IO_HH])
+#define RSCAN0GAFLM1 (RSCAN0.GAFLM1.UINT32)
+#define RSCAN0GAFLM1L (RSCAN0.GAFLM1.UINT16[R_IO_L])
+#define RSCAN0GAFLM1LL (RSCAN0.GAFLM1.UINT8[R_IO_LL])
+#define RSCAN0GAFLM1LH (RSCAN0.GAFLM1.UINT8[R_IO_LH])
+#define RSCAN0GAFLM1H (RSCAN0.GAFLM1.UINT16[R_IO_H])
+#define RSCAN0GAFLM1HL (RSCAN0.GAFLM1.UINT8[R_IO_HL])
+#define RSCAN0GAFLM1HH (RSCAN0.GAFLM1.UINT8[R_IO_HH])
+#define RSCAN0GAFLP01 (RSCAN0.GAFLP01.UINT32)
+#define RSCAN0GAFLP01L (RSCAN0.GAFLP01.UINT16[R_IO_L])
+#define RSCAN0GAFLP01LL (RSCAN0.GAFLP01.UINT8[R_IO_LL])
+#define RSCAN0GAFLP01LH (RSCAN0.GAFLP01.UINT8[R_IO_LH])
+#define RSCAN0GAFLP01H (RSCAN0.GAFLP01.UINT16[R_IO_H])
+#define RSCAN0GAFLP01HL (RSCAN0.GAFLP01.UINT8[R_IO_HL])
+#define RSCAN0GAFLP01HH (RSCAN0.GAFLP01.UINT8[R_IO_HH])
+#define RSCAN0GAFLP11 (RSCAN0.GAFLP11.UINT32)
+#define RSCAN0GAFLP11L (RSCAN0.GAFLP11.UINT16[R_IO_L])
+#define RSCAN0GAFLP11LL (RSCAN0.GAFLP11.UINT8[R_IO_LL])
+#define RSCAN0GAFLP11LH (RSCAN0.GAFLP11.UINT8[R_IO_LH])
+#define RSCAN0GAFLP11H (RSCAN0.GAFLP11.UINT16[R_IO_H])
+#define RSCAN0GAFLP11HL (RSCAN0.GAFLP11.UINT8[R_IO_HL])
+#define RSCAN0GAFLP11HH (RSCAN0.GAFLP11.UINT8[R_IO_HH])
+#define RSCAN0GAFLID2 (RSCAN0.GAFLID2.UINT32)
+#define RSCAN0GAFLID2L (RSCAN0.GAFLID2.UINT16[R_IO_L])
+#define RSCAN0GAFLID2LL (RSCAN0.GAFLID2.UINT8[R_IO_LL])
+#define RSCAN0GAFLID2LH (RSCAN0.GAFLID2.UINT8[R_IO_LH])
+#define RSCAN0GAFLID2H (RSCAN0.GAFLID2.UINT16[R_IO_H])
+#define RSCAN0GAFLID2HL (RSCAN0.GAFLID2.UINT8[R_IO_HL])
+#define RSCAN0GAFLID2HH (RSCAN0.GAFLID2.UINT8[R_IO_HH])
+#define RSCAN0GAFLM2 (RSCAN0.GAFLM2.UINT32)
+#define RSCAN0GAFLM2L (RSCAN0.GAFLM2.UINT16[R_IO_L])
+#define RSCAN0GAFLM2LL (RSCAN0.GAFLM2.UINT8[R_IO_LL])
+#define RSCAN0GAFLM2LH (RSCAN0.GAFLM2.UINT8[R_IO_LH])
+#define RSCAN0GAFLM2H (RSCAN0.GAFLM2.UINT16[R_IO_H])
+#define RSCAN0GAFLM2HL (RSCAN0.GAFLM2.UINT8[R_IO_HL])
+#define RSCAN0GAFLM2HH (RSCAN0.GAFLM2.UINT8[R_IO_HH])
+#define RSCAN0GAFLP02 (RSCAN0.GAFLP02.UINT32)
+#define RSCAN0GAFLP02L (RSCAN0.GAFLP02.UINT16[R_IO_L])
+#define RSCAN0GAFLP02LL (RSCAN0.GAFLP02.UINT8[R_IO_LL])
+#define RSCAN0GAFLP02LH (RSCAN0.GAFLP02.UINT8[R_IO_LH])
+#define RSCAN0GAFLP02H (RSCAN0.GAFLP02.UINT16[R_IO_H])
+#define RSCAN0GAFLP02HL (RSCAN0.GAFLP02.UINT8[R_IO_HL])
+#define RSCAN0GAFLP02HH (RSCAN0.GAFLP02.UINT8[R_IO_HH])
+#define RSCAN0GAFLP12 (RSCAN0.GAFLP12.UINT32)
+#define RSCAN0GAFLP12L (RSCAN0.GAFLP12.UINT16[R_IO_L])
+#define RSCAN0GAFLP12LL (RSCAN0.GAFLP12.UINT8[R_IO_LL])
+#define RSCAN0GAFLP12LH (RSCAN0.GAFLP12.UINT8[R_IO_LH])
+#define RSCAN0GAFLP12H (RSCAN0.GAFLP12.UINT16[R_IO_H])
+#define RSCAN0GAFLP12HL (RSCAN0.GAFLP12.UINT8[R_IO_HL])
+#define RSCAN0GAFLP12HH (RSCAN0.GAFLP12.UINT8[R_IO_HH])
+#define RSCAN0GAFLID3 (RSCAN0.GAFLID3.UINT32)
+#define RSCAN0GAFLID3L (RSCAN0.GAFLID3.UINT16[R_IO_L])
+#define RSCAN0GAFLID3LL (RSCAN0.GAFLID3.UINT8[R_IO_LL])
+#define RSCAN0GAFLID3LH (RSCAN0.GAFLID3.UINT8[R_IO_LH])
+#define RSCAN0GAFLID3H (RSCAN0.GAFLID3.UINT16[R_IO_H])
+#define RSCAN0GAFLID3HL (RSCAN0.GAFLID3.UINT8[R_IO_HL])
+#define RSCAN0GAFLID3HH (RSCAN0.GAFLID3.UINT8[R_IO_HH])
+#define RSCAN0GAFLM3 (RSCAN0.GAFLM3.UINT32)
+#define RSCAN0GAFLM3L (RSCAN0.GAFLM3.UINT16[R_IO_L])
+#define RSCAN0GAFLM3LL (RSCAN0.GAFLM3.UINT8[R_IO_LL])
+#define RSCAN0GAFLM3LH (RSCAN0.GAFLM3.UINT8[R_IO_LH])
+#define RSCAN0GAFLM3H (RSCAN0.GAFLM3.UINT16[R_IO_H])
+#define RSCAN0GAFLM3HL (RSCAN0.GAFLM3.UINT8[R_IO_HL])
+#define RSCAN0GAFLM3HH (RSCAN0.GAFLM3.UINT8[R_IO_HH])
+#define RSCAN0GAFLP03 (RSCAN0.GAFLP03.UINT32)
+#define RSCAN0GAFLP03L (RSCAN0.GAFLP03.UINT16[R_IO_L])
+#define RSCAN0GAFLP03LL (RSCAN0.GAFLP03.UINT8[R_IO_LL])
+#define RSCAN0GAFLP03LH (RSCAN0.GAFLP03.UINT8[R_IO_LH])
+#define RSCAN0GAFLP03H (RSCAN0.GAFLP03.UINT16[R_IO_H])
+#define RSCAN0GAFLP03HL (RSCAN0.GAFLP03.UINT8[R_IO_HL])
+#define RSCAN0GAFLP03HH (RSCAN0.GAFLP03.UINT8[R_IO_HH])
+#define RSCAN0GAFLP13 (RSCAN0.GAFLP13.UINT32)
+#define RSCAN0GAFLP13L (RSCAN0.GAFLP13.UINT16[R_IO_L])
+#define RSCAN0GAFLP13LL (RSCAN0.GAFLP13.UINT8[R_IO_LL])
+#define RSCAN0GAFLP13LH (RSCAN0.GAFLP13.UINT8[R_IO_LH])
+#define RSCAN0GAFLP13H (RSCAN0.GAFLP13.UINT16[R_IO_H])
+#define RSCAN0GAFLP13HL (RSCAN0.GAFLP13.UINT8[R_IO_HL])
+#define RSCAN0GAFLP13HH (RSCAN0.GAFLP13.UINT8[R_IO_HH])
+#define RSCAN0GAFLID4 (RSCAN0.GAFLID4.UINT32)
+#define RSCAN0GAFLID4L (RSCAN0.GAFLID4.UINT16[R_IO_L])
+#define RSCAN0GAFLID4LL (RSCAN0.GAFLID4.UINT8[R_IO_LL])
+#define RSCAN0GAFLID4LH (RSCAN0.GAFLID4.UINT8[R_IO_LH])
+#define RSCAN0GAFLID4H (RSCAN0.GAFLID4.UINT16[R_IO_H])
+#define RSCAN0GAFLID4HL (RSCAN0.GAFLID4.UINT8[R_IO_HL])
+#define RSCAN0GAFLID4HH (RSCAN0.GAFLID4.UINT8[R_IO_HH])
+#define RSCAN0GAFLM4 (RSCAN0.GAFLM4.UINT32)
+#define RSCAN0GAFLM4L (RSCAN0.GAFLM4.UINT16[R_IO_L])
+#define RSCAN0GAFLM4LL (RSCAN0.GAFLM4.UINT8[R_IO_LL])
+#define RSCAN0GAFLM4LH (RSCAN0.GAFLM4.UINT8[R_IO_LH])
+#define RSCAN0GAFLM4H (RSCAN0.GAFLM4.UINT16[R_IO_H])
+#define RSCAN0GAFLM4HL (RSCAN0.GAFLM4.UINT8[R_IO_HL])
+#define RSCAN0GAFLM4HH (RSCAN0.GAFLM4.UINT8[R_IO_HH])
+#define RSCAN0GAFLP04 (RSCAN0.GAFLP04.UINT32)
+#define RSCAN0GAFLP04L (RSCAN0.GAFLP04.UINT16[R_IO_L])
+#define RSCAN0GAFLP04LL (RSCAN0.GAFLP04.UINT8[R_IO_LL])
+#define RSCAN0GAFLP04LH (RSCAN0.GAFLP04.UINT8[R_IO_LH])
+#define RSCAN0GAFLP04H (RSCAN0.GAFLP04.UINT16[R_IO_H])
+#define RSCAN0GAFLP04HL (RSCAN0.GAFLP04.UINT8[R_IO_HL])
+#define RSCAN0GAFLP04HH (RSCAN0.GAFLP04.UINT8[R_IO_HH])
+#define RSCAN0GAFLP14 (RSCAN0.GAFLP14.UINT32)
+#define RSCAN0GAFLP14L (RSCAN0.GAFLP14.UINT16[R_IO_L])
+#define RSCAN0GAFLP14LL (RSCAN0.GAFLP14.UINT8[R_IO_LL])
+#define RSCAN0GAFLP14LH (RSCAN0.GAFLP14.UINT8[R_IO_LH])
+#define RSCAN0GAFLP14H (RSCAN0.GAFLP14.UINT16[R_IO_H])
+#define RSCAN0GAFLP14HL (RSCAN0.GAFLP14.UINT8[R_IO_HL])
+#define RSCAN0GAFLP14HH (RSCAN0.GAFLP14.UINT8[R_IO_HH])
+#define RSCAN0GAFLID5 (RSCAN0.GAFLID5.UINT32)
+#define RSCAN0GAFLID5L (RSCAN0.GAFLID5.UINT16[R_IO_L])
+#define RSCAN0GAFLID5LL (RSCAN0.GAFLID5.UINT8[R_IO_LL])
+#define RSCAN0GAFLID5LH (RSCAN0.GAFLID5.UINT8[R_IO_LH])
+#define RSCAN0GAFLID5H (RSCAN0.GAFLID5.UINT16[R_IO_H])
+#define RSCAN0GAFLID5HL (RSCAN0.GAFLID5.UINT8[R_IO_HL])
+#define RSCAN0GAFLID5HH (RSCAN0.GAFLID5.UINT8[R_IO_HH])
+#define RSCAN0GAFLM5 (RSCAN0.GAFLM5.UINT32)
+#define RSCAN0GAFLM5L (RSCAN0.GAFLM5.UINT16[R_IO_L])
+#define RSCAN0GAFLM5LL (RSCAN0.GAFLM5.UINT8[R_IO_LL])
+#define RSCAN0GAFLM5LH (RSCAN0.GAFLM5.UINT8[R_IO_LH])
+#define RSCAN0GAFLM5H (RSCAN0.GAFLM5.UINT16[R_IO_H])
+#define RSCAN0GAFLM5HL (RSCAN0.GAFLM5.UINT8[R_IO_HL])
+#define RSCAN0GAFLM5HH (RSCAN0.GAFLM5.UINT8[R_IO_HH])
+#define RSCAN0GAFLP05 (RSCAN0.GAFLP05.UINT32)
+#define RSCAN0GAFLP05L (RSCAN0.GAFLP05.UINT16[R_IO_L])
+#define RSCAN0GAFLP05LL (RSCAN0.GAFLP05.UINT8[R_IO_LL])
+#define RSCAN0GAFLP05LH (RSCAN0.GAFLP05.UINT8[R_IO_LH])
+#define RSCAN0GAFLP05H (RSCAN0.GAFLP05.UINT16[R_IO_H])
+#define RSCAN0GAFLP05HL (RSCAN0.GAFLP05.UINT8[R_IO_HL])
+#define RSCAN0GAFLP05HH (RSCAN0.GAFLP05.UINT8[R_IO_HH])
+#define RSCAN0GAFLP15 (RSCAN0.GAFLP15.UINT32)
+#define RSCAN0GAFLP15L (RSCAN0.GAFLP15.UINT16[R_IO_L])
+#define RSCAN0GAFLP15LL (RSCAN0.GAFLP15.UINT8[R_IO_LL])
+#define RSCAN0GAFLP15LH (RSCAN0.GAFLP15.UINT8[R_IO_LH])
+#define RSCAN0GAFLP15H (RSCAN0.GAFLP15.UINT16[R_IO_H])
+#define RSCAN0GAFLP15HL (RSCAN0.GAFLP15.UINT8[R_IO_HL])
+#define RSCAN0GAFLP15HH (RSCAN0.GAFLP15.UINT8[R_IO_HH])
+#define RSCAN0GAFLID6 (RSCAN0.GAFLID6.UINT32)
+#define RSCAN0GAFLID6L (RSCAN0.GAFLID6.UINT16[R_IO_L])
+#define RSCAN0GAFLID6LL (RSCAN0.GAFLID6.UINT8[R_IO_LL])
+#define RSCAN0GAFLID6LH (RSCAN0.GAFLID6.UINT8[R_IO_LH])
+#define RSCAN0GAFLID6H (RSCAN0.GAFLID6.UINT16[R_IO_H])
+#define RSCAN0GAFLID6HL (RSCAN0.GAFLID6.UINT8[R_IO_HL])
+#define RSCAN0GAFLID6HH (RSCAN0.GAFLID6.UINT8[R_IO_HH])
+#define RSCAN0GAFLM6 (RSCAN0.GAFLM6.UINT32)
+#define RSCAN0GAFLM6L (RSCAN0.GAFLM6.UINT16[R_IO_L])
+#define RSCAN0GAFLM6LL (RSCAN0.GAFLM6.UINT8[R_IO_LL])
+#define RSCAN0GAFLM6LH (RSCAN0.GAFLM6.UINT8[R_IO_LH])
+#define RSCAN0GAFLM6H (RSCAN0.GAFLM6.UINT16[R_IO_H])
+#define RSCAN0GAFLM6HL (RSCAN0.GAFLM6.UINT8[R_IO_HL])
+#define RSCAN0GAFLM6HH (RSCAN0.GAFLM6.UINT8[R_IO_HH])
+#define RSCAN0GAFLP06 (RSCAN0.GAFLP06.UINT32)
+#define RSCAN0GAFLP06L (RSCAN0.GAFLP06.UINT16[R_IO_L])
+#define RSCAN0GAFLP06LL (RSCAN0.GAFLP06.UINT8[R_IO_LL])
+#define RSCAN0GAFLP06LH (RSCAN0.GAFLP06.UINT8[R_IO_LH])
+#define RSCAN0GAFLP06H (RSCAN0.GAFLP06.UINT16[R_IO_H])
+#define RSCAN0GAFLP06HL (RSCAN0.GAFLP06.UINT8[R_IO_HL])
+#define RSCAN0GAFLP06HH (RSCAN0.GAFLP06.UINT8[R_IO_HH])
+#define RSCAN0GAFLP16 (RSCAN0.GAFLP16.UINT32)
+#define RSCAN0GAFLP16L (RSCAN0.GAFLP16.UINT16[R_IO_L])
+#define RSCAN0GAFLP16LL (RSCAN0.GAFLP16.UINT8[R_IO_LL])
+#define RSCAN0GAFLP16LH (RSCAN0.GAFLP16.UINT8[R_IO_LH])
+#define RSCAN0GAFLP16H (RSCAN0.GAFLP16.UINT16[R_IO_H])
+#define RSCAN0GAFLP16HL (RSCAN0.GAFLP16.UINT8[R_IO_HL])
+#define RSCAN0GAFLP16HH (RSCAN0.GAFLP16.UINT8[R_IO_HH])
+#define RSCAN0GAFLID7 (RSCAN0.GAFLID7.UINT32)
+#define RSCAN0GAFLID7L (RSCAN0.GAFLID7.UINT16[R_IO_L])
+#define RSCAN0GAFLID7LL (RSCAN0.GAFLID7.UINT8[R_IO_LL])
+#define RSCAN0GAFLID7LH (RSCAN0.GAFLID7.UINT8[R_IO_LH])
+#define RSCAN0GAFLID7H (RSCAN0.GAFLID7.UINT16[R_IO_H])
+#define RSCAN0GAFLID7HL (RSCAN0.GAFLID7.UINT8[R_IO_HL])
+#define RSCAN0GAFLID7HH (RSCAN0.GAFLID7.UINT8[R_IO_HH])
+#define RSCAN0GAFLM7 (RSCAN0.GAFLM7.UINT32)
+#define RSCAN0GAFLM7L (RSCAN0.GAFLM7.UINT16[R_IO_L])
+#define RSCAN0GAFLM7LL (RSCAN0.GAFLM7.UINT8[R_IO_LL])
+#define RSCAN0GAFLM7LH (RSCAN0.GAFLM7.UINT8[R_IO_LH])
+#define RSCAN0GAFLM7H (RSCAN0.GAFLM7.UINT16[R_IO_H])
+#define RSCAN0GAFLM7HL (RSCAN0.GAFLM7.UINT8[R_IO_HL])
+#define RSCAN0GAFLM7HH (RSCAN0.GAFLM7.UINT8[R_IO_HH])
+#define RSCAN0GAFLP07 (RSCAN0.GAFLP07.UINT32)
+#define RSCAN0GAFLP07L (RSCAN0.GAFLP07.UINT16[R_IO_L])
+#define RSCAN0GAFLP07LL (RSCAN0.GAFLP07.UINT8[R_IO_LL])
+#define RSCAN0GAFLP07LH (RSCAN0.GAFLP07.UINT8[R_IO_LH])
+#define RSCAN0GAFLP07H (RSCAN0.GAFLP07.UINT16[R_IO_H])
+#define RSCAN0GAFLP07HL (RSCAN0.GAFLP07.UINT8[R_IO_HL])
+#define RSCAN0GAFLP07HH (RSCAN0.GAFLP07.UINT8[R_IO_HH])
+#define RSCAN0GAFLP17 (RSCAN0.GAFLP17.UINT32)
+#define RSCAN0GAFLP17L (RSCAN0.GAFLP17.UINT16[R_IO_L])
+#define RSCAN0GAFLP17LL (RSCAN0.GAFLP17.UINT8[R_IO_LL])
+#define RSCAN0GAFLP17LH (RSCAN0.GAFLP17.UINT8[R_IO_LH])
+#define RSCAN0GAFLP17H (RSCAN0.GAFLP17.UINT16[R_IO_H])
+#define RSCAN0GAFLP17HL (RSCAN0.GAFLP17.UINT8[R_IO_HL])
+#define RSCAN0GAFLP17HH (RSCAN0.GAFLP17.UINT8[R_IO_HH])
+#define RSCAN0GAFLID8 (RSCAN0.GAFLID8.UINT32)
+#define RSCAN0GAFLID8L (RSCAN0.GAFLID8.UINT16[R_IO_L])
+#define RSCAN0GAFLID8LL (RSCAN0.GAFLID8.UINT8[R_IO_LL])
+#define RSCAN0GAFLID8LH (RSCAN0.GAFLID8.UINT8[R_IO_LH])
+#define RSCAN0GAFLID8H (RSCAN0.GAFLID8.UINT16[R_IO_H])
+#define RSCAN0GAFLID8HL (RSCAN0.GAFLID8.UINT8[R_IO_HL])
+#define RSCAN0GAFLID8HH (RSCAN0.GAFLID8.UINT8[R_IO_HH])
+#define RSCAN0GAFLM8 (RSCAN0.GAFLM8.UINT32)
+#define RSCAN0GAFLM8L (RSCAN0.GAFLM8.UINT16[R_IO_L])
+#define RSCAN0GAFLM8LL (RSCAN0.GAFLM8.UINT8[R_IO_LL])
+#define RSCAN0GAFLM8LH (RSCAN0.GAFLM8.UINT8[R_IO_LH])
+#define RSCAN0GAFLM8H (RSCAN0.GAFLM8.UINT16[R_IO_H])
+#define RSCAN0GAFLM8HL (RSCAN0.GAFLM8.UINT8[R_IO_HL])
+#define RSCAN0GAFLM8HH (RSCAN0.GAFLM8.UINT8[R_IO_HH])
+#define RSCAN0GAFLP08 (RSCAN0.GAFLP08.UINT32)
+#define RSCAN0GAFLP08L (RSCAN0.GAFLP08.UINT16[R_IO_L])
+#define RSCAN0GAFLP08LL (RSCAN0.GAFLP08.UINT8[R_IO_LL])
+#define RSCAN0GAFLP08LH (RSCAN0.GAFLP08.UINT8[R_IO_LH])
+#define RSCAN0GAFLP08H (RSCAN0.GAFLP08.UINT16[R_IO_H])
+#define RSCAN0GAFLP08HL (RSCAN0.GAFLP08.UINT8[R_IO_HL])
+#define RSCAN0GAFLP08HH (RSCAN0.GAFLP08.UINT8[R_IO_HH])
+#define RSCAN0GAFLP18 (RSCAN0.GAFLP18.UINT32)
+#define RSCAN0GAFLP18L (RSCAN0.GAFLP18.UINT16[R_IO_L])
+#define RSCAN0GAFLP18LL (RSCAN0.GAFLP18.UINT8[R_IO_LL])
+#define RSCAN0GAFLP18LH (RSCAN0.GAFLP18.UINT8[R_IO_LH])
+#define RSCAN0GAFLP18H (RSCAN0.GAFLP18.UINT16[R_IO_H])
+#define RSCAN0GAFLP18HL (RSCAN0.GAFLP18.UINT8[R_IO_HL])
+#define RSCAN0GAFLP18HH (RSCAN0.GAFLP18.UINT8[R_IO_HH])
+#define RSCAN0GAFLID9 (RSCAN0.GAFLID9.UINT32)
+#define RSCAN0GAFLID9L (RSCAN0.GAFLID9.UINT16[R_IO_L])
+#define RSCAN0GAFLID9LL (RSCAN0.GAFLID9.UINT8[R_IO_LL])
+#define RSCAN0GAFLID9LH (RSCAN0.GAFLID9.UINT8[R_IO_LH])
+#define RSCAN0GAFLID9H (RSCAN0.GAFLID9.UINT16[R_IO_H])
+#define RSCAN0GAFLID9HL (RSCAN0.GAFLID9.UINT8[R_IO_HL])
+#define RSCAN0GAFLID9HH (RSCAN0.GAFLID9.UINT8[R_IO_HH])
+#define RSCAN0GAFLM9 (RSCAN0.GAFLM9.UINT32)
+#define RSCAN0GAFLM9L (RSCAN0.GAFLM9.UINT16[R_IO_L])
+#define RSCAN0GAFLM9LL (RSCAN0.GAFLM9.UINT8[R_IO_LL])
+#define RSCAN0GAFLM9LH (RSCAN0.GAFLM9.UINT8[R_IO_LH])
+#define RSCAN0GAFLM9H (RSCAN0.GAFLM9.UINT16[R_IO_H])
+#define RSCAN0GAFLM9HL (RSCAN0.GAFLM9.UINT8[R_IO_HL])
+#define RSCAN0GAFLM9HH (RSCAN0.GAFLM9.UINT8[R_IO_HH])
+#define RSCAN0GAFLP09 (RSCAN0.GAFLP09.UINT32)
+#define RSCAN0GAFLP09L (RSCAN0.GAFLP09.UINT16[R_IO_L])
+#define RSCAN0GAFLP09LL (RSCAN0.GAFLP09.UINT8[R_IO_LL])
+#define RSCAN0GAFLP09LH (RSCAN0.GAFLP09.UINT8[R_IO_LH])
+#define RSCAN0GAFLP09H (RSCAN0.GAFLP09.UINT16[R_IO_H])
+#define RSCAN0GAFLP09HL (RSCAN0.GAFLP09.UINT8[R_IO_HL])
+#define RSCAN0GAFLP09HH (RSCAN0.GAFLP09.UINT8[R_IO_HH])
+#define RSCAN0GAFLP19 (RSCAN0.GAFLP19.UINT32)
+#define RSCAN0GAFLP19L (RSCAN0.GAFLP19.UINT16[R_IO_L])
+#define RSCAN0GAFLP19LL (RSCAN0.GAFLP19.UINT8[R_IO_LL])
+#define RSCAN0GAFLP19LH (RSCAN0.GAFLP19.UINT8[R_IO_LH])
+#define RSCAN0GAFLP19H (RSCAN0.GAFLP19.UINT16[R_IO_H])
+#define RSCAN0GAFLP19HL (RSCAN0.GAFLP19.UINT8[R_IO_HL])
+#define RSCAN0GAFLP19HH (RSCAN0.GAFLP19.UINT8[R_IO_HH])
+#define RSCAN0GAFLID10 (RSCAN0.GAFLID10.UINT32)
+#define RSCAN0GAFLID10L (RSCAN0.GAFLID10.UINT16[R_IO_L])
+#define RSCAN0GAFLID10LL (RSCAN0.GAFLID10.UINT8[R_IO_LL])
+#define RSCAN0GAFLID10LH (RSCAN0.GAFLID10.UINT8[R_IO_LH])
+#define RSCAN0GAFLID10H (RSCAN0.GAFLID10.UINT16[R_IO_H])
+#define RSCAN0GAFLID10HL (RSCAN0.GAFLID10.UINT8[R_IO_HL])
+#define RSCAN0GAFLID10HH (RSCAN0.GAFLID10.UINT8[R_IO_HH])
+#define RSCAN0GAFLM10 (RSCAN0.GAFLM10.UINT32)
+#define RSCAN0GAFLM10L (RSCAN0.GAFLM10.UINT16[R_IO_L])
+#define RSCAN0GAFLM10LL (RSCAN0.GAFLM10.UINT8[R_IO_LL])
+#define RSCAN0GAFLM10LH (RSCAN0.GAFLM10.UINT8[R_IO_LH])
+#define RSCAN0GAFLM10H (RSCAN0.GAFLM10.UINT16[R_IO_H])
+#define RSCAN0GAFLM10HL (RSCAN0.GAFLM10.UINT8[R_IO_HL])
+#define RSCAN0GAFLM10HH (RSCAN0.GAFLM10.UINT8[R_IO_HH])
+#define RSCAN0GAFLP010 (RSCAN0.GAFLP010.UINT32)
+#define RSCAN0GAFLP010L (RSCAN0.GAFLP010.UINT16[R_IO_L])
+#define RSCAN0GAFLP010LL (RSCAN0.GAFLP010.UINT8[R_IO_LL])
+#define RSCAN0GAFLP010LH (RSCAN0.GAFLP010.UINT8[R_IO_LH])
+#define RSCAN0GAFLP010H (RSCAN0.GAFLP010.UINT16[R_IO_H])
+#define RSCAN0GAFLP010HL (RSCAN0.GAFLP010.UINT8[R_IO_HL])
+#define RSCAN0GAFLP010HH (RSCAN0.GAFLP010.UINT8[R_IO_HH])
+#define RSCAN0GAFLP110 (RSCAN0.GAFLP110.UINT32)
+#define RSCAN0GAFLP110L (RSCAN0.GAFLP110.UINT16[R_IO_L])
+#define RSCAN0GAFLP110LL (RSCAN0.GAFLP110.UINT8[R_IO_LL])
+#define RSCAN0GAFLP110LH (RSCAN0.GAFLP110.UINT8[R_IO_LH])
+#define RSCAN0GAFLP110H (RSCAN0.GAFLP110.UINT16[R_IO_H])
+#define RSCAN0GAFLP110HL (RSCAN0.GAFLP110.UINT8[R_IO_HL])
+#define RSCAN0GAFLP110HH (RSCAN0.GAFLP110.UINT8[R_IO_HH])
+#define RSCAN0GAFLID11 (RSCAN0.GAFLID11.UINT32)
+#define RSCAN0GAFLID11L (RSCAN0.GAFLID11.UINT16[R_IO_L])
+#define RSCAN0GAFLID11LL (RSCAN0.GAFLID11.UINT8[R_IO_LL])
+#define RSCAN0GAFLID11LH (RSCAN0.GAFLID11.UINT8[R_IO_LH])
+#define RSCAN0GAFLID11H (RSCAN0.GAFLID11.UINT16[R_IO_H])
+#define RSCAN0GAFLID11HL (RSCAN0.GAFLID11.UINT8[R_IO_HL])
+#define RSCAN0GAFLID11HH (RSCAN0.GAFLID11.UINT8[R_IO_HH])
+#define RSCAN0GAFLM11 (RSCAN0.GAFLM11.UINT32)
+#define RSCAN0GAFLM11L (RSCAN0.GAFLM11.UINT16[R_IO_L])
+#define RSCAN0GAFLM11LL (RSCAN0.GAFLM11.UINT8[R_IO_LL])
+#define RSCAN0GAFLM11LH (RSCAN0.GAFLM11.UINT8[R_IO_LH])
+#define RSCAN0GAFLM11H (RSCAN0.GAFLM11.UINT16[R_IO_H])
+#define RSCAN0GAFLM11HL (RSCAN0.GAFLM11.UINT8[R_IO_HL])
+#define RSCAN0GAFLM11HH (RSCAN0.GAFLM11.UINT8[R_IO_HH])
+#define RSCAN0GAFLP011 (RSCAN0.GAFLP011.UINT32)
+#define RSCAN0GAFLP011L (RSCAN0.GAFLP011.UINT16[R_IO_L])
+#define RSCAN0GAFLP011LL (RSCAN0.GAFLP011.UINT8[R_IO_LL])
+#define RSCAN0GAFLP011LH (RSCAN0.GAFLP011.UINT8[R_IO_LH])
+#define RSCAN0GAFLP011H (RSCAN0.GAFLP011.UINT16[R_IO_H])
+#define RSCAN0GAFLP011HL (RSCAN0.GAFLP011.UINT8[R_IO_HL])
+#define RSCAN0GAFLP011HH (RSCAN0.GAFLP011.UINT8[R_IO_HH])
+#define RSCAN0GAFLP111 (RSCAN0.GAFLP111.UINT32)
+#define RSCAN0GAFLP111L (RSCAN0.GAFLP111.UINT16[R_IO_L])
+#define RSCAN0GAFLP111LL (RSCAN0.GAFLP111.UINT8[R_IO_LL])
+#define RSCAN0GAFLP111LH (RSCAN0.GAFLP111.UINT8[R_IO_LH])
+#define RSCAN0GAFLP111H (RSCAN0.GAFLP111.UINT16[R_IO_H])
+#define RSCAN0GAFLP111HL (RSCAN0.GAFLP111.UINT8[R_IO_HL])
+#define RSCAN0GAFLP111HH (RSCAN0.GAFLP111.UINT8[R_IO_HH])
+#define RSCAN0GAFLID12 (RSCAN0.GAFLID12.UINT32)
+#define RSCAN0GAFLID12L (RSCAN0.GAFLID12.UINT16[R_IO_L])
+#define RSCAN0GAFLID12LL (RSCAN0.GAFLID12.UINT8[R_IO_LL])
+#define RSCAN0GAFLID12LH (RSCAN0.GAFLID12.UINT8[R_IO_LH])
+#define RSCAN0GAFLID12H (RSCAN0.GAFLID12.UINT16[R_IO_H])
+#define RSCAN0GAFLID12HL (RSCAN0.GAFLID12.UINT8[R_IO_HL])
+#define RSCAN0GAFLID12HH (RSCAN0.GAFLID12.UINT8[R_IO_HH])
+#define RSCAN0GAFLM12 (RSCAN0.GAFLM12.UINT32)
+#define RSCAN0GAFLM12L (RSCAN0.GAFLM12.UINT16[R_IO_L])
+#define RSCAN0GAFLM12LL (RSCAN0.GAFLM12.UINT8[R_IO_LL])
+#define RSCAN0GAFLM12LH (RSCAN0.GAFLM12.UINT8[R_IO_LH])
+#define RSCAN0GAFLM12H (RSCAN0.GAFLM12.UINT16[R_IO_H])
+#define RSCAN0GAFLM12HL (RSCAN0.GAFLM12.UINT8[R_IO_HL])
+#define RSCAN0GAFLM12HH (RSCAN0.GAFLM12.UINT8[R_IO_HH])
+#define RSCAN0GAFLP012 (RSCAN0.GAFLP012.UINT32)
+#define RSCAN0GAFLP012L (RSCAN0.GAFLP012.UINT16[R_IO_L])
+#define RSCAN0GAFLP012LL (RSCAN0.GAFLP012.UINT8[R_IO_LL])
+#define RSCAN0GAFLP012LH (RSCAN0.GAFLP012.UINT8[R_IO_LH])
+#define RSCAN0GAFLP012H (RSCAN0.GAFLP012.UINT16[R_IO_H])
+#define RSCAN0GAFLP012HL (RSCAN0.GAFLP012.UINT8[R_IO_HL])
+#define RSCAN0GAFLP012HH (RSCAN0.GAFLP012.UINT8[R_IO_HH])
+#define RSCAN0GAFLP112 (RSCAN0.GAFLP112.UINT32)
+#define RSCAN0GAFLP112L (RSCAN0.GAFLP112.UINT16[R_IO_L])
+#define RSCAN0GAFLP112LL (RSCAN0.GAFLP112.UINT8[R_IO_LL])
+#define RSCAN0GAFLP112LH (RSCAN0.GAFLP112.UINT8[R_IO_LH])
+#define RSCAN0GAFLP112H (RSCAN0.GAFLP112.UINT16[R_IO_H])
+#define RSCAN0GAFLP112HL (RSCAN0.GAFLP112.UINT8[R_IO_HL])
+#define RSCAN0GAFLP112HH (RSCAN0.GAFLP112.UINT8[R_IO_HH])
+#define RSCAN0GAFLID13 (RSCAN0.GAFLID13.UINT32)
+#define RSCAN0GAFLID13L (RSCAN0.GAFLID13.UINT16[R_IO_L])
+#define RSCAN0GAFLID13LL (RSCAN0.GAFLID13.UINT8[R_IO_LL])
+#define RSCAN0GAFLID13LH (RSCAN0.GAFLID13.UINT8[R_IO_LH])
+#define RSCAN0GAFLID13H (RSCAN0.GAFLID13.UINT16[R_IO_H])
+#define RSCAN0GAFLID13HL (RSCAN0.GAFLID13.UINT8[R_IO_HL])
+#define RSCAN0GAFLID13HH (RSCAN0.GAFLID13.UINT8[R_IO_HH])
+#define RSCAN0GAFLM13 (RSCAN0.GAFLM13.UINT32)
+#define RSCAN0GAFLM13L (RSCAN0.GAFLM13.UINT16[R_IO_L])
+#define RSCAN0GAFLM13LL (RSCAN0.GAFLM13.UINT8[R_IO_LL])
+#define RSCAN0GAFLM13LH (RSCAN0.GAFLM13.UINT8[R_IO_LH])
+#define RSCAN0GAFLM13H (RSCAN0.GAFLM13.UINT16[R_IO_H])
+#define RSCAN0GAFLM13HL (RSCAN0.GAFLM13.UINT8[R_IO_HL])
+#define RSCAN0GAFLM13HH (RSCAN0.GAFLM13.UINT8[R_IO_HH])
+#define RSCAN0GAFLP013 (RSCAN0.GAFLP013.UINT32)
+#define RSCAN0GAFLP013L (RSCAN0.GAFLP013.UINT16[R_IO_L])
+#define RSCAN0GAFLP013LL (RSCAN0.GAFLP013.UINT8[R_IO_LL])
+#define RSCAN0GAFLP013LH (RSCAN0.GAFLP013.UINT8[R_IO_LH])
+#define RSCAN0GAFLP013H (RSCAN0.GAFLP013.UINT16[R_IO_H])
+#define RSCAN0GAFLP013HL (RSCAN0.GAFLP013.UINT8[R_IO_HL])
+#define RSCAN0GAFLP013HH (RSCAN0.GAFLP013.UINT8[R_IO_HH])
+#define RSCAN0GAFLP113 (RSCAN0.GAFLP113.UINT32)
+#define RSCAN0GAFLP113L (RSCAN0.GAFLP113.UINT16[R_IO_L])
+#define RSCAN0GAFLP113LL (RSCAN0.GAFLP113.UINT8[R_IO_LL])
+#define RSCAN0GAFLP113LH (RSCAN0.GAFLP113.UINT8[R_IO_LH])
+#define RSCAN0GAFLP113H (RSCAN0.GAFLP113.UINT16[R_IO_H])
+#define RSCAN0GAFLP113HL (RSCAN0.GAFLP113.UINT8[R_IO_HL])
+#define RSCAN0GAFLP113HH (RSCAN0.GAFLP113.UINT8[R_IO_HH])
+#define RSCAN0GAFLID14 (RSCAN0.GAFLID14.UINT32)
+#define RSCAN0GAFLID14L (RSCAN0.GAFLID14.UINT16[R_IO_L])
+#define RSCAN0GAFLID14LL (RSCAN0.GAFLID14.UINT8[R_IO_LL])
+#define RSCAN0GAFLID14LH (RSCAN0.GAFLID14.UINT8[R_IO_LH])
+#define RSCAN0GAFLID14H (RSCAN0.GAFLID14.UINT16[R_IO_H])
+#define RSCAN0GAFLID14HL (RSCAN0.GAFLID14.UINT8[R_IO_HL])
+#define RSCAN0GAFLID14HH (RSCAN0.GAFLID14.UINT8[R_IO_HH])
+#define RSCAN0GAFLM14 (RSCAN0.GAFLM14.UINT32)
+#define RSCAN0GAFLM14L (RSCAN0.GAFLM14.UINT16[R_IO_L])
+#define RSCAN0GAFLM14LL (RSCAN0.GAFLM14.UINT8[R_IO_LL])
+#define RSCAN0GAFLM14LH (RSCAN0.GAFLM14.UINT8[R_IO_LH])
+#define RSCAN0GAFLM14H (RSCAN0.GAFLM14.UINT16[R_IO_H])
+#define RSCAN0GAFLM14HL (RSCAN0.GAFLM14.UINT8[R_IO_HL])
+#define RSCAN0GAFLM14HH (RSCAN0.GAFLM14.UINT8[R_IO_HH])
+#define RSCAN0GAFLP014 (RSCAN0.GAFLP014.UINT32)
+#define RSCAN0GAFLP014L (RSCAN0.GAFLP014.UINT16[R_IO_L])
+#define RSCAN0GAFLP014LL (RSCAN0.GAFLP014.UINT8[R_IO_LL])
+#define RSCAN0GAFLP014LH (RSCAN0.GAFLP014.UINT8[R_IO_LH])
+#define RSCAN0GAFLP014H (RSCAN0.GAFLP014.UINT16[R_IO_H])
+#define RSCAN0GAFLP014HL (RSCAN0.GAFLP014.UINT8[R_IO_HL])
+#define RSCAN0GAFLP014HH (RSCAN0.GAFLP014.UINT8[R_IO_HH])
+#define RSCAN0GAFLP114 (RSCAN0.GAFLP114.UINT32)
+#define RSCAN0GAFLP114L (RSCAN0.GAFLP114.UINT16[R_IO_L])
+#define RSCAN0GAFLP114LL (RSCAN0.GAFLP114.UINT8[R_IO_LL])
+#define RSCAN0GAFLP114LH (RSCAN0.GAFLP114.UINT8[R_IO_LH])
+#define RSCAN0GAFLP114H (RSCAN0.GAFLP114.UINT16[R_IO_H])
+#define RSCAN0GAFLP114HL (RSCAN0.GAFLP114.UINT8[R_IO_HL])
+#define RSCAN0GAFLP114HH (RSCAN0.GAFLP114.UINT8[R_IO_HH])
+#define RSCAN0GAFLID15 (RSCAN0.GAFLID15.UINT32)
+#define RSCAN0GAFLID15L (RSCAN0.GAFLID15.UINT16[R_IO_L])
+#define RSCAN0GAFLID15LL (RSCAN0.GAFLID15.UINT8[R_IO_LL])
+#define RSCAN0GAFLID15LH (RSCAN0.GAFLID15.UINT8[R_IO_LH])
+#define RSCAN0GAFLID15H (RSCAN0.GAFLID15.UINT16[R_IO_H])
+#define RSCAN0GAFLID15HL (RSCAN0.GAFLID15.UINT8[R_IO_HL])
+#define RSCAN0GAFLID15HH (RSCAN0.GAFLID15.UINT8[R_IO_HH])
+#define RSCAN0GAFLM15 (RSCAN0.GAFLM15.UINT32)
+#define RSCAN0GAFLM15L (RSCAN0.GAFLM15.UINT16[R_IO_L])
+#define RSCAN0GAFLM15LL (RSCAN0.GAFLM15.UINT8[R_IO_LL])
+#define RSCAN0GAFLM15LH (RSCAN0.GAFLM15.UINT8[R_IO_LH])
+#define RSCAN0GAFLM15H (RSCAN0.GAFLM15.UINT16[R_IO_H])
+#define RSCAN0GAFLM15HL (RSCAN0.GAFLM15.UINT8[R_IO_HL])
+#define RSCAN0GAFLM15HH (RSCAN0.GAFLM15.UINT8[R_IO_HH])
+#define RSCAN0GAFLP015 (RSCAN0.GAFLP015.UINT32)
+#define RSCAN0GAFLP015L (RSCAN0.GAFLP015.UINT16[R_IO_L])
+#define RSCAN0GAFLP015LL (RSCAN0.GAFLP015.UINT8[R_IO_LL])
+#define RSCAN0GAFLP015LH (RSCAN0.GAFLP015.UINT8[R_IO_LH])
+#define RSCAN0GAFLP015H (RSCAN0.GAFLP015.UINT16[R_IO_H])
+#define RSCAN0GAFLP015HL (RSCAN0.GAFLP015.UINT8[R_IO_HL])
+#define RSCAN0GAFLP015HH (RSCAN0.GAFLP015.UINT8[R_IO_HH])
+#define RSCAN0GAFLP115 (RSCAN0.GAFLP115.UINT32)
+#define RSCAN0GAFLP115L (RSCAN0.GAFLP115.UINT16[R_IO_L])
+#define RSCAN0GAFLP115LL (RSCAN0.GAFLP115.UINT8[R_IO_LL])
+#define RSCAN0GAFLP115LH (RSCAN0.GAFLP115.UINT8[R_IO_LH])
+#define RSCAN0GAFLP115H (RSCAN0.GAFLP115.UINT16[R_IO_H])
+#define RSCAN0GAFLP115HL (RSCAN0.GAFLP115.UINT8[R_IO_HL])
+#define RSCAN0GAFLP115HH (RSCAN0.GAFLP115.UINT8[R_IO_HH])
+#define RSCAN0RMID0 (RSCAN0.RMID0.UINT32)
+#define RSCAN0RMID0L (RSCAN0.RMID0.UINT16[R_IO_L])
+#define RSCAN0RMID0LL (RSCAN0.RMID0.UINT8[R_IO_LL])
+#define RSCAN0RMID0LH (RSCAN0.RMID0.UINT8[R_IO_LH])
+#define RSCAN0RMID0H (RSCAN0.RMID0.UINT16[R_IO_H])
+#define RSCAN0RMID0HL (RSCAN0.RMID0.UINT8[R_IO_HL])
+#define RSCAN0RMID0HH (RSCAN0.RMID0.UINT8[R_IO_HH])
+#define RSCAN0RMPTR0 (RSCAN0.RMPTR0.UINT32)
+#define RSCAN0RMPTR0L (RSCAN0.RMPTR0.UINT16[R_IO_L])
+#define RSCAN0RMPTR0LL (RSCAN0.RMPTR0.UINT8[R_IO_LL])
+#define RSCAN0RMPTR0LH (RSCAN0.RMPTR0.UINT8[R_IO_LH])
+#define RSCAN0RMPTR0H (RSCAN0.RMPTR0.UINT16[R_IO_H])
+#define RSCAN0RMPTR0HL (RSCAN0.RMPTR0.UINT8[R_IO_HL])
+#define RSCAN0RMPTR0HH (RSCAN0.RMPTR0.UINT8[R_IO_HH])
+#define RSCAN0RMDF00 (RSCAN0.RMDF00.UINT32)
+#define RSCAN0RMDF00L (RSCAN0.RMDF00.UINT16[R_IO_L])
+#define RSCAN0RMDF00LL (RSCAN0.RMDF00.UINT8[R_IO_LL])
+#define RSCAN0RMDF00LH (RSCAN0.RMDF00.UINT8[R_IO_LH])
+#define RSCAN0RMDF00H (RSCAN0.RMDF00.UINT16[R_IO_H])
+#define RSCAN0RMDF00HL (RSCAN0.RMDF00.UINT8[R_IO_HL])
+#define RSCAN0RMDF00HH (RSCAN0.RMDF00.UINT8[R_IO_HH])
+#define RSCAN0RMDF10 (RSCAN0.RMDF10.UINT32)
+#define RSCAN0RMDF10L (RSCAN0.RMDF10.UINT16[R_IO_L])
+#define RSCAN0RMDF10LL (RSCAN0.RMDF10.UINT8[R_IO_LL])
+#define RSCAN0RMDF10LH (RSCAN0.RMDF10.UINT8[R_IO_LH])
+#define RSCAN0RMDF10H (RSCAN0.RMDF10.UINT16[R_IO_H])
+#define RSCAN0RMDF10HL (RSCAN0.RMDF10.UINT8[R_IO_HL])
+#define RSCAN0RMDF10HH (RSCAN0.RMDF10.UINT8[R_IO_HH])
+#define RSCAN0RMID1 (RSCAN0.RMID1.UINT32)
+#define RSCAN0RMID1L (RSCAN0.RMID1.UINT16[R_IO_L])
+#define RSCAN0RMID1LL (RSCAN0.RMID1.UINT8[R_IO_LL])
+#define RSCAN0RMID1LH (RSCAN0.RMID1.UINT8[R_IO_LH])
+#define RSCAN0RMID1H (RSCAN0.RMID1.UINT16[R_IO_H])
+#define RSCAN0RMID1HL (RSCAN0.RMID1.UINT8[R_IO_HL])
+#define RSCAN0RMID1HH (RSCAN0.RMID1.UINT8[R_IO_HH])
+#define RSCAN0RMPTR1 (RSCAN0.RMPTR1.UINT32)
+#define RSCAN0RMPTR1L (RSCAN0.RMPTR1.UINT16[R_IO_L])
+#define RSCAN0RMPTR1LL (RSCAN0.RMPTR1.UINT8[R_IO_LL])
+#define RSCAN0RMPTR1LH (RSCAN0.RMPTR1.UINT8[R_IO_LH])
+#define RSCAN0RMPTR1H (RSCAN0.RMPTR1.UINT16[R_IO_H])
+#define RSCAN0RMPTR1HL (RSCAN0.RMPTR1.UINT8[R_IO_HL])
+#define RSCAN0RMPTR1HH (RSCAN0.RMPTR1.UINT8[R_IO_HH])
+#define RSCAN0RMDF01 (RSCAN0.RMDF01.UINT32)
+#define RSCAN0RMDF01L (RSCAN0.RMDF01.UINT16[R_IO_L])
+#define RSCAN0RMDF01LL (RSCAN0.RMDF01.UINT8[R_IO_LL])
+#define RSCAN0RMDF01LH (RSCAN0.RMDF01.UINT8[R_IO_LH])
+#define RSCAN0RMDF01H (RSCAN0.RMDF01.UINT16[R_IO_H])
+#define RSCAN0RMDF01HL (RSCAN0.RMDF01.UINT8[R_IO_HL])
+#define RSCAN0RMDF01HH (RSCAN0.RMDF01.UINT8[R_IO_HH])
+#define RSCAN0RMDF11 (RSCAN0.RMDF11.UINT32)
+#define RSCAN0RMDF11L (RSCAN0.RMDF11.UINT16[R_IO_L])
+#define RSCAN0RMDF11LL (RSCAN0.RMDF11.UINT8[R_IO_LL])
+#define RSCAN0RMDF11LH (RSCAN0.RMDF11.UINT8[R_IO_LH])
+#define RSCAN0RMDF11H (RSCAN0.RMDF11.UINT16[R_IO_H])
+#define RSCAN0RMDF11HL (RSCAN0.RMDF11.UINT8[R_IO_HL])
+#define RSCAN0RMDF11HH (RSCAN0.RMDF11.UINT8[R_IO_HH])
+#define RSCAN0RMID2 (RSCAN0.RMID2.UINT32)
+#define RSCAN0RMID2L (RSCAN0.RMID2.UINT16[R_IO_L])
+#define RSCAN0RMID2LL (RSCAN0.RMID2.UINT8[R_IO_LL])
+#define RSCAN0RMID2LH (RSCAN0.RMID2.UINT8[R_IO_LH])
+#define RSCAN0RMID2H (RSCAN0.RMID2.UINT16[R_IO_H])
+#define RSCAN0RMID2HL (RSCAN0.RMID2.UINT8[R_IO_HL])
+#define RSCAN0RMID2HH (RSCAN0.RMID2.UINT8[R_IO_HH])
+#define RSCAN0RMPTR2 (RSCAN0.RMPTR2.UINT32)
+#define RSCAN0RMPTR2L (RSCAN0.RMPTR2.UINT16[R_IO_L])
+#define RSCAN0RMPTR2LL (RSCAN0.RMPTR2.UINT8[R_IO_LL])
+#define RSCAN0RMPTR2LH (RSCAN0.RMPTR2.UINT8[R_IO_LH])
+#define RSCAN0RMPTR2H (RSCAN0.RMPTR2.UINT16[R_IO_H])
+#define RSCAN0RMPTR2HL (RSCAN0.RMPTR2.UINT8[R_IO_HL])
+#define RSCAN0RMPTR2HH (RSCAN0.RMPTR2.UINT8[R_IO_HH])
+#define RSCAN0RMDF02 (RSCAN0.RMDF02.UINT32)
+#define RSCAN0RMDF02L (RSCAN0.RMDF02.UINT16[R_IO_L])
+#define RSCAN0RMDF02LL (RSCAN0.RMDF02.UINT8[R_IO_LL])
+#define RSCAN0RMDF02LH (RSCAN0.RMDF02.UINT8[R_IO_LH])
+#define RSCAN0RMDF02H (RSCAN0.RMDF02.UINT16[R_IO_H])
+#define RSCAN0RMDF02HL (RSCAN0.RMDF02.UINT8[R_IO_HL])
+#define RSCAN0RMDF02HH (RSCAN0.RMDF02.UINT8[R_IO_HH])
+#define RSCAN0RMDF12 (RSCAN0.RMDF12.UINT32)
+#define RSCAN0RMDF12L (RSCAN0.RMDF12.UINT16[R_IO_L])
+#define RSCAN0RMDF12LL (RSCAN0.RMDF12.UINT8[R_IO_LL])
+#define RSCAN0RMDF12LH (RSCAN0.RMDF12.UINT8[R_IO_LH])
+#define RSCAN0RMDF12H (RSCAN0.RMDF12.UINT16[R_IO_H])
+#define RSCAN0RMDF12HL (RSCAN0.RMDF12.UINT8[R_IO_HL])
+#define RSCAN0RMDF12HH (RSCAN0.RMDF12.UINT8[R_IO_HH])
+#define RSCAN0RMID3 (RSCAN0.RMID3.UINT32)
+#define RSCAN0RMID3L (RSCAN0.RMID3.UINT16[R_IO_L])
+#define RSCAN0RMID3LL (RSCAN0.RMID3.UINT8[R_IO_LL])
+#define RSCAN0RMID3LH (RSCAN0.RMID3.UINT8[R_IO_LH])
+#define RSCAN0RMID3H (RSCAN0.RMID3.UINT16[R_IO_H])
+#define RSCAN0RMID3HL (RSCAN0.RMID3.UINT8[R_IO_HL])
+#define RSCAN0RMID3HH (RSCAN0.RMID3.UINT8[R_IO_HH])
+#define RSCAN0RMPTR3 (RSCAN0.RMPTR3.UINT32)
+#define RSCAN0RMPTR3L (RSCAN0.RMPTR3.UINT16[R_IO_L])
+#define RSCAN0RMPTR3LL (RSCAN0.RMPTR3.UINT8[R_IO_LL])
+#define RSCAN0RMPTR3LH (RSCAN0.RMPTR3.UINT8[R_IO_LH])
+#define RSCAN0RMPTR3H (RSCAN0.RMPTR3.UINT16[R_IO_H])
+#define RSCAN0RMPTR3HL (RSCAN0.RMPTR3.UINT8[R_IO_HL])
+#define RSCAN0RMPTR3HH (RSCAN0.RMPTR3.UINT8[R_IO_HH])
+#define RSCAN0RMDF03 (RSCAN0.RMDF03.UINT32)
+#define RSCAN0RMDF03L (RSCAN0.RMDF03.UINT16[R_IO_L])
+#define RSCAN0RMDF03LL (RSCAN0.RMDF03.UINT8[R_IO_LL])
+#define RSCAN0RMDF03LH (RSCAN0.RMDF03.UINT8[R_IO_LH])
+#define RSCAN0RMDF03H (RSCAN0.RMDF03.UINT16[R_IO_H])
+#define RSCAN0RMDF03HL (RSCAN0.RMDF03.UINT8[R_IO_HL])
+#define RSCAN0RMDF03HH (RSCAN0.RMDF03.UINT8[R_IO_HH])
+#define RSCAN0RMDF13 (RSCAN0.RMDF13.UINT32)
+#define RSCAN0RMDF13L (RSCAN0.RMDF13.UINT16[R_IO_L])
+#define RSCAN0RMDF13LL (RSCAN0.RMDF13.UINT8[R_IO_LL])
+#define RSCAN0RMDF13LH (RSCAN0.RMDF13.UINT8[R_IO_LH])
+#define RSCAN0RMDF13H (RSCAN0.RMDF13.UINT16[R_IO_H])
+#define RSCAN0RMDF13HL (RSCAN0.RMDF13.UINT8[R_IO_HL])
+#define RSCAN0RMDF13HH (RSCAN0.RMDF13.UINT8[R_IO_HH])
+#define RSCAN0RMID4 (RSCAN0.RMID4.UINT32)
+#define RSCAN0RMID4L (RSCAN0.RMID4.UINT16[R_IO_L])
+#define RSCAN0RMID4LL (RSCAN0.RMID4.UINT8[R_IO_LL])
+#define RSCAN0RMID4LH (RSCAN0.RMID4.UINT8[R_IO_LH])
+#define RSCAN0RMID4H (RSCAN0.RMID4.UINT16[R_IO_H])
+#define RSCAN0RMID4HL (RSCAN0.RMID4.UINT8[R_IO_HL])
+#define RSCAN0RMID4HH (RSCAN0.RMID4.UINT8[R_IO_HH])
+#define RSCAN0RMPTR4 (RSCAN0.RMPTR4.UINT32)
+#define RSCAN0RMPTR4L (RSCAN0.RMPTR4.UINT16[R_IO_L])
+#define RSCAN0RMPTR4LL (RSCAN0.RMPTR4.UINT8[R_IO_LL])
+#define RSCAN0RMPTR4LH (RSCAN0.RMPTR4.UINT8[R_IO_LH])
+#define RSCAN0RMPTR4H (RSCAN0.RMPTR4.UINT16[R_IO_H])
+#define RSCAN0RMPTR4HL (RSCAN0.RMPTR4.UINT8[R_IO_HL])
+#define RSCAN0RMPTR4HH (RSCAN0.RMPTR4.UINT8[R_IO_HH])
+#define RSCAN0RMDF04 (RSCAN0.RMDF04.UINT32)
+#define RSCAN0RMDF04L (RSCAN0.RMDF04.UINT16[R_IO_L])
+#define RSCAN0RMDF04LL (RSCAN0.RMDF04.UINT8[R_IO_LL])
+#define RSCAN0RMDF04LH (RSCAN0.RMDF04.UINT8[R_IO_LH])
+#define RSCAN0RMDF04H (RSCAN0.RMDF04.UINT16[R_IO_H])
+#define RSCAN0RMDF04HL (RSCAN0.RMDF04.UINT8[R_IO_HL])
+#define RSCAN0RMDF04HH (RSCAN0.RMDF04.UINT8[R_IO_HH])
+#define RSCAN0RMDF14 (RSCAN0.RMDF14.UINT32)
+#define RSCAN0RMDF14L (RSCAN0.RMDF14.UINT16[R_IO_L])
+#define RSCAN0RMDF14LL (RSCAN0.RMDF14.UINT8[R_IO_LL])
+#define RSCAN0RMDF14LH (RSCAN0.RMDF14.UINT8[R_IO_LH])
+#define RSCAN0RMDF14H (RSCAN0.RMDF14.UINT16[R_IO_H])
+#define RSCAN0RMDF14HL (RSCAN0.RMDF14.UINT8[R_IO_HL])
+#define RSCAN0RMDF14HH (RSCAN0.RMDF14.UINT8[R_IO_HH])
+#define RSCAN0RMID5 (RSCAN0.RMID5.UINT32)
+#define RSCAN0RMID5L (RSCAN0.RMID5.UINT16[R_IO_L])
+#define RSCAN0RMID5LL (RSCAN0.RMID5.UINT8[R_IO_LL])
+#define RSCAN0RMID5LH (RSCAN0.RMID5.UINT8[R_IO_LH])
+#define RSCAN0RMID5H (RSCAN0.RMID5.UINT16[R_IO_H])
+#define RSCAN0RMID5HL (RSCAN0.RMID5.UINT8[R_IO_HL])
+#define RSCAN0RMID5HH (RSCAN0.RMID5.UINT8[R_IO_HH])
+#define RSCAN0RMPTR5 (RSCAN0.RMPTR5.UINT32)
+#define RSCAN0RMPTR5L (RSCAN0.RMPTR5.UINT16[R_IO_L])
+#define RSCAN0RMPTR5LL (RSCAN0.RMPTR5.UINT8[R_IO_LL])
+#define RSCAN0RMPTR5LH (RSCAN0.RMPTR5.UINT8[R_IO_LH])
+#define RSCAN0RMPTR5H (RSCAN0.RMPTR5.UINT16[R_IO_H])
+#define RSCAN0RMPTR5HL (RSCAN0.RMPTR5.UINT8[R_IO_HL])
+#define RSCAN0RMPTR5HH (RSCAN0.RMPTR5.UINT8[R_IO_HH])
+#define RSCAN0RMDF05 (RSCAN0.RMDF05.UINT32)
+#define RSCAN0RMDF05L (RSCAN0.RMDF05.UINT16[R_IO_L])
+#define RSCAN0RMDF05LL (RSCAN0.RMDF05.UINT8[R_IO_LL])
+#define RSCAN0RMDF05LH (RSCAN0.RMDF05.UINT8[R_IO_LH])
+#define RSCAN0RMDF05H (RSCAN0.RMDF05.UINT16[R_IO_H])
+#define RSCAN0RMDF05HL (RSCAN0.RMDF05.UINT8[R_IO_HL])
+#define RSCAN0RMDF05HH (RSCAN0.RMDF05.UINT8[R_IO_HH])
+#define RSCAN0RMDF15 (RSCAN0.RMDF15.UINT32)
+#define RSCAN0RMDF15L (RSCAN0.RMDF15.UINT16[R_IO_L])
+#define RSCAN0RMDF15LL (RSCAN0.RMDF15.UINT8[R_IO_LL])
+#define RSCAN0RMDF15LH (RSCAN0.RMDF15.UINT8[R_IO_LH])
+#define RSCAN0RMDF15H (RSCAN0.RMDF15.UINT16[R_IO_H])
+#define RSCAN0RMDF15HL (RSCAN0.RMDF15.UINT8[R_IO_HL])
+#define RSCAN0RMDF15HH (RSCAN0.RMDF15.UINT8[R_IO_HH])
+#define RSCAN0RMID6 (RSCAN0.RMID6.UINT32)
+#define RSCAN0RMID6L (RSCAN0.RMID6.UINT16[R_IO_L])
+#define RSCAN0RMID6LL (RSCAN0.RMID6.UINT8[R_IO_LL])
+#define RSCAN0RMID6LH (RSCAN0.RMID6.UINT8[R_IO_LH])
+#define RSCAN0RMID6H (RSCAN0.RMID6.UINT16[R_IO_H])
+#define RSCAN0RMID6HL (RSCAN0.RMID6.UINT8[R_IO_HL])
+#define RSCAN0RMID6HH (RSCAN0.RMID6.UINT8[R_IO_HH])
+#define RSCAN0RMPTR6 (RSCAN0.RMPTR6.UINT32)
+#define RSCAN0RMPTR6L (RSCAN0.RMPTR6.UINT16[R_IO_L])
+#define RSCAN0RMPTR6LL (RSCAN0.RMPTR6.UINT8[R_IO_LL])
+#define RSCAN0RMPTR6LH (RSCAN0.RMPTR6.UINT8[R_IO_LH])
+#define RSCAN0RMPTR6H (RSCAN0.RMPTR6.UINT16[R_IO_H])
+#define RSCAN0RMPTR6HL (RSCAN0.RMPTR6.UINT8[R_IO_HL])
+#define RSCAN0RMPTR6HH (RSCAN0.RMPTR6.UINT8[R_IO_HH])
+#define RSCAN0RMDF06 (RSCAN0.RMDF06.UINT32)
+#define RSCAN0RMDF06L (RSCAN0.RMDF06.UINT16[R_IO_L])
+#define RSCAN0RMDF06LL (RSCAN0.RMDF06.UINT8[R_IO_LL])
+#define RSCAN0RMDF06LH (RSCAN0.RMDF06.UINT8[R_IO_LH])
+#define RSCAN0RMDF06H (RSCAN0.RMDF06.UINT16[R_IO_H])
+#define RSCAN0RMDF06HL (RSCAN0.RMDF06.UINT8[R_IO_HL])
+#define RSCAN0RMDF06HH (RSCAN0.RMDF06.UINT8[R_IO_HH])
+#define RSCAN0RMDF16 (RSCAN0.RMDF16.UINT32)
+#define RSCAN0RMDF16L (RSCAN0.RMDF16.UINT16[R_IO_L])
+#define RSCAN0RMDF16LL (RSCAN0.RMDF16.UINT8[R_IO_LL])
+#define RSCAN0RMDF16LH (RSCAN0.RMDF16.UINT8[R_IO_LH])
+#define RSCAN0RMDF16H (RSCAN0.RMDF16.UINT16[R_IO_H])
+#define RSCAN0RMDF16HL (RSCAN0.RMDF16.UINT8[R_IO_HL])
+#define RSCAN0RMDF16HH (RSCAN0.RMDF16.UINT8[R_IO_HH])
+#define RSCAN0RMID7 (RSCAN0.RMID7.UINT32)
+#define RSCAN0RMID7L (RSCAN0.RMID7.UINT16[R_IO_L])
+#define RSCAN0RMID7LL (RSCAN0.RMID7.UINT8[R_IO_LL])
+#define RSCAN0RMID7LH (RSCAN0.RMID7.UINT8[R_IO_LH])
+#define RSCAN0RMID7H (RSCAN0.RMID7.UINT16[R_IO_H])
+#define RSCAN0RMID7HL (RSCAN0.RMID7.UINT8[R_IO_HL])
+#define RSCAN0RMID7HH (RSCAN0.RMID7.UINT8[R_IO_HH])
+#define RSCAN0RMPTR7 (RSCAN0.RMPTR7.UINT32)
+#define RSCAN0RMPTR7L (RSCAN0.RMPTR7.UINT16[R_IO_L])
+#define RSCAN0RMPTR7LL (RSCAN0.RMPTR7.UINT8[R_IO_LL])
+#define RSCAN0RMPTR7LH (RSCAN0.RMPTR7.UINT8[R_IO_LH])
+#define RSCAN0RMPTR7H (RSCAN0.RMPTR7.UINT16[R_IO_H])
+#define RSCAN0RMPTR7HL (RSCAN0.RMPTR7.UINT8[R_IO_HL])
+#define RSCAN0RMPTR7HH (RSCAN0.RMPTR7.UINT8[R_IO_HH])
+#define RSCAN0RMDF07 (RSCAN0.RMDF07.UINT32)
+#define RSCAN0RMDF07L (RSCAN0.RMDF07.UINT16[R_IO_L])
+#define RSCAN0RMDF07LL (RSCAN0.RMDF07.UINT8[R_IO_LL])
+#define RSCAN0RMDF07LH (RSCAN0.RMDF07.UINT8[R_IO_LH])
+#define RSCAN0RMDF07H (RSCAN0.RMDF07.UINT16[R_IO_H])
+#define RSCAN0RMDF07HL (RSCAN0.RMDF07.UINT8[R_IO_HL])
+#define RSCAN0RMDF07HH (RSCAN0.RMDF07.UINT8[R_IO_HH])
+#define RSCAN0RMDF17 (RSCAN0.RMDF17.UINT32)
+#define RSCAN0RMDF17L (RSCAN0.RMDF17.UINT16[R_IO_L])
+#define RSCAN0RMDF17LL (RSCAN0.RMDF17.UINT8[R_IO_LL])
+#define RSCAN0RMDF17LH (RSCAN0.RMDF17.UINT8[R_IO_LH])
+#define RSCAN0RMDF17H (RSCAN0.RMDF17.UINT16[R_IO_H])
+#define RSCAN0RMDF17HL (RSCAN0.RMDF17.UINT8[R_IO_HL])
+#define RSCAN0RMDF17HH (RSCAN0.RMDF17.UINT8[R_IO_HH])
+#define RSCAN0RMID8 (RSCAN0.RMID8.UINT32)
+#define RSCAN0RMID8L (RSCAN0.RMID8.UINT16[R_IO_L])
+#define RSCAN0RMID8LL (RSCAN0.RMID8.UINT8[R_IO_LL])
+#define RSCAN0RMID8LH (RSCAN0.RMID8.UINT8[R_IO_LH])
+#define RSCAN0RMID8H (RSCAN0.RMID8.UINT16[R_IO_H])
+#define RSCAN0RMID8HL (RSCAN0.RMID8.UINT8[R_IO_HL])
+#define RSCAN0RMID8HH (RSCAN0.RMID8.UINT8[R_IO_HH])
+#define RSCAN0RMPTR8 (RSCAN0.RMPTR8.UINT32)
+#define RSCAN0RMPTR8L (RSCAN0.RMPTR8.UINT16[R_IO_L])
+#define RSCAN0RMPTR8LL (RSCAN0.RMPTR8.UINT8[R_IO_LL])
+#define RSCAN0RMPTR8LH (RSCAN0.RMPTR8.UINT8[R_IO_LH])
+#define RSCAN0RMPTR8H (RSCAN0.RMPTR8.UINT16[R_IO_H])
+#define RSCAN0RMPTR8HL (RSCAN0.RMPTR8.UINT8[R_IO_HL])
+#define RSCAN0RMPTR8HH (RSCAN0.RMPTR8.UINT8[R_IO_HH])
+#define RSCAN0RMDF08 (RSCAN0.RMDF08.UINT32)
+#define RSCAN0RMDF08L (RSCAN0.RMDF08.UINT16[R_IO_L])
+#define RSCAN0RMDF08LL (RSCAN0.RMDF08.UINT8[R_IO_LL])
+#define RSCAN0RMDF08LH (RSCAN0.RMDF08.UINT8[R_IO_LH])
+#define RSCAN0RMDF08H (RSCAN0.RMDF08.UINT16[R_IO_H])
+#define RSCAN0RMDF08HL (RSCAN0.RMDF08.UINT8[R_IO_HL])
+#define RSCAN0RMDF08HH (RSCAN0.RMDF08.UINT8[R_IO_HH])
+#define RSCAN0RMDF18 (RSCAN0.RMDF18.UINT32)
+#define RSCAN0RMDF18L (RSCAN0.RMDF18.UINT16[R_IO_L])
+#define RSCAN0RMDF18LL (RSCAN0.RMDF18.UINT8[R_IO_LL])
+#define RSCAN0RMDF18LH (RSCAN0.RMDF18.UINT8[R_IO_LH])
+#define RSCAN0RMDF18H (RSCAN0.RMDF18.UINT16[R_IO_H])
+#define RSCAN0RMDF18HL (RSCAN0.RMDF18.UINT8[R_IO_HL])
+#define RSCAN0RMDF18HH (RSCAN0.RMDF18.UINT8[R_IO_HH])
+#define RSCAN0RMID9 (RSCAN0.RMID9.UINT32)
+#define RSCAN0RMID9L (RSCAN0.RMID9.UINT16[R_IO_L])
+#define RSCAN0RMID9LL (RSCAN0.RMID9.UINT8[R_IO_LL])
+#define RSCAN0RMID9LH (RSCAN0.RMID9.UINT8[R_IO_LH])
+#define RSCAN0RMID9H (RSCAN0.RMID9.UINT16[R_IO_H])
+#define RSCAN0RMID9HL (RSCAN0.RMID9.UINT8[R_IO_HL])
+#define RSCAN0RMID9HH (RSCAN0.RMID9.UINT8[R_IO_HH])
+#define RSCAN0RMPTR9 (RSCAN0.RMPTR9.UINT32)
+#define RSCAN0RMPTR9L (RSCAN0.RMPTR9.UINT16[R_IO_L])
+#define RSCAN0RMPTR9LL (RSCAN0.RMPTR9.UINT8[R_IO_LL])
+#define RSCAN0RMPTR9LH (RSCAN0.RMPTR9.UINT8[R_IO_LH])
+#define RSCAN0RMPTR9H (RSCAN0.RMPTR9.UINT16[R_IO_H])
+#define RSCAN0RMPTR9HL (RSCAN0.RMPTR9.UINT8[R_IO_HL])
+#define RSCAN0RMPTR9HH (RSCAN0.RMPTR9.UINT8[R_IO_HH])
+#define RSCAN0RMDF09 (RSCAN0.RMDF09.UINT32)
+#define RSCAN0RMDF09L (RSCAN0.RMDF09.UINT16[R_IO_L])
+#define RSCAN0RMDF09LL (RSCAN0.RMDF09.UINT8[R_IO_LL])
+#define RSCAN0RMDF09LH (RSCAN0.RMDF09.UINT8[R_IO_LH])
+#define RSCAN0RMDF09H (RSCAN0.RMDF09.UINT16[R_IO_H])
+#define RSCAN0RMDF09HL (RSCAN0.RMDF09.UINT8[R_IO_HL])
+#define RSCAN0RMDF09HH (RSCAN0.RMDF09.UINT8[R_IO_HH])
+#define RSCAN0RMDF19 (RSCAN0.RMDF19.UINT32)
+#define RSCAN0RMDF19L (RSCAN0.RMDF19.UINT16[R_IO_L])
+#define RSCAN0RMDF19LL (RSCAN0.RMDF19.UINT8[R_IO_LL])
+#define RSCAN0RMDF19LH (RSCAN0.RMDF19.UINT8[R_IO_LH])
+#define RSCAN0RMDF19H (RSCAN0.RMDF19.UINT16[R_IO_H])
+#define RSCAN0RMDF19HL (RSCAN0.RMDF19.UINT8[R_IO_HL])
+#define RSCAN0RMDF19HH (RSCAN0.RMDF19.UINT8[R_IO_HH])
+#define RSCAN0RMID10 (RSCAN0.RMID10.UINT32)
+#define RSCAN0RMID10L (RSCAN0.RMID10.UINT16[R_IO_L])
+#define RSCAN0RMID10LL (RSCAN0.RMID10.UINT8[R_IO_LL])
+#define RSCAN0RMID10LH (RSCAN0.RMID10.UINT8[R_IO_LH])
+#define RSCAN0RMID10H (RSCAN0.RMID10.UINT16[R_IO_H])
+#define RSCAN0RMID10HL (RSCAN0.RMID10.UINT8[R_IO_HL])
+#define RSCAN0RMID10HH (RSCAN0.RMID10.UINT8[R_IO_HH])
+#define RSCAN0RMPTR10 (RSCAN0.RMPTR10.UINT32)
+#define RSCAN0RMPTR10L (RSCAN0.RMPTR10.UINT16[R_IO_L])
+#define RSCAN0RMPTR10LL (RSCAN0.RMPTR10.UINT8[R_IO_LL])
+#define RSCAN0RMPTR10LH (RSCAN0.RMPTR10.UINT8[R_IO_LH])
+#define RSCAN0RMPTR10H (RSCAN0.RMPTR10.UINT16[R_IO_H])
+#define RSCAN0RMPTR10HL (RSCAN0.RMPTR10.UINT8[R_IO_HL])
+#define RSCAN0RMPTR10HH (RSCAN0.RMPTR10.UINT8[R_IO_HH])
+#define RSCAN0RMDF010 (RSCAN0.RMDF010.UINT32)
+#define RSCAN0RMDF010L (RSCAN0.RMDF010.UINT16[R_IO_L])
+#define RSCAN0RMDF010LL (RSCAN0.RMDF010.UINT8[R_IO_LL])
+#define RSCAN0RMDF010LH (RSCAN0.RMDF010.UINT8[R_IO_LH])
+#define RSCAN0RMDF010H (RSCAN0.RMDF010.UINT16[R_IO_H])
+#define RSCAN0RMDF010HL (RSCAN0.RMDF010.UINT8[R_IO_HL])
+#define RSCAN0RMDF010HH (RSCAN0.RMDF010.UINT8[R_IO_HH])
+#define RSCAN0RMDF110 (RSCAN0.RMDF110.UINT32)
+#define RSCAN0RMDF110L (RSCAN0.RMDF110.UINT16[R_IO_L])
+#define RSCAN0RMDF110LL (RSCAN0.RMDF110.UINT8[R_IO_LL])
+#define RSCAN0RMDF110LH (RSCAN0.RMDF110.UINT8[R_IO_LH])
+#define RSCAN0RMDF110H (RSCAN0.RMDF110.UINT16[R_IO_H])
+#define RSCAN0RMDF110HL (RSCAN0.RMDF110.UINT8[R_IO_HL])
+#define RSCAN0RMDF110HH (RSCAN0.RMDF110.UINT8[R_IO_HH])
+#define RSCAN0RMID11 (RSCAN0.RMID11.UINT32)
+#define RSCAN0RMID11L (RSCAN0.RMID11.UINT16[R_IO_L])
+#define RSCAN0RMID11LL (RSCAN0.RMID11.UINT8[R_IO_LL])
+#define RSCAN0RMID11LH (RSCAN0.RMID11.UINT8[R_IO_LH])
+#define RSCAN0RMID11H (RSCAN0.RMID11.UINT16[R_IO_H])
+#define RSCAN0RMID11HL (RSCAN0.RMID11.UINT8[R_IO_HL])
+#define RSCAN0RMID11HH (RSCAN0.RMID11.UINT8[R_IO_HH])
+#define RSCAN0RMPTR11 (RSCAN0.RMPTR11.UINT32)
+#define RSCAN0RMPTR11L (RSCAN0.RMPTR11.UINT16[R_IO_L])
+#define RSCAN0RMPTR11LL (RSCAN0.RMPTR11.UINT8[R_IO_LL])
+#define RSCAN0RMPTR11LH (RSCAN0.RMPTR11.UINT8[R_IO_LH])
+#define RSCAN0RMPTR11H (RSCAN0.RMPTR11.UINT16[R_IO_H])
+#define RSCAN0RMPTR11HL (RSCAN0.RMPTR11.UINT8[R_IO_HL])
+#define RSCAN0RMPTR11HH (RSCAN0.RMPTR11.UINT8[R_IO_HH])
+#define RSCAN0RMDF011 (RSCAN0.RMDF011.UINT32)
+#define RSCAN0RMDF011L (RSCAN0.RMDF011.UINT16[R_IO_L])
+#define RSCAN0RMDF011LL (RSCAN0.RMDF011.UINT8[R_IO_LL])
+#define RSCAN0RMDF011LH (RSCAN0.RMDF011.UINT8[R_IO_LH])
+#define RSCAN0RMDF011H (RSCAN0.RMDF011.UINT16[R_IO_H])
+#define RSCAN0RMDF011HL (RSCAN0.RMDF011.UINT8[R_IO_HL])
+#define RSCAN0RMDF011HH (RSCAN0.RMDF011.UINT8[R_IO_HH])
+#define RSCAN0RMDF111 (RSCAN0.RMDF111.UINT32)
+#define RSCAN0RMDF111L (RSCAN0.RMDF111.UINT16[R_IO_L])
+#define RSCAN0RMDF111LL (RSCAN0.RMDF111.UINT8[R_IO_LL])
+#define RSCAN0RMDF111LH (RSCAN0.RMDF111.UINT8[R_IO_LH])
+#define RSCAN0RMDF111H (RSCAN0.RMDF111.UINT16[R_IO_H])
+#define RSCAN0RMDF111HL (RSCAN0.RMDF111.UINT8[R_IO_HL])
+#define RSCAN0RMDF111HH (RSCAN0.RMDF111.UINT8[R_IO_HH])
+#define RSCAN0RMID12 (RSCAN0.RMID12.UINT32)
+#define RSCAN0RMID12L (RSCAN0.RMID12.UINT16[R_IO_L])
+#define RSCAN0RMID12LL (RSCAN0.RMID12.UINT8[R_IO_LL])
+#define RSCAN0RMID12LH (RSCAN0.RMID12.UINT8[R_IO_LH])
+#define RSCAN0RMID12H (RSCAN0.RMID12.UINT16[R_IO_H])
+#define RSCAN0RMID12HL (RSCAN0.RMID12.UINT8[R_IO_HL])
+#define RSCAN0RMID12HH (RSCAN0.RMID12.UINT8[R_IO_HH])
+#define RSCAN0RMPTR12 (RSCAN0.RMPTR12.UINT32)
+#define RSCAN0RMPTR12L (RSCAN0.RMPTR12.UINT16[R_IO_L])
+#define RSCAN0RMPTR12LL (RSCAN0.RMPTR12.UINT8[R_IO_LL])
+#define RSCAN0RMPTR12LH (RSCAN0.RMPTR12.UINT8[R_IO_LH])
+#define RSCAN0RMPTR12H (RSCAN0.RMPTR12.UINT16[R_IO_H])
+#define RSCAN0RMPTR12HL (RSCAN0.RMPTR12.UINT8[R_IO_HL])
+#define RSCAN0RMPTR12HH (RSCAN0.RMPTR12.UINT8[R_IO_HH])
+#define RSCAN0RMDF012 (RSCAN0.RMDF012.UINT32)
+#define RSCAN0RMDF012L (RSCAN0.RMDF012.UINT16[R_IO_L])
+#define RSCAN0RMDF012LL (RSCAN0.RMDF012.UINT8[R_IO_LL])
+#define RSCAN0RMDF012LH (RSCAN0.RMDF012.UINT8[R_IO_LH])
+#define RSCAN0RMDF012H (RSCAN0.RMDF012.UINT16[R_IO_H])
+#define RSCAN0RMDF012HL (RSCAN0.RMDF012.UINT8[R_IO_HL])
+#define RSCAN0RMDF012HH (RSCAN0.RMDF012.UINT8[R_IO_HH])
+#define RSCAN0RMDF112 (RSCAN0.RMDF112.UINT32)
+#define RSCAN0RMDF112L (RSCAN0.RMDF112.UINT16[R_IO_L])
+#define RSCAN0RMDF112LL (RSCAN0.RMDF112.UINT8[R_IO_LL])
+#define RSCAN0RMDF112LH (RSCAN0.RMDF112.UINT8[R_IO_LH])
+#define RSCAN0RMDF112H (RSCAN0.RMDF112.UINT16[R_IO_H])
+#define RSCAN0RMDF112HL (RSCAN0.RMDF112.UINT8[R_IO_HL])
+#define RSCAN0RMDF112HH (RSCAN0.RMDF112.UINT8[R_IO_HH])
+#define RSCAN0RMID13 (RSCAN0.RMID13.UINT32)
+#define RSCAN0RMID13L (RSCAN0.RMID13.UINT16[R_IO_L])
+#define RSCAN0RMID13LL (RSCAN0.RMID13.UINT8[R_IO_LL])
+#define RSCAN0RMID13LH (RSCAN0.RMID13.UINT8[R_IO_LH])
+#define RSCAN0RMID13H (RSCAN0.RMID13.UINT16[R_IO_H])
+#define RSCAN0RMID13HL (RSCAN0.RMID13.UINT8[R_IO_HL])
+#define RSCAN0RMID13HH (RSCAN0.RMID13.UINT8[R_IO_HH])
+#define RSCAN0RMPTR13 (RSCAN0.RMPTR13.UINT32)
+#define RSCAN0RMPTR13L (RSCAN0.RMPTR13.UINT16[R_IO_L])
+#define RSCAN0RMPTR13LL (RSCAN0.RMPTR13.UINT8[R_IO_LL])
+#define RSCAN0RMPTR13LH (RSCAN0.RMPTR13.UINT8[R_IO_LH])
+#define RSCAN0RMPTR13H (RSCAN0.RMPTR13.UINT16[R_IO_H])
+#define RSCAN0RMPTR13HL (RSCAN0.RMPTR13.UINT8[R_IO_HL])
+#define RSCAN0RMPTR13HH (RSCAN0.RMPTR13.UINT8[R_IO_HH])
+#define RSCAN0RMDF013 (RSCAN0.RMDF013.UINT32)
+#define RSCAN0RMDF013L (RSCAN0.RMDF013.UINT16[R_IO_L])
+#define RSCAN0RMDF013LL (RSCAN0.RMDF013.UINT8[R_IO_LL])
+#define RSCAN0RMDF013LH (RSCAN0.RMDF013.UINT8[R_IO_LH])
+#define RSCAN0RMDF013H (RSCAN0.RMDF013.UINT16[R_IO_H])
+#define RSCAN0RMDF013HL (RSCAN0.RMDF013.UINT8[R_IO_HL])
+#define RSCAN0RMDF013HH (RSCAN0.RMDF013.UINT8[R_IO_HH])
+#define RSCAN0RMDF113 (RSCAN0.RMDF113.UINT32)
+#define RSCAN0RMDF113L (RSCAN0.RMDF113.UINT16[R_IO_L])
+#define RSCAN0RMDF113LL (RSCAN0.RMDF113.UINT8[R_IO_LL])
+#define RSCAN0RMDF113LH (RSCAN0.RMDF113.UINT8[R_IO_LH])
+#define RSCAN0RMDF113H (RSCAN0.RMDF113.UINT16[R_IO_H])
+#define RSCAN0RMDF113HL (RSCAN0.RMDF113.UINT8[R_IO_HL])
+#define RSCAN0RMDF113HH (RSCAN0.RMDF113.UINT8[R_IO_HH])
+#define RSCAN0RMID14 (RSCAN0.RMID14.UINT32)
+#define RSCAN0RMID14L (RSCAN0.RMID14.UINT16[R_IO_L])
+#define RSCAN0RMID14LL (RSCAN0.RMID14.UINT8[R_IO_LL])
+#define RSCAN0RMID14LH (RSCAN0.RMID14.UINT8[R_IO_LH])
+#define RSCAN0RMID14H (RSCAN0.RMID14.UINT16[R_IO_H])
+#define RSCAN0RMID14HL (RSCAN0.RMID14.UINT8[R_IO_HL])
+#define RSCAN0RMID14HH (RSCAN0.RMID14.UINT8[R_IO_HH])
+#define RSCAN0RMPTR14 (RSCAN0.RMPTR14.UINT32)
+#define RSCAN0RMPTR14L (RSCAN0.RMPTR14.UINT16[R_IO_L])
+#define RSCAN0RMPTR14LL (RSCAN0.RMPTR14.UINT8[R_IO_LL])
+#define RSCAN0RMPTR14LH (RSCAN0.RMPTR14.UINT8[R_IO_LH])
+#define RSCAN0RMPTR14H (RSCAN0.RMPTR14.UINT16[R_IO_H])
+#define RSCAN0RMPTR14HL (RSCAN0.RMPTR14.UINT8[R_IO_HL])
+#define RSCAN0RMPTR14HH (RSCAN0.RMPTR14.UINT8[R_IO_HH])
+#define RSCAN0RMDF014 (RSCAN0.RMDF014.UINT32)
+#define RSCAN0RMDF014L (RSCAN0.RMDF014.UINT16[R_IO_L])
+#define RSCAN0RMDF014LL (RSCAN0.RMDF014.UINT8[R_IO_LL])
+#define RSCAN0RMDF014LH (RSCAN0.RMDF014.UINT8[R_IO_LH])
+#define RSCAN0RMDF014H (RSCAN0.RMDF014.UINT16[R_IO_H])
+#define RSCAN0RMDF014HL (RSCAN0.RMDF014.UINT8[R_IO_HL])
+#define RSCAN0RMDF014HH (RSCAN0.RMDF014.UINT8[R_IO_HH])
+#define RSCAN0RMDF114 (RSCAN0.RMDF114.UINT32)
+#define RSCAN0RMDF114L (RSCAN0.RMDF114.UINT16[R_IO_L])
+#define RSCAN0RMDF114LL (RSCAN0.RMDF114.UINT8[R_IO_LL])
+#define RSCAN0RMDF114LH (RSCAN0.RMDF114.UINT8[R_IO_LH])
+#define RSCAN0RMDF114H (RSCAN0.RMDF114.UINT16[R_IO_H])
+#define RSCAN0RMDF114HL (RSCAN0.RMDF114.UINT8[R_IO_HL])
+#define RSCAN0RMDF114HH (RSCAN0.RMDF114.UINT8[R_IO_HH])
+#define RSCAN0RMID15 (RSCAN0.RMID15.UINT32)
+#define RSCAN0RMID15L (RSCAN0.RMID15.UINT16[R_IO_L])
+#define RSCAN0RMID15LL (RSCAN0.RMID15.UINT8[R_IO_LL])
+#define RSCAN0RMID15LH (RSCAN0.RMID15.UINT8[R_IO_LH])
+#define RSCAN0RMID15H (RSCAN0.RMID15.UINT16[R_IO_H])
+#define RSCAN0RMID15HL (RSCAN0.RMID15.UINT8[R_IO_HL])
+#define RSCAN0RMID15HH (RSCAN0.RMID15.UINT8[R_IO_HH])
+#define RSCAN0RMPTR15 (RSCAN0.RMPTR15.UINT32)
+#define RSCAN0RMPTR15L (RSCAN0.RMPTR15.UINT16[R_IO_L])
+#define RSCAN0RMPTR15LL (RSCAN0.RMPTR15.UINT8[R_IO_LL])
+#define RSCAN0RMPTR15LH (RSCAN0.RMPTR15.UINT8[R_IO_LH])
+#define RSCAN0RMPTR15H (RSCAN0.RMPTR15.UINT16[R_IO_H])
+#define RSCAN0RMPTR15HL (RSCAN0.RMPTR15.UINT8[R_IO_HL])
+#define RSCAN0RMPTR15HH (RSCAN0.RMPTR15.UINT8[R_IO_HH])
+#define RSCAN0RMDF015 (RSCAN0.RMDF015.UINT32)
+#define RSCAN0RMDF015L (RSCAN0.RMDF015.UINT16[R_IO_L])
+#define RSCAN0RMDF015LL (RSCAN0.RMDF015.UINT8[R_IO_LL])
+#define RSCAN0RMDF015LH (RSCAN0.RMDF015.UINT8[R_IO_LH])
+#define RSCAN0RMDF015H (RSCAN0.RMDF015.UINT16[R_IO_H])
+#define RSCAN0RMDF015HL (RSCAN0.RMDF015.UINT8[R_IO_HL])
+#define RSCAN0RMDF015HH (RSCAN0.RMDF015.UINT8[R_IO_HH])
+#define RSCAN0RMDF115 (RSCAN0.RMDF115.UINT32)
+#define RSCAN0RMDF115L (RSCAN0.RMDF115.UINT16[R_IO_L])
+#define RSCAN0RMDF115LL (RSCAN0.RMDF115.UINT8[R_IO_LL])
+#define RSCAN0RMDF115LH (RSCAN0.RMDF115.UINT8[R_IO_LH])
+#define RSCAN0RMDF115H (RSCAN0.RMDF115.UINT16[R_IO_H])
+#define RSCAN0RMDF115HL (RSCAN0.RMDF115.UINT8[R_IO_HL])
+#define RSCAN0RMDF115HH (RSCAN0.RMDF115.UINT8[R_IO_HH])
+#define RSCAN0RMID16 (RSCAN0.RMID16.UINT32)
+#define RSCAN0RMID16L (RSCAN0.RMID16.UINT16[R_IO_L])
+#define RSCAN0RMID16LL (RSCAN0.RMID16.UINT8[R_IO_LL])
+#define RSCAN0RMID16LH (RSCAN0.RMID16.UINT8[R_IO_LH])
+#define RSCAN0RMID16H (RSCAN0.RMID16.UINT16[R_IO_H])
+#define RSCAN0RMID16HL (RSCAN0.RMID16.UINT8[R_IO_HL])
+#define RSCAN0RMID16HH (RSCAN0.RMID16.UINT8[R_IO_HH])
+#define RSCAN0RMPTR16 (RSCAN0.RMPTR16.UINT32)
+#define RSCAN0RMPTR16L (RSCAN0.RMPTR16.UINT16[R_IO_L])
+#define RSCAN0RMPTR16LL (RSCAN0.RMPTR16.UINT8[R_IO_LL])
+#define RSCAN0RMPTR16LH (RSCAN0.RMPTR16.UINT8[R_IO_LH])
+#define RSCAN0RMPTR16H (RSCAN0.RMPTR16.UINT16[R_IO_H])
+#define RSCAN0RMPTR16HL (RSCAN0.RMPTR16.UINT8[R_IO_HL])
+#define RSCAN0RMPTR16HH (RSCAN0.RMPTR16.UINT8[R_IO_HH])
+#define RSCAN0RMDF016 (RSCAN0.RMDF016.UINT32)
+#define RSCAN0RMDF016L (RSCAN0.RMDF016.UINT16[R_IO_L])
+#define RSCAN0RMDF016LL (RSCAN0.RMDF016.UINT8[R_IO_LL])
+#define RSCAN0RMDF016LH (RSCAN0.RMDF016.UINT8[R_IO_LH])
+#define RSCAN0RMDF016H (RSCAN0.RMDF016.UINT16[R_IO_H])
+#define RSCAN0RMDF016HL (RSCAN0.RMDF016.UINT8[R_IO_HL])
+#define RSCAN0RMDF016HH (RSCAN0.RMDF016.UINT8[R_IO_HH])
+#define RSCAN0RMDF116 (RSCAN0.RMDF116.UINT32)
+#define RSCAN0RMDF116L (RSCAN0.RMDF116.UINT16[R_IO_L])
+#define RSCAN0RMDF116LL (RSCAN0.RMDF116.UINT8[R_IO_LL])
+#define RSCAN0RMDF116LH (RSCAN0.RMDF116.UINT8[R_IO_LH])
+#define RSCAN0RMDF116H (RSCAN0.RMDF116.UINT16[R_IO_H])
+#define RSCAN0RMDF116HL (RSCAN0.RMDF116.UINT8[R_IO_HL])
+#define RSCAN0RMDF116HH (RSCAN0.RMDF116.UINT8[R_IO_HH])
+#define RSCAN0RMID17 (RSCAN0.RMID17.UINT32)
+#define RSCAN0RMID17L (RSCAN0.RMID17.UINT16[R_IO_L])
+#define RSCAN0RMID17LL (RSCAN0.RMID17.UINT8[R_IO_LL])
+#define RSCAN0RMID17LH (RSCAN0.RMID17.UINT8[R_IO_LH])
+#define RSCAN0RMID17H (RSCAN0.RMID17.UINT16[R_IO_H])
+#define RSCAN0RMID17HL (RSCAN0.RMID17.UINT8[R_IO_HL])
+#define RSCAN0RMID17HH (RSCAN0.RMID17.UINT8[R_IO_HH])
+#define RSCAN0RMPTR17 (RSCAN0.RMPTR17.UINT32)
+#define RSCAN0RMPTR17L (RSCAN0.RMPTR17.UINT16[R_IO_L])
+#define RSCAN0RMPTR17LL (RSCAN0.RMPTR17.UINT8[R_IO_LL])
+#define RSCAN0RMPTR17LH (RSCAN0.RMPTR17.UINT8[R_IO_LH])
+#define RSCAN0RMPTR17H (RSCAN0.RMPTR17.UINT16[R_IO_H])
+#define RSCAN0RMPTR17HL (RSCAN0.RMPTR17.UINT8[R_IO_HL])
+#define RSCAN0RMPTR17HH (RSCAN0.RMPTR17.UINT8[R_IO_HH])
+#define RSCAN0RMDF017 (RSCAN0.RMDF017.UINT32)
+#define RSCAN0RMDF017L (RSCAN0.RMDF017.UINT16[R_IO_L])
+#define RSCAN0RMDF017LL (RSCAN0.RMDF017.UINT8[R_IO_LL])
+#define RSCAN0RMDF017LH (RSCAN0.RMDF017.UINT8[R_IO_LH])
+#define RSCAN0RMDF017H (RSCAN0.RMDF017.UINT16[R_IO_H])
+#define RSCAN0RMDF017HL (RSCAN0.RMDF017.UINT8[R_IO_HL])
+#define RSCAN0RMDF017HH (RSCAN0.RMDF017.UINT8[R_IO_HH])
+#define RSCAN0RMDF117 (RSCAN0.RMDF117.UINT32)
+#define RSCAN0RMDF117L (RSCAN0.RMDF117.UINT16[R_IO_L])
+#define RSCAN0RMDF117LL (RSCAN0.RMDF117.UINT8[R_IO_LL])
+#define RSCAN0RMDF117LH (RSCAN0.RMDF117.UINT8[R_IO_LH])
+#define RSCAN0RMDF117H (RSCAN0.RMDF117.UINT16[R_IO_H])
+#define RSCAN0RMDF117HL (RSCAN0.RMDF117.UINT8[R_IO_HL])
+#define RSCAN0RMDF117HH (RSCAN0.RMDF117.UINT8[R_IO_HH])
+#define RSCAN0RMID18 (RSCAN0.RMID18.UINT32)
+#define RSCAN0RMID18L (RSCAN0.RMID18.UINT16[R_IO_L])
+#define RSCAN0RMID18LL (RSCAN0.RMID18.UINT8[R_IO_LL])
+#define RSCAN0RMID18LH (RSCAN0.RMID18.UINT8[R_IO_LH])
+#define RSCAN0RMID18H (RSCAN0.RMID18.UINT16[R_IO_H])
+#define RSCAN0RMID18HL (RSCAN0.RMID18.UINT8[R_IO_HL])
+#define RSCAN0RMID18HH (RSCAN0.RMID18.UINT8[R_IO_HH])
+#define RSCAN0RMPTR18 (RSCAN0.RMPTR18.UINT32)
+#define RSCAN0RMPTR18L (RSCAN0.RMPTR18.UINT16[R_IO_L])
+#define RSCAN0RMPTR18LL (RSCAN0.RMPTR18.UINT8[R_IO_LL])
+#define RSCAN0RMPTR18LH (RSCAN0.RMPTR18.UINT8[R_IO_LH])
+#define RSCAN0RMPTR18H (RSCAN0.RMPTR18.UINT16[R_IO_H])
+#define RSCAN0RMPTR18HL (RSCAN0.RMPTR18.UINT8[R_IO_HL])
+#define RSCAN0RMPTR18HH (RSCAN0.RMPTR18.UINT8[R_IO_HH])
+#define RSCAN0RMDF018 (RSCAN0.RMDF018.UINT32)
+#define RSCAN0RMDF018L (RSCAN0.RMDF018.UINT16[R_IO_L])
+#define RSCAN0RMDF018LL (RSCAN0.RMDF018.UINT8[R_IO_LL])
+#define RSCAN0RMDF018LH (RSCAN0.RMDF018.UINT8[R_IO_LH])
+#define RSCAN0RMDF018H (RSCAN0.RMDF018.UINT16[R_IO_H])
+#define RSCAN0RMDF018HL (RSCAN0.RMDF018.UINT8[R_IO_HL])
+#define RSCAN0RMDF018HH (RSCAN0.RMDF018.UINT8[R_IO_HH])
+#define RSCAN0RMDF118 (RSCAN0.RMDF118.UINT32)
+#define RSCAN0RMDF118L (RSCAN0.RMDF118.UINT16[R_IO_L])
+#define RSCAN0RMDF118LL (RSCAN0.RMDF118.UINT8[R_IO_LL])
+#define RSCAN0RMDF118LH (RSCAN0.RMDF118.UINT8[R_IO_LH])
+#define RSCAN0RMDF118H (RSCAN0.RMDF118.UINT16[R_IO_H])
+#define RSCAN0RMDF118HL (RSCAN0.RMDF118.UINT8[R_IO_HL])
+#define RSCAN0RMDF118HH (RSCAN0.RMDF118.UINT8[R_IO_HH])
+#define RSCAN0RMID19 (RSCAN0.RMID19.UINT32)
+#define RSCAN0RMID19L (RSCAN0.RMID19.UINT16[R_IO_L])
+#define RSCAN0RMID19LL (RSCAN0.RMID19.UINT8[R_IO_LL])
+#define RSCAN0RMID19LH (RSCAN0.RMID19.UINT8[R_IO_LH])
+#define RSCAN0RMID19H (RSCAN0.RMID19.UINT16[R_IO_H])
+#define RSCAN0RMID19HL (RSCAN0.RMID19.UINT8[R_IO_HL])
+#define RSCAN0RMID19HH (RSCAN0.RMID19.UINT8[R_IO_HH])
+#define RSCAN0RMPTR19 (RSCAN0.RMPTR19.UINT32)
+#define RSCAN0RMPTR19L (RSCAN0.RMPTR19.UINT16[R_IO_L])
+#define RSCAN0RMPTR19LL (RSCAN0.RMPTR19.UINT8[R_IO_LL])
+#define RSCAN0RMPTR19LH (RSCAN0.RMPTR19.UINT8[R_IO_LH])
+#define RSCAN0RMPTR19H (RSCAN0.RMPTR19.UINT16[R_IO_H])
+#define RSCAN0RMPTR19HL (RSCAN0.RMPTR19.UINT8[R_IO_HL])
+#define RSCAN0RMPTR19HH (RSCAN0.RMPTR19.UINT8[R_IO_HH])
+#define RSCAN0RMDF019 (RSCAN0.RMDF019.UINT32)
+#define RSCAN0RMDF019L (RSCAN0.RMDF019.UINT16[R_IO_L])
+#define RSCAN0RMDF019LL (RSCAN0.RMDF019.UINT8[R_IO_LL])
+#define RSCAN0RMDF019LH (RSCAN0.RMDF019.UINT8[R_IO_LH])
+#define RSCAN0RMDF019H (RSCAN0.RMDF019.UINT16[R_IO_H])
+#define RSCAN0RMDF019HL (RSCAN0.RMDF019.UINT8[R_IO_HL])
+#define RSCAN0RMDF019HH (RSCAN0.RMDF019.UINT8[R_IO_HH])
+#define RSCAN0RMDF119 (RSCAN0.RMDF119.UINT32)
+#define RSCAN0RMDF119L (RSCAN0.RMDF119.UINT16[R_IO_L])
+#define RSCAN0RMDF119LL (RSCAN0.RMDF119.UINT8[R_IO_LL])
+#define RSCAN0RMDF119LH (RSCAN0.RMDF119.UINT8[R_IO_LH])
+#define RSCAN0RMDF119H (RSCAN0.RMDF119.UINT16[R_IO_H])
+#define RSCAN0RMDF119HL (RSCAN0.RMDF119.UINT8[R_IO_HL])
+#define RSCAN0RMDF119HH (RSCAN0.RMDF119.UINT8[R_IO_HH])
+#define RSCAN0RMID20 (RSCAN0.RMID20.UINT32)
+#define RSCAN0RMID20L (RSCAN0.RMID20.UINT16[R_IO_L])
+#define RSCAN0RMID20LL (RSCAN0.RMID20.UINT8[R_IO_LL])
+#define RSCAN0RMID20LH (RSCAN0.RMID20.UINT8[R_IO_LH])
+#define RSCAN0RMID20H (RSCAN0.RMID20.UINT16[R_IO_H])
+#define RSCAN0RMID20HL (RSCAN0.RMID20.UINT8[R_IO_HL])
+#define RSCAN0RMID20HH (RSCAN0.RMID20.UINT8[R_IO_HH])
+#define RSCAN0RMPTR20 (RSCAN0.RMPTR20.UINT32)
+#define RSCAN0RMPTR20L (RSCAN0.RMPTR20.UINT16[R_IO_L])
+#define RSCAN0RMPTR20LL (RSCAN0.RMPTR20.UINT8[R_IO_LL])
+#define RSCAN0RMPTR20LH (RSCAN0.RMPTR20.UINT8[R_IO_LH])
+#define RSCAN0RMPTR20H (RSCAN0.RMPTR20.UINT16[R_IO_H])
+#define RSCAN0RMPTR20HL (RSCAN0.RMPTR20.UINT8[R_IO_HL])
+#define RSCAN0RMPTR20HH (RSCAN0.RMPTR20.UINT8[R_IO_HH])
+#define RSCAN0RMDF020 (RSCAN0.RMDF020.UINT32)
+#define RSCAN0RMDF020L (RSCAN0.RMDF020.UINT16[R_IO_L])
+#define RSCAN0RMDF020LL (RSCAN0.RMDF020.UINT8[R_IO_LL])
+#define RSCAN0RMDF020LH (RSCAN0.RMDF020.UINT8[R_IO_LH])
+#define RSCAN0RMDF020H (RSCAN0.RMDF020.UINT16[R_IO_H])
+#define RSCAN0RMDF020HL (RSCAN0.RMDF020.UINT8[R_IO_HL])
+#define RSCAN0RMDF020HH (RSCAN0.RMDF020.UINT8[R_IO_HH])
+#define RSCAN0RMDF120 (RSCAN0.RMDF120.UINT32)
+#define RSCAN0RMDF120L (RSCAN0.RMDF120.UINT16[R_IO_L])
+#define RSCAN0RMDF120LL (RSCAN0.RMDF120.UINT8[R_IO_LL])
+#define RSCAN0RMDF120LH (RSCAN0.RMDF120.UINT8[R_IO_LH])
+#define RSCAN0RMDF120H (RSCAN0.RMDF120.UINT16[R_IO_H])
+#define RSCAN0RMDF120HL (RSCAN0.RMDF120.UINT8[R_IO_HL])
+#define RSCAN0RMDF120HH (RSCAN0.RMDF120.UINT8[R_IO_HH])
+#define RSCAN0RMID21 (RSCAN0.RMID21.UINT32)
+#define RSCAN0RMID21L (RSCAN0.RMID21.UINT16[R_IO_L])
+#define RSCAN0RMID21LL (RSCAN0.RMID21.UINT8[R_IO_LL])
+#define RSCAN0RMID21LH (RSCAN0.RMID21.UINT8[R_IO_LH])
+#define RSCAN0RMID21H (RSCAN0.RMID21.UINT16[R_IO_H])
+#define RSCAN0RMID21HL (RSCAN0.RMID21.UINT8[R_IO_HL])
+#define RSCAN0RMID21HH (RSCAN0.RMID21.UINT8[R_IO_HH])
+#define RSCAN0RMPTR21 (RSCAN0.RMPTR21.UINT32)
+#define RSCAN0RMPTR21L (RSCAN0.RMPTR21.UINT16[R_IO_L])
+#define RSCAN0RMPTR21LL (RSCAN0.RMPTR21.UINT8[R_IO_LL])
+#define RSCAN0RMPTR21LH (RSCAN0.RMPTR21.UINT8[R_IO_LH])
+#define RSCAN0RMPTR21H (RSCAN0.RMPTR21.UINT16[R_IO_H])
+#define RSCAN0RMPTR21HL (RSCAN0.RMPTR21.UINT8[R_IO_HL])
+#define RSCAN0RMPTR21HH (RSCAN0.RMPTR21.UINT8[R_IO_HH])
+#define RSCAN0RMDF021 (RSCAN0.RMDF021.UINT32)
+#define RSCAN0RMDF021L (RSCAN0.RMDF021.UINT16[R_IO_L])
+#define RSCAN0RMDF021LL (RSCAN0.RMDF021.UINT8[R_IO_LL])
+#define RSCAN0RMDF021LH (RSCAN0.RMDF021.UINT8[R_IO_LH])
+#define RSCAN0RMDF021H (RSCAN0.RMDF021.UINT16[R_IO_H])
+#define RSCAN0RMDF021HL (RSCAN0.RMDF021.UINT8[R_IO_HL])
+#define RSCAN0RMDF021HH (RSCAN0.RMDF021.UINT8[R_IO_HH])
+#define RSCAN0RMDF121 (RSCAN0.RMDF121.UINT32)
+#define RSCAN0RMDF121L (RSCAN0.RMDF121.UINT16[R_IO_L])
+#define RSCAN0RMDF121LL (RSCAN0.RMDF121.UINT8[R_IO_LL])
+#define RSCAN0RMDF121LH (RSCAN0.RMDF121.UINT8[R_IO_LH])
+#define RSCAN0RMDF121H (RSCAN0.RMDF121.UINT16[R_IO_H])
+#define RSCAN0RMDF121HL (RSCAN0.RMDF121.UINT8[R_IO_HL])
+#define RSCAN0RMDF121HH (RSCAN0.RMDF121.UINT8[R_IO_HH])
+#define RSCAN0RMID22 (RSCAN0.RMID22.UINT32)
+#define RSCAN0RMID22L (RSCAN0.RMID22.UINT16[R_IO_L])
+#define RSCAN0RMID22LL (RSCAN0.RMID22.UINT8[R_IO_LL])
+#define RSCAN0RMID22LH (RSCAN0.RMID22.UINT8[R_IO_LH])
+#define RSCAN0RMID22H (RSCAN0.RMID22.UINT16[R_IO_H])
+#define RSCAN0RMID22HL (RSCAN0.RMID22.UINT8[R_IO_HL])
+#define RSCAN0RMID22HH (RSCAN0.RMID22.UINT8[R_IO_HH])
+#define RSCAN0RMPTR22 (RSCAN0.RMPTR22.UINT32)
+#define RSCAN0RMPTR22L (RSCAN0.RMPTR22.UINT16[R_IO_L])
+#define RSCAN0RMPTR22LL (RSCAN0.RMPTR22.UINT8[R_IO_LL])
+#define RSCAN0RMPTR22LH (RSCAN0.RMPTR22.UINT8[R_IO_LH])
+#define RSCAN0RMPTR22H (RSCAN0.RMPTR22.UINT16[R_IO_H])
+#define RSCAN0RMPTR22HL (RSCAN0.RMPTR22.UINT8[R_IO_HL])
+#define RSCAN0RMPTR22HH (RSCAN0.RMPTR22.UINT8[R_IO_HH])
+#define RSCAN0RMDF022 (RSCAN0.RMDF022.UINT32)
+#define RSCAN0RMDF022L (RSCAN0.RMDF022.UINT16[R_IO_L])
+#define RSCAN0RMDF022LL (RSCAN0.RMDF022.UINT8[R_IO_LL])
+#define RSCAN0RMDF022LH (RSCAN0.RMDF022.UINT8[R_IO_LH])
+#define RSCAN0RMDF022H (RSCAN0.RMDF022.UINT16[R_IO_H])
+#define RSCAN0RMDF022HL (RSCAN0.RMDF022.UINT8[R_IO_HL])
+#define RSCAN0RMDF022HH (RSCAN0.RMDF022.UINT8[R_IO_HH])
+#define RSCAN0RMDF122 (RSCAN0.RMDF122.UINT32)
+#define RSCAN0RMDF122L (RSCAN0.RMDF122.UINT16[R_IO_L])
+#define RSCAN0RMDF122LL (RSCAN0.RMDF122.UINT8[R_IO_LL])
+#define RSCAN0RMDF122LH (RSCAN0.RMDF122.UINT8[R_IO_LH])
+#define RSCAN0RMDF122H (RSCAN0.RMDF122.UINT16[R_IO_H])
+#define RSCAN0RMDF122HL (RSCAN0.RMDF122.UINT8[R_IO_HL])
+#define RSCAN0RMDF122HH (RSCAN0.RMDF122.UINT8[R_IO_HH])
+#define RSCAN0RMID23 (RSCAN0.RMID23.UINT32)
+#define RSCAN0RMID23L (RSCAN0.RMID23.UINT16[R_IO_L])
+#define RSCAN0RMID23LL (RSCAN0.RMID23.UINT8[R_IO_LL])
+#define RSCAN0RMID23LH (RSCAN0.RMID23.UINT8[R_IO_LH])
+#define RSCAN0RMID23H (RSCAN0.RMID23.UINT16[R_IO_H])
+#define RSCAN0RMID23HL (RSCAN0.RMID23.UINT8[R_IO_HL])
+#define RSCAN0RMID23HH (RSCAN0.RMID23.UINT8[R_IO_HH])
+#define RSCAN0RMPTR23 (RSCAN0.RMPTR23.UINT32)
+#define RSCAN0RMPTR23L (RSCAN0.RMPTR23.UINT16[R_IO_L])
+#define RSCAN0RMPTR23LL (RSCAN0.RMPTR23.UINT8[R_IO_LL])
+#define RSCAN0RMPTR23LH (RSCAN0.RMPTR23.UINT8[R_IO_LH])
+#define RSCAN0RMPTR23H (RSCAN0.RMPTR23.UINT16[R_IO_H])
+#define RSCAN0RMPTR23HL (RSCAN0.RMPTR23.UINT8[R_IO_HL])
+#define RSCAN0RMPTR23HH (RSCAN0.RMPTR23.UINT8[R_IO_HH])
+#define RSCAN0RMDF023 (RSCAN0.RMDF023.UINT32)
+#define RSCAN0RMDF023L (RSCAN0.RMDF023.UINT16[R_IO_L])
+#define RSCAN0RMDF023LL (RSCAN0.RMDF023.UINT8[R_IO_LL])
+#define RSCAN0RMDF023LH (RSCAN0.RMDF023.UINT8[R_IO_LH])
+#define RSCAN0RMDF023H (RSCAN0.RMDF023.UINT16[R_IO_H])
+#define RSCAN0RMDF023HL (RSCAN0.RMDF023.UINT8[R_IO_HL])
+#define RSCAN0RMDF023HH (RSCAN0.RMDF023.UINT8[R_IO_HH])
+#define RSCAN0RMDF123 (RSCAN0.RMDF123.UINT32)
+#define RSCAN0RMDF123L (RSCAN0.RMDF123.UINT16[R_IO_L])
+#define RSCAN0RMDF123LL (RSCAN0.RMDF123.UINT8[R_IO_LL])
+#define RSCAN0RMDF123LH (RSCAN0.RMDF123.UINT8[R_IO_LH])
+#define RSCAN0RMDF123H (RSCAN0.RMDF123.UINT16[R_IO_H])
+#define RSCAN0RMDF123HL (RSCAN0.RMDF123.UINT8[R_IO_HL])
+#define RSCAN0RMDF123HH (RSCAN0.RMDF123.UINT8[R_IO_HH])
+#define RSCAN0RMID24 (RSCAN0.RMID24.UINT32)
+#define RSCAN0RMID24L (RSCAN0.RMID24.UINT16[R_IO_L])
+#define RSCAN0RMID24LL (RSCAN0.RMID24.UINT8[R_IO_LL])
+#define RSCAN0RMID24LH (RSCAN0.RMID24.UINT8[R_IO_LH])
+#define RSCAN0RMID24H (RSCAN0.RMID24.UINT16[R_IO_H])
+#define RSCAN0RMID24HL (RSCAN0.RMID24.UINT8[R_IO_HL])
+#define RSCAN0RMID24HH (RSCAN0.RMID24.UINT8[R_IO_HH])
+#define RSCAN0RMPTR24 (RSCAN0.RMPTR24.UINT32)
+#define RSCAN0RMPTR24L (RSCAN0.RMPTR24.UINT16[R_IO_L])
+#define RSCAN0RMPTR24LL (RSCAN0.RMPTR24.UINT8[R_IO_LL])
+#define RSCAN0RMPTR24LH (RSCAN0.RMPTR24.UINT8[R_IO_LH])
+#define RSCAN0RMPTR24H (RSCAN0.RMPTR24.UINT16[R_IO_H])
+#define RSCAN0RMPTR24HL (RSCAN0.RMPTR24.UINT8[R_IO_HL])
+#define RSCAN0RMPTR24HH (RSCAN0.RMPTR24.UINT8[R_IO_HH])
+#define RSCAN0RMDF024 (RSCAN0.RMDF024.UINT32)
+#define RSCAN0RMDF024L (RSCAN0.RMDF024.UINT16[R_IO_L])
+#define RSCAN0RMDF024LL (RSCAN0.RMDF024.UINT8[R_IO_LL])
+#define RSCAN0RMDF024LH (RSCAN0.RMDF024.UINT8[R_IO_LH])
+#define RSCAN0RMDF024H (RSCAN0.RMDF024.UINT16[R_IO_H])
+#define RSCAN0RMDF024HL (RSCAN0.RMDF024.UINT8[R_IO_HL])
+#define RSCAN0RMDF024HH (RSCAN0.RMDF024.UINT8[R_IO_HH])
+#define RSCAN0RMDF124 (RSCAN0.RMDF124.UINT32)
+#define RSCAN0RMDF124L (RSCAN0.RMDF124.UINT16[R_IO_L])
+#define RSCAN0RMDF124LL (RSCAN0.RMDF124.UINT8[R_IO_LL])
+#define RSCAN0RMDF124LH (RSCAN0.RMDF124.UINT8[R_IO_LH])
+#define RSCAN0RMDF124H (RSCAN0.RMDF124.UINT16[R_IO_H])
+#define RSCAN0RMDF124HL (RSCAN0.RMDF124.UINT8[R_IO_HL])
+#define RSCAN0RMDF124HH (RSCAN0.RMDF124.UINT8[R_IO_HH])
+#define RSCAN0RMID25 (RSCAN0.RMID25.UINT32)
+#define RSCAN0RMID25L (RSCAN0.RMID25.UINT16[R_IO_L])
+#define RSCAN0RMID25LL (RSCAN0.RMID25.UINT8[R_IO_LL])
+#define RSCAN0RMID25LH (RSCAN0.RMID25.UINT8[R_IO_LH])
+#define RSCAN0RMID25H (RSCAN0.RMID25.UINT16[R_IO_H])
+#define RSCAN0RMID25HL (RSCAN0.RMID25.UINT8[R_IO_HL])
+#define RSCAN0RMID25HH (RSCAN0.RMID25.UINT8[R_IO_HH])
+#define RSCAN0RMPTR25 (RSCAN0.RMPTR25.UINT32)
+#define RSCAN0RMPTR25L (RSCAN0.RMPTR25.UINT16[R_IO_L])
+#define RSCAN0RMPTR25LL (RSCAN0.RMPTR25.UINT8[R_IO_LL])
+#define RSCAN0RMPTR25LH (RSCAN0.RMPTR25.UINT8[R_IO_LH])
+#define RSCAN0RMPTR25H (RSCAN0.RMPTR25.UINT16[R_IO_H])
+#define RSCAN0RMPTR25HL (RSCAN0.RMPTR25.UINT8[R_IO_HL])
+#define RSCAN0RMPTR25HH (RSCAN0.RMPTR25.UINT8[R_IO_HH])
+#define RSCAN0RMDF025 (RSCAN0.RMDF025.UINT32)
+#define RSCAN0RMDF025L (RSCAN0.RMDF025.UINT16[R_IO_L])
+#define RSCAN0RMDF025LL (RSCAN0.RMDF025.UINT8[R_IO_LL])
+#define RSCAN0RMDF025LH (RSCAN0.RMDF025.UINT8[R_IO_LH])
+#define RSCAN0RMDF025H (RSCAN0.RMDF025.UINT16[R_IO_H])
+#define RSCAN0RMDF025HL (RSCAN0.RMDF025.UINT8[R_IO_HL])
+#define RSCAN0RMDF025HH (RSCAN0.RMDF025.UINT8[R_IO_HH])
+#define RSCAN0RMDF125 (RSCAN0.RMDF125.UINT32)
+#define RSCAN0RMDF125L (RSCAN0.RMDF125.UINT16[R_IO_L])
+#define RSCAN0RMDF125LL (RSCAN0.RMDF125.UINT8[R_IO_LL])
+#define RSCAN0RMDF125LH (RSCAN0.RMDF125.UINT8[R_IO_LH])
+#define RSCAN0RMDF125H (RSCAN0.RMDF125.UINT16[R_IO_H])
+#define RSCAN0RMDF125HL (RSCAN0.RMDF125.UINT8[R_IO_HL])
+#define RSCAN0RMDF125HH (RSCAN0.RMDF125.UINT8[R_IO_HH])
+#define RSCAN0RMID26 (RSCAN0.RMID26.UINT32)
+#define RSCAN0RMID26L (RSCAN0.RMID26.UINT16[R_IO_L])
+#define RSCAN0RMID26LL (RSCAN0.RMID26.UINT8[R_IO_LL])
+#define RSCAN0RMID26LH (RSCAN0.RMID26.UINT8[R_IO_LH])
+#define RSCAN0RMID26H (RSCAN0.RMID26.UINT16[R_IO_H])
+#define RSCAN0RMID26HL (RSCAN0.RMID26.UINT8[R_IO_HL])
+#define RSCAN0RMID26HH (RSCAN0.RMID26.UINT8[R_IO_HH])
+#define RSCAN0RMPTR26 (RSCAN0.RMPTR26.UINT32)
+#define RSCAN0RMPTR26L (RSCAN0.RMPTR26.UINT16[R_IO_L])
+#define RSCAN0RMPTR26LL (RSCAN0.RMPTR26.UINT8[R_IO_LL])
+#define RSCAN0RMPTR26LH (RSCAN0.RMPTR26.UINT8[R_IO_LH])
+#define RSCAN0RMPTR26H (RSCAN0.RMPTR26.UINT16[R_IO_H])
+#define RSCAN0RMPTR26HL (RSCAN0.RMPTR26.UINT8[R_IO_HL])
+#define RSCAN0RMPTR26HH (RSCAN0.RMPTR26.UINT8[R_IO_HH])
+#define RSCAN0RMDF026 (RSCAN0.RMDF026.UINT32)
+#define RSCAN0RMDF026L (RSCAN0.RMDF026.UINT16[R_IO_L])
+#define RSCAN0RMDF026LL (RSCAN0.RMDF026.UINT8[R_IO_LL])
+#define RSCAN0RMDF026LH (RSCAN0.RMDF026.UINT8[R_IO_LH])
+#define RSCAN0RMDF026H (RSCAN0.RMDF026.UINT16[R_IO_H])
+#define RSCAN0RMDF026HL (RSCAN0.RMDF026.UINT8[R_IO_HL])
+#define RSCAN0RMDF026HH (RSCAN0.RMDF026.UINT8[R_IO_HH])
+#define RSCAN0RMDF126 (RSCAN0.RMDF126.UINT32)
+#define RSCAN0RMDF126L (RSCAN0.RMDF126.UINT16[R_IO_L])
+#define RSCAN0RMDF126LL (RSCAN0.RMDF126.UINT8[R_IO_LL])
+#define RSCAN0RMDF126LH (RSCAN0.RMDF126.UINT8[R_IO_LH])
+#define RSCAN0RMDF126H (RSCAN0.RMDF126.UINT16[R_IO_H])
+#define RSCAN0RMDF126HL (RSCAN0.RMDF126.UINT8[R_IO_HL])
+#define RSCAN0RMDF126HH (RSCAN0.RMDF126.UINT8[R_IO_HH])
+#define RSCAN0RMID27 (RSCAN0.RMID27.UINT32)
+#define RSCAN0RMID27L (RSCAN0.RMID27.UINT16[R_IO_L])
+#define RSCAN0RMID27LL (RSCAN0.RMID27.UINT8[R_IO_LL])
+#define RSCAN0RMID27LH (RSCAN0.RMID27.UINT8[R_IO_LH])
+#define RSCAN0RMID27H (RSCAN0.RMID27.UINT16[R_IO_H])
+#define RSCAN0RMID27HL (RSCAN0.RMID27.UINT8[R_IO_HL])
+#define RSCAN0RMID27HH (RSCAN0.RMID27.UINT8[R_IO_HH])
+#define RSCAN0RMPTR27 (RSCAN0.RMPTR27.UINT32)
+#define RSCAN0RMPTR27L (RSCAN0.RMPTR27.UINT16[R_IO_L])
+#define RSCAN0RMPTR27LL (RSCAN0.RMPTR27.UINT8[R_IO_LL])
+#define RSCAN0RMPTR27LH (RSCAN0.RMPTR27.UINT8[R_IO_LH])
+#define RSCAN0RMPTR27H (RSCAN0.RMPTR27.UINT16[R_IO_H])
+#define RSCAN0RMPTR27HL (RSCAN0.RMPTR27.UINT8[R_IO_HL])
+#define RSCAN0RMPTR27HH (RSCAN0.RMPTR27.UINT8[R_IO_HH])
+#define RSCAN0RMDF027 (RSCAN0.RMDF027.UINT32)
+#define RSCAN0RMDF027L (RSCAN0.RMDF027.UINT16[R_IO_L])
+#define RSCAN0RMDF027LL (RSCAN0.RMDF027.UINT8[R_IO_LL])
+#define RSCAN0RMDF027LH (RSCAN0.RMDF027.UINT8[R_IO_LH])
+#define RSCAN0RMDF027H (RSCAN0.RMDF027.UINT16[R_IO_H])
+#define RSCAN0RMDF027HL (RSCAN0.RMDF027.UINT8[R_IO_HL])
+#define RSCAN0RMDF027HH (RSCAN0.RMDF027.UINT8[R_IO_HH])
+#define RSCAN0RMDF127 (RSCAN0.RMDF127.UINT32)
+#define RSCAN0RMDF127L (RSCAN0.RMDF127.UINT16[R_IO_L])
+#define RSCAN0RMDF127LL (RSCAN0.RMDF127.UINT8[R_IO_LL])
+#define RSCAN0RMDF127LH (RSCAN0.RMDF127.UINT8[R_IO_LH])
+#define RSCAN0RMDF127H (RSCAN0.RMDF127.UINT16[R_IO_H])
+#define RSCAN0RMDF127HL (RSCAN0.RMDF127.UINT8[R_IO_HL])
+#define RSCAN0RMDF127HH (RSCAN0.RMDF127.UINT8[R_IO_HH])
+#define RSCAN0RMID28 (RSCAN0.RMID28.UINT32)
+#define RSCAN0RMID28L (RSCAN0.RMID28.UINT16[R_IO_L])
+#define RSCAN0RMID28LL (RSCAN0.RMID28.UINT8[R_IO_LL])
+#define RSCAN0RMID28LH (RSCAN0.RMID28.UINT8[R_IO_LH])
+#define RSCAN0RMID28H (RSCAN0.RMID28.UINT16[R_IO_H])
+#define RSCAN0RMID28HL (RSCAN0.RMID28.UINT8[R_IO_HL])
+#define RSCAN0RMID28HH (RSCAN0.RMID28.UINT8[R_IO_HH])
+#define RSCAN0RMPTR28 (RSCAN0.RMPTR28.UINT32)
+#define RSCAN0RMPTR28L (RSCAN0.RMPTR28.UINT16[R_IO_L])
+#define RSCAN0RMPTR28LL (RSCAN0.RMPTR28.UINT8[R_IO_LL])
+#define RSCAN0RMPTR28LH (RSCAN0.RMPTR28.UINT8[R_IO_LH])
+#define RSCAN0RMPTR28H (RSCAN0.RMPTR28.UINT16[R_IO_H])
+#define RSCAN0RMPTR28HL (RSCAN0.RMPTR28.UINT8[R_IO_HL])
+#define RSCAN0RMPTR28HH (RSCAN0.RMPTR28.UINT8[R_IO_HH])
+#define RSCAN0RMDF028 (RSCAN0.RMDF028.UINT32)
+#define RSCAN0RMDF028L (RSCAN0.RMDF028.UINT16[R_IO_L])
+#define RSCAN0RMDF028LL (RSCAN0.RMDF028.UINT8[R_IO_LL])
+#define RSCAN0RMDF028LH (RSCAN0.RMDF028.UINT8[R_IO_LH])
+#define RSCAN0RMDF028H (RSCAN0.RMDF028.UINT16[R_IO_H])
+#define RSCAN0RMDF028HL (RSCAN0.RMDF028.UINT8[R_IO_HL])
+#define RSCAN0RMDF028HH (RSCAN0.RMDF028.UINT8[R_IO_HH])
+#define RSCAN0RMDF128 (RSCAN0.RMDF128.UINT32)
+#define RSCAN0RMDF128L (RSCAN0.RMDF128.UINT16[R_IO_L])
+#define RSCAN0RMDF128LL (RSCAN0.RMDF128.UINT8[R_IO_LL])
+#define RSCAN0RMDF128LH (RSCAN0.RMDF128.UINT8[R_IO_LH])
+#define RSCAN0RMDF128H (RSCAN0.RMDF128.UINT16[R_IO_H])
+#define RSCAN0RMDF128HL (RSCAN0.RMDF128.UINT8[R_IO_HL])
+#define RSCAN0RMDF128HH (RSCAN0.RMDF128.UINT8[R_IO_HH])
+#define RSCAN0RMID29 (RSCAN0.RMID29.UINT32)
+#define RSCAN0RMID29L (RSCAN0.RMID29.UINT16[R_IO_L])
+#define RSCAN0RMID29LL (RSCAN0.RMID29.UINT8[R_IO_LL])
+#define RSCAN0RMID29LH (RSCAN0.RMID29.UINT8[R_IO_LH])
+#define RSCAN0RMID29H (RSCAN0.RMID29.UINT16[R_IO_H])
+#define RSCAN0RMID29HL (RSCAN0.RMID29.UINT8[R_IO_HL])
+#define RSCAN0RMID29HH (RSCAN0.RMID29.UINT8[R_IO_HH])
+#define RSCAN0RMPTR29 (RSCAN0.RMPTR29.UINT32)
+#define RSCAN0RMPTR29L (RSCAN0.RMPTR29.UINT16[R_IO_L])
+#define RSCAN0RMPTR29LL (RSCAN0.RMPTR29.UINT8[R_IO_LL])
+#define RSCAN0RMPTR29LH (RSCAN0.RMPTR29.UINT8[R_IO_LH])
+#define RSCAN0RMPTR29H (RSCAN0.RMPTR29.UINT16[R_IO_H])
+#define RSCAN0RMPTR29HL (RSCAN0.RMPTR29.UINT8[R_IO_HL])
+#define RSCAN0RMPTR29HH (RSCAN0.RMPTR29.UINT8[R_IO_HH])
+#define RSCAN0RMDF029 (RSCAN0.RMDF029.UINT32)
+#define RSCAN0RMDF029L (RSCAN0.RMDF029.UINT16[R_IO_L])
+#define RSCAN0RMDF029LL (RSCAN0.RMDF029.UINT8[R_IO_LL])
+#define RSCAN0RMDF029LH (RSCAN0.RMDF029.UINT8[R_IO_LH])
+#define RSCAN0RMDF029H (RSCAN0.RMDF029.UINT16[R_IO_H])
+#define RSCAN0RMDF029HL (RSCAN0.RMDF029.UINT8[R_IO_HL])
+#define RSCAN0RMDF029HH (RSCAN0.RMDF029.UINT8[R_IO_HH])
+#define RSCAN0RMDF129 (RSCAN0.RMDF129.UINT32)
+#define RSCAN0RMDF129L (RSCAN0.RMDF129.UINT16[R_IO_L])
+#define RSCAN0RMDF129LL (RSCAN0.RMDF129.UINT8[R_IO_LL])
+#define RSCAN0RMDF129LH (RSCAN0.RMDF129.UINT8[R_IO_LH])
+#define RSCAN0RMDF129H (RSCAN0.RMDF129.UINT16[R_IO_H])
+#define RSCAN0RMDF129HL (RSCAN0.RMDF129.UINT8[R_IO_HL])
+#define RSCAN0RMDF129HH (RSCAN0.RMDF129.UINT8[R_IO_HH])
+#define RSCAN0RMID30 (RSCAN0.RMID30.UINT32)
+#define RSCAN0RMID30L (RSCAN0.RMID30.UINT16[R_IO_L])
+#define RSCAN0RMID30LL (RSCAN0.RMID30.UINT8[R_IO_LL])
+#define RSCAN0RMID30LH (RSCAN0.RMID30.UINT8[R_IO_LH])
+#define RSCAN0RMID30H (RSCAN0.RMID30.UINT16[R_IO_H])
+#define RSCAN0RMID30HL (RSCAN0.RMID30.UINT8[R_IO_HL])
+#define RSCAN0RMID30HH (RSCAN0.RMID30.UINT8[R_IO_HH])
+#define RSCAN0RMPTR30 (RSCAN0.RMPTR30.UINT32)
+#define RSCAN0RMPTR30L (RSCAN0.RMPTR30.UINT16[R_IO_L])
+#define RSCAN0RMPTR30LL (RSCAN0.RMPTR30.UINT8[R_IO_LL])
+#define RSCAN0RMPTR30LH (RSCAN0.RMPTR30.UINT8[R_IO_LH])
+#define RSCAN0RMPTR30H (RSCAN0.RMPTR30.UINT16[R_IO_H])
+#define RSCAN0RMPTR30HL (RSCAN0.RMPTR30.UINT8[R_IO_HL])
+#define RSCAN0RMPTR30HH (RSCAN0.RMPTR30.UINT8[R_IO_HH])
+#define RSCAN0RMDF030 (RSCAN0.RMDF030.UINT32)
+#define RSCAN0RMDF030L (RSCAN0.RMDF030.UINT16[R_IO_L])
+#define RSCAN0RMDF030LL (RSCAN0.RMDF030.UINT8[R_IO_LL])
+#define RSCAN0RMDF030LH (RSCAN0.RMDF030.UINT8[R_IO_LH])
+#define RSCAN0RMDF030H (RSCAN0.RMDF030.UINT16[R_IO_H])
+#define RSCAN0RMDF030HL (RSCAN0.RMDF030.UINT8[R_IO_HL])
+#define RSCAN0RMDF030HH (RSCAN0.RMDF030.UINT8[R_IO_HH])
+#define RSCAN0RMDF130 (RSCAN0.RMDF130.UINT32)
+#define RSCAN0RMDF130L (RSCAN0.RMDF130.UINT16[R_IO_L])
+#define RSCAN0RMDF130LL (RSCAN0.RMDF130.UINT8[R_IO_LL])
+#define RSCAN0RMDF130LH (RSCAN0.RMDF130.UINT8[R_IO_LH])
+#define RSCAN0RMDF130H (RSCAN0.RMDF130.UINT16[R_IO_H])
+#define RSCAN0RMDF130HL (RSCAN0.RMDF130.UINT8[R_IO_HL])
+#define RSCAN0RMDF130HH (RSCAN0.RMDF130.UINT8[R_IO_HH])
+#define RSCAN0RMID31 (RSCAN0.RMID31.UINT32)
+#define RSCAN0RMID31L (RSCAN0.RMID31.UINT16[R_IO_L])
+#define RSCAN0RMID31LL (RSCAN0.RMID31.UINT8[R_IO_LL])
+#define RSCAN0RMID31LH (RSCAN0.RMID31.UINT8[R_IO_LH])
+#define RSCAN0RMID31H (RSCAN0.RMID31.UINT16[R_IO_H])
+#define RSCAN0RMID31HL (RSCAN0.RMID31.UINT8[R_IO_HL])
+#define RSCAN0RMID31HH (RSCAN0.RMID31.UINT8[R_IO_HH])
+#define RSCAN0RMPTR31 (RSCAN0.RMPTR31.UINT32)
+#define RSCAN0RMPTR31L (RSCAN0.RMPTR31.UINT16[R_IO_L])
+#define RSCAN0RMPTR31LL (RSCAN0.RMPTR31.UINT8[R_IO_LL])
+#define RSCAN0RMPTR31LH (RSCAN0.RMPTR31.UINT8[R_IO_LH])
+#define RSCAN0RMPTR31H (RSCAN0.RMPTR31.UINT16[R_IO_H])
+#define RSCAN0RMPTR31HL (RSCAN0.RMPTR31.UINT8[R_IO_HL])
+#define RSCAN0RMPTR31HH (RSCAN0.RMPTR31.UINT8[R_IO_HH])
+#define RSCAN0RMDF031 (RSCAN0.RMDF031.UINT32)
+#define RSCAN0RMDF031L (RSCAN0.RMDF031.UINT16[R_IO_L])
+#define RSCAN0RMDF031LL (RSCAN0.RMDF031.UINT8[R_IO_LL])
+#define RSCAN0RMDF031LH (RSCAN0.RMDF031.UINT8[R_IO_LH])
+#define RSCAN0RMDF031H (RSCAN0.RMDF031.UINT16[R_IO_H])
+#define RSCAN0RMDF031HL (RSCAN0.RMDF031.UINT8[R_IO_HL])
+#define RSCAN0RMDF031HH (RSCAN0.RMDF031.UINT8[R_IO_HH])
+#define RSCAN0RMDF131 (RSCAN0.RMDF131.UINT32)
+#define RSCAN0RMDF131L (RSCAN0.RMDF131.UINT16[R_IO_L])
+#define RSCAN0RMDF131LL (RSCAN0.RMDF131.UINT8[R_IO_LL])
+#define RSCAN0RMDF131LH (RSCAN0.RMDF131.UINT8[R_IO_LH])
+#define RSCAN0RMDF131H (RSCAN0.RMDF131.UINT16[R_IO_H])
+#define RSCAN0RMDF131HL (RSCAN0.RMDF131.UINT8[R_IO_HL])
+#define RSCAN0RMDF131HH (RSCAN0.RMDF131.UINT8[R_IO_HH])
+#define RSCAN0RMID32 (RSCAN0.RMID32.UINT32)
+#define RSCAN0RMID32L (RSCAN0.RMID32.UINT16[R_IO_L])
+#define RSCAN0RMID32LL (RSCAN0.RMID32.UINT8[R_IO_LL])
+#define RSCAN0RMID32LH (RSCAN0.RMID32.UINT8[R_IO_LH])
+#define RSCAN0RMID32H (RSCAN0.RMID32.UINT16[R_IO_H])
+#define RSCAN0RMID32HL (RSCAN0.RMID32.UINT8[R_IO_HL])
+#define RSCAN0RMID32HH (RSCAN0.RMID32.UINT8[R_IO_HH])
+#define RSCAN0RMPTR32 (RSCAN0.RMPTR32.UINT32)
+#define RSCAN0RMPTR32L (RSCAN0.RMPTR32.UINT16[R_IO_L])
+#define RSCAN0RMPTR32LL (RSCAN0.RMPTR32.UINT8[R_IO_LL])
+#define RSCAN0RMPTR32LH (RSCAN0.RMPTR32.UINT8[R_IO_LH])
+#define RSCAN0RMPTR32H (RSCAN0.RMPTR32.UINT16[R_IO_H])
+#define RSCAN0RMPTR32HL (RSCAN0.RMPTR32.UINT8[R_IO_HL])
+#define RSCAN0RMPTR32HH (RSCAN0.RMPTR32.UINT8[R_IO_HH])
+#define RSCAN0RMDF032 (RSCAN0.RMDF032.UINT32)
+#define RSCAN0RMDF032L (RSCAN0.RMDF032.UINT16[R_IO_L])
+#define RSCAN0RMDF032LL (RSCAN0.RMDF032.UINT8[R_IO_LL])
+#define RSCAN0RMDF032LH (RSCAN0.RMDF032.UINT8[R_IO_LH])
+#define RSCAN0RMDF032H (RSCAN0.RMDF032.UINT16[R_IO_H])
+#define RSCAN0RMDF032HL (RSCAN0.RMDF032.UINT8[R_IO_HL])
+#define RSCAN0RMDF032HH (RSCAN0.RMDF032.UINT8[R_IO_HH])
+#define RSCAN0RMDF132 (RSCAN0.RMDF132.UINT32)
+#define RSCAN0RMDF132L (RSCAN0.RMDF132.UINT16[R_IO_L])
+#define RSCAN0RMDF132LL (RSCAN0.RMDF132.UINT8[R_IO_LL])
+#define RSCAN0RMDF132LH (RSCAN0.RMDF132.UINT8[R_IO_LH])
+#define RSCAN0RMDF132H (RSCAN0.RMDF132.UINT16[R_IO_H])
+#define RSCAN0RMDF132HL (RSCAN0.RMDF132.UINT8[R_IO_HL])
+#define RSCAN0RMDF132HH (RSCAN0.RMDF132.UINT8[R_IO_HH])
+#define RSCAN0RMID33 (RSCAN0.RMID33.UINT32)
+#define RSCAN0RMID33L (RSCAN0.RMID33.UINT16[R_IO_L])
+#define RSCAN0RMID33LL (RSCAN0.RMID33.UINT8[R_IO_LL])
+#define RSCAN0RMID33LH (RSCAN0.RMID33.UINT8[R_IO_LH])
+#define RSCAN0RMID33H (RSCAN0.RMID33.UINT16[R_IO_H])
+#define RSCAN0RMID33HL (RSCAN0.RMID33.UINT8[R_IO_HL])
+#define RSCAN0RMID33HH (RSCAN0.RMID33.UINT8[R_IO_HH])
+#define RSCAN0RMPTR33 (RSCAN0.RMPTR33.UINT32)
+#define RSCAN0RMPTR33L (RSCAN0.RMPTR33.UINT16[R_IO_L])
+#define RSCAN0RMPTR33LL (RSCAN0.RMPTR33.UINT8[R_IO_LL])
+#define RSCAN0RMPTR33LH (RSCAN0.RMPTR33.UINT8[R_IO_LH])
+#define RSCAN0RMPTR33H (RSCAN0.RMPTR33.UINT16[R_IO_H])
+#define RSCAN0RMPTR33HL (RSCAN0.RMPTR33.UINT8[R_IO_HL])
+#define RSCAN0RMPTR33HH (RSCAN0.RMPTR33.UINT8[R_IO_HH])
+#define RSCAN0RMDF033 (RSCAN0.RMDF033.UINT32)
+#define RSCAN0RMDF033L (RSCAN0.RMDF033.UINT16[R_IO_L])
+#define RSCAN0RMDF033LL (RSCAN0.RMDF033.UINT8[R_IO_LL])
+#define RSCAN0RMDF033LH (RSCAN0.RMDF033.UINT8[R_IO_LH])
+#define RSCAN0RMDF033H (RSCAN0.RMDF033.UINT16[R_IO_H])
+#define RSCAN0RMDF033HL (RSCAN0.RMDF033.UINT8[R_IO_HL])
+#define RSCAN0RMDF033HH (RSCAN0.RMDF033.UINT8[R_IO_HH])
+#define RSCAN0RMDF133 (RSCAN0.RMDF133.UINT32)
+#define RSCAN0RMDF133L (RSCAN0.RMDF133.UINT16[R_IO_L])
+#define RSCAN0RMDF133LL (RSCAN0.RMDF133.UINT8[R_IO_LL])
+#define RSCAN0RMDF133LH (RSCAN0.RMDF133.UINT8[R_IO_LH])
+#define RSCAN0RMDF133H (RSCAN0.RMDF133.UINT16[R_IO_H])
+#define RSCAN0RMDF133HL (RSCAN0.RMDF133.UINT8[R_IO_HL])
+#define RSCAN0RMDF133HH (RSCAN0.RMDF133.UINT8[R_IO_HH])
+#define RSCAN0RMID34 (RSCAN0.RMID34.UINT32)
+#define RSCAN0RMID34L (RSCAN0.RMID34.UINT16[R_IO_L])
+#define RSCAN0RMID34LL (RSCAN0.RMID34.UINT8[R_IO_LL])
+#define RSCAN0RMID34LH (RSCAN0.RMID34.UINT8[R_IO_LH])
+#define RSCAN0RMID34H (RSCAN0.RMID34.UINT16[R_IO_H])
+#define RSCAN0RMID34HL (RSCAN0.RMID34.UINT8[R_IO_HL])
+#define RSCAN0RMID34HH (RSCAN0.RMID34.UINT8[R_IO_HH])
+#define RSCAN0RMPTR34 (RSCAN0.RMPTR34.UINT32)
+#define RSCAN0RMPTR34L (RSCAN0.RMPTR34.UINT16[R_IO_L])
+#define RSCAN0RMPTR34LL (RSCAN0.RMPTR34.UINT8[R_IO_LL])
+#define RSCAN0RMPTR34LH (RSCAN0.RMPTR34.UINT8[R_IO_LH])
+#define RSCAN0RMPTR34H (RSCAN0.RMPTR34.UINT16[R_IO_H])
+#define RSCAN0RMPTR34HL (RSCAN0.RMPTR34.UINT8[R_IO_HL])
+#define RSCAN0RMPTR34HH (RSCAN0.RMPTR34.UINT8[R_IO_HH])
+#define RSCAN0RMDF034 (RSCAN0.RMDF034.UINT32)
+#define RSCAN0RMDF034L (RSCAN0.RMDF034.UINT16[R_IO_L])
+#define RSCAN0RMDF034LL (RSCAN0.RMDF034.UINT8[R_IO_LL])
+#define RSCAN0RMDF034LH (RSCAN0.RMDF034.UINT8[R_IO_LH])
+#define RSCAN0RMDF034H (RSCAN0.RMDF034.UINT16[R_IO_H])
+#define RSCAN0RMDF034HL (RSCAN0.RMDF034.UINT8[R_IO_HL])
+#define RSCAN0RMDF034HH (RSCAN0.RMDF034.UINT8[R_IO_HH])
+#define RSCAN0RMDF134 (RSCAN0.RMDF134.UINT32)
+#define RSCAN0RMDF134L (RSCAN0.RMDF134.UINT16[R_IO_L])
+#define RSCAN0RMDF134LL (RSCAN0.RMDF134.UINT8[R_IO_LL])
+#define RSCAN0RMDF134LH (RSCAN0.RMDF134.UINT8[R_IO_LH])
+#define RSCAN0RMDF134H (RSCAN0.RMDF134.UINT16[R_IO_H])
+#define RSCAN0RMDF134HL (RSCAN0.RMDF134.UINT8[R_IO_HL])
+#define RSCAN0RMDF134HH (RSCAN0.RMDF134.UINT8[R_IO_HH])
+#define RSCAN0RMID35 (RSCAN0.RMID35.UINT32)
+#define RSCAN0RMID35L (RSCAN0.RMID35.UINT16[R_IO_L])
+#define RSCAN0RMID35LL (RSCAN0.RMID35.UINT8[R_IO_LL])
+#define RSCAN0RMID35LH (RSCAN0.RMID35.UINT8[R_IO_LH])
+#define RSCAN0RMID35H (RSCAN0.RMID35.UINT16[R_IO_H])
+#define RSCAN0RMID35HL (RSCAN0.RMID35.UINT8[R_IO_HL])
+#define RSCAN0RMID35HH (RSCAN0.RMID35.UINT8[R_IO_HH])
+#define RSCAN0RMPTR35 (RSCAN0.RMPTR35.UINT32)
+#define RSCAN0RMPTR35L (RSCAN0.RMPTR35.UINT16[R_IO_L])
+#define RSCAN0RMPTR35LL (RSCAN0.RMPTR35.UINT8[R_IO_LL])
+#define RSCAN0RMPTR35LH (RSCAN0.RMPTR35.UINT8[R_IO_LH])
+#define RSCAN0RMPTR35H (RSCAN0.RMPTR35.UINT16[R_IO_H])
+#define RSCAN0RMPTR35HL (RSCAN0.RMPTR35.UINT8[R_IO_HL])
+#define RSCAN0RMPTR35HH (RSCAN0.RMPTR35.UINT8[R_IO_HH])
+#define RSCAN0RMDF035 (RSCAN0.RMDF035.UINT32)
+#define RSCAN0RMDF035L (RSCAN0.RMDF035.UINT16[R_IO_L])
+#define RSCAN0RMDF035LL (RSCAN0.RMDF035.UINT8[R_IO_LL])
+#define RSCAN0RMDF035LH (RSCAN0.RMDF035.UINT8[R_IO_LH])
+#define RSCAN0RMDF035H (RSCAN0.RMDF035.UINT16[R_IO_H])
+#define RSCAN0RMDF035HL (RSCAN0.RMDF035.UINT8[R_IO_HL])
+#define RSCAN0RMDF035HH (RSCAN0.RMDF035.UINT8[R_IO_HH])
+#define RSCAN0RMDF135 (RSCAN0.RMDF135.UINT32)
+#define RSCAN0RMDF135L (RSCAN0.RMDF135.UINT16[R_IO_L])
+#define RSCAN0RMDF135LL (RSCAN0.RMDF135.UINT8[R_IO_LL])
+#define RSCAN0RMDF135LH (RSCAN0.RMDF135.UINT8[R_IO_LH])
+#define RSCAN0RMDF135H (RSCAN0.RMDF135.UINT16[R_IO_H])
+#define RSCAN0RMDF135HL (RSCAN0.RMDF135.UINT8[R_IO_HL])
+#define RSCAN0RMDF135HH (RSCAN0.RMDF135.UINT8[R_IO_HH])
+#define RSCAN0RMID36 (RSCAN0.RMID36.UINT32)
+#define RSCAN0RMID36L (RSCAN0.RMID36.UINT16[R_IO_L])
+#define RSCAN0RMID36LL (RSCAN0.RMID36.UINT8[R_IO_LL])
+#define RSCAN0RMID36LH (RSCAN0.RMID36.UINT8[R_IO_LH])
+#define RSCAN0RMID36H (RSCAN0.RMID36.UINT16[R_IO_H])
+#define RSCAN0RMID36HL (RSCAN0.RMID36.UINT8[R_IO_HL])
+#define RSCAN0RMID36HH (RSCAN0.RMID36.UINT8[R_IO_HH])
+#define RSCAN0RMPTR36 (RSCAN0.RMPTR36.UINT32)
+#define RSCAN0RMPTR36L (RSCAN0.RMPTR36.UINT16[R_IO_L])
+#define RSCAN0RMPTR36LL (RSCAN0.RMPTR36.UINT8[R_IO_LL])
+#define RSCAN0RMPTR36LH (RSCAN0.RMPTR36.UINT8[R_IO_LH])
+#define RSCAN0RMPTR36H (RSCAN0.RMPTR36.UINT16[R_IO_H])
+#define RSCAN0RMPTR36HL (RSCAN0.RMPTR36.UINT8[R_IO_HL])
+#define RSCAN0RMPTR36HH (RSCAN0.RMPTR36.UINT8[R_IO_HH])
+#define RSCAN0RMDF036 (RSCAN0.RMDF036.UINT32)
+#define RSCAN0RMDF036L (RSCAN0.RMDF036.UINT16[R_IO_L])
+#define RSCAN0RMDF036LL (RSCAN0.RMDF036.UINT8[R_IO_LL])
+#define RSCAN0RMDF036LH (RSCAN0.RMDF036.UINT8[R_IO_LH])
+#define RSCAN0RMDF036H (RSCAN0.RMDF036.UINT16[R_IO_H])
+#define RSCAN0RMDF036HL (RSCAN0.RMDF036.UINT8[R_IO_HL])
+#define RSCAN0RMDF036HH (RSCAN0.RMDF036.UINT8[R_IO_HH])
+#define RSCAN0RMDF136 (RSCAN0.RMDF136.UINT32)
+#define RSCAN0RMDF136L (RSCAN0.RMDF136.UINT16[R_IO_L])
+#define RSCAN0RMDF136LL (RSCAN0.RMDF136.UINT8[R_IO_LL])
+#define RSCAN0RMDF136LH (RSCAN0.RMDF136.UINT8[R_IO_LH])
+#define RSCAN0RMDF136H (RSCAN0.RMDF136.UINT16[R_IO_H])
+#define RSCAN0RMDF136HL (RSCAN0.RMDF136.UINT8[R_IO_HL])
+#define RSCAN0RMDF136HH (RSCAN0.RMDF136.UINT8[R_IO_HH])
+#define RSCAN0RMID37 (RSCAN0.RMID37.UINT32)
+#define RSCAN0RMID37L (RSCAN0.RMID37.UINT16[R_IO_L])
+#define RSCAN0RMID37LL (RSCAN0.RMID37.UINT8[R_IO_LL])
+#define RSCAN0RMID37LH (RSCAN0.RMID37.UINT8[R_IO_LH])
+#define RSCAN0RMID37H (RSCAN0.RMID37.UINT16[R_IO_H])
+#define RSCAN0RMID37HL (RSCAN0.RMID37.UINT8[R_IO_HL])
+#define RSCAN0RMID37HH (RSCAN0.RMID37.UINT8[R_IO_HH])
+#define RSCAN0RMPTR37 (RSCAN0.RMPTR37.UINT32)
+#define RSCAN0RMPTR37L (RSCAN0.RMPTR37.UINT16[R_IO_L])
+#define RSCAN0RMPTR37LL (RSCAN0.RMPTR37.UINT8[R_IO_LL])
+#define RSCAN0RMPTR37LH (RSCAN0.RMPTR37.UINT8[R_IO_LH])
+#define RSCAN0RMPTR37H (RSCAN0.RMPTR37.UINT16[R_IO_H])
+#define RSCAN0RMPTR37HL (RSCAN0.RMPTR37.UINT8[R_IO_HL])
+#define RSCAN0RMPTR37HH (RSCAN0.RMPTR37.UINT8[R_IO_HH])
+#define RSCAN0RMDF037 (RSCAN0.RMDF037.UINT32)
+#define RSCAN0RMDF037L (RSCAN0.RMDF037.UINT16[R_IO_L])
+#define RSCAN0RMDF037LL (RSCAN0.RMDF037.UINT8[R_IO_LL])
+#define RSCAN0RMDF037LH (RSCAN0.RMDF037.UINT8[R_IO_LH])
+#define RSCAN0RMDF037H (RSCAN0.RMDF037.UINT16[R_IO_H])
+#define RSCAN0RMDF037HL (RSCAN0.RMDF037.UINT8[R_IO_HL])
+#define RSCAN0RMDF037HH (RSCAN0.RMDF037.UINT8[R_IO_HH])
+#define RSCAN0RMDF137 (RSCAN0.RMDF137.UINT32)
+#define RSCAN0RMDF137L (RSCAN0.RMDF137.UINT16[R_IO_L])
+#define RSCAN0RMDF137LL (RSCAN0.RMDF137.UINT8[R_IO_LL])
+#define RSCAN0RMDF137LH (RSCAN0.RMDF137.UINT8[R_IO_LH])
+#define RSCAN0RMDF137H (RSCAN0.RMDF137.UINT16[R_IO_H])
+#define RSCAN0RMDF137HL (RSCAN0.RMDF137.UINT8[R_IO_HL])
+#define RSCAN0RMDF137HH (RSCAN0.RMDF137.UINT8[R_IO_HH])
+#define RSCAN0RMID38 (RSCAN0.RMID38.UINT32)
+#define RSCAN0RMID38L (RSCAN0.RMID38.UINT16[R_IO_L])
+#define RSCAN0RMID38LL (RSCAN0.RMID38.UINT8[R_IO_LL])
+#define RSCAN0RMID38LH (RSCAN0.RMID38.UINT8[R_IO_LH])
+#define RSCAN0RMID38H (RSCAN0.RMID38.UINT16[R_IO_H])
+#define RSCAN0RMID38HL (RSCAN0.RMID38.UINT8[R_IO_HL])
+#define RSCAN0RMID38HH (RSCAN0.RMID38.UINT8[R_IO_HH])
+#define RSCAN0RMPTR38 (RSCAN0.RMPTR38.UINT32)
+#define RSCAN0RMPTR38L (RSCAN0.RMPTR38.UINT16[R_IO_L])
+#define RSCAN0RMPTR38LL (RSCAN0.RMPTR38.UINT8[R_IO_LL])
+#define RSCAN0RMPTR38LH (RSCAN0.RMPTR38.UINT8[R_IO_LH])
+#define RSCAN0RMPTR38H (RSCAN0.RMPTR38.UINT16[R_IO_H])
+#define RSCAN0RMPTR38HL (RSCAN0.RMPTR38.UINT8[R_IO_HL])
+#define RSCAN0RMPTR38HH (RSCAN0.RMPTR38.UINT8[R_IO_HH])
+#define RSCAN0RMDF038 (RSCAN0.RMDF038.UINT32)
+#define RSCAN0RMDF038L (RSCAN0.RMDF038.UINT16[R_IO_L])
+#define RSCAN0RMDF038LL (RSCAN0.RMDF038.UINT8[R_IO_LL])
+#define RSCAN0RMDF038LH (RSCAN0.RMDF038.UINT8[R_IO_LH])
+#define RSCAN0RMDF038H (RSCAN0.RMDF038.UINT16[R_IO_H])
+#define RSCAN0RMDF038HL (RSCAN0.RMDF038.UINT8[R_IO_HL])
+#define RSCAN0RMDF038HH (RSCAN0.RMDF038.UINT8[R_IO_HH])
+#define RSCAN0RMDF138 (RSCAN0.RMDF138.UINT32)
+#define RSCAN0RMDF138L (RSCAN0.RMDF138.UINT16[R_IO_L])
+#define RSCAN0RMDF138LL (RSCAN0.RMDF138.UINT8[R_IO_LL])
+#define RSCAN0RMDF138LH (RSCAN0.RMDF138.UINT8[R_IO_LH])
+#define RSCAN0RMDF138H (RSCAN0.RMDF138.UINT16[R_IO_H])
+#define RSCAN0RMDF138HL (RSCAN0.RMDF138.UINT8[R_IO_HL])
+#define RSCAN0RMDF138HH (RSCAN0.RMDF138.UINT8[R_IO_HH])
+#define RSCAN0RMID39 (RSCAN0.RMID39.UINT32)
+#define RSCAN0RMID39L (RSCAN0.RMID39.UINT16[R_IO_L])
+#define RSCAN0RMID39LL (RSCAN0.RMID39.UINT8[R_IO_LL])
+#define RSCAN0RMID39LH (RSCAN0.RMID39.UINT8[R_IO_LH])
+#define RSCAN0RMID39H (RSCAN0.RMID39.UINT16[R_IO_H])
+#define RSCAN0RMID39HL (RSCAN0.RMID39.UINT8[R_IO_HL])
+#define RSCAN0RMID39HH (RSCAN0.RMID39.UINT8[R_IO_HH])
+#define RSCAN0RMPTR39 (RSCAN0.RMPTR39.UINT32)
+#define RSCAN0RMPTR39L (RSCAN0.RMPTR39.UINT16[R_IO_L])
+#define RSCAN0RMPTR39LL (RSCAN0.RMPTR39.UINT8[R_IO_LL])
+#define RSCAN0RMPTR39LH (RSCAN0.RMPTR39.UINT8[R_IO_LH])
+#define RSCAN0RMPTR39H (RSCAN0.RMPTR39.UINT16[R_IO_H])
+#define RSCAN0RMPTR39HL (RSCAN0.RMPTR39.UINT8[R_IO_HL])
+#define RSCAN0RMPTR39HH (RSCAN0.RMPTR39.UINT8[R_IO_HH])
+#define RSCAN0RMDF039 (RSCAN0.RMDF039.UINT32)
+#define RSCAN0RMDF039L (RSCAN0.RMDF039.UINT16[R_IO_L])
+#define RSCAN0RMDF039LL (RSCAN0.RMDF039.UINT8[R_IO_LL])
+#define RSCAN0RMDF039LH (RSCAN0.RMDF039.UINT8[R_IO_LH])
+#define RSCAN0RMDF039H (RSCAN0.RMDF039.UINT16[R_IO_H])
+#define RSCAN0RMDF039HL (RSCAN0.RMDF039.UINT8[R_IO_HL])
+#define RSCAN0RMDF039HH (RSCAN0.RMDF039.UINT8[R_IO_HH])
+#define RSCAN0RMDF139 (RSCAN0.RMDF139.UINT32)
+#define RSCAN0RMDF139L (RSCAN0.RMDF139.UINT16[R_IO_L])
+#define RSCAN0RMDF139LL (RSCAN0.RMDF139.UINT8[R_IO_LL])
+#define RSCAN0RMDF139LH (RSCAN0.RMDF139.UINT8[R_IO_LH])
+#define RSCAN0RMDF139H (RSCAN0.RMDF139.UINT16[R_IO_H])
+#define RSCAN0RMDF139HL (RSCAN0.RMDF139.UINT8[R_IO_HL])
+#define RSCAN0RMDF139HH (RSCAN0.RMDF139.UINT8[R_IO_HH])
+#define RSCAN0RMID40 (RSCAN0.RMID40.UINT32)
+#define RSCAN0RMID40L (RSCAN0.RMID40.UINT16[R_IO_L])
+#define RSCAN0RMID40LL (RSCAN0.RMID40.UINT8[R_IO_LL])
+#define RSCAN0RMID40LH (RSCAN0.RMID40.UINT8[R_IO_LH])
+#define RSCAN0RMID40H (RSCAN0.RMID40.UINT16[R_IO_H])
+#define RSCAN0RMID40HL (RSCAN0.RMID40.UINT8[R_IO_HL])
+#define RSCAN0RMID40HH (RSCAN0.RMID40.UINT8[R_IO_HH])
+#define RSCAN0RMPTR40 (RSCAN0.RMPTR40.UINT32)
+#define RSCAN0RMPTR40L (RSCAN0.RMPTR40.UINT16[R_IO_L])
+#define RSCAN0RMPTR40LL (RSCAN0.RMPTR40.UINT8[R_IO_LL])
+#define RSCAN0RMPTR40LH (RSCAN0.RMPTR40.UINT8[R_IO_LH])
+#define RSCAN0RMPTR40H (RSCAN0.RMPTR40.UINT16[R_IO_H])
+#define RSCAN0RMPTR40HL (RSCAN0.RMPTR40.UINT8[R_IO_HL])
+#define RSCAN0RMPTR40HH (RSCAN0.RMPTR40.UINT8[R_IO_HH])
+#define RSCAN0RMDF040 (RSCAN0.RMDF040.UINT32)
+#define RSCAN0RMDF040L (RSCAN0.RMDF040.UINT16[R_IO_L])
+#define RSCAN0RMDF040LL (RSCAN0.RMDF040.UINT8[R_IO_LL])
+#define RSCAN0RMDF040LH (RSCAN0.RMDF040.UINT8[R_IO_LH])
+#define RSCAN0RMDF040H (RSCAN0.RMDF040.UINT16[R_IO_H])
+#define RSCAN0RMDF040HL (RSCAN0.RMDF040.UINT8[R_IO_HL])
+#define RSCAN0RMDF040HH (RSCAN0.RMDF040.UINT8[R_IO_HH])
+#define RSCAN0RMDF140 (RSCAN0.RMDF140.UINT32)
+#define RSCAN0RMDF140L (RSCAN0.RMDF140.UINT16[R_IO_L])
+#define RSCAN0RMDF140LL (RSCAN0.RMDF140.UINT8[R_IO_LL])
+#define RSCAN0RMDF140LH (RSCAN0.RMDF140.UINT8[R_IO_LH])
+#define RSCAN0RMDF140H (RSCAN0.RMDF140.UINT16[R_IO_H])
+#define RSCAN0RMDF140HL (RSCAN0.RMDF140.UINT8[R_IO_HL])
+#define RSCAN0RMDF140HH (RSCAN0.RMDF140.UINT8[R_IO_HH])
+#define RSCAN0RMID41 (RSCAN0.RMID41.UINT32)
+#define RSCAN0RMID41L (RSCAN0.RMID41.UINT16[R_IO_L])
+#define RSCAN0RMID41LL (RSCAN0.RMID41.UINT8[R_IO_LL])
+#define RSCAN0RMID41LH (RSCAN0.RMID41.UINT8[R_IO_LH])
+#define RSCAN0RMID41H (RSCAN0.RMID41.UINT16[R_IO_H])
+#define RSCAN0RMID41HL (RSCAN0.RMID41.UINT8[R_IO_HL])
+#define RSCAN0RMID41HH (RSCAN0.RMID41.UINT8[R_IO_HH])
+#define RSCAN0RMPTR41 (RSCAN0.RMPTR41.UINT32)
+#define RSCAN0RMPTR41L (RSCAN0.RMPTR41.UINT16[R_IO_L])
+#define RSCAN0RMPTR41LL (RSCAN0.RMPTR41.UINT8[R_IO_LL])
+#define RSCAN0RMPTR41LH (RSCAN0.RMPTR41.UINT8[R_IO_LH])
+#define RSCAN0RMPTR41H (RSCAN0.RMPTR41.UINT16[R_IO_H])
+#define RSCAN0RMPTR41HL (RSCAN0.RMPTR41.UINT8[R_IO_HL])
+#define RSCAN0RMPTR41HH (RSCAN0.RMPTR41.UINT8[R_IO_HH])
+#define RSCAN0RMDF041 (RSCAN0.RMDF041.UINT32)
+#define RSCAN0RMDF041L (RSCAN0.RMDF041.UINT16[R_IO_L])
+#define RSCAN0RMDF041LL (RSCAN0.RMDF041.UINT8[R_IO_LL])
+#define RSCAN0RMDF041LH (RSCAN0.RMDF041.UINT8[R_IO_LH])
+#define RSCAN0RMDF041H (RSCAN0.RMDF041.UINT16[R_IO_H])
+#define RSCAN0RMDF041HL (RSCAN0.RMDF041.UINT8[R_IO_HL])
+#define RSCAN0RMDF041HH (RSCAN0.RMDF041.UINT8[R_IO_HH])
+#define RSCAN0RMDF141 (RSCAN0.RMDF141.UINT32)
+#define RSCAN0RMDF141L (RSCAN0.RMDF141.UINT16[R_IO_L])
+#define RSCAN0RMDF141LL (RSCAN0.RMDF141.UINT8[R_IO_LL])
+#define RSCAN0RMDF141LH (RSCAN0.RMDF141.UINT8[R_IO_LH])
+#define RSCAN0RMDF141H (RSCAN0.RMDF141.UINT16[R_IO_H])
+#define RSCAN0RMDF141HL (RSCAN0.RMDF141.UINT8[R_IO_HL])
+#define RSCAN0RMDF141HH (RSCAN0.RMDF141.UINT8[R_IO_HH])
+#define RSCAN0RMID42 (RSCAN0.RMID42.UINT32)
+#define RSCAN0RMID42L (RSCAN0.RMID42.UINT16[R_IO_L])
+#define RSCAN0RMID42LL (RSCAN0.RMID42.UINT8[R_IO_LL])
+#define RSCAN0RMID42LH (RSCAN0.RMID42.UINT8[R_IO_LH])
+#define RSCAN0RMID42H (RSCAN0.RMID42.UINT16[R_IO_H])
+#define RSCAN0RMID42HL (RSCAN0.RMID42.UINT8[R_IO_HL])
+#define RSCAN0RMID42HH (RSCAN0.RMID42.UINT8[R_IO_HH])
+#define RSCAN0RMPTR42 (RSCAN0.RMPTR42.UINT32)
+#define RSCAN0RMPTR42L (RSCAN0.RMPTR42.UINT16[R_IO_L])
+#define RSCAN0RMPTR42LL (RSCAN0.RMPTR42.UINT8[R_IO_LL])
+#define RSCAN0RMPTR42LH (RSCAN0.RMPTR42.UINT8[R_IO_LH])
+#define RSCAN0RMPTR42H (RSCAN0.RMPTR42.UINT16[R_IO_H])
+#define RSCAN0RMPTR42HL (RSCAN0.RMPTR42.UINT8[R_IO_HL])
+#define RSCAN0RMPTR42HH (RSCAN0.RMPTR42.UINT8[R_IO_HH])
+#define RSCAN0RMDF042 (RSCAN0.RMDF042.UINT32)
+#define RSCAN0RMDF042L (RSCAN0.RMDF042.UINT16[R_IO_L])
+#define RSCAN0RMDF042LL (RSCAN0.RMDF042.UINT8[R_IO_LL])
+#define RSCAN0RMDF042LH (RSCAN0.RMDF042.UINT8[R_IO_LH])
+#define RSCAN0RMDF042H (RSCAN0.RMDF042.UINT16[R_IO_H])
+#define RSCAN0RMDF042HL (RSCAN0.RMDF042.UINT8[R_IO_HL])
+#define RSCAN0RMDF042HH (RSCAN0.RMDF042.UINT8[R_IO_HH])
+#define RSCAN0RMDF142 (RSCAN0.RMDF142.UINT32)
+#define RSCAN0RMDF142L (RSCAN0.RMDF142.UINT16[R_IO_L])
+#define RSCAN0RMDF142LL (RSCAN0.RMDF142.UINT8[R_IO_LL])
+#define RSCAN0RMDF142LH (RSCAN0.RMDF142.UINT8[R_IO_LH])
+#define RSCAN0RMDF142H (RSCAN0.RMDF142.UINT16[R_IO_H])
+#define RSCAN0RMDF142HL (RSCAN0.RMDF142.UINT8[R_IO_HL])
+#define RSCAN0RMDF142HH (RSCAN0.RMDF142.UINT8[R_IO_HH])
+#define RSCAN0RMID43 (RSCAN0.RMID43.UINT32)
+#define RSCAN0RMID43L (RSCAN0.RMID43.UINT16[R_IO_L])
+#define RSCAN0RMID43LL (RSCAN0.RMID43.UINT8[R_IO_LL])
+#define RSCAN0RMID43LH (RSCAN0.RMID43.UINT8[R_IO_LH])
+#define RSCAN0RMID43H (RSCAN0.RMID43.UINT16[R_IO_H])
+#define RSCAN0RMID43HL (RSCAN0.RMID43.UINT8[R_IO_HL])
+#define RSCAN0RMID43HH (RSCAN0.RMID43.UINT8[R_IO_HH])
+#define RSCAN0RMPTR43 (RSCAN0.RMPTR43.UINT32)
+#define RSCAN0RMPTR43L (RSCAN0.RMPTR43.UINT16[R_IO_L])
+#define RSCAN0RMPTR43LL (RSCAN0.RMPTR43.UINT8[R_IO_LL])
+#define RSCAN0RMPTR43LH (RSCAN0.RMPTR43.UINT8[R_IO_LH])
+#define RSCAN0RMPTR43H (RSCAN0.RMPTR43.UINT16[R_IO_H])
+#define RSCAN0RMPTR43HL (RSCAN0.RMPTR43.UINT8[R_IO_HL])
+#define RSCAN0RMPTR43HH (RSCAN0.RMPTR43.UINT8[R_IO_HH])
+#define RSCAN0RMDF043 (RSCAN0.RMDF043.UINT32)
+#define RSCAN0RMDF043L (RSCAN0.RMDF043.UINT16[R_IO_L])
+#define RSCAN0RMDF043LL (RSCAN0.RMDF043.UINT8[R_IO_LL])
+#define RSCAN0RMDF043LH (RSCAN0.RMDF043.UINT8[R_IO_LH])
+#define RSCAN0RMDF043H (RSCAN0.RMDF043.UINT16[R_IO_H])
+#define RSCAN0RMDF043HL (RSCAN0.RMDF043.UINT8[R_IO_HL])
+#define RSCAN0RMDF043HH (RSCAN0.RMDF043.UINT8[R_IO_HH])
+#define RSCAN0RMDF143 (RSCAN0.RMDF143.UINT32)
+#define RSCAN0RMDF143L (RSCAN0.RMDF143.UINT16[R_IO_L])
+#define RSCAN0RMDF143LL (RSCAN0.RMDF143.UINT8[R_IO_LL])
+#define RSCAN0RMDF143LH (RSCAN0.RMDF143.UINT8[R_IO_LH])
+#define RSCAN0RMDF143H (RSCAN0.RMDF143.UINT16[R_IO_H])
+#define RSCAN0RMDF143HL (RSCAN0.RMDF143.UINT8[R_IO_HL])
+#define RSCAN0RMDF143HH (RSCAN0.RMDF143.UINT8[R_IO_HH])
+#define RSCAN0RMID44 (RSCAN0.RMID44.UINT32)
+#define RSCAN0RMID44L (RSCAN0.RMID44.UINT16[R_IO_L])
+#define RSCAN0RMID44LL (RSCAN0.RMID44.UINT8[R_IO_LL])
+#define RSCAN0RMID44LH (RSCAN0.RMID44.UINT8[R_IO_LH])
+#define RSCAN0RMID44H (RSCAN0.RMID44.UINT16[R_IO_H])
+#define RSCAN0RMID44HL (RSCAN0.RMID44.UINT8[R_IO_HL])
+#define RSCAN0RMID44HH (RSCAN0.RMID44.UINT8[R_IO_HH])
+#define RSCAN0RMPTR44 (RSCAN0.RMPTR44.UINT32)
+#define RSCAN0RMPTR44L (RSCAN0.RMPTR44.UINT16[R_IO_L])
+#define RSCAN0RMPTR44LL (RSCAN0.RMPTR44.UINT8[R_IO_LL])
+#define RSCAN0RMPTR44LH (RSCAN0.RMPTR44.UINT8[R_IO_LH])
+#define RSCAN0RMPTR44H (RSCAN0.RMPTR44.UINT16[R_IO_H])
+#define RSCAN0RMPTR44HL (RSCAN0.RMPTR44.UINT8[R_IO_HL])
+#define RSCAN0RMPTR44HH (RSCAN0.RMPTR44.UINT8[R_IO_HH])
+#define RSCAN0RMDF044 (RSCAN0.RMDF044.UINT32)
+#define RSCAN0RMDF044L (RSCAN0.RMDF044.UINT16[R_IO_L])
+#define RSCAN0RMDF044LL (RSCAN0.RMDF044.UINT8[R_IO_LL])
+#define RSCAN0RMDF044LH (RSCAN0.RMDF044.UINT8[R_IO_LH])
+#define RSCAN0RMDF044H (RSCAN0.RMDF044.UINT16[R_IO_H])
+#define RSCAN0RMDF044HL (RSCAN0.RMDF044.UINT8[R_IO_HL])
+#define RSCAN0RMDF044HH (RSCAN0.RMDF044.UINT8[R_IO_HH])
+#define RSCAN0RMDF144 (RSCAN0.RMDF144.UINT32)
+#define RSCAN0RMDF144L (RSCAN0.RMDF144.UINT16[R_IO_L])
+#define RSCAN0RMDF144LL (RSCAN0.RMDF144.UINT8[R_IO_LL])
+#define RSCAN0RMDF144LH (RSCAN0.RMDF144.UINT8[R_IO_LH])
+#define RSCAN0RMDF144H (RSCAN0.RMDF144.UINT16[R_IO_H])
+#define RSCAN0RMDF144HL (RSCAN0.RMDF144.UINT8[R_IO_HL])
+#define RSCAN0RMDF144HH (RSCAN0.RMDF144.UINT8[R_IO_HH])
+#define RSCAN0RMID45 (RSCAN0.RMID45.UINT32)
+#define RSCAN0RMID45L (RSCAN0.RMID45.UINT16[R_IO_L])
+#define RSCAN0RMID45LL (RSCAN0.RMID45.UINT8[R_IO_LL])
+#define RSCAN0RMID45LH (RSCAN0.RMID45.UINT8[R_IO_LH])
+#define RSCAN0RMID45H (RSCAN0.RMID45.UINT16[R_IO_H])
+#define RSCAN0RMID45HL (RSCAN0.RMID45.UINT8[R_IO_HL])
+#define RSCAN0RMID45HH (RSCAN0.RMID45.UINT8[R_IO_HH])
+#define RSCAN0RMPTR45 (RSCAN0.RMPTR45.UINT32)
+#define RSCAN0RMPTR45L (RSCAN0.RMPTR45.UINT16[R_IO_L])
+#define RSCAN0RMPTR45LL (RSCAN0.RMPTR45.UINT8[R_IO_LL])
+#define RSCAN0RMPTR45LH (RSCAN0.RMPTR45.UINT8[R_IO_LH])
+#define RSCAN0RMPTR45H (RSCAN0.RMPTR45.UINT16[R_IO_H])
+#define RSCAN0RMPTR45HL (RSCAN0.RMPTR45.UINT8[R_IO_HL])
+#define RSCAN0RMPTR45HH (RSCAN0.RMPTR45.UINT8[R_IO_HH])
+#define RSCAN0RMDF045 (RSCAN0.RMDF045.UINT32)
+#define RSCAN0RMDF045L (RSCAN0.RMDF045.UINT16[R_IO_L])
+#define RSCAN0RMDF045LL (RSCAN0.RMDF045.UINT8[R_IO_LL])
+#define RSCAN0RMDF045LH (RSCAN0.RMDF045.UINT8[R_IO_LH])
+#define RSCAN0RMDF045H (RSCAN0.RMDF045.UINT16[R_IO_H])
+#define RSCAN0RMDF045HL (RSCAN0.RMDF045.UINT8[R_IO_HL])
+#define RSCAN0RMDF045HH (RSCAN0.RMDF045.UINT8[R_IO_HH])
+#define RSCAN0RMDF145 (RSCAN0.RMDF145.UINT32)
+#define RSCAN0RMDF145L (RSCAN0.RMDF145.UINT16[R_IO_L])
+#define RSCAN0RMDF145LL (RSCAN0.RMDF145.UINT8[R_IO_LL])
+#define RSCAN0RMDF145LH (RSCAN0.RMDF145.UINT8[R_IO_LH])
+#define RSCAN0RMDF145H (RSCAN0.RMDF145.UINT16[R_IO_H])
+#define RSCAN0RMDF145HL (RSCAN0.RMDF145.UINT8[R_IO_HL])
+#define RSCAN0RMDF145HH (RSCAN0.RMDF145.UINT8[R_IO_HH])
+#define RSCAN0RMID46 (RSCAN0.RMID46.UINT32)
+#define RSCAN0RMID46L (RSCAN0.RMID46.UINT16[R_IO_L])
+#define RSCAN0RMID46LL (RSCAN0.RMID46.UINT8[R_IO_LL])
+#define RSCAN0RMID46LH (RSCAN0.RMID46.UINT8[R_IO_LH])
+#define RSCAN0RMID46H (RSCAN0.RMID46.UINT16[R_IO_H])
+#define RSCAN0RMID46HL (RSCAN0.RMID46.UINT8[R_IO_HL])
+#define RSCAN0RMID46HH (RSCAN0.RMID46.UINT8[R_IO_HH])
+#define RSCAN0RMPTR46 (RSCAN0.RMPTR46.UINT32)
+#define RSCAN0RMPTR46L (RSCAN0.RMPTR46.UINT16[R_IO_L])
+#define RSCAN0RMPTR46LL (RSCAN0.RMPTR46.UINT8[R_IO_LL])
+#define RSCAN0RMPTR46LH (RSCAN0.RMPTR46.UINT8[R_IO_LH])
+#define RSCAN0RMPTR46H (RSCAN0.RMPTR46.UINT16[R_IO_H])
+#define RSCAN0RMPTR46HL (RSCAN0.RMPTR46.UINT8[R_IO_HL])
+#define RSCAN0RMPTR46HH (RSCAN0.RMPTR46.UINT8[R_IO_HH])
+#define RSCAN0RMDF046 (RSCAN0.RMDF046.UINT32)
+#define RSCAN0RMDF046L (RSCAN0.RMDF046.UINT16[R_IO_L])
+#define RSCAN0RMDF046LL (RSCAN0.RMDF046.UINT8[R_IO_LL])
+#define RSCAN0RMDF046LH (RSCAN0.RMDF046.UINT8[R_IO_LH])
+#define RSCAN0RMDF046H (RSCAN0.RMDF046.UINT16[R_IO_H])
+#define RSCAN0RMDF046HL (RSCAN0.RMDF046.UINT8[R_IO_HL])
+#define RSCAN0RMDF046HH (RSCAN0.RMDF046.UINT8[R_IO_HH])
+#define RSCAN0RMDF146 (RSCAN0.RMDF146.UINT32)
+#define RSCAN0RMDF146L (RSCAN0.RMDF146.UINT16[R_IO_L])
+#define RSCAN0RMDF146LL (RSCAN0.RMDF146.UINT8[R_IO_LL])
+#define RSCAN0RMDF146LH (RSCAN0.RMDF146.UINT8[R_IO_LH])
+#define RSCAN0RMDF146H (RSCAN0.RMDF146.UINT16[R_IO_H])
+#define RSCAN0RMDF146HL (RSCAN0.RMDF146.UINT8[R_IO_HL])
+#define RSCAN0RMDF146HH (RSCAN0.RMDF146.UINT8[R_IO_HH])
+#define RSCAN0RMID47 (RSCAN0.RMID47.UINT32)
+#define RSCAN0RMID47L (RSCAN0.RMID47.UINT16[R_IO_L])
+#define RSCAN0RMID47LL (RSCAN0.RMID47.UINT8[R_IO_LL])
+#define RSCAN0RMID47LH (RSCAN0.RMID47.UINT8[R_IO_LH])
+#define RSCAN0RMID47H (RSCAN0.RMID47.UINT16[R_IO_H])
+#define RSCAN0RMID47HL (RSCAN0.RMID47.UINT8[R_IO_HL])
+#define RSCAN0RMID47HH (RSCAN0.RMID47.UINT8[R_IO_HH])
+#define RSCAN0RMPTR47 (RSCAN0.RMPTR47.UINT32)
+#define RSCAN0RMPTR47L (RSCAN0.RMPTR47.UINT16[R_IO_L])
+#define RSCAN0RMPTR47LL (RSCAN0.RMPTR47.UINT8[R_IO_LL])
+#define RSCAN0RMPTR47LH (RSCAN0.RMPTR47.UINT8[R_IO_LH])
+#define RSCAN0RMPTR47H (RSCAN0.RMPTR47.UINT16[R_IO_H])
+#define RSCAN0RMPTR47HL (RSCAN0.RMPTR47.UINT8[R_IO_HL])
+#define RSCAN0RMPTR47HH (RSCAN0.RMPTR47.UINT8[R_IO_HH])
+#define RSCAN0RMDF047 (RSCAN0.RMDF047.UINT32)
+#define RSCAN0RMDF047L (RSCAN0.RMDF047.UINT16[R_IO_L])
+#define RSCAN0RMDF047LL (RSCAN0.RMDF047.UINT8[R_IO_LL])
+#define RSCAN0RMDF047LH (RSCAN0.RMDF047.UINT8[R_IO_LH])
+#define RSCAN0RMDF047H (RSCAN0.RMDF047.UINT16[R_IO_H])
+#define RSCAN0RMDF047HL (RSCAN0.RMDF047.UINT8[R_IO_HL])
+#define RSCAN0RMDF047HH (RSCAN0.RMDF047.UINT8[R_IO_HH])
+#define RSCAN0RMDF147 (RSCAN0.RMDF147.UINT32)
+#define RSCAN0RMDF147L (RSCAN0.RMDF147.UINT16[R_IO_L])
+#define RSCAN0RMDF147LL (RSCAN0.RMDF147.UINT8[R_IO_LL])
+#define RSCAN0RMDF147LH (RSCAN0.RMDF147.UINT8[R_IO_LH])
+#define RSCAN0RMDF147H (RSCAN0.RMDF147.UINT16[R_IO_H])
+#define RSCAN0RMDF147HL (RSCAN0.RMDF147.UINT8[R_IO_HL])
+#define RSCAN0RMDF147HH (RSCAN0.RMDF147.UINT8[R_IO_HH])
+#define RSCAN0RMID48 (RSCAN0.RMID48.UINT32)
+#define RSCAN0RMID48L (RSCAN0.RMID48.UINT16[R_IO_L])
+#define RSCAN0RMID48LL (RSCAN0.RMID48.UINT8[R_IO_LL])
+#define RSCAN0RMID48LH (RSCAN0.RMID48.UINT8[R_IO_LH])
+#define RSCAN0RMID48H (RSCAN0.RMID48.UINT16[R_IO_H])
+#define RSCAN0RMID48HL (RSCAN0.RMID48.UINT8[R_IO_HL])
+#define RSCAN0RMID48HH (RSCAN0.RMID48.UINT8[R_IO_HH])
+#define RSCAN0RMPTR48 (RSCAN0.RMPTR48.UINT32)
+#define RSCAN0RMPTR48L (RSCAN0.RMPTR48.UINT16[R_IO_L])
+#define RSCAN0RMPTR48LL (RSCAN0.RMPTR48.UINT8[R_IO_LL])
+#define RSCAN0RMPTR48LH (RSCAN0.RMPTR48.UINT8[R_IO_LH])
+#define RSCAN0RMPTR48H (RSCAN0.RMPTR48.UINT16[R_IO_H])
+#define RSCAN0RMPTR48HL (RSCAN0.RMPTR48.UINT8[R_IO_HL])
+#define RSCAN0RMPTR48HH (RSCAN0.RMPTR48.UINT8[R_IO_HH])
+#define RSCAN0RMDF048 (RSCAN0.RMDF048.UINT32)
+#define RSCAN0RMDF048L (RSCAN0.RMDF048.UINT16[R_IO_L])
+#define RSCAN0RMDF048LL (RSCAN0.RMDF048.UINT8[R_IO_LL])
+#define RSCAN0RMDF048LH (RSCAN0.RMDF048.UINT8[R_IO_LH])
+#define RSCAN0RMDF048H (RSCAN0.RMDF048.UINT16[R_IO_H])
+#define RSCAN0RMDF048HL (RSCAN0.RMDF048.UINT8[R_IO_HL])
+#define RSCAN0RMDF048HH (RSCAN0.RMDF048.UINT8[R_IO_HH])
+#define RSCAN0RMDF148 (RSCAN0.RMDF148.UINT32)
+#define RSCAN0RMDF148L (RSCAN0.RMDF148.UINT16[R_IO_L])
+#define RSCAN0RMDF148LL (RSCAN0.RMDF148.UINT8[R_IO_LL])
+#define RSCAN0RMDF148LH (RSCAN0.RMDF148.UINT8[R_IO_LH])
+#define RSCAN0RMDF148H (RSCAN0.RMDF148.UINT16[R_IO_H])
+#define RSCAN0RMDF148HL (RSCAN0.RMDF148.UINT8[R_IO_HL])
+#define RSCAN0RMDF148HH (RSCAN0.RMDF148.UINT8[R_IO_HH])
+#define RSCAN0RMID49 (RSCAN0.RMID49.UINT32)
+#define RSCAN0RMID49L (RSCAN0.RMID49.UINT16[R_IO_L])
+#define RSCAN0RMID49LL (RSCAN0.RMID49.UINT8[R_IO_LL])
+#define RSCAN0RMID49LH (RSCAN0.RMID49.UINT8[R_IO_LH])
+#define RSCAN0RMID49H (RSCAN0.RMID49.UINT16[R_IO_H])
+#define RSCAN0RMID49HL (RSCAN0.RMID49.UINT8[R_IO_HL])
+#define RSCAN0RMID49HH (RSCAN0.RMID49.UINT8[R_IO_HH])
+#define RSCAN0RMPTR49 (RSCAN0.RMPTR49.UINT32)
+#define RSCAN0RMPTR49L (RSCAN0.RMPTR49.UINT16[R_IO_L])
+#define RSCAN0RMPTR49LL (RSCAN0.RMPTR49.UINT8[R_IO_LL])
+#define RSCAN0RMPTR49LH (RSCAN0.RMPTR49.UINT8[R_IO_LH])
+#define RSCAN0RMPTR49H (RSCAN0.RMPTR49.UINT16[R_IO_H])
+#define RSCAN0RMPTR49HL (RSCAN0.RMPTR49.UINT8[R_IO_HL])
+#define RSCAN0RMPTR49HH (RSCAN0.RMPTR49.UINT8[R_IO_HH])
+#define RSCAN0RMDF049 (RSCAN0.RMDF049.UINT32)
+#define RSCAN0RMDF049L (RSCAN0.RMDF049.UINT16[R_IO_L])
+#define RSCAN0RMDF049LL (RSCAN0.RMDF049.UINT8[R_IO_LL])
+#define RSCAN0RMDF049LH (RSCAN0.RMDF049.UINT8[R_IO_LH])
+#define RSCAN0RMDF049H (RSCAN0.RMDF049.UINT16[R_IO_H])
+#define RSCAN0RMDF049HL (RSCAN0.RMDF049.UINT8[R_IO_HL])
+#define RSCAN0RMDF049HH (RSCAN0.RMDF049.UINT8[R_IO_HH])
+#define RSCAN0RMDF149 (RSCAN0.RMDF149.UINT32)
+#define RSCAN0RMDF149L (RSCAN0.RMDF149.UINT16[R_IO_L])
+#define RSCAN0RMDF149LL (RSCAN0.RMDF149.UINT8[R_IO_LL])
+#define RSCAN0RMDF149LH (RSCAN0.RMDF149.UINT8[R_IO_LH])
+#define RSCAN0RMDF149H (RSCAN0.RMDF149.UINT16[R_IO_H])
+#define RSCAN0RMDF149HL (RSCAN0.RMDF149.UINT8[R_IO_HL])
+#define RSCAN0RMDF149HH (RSCAN0.RMDF149.UINT8[R_IO_HH])
+#define RSCAN0RMID50 (RSCAN0.RMID50.UINT32)
+#define RSCAN0RMID50L (RSCAN0.RMID50.UINT16[R_IO_L])
+#define RSCAN0RMID50LL (RSCAN0.RMID50.UINT8[R_IO_LL])
+#define RSCAN0RMID50LH (RSCAN0.RMID50.UINT8[R_IO_LH])
+#define RSCAN0RMID50H (RSCAN0.RMID50.UINT16[R_IO_H])
+#define RSCAN0RMID50HL (RSCAN0.RMID50.UINT8[R_IO_HL])
+#define RSCAN0RMID50HH (RSCAN0.RMID50.UINT8[R_IO_HH])
+#define RSCAN0RMPTR50 (RSCAN0.RMPTR50.UINT32)
+#define RSCAN0RMPTR50L (RSCAN0.RMPTR50.UINT16[R_IO_L])
+#define RSCAN0RMPTR50LL (RSCAN0.RMPTR50.UINT8[R_IO_LL])
+#define RSCAN0RMPTR50LH (RSCAN0.RMPTR50.UINT8[R_IO_LH])
+#define RSCAN0RMPTR50H (RSCAN0.RMPTR50.UINT16[R_IO_H])
+#define RSCAN0RMPTR50HL (RSCAN0.RMPTR50.UINT8[R_IO_HL])
+#define RSCAN0RMPTR50HH (RSCAN0.RMPTR50.UINT8[R_IO_HH])
+#define RSCAN0RMDF050 (RSCAN0.RMDF050.UINT32)
+#define RSCAN0RMDF050L (RSCAN0.RMDF050.UINT16[R_IO_L])
+#define RSCAN0RMDF050LL (RSCAN0.RMDF050.UINT8[R_IO_LL])
+#define RSCAN0RMDF050LH (RSCAN0.RMDF050.UINT8[R_IO_LH])
+#define RSCAN0RMDF050H (RSCAN0.RMDF050.UINT16[R_IO_H])
+#define RSCAN0RMDF050HL (RSCAN0.RMDF050.UINT8[R_IO_HL])
+#define RSCAN0RMDF050HH (RSCAN0.RMDF050.UINT8[R_IO_HH])
+#define RSCAN0RMDF150 (RSCAN0.RMDF150.UINT32)
+#define RSCAN0RMDF150L (RSCAN0.RMDF150.UINT16[R_IO_L])
+#define RSCAN0RMDF150LL (RSCAN0.RMDF150.UINT8[R_IO_LL])
+#define RSCAN0RMDF150LH (RSCAN0.RMDF150.UINT8[R_IO_LH])
+#define RSCAN0RMDF150H (RSCAN0.RMDF150.UINT16[R_IO_H])
+#define RSCAN0RMDF150HL (RSCAN0.RMDF150.UINT8[R_IO_HL])
+#define RSCAN0RMDF150HH (RSCAN0.RMDF150.UINT8[R_IO_HH])
+#define RSCAN0RMID51 (RSCAN0.RMID51.UINT32)
+#define RSCAN0RMID51L (RSCAN0.RMID51.UINT16[R_IO_L])
+#define RSCAN0RMID51LL (RSCAN0.RMID51.UINT8[R_IO_LL])
+#define RSCAN0RMID51LH (RSCAN0.RMID51.UINT8[R_IO_LH])
+#define RSCAN0RMID51H (RSCAN0.RMID51.UINT16[R_IO_H])
+#define RSCAN0RMID51HL (RSCAN0.RMID51.UINT8[R_IO_HL])
+#define RSCAN0RMID51HH (RSCAN0.RMID51.UINT8[R_IO_HH])
+#define RSCAN0RMPTR51 (RSCAN0.RMPTR51.UINT32)
+#define RSCAN0RMPTR51L (RSCAN0.RMPTR51.UINT16[R_IO_L])
+#define RSCAN0RMPTR51LL (RSCAN0.RMPTR51.UINT8[R_IO_LL])
+#define RSCAN0RMPTR51LH (RSCAN0.RMPTR51.UINT8[R_IO_LH])
+#define RSCAN0RMPTR51H (RSCAN0.RMPTR51.UINT16[R_IO_H])
+#define RSCAN0RMPTR51HL (RSCAN0.RMPTR51.UINT8[R_IO_HL])
+#define RSCAN0RMPTR51HH (RSCAN0.RMPTR51.UINT8[R_IO_HH])
+#define RSCAN0RMDF051 (RSCAN0.RMDF051.UINT32)
+#define RSCAN0RMDF051L (RSCAN0.RMDF051.UINT16[R_IO_L])
+#define RSCAN0RMDF051LL (RSCAN0.RMDF051.UINT8[R_IO_LL])
+#define RSCAN0RMDF051LH (RSCAN0.RMDF051.UINT8[R_IO_LH])
+#define RSCAN0RMDF051H (RSCAN0.RMDF051.UINT16[R_IO_H])
+#define RSCAN0RMDF051HL (RSCAN0.RMDF051.UINT8[R_IO_HL])
+#define RSCAN0RMDF051HH (RSCAN0.RMDF051.UINT8[R_IO_HH])
+#define RSCAN0RMDF151 (RSCAN0.RMDF151.UINT32)
+#define RSCAN0RMDF151L (RSCAN0.RMDF151.UINT16[R_IO_L])
+#define RSCAN0RMDF151LL (RSCAN0.RMDF151.UINT8[R_IO_LL])
+#define RSCAN0RMDF151LH (RSCAN0.RMDF151.UINT8[R_IO_LH])
+#define RSCAN0RMDF151H (RSCAN0.RMDF151.UINT16[R_IO_H])
+#define RSCAN0RMDF151HL (RSCAN0.RMDF151.UINT8[R_IO_HL])
+#define RSCAN0RMDF151HH (RSCAN0.RMDF151.UINT8[R_IO_HH])
+#define RSCAN0RMID52 (RSCAN0.RMID52.UINT32)
+#define RSCAN0RMID52L (RSCAN0.RMID52.UINT16[R_IO_L])
+#define RSCAN0RMID52LL (RSCAN0.RMID52.UINT8[R_IO_LL])
+#define RSCAN0RMID52LH (RSCAN0.RMID52.UINT8[R_IO_LH])
+#define RSCAN0RMID52H (RSCAN0.RMID52.UINT16[R_IO_H])
+#define RSCAN0RMID52HL (RSCAN0.RMID52.UINT8[R_IO_HL])
+#define RSCAN0RMID52HH (RSCAN0.RMID52.UINT8[R_IO_HH])
+#define RSCAN0RMPTR52 (RSCAN0.RMPTR52.UINT32)
+#define RSCAN0RMPTR52L (RSCAN0.RMPTR52.UINT16[R_IO_L])
+#define RSCAN0RMPTR52LL (RSCAN0.RMPTR52.UINT8[R_IO_LL])
+#define RSCAN0RMPTR52LH (RSCAN0.RMPTR52.UINT8[R_IO_LH])
+#define RSCAN0RMPTR52H (RSCAN0.RMPTR52.UINT16[R_IO_H])
+#define RSCAN0RMPTR52HL (RSCAN0.RMPTR52.UINT8[R_IO_HL])
+#define RSCAN0RMPTR52HH (RSCAN0.RMPTR52.UINT8[R_IO_HH])
+#define RSCAN0RMDF052 (RSCAN0.RMDF052.UINT32)
+#define RSCAN0RMDF052L (RSCAN0.RMDF052.UINT16[R_IO_L])
+#define RSCAN0RMDF052LL (RSCAN0.RMDF052.UINT8[R_IO_LL])
+#define RSCAN0RMDF052LH (RSCAN0.RMDF052.UINT8[R_IO_LH])
+#define RSCAN0RMDF052H (RSCAN0.RMDF052.UINT16[R_IO_H])
+#define RSCAN0RMDF052HL (RSCAN0.RMDF052.UINT8[R_IO_HL])
+#define RSCAN0RMDF052HH (RSCAN0.RMDF052.UINT8[R_IO_HH])
+#define RSCAN0RMDF152 (RSCAN0.RMDF152.UINT32)
+#define RSCAN0RMDF152L (RSCAN0.RMDF152.UINT16[R_IO_L])
+#define RSCAN0RMDF152LL (RSCAN0.RMDF152.UINT8[R_IO_LL])
+#define RSCAN0RMDF152LH (RSCAN0.RMDF152.UINT8[R_IO_LH])
+#define RSCAN0RMDF152H (RSCAN0.RMDF152.UINT16[R_IO_H])
+#define RSCAN0RMDF152HL (RSCAN0.RMDF152.UINT8[R_IO_HL])
+#define RSCAN0RMDF152HH (RSCAN0.RMDF152.UINT8[R_IO_HH])
+#define RSCAN0RMID53 (RSCAN0.RMID53.UINT32)
+#define RSCAN0RMID53L (RSCAN0.RMID53.UINT16[R_IO_L])
+#define RSCAN0RMID53LL (RSCAN0.RMID53.UINT8[R_IO_LL])
+#define RSCAN0RMID53LH (RSCAN0.RMID53.UINT8[R_IO_LH])
+#define RSCAN0RMID53H (RSCAN0.RMID53.UINT16[R_IO_H])
+#define RSCAN0RMID53HL (RSCAN0.RMID53.UINT8[R_IO_HL])
+#define RSCAN0RMID53HH (RSCAN0.RMID53.UINT8[R_IO_HH])
+#define RSCAN0RMPTR53 (RSCAN0.RMPTR53.UINT32)
+#define RSCAN0RMPTR53L (RSCAN0.RMPTR53.UINT16[R_IO_L])
+#define RSCAN0RMPTR53LL (RSCAN0.RMPTR53.UINT8[R_IO_LL])
+#define RSCAN0RMPTR53LH (RSCAN0.RMPTR53.UINT8[R_IO_LH])
+#define RSCAN0RMPTR53H (RSCAN0.RMPTR53.UINT16[R_IO_H])
+#define RSCAN0RMPTR53HL (RSCAN0.RMPTR53.UINT8[R_IO_HL])
+#define RSCAN0RMPTR53HH (RSCAN0.RMPTR53.UINT8[R_IO_HH])
+#define RSCAN0RMDF053 (RSCAN0.RMDF053.UINT32)
+#define RSCAN0RMDF053L (RSCAN0.RMDF053.UINT16[R_IO_L])
+#define RSCAN0RMDF053LL (RSCAN0.RMDF053.UINT8[R_IO_LL])
+#define RSCAN0RMDF053LH (RSCAN0.RMDF053.UINT8[R_IO_LH])
+#define RSCAN0RMDF053H (RSCAN0.RMDF053.UINT16[R_IO_H])
+#define RSCAN0RMDF053HL (RSCAN0.RMDF053.UINT8[R_IO_HL])
+#define RSCAN0RMDF053HH (RSCAN0.RMDF053.UINT8[R_IO_HH])
+#define RSCAN0RMDF153 (RSCAN0.RMDF153.UINT32)
+#define RSCAN0RMDF153L (RSCAN0.RMDF153.UINT16[R_IO_L])
+#define RSCAN0RMDF153LL (RSCAN0.RMDF153.UINT8[R_IO_LL])
+#define RSCAN0RMDF153LH (RSCAN0.RMDF153.UINT8[R_IO_LH])
+#define RSCAN0RMDF153H (RSCAN0.RMDF153.UINT16[R_IO_H])
+#define RSCAN0RMDF153HL (RSCAN0.RMDF153.UINT8[R_IO_HL])
+#define RSCAN0RMDF153HH (RSCAN0.RMDF153.UINT8[R_IO_HH])
+#define RSCAN0RMID54 (RSCAN0.RMID54.UINT32)
+#define RSCAN0RMID54L (RSCAN0.RMID54.UINT16[R_IO_L])
+#define RSCAN0RMID54LL (RSCAN0.RMID54.UINT8[R_IO_LL])
+#define RSCAN0RMID54LH (RSCAN0.RMID54.UINT8[R_IO_LH])
+#define RSCAN0RMID54H (RSCAN0.RMID54.UINT16[R_IO_H])
+#define RSCAN0RMID54HL (RSCAN0.RMID54.UINT8[R_IO_HL])
+#define RSCAN0RMID54HH (RSCAN0.RMID54.UINT8[R_IO_HH])
+#define RSCAN0RMPTR54 (RSCAN0.RMPTR54.UINT32)
+#define RSCAN0RMPTR54L (RSCAN0.RMPTR54.UINT16[R_IO_L])
+#define RSCAN0RMPTR54LL (RSCAN0.RMPTR54.UINT8[R_IO_LL])
+#define RSCAN0RMPTR54LH (RSCAN0.RMPTR54.UINT8[R_IO_LH])
+#define RSCAN0RMPTR54H (RSCAN0.RMPTR54.UINT16[R_IO_H])
+#define RSCAN0RMPTR54HL (RSCAN0.RMPTR54.UINT8[R_IO_HL])
+#define RSCAN0RMPTR54HH (RSCAN0.RMPTR54.UINT8[R_IO_HH])
+#define RSCAN0RMDF054 (RSCAN0.RMDF054.UINT32)
+#define RSCAN0RMDF054L (RSCAN0.RMDF054.UINT16[R_IO_L])
+#define RSCAN0RMDF054LL (RSCAN0.RMDF054.UINT8[R_IO_LL])
+#define RSCAN0RMDF054LH (RSCAN0.RMDF054.UINT8[R_IO_LH])
+#define RSCAN0RMDF054H (RSCAN0.RMDF054.UINT16[R_IO_H])
+#define RSCAN0RMDF054HL (RSCAN0.RMDF054.UINT8[R_IO_HL])
+#define RSCAN0RMDF054HH (RSCAN0.RMDF054.UINT8[R_IO_HH])
+#define RSCAN0RMDF154 (RSCAN0.RMDF154.UINT32)
+#define RSCAN0RMDF154L (RSCAN0.RMDF154.UINT16[R_IO_L])
+#define RSCAN0RMDF154LL (RSCAN0.RMDF154.UINT8[R_IO_LL])
+#define RSCAN0RMDF154LH (RSCAN0.RMDF154.UINT8[R_IO_LH])
+#define RSCAN0RMDF154H (RSCAN0.RMDF154.UINT16[R_IO_H])
+#define RSCAN0RMDF154HL (RSCAN0.RMDF154.UINT8[R_IO_HL])
+#define RSCAN0RMDF154HH (RSCAN0.RMDF154.UINT8[R_IO_HH])
+#define RSCAN0RMID55 (RSCAN0.RMID55.UINT32)
+#define RSCAN0RMID55L (RSCAN0.RMID55.UINT16[R_IO_L])
+#define RSCAN0RMID55LL (RSCAN0.RMID55.UINT8[R_IO_LL])
+#define RSCAN0RMID55LH (RSCAN0.RMID55.UINT8[R_IO_LH])
+#define RSCAN0RMID55H (RSCAN0.RMID55.UINT16[R_IO_H])
+#define RSCAN0RMID55HL (RSCAN0.RMID55.UINT8[R_IO_HL])
+#define RSCAN0RMID55HH (RSCAN0.RMID55.UINT8[R_IO_HH])
+#define RSCAN0RMPTR55 (RSCAN0.RMPTR55.UINT32)
+#define RSCAN0RMPTR55L (RSCAN0.RMPTR55.UINT16[R_IO_L])
+#define RSCAN0RMPTR55LL (RSCAN0.RMPTR55.UINT8[R_IO_LL])
+#define RSCAN0RMPTR55LH (RSCAN0.RMPTR55.UINT8[R_IO_LH])
+#define RSCAN0RMPTR55H (RSCAN0.RMPTR55.UINT16[R_IO_H])
+#define RSCAN0RMPTR55HL (RSCAN0.RMPTR55.UINT8[R_IO_HL])
+#define RSCAN0RMPTR55HH (RSCAN0.RMPTR55.UINT8[R_IO_HH])
+#define RSCAN0RMDF055 (RSCAN0.RMDF055.UINT32)
+#define RSCAN0RMDF055L (RSCAN0.RMDF055.UINT16[R_IO_L])
+#define RSCAN0RMDF055LL (RSCAN0.RMDF055.UINT8[R_IO_LL])
+#define RSCAN0RMDF055LH (RSCAN0.RMDF055.UINT8[R_IO_LH])
+#define RSCAN0RMDF055H (RSCAN0.RMDF055.UINT16[R_IO_H])
+#define RSCAN0RMDF055HL (RSCAN0.RMDF055.UINT8[R_IO_HL])
+#define RSCAN0RMDF055HH (RSCAN0.RMDF055.UINT8[R_IO_HH])
+#define RSCAN0RMDF155 (RSCAN0.RMDF155.UINT32)
+#define RSCAN0RMDF155L (RSCAN0.RMDF155.UINT16[R_IO_L])
+#define RSCAN0RMDF155LL (RSCAN0.RMDF155.UINT8[R_IO_LL])
+#define RSCAN0RMDF155LH (RSCAN0.RMDF155.UINT8[R_IO_LH])
+#define RSCAN0RMDF155H (RSCAN0.RMDF155.UINT16[R_IO_H])
+#define RSCAN0RMDF155HL (RSCAN0.RMDF155.UINT8[R_IO_HL])
+#define RSCAN0RMDF155HH (RSCAN0.RMDF155.UINT8[R_IO_HH])
+#define RSCAN0RMID56 (RSCAN0.RMID56.UINT32)
+#define RSCAN0RMID56L (RSCAN0.RMID56.UINT16[R_IO_L])
+#define RSCAN0RMID56LL (RSCAN0.RMID56.UINT8[R_IO_LL])
+#define RSCAN0RMID56LH (RSCAN0.RMID56.UINT8[R_IO_LH])
+#define RSCAN0RMID56H (RSCAN0.RMID56.UINT16[R_IO_H])
+#define RSCAN0RMID56HL (RSCAN0.RMID56.UINT8[R_IO_HL])
+#define RSCAN0RMID56HH (RSCAN0.RMID56.UINT8[R_IO_HH])
+#define RSCAN0RMPTR56 (RSCAN0.RMPTR56.UINT32)
+#define RSCAN0RMPTR56L (RSCAN0.RMPTR56.UINT16[R_IO_L])
+#define RSCAN0RMPTR56LL (RSCAN0.RMPTR56.UINT8[R_IO_LL])
+#define RSCAN0RMPTR56LH (RSCAN0.RMPTR56.UINT8[R_IO_LH])
+#define RSCAN0RMPTR56H (RSCAN0.RMPTR56.UINT16[R_IO_H])
+#define RSCAN0RMPTR56HL (RSCAN0.RMPTR56.UINT8[R_IO_HL])
+#define RSCAN0RMPTR56HH (RSCAN0.RMPTR56.UINT8[R_IO_HH])
+#define RSCAN0RMDF056 (RSCAN0.RMDF056.UINT32)
+#define RSCAN0RMDF056L (RSCAN0.RMDF056.UINT16[R_IO_L])
+#define RSCAN0RMDF056LL (RSCAN0.RMDF056.UINT8[R_IO_LL])
+#define RSCAN0RMDF056LH (RSCAN0.RMDF056.UINT8[R_IO_LH])
+#define RSCAN0RMDF056H (RSCAN0.RMDF056.UINT16[R_IO_H])
+#define RSCAN0RMDF056HL (RSCAN0.RMDF056.UINT8[R_IO_HL])
+#define RSCAN0RMDF056HH (RSCAN0.RMDF056.UINT8[R_IO_HH])
+#define RSCAN0RMDF156 (RSCAN0.RMDF156.UINT32)
+#define RSCAN0RMDF156L (RSCAN0.RMDF156.UINT16[R_IO_L])
+#define RSCAN0RMDF156LL (RSCAN0.RMDF156.UINT8[R_IO_LL])
+#define RSCAN0RMDF156LH (RSCAN0.RMDF156.UINT8[R_IO_LH])
+#define RSCAN0RMDF156H (RSCAN0.RMDF156.UINT16[R_IO_H])
+#define RSCAN0RMDF156HL (RSCAN0.RMDF156.UINT8[R_IO_HL])
+#define RSCAN0RMDF156HH (RSCAN0.RMDF156.UINT8[R_IO_HH])
+#define RSCAN0RMID57 (RSCAN0.RMID57.UINT32)
+#define RSCAN0RMID57L (RSCAN0.RMID57.UINT16[R_IO_L])
+#define RSCAN0RMID57LL (RSCAN0.RMID57.UINT8[R_IO_LL])
+#define RSCAN0RMID57LH (RSCAN0.RMID57.UINT8[R_IO_LH])
+#define RSCAN0RMID57H (RSCAN0.RMID57.UINT16[R_IO_H])
+#define RSCAN0RMID57HL (RSCAN0.RMID57.UINT8[R_IO_HL])
+#define RSCAN0RMID57HH (RSCAN0.RMID57.UINT8[R_IO_HH])
+#define RSCAN0RMPTR57 (RSCAN0.RMPTR57.UINT32)
+#define RSCAN0RMPTR57L (RSCAN0.RMPTR57.UINT16[R_IO_L])
+#define RSCAN0RMPTR57LL (RSCAN0.RMPTR57.UINT8[R_IO_LL])
+#define RSCAN0RMPTR57LH (RSCAN0.RMPTR57.UINT8[R_IO_LH])
+#define RSCAN0RMPTR57H (RSCAN0.RMPTR57.UINT16[R_IO_H])
+#define RSCAN0RMPTR57HL (RSCAN0.RMPTR57.UINT8[R_IO_HL])
+#define RSCAN0RMPTR57HH (RSCAN0.RMPTR57.UINT8[R_IO_HH])
+#define RSCAN0RMDF057 (RSCAN0.RMDF057.UINT32)
+#define RSCAN0RMDF057L (RSCAN0.RMDF057.UINT16[R_IO_L])
+#define RSCAN0RMDF057LL (RSCAN0.RMDF057.UINT8[R_IO_LL])
+#define RSCAN0RMDF057LH (RSCAN0.RMDF057.UINT8[R_IO_LH])
+#define RSCAN0RMDF057H (RSCAN0.RMDF057.UINT16[R_IO_H])
+#define RSCAN0RMDF057HL (RSCAN0.RMDF057.UINT8[R_IO_HL])
+#define RSCAN0RMDF057HH (RSCAN0.RMDF057.UINT8[R_IO_HH])
+#define RSCAN0RMDF157 (RSCAN0.RMDF157.UINT32)
+#define RSCAN0RMDF157L (RSCAN0.RMDF157.UINT16[R_IO_L])
+#define RSCAN0RMDF157LL (RSCAN0.RMDF157.UINT8[R_IO_LL])
+#define RSCAN0RMDF157LH (RSCAN0.RMDF157.UINT8[R_IO_LH])
+#define RSCAN0RMDF157H (RSCAN0.RMDF157.UINT16[R_IO_H])
+#define RSCAN0RMDF157HL (RSCAN0.RMDF157.UINT8[R_IO_HL])
+#define RSCAN0RMDF157HH (RSCAN0.RMDF157.UINT8[R_IO_HH])
+#define RSCAN0RMID58 (RSCAN0.RMID58.UINT32)
+#define RSCAN0RMID58L (RSCAN0.RMID58.UINT16[R_IO_L])
+#define RSCAN0RMID58LL (RSCAN0.RMID58.UINT8[R_IO_LL])
+#define RSCAN0RMID58LH (RSCAN0.RMID58.UINT8[R_IO_LH])
+#define RSCAN0RMID58H (RSCAN0.RMID58.UINT16[R_IO_H])
+#define RSCAN0RMID58HL (RSCAN0.RMID58.UINT8[R_IO_HL])
+#define RSCAN0RMID58HH (RSCAN0.RMID58.UINT8[R_IO_HH])
+#define RSCAN0RMPTR58 (RSCAN0.RMPTR58.UINT32)
+#define RSCAN0RMPTR58L (RSCAN0.RMPTR58.UINT16[R_IO_L])
+#define RSCAN0RMPTR58LL (RSCAN0.RMPTR58.UINT8[R_IO_LL])
+#define RSCAN0RMPTR58LH (RSCAN0.RMPTR58.UINT8[R_IO_LH])
+#define RSCAN0RMPTR58H (RSCAN0.RMPTR58.UINT16[R_IO_H])
+#define RSCAN0RMPTR58HL (RSCAN0.RMPTR58.UINT8[R_IO_HL])
+#define RSCAN0RMPTR58HH (RSCAN0.RMPTR58.UINT8[R_IO_HH])
+#define RSCAN0RMDF058 (RSCAN0.RMDF058.UINT32)
+#define RSCAN0RMDF058L (RSCAN0.RMDF058.UINT16[R_IO_L])
+#define RSCAN0RMDF058LL (RSCAN0.RMDF058.UINT8[R_IO_LL])
+#define RSCAN0RMDF058LH (RSCAN0.RMDF058.UINT8[R_IO_LH])
+#define RSCAN0RMDF058H (RSCAN0.RMDF058.UINT16[R_IO_H])
+#define RSCAN0RMDF058HL (RSCAN0.RMDF058.UINT8[R_IO_HL])
+#define RSCAN0RMDF058HH (RSCAN0.RMDF058.UINT8[R_IO_HH])
+#define RSCAN0RMDF158 (RSCAN0.RMDF158.UINT32)
+#define RSCAN0RMDF158L (RSCAN0.RMDF158.UINT16[R_IO_L])
+#define RSCAN0RMDF158LL (RSCAN0.RMDF158.UINT8[R_IO_LL])
+#define RSCAN0RMDF158LH (RSCAN0.RMDF158.UINT8[R_IO_LH])
+#define RSCAN0RMDF158H (RSCAN0.RMDF158.UINT16[R_IO_H])
+#define RSCAN0RMDF158HL (RSCAN0.RMDF158.UINT8[R_IO_HL])
+#define RSCAN0RMDF158HH (RSCAN0.RMDF158.UINT8[R_IO_HH])
+#define RSCAN0RMID59 (RSCAN0.RMID59.UINT32)
+#define RSCAN0RMID59L (RSCAN0.RMID59.UINT16[R_IO_L])
+#define RSCAN0RMID59LL (RSCAN0.RMID59.UINT8[R_IO_LL])
+#define RSCAN0RMID59LH (RSCAN0.RMID59.UINT8[R_IO_LH])
+#define RSCAN0RMID59H (RSCAN0.RMID59.UINT16[R_IO_H])
+#define RSCAN0RMID59HL (RSCAN0.RMID59.UINT8[R_IO_HL])
+#define RSCAN0RMID59HH (RSCAN0.RMID59.UINT8[R_IO_HH])
+#define RSCAN0RMPTR59 (RSCAN0.RMPTR59.UINT32)
+#define RSCAN0RMPTR59L (RSCAN0.RMPTR59.UINT16[R_IO_L])
+#define RSCAN0RMPTR59LL (RSCAN0.RMPTR59.UINT8[R_IO_LL])
+#define RSCAN0RMPTR59LH (RSCAN0.RMPTR59.UINT8[R_IO_LH])
+#define RSCAN0RMPTR59H (RSCAN0.RMPTR59.UINT16[R_IO_H])
+#define RSCAN0RMPTR59HL (RSCAN0.RMPTR59.UINT8[R_IO_HL])
+#define RSCAN0RMPTR59HH (RSCAN0.RMPTR59.UINT8[R_IO_HH])
+#define RSCAN0RMDF059 (RSCAN0.RMDF059.UINT32)
+#define RSCAN0RMDF059L (RSCAN0.RMDF059.UINT16[R_IO_L])
+#define RSCAN0RMDF059LL (RSCAN0.RMDF059.UINT8[R_IO_LL])
+#define RSCAN0RMDF059LH (RSCAN0.RMDF059.UINT8[R_IO_LH])
+#define RSCAN0RMDF059H (RSCAN0.RMDF059.UINT16[R_IO_H])
+#define RSCAN0RMDF059HL (RSCAN0.RMDF059.UINT8[R_IO_HL])
+#define RSCAN0RMDF059HH (RSCAN0.RMDF059.UINT8[R_IO_HH])
+#define RSCAN0RMDF159 (RSCAN0.RMDF159.UINT32)
+#define RSCAN0RMDF159L (RSCAN0.RMDF159.UINT16[R_IO_L])
+#define RSCAN0RMDF159LL (RSCAN0.RMDF159.UINT8[R_IO_LL])
+#define RSCAN0RMDF159LH (RSCAN0.RMDF159.UINT8[R_IO_LH])
+#define RSCAN0RMDF159H (RSCAN0.RMDF159.UINT16[R_IO_H])
+#define RSCAN0RMDF159HL (RSCAN0.RMDF159.UINT8[R_IO_HL])
+#define RSCAN0RMDF159HH (RSCAN0.RMDF159.UINT8[R_IO_HH])
+#define RSCAN0RMID60 (RSCAN0.RMID60.UINT32)
+#define RSCAN0RMID60L (RSCAN0.RMID60.UINT16[R_IO_L])
+#define RSCAN0RMID60LL (RSCAN0.RMID60.UINT8[R_IO_LL])
+#define RSCAN0RMID60LH (RSCAN0.RMID60.UINT8[R_IO_LH])
+#define RSCAN0RMID60H (RSCAN0.RMID60.UINT16[R_IO_H])
+#define RSCAN0RMID60HL (RSCAN0.RMID60.UINT8[R_IO_HL])
+#define RSCAN0RMID60HH (RSCAN0.RMID60.UINT8[R_IO_HH])
+#define RSCAN0RMPTR60 (RSCAN0.RMPTR60.UINT32)
+#define RSCAN0RMPTR60L (RSCAN0.RMPTR60.UINT16[R_IO_L])
+#define RSCAN0RMPTR60LL (RSCAN0.RMPTR60.UINT8[R_IO_LL])
+#define RSCAN0RMPTR60LH (RSCAN0.RMPTR60.UINT8[R_IO_LH])
+#define RSCAN0RMPTR60H (RSCAN0.RMPTR60.UINT16[R_IO_H])
+#define RSCAN0RMPTR60HL (RSCAN0.RMPTR60.UINT8[R_IO_HL])
+#define RSCAN0RMPTR60HH (RSCAN0.RMPTR60.UINT8[R_IO_HH])
+#define RSCAN0RMDF060 (RSCAN0.RMDF060.UINT32)
+#define RSCAN0RMDF060L (RSCAN0.RMDF060.UINT16[R_IO_L])
+#define RSCAN0RMDF060LL (RSCAN0.RMDF060.UINT8[R_IO_LL])
+#define RSCAN0RMDF060LH (RSCAN0.RMDF060.UINT8[R_IO_LH])
+#define RSCAN0RMDF060H (RSCAN0.RMDF060.UINT16[R_IO_H])
+#define RSCAN0RMDF060HL (RSCAN0.RMDF060.UINT8[R_IO_HL])
+#define RSCAN0RMDF060HH (RSCAN0.RMDF060.UINT8[R_IO_HH])
+#define RSCAN0RMDF160 (RSCAN0.RMDF160.UINT32)
+#define RSCAN0RMDF160L (RSCAN0.RMDF160.UINT16[R_IO_L])
+#define RSCAN0RMDF160LL (RSCAN0.RMDF160.UINT8[R_IO_LL])
+#define RSCAN0RMDF160LH (RSCAN0.RMDF160.UINT8[R_IO_LH])
+#define RSCAN0RMDF160H (RSCAN0.RMDF160.UINT16[R_IO_H])
+#define RSCAN0RMDF160HL (RSCAN0.RMDF160.UINT8[R_IO_HL])
+#define RSCAN0RMDF160HH (RSCAN0.RMDF160.UINT8[R_IO_HH])
+#define RSCAN0RMID61 (RSCAN0.RMID61.UINT32)
+#define RSCAN0RMID61L (RSCAN0.RMID61.UINT16[R_IO_L])
+#define RSCAN0RMID61LL (RSCAN0.RMID61.UINT8[R_IO_LL])
+#define RSCAN0RMID61LH (RSCAN0.RMID61.UINT8[R_IO_LH])
+#define RSCAN0RMID61H (RSCAN0.RMID61.UINT16[R_IO_H])
+#define RSCAN0RMID61HL (RSCAN0.RMID61.UINT8[R_IO_HL])
+#define RSCAN0RMID61HH (RSCAN0.RMID61.UINT8[R_IO_HH])
+#define RSCAN0RMPTR61 (RSCAN0.RMPTR61.UINT32)
+#define RSCAN0RMPTR61L (RSCAN0.RMPTR61.UINT16[R_IO_L])
+#define RSCAN0RMPTR61LL (RSCAN0.RMPTR61.UINT8[R_IO_LL])
+#define RSCAN0RMPTR61LH (RSCAN0.RMPTR61.UINT8[R_IO_LH])
+#define RSCAN0RMPTR61H (RSCAN0.RMPTR61.UINT16[R_IO_H])
+#define RSCAN0RMPTR61HL (RSCAN0.RMPTR61.UINT8[R_IO_HL])
+#define RSCAN0RMPTR61HH (RSCAN0.RMPTR61.UINT8[R_IO_HH])
+#define RSCAN0RMDF061 (RSCAN0.RMDF061.UINT32)
+#define RSCAN0RMDF061L (RSCAN0.RMDF061.UINT16[R_IO_L])
+#define RSCAN0RMDF061LL (RSCAN0.RMDF061.UINT8[R_IO_LL])
+#define RSCAN0RMDF061LH (RSCAN0.RMDF061.UINT8[R_IO_LH])
+#define RSCAN0RMDF061H (RSCAN0.RMDF061.UINT16[R_IO_H])
+#define RSCAN0RMDF061HL (RSCAN0.RMDF061.UINT8[R_IO_HL])
+#define RSCAN0RMDF061HH (RSCAN0.RMDF061.UINT8[R_IO_HH])
+#define RSCAN0RMDF161 (RSCAN0.RMDF161.UINT32)
+#define RSCAN0RMDF161L (RSCAN0.RMDF161.UINT16[R_IO_L])
+#define RSCAN0RMDF161LL (RSCAN0.RMDF161.UINT8[R_IO_LL])
+#define RSCAN0RMDF161LH (RSCAN0.RMDF161.UINT8[R_IO_LH])
+#define RSCAN0RMDF161H (RSCAN0.RMDF161.UINT16[R_IO_H])
+#define RSCAN0RMDF161HL (RSCAN0.RMDF161.UINT8[R_IO_HL])
+#define RSCAN0RMDF161HH (RSCAN0.RMDF161.UINT8[R_IO_HH])
+#define RSCAN0RMID62 (RSCAN0.RMID62.UINT32)
+#define RSCAN0RMID62L (RSCAN0.RMID62.UINT16[R_IO_L])
+#define RSCAN0RMID62LL (RSCAN0.RMID62.UINT8[R_IO_LL])
+#define RSCAN0RMID62LH (RSCAN0.RMID62.UINT8[R_IO_LH])
+#define RSCAN0RMID62H (RSCAN0.RMID62.UINT16[R_IO_H])
+#define RSCAN0RMID62HL (RSCAN0.RMID62.UINT8[R_IO_HL])
+#define RSCAN0RMID62HH (RSCAN0.RMID62.UINT8[R_IO_HH])
+#define RSCAN0RMPTR62 (RSCAN0.RMPTR62.UINT32)
+#define RSCAN0RMPTR62L (RSCAN0.RMPTR62.UINT16[R_IO_L])
+#define RSCAN0RMPTR62LL (RSCAN0.RMPTR62.UINT8[R_IO_LL])
+#define RSCAN0RMPTR62LH (RSCAN0.RMPTR62.UINT8[R_IO_LH])
+#define RSCAN0RMPTR62H (RSCAN0.RMPTR62.UINT16[R_IO_H])
+#define RSCAN0RMPTR62HL (RSCAN0.RMPTR62.UINT8[R_IO_HL])
+#define RSCAN0RMPTR62HH (RSCAN0.RMPTR62.UINT8[R_IO_HH])
+#define RSCAN0RMDF062 (RSCAN0.RMDF062.UINT32)
+#define RSCAN0RMDF062L (RSCAN0.RMDF062.UINT16[R_IO_L])
+#define RSCAN0RMDF062LL (RSCAN0.RMDF062.UINT8[R_IO_LL])
+#define RSCAN0RMDF062LH (RSCAN0.RMDF062.UINT8[R_IO_LH])
+#define RSCAN0RMDF062H (RSCAN0.RMDF062.UINT16[R_IO_H])
+#define RSCAN0RMDF062HL (RSCAN0.RMDF062.UINT8[R_IO_HL])
+#define RSCAN0RMDF062HH (RSCAN0.RMDF062.UINT8[R_IO_HH])
+#define RSCAN0RMDF162 (RSCAN0.RMDF162.UINT32)
+#define RSCAN0RMDF162L (RSCAN0.RMDF162.UINT16[R_IO_L])
+#define RSCAN0RMDF162LL (RSCAN0.RMDF162.UINT8[R_IO_LL])
+#define RSCAN0RMDF162LH (RSCAN0.RMDF162.UINT8[R_IO_LH])
+#define RSCAN0RMDF162H (RSCAN0.RMDF162.UINT16[R_IO_H])
+#define RSCAN0RMDF162HL (RSCAN0.RMDF162.UINT8[R_IO_HL])
+#define RSCAN0RMDF162HH (RSCAN0.RMDF162.UINT8[R_IO_HH])
+#define RSCAN0RMID63 (RSCAN0.RMID63.UINT32)
+#define RSCAN0RMID63L (RSCAN0.RMID63.UINT16[R_IO_L])
+#define RSCAN0RMID63LL (RSCAN0.RMID63.UINT8[R_IO_LL])
+#define RSCAN0RMID63LH (RSCAN0.RMID63.UINT8[R_IO_LH])
+#define RSCAN0RMID63H (RSCAN0.RMID63.UINT16[R_IO_H])
+#define RSCAN0RMID63HL (RSCAN0.RMID63.UINT8[R_IO_HL])
+#define RSCAN0RMID63HH (RSCAN0.RMID63.UINT8[R_IO_HH])
+#define RSCAN0RMPTR63 (RSCAN0.RMPTR63.UINT32)
+#define RSCAN0RMPTR63L (RSCAN0.RMPTR63.UINT16[R_IO_L])
+#define RSCAN0RMPTR63LL (RSCAN0.RMPTR63.UINT8[R_IO_LL])
+#define RSCAN0RMPTR63LH (RSCAN0.RMPTR63.UINT8[R_IO_LH])
+#define RSCAN0RMPTR63H (RSCAN0.RMPTR63.UINT16[R_IO_H])
+#define RSCAN0RMPTR63HL (RSCAN0.RMPTR63.UINT8[R_IO_HL])
+#define RSCAN0RMPTR63HH (RSCAN0.RMPTR63.UINT8[R_IO_HH])
+#define RSCAN0RMDF063 (RSCAN0.RMDF063.UINT32)
+#define RSCAN0RMDF063L (RSCAN0.RMDF063.UINT16[R_IO_L])
+#define RSCAN0RMDF063LL (RSCAN0.RMDF063.UINT8[R_IO_LL])
+#define RSCAN0RMDF063LH (RSCAN0.RMDF063.UINT8[R_IO_LH])
+#define RSCAN0RMDF063H (RSCAN0.RMDF063.UINT16[R_IO_H])
+#define RSCAN0RMDF063HL (RSCAN0.RMDF063.UINT8[R_IO_HL])
+#define RSCAN0RMDF063HH (RSCAN0.RMDF063.UINT8[R_IO_HH])
+#define RSCAN0RMDF163 (RSCAN0.RMDF163.UINT32)
+#define RSCAN0RMDF163L (RSCAN0.RMDF163.UINT16[R_IO_L])
+#define RSCAN0RMDF163LL (RSCAN0.RMDF163.UINT8[R_IO_LL])
+#define RSCAN0RMDF163LH (RSCAN0.RMDF163.UINT8[R_IO_LH])
+#define RSCAN0RMDF163H (RSCAN0.RMDF163.UINT16[R_IO_H])
+#define RSCAN0RMDF163HL (RSCAN0.RMDF163.UINT8[R_IO_HL])
+#define RSCAN0RMDF163HH (RSCAN0.RMDF163.UINT8[R_IO_HH])
+#define RSCAN0RMID64 (RSCAN0.RMID64.UINT32)
+#define RSCAN0RMID64L (RSCAN0.RMID64.UINT16[R_IO_L])
+#define RSCAN0RMID64LL (RSCAN0.RMID64.UINT8[R_IO_LL])
+#define RSCAN0RMID64LH (RSCAN0.RMID64.UINT8[R_IO_LH])
+#define RSCAN0RMID64H (RSCAN0.RMID64.UINT16[R_IO_H])
+#define RSCAN0RMID64HL (RSCAN0.RMID64.UINT8[R_IO_HL])
+#define RSCAN0RMID64HH (RSCAN0.RMID64.UINT8[R_IO_HH])
+#define RSCAN0RMPTR64 (RSCAN0.RMPTR64.UINT32)
+#define RSCAN0RMPTR64L (RSCAN0.RMPTR64.UINT16[R_IO_L])
+#define RSCAN0RMPTR64LL (RSCAN0.RMPTR64.UINT8[R_IO_LL])
+#define RSCAN0RMPTR64LH (RSCAN0.RMPTR64.UINT8[R_IO_LH])
+#define RSCAN0RMPTR64H (RSCAN0.RMPTR64.UINT16[R_IO_H])
+#define RSCAN0RMPTR64HL (RSCAN0.RMPTR64.UINT8[R_IO_HL])
+#define RSCAN0RMPTR64HH (RSCAN0.RMPTR64.UINT8[R_IO_HH])
+#define RSCAN0RMDF064 (RSCAN0.RMDF064.UINT32)
+#define RSCAN0RMDF064L (RSCAN0.RMDF064.UINT16[R_IO_L])
+#define RSCAN0RMDF064LL (RSCAN0.RMDF064.UINT8[R_IO_LL])
+#define RSCAN0RMDF064LH (RSCAN0.RMDF064.UINT8[R_IO_LH])
+#define RSCAN0RMDF064H (RSCAN0.RMDF064.UINT16[R_IO_H])
+#define RSCAN0RMDF064HL (RSCAN0.RMDF064.UINT8[R_IO_HL])
+#define RSCAN0RMDF064HH (RSCAN0.RMDF064.UINT8[R_IO_HH])
+#define RSCAN0RMDF164 (RSCAN0.RMDF164.UINT32)
+#define RSCAN0RMDF164L (RSCAN0.RMDF164.UINT16[R_IO_L])
+#define RSCAN0RMDF164LL (RSCAN0.RMDF164.UINT8[R_IO_LL])
+#define RSCAN0RMDF164LH (RSCAN0.RMDF164.UINT8[R_IO_LH])
+#define RSCAN0RMDF164H (RSCAN0.RMDF164.UINT16[R_IO_H])
+#define RSCAN0RMDF164HL (RSCAN0.RMDF164.UINT8[R_IO_HL])
+#define RSCAN0RMDF164HH (RSCAN0.RMDF164.UINT8[R_IO_HH])
+#define RSCAN0RMID65 (RSCAN0.RMID65.UINT32)
+#define RSCAN0RMID65L (RSCAN0.RMID65.UINT16[R_IO_L])
+#define RSCAN0RMID65LL (RSCAN0.RMID65.UINT8[R_IO_LL])
+#define RSCAN0RMID65LH (RSCAN0.RMID65.UINT8[R_IO_LH])
+#define RSCAN0RMID65H (RSCAN0.RMID65.UINT16[R_IO_H])
+#define RSCAN0RMID65HL (RSCAN0.RMID65.UINT8[R_IO_HL])
+#define RSCAN0RMID65HH (RSCAN0.RMID65.UINT8[R_IO_HH])
+#define RSCAN0RMPTR65 (RSCAN0.RMPTR65.UINT32)
+#define RSCAN0RMPTR65L (RSCAN0.RMPTR65.UINT16[R_IO_L])
+#define RSCAN0RMPTR65LL (RSCAN0.RMPTR65.UINT8[R_IO_LL])
+#define RSCAN0RMPTR65LH (RSCAN0.RMPTR65.UINT8[R_IO_LH])
+#define RSCAN0RMPTR65H (RSCAN0.RMPTR65.UINT16[R_IO_H])
+#define RSCAN0RMPTR65HL (RSCAN0.RMPTR65.UINT8[R_IO_HL])
+#define RSCAN0RMPTR65HH (RSCAN0.RMPTR65.UINT8[R_IO_HH])
+#define RSCAN0RMDF065 (RSCAN0.RMDF065.UINT32)
+#define RSCAN0RMDF065L (RSCAN0.RMDF065.UINT16[R_IO_L])
+#define RSCAN0RMDF065LL (RSCAN0.RMDF065.UINT8[R_IO_LL])
+#define RSCAN0RMDF065LH (RSCAN0.RMDF065.UINT8[R_IO_LH])
+#define RSCAN0RMDF065H (RSCAN0.RMDF065.UINT16[R_IO_H])
+#define RSCAN0RMDF065HL (RSCAN0.RMDF065.UINT8[R_IO_HL])
+#define RSCAN0RMDF065HH (RSCAN0.RMDF065.UINT8[R_IO_HH])
+#define RSCAN0RMDF165 (RSCAN0.RMDF165.UINT32)
+#define RSCAN0RMDF165L (RSCAN0.RMDF165.UINT16[R_IO_L])
+#define RSCAN0RMDF165LL (RSCAN0.RMDF165.UINT8[R_IO_LL])
+#define RSCAN0RMDF165LH (RSCAN0.RMDF165.UINT8[R_IO_LH])
+#define RSCAN0RMDF165H (RSCAN0.RMDF165.UINT16[R_IO_H])
+#define RSCAN0RMDF165HL (RSCAN0.RMDF165.UINT8[R_IO_HL])
+#define RSCAN0RMDF165HH (RSCAN0.RMDF165.UINT8[R_IO_HH])
+#define RSCAN0RMID66 (RSCAN0.RMID66.UINT32)
+#define RSCAN0RMID66L (RSCAN0.RMID66.UINT16[R_IO_L])
+#define RSCAN0RMID66LL (RSCAN0.RMID66.UINT8[R_IO_LL])
+#define RSCAN0RMID66LH (RSCAN0.RMID66.UINT8[R_IO_LH])
+#define RSCAN0RMID66H (RSCAN0.RMID66.UINT16[R_IO_H])
+#define RSCAN0RMID66HL (RSCAN0.RMID66.UINT8[R_IO_HL])
+#define RSCAN0RMID66HH (RSCAN0.RMID66.UINT8[R_IO_HH])
+#define RSCAN0RMPTR66 (RSCAN0.RMPTR66.UINT32)
+#define RSCAN0RMPTR66L (RSCAN0.RMPTR66.UINT16[R_IO_L])
+#define RSCAN0RMPTR66LL (RSCAN0.RMPTR66.UINT8[R_IO_LL])
+#define RSCAN0RMPTR66LH (RSCAN0.RMPTR66.UINT8[R_IO_LH])
+#define RSCAN0RMPTR66H (RSCAN0.RMPTR66.UINT16[R_IO_H])
+#define RSCAN0RMPTR66HL (RSCAN0.RMPTR66.UINT8[R_IO_HL])
+#define RSCAN0RMPTR66HH (RSCAN0.RMPTR66.UINT8[R_IO_HH])
+#define RSCAN0RMDF066 (RSCAN0.RMDF066.UINT32)
+#define RSCAN0RMDF066L (RSCAN0.RMDF066.UINT16[R_IO_L])
+#define RSCAN0RMDF066LL (RSCAN0.RMDF066.UINT8[R_IO_LL])
+#define RSCAN0RMDF066LH (RSCAN0.RMDF066.UINT8[R_IO_LH])
+#define RSCAN0RMDF066H (RSCAN0.RMDF066.UINT16[R_IO_H])
+#define RSCAN0RMDF066HL (RSCAN0.RMDF066.UINT8[R_IO_HL])
+#define RSCAN0RMDF066HH (RSCAN0.RMDF066.UINT8[R_IO_HH])
+#define RSCAN0RMDF166 (RSCAN0.RMDF166.UINT32)
+#define RSCAN0RMDF166L (RSCAN0.RMDF166.UINT16[R_IO_L])
+#define RSCAN0RMDF166LL (RSCAN0.RMDF166.UINT8[R_IO_LL])
+#define RSCAN0RMDF166LH (RSCAN0.RMDF166.UINT8[R_IO_LH])
+#define RSCAN0RMDF166H (RSCAN0.RMDF166.UINT16[R_IO_H])
+#define RSCAN0RMDF166HL (RSCAN0.RMDF166.UINT8[R_IO_HL])
+#define RSCAN0RMDF166HH (RSCAN0.RMDF166.UINT8[R_IO_HH])
+#define RSCAN0RMID67 (RSCAN0.RMID67.UINT32)
+#define RSCAN0RMID67L (RSCAN0.RMID67.UINT16[R_IO_L])
+#define RSCAN0RMID67LL (RSCAN0.RMID67.UINT8[R_IO_LL])
+#define RSCAN0RMID67LH (RSCAN0.RMID67.UINT8[R_IO_LH])
+#define RSCAN0RMID67H (RSCAN0.RMID67.UINT16[R_IO_H])
+#define RSCAN0RMID67HL (RSCAN0.RMID67.UINT8[R_IO_HL])
+#define RSCAN0RMID67HH (RSCAN0.RMID67.UINT8[R_IO_HH])
+#define RSCAN0RMPTR67 (RSCAN0.RMPTR67.UINT32)
+#define RSCAN0RMPTR67L (RSCAN0.RMPTR67.UINT16[R_IO_L])
+#define RSCAN0RMPTR67LL (RSCAN0.RMPTR67.UINT8[R_IO_LL])
+#define RSCAN0RMPTR67LH (RSCAN0.RMPTR67.UINT8[R_IO_LH])
+#define RSCAN0RMPTR67H (RSCAN0.RMPTR67.UINT16[R_IO_H])
+#define RSCAN0RMPTR67HL (RSCAN0.RMPTR67.UINT8[R_IO_HL])
+#define RSCAN0RMPTR67HH (RSCAN0.RMPTR67.UINT8[R_IO_HH])
+#define RSCAN0RMDF067 (RSCAN0.RMDF067.UINT32)
+#define RSCAN0RMDF067L (RSCAN0.RMDF067.UINT16[R_IO_L])
+#define RSCAN0RMDF067LL (RSCAN0.RMDF067.UINT8[R_IO_LL])
+#define RSCAN0RMDF067LH (RSCAN0.RMDF067.UINT8[R_IO_LH])
+#define RSCAN0RMDF067H (RSCAN0.RMDF067.UINT16[R_IO_H])
+#define RSCAN0RMDF067HL (RSCAN0.RMDF067.UINT8[R_IO_HL])
+#define RSCAN0RMDF067HH (RSCAN0.RMDF067.UINT8[R_IO_HH])
+#define RSCAN0RMDF167 (RSCAN0.RMDF167.UINT32)
+#define RSCAN0RMDF167L (RSCAN0.RMDF167.UINT16[R_IO_L])
+#define RSCAN0RMDF167LL (RSCAN0.RMDF167.UINT8[R_IO_LL])
+#define RSCAN0RMDF167LH (RSCAN0.RMDF167.UINT8[R_IO_LH])
+#define RSCAN0RMDF167H (RSCAN0.RMDF167.UINT16[R_IO_H])
+#define RSCAN0RMDF167HL (RSCAN0.RMDF167.UINT8[R_IO_HL])
+#define RSCAN0RMDF167HH (RSCAN0.RMDF167.UINT8[R_IO_HH])
+#define RSCAN0RMID68 (RSCAN0.RMID68.UINT32)
+#define RSCAN0RMID68L (RSCAN0.RMID68.UINT16[R_IO_L])
+#define RSCAN0RMID68LL (RSCAN0.RMID68.UINT8[R_IO_LL])
+#define RSCAN0RMID68LH (RSCAN0.RMID68.UINT8[R_IO_LH])
+#define RSCAN0RMID68H (RSCAN0.RMID68.UINT16[R_IO_H])
+#define RSCAN0RMID68HL (RSCAN0.RMID68.UINT8[R_IO_HL])
+#define RSCAN0RMID68HH (RSCAN0.RMID68.UINT8[R_IO_HH])
+#define RSCAN0RMPTR68 (RSCAN0.RMPTR68.UINT32)
+#define RSCAN0RMPTR68L (RSCAN0.RMPTR68.UINT16[R_IO_L])
+#define RSCAN0RMPTR68LL (RSCAN0.RMPTR68.UINT8[R_IO_LL])
+#define RSCAN0RMPTR68LH (RSCAN0.RMPTR68.UINT8[R_IO_LH])
+#define RSCAN0RMPTR68H (RSCAN0.RMPTR68.UINT16[R_IO_H])
+#define RSCAN0RMPTR68HL (RSCAN0.RMPTR68.UINT8[R_IO_HL])
+#define RSCAN0RMPTR68HH (RSCAN0.RMPTR68.UINT8[R_IO_HH])
+#define RSCAN0RMDF068 (RSCAN0.RMDF068.UINT32)
+#define RSCAN0RMDF068L (RSCAN0.RMDF068.UINT16[R_IO_L])
+#define RSCAN0RMDF068LL (RSCAN0.RMDF068.UINT8[R_IO_LL])
+#define RSCAN0RMDF068LH (RSCAN0.RMDF068.UINT8[R_IO_LH])
+#define RSCAN0RMDF068H (RSCAN0.RMDF068.UINT16[R_IO_H])
+#define RSCAN0RMDF068HL (RSCAN0.RMDF068.UINT8[R_IO_HL])
+#define RSCAN0RMDF068HH (RSCAN0.RMDF068.UINT8[R_IO_HH])
+#define RSCAN0RMDF168 (RSCAN0.RMDF168.UINT32)
+#define RSCAN0RMDF168L (RSCAN0.RMDF168.UINT16[R_IO_L])
+#define RSCAN0RMDF168LL (RSCAN0.RMDF168.UINT8[R_IO_LL])
+#define RSCAN0RMDF168LH (RSCAN0.RMDF168.UINT8[R_IO_LH])
+#define RSCAN0RMDF168H (RSCAN0.RMDF168.UINT16[R_IO_H])
+#define RSCAN0RMDF168HL (RSCAN0.RMDF168.UINT8[R_IO_HL])
+#define RSCAN0RMDF168HH (RSCAN0.RMDF168.UINT8[R_IO_HH])
+#define RSCAN0RMID69 (RSCAN0.RMID69.UINT32)
+#define RSCAN0RMID69L (RSCAN0.RMID69.UINT16[R_IO_L])
+#define RSCAN0RMID69LL (RSCAN0.RMID69.UINT8[R_IO_LL])
+#define RSCAN0RMID69LH (RSCAN0.RMID69.UINT8[R_IO_LH])
+#define RSCAN0RMID69H (RSCAN0.RMID69.UINT16[R_IO_H])
+#define RSCAN0RMID69HL (RSCAN0.RMID69.UINT8[R_IO_HL])
+#define RSCAN0RMID69HH (RSCAN0.RMID69.UINT8[R_IO_HH])
+#define RSCAN0RMPTR69 (RSCAN0.RMPTR69.UINT32)
+#define RSCAN0RMPTR69L (RSCAN0.RMPTR69.UINT16[R_IO_L])
+#define RSCAN0RMPTR69LL (RSCAN0.RMPTR69.UINT8[R_IO_LL])
+#define RSCAN0RMPTR69LH (RSCAN0.RMPTR69.UINT8[R_IO_LH])
+#define RSCAN0RMPTR69H (RSCAN0.RMPTR69.UINT16[R_IO_H])
+#define RSCAN0RMPTR69HL (RSCAN0.RMPTR69.UINT8[R_IO_HL])
+#define RSCAN0RMPTR69HH (RSCAN0.RMPTR69.UINT8[R_IO_HH])
+#define RSCAN0RMDF069 (RSCAN0.RMDF069.UINT32)
+#define RSCAN0RMDF069L (RSCAN0.RMDF069.UINT16[R_IO_L])
+#define RSCAN0RMDF069LL (RSCAN0.RMDF069.UINT8[R_IO_LL])
+#define RSCAN0RMDF069LH (RSCAN0.RMDF069.UINT8[R_IO_LH])
+#define RSCAN0RMDF069H (RSCAN0.RMDF069.UINT16[R_IO_H])
+#define RSCAN0RMDF069HL (RSCAN0.RMDF069.UINT8[R_IO_HL])
+#define RSCAN0RMDF069HH (RSCAN0.RMDF069.UINT8[R_IO_HH])
+#define RSCAN0RMDF169 (RSCAN0.RMDF169.UINT32)
+#define RSCAN0RMDF169L (RSCAN0.RMDF169.UINT16[R_IO_L])
+#define RSCAN0RMDF169LL (RSCAN0.RMDF169.UINT8[R_IO_LL])
+#define RSCAN0RMDF169LH (RSCAN0.RMDF169.UINT8[R_IO_LH])
+#define RSCAN0RMDF169H (RSCAN0.RMDF169.UINT16[R_IO_H])
+#define RSCAN0RMDF169HL (RSCAN0.RMDF169.UINT8[R_IO_HL])
+#define RSCAN0RMDF169HH (RSCAN0.RMDF169.UINT8[R_IO_HH])
+#define RSCAN0RMID70 (RSCAN0.RMID70.UINT32)
+#define RSCAN0RMID70L (RSCAN0.RMID70.UINT16[R_IO_L])
+#define RSCAN0RMID70LL (RSCAN0.RMID70.UINT8[R_IO_LL])
+#define RSCAN0RMID70LH (RSCAN0.RMID70.UINT8[R_IO_LH])
+#define RSCAN0RMID70H (RSCAN0.RMID70.UINT16[R_IO_H])
+#define RSCAN0RMID70HL (RSCAN0.RMID70.UINT8[R_IO_HL])
+#define RSCAN0RMID70HH (RSCAN0.RMID70.UINT8[R_IO_HH])
+#define RSCAN0RMPTR70 (RSCAN0.RMPTR70.UINT32)
+#define RSCAN0RMPTR70L (RSCAN0.RMPTR70.UINT16[R_IO_L])
+#define RSCAN0RMPTR70LL (RSCAN0.RMPTR70.UINT8[R_IO_LL])
+#define RSCAN0RMPTR70LH (RSCAN0.RMPTR70.UINT8[R_IO_LH])
+#define RSCAN0RMPTR70H (RSCAN0.RMPTR70.UINT16[R_IO_H])
+#define RSCAN0RMPTR70HL (RSCAN0.RMPTR70.UINT8[R_IO_HL])
+#define RSCAN0RMPTR70HH (RSCAN0.RMPTR70.UINT8[R_IO_HH])
+#define RSCAN0RMDF070 (RSCAN0.RMDF070.UINT32)
+#define RSCAN0RMDF070L (RSCAN0.RMDF070.UINT16[R_IO_L])
+#define RSCAN0RMDF070LL (RSCAN0.RMDF070.UINT8[R_IO_LL])
+#define RSCAN0RMDF070LH (RSCAN0.RMDF070.UINT8[R_IO_LH])
+#define RSCAN0RMDF070H (RSCAN0.RMDF070.UINT16[R_IO_H])
+#define RSCAN0RMDF070HL (RSCAN0.RMDF070.UINT8[R_IO_HL])
+#define RSCAN0RMDF070HH (RSCAN0.RMDF070.UINT8[R_IO_HH])
+#define RSCAN0RMDF170 (RSCAN0.RMDF170.UINT32)
+#define RSCAN0RMDF170L (RSCAN0.RMDF170.UINT16[R_IO_L])
+#define RSCAN0RMDF170LL (RSCAN0.RMDF170.UINT8[R_IO_LL])
+#define RSCAN0RMDF170LH (RSCAN0.RMDF170.UINT8[R_IO_LH])
+#define RSCAN0RMDF170H (RSCAN0.RMDF170.UINT16[R_IO_H])
+#define RSCAN0RMDF170HL (RSCAN0.RMDF170.UINT8[R_IO_HL])
+#define RSCAN0RMDF170HH (RSCAN0.RMDF170.UINT8[R_IO_HH])
+#define RSCAN0RMID71 (RSCAN0.RMID71.UINT32)
+#define RSCAN0RMID71L (RSCAN0.RMID71.UINT16[R_IO_L])
+#define RSCAN0RMID71LL (RSCAN0.RMID71.UINT8[R_IO_LL])
+#define RSCAN0RMID71LH (RSCAN0.RMID71.UINT8[R_IO_LH])
+#define RSCAN0RMID71H (RSCAN0.RMID71.UINT16[R_IO_H])
+#define RSCAN0RMID71HL (RSCAN0.RMID71.UINT8[R_IO_HL])
+#define RSCAN0RMID71HH (RSCAN0.RMID71.UINT8[R_IO_HH])
+#define RSCAN0RMPTR71 (RSCAN0.RMPTR71.UINT32)
+#define RSCAN0RMPTR71L (RSCAN0.RMPTR71.UINT16[R_IO_L])
+#define RSCAN0RMPTR71LL (RSCAN0.RMPTR71.UINT8[R_IO_LL])
+#define RSCAN0RMPTR71LH (RSCAN0.RMPTR71.UINT8[R_IO_LH])
+#define RSCAN0RMPTR71H (RSCAN0.RMPTR71.UINT16[R_IO_H])
+#define RSCAN0RMPTR71HL (RSCAN0.RMPTR71.UINT8[R_IO_HL])
+#define RSCAN0RMPTR71HH (RSCAN0.RMPTR71.UINT8[R_IO_HH])
+#define RSCAN0RMDF071 (RSCAN0.RMDF071.UINT32)
+#define RSCAN0RMDF071L (RSCAN0.RMDF071.UINT16[R_IO_L])
+#define RSCAN0RMDF071LL (RSCAN0.RMDF071.UINT8[R_IO_LL])
+#define RSCAN0RMDF071LH (RSCAN0.RMDF071.UINT8[R_IO_LH])
+#define RSCAN0RMDF071H (RSCAN0.RMDF071.UINT16[R_IO_H])
+#define RSCAN0RMDF071HL (RSCAN0.RMDF071.UINT8[R_IO_HL])
+#define RSCAN0RMDF071HH (RSCAN0.RMDF071.UINT8[R_IO_HH])
+#define RSCAN0RMDF171 (RSCAN0.RMDF171.UINT32)
+#define RSCAN0RMDF171L (RSCAN0.RMDF171.UINT16[R_IO_L])
+#define RSCAN0RMDF171LL (RSCAN0.RMDF171.UINT8[R_IO_LL])
+#define RSCAN0RMDF171LH (RSCAN0.RMDF171.UINT8[R_IO_LH])
+#define RSCAN0RMDF171H (RSCAN0.RMDF171.UINT16[R_IO_H])
+#define RSCAN0RMDF171HL (RSCAN0.RMDF171.UINT8[R_IO_HL])
+#define RSCAN0RMDF171HH (RSCAN0.RMDF171.UINT8[R_IO_HH])
+#define RSCAN0RMID72 (RSCAN0.RMID72.UINT32)
+#define RSCAN0RMID72L (RSCAN0.RMID72.UINT16[R_IO_L])
+#define RSCAN0RMID72LL (RSCAN0.RMID72.UINT8[R_IO_LL])
+#define RSCAN0RMID72LH (RSCAN0.RMID72.UINT8[R_IO_LH])
+#define RSCAN0RMID72H (RSCAN0.RMID72.UINT16[R_IO_H])
+#define RSCAN0RMID72HL (RSCAN0.RMID72.UINT8[R_IO_HL])
+#define RSCAN0RMID72HH (RSCAN0.RMID72.UINT8[R_IO_HH])
+#define RSCAN0RMPTR72 (RSCAN0.RMPTR72.UINT32)
+#define RSCAN0RMPTR72L (RSCAN0.RMPTR72.UINT16[R_IO_L])
+#define RSCAN0RMPTR72LL (RSCAN0.RMPTR72.UINT8[R_IO_LL])
+#define RSCAN0RMPTR72LH (RSCAN0.RMPTR72.UINT8[R_IO_LH])
+#define RSCAN0RMPTR72H (RSCAN0.RMPTR72.UINT16[R_IO_H])
+#define RSCAN0RMPTR72HL (RSCAN0.RMPTR72.UINT8[R_IO_HL])
+#define RSCAN0RMPTR72HH (RSCAN0.RMPTR72.UINT8[R_IO_HH])
+#define RSCAN0RMDF072 (RSCAN0.RMDF072.UINT32)
+#define RSCAN0RMDF072L (RSCAN0.RMDF072.UINT16[R_IO_L])
+#define RSCAN0RMDF072LL (RSCAN0.RMDF072.UINT8[R_IO_LL])
+#define RSCAN0RMDF072LH (RSCAN0.RMDF072.UINT8[R_IO_LH])
+#define RSCAN0RMDF072H (RSCAN0.RMDF072.UINT16[R_IO_H])
+#define RSCAN0RMDF072HL (RSCAN0.RMDF072.UINT8[R_IO_HL])
+#define RSCAN0RMDF072HH (RSCAN0.RMDF072.UINT8[R_IO_HH])
+#define RSCAN0RMDF172 (RSCAN0.RMDF172.UINT32)
+#define RSCAN0RMDF172L (RSCAN0.RMDF172.UINT16[R_IO_L])
+#define RSCAN0RMDF172LL (RSCAN0.RMDF172.UINT8[R_IO_LL])
+#define RSCAN0RMDF172LH (RSCAN0.RMDF172.UINT8[R_IO_LH])
+#define RSCAN0RMDF172H (RSCAN0.RMDF172.UINT16[R_IO_H])
+#define RSCAN0RMDF172HL (RSCAN0.RMDF172.UINT8[R_IO_HL])
+#define RSCAN0RMDF172HH (RSCAN0.RMDF172.UINT8[R_IO_HH])
+#define RSCAN0RMID73 (RSCAN0.RMID73.UINT32)
+#define RSCAN0RMID73L (RSCAN0.RMID73.UINT16[R_IO_L])
+#define RSCAN0RMID73LL (RSCAN0.RMID73.UINT8[R_IO_LL])
+#define RSCAN0RMID73LH (RSCAN0.RMID73.UINT8[R_IO_LH])
+#define RSCAN0RMID73H (RSCAN0.RMID73.UINT16[R_IO_H])
+#define RSCAN0RMID73HL (RSCAN0.RMID73.UINT8[R_IO_HL])
+#define RSCAN0RMID73HH (RSCAN0.RMID73.UINT8[R_IO_HH])
+#define RSCAN0RMPTR73 (RSCAN0.RMPTR73.UINT32)
+#define RSCAN0RMPTR73L (RSCAN0.RMPTR73.UINT16[R_IO_L])
+#define RSCAN0RMPTR73LL (RSCAN0.RMPTR73.UINT8[R_IO_LL])
+#define RSCAN0RMPTR73LH (RSCAN0.RMPTR73.UINT8[R_IO_LH])
+#define RSCAN0RMPTR73H (RSCAN0.RMPTR73.UINT16[R_IO_H])
+#define RSCAN0RMPTR73HL (RSCAN0.RMPTR73.UINT8[R_IO_HL])
+#define RSCAN0RMPTR73HH (RSCAN0.RMPTR73.UINT8[R_IO_HH])
+#define RSCAN0RMDF073 (RSCAN0.RMDF073.UINT32)
+#define RSCAN0RMDF073L (RSCAN0.RMDF073.UINT16[R_IO_L])
+#define RSCAN0RMDF073LL (RSCAN0.RMDF073.UINT8[R_IO_LL])
+#define RSCAN0RMDF073LH (RSCAN0.RMDF073.UINT8[R_IO_LH])
+#define RSCAN0RMDF073H (RSCAN0.RMDF073.UINT16[R_IO_H])
+#define RSCAN0RMDF073HL (RSCAN0.RMDF073.UINT8[R_IO_HL])
+#define RSCAN0RMDF073HH (RSCAN0.RMDF073.UINT8[R_IO_HH])
+#define RSCAN0RMDF173 (RSCAN0.RMDF173.UINT32)
+#define RSCAN0RMDF173L (RSCAN0.RMDF173.UINT16[R_IO_L])
+#define RSCAN0RMDF173LL (RSCAN0.RMDF173.UINT8[R_IO_LL])
+#define RSCAN0RMDF173LH (RSCAN0.RMDF173.UINT8[R_IO_LH])
+#define RSCAN0RMDF173H (RSCAN0.RMDF173.UINT16[R_IO_H])
+#define RSCAN0RMDF173HL (RSCAN0.RMDF173.UINT8[R_IO_HL])
+#define RSCAN0RMDF173HH (RSCAN0.RMDF173.UINT8[R_IO_HH])
+#define RSCAN0RMID74 (RSCAN0.RMID74.UINT32)
+#define RSCAN0RMID74L (RSCAN0.RMID74.UINT16[R_IO_L])
+#define RSCAN0RMID74LL (RSCAN0.RMID74.UINT8[R_IO_LL])
+#define RSCAN0RMID74LH (RSCAN0.RMID74.UINT8[R_IO_LH])
+#define RSCAN0RMID74H (RSCAN0.RMID74.UINT16[R_IO_H])
+#define RSCAN0RMID74HL (RSCAN0.RMID74.UINT8[R_IO_HL])
+#define RSCAN0RMID74HH (RSCAN0.RMID74.UINT8[R_IO_HH])
+#define RSCAN0RMPTR74 (RSCAN0.RMPTR74.UINT32)
+#define RSCAN0RMPTR74L (RSCAN0.RMPTR74.UINT16[R_IO_L])
+#define RSCAN0RMPTR74LL (RSCAN0.RMPTR74.UINT8[R_IO_LL])
+#define RSCAN0RMPTR74LH (RSCAN0.RMPTR74.UINT8[R_IO_LH])
+#define RSCAN0RMPTR74H (RSCAN0.RMPTR74.UINT16[R_IO_H])
+#define RSCAN0RMPTR74HL (RSCAN0.RMPTR74.UINT8[R_IO_HL])
+#define RSCAN0RMPTR74HH (RSCAN0.RMPTR74.UINT8[R_IO_HH])
+#define RSCAN0RMDF074 (RSCAN0.RMDF074.UINT32)
+#define RSCAN0RMDF074L (RSCAN0.RMDF074.UINT16[R_IO_L])
+#define RSCAN0RMDF074LL (RSCAN0.RMDF074.UINT8[R_IO_LL])
+#define RSCAN0RMDF074LH (RSCAN0.RMDF074.UINT8[R_IO_LH])
+#define RSCAN0RMDF074H (RSCAN0.RMDF074.UINT16[R_IO_H])
+#define RSCAN0RMDF074HL (RSCAN0.RMDF074.UINT8[R_IO_HL])
+#define RSCAN0RMDF074HH (RSCAN0.RMDF074.UINT8[R_IO_HH])
+#define RSCAN0RMDF174 (RSCAN0.RMDF174.UINT32)
+#define RSCAN0RMDF174L (RSCAN0.RMDF174.UINT16[R_IO_L])
+#define RSCAN0RMDF174LL (RSCAN0.RMDF174.UINT8[R_IO_LL])
+#define RSCAN0RMDF174LH (RSCAN0.RMDF174.UINT8[R_IO_LH])
+#define RSCAN0RMDF174H (RSCAN0.RMDF174.UINT16[R_IO_H])
+#define RSCAN0RMDF174HL (RSCAN0.RMDF174.UINT8[R_IO_HL])
+#define RSCAN0RMDF174HH (RSCAN0.RMDF174.UINT8[R_IO_HH])
+#define RSCAN0RMID75 (RSCAN0.RMID75.UINT32)
+#define RSCAN0RMID75L (RSCAN0.RMID75.UINT16[R_IO_L])
+#define RSCAN0RMID75LL (RSCAN0.RMID75.UINT8[R_IO_LL])
+#define RSCAN0RMID75LH (RSCAN0.RMID75.UINT8[R_IO_LH])
+#define RSCAN0RMID75H (RSCAN0.RMID75.UINT16[R_IO_H])
+#define RSCAN0RMID75HL (RSCAN0.RMID75.UINT8[R_IO_HL])
+#define RSCAN0RMID75HH (RSCAN0.RMID75.UINT8[R_IO_HH])
+#define RSCAN0RMPTR75 (RSCAN0.RMPTR75.UINT32)
+#define RSCAN0RMPTR75L (RSCAN0.RMPTR75.UINT16[R_IO_L])
+#define RSCAN0RMPTR75LL (RSCAN0.RMPTR75.UINT8[R_IO_LL])
+#define RSCAN0RMPTR75LH (RSCAN0.RMPTR75.UINT8[R_IO_LH])
+#define RSCAN0RMPTR75H (RSCAN0.RMPTR75.UINT16[R_IO_H])
+#define RSCAN0RMPTR75HL (RSCAN0.RMPTR75.UINT8[R_IO_HL])
+#define RSCAN0RMPTR75HH (RSCAN0.RMPTR75.UINT8[R_IO_HH])
+#define RSCAN0RMDF075 (RSCAN0.RMDF075.UINT32)
+#define RSCAN0RMDF075L (RSCAN0.RMDF075.UINT16[R_IO_L])
+#define RSCAN0RMDF075LL (RSCAN0.RMDF075.UINT8[R_IO_LL])
+#define RSCAN0RMDF075LH (RSCAN0.RMDF075.UINT8[R_IO_LH])
+#define RSCAN0RMDF075H (RSCAN0.RMDF075.UINT16[R_IO_H])
+#define RSCAN0RMDF075HL (RSCAN0.RMDF075.UINT8[R_IO_HL])
+#define RSCAN0RMDF075HH (RSCAN0.RMDF075.UINT8[R_IO_HH])
+#define RSCAN0RMDF175 (RSCAN0.RMDF175.UINT32)
+#define RSCAN0RMDF175L (RSCAN0.RMDF175.UINT16[R_IO_L])
+#define RSCAN0RMDF175LL (RSCAN0.RMDF175.UINT8[R_IO_LL])
+#define RSCAN0RMDF175LH (RSCAN0.RMDF175.UINT8[R_IO_LH])
+#define RSCAN0RMDF175H (RSCAN0.RMDF175.UINT16[R_IO_H])
+#define RSCAN0RMDF175HL (RSCAN0.RMDF175.UINT8[R_IO_HL])
+#define RSCAN0RMDF175HH (RSCAN0.RMDF175.UINT8[R_IO_HH])
+#define RSCAN0RMID76 (RSCAN0.RMID76.UINT32)
+#define RSCAN0RMID76L (RSCAN0.RMID76.UINT16[R_IO_L])
+#define RSCAN0RMID76LL (RSCAN0.RMID76.UINT8[R_IO_LL])
+#define RSCAN0RMID76LH (RSCAN0.RMID76.UINT8[R_IO_LH])
+#define RSCAN0RMID76H (RSCAN0.RMID76.UINT16[R_IO_H])
+#define RSCAN0RMID76HL (RSCAN0.RMID76.UINT8[R_IO_HL])
+#define RSCAN0RMID76HH (RSCAN0.RMID76.UINT8[R_IO_HH])
+#define RSCAN0RMPTR76 (RSCAN0.RMPTR76.UINT32)
+#define RSCAN0RMPTR76L (RSCAN0.RMPTR76.UINT16[R_IO_L])
+#define RSCAN0RMPTR76LL (RSCAN0.RMPTR76.UINT8[R_IO_LL])
+#define RSCAN0RMPTR76LH (RSCAN0.RMPTR76.UINT8[R_IO_LH])
+#define RSCAN0RMPTR76H (RSCAN0.RMPTR76.UINT16[R_IO_H])
+#define RSCAN0RMPTR76HL (RSCAN0.RMPTR76.UINT8[R_IO_HL])
+#define RSCAN0RMPTR76HH (RSCAN0.RMPTR76.UINT8[R_IO_HH])
+#define RSCAN0RMDF076 (RSCAN0.RMDF076.UINT32)
+#define RSCAN0RMDF076L (RSCAN0.RMDF076.UINT16[R_IO_L])
+#define RSCAN0RMDF076LL (RSCAN0.RMDF076.UINT8[R_IO_LL])
+#define RSCAN0RMDF076LH (RSCAN0.RMDF076.UINT8[R_IO_LH])
+#define RSCAN0RMDF076H (RSCAN0.RMDF076.UINT16[R_IO_H])
+#define RSCAN0RMDF076HL (RSCAN0.RMDF076.UINT8[R_IO_HL])
+#define RSCAN0RMDF076HH (RSCAN0.RMDF076.UINT8[R_IO_HH])
+#define RSCAN0RMDF176 (RSCAN0.RMDF176.UINT32)
+#define RSCAN0RMDF176L (RSCAN0.RMDF176.UINT16[R_IO_L])
+#define RSCAN0RMDF176LL (RSCAN0.RMDF176.UINT8[R_IO_LL])
+#define RSCAN0RMDF176LH (RSCAN0.RMDF176.UINT8[R_IO_LH])
+#define RSCAN0RMDF176H (RSCAN0.RMDF176.UINT16[R_IO_H])
+#define RSCAN0RMDF176HL (RSCAN0.RMDF176.UINT8[R_IO_HL])
+#define RSCAN0RMDF176HH (RSCAN0.RMDF176.UINT8[R_IO_HH])
+#define RSCAN0RMID77 (RSCAN0.RMID77.UINT32)
+#define RSCAN0RMID77L (RSCAN0.RMID77.UINT16[R_IO_L])
+#define RSCAN0RMID77LL (RSCAN0.RMID77.UINT8[R_IO_LL])
+#define RSCAN0RMID77LH (RSCAN0.RMID77.UINT8[R_IO_LH])
+#define RSCAN0RMID77H (RSCAN0.RMID77.UINT16[R_IO_H])
+#define RSCAN0RMID77HL (RSCAN0.RMID77.UINT8[R_IO_HL])
+#define RSCAN0RMID77HH (RSCAN0.RMID77.UINT8[R_IO_HH])
+#define RSCAN0RMPTR77 (RSCAN0.RMPTR77.UINT32)
+#define RSCAN0RMPTR77L (RSCAN0.RMPTR77.UINT16[R_IO_L])
+#define RSCAN0RMPTR77LL (RSCAN0.RMPTR77.UINT8[R_IO_LL])
+#define RSCAN0RMPTR77LH (RSCAN0.RMPTR77.UINT8[R_IO_LH])
+#define RSCAN0RMPTR77H (RSCAN0.RMPTR77.UINT16[R_IO_H])
+#define RSCAN0RMPTR77HL (RSCAN0.RMPTR77.UINT8[R_IO_HL])
+#define RSCAN0RMPTR77HH (RSCAN0.RMPTR77.UINT8[R_IO_HH])
+#define RSCAN0RMDF077 (RSCAN0.RMDF077.UINT32)
+#define RSCAN0RMDF077L (RSCAN0.RMDF077.UINT16[R_IO_L])
+#define RSCAN0RMDF077LL (RSCAN0.RMDF077.UINT8[R_IO_LL])
+#define RSCAN0RMDF077LH (RSCAN0.RMDF077.UINT8[R_IO_LH])
+#define RSCAN0RMDF077H (RSCAN0.RMDF077.UINT16[R_IO_H])
+#define RSCAN0RMDF077HL (RSCAN0.RMDF077.UINT8[R_IO_HL])
+#define RSCAN0RMDF077HH (RSCAN0.RMDF077.UINT8[R_IO_HH])
+#define RSCAN0RMDF177 (RSCAN0.RMDF177.UINT32)
+#define RSCAN0RMDF177L (RSCAN0.RMDF177.UINT16[R_IO_L])
+#define RSCAN0RMDF177LL (RSCAN0.RMDF177.UINT8[R_IO_LL])
+#define RSCAN0RMDF177LH (RSCAN0.RMDF177.UINT8[R_IO_LH])
+#define RSCAN0RMDF177H (RSCAN0.RMDF177.UINT16[R_IO_H])
+#define RSCAN0RMDF177HL (RSCAN0.RMDF177.UINT8[R_IO_HL])
+#define RSCAN0RMDF177HH (RSCAN0.RMDF177.UINT8[R_IO_HH])
+#define RSCAN0RMID78 (RSCAN0.RMID78.UINT32)
+#define RSCAN0RMID78L (RSCAN0.RMID78.UINT16[R_IO_L])
+#define RSCAN0RMID78LL (RSCAN0.RMID78.UINT8[R_IO_LL])
+#define RSCAN0RMID78LH (RSCAN0.RMID78.UINT8[R_IO_LH])
+#define RSCAN0RMID78H (RSCAN0.RMID78.UINT16[R_IO_H])
+#define RSCAN0RMID78HL (RSCAN0.RMID78.UINT8[R_IO_HL])
+#define RSCAN0RMID78HH (RSCAN0.RMID78.UINT8[R_IO_HH])
+#define RSCAN0RMPTR78 (RSCAN0.RMPTR78.UINT32)
+#define RSCAN0RMPTR78L (RSCAN0.RMPTR78.UINT16[R_IO_L])
+#define RSCAN0RMPTR78LL (RSCAN0.RMPTR78.UINT8[R_IO_LL])
+#define RSCAN0RMPTR78LH (RSCAN0.RMPTR78.UINT8[R_IO_LH])
+#define RSCAN0RMPTR78H (RSCAN0.RMPTR78.UINT16[R_IO_H])
+#define RSCAN0RMPTR78HL (RSCAN0.RMPTR78.UINT8[R_IO_HL])
+#define RSCAN0RMPTR78HH (RSCAN0.RMPTR78.UINT8[R_IO_HH])
+#define RSCAN0RMDF078 (RSCAN0.RMDF078.UINT32)
+#define RSCAN0RMDF078L (RSCAN0.RMDF078.UINT16[R_IO_L])
+#define RSCAN0RMDF078LL (RSCAN0.RMDF078.UINT8[R_IO_LL])
+#define RSCAN0RMDF078LH (RSCAN0.RMDF078.UINT8[R_IO_LH])
+#define RSCAN0RMDF078H (RSCAN0.RMDF078.UINT16[R_IO_H])
+#define RSCAN0RMDF078HL (RSCAN0.RMDF078.UINT8[R_IO_HL])
+#define RSCAN0RMDF078HH (RSCAN0.RMDF078.UINT8[R_IO_HH])
+#define RSCAN0RMDF178 (RSCAN0.RMDF178.UINT32)
+#define RSCAN0RMDF178L (RSCAN0.RMDF178.UINT16[R_IO_L])
+#define RSCAN0RMDF178LL (RSCAN0.RMDF178.UINT8[R_IO_LL])
+#define RSCAN0RMDF178LH (RSCAN0.RMDF178.UINT8[R_IO_LH])
+#define RSCAN0RMDF178H (RSCAN0.RMDF178.UINT16[R_IO_H])
+#define RSCAN0RMDF178HL (RSCAN0.RMDF178.UINT8[R_IO_HL])
+#define RSCAN0RMDF178HH (RSCAN0.RMDF178.UINT8[R_IO_HH])
+#define RSCAN0RMID79 (RSCAN0.RMID79.UINT32)
+#define RSCAN0RMID79L (RSCAN0.RMID79.UINT16[R_IO_L])
+#define RSCAN0RMID79LL (RSCAN0.RMID79.UINT8[R_IO_LL])
+#define RSCAN0RMID79LH (RSCAN0.RMID79.UINT8[R_IO_LH])
+#define RSCAN0RMID79H (RSCAN0.RMID79.UINT16[R_IO_H])
+#define RSCAN0RMID79HL (RSCAN0.RMID79.UINT8[R_IO_HL])
+#define RSCAN0RMID79HH (RSCAN0.RMID79.UINT8[R_IO_HH])
+#define RSCAN0RMPTR79 (RSCAN0.RMPTR79.UINT32)
+#define RSCAN0RMPTR79L (RSCAN0.RMPTR79.UINT16[R_IO_L])
+#define RSCAN0RMPTR79LL (RSCAN0.RMPTR79.UINT8[R_IO_LL])
+#define RSCAN0RMPTR79LH (RSCAN0.RMPTR79.UINT8[R_IO_LH])
+#define RSCAN0RMPTR79H (RSCAN0.RMPTR79.UINT16[R_IO_H])
+#define RSCAN0RMPTR79HL (RSCAN0.RMPTR79.UINT8[R_IO_HL])
+#define RSCAN0RMPTR79HH (RSCAN0.RMPTR79.UINT8[R_IO_HH])
+#define RSCAN0RMDF079 (RSCAN0.RMDF079.UINT32)
+#define RSCAN0RMDF079L (RSCAN0.RMDF079.UINT16[R_IO_L])
+#define RSCAN0RMDF079LL (RSCAN0.RMDF079.UINT8[R_IO_LL])
+#define RSCAN0RMDF079LH (RSCAN0.RMDF079.UINT8[R_IO_LH])
+#define RSCAN0RMDF079H (RSCAN0.RMDF079.UINT16[R_IO_H])
+#define RSCAN0RMDF079HL (RSCAN0.RMDF079.UINT8[R_IO_HL])
+#define RSCAN0RMDF079HH (RSCAN0.RMDF079.UINT8[R_IO_HH])
+#define RSCAN0RMDF179 (RSCAN0.RMDF179.UINT32)
+#define RSCAN0RMDF179L (RSCAN0.RMDF179.UINT16[R_IO_L])
+#define RSCAN0RMDF179LL (RSCAN0.RMDF179.UINT8[R_IO_LL])
+#define RSCAN0RMDF179LH (RSCAN0.RMDF179.UINT8[R_IO_LH])
+#define RSCAN0RMDF179H (RSCAN0.RMDF179.UINT16[R_IO_H])
+#define RSCAN0RMDF179HL (RSCAN0.RMDF179.UINT8[R_IO_HL])
+#define RSCAN0RMDF179HH (RSCAN0.RMDF179.UINT8[R_IO_HH])
+#define RSCAN0RFID0 (RSCAN0.RFID0.UINT32)
+#define RSCAN0RFID0L (RSCAN0.RFID0.UINT16[R_IO_L])
+#define RSCAN0RFID0LL (RSCAN0.RFID0.UINT8[R_IO_LL])
+#define RSCAN0RFID0LH (RSCAN0.RFID0.UINT8[R_IO_LH])
+#define RSCAN0RFID0H (RSCAN0.RFID0.UINT16[R_IO_H])
+#define RSCAN0RFID0HL (RSCAN0.RFID0.UINT8[R_IO_HL])
+#define RSCAN0RFID0HH (RSCAN0.RFID0.UINT8[R_IO_HH])
+#define RSCAN0RFPTR0 (RSCAN0.RFPTR0.UINT32)
+#define RSCAN0RFPTR0L (RSCAN0.RFPTR0.UINT16[R_IO_L])
+#define RSCAN0RFPTR0LL (RSCAN0.RFPTR0.UINT8[R_IO_LL])
+#define RSCAN0RFPTR0LH (RSCAN0.RFPTR0.UINT8[R_IO_LH])
+#define RSCAN0RFPTR0H (RSCAN0.RFPTR0.UINT16[R_IO_H])
+#define RSCAN0RFPTR0HL (RSCAN0.RFPTR0.UINT8[R_IO_HL])
+#define RSCAN0RFPTR0HH (RSCAN0.RFPTR0.UINT8[R_IO_HH])
+#define RSCAN0RFDF00 (RSCAN0.RFDF00.UINT32)
+#define RSCAN0RFDF00L (RSCAN0.RFDF00.UINT16[R_IO_L])
+#define RSCAN0RFDF00LL (RSCAN0.RFDF00.UINT8[R_IO_LL])
+#define RSCAN0RFDF00LH (RSCAN0.RFDF00.UINT8[R_IO_LH])
+#define RSCAN0RFDF00H (RSCAN0.RFDF00.UINT16[R_IO_H])
+#define RSCAN0RFDF00HL (RSCAN0.RFDF00.UINT8[R_IO_HL])
+#define RSCAN0RFDF00HH (RSCAN0.RFDF00.UINT8[R_IO_HH])
+#define RSCAN0RFDF10 (RSCAN0.RFDF10.UINT32)
+#define RSCAN0RFDF10L (RSCAN0.RFDF10.UINT16[R_IO_L])
+#define RSCAN0RFDF10LL (RSCAN0.RFDF10.UINT8[R_IO_LL])
+#define RSCAN0RFDF10LH (RSCAN0.RFDF10.UINT8[R_IO_LH])
+#define RSCAN0RFDF10H (RSCAN0.RFDF10.UINT16[R_IO_H])
+#define RSCAN0RFDF10HL (RSCAN0.RFDF10.UINT8[R_IO_HL])
+#define RSCAN0RFDF10HH (RSCAN0.RFDF10.UINT8[R_IO_HH])
+#define RSCAN0RFID1 (RSCAN0.RFID1.UINT32)
+#define RSCAN0RFID1L (RSCAN0.RFID1.UINT16[R_IO_L])
+#define RSCAN0RFID1LL (RSCAN0.RFID1.UINT8[R_IO_LL])
+#define RSCAN0RFID1LH (RSCAN0.RFID1.UINT8[R_IO_LH])
+#define RSCAN0RFID1H (RSCAN0.RFID1.UINT16[R_IO_H])
+#define RSCAN0RFID1HL (RSCAN0.RFID1.UINT8[R_IO_HL])
+#define RSCAN0RFID1HH (RSCAN0.RFID1.UINT8[R_IO_HH])
+#define RSCAN0RFPTR1 (RSCAN0.RFPTR1.UINT32)
+#define RSCAN0RFPTR1L (RSCAN0.RFPTR1.UINT16[R_IO_L])
+#define RSCAN0RFPTR1LL (RSCAN0.RFPTR1.UINT8[R_IO_LL])
+#define RSCAN0RFPTR1LH (RSCAN0.RFPTR1.UINT8[R_IO_LH])
+#define RSCAN0RFPTR1H (RSCAN0.RFPTR1.UINT16[R_IO_H])
+#define RSCAN0RFPTR1HL (RSCAN0.RFPTR1.UINT8[R_IO_HL])
+#define RSCAN0RFPTR1HH (RSCAN0.RFPTR1.UINT8[R_IO_HH])
+#define RSCAN0RFDF01 (RSCAN0.RFDF01.UINT32)
+#define RSCAN0RFDF01L (RSCAN0.RFDF01.UINT16[R_IO_L])
+#define RSCAN0RFDF01LL (RSCAN0.RFDF01.UINT8[R_IO_LL])
+#define RSCAN0RFDF01LH (RSCAN0.RFDF01.UINT8[R_IO_LH])
+#define RSCAN0RFDF01H (RSCAN0.RFDF01.UINT16[R_IO_H])
+#define RSCAN0RFDF01HL (RSCAN0.RFDF01.UINT8[R_IO_HL])
+#define RSCAN0RFDF01HH (RSCAN0.RFDF01.UINT8[R_IO_HH])
+#define RSCAN0RFDF11 (RSCAN0.RFDF11.UINT32)
+#define RSCAN0RFDF11L (RSCAN0.RFDF11.UINT16[R_IO_L])
+#define RSCAN0RFDF11LL (RSCAN0.RFDF11.UINT8[R_IO_LL])
+#define RSCAN0RFDF11LH (RSCAN0.RFDF11.UINT8[R_IO_LH])
+#define RSCAN0RFDF11H (RSCAN0.RFDF11.UINT16[R_IO_H])
+#define RSCAN0RFDF11HL (RSCAN0.RFDF11.UINT8[R_IO_HL])
+#define RSCAN0RFDF11HH (RSCAN0.RFDF11.UINT8[R_IO_HH])
+#define RSCAN0RFID2 (RSCAN0.RFID2.UINT32)
+#define RSCAN0RFID2L (RSCAN0.RFID2.UINT16[R_IO_L])
+#define RSCAN0RFID2LL (RSCAN0.RFID2.UINT8[R_IO_LL])
+#define RSCAN0RFID2LH (RSCAN0.RFID2.UINT8[R_IO_LH])
+#define RSCAN0RFID2H (RSCAN0.RFID2.UINT16[R_IO_H])
+#define RSCAN0RFID2HL (RSCAN0.RFID2.UINT8[R_IO_HL])
+#define RSCAN0RFID2HH (RSCAN0.RFID2.UINT8[R_IO_HH])
+#define RSCAN0RFPTR2 (RSCAN0.RFPTR2.UINT32)
+#define RSCAN0RFPTR2L (RSCAN0.RFPTR2.UINT16[R_IO_L])
+#define RSCAN0RFPTR2LL (RSCAN0.RFPTR2.UINT8[R_IO_LL])
+#define RSCAN0RFPTR2LH (RSCAN0.RFPTR2.UINT8[R_IO_LH])
+#define RSCAN0RFPTR2H (RSCAN0.RFPTR2.UINT16[R_IO_H])
+#define RSCAN0RFPTR2HL (RSCAN0.RFPTR2.UINT8[R_IO_HL])
+#define RSCAN0RFPTR2HH (RSCAN0.RFPTR2.UINT8[R_IO_HH])
+#define RSCAN0RFDF02 (RSCAN0.RFDF02.UINT32)
+#define RSCAN0RFDF02L (RSCAN0.RFDF02.UINT16[R_IO_L])
+#define RSCAN0RFDF02LL (RSCAN0.RFDF02.UINT8[R_IO_LL])
+#define RSCAN0RFDF02LH (RSCAN0.RFDF02.UINT8[R_IO_LH])
+#define RSCAN0RFDF02H (RSCAN0.RFDF02.UINT16[R_IO_H])
+#define RSCAN0RFDF02HL (RSCAN0.RFDF02.UINT8[R_IO_HL])
+#define RSCAN0RFDF02HH (RSCAN0.RFDF02.UINT8[R_IO_HH])
+#define RSCAN0RFDF12 (RSCAN0.RFDF12.UINT32)
+#define RSCAN0RFDF12L (RSCAN0.RFDF12.UINT16[R_IO_L])
+#define RSCAN0RFDF12LL (RSCAN0.RFDF12.UINT8[R_IO_LL])
+#define RSCAN0RFDF12LH (RSCAN0.RFDF12.UINT8[R_IO_LH])
+#define RSCAN0RFDF12H (RSCAN0.RFDF12.UINT16[R_IO_H])
+#define RSCAN0RFDF12HL (RSCAN0.RFDF12.UINT8[R_IO_HL])
+#define RSCAN0RFDF12HH (RSCAN0.RFDF12.UINT8[R_IO_HH])
+#define RSCAN0RFID3 (RSCAN0.RFID3.UINT32)
+#define RSCAN0RFID3L (RSCAN0.RFID3.UINT16[R_IO_L])
+#define RSCAN0RFID3LL (RSCAN0.RFID3.UINT8[R_IO_LL])
+#define RSCAN0RFID3LH (RSCAN0.RFID3.UINT8[R_IO_LH])
+#define RSCAN0RFID3H (RSCAN0.RFID3.UINT16[R_IO_H])
+#define RSCAN0RFID3HL (RSCAN0.RFID3.UINT8[R_IO_HL])
+#define RSCAN0RFID3HH (RSCAN0.RFID3.UINT8[R_IO_HH])
+#define RSCAN0RFPTR3 (RSCAN0.RFPTR3.UINT32)
+#define RSCAN0RFPTR3L (RSCAN0.RFPTR3.UINT16[R_IO_L])
+#define RSCAN0RFPTR3LL (RSCAN0.RFPTR3.UINT8[R_IO_LL])
+#define RSCAN0RFPTR3LH (RSCAN0.RFPTR3.UINT8[R_IO_LH])
+#define RSCAN0RFPTR3H (RSCAN0.RFPTR3.UINT16[R_IO_H])
+#define RSCAN0RFPTR3HL (RSCAN0.RFPTR3.UINT8[R_IO_HL])
+#define RSCAN0RFPTR3HH (RSCAN0.RFPTR3.UINT8[R_IO_HH])
+#define RSCAN0RFDF03 (RSCAN0.RFDF03.UINT32)
+#define RSCAN0RFDF03L (RSCAN0.RFDF03.UINT16[R_IO_L])
+#define RSCAN0RFDF03LL (RSCAN0.RFDF03.UINT8[R_IO_LL])
+#define RSCAN0RFDF03LH (RSCAN0.RFDF03.UINT8[R_IO_LH])
+#define RSCAN0RFDF03H (RSCAN0.RFDF03.UINT16[R_IO_H])
+#define RSCAN0RFDF03HL (RSCAN0.RFDF03.UINT8[R_IO_HL])
+#define RSCAN0RFDF03HH (RSCAN0.RFDF03.UINT8[R_IO_HH])
+#define RSCAN0RFDF13 (RSCAN0.RFDF13.UINT32)
+#define RSCAN0RFDF13L (RSCAN0.RFDF13.UINT16[R_IO_L])
+#define RSCAN0RFDF13LL (RSCAN0.RFDF13.UINT8[R_IO_LL])
+#define RSCAN0RFDF13LH (RSCAN0.RFDF13.UINT8[R_IO_LH])
+#define RSCAN0RFDF13H (RSCAN0.RFDF13.UINT16[R_IO_H])
+#define RSCAN0RFDF13HL (RSCAN0.RFDF13.UINT8[R_IO_HL])
+#define RSCAN0RFDF13HH (RSCAN0.RFDF13.UINT8[R_IO_HH])
+#define RSCAN0RFID4 (RSCAN0.RFID4.UINT32)
+#define RSCAN0RFID4L (RSCAN0.RFID4.UINT16[R_IO_L])
+#define RSCAN0RFID4LL (RSCAN0.RFID4.UINT8[R_IO_LL])
+#define RSCAN0RFID4LH (RSCAN0.RFID4.UINT8[R_IO_LH])
+#define RSCAN0RFID4H (RSCAN0.RFID4.UINT16[R_IO_H])
+#define RSCAN0RFID4HL (RSCAN0.RFID4.UINT8[R_IO_HL])
+#define RSCAN0RFID4HH (RSCAN0.RFID4.UINT8[R_IO_HH])
+#define RSCAN0RFPTR4 (RSCAN0.RFPTR4.UINT32)
+#define RSCAN0RFPTR4L (RSCAN0.RFPTR4.UINT16[R_IO_L])
+#define RSCAN0RFPTR4LL (RSCAN0.RFPTR4.UINT8[R_IO_LL])
+#define RSCAN0RFPTR4LH (RSCAN0.RFPTR4.UINT8[R_IO_LH])
+#define RSCAN0RFPTR4H (RSCAN0.RFPTR4.UINT16[R_IO_H])
+#define RSCAN0RFPTR4HL (RSCAN0.RFPTR4.UINT8[R_IO_HL])
+#define RSCAN0RFPTR4HH (RSCAN0.RFPTR4.UINT8[R_IO_HH])
+#define RSCAN0RFDF04 (RSCAN0.RFDF04.UINT32)
+#define RSCAN0RFDF04L (RSCAN0.RFDF04.UINT16[R_IO_L])
+#define RSCAN0RFDF04LL (RSCAN0.RFDF04.UINT8[R_IO_LL])
+#define RSCAN0RFDF04LH (RSCAN0.RFDF04.UINT8[R_IO_LH])
+#define RSCAN0RFDF04H (RSCAN0.RFDF04.UINT16[R_IO_H])
+#define RSCAN0RFDF04HL (RSCAN0.RFDF04.UINT8[R_IO_HL])
+#define RSCAN0RFDF04HH (RSCAN0.RFDF04.UINT8[R_IO_HH])
+#define RSCAN0RFDF14 (RSCAN0.RFDF14.UINT32)
+#define RSCAN0RFDF14L (RSCAN0.RFDF14.UINT16[R_IO_L])
+#define RSCAN0RFDF14LL (RSCAN0.RFDF14.UINT8[R_IO_LL])
+#define RSCAN0RFDF14LH (RSCAN0.RFDF14.UINT8[R_IO_LH])
+#define RSCAN0RFDF14H (RSCAN0.RFDF14.UINT16[R_IO_H])
+#define RSCAN0RFDF14HL (RSCAN0.RFDF14.UINT8[R_IO_HL])
+#define RSCAN0RFDF14HH (RSCAN0.RFDF14.UINT8[R_IO_HH])
+#define RSCAN0RFID5 (RSCAN0.RFID5.UINT32)
+#define RSCAN0RFID5L (RSCAN0.RFID5.UINT16[R_IO_L])
+#define RSCAN0RFID5LL (RSCAN0.RFID5.UINT8[R_IO_LL])
+#define RSCAN0RFID5LH (RSCAN0.RFID5.UINT8[R_IO_LH])
+#define RSCAN0RFID5H (RSCAN0.RFID5.UINT16[R_IO_H])
+#define RSCAN0RFID5HL (RSCAN0.RFID5.UINT8[R_IO_HL])
+#define RSCAN0RFID5HH (RSCAN0.RFID5.UINT8[R_IO_HH])
+#define RSCAN0RFPTR5 (RSCAN0.RFPTR5.UINT32)
+#define RSCAN0RFPTR5L (RSCAN0.RFPTR5.UINT16[R_IO_L])
+#define RSCAN0RFPTR5LL (RSCAN0.RFPTR5.UINT8[R_IO_LL])
+#define RSCAN0RFPTR5LH (RSCAN0.RFPTR5.UINT8[R_IO_LH])
+#define RSCAN0RFPTR5H (RSCAN0.RFPTR5.UINT16[R_IO_H])
+#define RSCAN0RFPTR5HL (RSCAN0.RFPTR5.UINT8[R_IO_HL])
+#define RSCAN0RFPTR5HH (RSCAN0.RFPTR5.UINT8[R_IO_HH])
+#define RSCAN0RFDF05 (RSCAN0.RFDF05.UINT32)
+#define RSCAN0RFDF05L (RSCAN0.RFDF05.UINT16[R_IO_L])
+#define RSCAN0RFDF05LL (RSCAN0.RFDF05.UINT8[R_IO_LL])
+#define RSCAN0RFDF05LH (RSCAN0.RFDF05.UINT8[R_IO_LH])
+#define RSCAN0RFDF05H (RSCAN0.RFDF05.UINT16[R_IO_H])
+#define RSCAN0RFDF05HL (RSCAN0.RFDF05.UINT8[R_IO_HL])
+#define RSCAN0RFDF05HH (RSCAN0.RFDF05.UINT8[R_IO_HH])
+#define RSCAN0RFDF15 (RSCAN0.RFDF15.UINT32)
+#define RSCAN0RFDF15L (RSCAN0.RFDF15.UINT16[R_IO_L])
+#define RSCAN0RFDF15LL (RSCAN0.RFDF15.UINT8[R_IO_LL])
+#define RSCAN0RFDF15LH (RSCAN0.RFDF15.UINT8[R_IO_LH])
+#define RSCAN0RFDF15H (RSCAN0.RFDF15.UINT16[R_IO_H])
+#define RSCAN0RFDF15HL (RSCAN0.RFDF15.UINT8[R_IO_HL])
+#define RSCAN0RFDF15HH (RSCAN0.RFDF15.UINT8[R_IO_HH])
+#define RSCAN0RFID6 (RSCAN0.RFID6.UINT32)
+#define RSCAN0RFID6L (RSCAN0.RFID6.UINT16[R_IO_L])
+#define RSCAN0RFID6LL (RSCAN0.RFID6.UINT8[R_IO_LL])
+#define RSCAN0RFID6LH (RSCAN0.RFID6.UINT8[R_IO_LH])
+#define RSCAN0RFID6H (RSCAN0.RFID6.UINT16[R_IO_H])
+#define RSCAN0RFID6HL (RSCAN0.RFID6.UINT8[R_IO_HL])
+#define RSCAN0RFID6HH (RSCAN0.RFID6.UINT8[R_IO_HH])
+#define RSCAN0RFPTR6 (RSCAN0.RFPTR6.UINT32)
+#define RSCAN0RFPTR6L (RSCAN0.RFPTR6.UINT16[R_IO_L])
+#define RSCAN0RFPTR6LL (RSCAN0.RFPTR6.UINT8[R_IO_LL])
+#define RSCAN0RFPTR6LH (RSCAN0.RFPTR6.UINT8[R_IO_LH])
+#define RSCAN0RFPTR6H (RSCAN0.RFPTR6.UINT16[R_IO_H])
+#define RSCAN0RFPTR6HL (RSCAN0.RFPTR6.UINT8[R_IO_HL])
+#define RSCAN0RFPTR6HH (RSCAN0.RFPTR6.UINT8[R_IO_HH])
+#define RSCAN0RFDF06 (RSCAN0.RFDF06.UINT32)
+#define RSCAN0RFDF06L (RSCAN0.RFDF06.UINT16[R_IO_L])
+#define RSCAN0RFDF06LL (RSCAN0.RFDF06.UINT8[R_IO_LL])
+#define RSCAN0RFDF06LH (RSCAN0.RFDF06.UINT8[R_IO_LH])
+#define RSCAN0RFDF06H (RSCAN0.RFDF06.UINT16[R_IO_H])
+#define RSCAN0RFDF06HL (RSCAN0.RFDF06.UINT8[R_IO_HL])
+#define RSCAN0RFDF06HH (RSCAN0.RFDF06.UINT8[R_IO_HH])
+#define RSCAN0RFDF16 (RSCAN0.RFDF16.UINT32)
+#define RSCAN0RFDF16L (RSCAN0.RFDF16.UINT16[R_IO_L])
+#define RSCAN0RFDF16LL (RSCAN0.RFDF16.UINT8[R_IO_LL])
+#define RSCAN0RFDF16LH (RSCAN0.RFDF16.UINT8[R_IO_LH])
+#define RSCAN0RFDF16H (RSCAN0.RFDF16.UINT16[R_IO_H])
+#define RSCAN0RFDF16HL (RSCAN0.RFDF16.UINT8[R_IO_HL])
+#define RSCAN0RFDF16HH (RSCAN0.RFDF16.UINT8[R_IO_HH])
+#define RSCAN0RFID7 (RSCAN0.RFID7.UINT32)
+#define RSCAN0RFID7L (RSCAN0.RFID7.UINT16[R_IO_L])
+#define RSCAN0RFID7LL (RSCAN0.RFID7.UINT8[R_IO_LL])
+#define RSCAN0RFID7LH (RSCAN0.RFID7.UINT8[R_IO_LH])
+#define RSCAN0RFID7H (RSCAN0.RFID7.UINT16[R_IO_H])
+#define RSCAN0RFID7HL (RSCAN0.RFID7.UINT8[R_IO_HL])
+#define RSCAN0RFID7HH (RSCAN0.RFID7.UINT8[R_IO_HH])
+#define RSCAN0RFPTR7 (RSCAN0.RFPTR7.UINT32)
+#define RSCAN0RFPTR7L (RSCAN0.RFPTR7.UINT16[R_IO_L])
+#define RSCAN0RFPTR7LL (RSCAN0.RFPTR7.UINT8[R_IO_LL])
+#define RSCAN0RFPTR7LH (RSCAN0.RFPTR7.UINT8[R_IO_LH])
+#define RSCAN0RFPTR7H (RSCAN0.RFPTR7.UINT16[R_IO_H])
+#define RSCAN0RFPTR7HL (RSCAN0.RFPTR7.UINT8[R_IO_HL])
+#define RSCAN0RFPTR7HH (RSCAN0.RFPTR7.UINT8[R_IO_HH])
+#define RSCAN0RFDF07 (RSCAN0.RFDF07.UINT32)
+#define RSCAN0RFDF07L (RSCAN0.RFDF07.UINT16[R_IO_L])
+#define RSCAN0RFDF07LL (RSCAN0.RFDF07.UINT8[R_IO_LL])
+#define RSCAN0RFDF07LH (RSCAN0.RFDF07.UINT8[R_IO_LH])
+#define RSCAN0RFDF07H (RSCAN0.RFDF07.UINT16[R_IO_H])
+#define RSCAN0RFDF07HL (RSCAN0.RFDF07.UINT8[R_IO_HL])
+#define RSCAN0RFDF07HH (RSCAN0.RFDF07.UINT8[R_IO_HH])
+#define RSCAN0RFDF17 (RSCAN0.RFDF17.UINT32)
+#define RSCAN0RFDF17L (RSCAN0.RFDF17.UINT16[R_IO_L])
+#define RSCAN0RFDF17LL (RSCAN0.RFDF17.UINT8[R_IO_LL])
+#define RSCAN0RFDF17LH (RSCAN0.RFDF17.UINT8[R_IO_LH])
+#define RSCAN0RFDF17H (RSCAN0.RFDF17.UINT16[R_IO_H])
+#define RSCAN0RFDF17HL (RSCAN0.RFDF17.UINT8[R_IO_HL])
+#define RSCAN0RFDF17HH (RSCAN0.RFDF17.UINT8[R_IO_HH])
+#define RSCAN0CFID0 (RSCAN0.CFID0.UINT32)
+#define RSCAN0CFID0L (RSCAN0.CFID0.UINT16[R_IO_L])
+#define RSCAN0CFID0LL (RSCAN0.CFID0.UINT8[R_IO_LL])
+#define RSCAN0CFID0LH (RSCAN0.CFID0.UINT8[R_IO_LH])
+#define RSCAN0CFID0H (RSCAN0.CFID0.UINT16[R_IO_H])
+#define RSCAN0CFID0HL (RSCAN0.CFID0.UINT8[R_IO_HL])
+#define RSCAN0CFID0HH (RSCAN0.CFID0.UINT8[R_IO_HH])
+#define RSCAN0CFPTR0 (RSCAN0.CFPTR0.UINT32)
+#define RSCAN0CFPTR0L (RSCAN0.CFPTR0.UINT16[R_IO_L])
+#define RSCAN0CFPTR0LL (RSCAN0.CFPTR0.UINT8[R_IO_LL])
+#define RSCAN0CFPTR0LH (RSCAN0.CFPTR0.UINT8[R_IO_LH])
+#define RSCAN0CFPTR0H (RSCAN0.CFPTR0.UINT16[R_IO_H])
+#define RSCAN0CFPTR0HL (RSCAN0.CFPTR0.UINT8[R_IO_HL])
+#define RSCAN0CFPTR0HH (RSCAN0.CFPTR0.UINT8[R_IO_HH])
+#define RSCAN0CFDF00 (RSCAN0.CFDF00.UINT32)
+#define RSCAN0CFDF00L (RSCAN0.CFDF00.UINT16[R_IO_L])
+#define RSCAN0CFDF00LL (RSCAN0.CFDF00.UINT8[R_IO_LL])
+#define RSCAN0CFDF00LH (RSCAN0.CFDF00.UINT8[R_IO_LH])
+#define RSCAN0CFDF00H (RSCAN0.CFDF00.UINT16[R_IO_H])
+#define RSCAN0CFDF00HL (RSCAN0.CFDF00.UINT8[R_IO_HL])
+#define RSCAN0CFDF00HH (RSCAN0.CFDF00.UINT8[R_IO_HH])
+#define RSCAN0CFDF10 (RSCAN0.CFDF10.UINT32)
+#define RSCAN0CFDF10L (RSCAN0.CFDF10.UINT16[R_IO_L])
+#define RSCAN0CFDF10LL (RSCAN0.CFDF10.UINT8[R_IO_LL])
+#define RSCAN0CFDF10LH (RSCAN0.CFDF10.UINT8[R_IO_LH])
+#define RSCAN0CFDF10H (RSCAN0.CFDF10.UINT16[R_IO_H])
+#define RSCAN0CFDF10HL (RSCAN0.CFDF10.UINT8[R_IO_HL])
+#define RSCAN0CFDF10HH (RSCAN0.CFDF10.UINT8[R_IO_HH])
+#define RSCAN0CFID1 (RSCAN0.CFID1.UINT32)
+#define RSCAN0CFID1L (RSCAN0.CFID1.UINT16[R_IO_L])
+#define RSCAN0CFID1LL (RSCAN0.CFID1.UINT8[R_IO_LL])
+#define RSCAN0CFID1LH (RSCAN0.CFID1.UINT8[R_IO_LH])
+#define RSCAN0CFID1H (RSCAN0.CFID1.UINT16[R_IO_H])
+#define RSCAN0CFID1HL (RSCAN0.CFID1.UINT8[R_IO_HL])
+#define RSCAN0CFID1HH (RSCAN0.CFID1.UINT8[R_IO_HH])
+#define RSCAN0CFPTR1 (RSCAN0.CFPTR1.UINT32)
+#define RSCAN0CFPTR1L (RSCAN0.CFPTR1.UINT16[R_IO_L])
+#define RSCAN0CFPTR1LL (RSCAN0.CFPTR1.UINT8[R_IO_LL])
+#define RSCAN0CFPTR1LH (RSCAN0.CFPTR1.UINT8[R_IO_LH])
+#define RSCAN0CFPTR1H (RSCAN0.CFPTR1.UINT16[R_IO_H])
+#define RSCAN0CFPTR1HL (RSCAN0.CFPTR1.UINT8[R_IO_HL])
+#define RSCAN0CFPTR1HH (RSCAN0.CFPTR1.UINT8[R_IO_HH])
+#define RSCAN0CFDF01 (RSCAN0.CFDF01.UINT32)
+#define RSCAN0CFDF01L (RSCAN0.CFDF01.UINT16[R_IO_L])
+#define RSCAN0CFDF01LL (RSCAN0.CFDF01.UINT8[R_IO_LL])
+#define RSCAN0CFDF01LH (RSCAN0.CFDF01.UINT8[R_IO_LH])
+#define RSCAN0CFDF01H (RSCAN0.CFDF01.UINT16[R_IO_H])
+#define RSCAN0CFDF01HL (RSCAN0.CFDF01.UINT8[R_IO_HL])
+#define RSCAN0CFDF01HH (RSCAN0.CFDF01.UINT8[R_IO_HH])
+#define RSCAN0CFDF11 (RSCAN0.CFDF11.UINT32)
+#define RSCAN0CFDF11L (RSCAN0.CFDF11.UINT16[R_IO_L])
+#define RSCAN0CFDF11LL (RSCAN0.CFDF11.UINT8[R_IO_LL])
+#define RSCAN0CFDF11LH (RSCAN0.CFDF11.UINT8[R_IO_LH])
+#define RSCAN0CFDF11H (RSCAN0.CFDF11.UINT16[R_IO_H])
+#define RSCAN0CFDF11HL (RSCAN0.CFDF11.UINT8[R_IO_HL])
+#define RSCAN0CFDF11HH (RSCAN0.CFDF11.UINT8[R_IO_HH])
+#define RSCAN0CFID2 (RSCAN0.CFID2.UINT32)
+#define RSCAN0CFID2L (RSCAN0.CFID2.UINT16[R_IO_L])
+#define RSCAN0CFID2LL (RSCAN0.CFID2.UINT8[R_IO_LL])
+#define RSCAN0CFID2LH (RSCAN0.CFID2.UINT8[R_IO_LH])
+#define RSCAN0CFID2H (RSCAN0.CFID2.UINT16[R_IO_H])
+#define RSCAN0CFID2HL (RSCAN0.CFID2.UINT8[R_IO_HL])
+#define RSCAN0CFID2HH (RSCAN0.CFID2.UINT8[R_IO_HH])
+#define RSCAN0CFPTR2 (RSCAN0.CFPTR2.UINT32)
+#define RSCAN0CFPTR2L (RSCAN0.CFPTR2.UINT16[R_IO_L])
+#define RSCAN0CFPTR2LL (RSCAN0.CFPTR2.UINT8[R_IO_LL])
+#define RSCAN0CFPTR2LH (RSCAN0.CFPTR2.UINT8[R_IO_LH])
+#define RSCAN0CFPTR2H (RSCAN0.CFPTR2.UINT16[R_IO_H])
+#define RSCAN0CFPTR2HL (RSCAN0.CFPTR2.UINT8[R_IO_HL])
+#define RSCAN0CFPTR2HH (RSCAN0.CFPTR2.UINT8[R_IO_HH])
+#define RSCAN0CFDF02 (RSCAN0.CFDF02.UINT32)
+#define RSCAN0CFDF02L (RSCAN0.CFDF02.UINT16[R_IO_L])
+#define RSCAN0CFDF02LL (RSCAN0.CFDF02.UINT8[R_IO_LL])
+#define RSCAN0CFDF02LH (RSCAN0.CFDF02.UINT8[R_IO_LH])
+#define RSCAN0CFDF02H (RSCAN0.CFDF02.UINT16[R_IO_H])
+#define RSCAN0CFDF02HL (RSCAN0.CFDF02.UINT8[R_IO_HL])
+#define RSCAN0CFDF02HH (RSCAN0.CFDF02.UINT8[R_IO_HH])
+#define RSCAN0CFDF12 (RSCAN0.CFDF12.UINT32)
+#define RSCAN0CFDF12L (RSCAN0.CFDF12.UINT16[R_IO_L])
+#define RSCAN0CFDF12LL (RSCAN0.CFDF12.UINT8[R_IO_LL])
+#define RSCAN0CFDF12LH (RSCAN0.CFDF12.UINT8[R_IO_LH])
+#define RSCAN0CFDF12H (RSCAN0.CFDF12.UINT16[R_IO_H])
+#define RSCAN0CFDF12HL (RSCAN0.CFDF12.UINT8[R_IO_HL])
+#define RSCAN0CFDF12HH (RSCAN0.CFDF12.UINT8[R_IO_HH])
+#define RSCAN0CFID3 (RSCAN0.CFID3.UINT32)
+#define RSCAN0CFID3L (RSCAN0.CFID3.UINT16[R_IO_L])
+#define RSCAN0CFID3LL (RSCAN0.CFID3.UINT8[R_IO_LL])
+#define RSCAN0CFID3LH (RSCAN0.CFID3.UINT8[R_IO_LH])
+#define RSCAN0CFID3H (RSCAN0.CFID3.UINT16[R_IO_H])
+#define RSCAN0CFID3HL (RSCAN0.CFID3.UINT8[R_IO_HL])
+#define RSCAN0CFID3HH (RSCAN0.CFID3.UINT8[R_IO_HH])
+#define RSCAN0CFPTR3 (RSCAN0.CFPTR3.UINT32)
+#define RSCAN0CFPTR3L (RSCAN0.CFPTR3.UINT16[R_IO_L])
+#define RSCAN0CFPTR3LL (RSCAN0.CFPTR3.UINT8[R_IO_LL])
+#define RSCAN0CFPTR3LH (RSCAN0.CFPTR3.UINT8[R_IO_LH])
+#define RSCAN0CFPTR3H (RSCAN0.CFPTR3.UINT16[R_IO_H])
+#define RSCAN0CFPTR3HL (RSCAN0.CFPTR3.UINT8[R_IO_HL])
+#define RSCAN0CFPTR3HH (RSCAN0.CFPTR3.UINT8[R_IO_HH])
+#define RSCAN0CFDF03 (RSCAN0.CFDF03.UINT32)
+#define RSCAN0CFDF03L (RSCAN0.CFDF03.UINT16[R_IO_L])
+#define RSCAN0CFDF03LL (RSCAN0.CFDF03.UINT8[R_IO_LL])
+#define RSCAN0CFDF03LH (RSCAN0.CFDF03.UINT8[R_IO_LH])
+#define RSCAN0CFDF03H (RSCAN0.CFDF03.UINT16[R_IO_H])
+#define RSCAN0CFDF03HL (RSCAN0.CFDF03.UINT8[R_IO_HL])
+#define RSCAN0CFDF03HH (RSCAN0.CFDF03.UINT8[R_IO_HH])
+#define RSCAN0CFDF13 (RSCAN0.CFDF13.UINT32)
+#define RSCAN0CFDF13L (RSCAN0.CFDF13.UINT16[R_IO_L])
+#define RSCAN0CFDF13LL (RSCAN0.CFDF13.UINT8[R_IO_LL])
+#define RSCAN0CFDF13LH (RSCAN0.CFDF13.UINT8[R_IO_LH])
+#define RSCAN0CFDF13H (RSCAN0.CFDF13.UINT16[R_IO_H])
+#define RSCAN0CFDF13HL (RSCAN0.CFDF13.UINT8[R_IO_HL])
+#define RSCAN0CFDF13HH (RSCAN0.CFDF13.UINT8[R_IO_HH])
+#define RSCAN0CFID4 (RSCAN0.CFID4.UINT32)
+#define RSCAN0CFID4L (RSCAN0.CFID4.UINT16[R_IO_L])
+#define RSCAN0CFID4LL (RSCAN0.CFID4.UINT8[R_IO_LL])
+#define RSCAN0CFID4LH (RSCAN0.CFID4.UINT8[R_IO_LH])
+#define RSCAN0CFID4H (RSCAN0.CFID4.UINT16[R_IO_H])
+#define RSCAN0CFID4HL (RSCAN0.CFID4.UINT8[R_IO_HL])
+#define RSCAN0CFID4HH (RSCAN0.CFID4.UINT8[R_IO_HH])
+#define RSCAN0CFPTR4 (RSCAN0.CFPTR4.UINT32)
+#define RSCAN0CFPTR4L (RSCAN0.CFPTR4.UINT16[R_IO_L])
+#define RSCAN0CFPTR4LL (RSCAN0.CFPTR4.UINT8[R_IO_LL])
+#define RSCAN0CFPTR4LH (RSCAN0.CFPTR4.UINT8[R_IO_LH])
+#define RSCAN0CFPTR4H (RSCAN0.CFPTR4.UINT16[R_IO_H])
+#define RSCAN0CFPTR4HL (RSCAN0.CFPTR4.UINT8[R_IO_HL])
+#define RSCAN0CFPTR4HH (RSCAN0.CFPTR4.UINT8[R_IO_HH])
+#define RSCAN0CFDF04 (RSCAN0.CFDF04.UINT32)
+#define RSCAN0CFDF04L (RSCAN0.CFDF04.UINT16[R_IO_L])
+#define RSCAN0CFDF04LL (RSCAN0.CFDF04.UINT8[R_IO_LL])
+#define RSCAN0CFDF04LH (RSCAN0.CFDF04.UINT8[R_IO_LH])
+#define RSCAN0CFDF04H (RSCAN0.CFDF04.UINT16[R_IO_H])
+#define RSCAN0CFDF04HL (RSCAN0.CFDF04.UINT8[R_IO_HL])
+#define RSCAN0CFDF04HH (RSCAN0.CFDF04.UINT8[R_IO_HH])
+#define RSCAN0CFDF14 (RSCAN0.CFDF14.UINT32)
+#define RSCAN0CFDF14L (RSCAN0.CFDF14.UINT16[R_IO_L])
+#define RSCAN0CFDF14LL (RSCAN0.CFDF14.UINT8[R_IO_LL])
+#define RSCAN0CFDF14LH (RSCAN0.CFDF14.UINT8[R_IO_LH])
+#define RSCAN0CFDF14H (RSCAN0.CFDF14.UINT16[R_IO_H])
+#define RSCAN0CFDF14HL (RSCAN0.CFDF14.UINT8[R_IO_HL])
+#define RSCAN0CFDF14HH (RSCAN0.CFDF14.UINT8[R_IO_HH])
+#define RSCAN0CFID5 (RSCAN0.CFID5.UINT32)
+#define RSCAN0CFID5L (RSCAN0.CFID5.UINT16[R_IO_L])
+#define RSCAN0CFID5LL (RSCAN0.CFID5.UINT8[R_IO_LL])
+#define RSCAN0CFID5LH (RSCAN0.CFID5.UINT8[R_IO_LH])
+#define RSCAN0CFID5H (RSCAN0.CFID5.UINT16[R_IO_H])
+#define RSCAN0CFID5HL (RSCAN0.CFID5.UINT8[R_IO_HL])
+#define RSCAN0CFID5HH (RSCAN0.CFID5.UINT8[R_IO_HH])
+#define RSCAN0CFPTR5 (RSCAN0.CFPTR5.UINT32)
+#define RSCAN0CFPTR5L (RSCAN0.CFPTR5.UINT16[R_IO_L])
+#define RSCAN0CFPTR5LL (RSCAN0.CFPTR5.UINT8[R_IO_LL])
+#define RSCAN0CFPTR5LH (RSCAN0.CFPTR5.UINT8[R_IO_LH])
+#define RSCAN0CFPTR5H (RSCAN0.CFPTR5.UINT16[R_IO_H])
+#define RSCAN0CFPTR5HL (RSCAN0.CFPTR5.UINT8[R_IO_HL])
+#define RSCAN0CFPTR5HH (RSCAN0.CFPTR5.UINT8[R_IO_HH])
+#define RSCAN0CFDF05 (RSCAN0.CFDF05.UINT32)
+#define RSCAN0CFDF05L (RSCAN0.CFDF05.UINT16[R_IO_L])
+#define RSCAN0CFDF05LL (RSCAN0.CFDF05.UINT8[R_IO_LL])
+#define RSCAN0CFDF05LH (RSCAN0.CFDF05.UINT8[R_IO_LH])
+#define RSCAN0CFDF05H (RSCAN0.CFDF05.UINT16[R_IO_H])
+#define RSCAN0CFDF05HL (RSCAN0.CFDF05.UINT8[R_IO_HL])
+#define RSCAN0CFDF05HH (RSCAN0.CFDF05.UINT8[R_IO_HH])
+#define RSCAN0CFDF15 (RSCAN0.CFDF15.UINT32)
+#define RSCAN0CFDF15L (RSCAN0.CFDF15.UINT16[R_IO_L])
+#define RSCAN0CFDF15LL (RSCAN0.CFDF15.UINT8[R_IO_LL])
+#define RSCAN0CFDF15LH (RSCAN0.CFDF15.UINT8[R_IO_LH])
+#define RSCAN0CFDF15H (RSCAN0.CFDF15.UINT16[R_IO_H])
+#define RSCAN0CFDF15HL (RSCAN0.CFDF15.UINT8[R_IO_HL])
+#define RSCAN0CFDF15HH (RSCAN0.CFDF15.UINT8[R_IO_HH])
+#define RSCAN0CFID6 (RSCAN0.CFID6.UINT32)
+#define RSCAN0CFID6L (RSCAN0.CFID6.UINT16[R_IO_L])
+#define RSCAN0CFID6LL (RSCAN0.CFID6.UINT8[R_IO_LL])
+#define RSCAN0CFID6LH (RSCAN0.CFID6.UINT8[R_IO_LH])
+#define RSCAN0CFID6H (RSCAN0.CFID6.UINT16[R_IO_H])
+#define RSCAN0CFID6HL (RSCAN0.CFID6.UINT8[R_IO_HL])
+#define RSCAN0CFID6HH (RSCAN0.CFID6.UINT8[R_IO_HH])
+#define RSCAN0CFPTR6 (RSCAN0.CFPTR6.UINT32)
+#define RSCAN0CFPTR6L (RSCAN0.CFPTR6.UINT16[R_IO_L])
+#define RSCAN0CFPTR6LL (RSCAN0.CFPTR6.UINT8[R_IO_LL])
+#define RSCAN0CFPTR6LH (RSCAN0.CFPTR6.UINT8[R_IO_LH])
+#define RSCAN0CFPTR6H (RSCAN0.CFPTR6.UINT16[R_IO_H])
+#define RSCAN0CFPTR6HL (RSCAN0.CFPTR6.UINT8[R_IO_HL])
+#define RSCAN0CFPTR6HH (RSCAN0.CFPTR6.UINT8[R_IO_HH])
+#define RSCAN0CFDF06 (RSCAN0.CFDF06.UINT32)
+#define RSCAN0CFDF06L (RSCAN0.CFDF06.UINT16[R_IO_L])
+#define RSCAN0CFDF06LL (RSCAN0.CFDF06.UINT8[R_IO_LL])
+#define RSCAN0CFDF06LH (RSCAN0.CFDF06.UINT8[R_IO_LH])
+#define RSCAN0CFDF06H (RSCAN0.CFDF06.UINT16[R_IO_H])
+#define RSCAN0CFDF06HL (RSCAN0.CFDF06.UINT8[R_IO_HL])
+#define RSCAN0CFDF06HH (RSCAN0.CFDF06.UINT8[R_IO_HH])
+#define RSCAN0CFDF16 (RSCAN0.CFDF16.UINT32)
+#define RSCAN0CFDF16L (RSCAN0.CFDF16.UINT16[R_IO_L])
+#define RSCAN0CFDF16LL (RSCAN0.CFDF16.UINT8[R_IO_LL])
+#define RSCAN0CFDF16LH (RSCAN0.CFDF16.UINT8[R_IO_LH])
+#define RSCAN0CFDF16H (RSCAN0.CFDF16.UINT16[R_IO_H])
+#define RSCAN0CFDF16HL (RSCAN0.CFDF16.UINT8[R_IO_HL])
+#define RSCAN0CFDF16HH (RSCAN0.CFDF16.UINT8[R_IO_HH])
+#define RSCAN0CFID7 (RSCAN0.CFID7.UINT32)
+#define RSCAN0CFID7L (RSCAN0.CFID7.UINT16[R_IO_L])
+#define RSCAN0CFID7LL (RSCAN0.CFID7.UINT8[R_IO_LL])
+#define RSCAN0CFID7LH (RSCAN0.CFID7.UINT8[R_IO_LH])
+#define RSCAN0CFID7H (RSCAN0.CFID7.UINT16[R_IO_H])
+#define RSCAN0CFID7HL (RSCAN0.CFID7.UINT8[R_IO_HL])
+#define RSCAN0CFID7HH (RSCAN0.CFID7.UINT8[R_IO_HH])
+#define RSCAN0CFPTR7 (RSCAN0.CFPTR7.UINT32)
+#define RSCAN0CFPTR7L (RSCAN0.CFPTR7.UINT16[R_IO_L])
+#define RSCAN0CFPTR7LL (RSCAN0.CFPTR7.UINT8[R_IO_LL])
+#define RSCAN0CFPTR7LH (RSCAN0.CFPTR7.UINT8[R_IO_LH])
+#define RSCAN0CFPTR7H (RSCAN0.CFPTR7.UINT16[R_IO_H])
+#define RSCAN0CFPTR7HL (RSCAN0.CFPTR7.UINT8[R_IO_HL])
+#define RSCAN0CFPTR7HH (RSCAN0.CFPTR7.UINT8[R_IO_HH])
+#define RSCAN0CFDF07 (RSCAN0.CFDF07.UINT32)
+#define RSCAN0CFDF07L (RSCAN0.CFDF07.UINT16[R_IO_L])
+#define RSCAN0CFDF07LL (RSCAN0.CFDF07.UINT8[R_IO_LL])
+#define RSCAN0CFDF07LH (RSCAN0.CFDF07.UINT8[R_IO_LH])
+#define RSCAN0CFDF07H (RSCAN0.CFDF07.UINT16[R_IO_H])
+#define RSCAN0CFDF07HL (RSCAN0.CFDF07.UINT8[R_IO_HL])
+#define RSCAN0CFDF07HH (RSCAN0.CFDF07.UINT8[R_IO_HH])
+#define RSCAN0CFDF17 (RSCAN0.CFDF17.UINT32)
+#define RSCAN0CFDF17L (RSCAN0.CFDF17.UINT16[R_IO_L])
+#define RSCAN0CFDF17LL (RSCAN0.CFDF17.UINT8[R_IO_LL])
+#define RSCAN0CFDF17LH (RSCAN0.CFDF17.UINT8[R_IO_LH])
+#define RSCAN0CFDF17H (RSCAN0.CFDF17.UINT16[R_IO_H])
+#define RSCAN0CFDF17HL (RSCAN0.CFDF17.UINT8[R_IO_HL])
+#define RSCAN0CFDF17HH (RSCAN0.CFDF17.UINT8[R_IO_HH])
+#define RSCAN0CFID8 (RSCAN0.CFID8.UINT32)
+#define RSCAN0CFID8L (RSCAN0.CFID8.UINT16[R_IO_L])
+#define RSCAN0CFID8LL (RSCAN0.CFID8.UINT8[R_IO_LL])
+#define RSCAN0CFID8LH (RSCAN0.CFID8.UINT8[R_IO_LH])
+#define RSCAN0CFID8H (RSCAN0.CFID8.UINT16[R_IO_H])
+#define RSCAN0CFID8HL (RSCAN0.CFID8.UINT8[R_IO_HL])
+#define RSCAN0CFID8HH (RSCAN0.CFID8.UINT8[R_IO_HH])
+#define RSCAN0CFPTR8 (RSCAN0.CFPTR8.UINT32)
+#define RSCAN0CFPTR8L (RSCAN0.CFPTR8.UINT16[R_IO_L])
+#define RSCAN0CFPTR8LL (RSCAN0.CFPTR8.UINT8[R_IO_LL])
+#define RSCAN0CFPTR8LH (RSCAN0.CFPTR8.UINT8[R_IO_LH])
+#define RSCAN0CFPTR8H (RSCAN0.CFPTR8.UINT16[R_IO_H])
+#define RSCAN0CFPTR8HL (RSCAN0.CFPTR8.UINT8[R_IO_HL])
+#define RSCAN0CFPTR8HH (RSCAN0.CFPTR8.UINT8[R_IO_HH])
+#define RSCAN0CFDF08 (RSCAN0.CFDF08.UINT32)
+#define RSCAN0CFDF08L (RSCAN0.CFDF08.UINT16[R_IO_L])
+#define RSCAN0CFDF08LL (RSCAN0.CFDF08.UINT8[R_IO_LL])
+#define RSCAN0CFDF08LH (RSCAN0.CFDF08.UINT8[R_IO_LH])
+#define RSCAN0CFDF08H (RSCAN0.CFDF08.UINT16[R_IO_H])
+#define RSCAN0CFDF08HL (RSCAN0.CFDF08.UINT8[R_IO_HL])
+#define RSCAN0CFDF08HH (RSCAN0.CFDF08.UINT8[R_IO_HH])
+#define RSCAN0CFDF18 (RSCAN0.CFDF18.UINT32)
+#define RSCAN0CFDF18L (RSCAN0.CFDF18.UINT16[R_IO_L])
+#define RSCAN0CFDF18LL (RSCAN0.CFDF18.UINT8[R_IO_LL])
+#define RSCAN0CFDF18LH (RSCAN0.CFDF18.UINT8[R_IO_LH])
+#define RSCAN0CFDF18H (RSCAN0.CFDF18.UINT16[R_IO_H])
+#define RSCAN0CFDF18HL (RSCAN0.CFDF18.UINT8[R_IO_HL])
+#define RSCAN0CFDF18HH (RSCAN0.CFDF18.UINT8[R_IO_HH])
+#define RSCAN0CFID9 (RSCAN0.CFID9.UINT32)
+#define RSCAN0CFID9L (RSCAN0.CFID9.UINT16[R_IO_L])
+#define RSCAN0CFID9LL (RSCAN0.CFID9.UINT8[R_IO_LL])
+#define RSCAN0CFID9LH (RSCAN0.CFID9.UINT8[R_IO_LH])
+#define RSCAN0CFID9H (RSCAN0.CFID9.UINT16[R_IO_H])
+#define RSCAN0CFID9HL (RSCAN0.CFID9.UINT8[R_IO_HL])
+#define RSCAN0CFID9HH (RSCAN0.CFID9.UINT8[R_IO_HH])
+#define RSCAN0CFPTR9 (RSCAN0.CFPTR9.UINT32)
+#define RSCAN0CFPTR9L (RSCAN0.CFPTR9.UINT16[R_IO_L])
+#define RSCAN0CFPTR9LL (RSCAN0.CFPTR9.UINT8[R_IO_LL])
+#define RSCAN0CFPTR9LH (RSCAN0.CFPTR9.UINT8[R_IO_LH])
+#define RSCAN0CFPTR9H (RSCAN0.CFPTR9.UINT16[R_IO_H])
+#define RSCAN0CFPTR9HL (RSCAN0.CFPTR9.UINT8[R_IO_HL])
+#define RSCAN0CFPTR9HH (RSCAN0.CFPTR9.UINT8[R_IO_HH])
+#define RSCAN0CFDF09 (RSCAN0.CFDF09.UINT32)
+#define RSCAN0CFDF09L (RSCAN0.CFDF09.UINT16[R_IO_L])
+#define RSCAN0CFDF09LL (RSCAN0.CFDF09.UINT8[R_IO_LL])
+#define RSCAN0CFDF09LH (RSCAN0.CFDF09.UINT8[R_IO_LH])
+#define RSCAN0CFDF09H (RSCAN0.CFDF09.UINT16[R_IO_H])
+#define RSCAN0CFDF09HL (RSCAN0.CFDF09.UINT8[R_IO_HL])
+#define RSCAN0CFDF09HH (RSCAN0.CFDF09.UINT8[R_IO_HH])
+#define RSCAN0CFDF19 (RSCAN0.CFDF19.UINT32)
+#define RSCAN0CFDF19L (RSCAN0.CFDF19.UINT16[R_IO_L])
+#define RSCAN0CFDF19LL (RSCAN0.CFDF19.UINT8[R_IO_LL])
+#define RSCAN0CFDF19LH (RSCAN0.CFDF19.UINT8[R_IO_LH])
+#define RSCAN0CFDF19H (RSCAN0.CFDF19.UINT16[R_IO_H])
+#define RSCAN0CFDF19HL (RSCAN0.CFDF19.UINT8[R_IO_HL])
+#define RSCAN0CFDF19HH (RSCAN0.CFDF19.UINT8[R_IO_HH])
+#define RSCAN0CFID10 (RSCAN0.CFID10.UINT32)
+#define RSCAN0CFID10L (RSCAN0.CFID10.UINT16[R_IO_L])
+#define RSCAN0CFID10LL (RSCAN0.CFID10.UINT8[R_IO_LL])
+#define RSCAN0CFID10LH (RSCAN0.CFID10.UINT8[R_IO_LH])
+#define RSCAN0CFID10H (RSCAN0.CFID10.UINT16[R_IO_H])
+#define RSCAN0CFID10HL (RSCAN0.CFID10.UINT8[R_IO_HL])
+#define RSCAN0CFID10HH (RSCAN0.CFID10.UINT8[R_IO_HH])
+#define RSCAN0CFPTR10 (RSCAN0.CFPTR10.UINT32)
+#define RSCAN0CFPTR10L (RSCAN0.CFPTR10.UINT16[R_IO_L])
+#define RSCAN0CFPTR10LL (RSCAN0.CFPTR10.UINT8[R_IO_LL])
+#define RSCAN0CFPTR10LH (RSCAN0.CFPTR10.UINT8[R_IO_LH])
+#define RSCAN0CFPTR10H (RSCAN0.CFPTR10.UINT16[R_IO_H])
+#define RSCAN0CFPTR10HL (RSCAN0.CFPTR10.UINT8[R_IO_HL])
+#define RSCAN0CFPTR10HH (RSCAN0.CFPTR10.UINT8[R_IO_HH])
+#define RSCAN0CFDF010 (RSCAN0.CFDF010.UINT32)
+#define RSCAN0CFDF010L (RSCAN0.CFDF010.UINT16[R_IO_L])
+#define RSCAN0CFDF010LL (RSCAN0.CFDF010.UINT8[R_IO_LL])
+#define RSCAN0CFDF010LH (RSCAN0.CFDF010.UINT8[R_IO_LH])
+#define RSCAN0CFDF010H (RSCAN0.CFDF010.UINT16[R_IO_H])
+#define RSCAN0CFDF010HL (RSCAN0.CFDF010.UINT8[R_IO_HL])
+#define RSCAN0CFDF010HH (RSCAN0.CFDF010.UINT8[R_IO_HH])
+#define RSCAN0CFDF110 (RSCAN0.CFDF110.UINT32)
+#define RSCAN0CFDF110L (RSCAN0.CFDF110.UINT16[R_IO_L])
+#define RSCAN0CFDF110LL (RSCAN0.CFDF110.UINT8[R_IO_LL])
+#define RSCAN0CFDF110LH (RSCAN0.CFDF110.UINT8[R_IO_LH])
+#define RSCAN0CFDF110H (RSCAN0.CFDF110.UINT16[R_IO_H])
+#define RSCAN0CFDF110HL (RSCAN0.CFDF110.UINT8[R_IO_HL])
+#define RSCAN0CFDF110HH (RSCAN0.CFDF110.UINT8[R_IO_HH])
+#define RSCAN0CFID11 (RSCAN0.CFID11.UINT32)
+#define RSCAN0CFID11L (RSCAN0.CFID11.UINT16[R_IO_L])
+#define RSCAN0CFID11LL (RSCAN0.CFID11.UINT8[R_IO_LL])
+#define RSCAN0CFID11LH (RSCAN0.CFID11.UINT8[R_IO_LH])
+#define RSCAN0CFID11H (RSCAN0.CFID11.UINT16[R_IO_H])
+#define RSCAN0CFID11HL (RSCAN0.CFID11.UINT8[R_IO_HL])
+#define RSCAN0CFID11HH (RSCAN0.CFID11.UINT8[R_IO_HH])
+#define RSCAN0CFPTR11 (RSCAN0.CFPTR11.UINT32)
+#define RSCAN0CFPTR11L (RSCAN0.CFPTR11.UINT16[R_IO_L])
+#define RSCAN0CFPTR11LL (RSCAN0.CFPTR11.UINT8[R_IO_LL])
+#define RSCAN0CFPTR11LH (RSCAN0.CFPTR11.UINT8[R_IO_LH])
+#define RSCAN0CFPTR11H (RSCAN0.CFPTR11.UINT16[R_IO_H])
+#define RSCAN0CFPTR11HL (RSCAN0.CFPTR11.UINT8[R_IO_HL])
+#define RSCAN0CFPTR11HH (RSCAN0.CFPTR11.UINT8[R_IO_HH])
+#define RSCAN0CFDF011 (RSCAN0.CFDF011.UINT32)
+#define RSCAN0CFDF011L (RSCAN0.CFDF011.UINT16[R_IO_L])
+#define RSCAN0CFDF011LL (RSCAN0.CFDF011.UINT8[R_IO_LL])
+#define RSCAN0CFDF011LH (RSCAN0.CFDF011.UINT8[R_IO_LH])
+#define RSCAN0CFDF011H (RSCAN0.CFDF011.UINT16[R_IO_H])
+#define RSCAN0CFDF011HL (RSCAN0.CFDF011.UINT8[R_IO_HL])
+#define RSCAN0CFDF011HH (RSCAN0.CFDF011.UINT8[R_IO_HH])
+#define RSCAN0CFDF111 (RSCAN0.CFDF111.UINT32)
+#define RSCAN0CFDF111L (RSCAN0.CFDF111.UINT16[R_IO_L])
+#define RSCAN0CFDF111LL (RSCAN0.CFDF111.UINT8[R_IO_LL])
+#define RSCAN0CFDF111LH (RSCAN0.CFDF111.UINT8[R_IO_LH])
+#define RSCAN0CFDF111H (RSCAN0.CFDF111.UINT16[R_IO_H])
+#define RSCAN0CFDF111HL (RSCAN0.CFDF111.UINT8[R_IO_HL])
+#define RSCAN0CFDF111HH (RSCAN0.CFDF111.UINT8[R_IO_HH])
+#define RSCAN0CFID12 (RSCAN0.CFID12.UINT32)
+#define RSCAN0CFID12L (RSCAN0.CFID12.UINT16[R_IO_L])
+#define RSCAN0CFID12LL (RSCAN0.CFID12.UINT8[R_IO_LL])
+#define RSCAN0CFID12LH (RSCAN0.CFID12.UINT8[R_IO_LH])
+#define RSCAN0CFID12H (RSCAN0.CFID12.UINT16[R_IO_H])
+#define RSCAN0CFID12HL (RSCAN0.CFID12.UINT8[R_IO_HL])
+#define RSCAN0CFID12HH (RSCAN0.CFID12.UINT8[R_IO_HH])
+#define RSCAN0CFPTR12 (RSCAN0.CFPTR12.UINT32)
+#define RSCAN0CFPTR12L (RSCAN0.CFPTR12.UINT16[R_IO_L])
+#define RSCAN0CFPTR12LL (RSCAN0.CFPTR12.UINT8[R_IO_LL])
+#define RSCAN0CFPTR12LH (RSCAN0.CFPTR12.UINT8[R_IO_LH])
+#define RSCAN0CFPTR12H (RSCAN0.CFPTR12.UINT16[R_IO_H])
+#define RSCAN0CFPTR12HL (RSCAN0.CFPTR12.UINT8[R_IO_HL])
+#define RSCAN0CFPTR12HH (RSCAN0.CFPTR12.UINT8[R_IO_HH])
+#define RSCAN0CFDF012 (RSCAN0.CFDF012.UINT32)
+#define RSCAN0CFDF012L (RSCAN0.CFDF012.UINT16[R_IO_L])
+#define RSCAN0CFDF012LL (RSCAN0.CFDF012.UINT8[R_IO_LL])
+#define RSCAN0CFDF012LH (RSCAN0.CFDF012.UINT8[R_IO_LH])
+#define RSCAN0CFDF012H (RSCAN0.CFDF012.UINT16[R_IO_H])
+#define RSCAN0CFDF012HL (RSCAN0.CFDF012.UINT8[R_IO_HL])
+#define RSCAN0CFDF012HH (RSCAN0.CFDF012.UINT8[R_IO_HH])
+#define RSCAN0CFDF112 (RSCAN0.CFDF112.UINT32)
+#define RSCAN0CFDF112L (RSCAN0.CFDF112.UINT16[R_IO_L])
+#define RSCAN0CFDF112LL (RSCAN0.CFDF112.UINT8[R_IO_LL])
+#define RSCAN0CFDF112LH (RSCAN0.CFDF112.UINT8[R_IO_LH])
+#define RSCAN0CFDF112H (RSCAN0.CFDF112.UINT16[R_IO_H])
+#define RSCAN0CFDF112HL (RSCAN0.CFDF112.UINT8[R_IO_HL])
+#define RSCAN0CFDF112HH (RSCAN0.CFDF112.UINT8[R_IO_HH])
+#define RSCAN0CFID13 (RSCAN0.CFID13.UINT32)
+#define RSCAN0CFID13L (RSCAN0.CFID13.UINT16[R_IO_L])
+#define RSCAN0CFID13LL (RSCAN0.CFID13.UINT8[R_IO_LL])
+#define RSCAN0CFID13LH (RSCAN0.CFID13.UINT8[R_IO_LH])
+#define RSCAN0CFID13H (RSCAN0.CFID13.UINT16[R_IO_H])
+#define RSCAN0CFID13HL (RSCAN0.CFID13.UINT8[R_IO_HL])
+#define RSCAN0CFID13HH (RSCAN0.CFID13.UINT8[R_IO_HH])
+#define RSCAN0CFPTR13 (RSCAN0.CFPTR13.UINT32)
+#define RSCAN0CFPTR13L (RSCAN0.CFPTR13.UINT16[R_IO_L])
+#define RSCAN0CFPTR13LL (RSCAN0.CFPTR13.UINT8[R_IO_LL])
+#define RSCAN0CFPTR13LH (RSCAN0.CFPTR13.UINT8[R_IO_LH])
+#define RSCAN0CFPTR13H (RSCAN0.CFPTR13.UINT16[R_IO_H])
+#define RSCAN0CFPTR13HL (RSCAN0.CFPTR13.UINT8[R_IO_HL])
+#define RSCAN0CFPTR13HH (RSCAN0.CFPTR13.UINT8[R_IO_HH])
+#define RSCAN0CFDF013 (RSCAN0.CFDF013.UINT32)
+#define RSCAN0CFDF013L (RSCAN0.CFDF013.UINT16[R_IO_L])
+#define RSCAN0CFDF013LL (RSCAN0.CFDF013.UINT8[R_IO_LL])
+#define RSCAN0CFDF013LH (RSCAN0.CFDF013.UINT8[R_IO_LH])
+#define RSCAN0CFDF013H (RSCAN0.CFDF013.UINT16[R_IO_H])
+#define RSCAN0CFDF013HL (RSCAN0.CFDF013.UINT8[R_IO_HL])
+#define RSCAN0CFDF013HH (RSCAN0.CFDF013.UINT8[R_IO_HH])
+#define RSCAN0CFDF113 (RSCAN0.CFDF113.UINT32)
+#define RSCAN0CFDF113L (RSCAN0.CFDF113.UINT16[R_IO_L])
+#define RSCAN0CFDF113LL (RSCAN0.CFDF113.UINT8[R_IO_LL])
+#define RSCAN0CFDF113LH (RSCAN0.CFDF113.UINT8[R_IO_LH])
+#define RSCAN0CFDF113H (RSCAN0.CFDF113.UINT16[R_IO_H])
+#define RSCAN0CFDF113HL (RSCAN0.CFDF113.UINT8[R_IO_HL])
+#define RSCAN0CFDF113HH (RSCAN0.CFDF113.UINT8[R_IO_HH])
+#define RSCAN0CFID14 (RSCAN0.CFID14.UINT32)
+#define RSCAN0CFID14L (RSCAN0.CFID14.UINT16[R_IO_L])
+#define RSCAN0CFID14LL (RSCAN0.CFID14.UINT8[R_IO_LL])
+#define RSCAN0CFID14LH (RSCAN0.CFID14.UINT8[R_IO_LH])
+#define RSCAN0CFID14H (RSCAN0.CFID14.UINT16[R_IO_H])
+#define RSCAN0CFID14HL (RSCAN0.CFID14.UINT8[R_IO_HL])
+#define RSCAN0CFID14HH (RSCAN0.CFID14.UINT8[R_IO_HH])
+#define RSCAN0CFPTR14 (RSCAN0.CFPTR14.UINT32)
+#define RSCAN0CFPTR14L (RSCAN0.CFPTR14.UINT16[R_IO_L])
+#define RSCAN0CFPTR14LL (RSCAN0.CFPTR14.UINT8[R_IO_LL])
+#define RSCAN0CFPTR14LH (RSCAN0.CFPTR14.UINT8[R_IO_LH])
+#define RSCAN0CFPTR14H (RSCAN0.CFPTR14.UINT16[R_IO_H])
+#define RSCAN0CFPTR14HL (RSCAN0.CFPTR14.UINT8[R_IO_HL])
+#define RSCAN0CFPTR14HH (RSCAN0.CFPTR14.UINT8[R_IO_HH])
+#define RSCAN0CFDF014 (RSCAN0.CFDF014.UINT32)
+#define RSCAN0CFDF014L (RSCAN0.CFDF014.UINT16[R_IO_L])
+#define RSCAN0CFDF014LL (RSCAN0.CFDF014.UINT8[R_IO_LL])
+#define RSCAN0CFDF014LH (RSCAN0.CFDF014.UINT8[R_IO_LH])
+#define RSCAN0CFDF014H (RSCAN0.CFDF014.UINT16[R_IO_H])
+#define RSCAN0CFDF014HL (RSCAN0.CFDF014.UINT8[R_IO_HL])
+#define RSCAN0CFDF014HH (RSCAN0.CFDF014.UINT8[R_IO_HH])
+#define RSCAN0CFDF114 (RSCAN0.CFDF114.UINT32)
+#define RSCAN0CFDF114L (RSCAN0.CFDF114.UINT16[R_IO_L])
+#define RSCAN0CFDF114LL (RSCAN0.CFDF114.UINT8[R_IO_LL])
+#define RSCAN0CFDF114LH (RSCAN0.CFDF114.UINT8[R_IO_LH])
+#define RSCAN0CFDF114H (RSCAN0.CFDF114.UINT16[R_IO_H])
+#define RSCAN0CFDF114HL (RSCAN0.CFDF114.UINT8[R_IO_HL])
+#define RSCAN0CFDF114HH (RSCAN0.CFDF114.UINT8[R_IO_HH])
+#define RSCAN0TMID0 (RSCAN0.TMID0.UINT32)
+#define RSCAN0TMID0L (RSCAN0.TMID0.UINT16[R_IO_L])
+#define RSCAN0TMID0LL (RSCAN0.TMID0.UINT8[R_IO_LL])
+#define RSCAN0TMID0LH (RSCAN0.TMID0.UINT8[R_IO_LH])
+#define RSCAN0TMID0H (RSCAN0.TMID0.UINT16[R_IO_H])
+#define RSCAN0TMID0HL (RSCAN0.TMID0.UINT8[R_IO_HL])
+#define RSCAN0TMID0HH (RSCAN0.TMID0.UINT8[R_IO_HH])
+#define RSCAN0TMPTR0 (RSCAN0.TMPTR0.UINT32)
+#define RSCAN0TMPTR0L (RSCAN0.TMPTR0.UINT16[R_IO_L])
+#define RSCAN0TMPTR0LL (RSCAN0.TMPTR0.UINT8[R_IO_LL])
+#define RSCAN0TMPTR0LH (RSCAN0.TMPTR0.UINT8[R_IO_LH])
+#define RSCAN0TMPTR0H (RSCAN0.TMPTR0.UINT16[R_IO_H])
+#define RSCAN0TMPTR0HL (RSCAN0.TMPTR0.UINT8[R_IO_HL])
+#define RSCAN0TMPTR0HH (RSCAN0.TMPTR0.UINT8[R_IO_HH])
+#define RSCAN0TMDF00 (RSCAN0.TMDF00.UINT32)
+#define RSCAN0TMDF00L (RSCAN0.TMDF00.UINT16[R_IO_L])
+#define RSCAN0TMDF00LL (RSCAN0.TMDF00.UINT8[R_IO_LL])
+#define RSCAN0TMDF00LH (RSCAN0.TMDF00.UINT8[R_IO_LH])
+#define RSCAN0TMDF00H (RSCAN0.TMDF00.UINT16[R_IO_H])
+#define RSCAN0TMDF00HL (RSCAN0.TMDF00.UINT8[R_IO_HL])
+#define RSCAN0TMDF00HH (RSCAN0.TMDF00.UINT8[R_IO_HH])
+#define RSCAN0TMDF10 (RSCAN0.TMDF10.UINT32)
+#define RSCAN0TMDF10L (RSCAN0.TMDF10.UINT16[R_IO_L])
+#define RSCAN0TMDF10LL (RSCAN0.TMDF10.UINT8[R_IO_LL])
+#define RSCAN0TMDF10LH (RSCAN0.TMDF10.UINT8[R_IO_LH])
+#define RSCAN0TMDF10H (RSCAN0.TMDF10.UINT16[R_IO_H])
+#define RSCAN0TMDF10HL (RSCAN0.TMDF10.UINT8[R_IO_HL])
+#define RSCAN0TMDF10HH (RSCAN0.TMDF10.UINT8[R_IO_HH])
+#define RSCAN0TMID1 (RSCAN0.TMID1.UINT32)
+#define RSCAN0TMID1L (RSCAN0.TMID1.UINT16[R_IO_L])
+#define RSCAN0TMID1LL (RSCAN0.TMID1.UINT8[R_IO_LL])
+#define RSCAN0TMID1LH (RSCAN0.TMID1.UINT8[R_IO_LH])
+#define RSCAN0TMID1H (RSCAN0.TMID1.UINT16[R_IO_H])
+#define RSCAN0TMID1HL (RSCAN0.TMID1.UINT8[R_IO_HL])
+#define RSCAN0TMID1HH (RSCAN0.TMID1.UINT8[R_IO_HH])
+#define RSCAN0TMPTR1 (RSCAN0.TMPTR1.UINT32)
+#define RSCAN0TMPTR1L (RSCAN0.TMPTR1.UINT16[R_IO_L])
+#define RSCAN0TMPTR1LL (RSCAN0.TMPTR1.UINT8[R_IO_LL])
+#define RSCAN0TMPTR1LH (RSCAN0.TMPTR1.UINT8[R_IO_LH])
+#define RSCAN0TMPTR1H (RSCAN0.TMPTR1.UINT16[R_IO_H])
+#define RSCAN0TMPTR1HL (RSCAN0.TMPTR1.UINT8[R_IO_HL])
+#define RSCAN0TMPTR1HH (RSCAN0.TMPTR1.UINT8[R_IO_HH])
+#define RSCAN0TMDF01 (RSCAN0.TMDF01.UINT32)
+#define RSCAN0TMDF01L (RSCAN0.TMDF01.UINT16[R_IO_L])
+#define RSCAN0TMDF01LL (RSCAN0.TMDF01.UINT8[R_IO_LL])
+#define RSCAN0TMDF01LH (RSCAN0.TMDF01.UINT8[R_IO_LH])
+#define RSCAN0TMDF01H (RSCAN0.TMDF01.UINT16[R_IO_H])
+#define RSCAN0TMDF01HL (RSCAN0.TMDF01.UINT8[R_IO_HL])
+#define RSCAN0TMDF01HH (RSCAN0.TMDF01.UINT8[R_IO_HH])
+#define RSCAN0TMDF11 (RSCAN0.TMDF11.UINT32)
+#define RSCAN0TMDF11L (RSCAN0.TMDF11.UINT16[R_IO_L])
+#define RSCAN0TMDF11LL (RSCAN0.TMDF11.UINT8[R_IO_LL])
+#define RSCAN0TMDF11LH (RSCAN0.TMDF11.UINT8[R_IO_LH])
+#define RSCAN0TMDF11H (RSCAN0.TMDF11.UINT16[R_IO_H])
+#define RSCAN0TMDF11HL (RSCAN0.TMDF11.UINT8[R_IO_HL])
+#define RSCAN0TMDF11HH (RSCAN0.TMDF11.UINT8[R_IO_HH])
+#define RSCAN0TMID2 (RSCAN0.TMID2.UINT32)
+#define RSCAN0TMID2L (RSCAN0.TMID2.UINT16[R_IO_L])
+#define RSCAN0TMID2LL (RSCAN0.TMID2.UINT8[R_IO_LL])
+#define RSCAN0TMID2LH (RSCAN0.TMID2.UINT8[R_IO_LH])
+#define RSCAN0TMID2H (RSCAN0.TMID2.UINT16[R_IO_H])
+#define RSCAN0TMID2HL (RSCAN0.TMID2.UINT8[R_IO_HL])
+#define RSCAN0TMID2HH (RSCAN0.TMID2.UINT8[R_IO_HH])
+#define RSCAN0TMPTR2 (RSCAN0.TMPTR2.UINT32)
+#define RSCAN0TMPTR2L (RSCAN0.TMPTR2.UINT16[R_IO_L])
+#define RSCAN0TMPTR2LL (RSCAN0.TMPTR2.UINT8[R_IO_LL])
+#define RSCAN0TMPTR2LH (RSCAN0.TMPTR2.UINT8[R_IO_LH])
+#define RSCAN0TMPTR2H (RSCAN0.TMPTR2.UINT16[R_IO_H])
+#define RSCAN0TMPTR2HL (RSCAN0.TMPTR2.UINT8[R_IO_HL])
+#define RSCAN0TMPTR2HH (RSCAN0.TMPTR2.UINT8[R_IO_HH])
+#define RSCAN0TMDF02 (RSCAN0.TMDF02.UINT32)
+#define RSCAN0TMDF02L (RSCAN0.TMDF02.UINT16[R_IO_L])
+#define RSCAN0TMDF02LL (RSCAN0.TMDF02.UINT8[R_IO_LL])
+#define RSCAN0TMDF02LH (RSCAN0.TMDF02.UINT8[R_IO_LH])
+#define RSCAN0TMDF02H (RSCAN0.TMDF02.UINT16[R_IO_H])
+#define RSCAN0TMDF02HL (RSCAN0.TMDF02.UINT8[R_IO_HL])
+#define RSCAN0TMDF02HH (RSCAN0.TMDF02.UINT8[R_IO_HH])
+#define RSCAN0TMDF12 (RSCAN0.TMDF12.UINT32)
+#define RSCAN0TMDF12L (RSCAN0.TMDF12.UINT16[R_IO_L])
+#define RSCAN0TMDF12LL (RSCAN0.TMDF12.UINT8[R_IO_LL])
+#define RSCAN0TMDF12LH (RSCAN0.TMDF12.UINT8[R_IO_LH])
+#define RSCAN0TMDF12H (RSCAN0.TMDF12.UINT16[R_IO_H])
+#define RSCAN0TMDF12HL (RSCAN0.TMDF12.UINT8[R_IO_HL])
+#define RSCAN0TMDF12HH (RSCAN0.TMDF12.UINT8[R_IO_HH])
+#define RSCAN0TMID3 (RSCAN0.TMID3.UINT32)
+#define RSCAN0TMID3L (RSCAN0.TMID3.UINT16[R_IO_L])
+#define RSCAN0TMID3LL (RSCAN0.TMID3.UINT8[R_IO_LL])
+#define RSCAN0TMID3LH (RSCAN0.TMID3.UINT8[R_IO_LH])
+#define RSCAN0TMID3H (RSCAN0.TMID3.UINT16[R_IO_H])
+#define RSCAN0TMID3HL (RSCAN0.TMID3.UINT8[R_IO_HL])
+#define RSCAN0TMID3HH (RSCAN0.TMID3.UINT8[R_IO_HH])
+#define RSCAN0TMPTR3 (RSCAN0.TMPTR3.UINT32)
+#define RSCAN0TMPTR3L (RSCAN0.TMPTR3.UINT16[R_IO_L])
+#define RSCAN0TMPTR3LL (RSCAN0.TMPTR3.UINT8[R_IO_LL])
+#define RSCAN0TMPTR3LH (RSCAN0.TMPTR3.UINT8[R_IO_LH])
+#define RSCAN0TMPTR3H (RSCAN0.TMPTR3.UINT16[R_IO_H])
+#define RSCAN0TMPTR3HL (RSCAN0.TMPTR3.UINT8[R_IO_HL])
+#define RSCAN0TMPTR3HH (RSCAN0.TMPTR3.UINT8[R_IO_HH])
+#define RSCAN0TMDF03 (RSCAN0.TMDF03.UINT32)
+#define RSCAN0TMDF03L (RSCAN0.TMDF03.UINT16[R_IO_L])
+#define RSCAN0TMDF03LL (RSCAN0.TMDF03.UINT8[R_IO_LL])
+#define RSCAN0TMDF03LH (RSCAN0.TMDF03.UINT8[R_IO_LH])
+#define RSCAN0TMDF03H (RSCAN0.TMDF03.UINT16[R_IO_H])
+#define RSCAN0TMDF03HL (RSCAN0.TMDF03.UINT8[R_IO_HL])
+#define RSCAN0TMDF03HH (RSCAN0.TMDF03.UINT8[R_IO_HH])
+#define RSCAN0TMDF13 (RSCAN0.TMDF13.UINT32)
+#define RSCAN0TMDF13L (RSCAN0.TMDF13.UINT16[R_IO_L])
+#define RSCAN0TMDF13LL (RSCAN0.TMDF13.UINT8[R_IO_LL])
+#define RSCAN0TMDF13LH (RSCAN0.TMDF13.UINT8[R_IO_LH])
+#define RSCAN0TMDF13H (RSCAN0.TMDF13.UINT16[R_IO_H])
+#define RSCAN0TMDF13HL (RSCAN0.TMDF13.UINT8[R_IO_HL])
+#define RSCAN0TMDF13HH (RSCAN0.TMDF13.UINT8[R_IO_HH])
+#define RSCAN0TMID4 (RSCAN0.TMID4.UINT32)
+#define RSCAN0TMID4L (RSCAN0.TMID4.UINT16[R_IO_L])
+#define RSCAN0TMID4LL (RSCAN0.TMID4.UINT8[R_IO_LL])
+#define RSCAN0TMID4LH (RSCAN0.TMID4.UINT8[R_IO_LH])
+#define RSCAN0TMID4H (RSCAN0.TMID4.UINT16[R_IO_H])
+#define RSCAN0TMID4HL (RSCAN0.TMID4.UINT8[R_IO_HL])
+#define RSCAN0TMID4HH (RSCAN0.TMID4.UINT8[R_IO_HH])
+#define RSCAN0TMPTR4 (RSCAN0.TMPTR4.UINT32)
+#define RSCAN0TMPTR4L (RSCAN0.TMPTR4.UINT16[R_IO_L])
+#define RSCAN0TMPTR4LL (RSCAN0.TMPTR4.UINT8[R_IO_LL])
+#define RSCAN0TMPTR4LH (RSCAN0.TMPTR4.UINT8[R_IO_LH])
+#define RSCAN0TMPTR4H (RSCAN0.TMPTR4.UINT16[R_IO_H])
+#define RSCAN0TMPTR4HL (RSCAN0.TMPTR4.UINT8[R_IO_HL])
+#define RSCAN0TMPTR4HH (RSCAN0.TMPTR4.UINT8[R_IO_HH])
+#define RSCAN0TMDF04 (RSCAN0.TMDF04.UINT32)
+#define RSCAN0TMDF04L (RSCAN0.TMDF04.UINT16[R_IO_L])
+#define RSCAN0TMDF04LL (RSCAN0.TMDF04.UINT8[R_IO_LL])
+#define RSCAN0TMDF04LH (RSCAN0.TMDF04.UINT8[R_IO_LH])
+#define RSCAN0TMDF04H (RSCAN0.TMDF04.UINT16[R_IO_H])
+#define RSCAN0TMDF04HL (RSCAN0.TMDF04.UINT8[R_IO_HL])
+#define RSCAN0TMDF04HH (RSCAN0.TMDF04.UINT8[R_IO_HH])
+#define RSCAN0TMDF14 (RSCAN0.TMDF14.UINT32)
+#define RSCAN0TMDF14L (RSCAN0.TMDF14.UINT16[R_IO_L])
+#define RSCAN0TMDF14LL (RSCAN0.TMDF14.UINT8[R_IO_LL])
+#define RSCAN0TMDF14LH (RSCAN0.TMDF14.UINT8[R_IO_LH])
+#define RSCAN0TMDF14H (RSCAN0.TMDF14.UINT16[R_IO_H])
+#define RSCAN0TMDF14HL (RSCAN0.TMDF14.UINT8[R_IO_HL])
+#define RSCAN0TMDF14HH (RSCAN0.TMDF14.UINT8[R_IO_HH])
+#define RSCAN0TMID5 (RSCAN0.TMID5.UINT32)
+#define RSCAN0TMID5L (RSCAN0.TMID5.UINT16[R_IO_L])
+#define RSCAN0TMID5LL (RSCAN0.TMID5.UINT8[R_IO_LL])
+#define RSCAN0TMID5LH (RSCAN0.TMID5.UINT8[R_IO_LH])
+#define RSCAN0TMID5H (RSCAN0.TMID5.UINT16[R_IO_H])
+#define RSCAN0TMID5HL (RSCAN0.TMID5.UINT8[R_IO_HL])
+#define RSCAN0TMID5HH (RSCAN0.TMID5.UINT8[R_IO_HH])
+#define RSCAN0TMPTR5 (RSCAN0.TMPTR5.UINT32)
+#define RSCAN0TMPTR5L (RSCAN0.TMPTR5.UINT16[R_IO_L])
+#define RSCAN0TMPTR5LL (RSCAN0.TMPTR5.UINT8[R_IO_LL])
+#define RSCAN0TMPTR5LH (RSCAN0.TMPTR5.UINT8[R_IO_LH])
+#define RSCAN0TMPTR5H (RSCAN0.TMPTR5.UINT16[R_IO_H])
+#define RSCAN0TMPTR5HL (RSCAN0.TMPTR5.UINT8[R_IO_HL])
+#define RSCAN0TMPTR5HH (RSCAN0.TMPTR5.UINT8[R_IO_HH])
+#define RSCAN0TMDF05 (RSCAN0.TMDF05.UINT32)
+#define RSCAN0TMDF05L (RSCAN0.TMDF05.UINT16[R_IO_L])
+#define RSCAN0TMDF05LL (RSCAN0.TMDF05.UINT8[R_IO_LL])
+#define RSCAN0TMDF05LH (RSCAN0.TMDF05.UINT8[R_IO_LH])
+#define RSCAN0TMDF05H (RSCAN0.TMDF05.UINT16[R_IO_H])
+#define RSCAN0TMDF05HL (RSCAN0.TMDF05.UINT8[R_IO_HL])
+#define RSCAN0TMDF05HH (RSCAN0.TMDF05.UINT8[R_IO_HH])
+#define RSCAN0TMDF15 (RSCAN0.TMDF15.UINT32)
+#define RSCAN0TMDF15L (RSCAN0.TMDF15.UINT16[R_IO_L])
+#define RSCAN0TMDF15LL (RSCAN0.TMDF15.UINT8[R_IO_LL])
+#define RSCAN0TMDF15LH (RSCAN0.TMDF15.UINT8[R_IO_LH])
+#define RSCAN0TMDF15H (RSCAN0.TMDF15.UINT16[R_IO_H])
+#define RSCAN0TMDF15HL (RSCAN0.TMDF15.UINT8[R_IO_HL])
+#define RSCAN0TMDF15HH (RSCAN0.TMDF15.UINT8[R_IO_HH])
+#define RSCAN0TMID6 (RSCAN0.TMID6.UINT32)
+#define RSCAN0TMID6L (RSCAN0.TMID6.UINT16[R_IO_L])
+#define RSCAN0TMID6LL (RSCAN0.TMID6.UINT8[R_IO_LL])
+#define RSCAN0TMID6LH (RSCAN0.TMID6.UINT8[R_IO_LH])
+#define RSCAN0TMID6H (RSCAN0.TMID6.UINT16[R_IO_H])
+#define RSCAN0TMID6HL (RSCAN0.TMID6.UINT8[R_IO_HL])
+#define RSCAN0TMID6HH (RSCAN0.TMID6.UINT8[R_IO_HH])
+#define RSCAN0TMPTR6 (RSCAN0.TMPTR6.UINT32)
+#define RSCAN0TMPTR6L (RSCAN0.TMPTR6.UINT16[R_IO_L])
+#define RSCAN0TMPTR6LL (RSCAN0.TMPTR6.UINT8[R_IO_LL])
+#define RSCAN0TMPTR6LH (RSCAN0.TMPTR6.UINT8[R_IO_LH])
+#define RSCAN0TMPTR6H (RSCAN0.TMPTR6.UINT16[R_IO_H])
+#define RSCAN0TMPTR6HL (RSCAN0.TMPTR6.UINT8[R_IO_HL])
+#define RSCAN0TMPTR6HH (RSCAN0.TMPTR6.UINT8[R_IO_HH])
+#define RSCAN0TMDF06 (RSCAN0.TMDF06.UINT32)
+#define RSCAN0TMDF06L (RSCAN0.TMDF06.UINT16[R_IO_L])
+#define RSCAN0TMDF06LL (RSCAN0.TMDF06.UINT8[R_IO_LL])
+#define RSCAN0TMDF06LH (RSCAN0.TMDF06.UINT8[R_IO_LH])
+#define RSCAN0TMDF06H (RSCAN0.TMDF06.UINT16[R_IO_H])
+#define RSCAN0TMDF06HL (RSCAN0.TMDF06.UINT8[R_IO_HL])
+#define RSCAN0TMDF06HH (RSCAN0.TMDF06.UINT8[R_IO_HH])
+#define RSCAN0TMDF16 (RSCAN0.TMDF16.UINT32)
+#define RSCAN0TMDF16L (RSCAN0.TMDF16.UINT16[R_IO_L])
+#define RSCAN0TMDF16LL (RSCAN0.TMDF16.UINT8[R_IO_LL])
+#define RSCAN0TMDF16LH (RSCAN0.TMDF16.UINT8[R_IO_LH])
+#define RSCAN0TMDF16H (RSCAN0.TMDF16.UINT16[R_IO_H])
+#define RSCAN0TMDF16HL (RSCAN0.TMDF16.UINT8[R_IO_HL])
+#define RSCAN0TMDF16HH (RSCAN0.TMDF16.UINT8[R_IO_HH])
+#define RSCAN0TMID7 (RSCAN0.TMID7.UINT32)
+#define RSCAN0TMID7L (RSCAN0.TMID7.UINT16[R_IO_L])
+#define RSCAN0TMID7LL (RSCAN0.TMID7.UINT8[R_IO_LL])
+#define RSCAN0TMID7LH (RSCAN0.TMID7.UINT8[R_IO_LH])
+#define RSCAN0TMID7H (RSCAN0.TMID7.UINT16[R_IO_H])
+#define RSCAN0TMID7HL (RSCAN0.TMID7.UINT8[R_IO_HL])
+#define RSCAN0TMID7HH (RSCAN0.TMID7.UINT8[R_IO_HH])
+#define RSCAN0TMPTR7 (RSCAN0.TMPTR7.UINT32)
+#define RSCAN0TMPTR7L (RSCAN0.TMPTR7.UINT16[R_IO_L])
+#define RSCAN0TMPTR7LL (RSCAN0.TMPTR7.UINT8[R_IO_LL])
+#define RSCAN0TMPTR7LH (RSCAN0.TMPTR7.UINT8[R_IO_LH])
+#define RSCAN0TMPTR7H (RSCAN0.TMPTR7.UINT16[R_IO_H])
+#define RSCAN0TMPTR7HL (RSCAN0.TMPTR7.UINT8[R_IO_HL])
+#define RSCAN0TMPTR7HH (RSCAN0.TMPTR7.UINT8[R_IO_HH])
+#define RSCAN0TMDF07 (RSCAN0.TMDF07.UINT32)
+#define RSCAN0TMDF07L (RSCAN0.TMDF07.UINT16[R_IO_L])
+#define RSCAN0TMDF07LL (RSCAN0.TMDF07.UINT8[R_IO_LL])
+#define RSCAN0TMDF07LH (RSCAN0.TMDF07.UINT8[R_IO_LH])
+#define RSCAN0TMDF07H (RSCAN0.TMDF07.UINT16[R_IO_H])
+#define RSCAN0TMDF07HL (RSCAN0.TMDF07.UINT8[R_IO_HL])
+#define RSCAN0TMDF07HH (RSCAN0.TMDF07.UINT8[R_IO_HH])
+#define RSCAN0TMDF17 (RSCAN0.TMDF17.UINT32)
+#define RSCAN0TMDF17L (RSCAN0.TMDF17.UINT16[R_IO_L])
+#define RSCAN0TMDF17LL (RSCAN0.TMDF17.UINT8[R_IO_LL])
+#define RSCAN0TMDF17LH (RSCAN0.TMDF17.UINT8[R_IO_LH])
+#define RSCAN0TMDF17H (RSCAN0.TMDF17.UINT16[R_IO_H])
+#define RSCAN0TMDF17HL (RSCAN0.TMDF17.UINT8[R_IO_HL])
+#define RSCAN0TMDF17HH (RSCAN0.TMDF17.UINT8[R_IO_HH])
+#define RSCAN0TMID8 (RSCAN0.TMID8.UINT32)
+#define RSCAN0TMID8L (RSCAN0.TMID8.UINT16[R_IO_L])
+#define RSCAN0TMID8LL (RSCAN0.TMID8.UINT8[R_IO_LL])
+#define RSCAN0TMID8LH (RSCAN0.TMID8.UINT8[R_IO_LH])
+#define RSCAN0TMID8H (RSCAN0.TMID8.UINT16[R_IO_H])
+#define RSCAN0TMID8HL (RSCAN0.TMID8.UINT8[R_IO_HL])
+#define RSCAN0TMID8HH (RSCAN0.TMID8.UINT8[R_IO_HH])
+#define RSCAN0TMPTR8 (RSCAN0.TMPTR8.UINT32)
+#define RSCAN0TMPTR8L (RSCAN0.TMPTR8.UINT16[R_IO_L])
+#define RSCAN0TMPTR8LL (RSCAN0.TMPTR8.UINT8[R_IO_LL])
+#define RSCAN0TMPTR8LH (RSCAN0.TMPTR8.UINT8[R_IO_LH])
+#define RSCAN0TMPTR8H (RSCAN0.TMPTR8.UINT16[R_IO_H])
+#define RSCAN0TMPTR8HL (RSCAN0.TMPTR8.UINT8[R_IO_HL])
+#define RSCAN0TMPTR8HH (RSCAN0.TMPTR8.UINT8[R_IO_HH])
+#define RSCAN0TMDF08 (RSCAN0.TMDF08.UINT32)
+#define RSCAN0TMDF08L (RSCAN0.TMDF08.UINT16[R_IO_L])
+#define RSCAN0TMDF08LL (RSCAN0.TMDF08.UINT8[R_IO_LL])
+#define RSCAN0TMDF08LH (RSCAN0.TMDF08.UINT8[R_IO_LH])
+#define RSCAN0TMDF08H (RSCAN0.TMDF08.UINT16[R_IO_H])
+#define RSCAN0TMDF08HL (RSCAN0.TMDF08.UINT8[R_IO_HL])
+#define RSCAN0TMDF08HH (RSCAN0.TMDF08.UINT8[R_IO_HH])
+#define RSCAN0TMDF18 (RSCAN0.TMDF18.UINT32)
+#define RSCAN0TMDF18L (RSCAN0.TMDF18.UINT16[R_IO_L])
+#define RSCAN0TMDF18LL (RSCAN0.TMDF18.UINT8[R_IO_LL])
+#define RSCAN0TMDF18LH (RSCAN0.TMDF18.UINT8[R_IO_LH])
+#define RSCAN0TMDF18H (RSCAN0.TMDF18.UINT16[R_IO_H])
+#define RSCAN0TMDF18HL (RSCAN0.TMDF18.UINT8[R_IO_HL])
+#define RSCAN0TMDF18HH (RSCAN0.TMDF18.UINT8[R_IO_HH])
+#define RSCAN0TMID9 (RSCAN0.TMID9.UINT32)
+#define RSCAN0TMID9L (RSCAN0.TMID9.UINT16[R_IO_L])
+#define RSCAN0TMID9LL (RSCAN0.TMID9.UINT8[R_IO_LL])
+#define RSCAN0TMID9LH (RSCAN0.TMID9.UINT8[R_IO_LH])
+#define RSCAN0TMID9H (RSCAN0.TMID9.UINT16[R_IO_H])
+#define RSCAN0TMID9HL (RSCAN0.TMID9.UINT8[R_IO_HL])
+#define RSCAN0TMID9HH (RSCAN0.TMID9.UINT8[R_IO_HH])
+#define RSCAN0TMPTR9 (RSCAN0.TMPTR9.UINT32)
+#define RSCAN0TMPTR9L (RSCAN0.TMPTR9.UINT16[R_IO_L])
+#define RSCAN0TMPTR9LL (RSCAN0.TMPTR9.UINT8[R_IO_LL])
+#define RSCAN0TMPTR9LH (RSCAN0.TMPTR9.UINT8[R_IO_LH])
+#define RSCAN0TMPTR9H (RSCAN0.TMPTR9.UINT16[R_IO_H])
+#define RSCAN0TMPTR9HL (RSCAN0.TMPTR9.UINT8[R_IO_HL])
+#define RSCAN0TMPTR9HH (RSCAN0.TMPTR9.UINT8[R_IO_HH])
+#define RSCAN0TMDF09 (RSCAN0.TMDF09.UINT32)
+#define RSCAN0TMDF09L (RSCAN0.TMDF09.UINT16[R_IO_L])
+#define RSCAN0TMDF09LL (RSCAN0.TMDF09.UINT8[R_IO_LL])
+#define RSCAN0TMDF09LH (RSCAN0.TMDF09.UINT8[R_IO_LH])
+#define RSCAN0TMDF09H (RSCAN0.TMDF09.UINT16[R_IO_H])
+#define RSCAN0TMDF09HL (RSCAN0.TMDF09.UINT8[R_IO_HL])
+#define RSCAN0TMDF09HH (RSCAN0.TMDF09.UINT8[R_IO_HH])
+#define RSCAN0TMDF19 (RSCAN0.TMDF19.UINT32)
+#define RSCAN0TMDF19L (RSCAN0.TMDF19.UINT16[R_IO_L])
+#define RSCAN0TMDF19LL (RSCAN0.TMDF19.UINT8[R_IO_LL])
+#define RSCAN0TMDF19LH (RSCAN0.TMDF19.UINT8[R_IO_LH])
+#define RSCAN0TMDF19H (RSCAN0.TMDF19.UINT16[R_IO_H])
+#define RSCAN0TMDF19HL (RSCAN0.TMDF19.UINT8[R_IO_HL])
+#define RSCAN0TMDF19HH (RSCAN0.TMDF19.UINT8[R_IO_HH])
+#define RSCAN0TMID10 (RSCAN0.TMID10.UINT32)
+#define RSCAN0TMID10L (RSCAN0.TMID10.UINT16[R_IO_L])
+#define RSCAN0TMID10LL (RSCAN0.TMID10.UINT8[R_IO_LL])
+#define RSCAN0TMID10LH (RSCAN0.TMID10.UINT8[R_IO_LH])
+#define RSCAN0TMID10H (RSCAN0.TMID10.UINT16[R_IO_H])
+#define RSCAN0TMID10HL (RSCAN0.TMID10.UINT8[R_IO_HL])
+#define RSCAN0TMID10HH (RSCAN0.TMID10.UINT8[R_IO_HH])
+#define RSCAN0TMPTR10 (RSCAN0.TMPTR10.UINT32)
+#define RSCAN0TMPTR10L (RSCAN0.TMPTR10.UINT16[R_IO_L])
+#define RSCAN0TMPTR10LL (RSCAN0.TMPTR10.UINT8[R_IO_LL])
+#define RSCAN0TMPTR10LH (RSCAN0.TMPTR10.UINT8[R_IO_LH])
+#define RSCAN0TMPTR10H (RSCAN0.TMPTR10.UINT16[R_IO_H])
+#define RSCAN0TMPTR10HL (RSCAN0.TMPTR10.UINT8[R_IO_HL])
+#define RSCAN0TMPTR10HH (RSCAN0.TMPTR10.UINT8[R_IO_HH])
+#define RSCAN0TMDF010 (RSCAN0.TMDF010.UINT32)
+#define RSCAN0TMDF010L (RSCAN0.TMDF010.UINT16[R_IO_L])
+#define RSCAN0TMDF010LL (RSCAN0.TMDF010.UINT8[R_IO_LL])
+#define RSCAN0TMDF010LH (RSCAN0.TMDF010.UINT8[R_IO_LH])
+#define RSCAN0TMDF010H (RSCAN0.TMDF010.UINT16[R_IO_H])
+#define RSCAN0TMDF010HL (RSCAN0.TMDF010.UINT8[R_IO_HL])
+#define RSCAN0TMDF010HH (RSCAN0.TMDF010.UINT8[R_IO_HH])
+#define RSCAN0TMDF110 (RSCAN0.TMDF110.UINT32)
+#define RSCAN0TMDF110L (RSCAN0.TMDF110.UINT16[R_IO_L])
+#define RSCAN0TMDF110LL (RSCAN0.TMDF110.UINT8[R_IO_LL])
+#define RSCAN0TMDF110LH (RSCAN0.TMDF110.UINT8[R_IO_LH])
+#define RSCAN0TMDF110H (RSCAN0.TMDF110.UINT16[R_IO_H])
+#define RSCAN0TMDF110HL (RSCAN0.TMDF110.UINT8[R_IO_HL])
+#define RSCAN0TMDF110HH (RSCAN0.TMDF110.UINT8[R_IO_HH])
+#define RSCAN0TMID11 (RSCAN0.TMID11.UINT32)
+#define RSCAN0TMID11L (RSCAN0.TMID11.UINT16[R_IO_L])
+#define RSCAN0TMID11LL (RSCAN0.TMID11.UINT8[R_IO_LL])
+#define RSCAN0TMID11LH (RSCAN0.TMID11.UINT8[R_IO_LH])
+#define RSCAN0TMID11H (RSCAN0.TMID11.UINT16[R_IO_H])
+#define RSCAN0TMID11HL (RSCAN0.TMID11.UINT8[R_IO_HL])
+#define RSCAN0TMID11HH (RSCAN0.TMID11.UINT8[R_IO_HH])
+#define RSCAN0TMPTR11 (RSCAN0.TMPTR11.UINT32)
+#define RSCAN0TMPTR11L (RSCAN0.TMPTR11.UINT16[R_IO_L])
+#define RSCAN0TMPTR11LL (RSCAN0.TMPTR11.UINT8[R_IO_LL])
+#define RSCAN0TMPTR11LH (RSCAN0.TMPTR11.UINT8[R_IO_LH])
+#define RSCAN0TMPTR11H (RSCAN0.TMPTR11.UINT16[R_IO_H])
+#define RSCAN0TMPTR11HL (RSCAN0.TMPTR11.UINT8[R_IO_HL])
+#define RSCAN0TMPTR11HH (RSCAN0.TMPTR11.UINT8[R_IO_HH])
+#define RSCAN0TMDF011 (RSCAN0.TMDF011.UINT32)
+#define RSCAN0TMDF011L (RSCAN0.TMDF011.UINT16[R_IO_L])
+#define RSCAN0TMDF011LL (RSCAN0.TMDF011.UINT8[R_IO_LL])
+#define RSCAN0TMDF011LH (RSCAN0.TMDF011.UINT8[R_IO_LH])
+#define RSCAN0TMDF011H (RSCAN0.TMDF011.UINT16[R_IO_H])
+#define RSCAN0TMDF011HL (RSCAN0.TMDF011.UINT8[R_IO_HL])
+#define RSCAN0TMDF011HH (RSCAN0.TMDF011.UINT8[R_IO_HH])
+#define RSCAN0TMDF111 (RSCAN0.TMDF111.UINT32)
+#define RSCAN0TMDF111L (RSCAN0.TMDF111.UINT16[R_IO_L])
+#define RSCAN0TMDF111LL (RSCAN0.TMDF111.UINT8[R_IO_LL])
+#define RSCAN0TMDF111LH (RSCAN0.TMDF111.UINT8[R_IO_LH])
+#define RSCAN0TMDF111H (RSCAN0.TMDF111.UINT16[R_IO_H])
+#define RSCAN0TMDF111HL (RSCAN0.TMDF111.UINT8[R_IO_HL])
+#define RSCAN0TMDF111HH (RSCAN0.TMDF111.UINT8[R_IO_HH])
+#define RSCAN0TMID12 (RSCAN0.TMID12.UINT32)
+#define RSCAN0TMID12L (RSCAN0.TMID12.UINT16[R_IO_L])
+#define RSCAN0TMID12LL (RSCAN0.TMID12.UINT8[R_IO_LL])
+#define RSCAN0TMID12LH (RSCAN0.TMID12.UINT8[R_IO_LH])
+#define RSCAN0TMID12H (RSCAN0.TMID12.UINT16[R_IO_H])
+#define RSCAN0TMID12HL (RSCAN0.TMID12.UINT8[R_IO_HL])
+#define RSCAN0TMID12HH (RSCAN0.TMID12.UINT8[R_IO_HH])
+#define RSCAN0TMPTR12 (RSCAN0.TMPTR12.UINT32)
+#define RSCAN0TMPTR12L (RSCAN0.TMPTR12.UINT16[R_IO_L])
+#define RSCAN0TMPTR12LL (RSCAN0.TMPTR12.UINT8[R_IO_LL])
+#define RSCAN0TMPTR12LH (RSCAN0.TMPTR12.UINT8[R_IO_LH])
+#define RSCAN0TMPTR12H (RSCAN0.TMPTR12.UINT16[R_IO_H])
+#define RSCAN0TMPTR12HL (RSCAN0.TMPTR12.UINT8[R_IO_HL])
+#define RSCAN0TMPTR12HH (RSCAN0.TMPTR12.UINT8[R_IO_HH])
+#define RSCAN0TMDF012 (RSCAN0.TMDF012.UINT32)
+#define RSCAN0TMDF012L (RSCAN0.TMDF012.UINT16[R_IO_L])
+#define RSCAN0TMDF012LL (RSCAN0.TMDF012.UINT8[R_IO_LL])
+#define RSCAN0TMDF012LH (RSCAN0.TMDF012.UINT8[R_IO_LH])
+#define RSCAN0TMDF012H (RSCAN0.TMDF012.UINT16[R_IO_H])
+#define RSCAN0TMDF012HL (RSCAN0.TMDF012.UINT8[R_IO_HL])
+#define RSCAN0TMDF012HH (RSCAN0.TMDF012.UINT8[R_IO_HH])
+#define RSCAN0TMDF112 (RSCAN0.TMDF112.UINT32)
+#define RSCAN0TMDF112L (RSCAN0.TMDF112.UINT16[R_IO_L])
+#define RSCAN0TMDF112LL (RSCAN0.TMDF112.UINT8[R_IO_LL])
+#define RSCAN0TMDF112LH (RSCAN0.TMDF112.UINT8[R_IO_LH])
+#define RSCAN0TMDF112H (RSCAN0.TMDF112.UINT16[R_IO_H])
+#define RSCAN0TMDF112HL (RSCAN0.TMDF112.UINT8[R_IO_HL])
+#define RSCAN0TMDF112HH (RSCAN0.TMDF112.UINT8[R_IO_HH])
+#define RSCAN0TMID13 (RSCAN0.TMID13.UINT32)
+#define RSCAN0TMID13L (RSCAN0.TMID13.UINT16[R_IO_L])
+#define RSCAN0TMID13LL (RSCAN0.TMID13.UINT8[R_IO_LL])
+#define RSCAN0TMID13LH (RSCAN0.TMID13.UINT8[R_IO_LH])
+#define RSCAN0TMID13H (RSCAN0.TMID13.UINT16[R_IO_H])
+#define RSCAN0TMID13HL (RSCAN0.TMID13.UINT8[R_IO_HL])
+#define RSCAN0TMID13HH (RSCAN0.TMID13.UINT8[R_IO_HH])
+#define RSCAN0TMPTR13 (RSCAN0.TMPTR13.UINT32)
+#define RSCAN0TMPTR13L (RSCAN0.TMPTR13.UINT16[R_IO_L])
+#define RSCAN0TMPTR13LL (RSCAN0.TMPTR13.UINT8[R_IO_LL])
+#define RSCAN0TMPTR13LH (RSCAN0.TMPTR13.UINT8[R_IO_LH])
+#define RSCAN0TMPTR13H (RSCAN0.TMPTR13.UINT16[R_IO_H])
+#define RSCAN0TMPTR13HL (RSCAN0.TMPTR13.UINT8[R_IO_HL])
+#define RSCAN0TMPTR13HH (RSCAN0.TMPTR13.UINT8[R_IO_HH])
+#define RSCAN0TMDF013 (RSCAN0.TMDF013.UINT32)
+#define RSCAN0TMDF013L (RSCAN0.TMDF013.UINT16[R_IO_L])
+#define RSCAN0TMDF013LL (RSCAN0.TMDF013.UINT8[R_IO_LL])
+#define RSCAN0TMDF013LH (RSCAN0.TMDF013.UINT8[R_IO_LH])
+#define RSCAN0TMDF013H (RSCAN0.TMDF013.UINT16[R_IO_H])
+#define RSCAN0TMDF013HL (RSCAN0.TMDF013.UINT8[R_IO_HL])
+#define RSCAN0TMDF013HH (RSCAN0.TMDF013.UINT8[R_IO_HH])
+#define RSCAN0TMDF113 (RSCAN0.TMDF113.UINT32)
+#define RSCAN0TMDF113L (RSCAN0.TMDF113.UINT16[R_IO_L])
+#define RSCAN0TMDF113LL (RSCAN0.TMDF113.UINT8[R_IO_LL])
+#define RSCAN0TMDF113LH (RSCAN0.TMDF113.UINT8[R_IO_LH])
+#define RSCAN0TMDF113H (RSCAN0.TMDF113.UINT16[R_IO_H])
+#define RSCAN0TMDF113HL (RSCAN0.TMDF113.UINT8[R_IO_HL])
+#define RSCAN0TMDF113HH (RSCAN0.TMDF113.UINT8[R_IO_HH])
+#define RSCAN0TMID14 (RSCAN0.TMID14.UINT32)
+#define RSCAN0TMID14L (RSCAN0.TMID14.UINT16[R_IO_L])
+#define RSCAN0TMID14LL (RSCAN0.TMID14.UINT8[R_IO_LL])
+#define RSCAN0TMID14LH (RSCAN0.TMID14.UINT8[R_IO_LH])
+#define RSCAN0TMID14H (RSCAN0.TMID14.UINT16[R_IO_H])
+#define RSCAN0TMID14HL (RSCAN0.TMID14.UINT8[R_IO_HL])
+#define RSCAN0TMID14HH (RSCAN0.TMID14.UINT8[R_IO_HH])
+#define RSCAN0TMPTR14 (RSCAN0.TMPTR14.UINT32)
+#define RSCAN0TMPTR14L (RSCAN0.TMPTR14.UINT16[R_IO_L])
+#define RSCAN0TMPTR14LL (RSCAN0.TMPTR14.UINT8[R_IO_LL])
+#define RSCAN0TMPTR14LH (RSCAN0.TMPTR14.UINT8[R_IO_LH])
+#define RSCAN0TMPTR14H (RSCAN0.TMPTR14.UINT16[R_IO_H])
+#define RSCAN0TMPTR14HL (RSCAN0.TMPTR14.UINT8[R_IO_HL])
+#define RSCAN0TMPTR14HH (RSCAN0.TMPTR14.UINT8[R_IO_HH])
+#define RSCAN0TMDF014 (RSCAN0.TMDF014.UINT32)
+#define RSCAN0TMDF014L (RSCAN0.TMDF014.UINT16[R_IO_L])
+#define RSCAN0TMDF014LL (RSCAN0.TMDF014.UINT8[R_IO_LL])
+#define RSCAN0TMDF014LH (RSCAN0.TMDF014.UINT8[R_IO_LH])
+#define RSCAN0TMDF014H (RSCAN0.TMDF014.UINT16[R_IO_H])
+#define RSCAN0TMDF014HL (RSCAN0.TMDF014.UINT8[R_IO_HL])
+#define RSCAN0TMDF014HH (RSCAN0.TMDF014.UINT8[R_IO_HH])
+#define RSCAN0TMDF114 (RSCAN0.TMDF114.UINT32)
+#define RSCAN0TMDF114L (RSCAN0.TMDF114.UINT16[R_IO_L])
+#define RSCAN0TMDF114LL (RSCAN0.TMDF114.UINT8[R_IO_LL])
+#define RSCAN0TMDF114LH (RSCAN0.TMDF114.UINT8[R_IO_LH])
+#define RSCAN0TMDF114H (RSCAN0.TMDF114.UINT16[R_IO_H])
+#define RSCAN0TMDF114HL (RSCAN0.TMDF114.UINT8[R_IO_HL])
+#define RSCAN0TMDF114HH (RSCAN0.TMDF114.UINT8[R_IO_HH])
+#define RSCAN0TMID15 (RSCAN0.TMID15.UINT32)
+#define RSCAN0TMID15L (RSCAN0.TMID15.UINT16[R_IO_L])
+#define RSCAN0TMID15LL (RSCAN0.TMID15.UINT8[R_IO_LL])
+#define RSCAN0TMID15LH (RSCAN0.TMID15.UINT8[R_IO_LH])
+#define RSCAN0TMID15H (RSCAN0.TMID15.UINT16[R_IO_H])
+#define RSCAN0TMID15HL (RSCAN0.TMID15.UINT8[R_IO_HL])
+#define RSCAN0TMID15HH (RSCAN0.TMID15.UINT8[R_IO_HH])
+#define RSCAN0TMPTR15 (RSCAN0.TMPTR15.UINT32)
+#define RSCAN0TMPTR15L (RSCAN0.TMPTR15.UINT16[R_IO_L])
+#define RSCAN0TMPTR15LL (RSCAN0.TMPTR15.UINT8[R_IO_LL])
+#define RSCAN0TMPTR15LH (RSCAN0.TMPTR15.UINT8[R_IO_LH])
+#define RSCAN0TMPTR15H (RSCAN0.TMPTR15.UINT16[R_IO_H])
+#define RSCAN0TMPTR15HL (RSCAN0.TMPTR15.UINT8[R_IO_HL])
+#define RSCAN0TMPTR15HH (RSCAN0.TMPTR15.UINT8[R_IO_HH])
+#define RSCAN0TMDF015 (RSCAN0.TMDF015.UINT32)
+#define RSCAN0TMDF015L (RSCAN0.TMDF015.UINT16[R_IO_L])
+#define RSCAN0TMDF015LL (RSCAN0.TMDF015.UINT8[R_IO_LL])
+#define RSCAN0TMDF015LH (RSCAN0.TMDF015.UINT8[R_IO_LH])
+#define RSCAN0TMDF015H (RSCAN0.TMDF015.UINT16[R_IO_H])
+#define RSCAN0TMDF015HL (RSCAN0.TMDF015.UINT8[R_IO_HL])
+#define RSCAN0TMDF015HH (RSCAN0.TMDF015.UINT8[R_IO_HH])
+#define RSCAN0TMDF115 (RSCAN0.TMDF115.UINT32)
+#define RSCAN0TMDF115L (RSCAN0.TMDF115.UINT16[R_IO_L])
+#define RSCAN0TMDF115LL (RSCAN0.TMDF115.UINT8[R_IO_LL])
+#define RSCAN0TMDF115LH (RSCAN0.TMDF115.UINT8[R_IO_LH])
+#define RSCAN0TMDF115H (RSCAN0.TMDF115.UINT16[R_IO_H])
+#define RSCAN0TMDF115HL (RSCAN0.TMDF115.UINT8[R_IO_HL])
+#define RSCAN0TMDF115HH (RSCAN0.TMDF115.UINT8[R_IO_HH])
+#define RSCAN0TMID16 (RSCAN0.TMID16.UINT32)
+#define RSCAN0TMID16L (RSCAN0.TMID16.UINT16[R_IO_L])
+#define RSCAN0TMID16LL (RSCAN0.TMID16.UINT8[R_IO_LL])
+#define RSCAN0TMID16LH (RSCAN0.TMID16.UINT8[R_IO_LH])
+#define RSCAN0TMID16H (RSCAN0.TMID16.UINT16[R_IO_H])
+#define RSCAN0TMID16HL (RSCAN0.TMID16.UINT8[R_IO_HL])
+#define RSCAN0TMID16HH (RSCAN0.TMID16.UINT8[R_IO_HH])
+#define RSCAN0TMPTR16 (RSCAN0.TMPTR16.UINT32)
+#define RSCAN0TMPTR16L (RSCAN0.TMPTR16.UINT16[R_IO_L])
+#define RSCAN0TMPTR16LL (RSCAN0.TMPTR16.UINT8[R_IO_LL])
+#define RSCAN0TMPTR16LH (RSCAN0.TMPTR16.UINT8[R_IO_LH])
+#define RSCAN0TMPTR16H (RSCAN0.TMPTR16.UINT16[R_IO_H])
+#define RSCAN0TMPTR16HL (RSCAN0.TMPTR16.UINT8[R_IO_HL])
+#define RSCAN0TMPTR16HH (RSCAN0.TMPTR16.UINT8[R_IO_HH])
+#define RSCAN0TMDF016 (RSCAN0.TMDF016.UINT32)
+#define RSCAN0TMDF016L (RSCAN0.TMDF016.UINT16[R_IO_L])
+#define RSCAN0TMDF016LL (RSCAN0.TMDF016.UINT8[R_IO_LL])
+#define RSCAN0TMDF016LH (RSCAN0.TMDF016.UINT8[R_IO_LH])
+#define RSCAN0TMDF016H (RSCAN0.TMDF016.UINT16[R_IO_H])
+#define RSCAN0TMDF016HL (RSCAN0.TMDF016.UINT8[R_IO_HL])
+#define RSCAN0TMDF016HH (RSCAN0.TMDF016.UINT8[R_IO_HH])
+#define RSCAN0TMDF116 (RSCAN0.TMDF116.UINT32)
+#define RSCAN0TMDF116L (RSCAN0.TMDF116.UINT16[R_IO_L])
+#define RSCAN0TMDF116LL (RSCAN0.TMDF116.UINT8[R_IO_LL])
+#define RSCAN0TMDF116LH (RSCAN0.TMDF116.UINT8[R_IO_LH])
+#define RSCAN0TMDF116H (RSCAN0.TMDF116.UINT16[R_IO_H])
+#define RSCAN0TMDF116HL (RSCAN0.TMDF116.UINT8[R_IO_HL])
+#define RSCAN0TMDF116HH (RSCAN0.TMDF116.UINT8[R_IO_HH])
+#define RSCAN0TMID17 (RSCAN0.TMID17.UINT32)
+#define RSCAN0TMID17L (RSCAN0.TMID17.UINT16[R_IO_L])
+#define RSCAN0TMID17LL (RSCAN0.TMID17.UINT8[R_IO_LL])
+#define RSCAN0TMID17LH (RSCAN0.TMID17.UINT8[R_IO_LH])
+#define RSCAN0TMID17H (RSCAN0.TMID17.UINT16[R_IO_H])
+#define RSCAN0TMID17HL (RSCAN0.TMID17.UINT8[R_IO_HL])
+#define RSCAN0TMID17HH (RSCAN0.TMID17.UINT8[R_IO_HH])
+#define RSCAN0TMPTR17 (RSCAN0.TMPTR17.UINT32)
+#define RSCAN0TMPTR17L (RSCAN0.TMPTR17.UINT16[R_IO_L])
+#define RSCAN0TMPTR17LL (RSCAN0.TMPTR17.UINT8[R_IO_LL])
+#define RSCAN0TMPTR17LH (RSCAN0.TMPTR17.UINT8[R_IO_LH])
+#define RSCAN0TMPTR17H (RSCAN0.TMPTR17.UINT16[R_IO_H])
+#define RSCAN0TMPTR17HL (RSCAN0.TMPTR17.UINT8[R_IO_HL])
+#define RSCAN0TMPTR17HH (RSCAN0.TMPTR17.UINT8[R_IO_HH])
+#define RSCAN0TMDF017 (RSCAN0.TMDF017.UINT32)
+#define RSCAN0TMDF017L (RSCAN0.TMDF017.UINT16[R_IO_L])
+#define RSCAN0TMDF017LL (RSCAN0.TMDF017.UINT8[R_IO_LL])
+#define RSCAN0TMDF017LH (RSCAN0.TMDF017.UINT8[R_IO_LH])
+#define RSCAN0TMDF017H (RSCAN0.TMDF017.UINT16[R_IO_H])
+#define RSCAN0TMDF017HL (RSCAN0.TMDF017.UINT8[R_IO_HL])
+#define RSCAN0TMDF017HH (RSCAN0.TMDF017.UINT8[R_IO_HH])
+#define RSCAN0TMDF117 (RSCAN0.TMDF117.UINT32)
+#define RSCAN0TMDF117L (RSCAN0.TMDF117.UINT16[R_IO_L])
+#define RSCAN0TMDF117LL (RSCAN0.TMDF117.UINT8[R_IO_LL])
+#define RSCAN0TMDF117LH (RSCAN0.TMDF117.UINT8[R_IO_LH])
+#define RSCAN0TMDF117H (RSCAN0.TMDF117.UINT16[R_IO_H])
+#define RSCAN0TMDF117HL (RSCAN0.TMDF117.UINT8[R_IO_HL])
+#define RSCAN0TMDF117HH (RSCAN0.TMDF117.UINT8[R_IO_HH])
+#define RSCAN0TMID18 (RSCAN0.TMID18.UINT32)
+#define RSCAN0TMID18L (RSCAN0.TMID18.UINT16[R_IO_L])
+#define RSCAN0TMID18LL (RSCAN0.TMID18.UINT8[R_IO_LL])
+#define RSCAN0TMID18LH (RSCAN0.TMID18.UINT8[R_IO_LH])
+#define RSCAN0TMID18H (RSCAN0.TMID18.UINT16[R_IO_H])
+#define RSCAN0TMID18HL (RSCAN0.TMID18.UINT8[R_IO_HL])
+#define RSCAN0TMID18HH (RSCAN0.TMID18.UINT8[R_IO_HH])
+#define RSCAN0TMPTR18 (RSCAN0.TMPTR18.UINT32)
+#define RSCAN0TMPTR18L (RSCAN0.TMPTR18.UINT16[R_IO_L])
+#define RSCAN0TMPTR18LL (RSCAN0.TMPTR18.UINT8[R_IO_LL])
+#define RSCAN0TMPTR18LH (RSCAN0.TMPTR18.UINT8[R_IO_LH])
+#define RSCAN0TMPTR18H (RSCAN0.TMPTR18.UINT16[R_IO_H])
+#define RSCAN0TMPTR18HL (RSCAN0.TMPTR18.UINT8[R_IO_HL])
+#define RSCAN0TMPTR18HH (RSCAN0.TMPTR18.UINT8[R_IO_HH])
+#define RSCAN0TMDF018 (RSCAN0.TMDF018.UINT32)
+#define RSCAN0TMDF018L (RSCAN0.TMDF018.UINT16[R_IO_L])
+#define RSCAN0TMDF018LL (RSCAN0.TMDF018.UINT8[R_IO_LL])
+#define RSCAN0TMDF018LH (RSCAN0.TMDF018.UINT8[R_IO_LH])
+#define RSCAN0TMDF018H (RSCAN0.TMDF018.UINT16[R_IO_H])
+#define RSCAN0TMDF018HL (RSCAN0.TMDF018.UINT8[R_IO_HL])
+#define RSCAN0TMDF018HH (RSCAN0.TMDF018.UINT8[R_IO_HH])
+#define RSCAN0TMDF118 (RSCAN0.TMDF118.UINT32)
+#define RSCAN0TMDF118L (RSCAN0.TMDF118.UINT16[R_IO_L])
+#define RSCAN0TMDF118LL (RSCAN0.TMDF118.UINT8[R_IO_LL])
+#define RSCAN0TMDF118LH (RSCAN0.TMDF118.UINT8[R_IO_LH])
+#define RSCAN0TMDF118H (RSCAN0.TMDF118.UINT16[R_IO_H])
+#define RSCAN0TMDF118HL (RSCAN0.TMDF118.UINT8[R_IO_HL])
+#define RSCAN0TMDF118HH (RSCAN0.TMDF118.UINT8[R_IO_HH])
+#define RSCAN0TMID19 (RSCAN0.TMID19.UINT32)
+#define RSCAN0TMID19L (RSCAN0.TMID19.UINT16[R_IO_L])
+#define RSCAN0TMID19LL (RSCAN0.TMID19.UINT8[R_IO_LL])
+#define RSCAN0TMID19LH (RSCAN0.TMID19.UINT8[R_IO_LH])
+#define RSCAN0TMID19H (RSCAN0.TMID19.UINT16[R_IO_H])
+#define RSCAN0TMID19HL (RSCAN0.TMID19.UINT8[R_IO_HL])
+#define RSCAN0TMID19HH (RSCAN0.TMID19.UINT8[R_IO_HH])
+#define RSCAN0TMPTR19 (RSCAN0.TMPTR19.UINT32)
+#define RSCAN0TMPTR19L (RSCAN0.TMPTR19.UINT16[R_IO_L])
+#define RSCAN0TMPTR19LL (RSCAN0.TMPTR19.UINT8[R_IO_LL])
+#define RSCAN0TMPTR19LH (RSCAN0.TMPTR19.UINT8[R_IO_LH])
+#define RSCAN0TMPTR19H (RSCAN0.TMPTR19.UINT16[R_IO_H])
+#define RSCAN0TMPTR19HL (RSCAN0.TMPTR19.UINT8[R_IO_HL])
+#define RSCAN0TMPTR19HH (RSCAN0.TMPTR19.UINT8[R_IO_HH])
+#define RSCAN0TMDF019 (RSCAN0.TMDF019.UINT32)
+#define RSCAN0TMDF019L (RSCAN0.TMDF019.UINT16[R_IO_L])
+#define RSCAN0TMDF019LL (RSCAN0.TMDF019.UINT8[R_IO_LL])
+#define RSCAN0TMDF019LH (RSCAN0.TMDF019.UINT8[R_IO_LH])
+#define RSCAN0TMDF019H (RSCAN0.TMDF019.UINT16[R_IO_H])
+#define RSCAN0TMDF019HL (RSCAN0.TMDF019.UINT8[R_IO_HL])
+#define RSCAN0TMDF019HH (RSCAN0.TMDF019.UINT8[R_IO_HH])
+#define RSCAN0TMDF119 (RSCAN0.TMDF119.UINT32)
+#define RSCAN0TMDF119L (RSCAN0.TMDF119.UINT16[R_IO_L])
+#define RSCAN0TMDF119LL (RSCAN0.TMDF119.UINT8[R_IO_LL])
+#define RSCAN0TMDF119LH (RSCAN0.TMDF119.UINT8[R_IO_LH])
+#define RSCAN0TMDF119H (RSCAN0.TMDF119.UINT16[R_IO_H])
+#define RSCAN0TMDF119HL (RSCAN0.TMDF119.UINT8[R_IO_HL])
+#define RSCAN0TMDF119HH (RSCAN0.TMDF119.UINT8[R_IO_HH])
+#define RSCAN0TMID20 (RSCAN0.TMID20.UINT32)
+#define RSCAN0TMID20L (RSCAN0.TMID20.UINT16[R_IO_L])
+#define RSCAN0TMID20LL (RSCAN0.TMID20.UINT8[R_IO_LL])
+#define RSCAN0TMID20LH (RSCAN0.TMID20.UINT8[R_IO_LH])
+#define RSCAN0TMID20H (RSCAN0.TMID20.UINT16[R_IO_H])
+#define RSCAN0TMID20HL (RSCAN0.TMID20.UINT8[R_IO_HL])
+#define RSCAN0TMID20HH (RSCAN0.TMID20.UINT8[R_IO_HH])
+#define RSCAN0TMPTR20 (RSCAN0.TMPTR20.UINT32)
+#define RSCAN0TMPTR20L (RSCAN0.TMPTR20.UINT16[R_IO_L])
+#define RSCAN0TMPTR20LL (RSCAN0.TMPTR20.UINT8[R_IO_LL])
+#define RSCAN0TMPTR20LH (RSCAN0.TMPTR20.UINT8[R_IO_LH])
+#define RSCAN0TMPTR20H (RSCAN0.TMPTR20.UINT16[R_IO_H])
+#define RSCAN0TMPTR20HL (RSCAN0.TMPTR20.UINT8[R_IO_HL])
+#define RSCAN0TMPTR20HH (RSCAN0.TMPTR20.UINT8[R_IO_HH])
+#define RSCAN0TMDF020 (RSCAN0.TMDF020.UINT32)
+#define RSCAN0TMDF020L (RSCAN0.TMDF020.UINT16[R_IO_L])
+#define RSCAN0TMDF020LL (RSCAN0.TMDF020.UINT8[R_IO_LL])
+#define RSCAN0TMDF020LH (RSCAN0.TMDF020.UINT8[R_IO_LH])
+#define RSCAN0TMDF020H (RSCAN0.TMDF020.UINT16[R_IO_H])
+#define RSCAN0TMDF020HL (RSCAN0.TMDF020.UINT8[R_IO_HL])
+#define RSCAN0TMDF020HH (RSCAN0.TMDF020.UINT8[R_IO_HH])
+#define RSCAN0TMDF120 (RSCAN0.TMDF120.UINT32)
+#define RSCAN0TMDF120L (RSCAN0.TMDF120.UINT16[R_IO_L])
+#define RSCAN0TMDF120LL (RSCAN0.TMDF120.UINT8[R_IO_LL])
+#define RSCAN0TMDF120LH (RSCAN0.TMDF120.UINT8[R_IO_LH])
+#define RSCAN0TMDF120H (RSCAN0.TMDF120.UINT16[R_IO_H])
+#define RSCAN0TMDF120HL (RSCAN0.TMDF120.UINT8[R_IO_HL])
+#define RSCAN0TMDF120HH (RSCAN0.TMDF120.UINT8[R_IO_HH])
+#define RSCAN0TMID21 (RSCAN0.TMID21.UINT32)
+#define RSCAN0TMID21L (RSCAN0.TMID21.UINT16[R_IO_L])
+#define RSCAN0TMID21LL (RSCAN0.TMID21.UINT8[R_IO_LL])
+#define RSCAN0TMID21LH (RSCAN0.TMID21.UINT8[R_IO_LH])
+#define RSCAN0TMID21H (RSCAN0.TMID21.UINT16[R_IO_H])
+#define RSCAN0TMID21HL (RSCAN0.TMID21.UINT8[R_IO_HL])
+#define RSCAN0TMID21HH (RSCAN0.TMID21.UINT8[R_IO_HH])
+#define RSCAN0TMPTR21 (RSCAN0.TMPTR21.UINT32)
+#define RSCAN0TMPTR21L (RSCAN0.TMPTR21.UINT16[R_IO_L])
+#define RSCAN0TMPTR21LL (RSCAN0.TMPTR21.UINT8[R_IO_LL])
+#define RSCAN0TMPTR21LH (RSCAN0.TMPTR21.UINT8[R_IO_LH])
+#define RSCAN0TMPTR21H (RSCAN0.TMPTR21.UINT16[R_IO_H])
+#define RSCAN0TMPTR21HL (RSCAN0.TMPTR21.UINT8[R_IO_HL])
+#define RSCAN0TMPTR21HH (RSCAN0.TMPTR21.UINT8[R_IO_HH])
+#define RSCAN0TMDF021 (RSCAN0.TMDF021.UINT32)
+#define RSCAN0TMDF021L (RSCAN0.TMDF021.UINT16[R_IO_L])
+#define RSCAN0TMDF021LL (RSCAN0.TMDF021.UINT8[R_IO_LL])
+#define RSCAN0TMDF021LH (RSCAN0.TMDF021.UINT8[R_IO_LH])
+#define RSCAN0TMDF021H (RSCAN0.TMDF021.UINT16[R_IO_H])
+#define RSCAN0TMDF021HL (RSCAN0.TMDF021.UINT8[R_IO_HL])
+#define RSCAN0TMDF021HH (RSCAN0.TMDF021.UINT8[R_IO_HH])
+#define RSCAN0TMDF121 (RSCAN0.TMDF121.UINT32)
+#define RSCAN0TMDF121L (RSCAN0.TMDF121.UINT16[R_IO_L])
+#define RSCAN0TMDF121LL (RSCAN0.TMDF121.UINT8[R_IO_LL])
+#define RSCAN0TMDF121LH (RSCAN0.TMDF121.UINT8[R_IO_LH])
+#define RSCAN0TMDF121H (RSCAN0.TMDF121.UINT16[R_IO_H])
+#define RSCAN0TMDF121HL (RSCAN0.TMDF121.UINT8[R_IO_HL])
+#define RSCAN0TMDF121HH (RSCAN0.TMDF121.UINT8[R_IO_HH])
+#define RSCAN0TMID22 (RSCAN0.TMID22.UINT32)
+#define RSCAN0TMID22L (RSCAN0.TMID22.UINT16[R_IO_L])
+#define RSCAN0TMID22LL (RSCAN0.TMID22.UINT8[R_IO_LL])
+#define RSCAN0TMID22LH (RSCAN0.TMID22.UINT8[R_IO_LH])
+#define RSCAN0TMID22H (RSCAN0.TMID22.UINT16[R_IO_H])
+#define RSCAN0TMID22HL (RSCAN0.TMID22.UINT8[R_IO_HL])
+#define RSCAN0TMID22HH (RSCAN0.TMID22.UINT8[R_IO_HH])
+#define RSCAN0TMPTR22 (RSCAN0.TMPTR22.UINT32)
+#define RSCAN0TMPTR22L (RSCAN0.TMPTR22.UINT16[R_IO_L])
+#define RSCAN0TMPTR22LL (RSCAN0.TMPTR22.UINT8[R_IO_LL])
+#define RSCAN0TMPTR22LH (RSCAN0.TMPTR22.UINT8[R_IO_LH])
+#define RSCAN0TMPTR22H (RSCAN0.TMPTR22.UINT16[R_IO_H])
+#define RSCAN0TMPTR22HL (RSCAN0.TMPTR22.UINT8[R_IO_HL])
+#define RSCAN0TMPTR22HH (RSCAN0.TMPTR22.UINT8[R_IO_HH])
+#define RSCAN0TMDF022 (RSCAN0.TMDF022.UINT32)
+#define RSCAN0TMDF022L (RSCAN0.TMDF022.UINT16[R_IO_L])
+#define RSCAN0TMDF022LL (RSCAN0.TMDF022.UINT8[R_IO_LL])
+#define RSCAN0TMDF022LH (RSCAN0.TMDF022.UINT8[R_IO_LH])
+#define RSCAN0TMDF022H (RSCAN0.TMDF022.UINT16[R_IO_H])
+#define RSCAN0TMDF022HL (RSCAN0.TMDF022.UINT8[R_IO_HL])
+#define RSCAN0TMDF022HH (RSCAN0.TMDF022.UINT8[R_IO_HH])
+#define RSCAN0TMDF122 (RSCAN0.TMDF122.UINT32)
+#define RSCAN0TMDF122L (RSCAN0.TMDF122.UINT16[R_IO_L])
+#define RSCAN0TMDF122LL (RSCAN0.TMDF122.UINT8[R_IO_LL])
+#define RSCAN0TMDF122LH (RSCAN0.TMDF122.UINT8[R_IO_LH])
+#define RSCAN0TMDF122H (RSCAN0.TMDF122.UINT16[R_IO_H])
+#define RSCAN0TMDF122HL (RSCAN0.TMDF122.UINT8[R_IO_HL])
+#define RSCAN0TMDF122HH (RSCAN0.TMDF122.UINT8[R_IO_HH])
+#define RSCAN0TMID23 (RSCAN0.TMID23.UINT32)
+#define RSCAN0TMID23L (RSCAN0.TMID23.UINT16[R_IO_L])
+#define RSCAN0TMID23LL (RSCAN0.TMID23.UINT8[R_IO_LL])
+#define RSCAN0TMID23LH (RSCAN0.TMID23.UINT8[R_IO_LH])
+#define RSCAN0TMID23H (RSCAN0.TMID23.UINT16[R_IO_H])
+#define RSCAN0TMID23HL (RSCAN0.TMID23.UINT8[R_IO_HL])
+#define RSCAN0TMID23HH (RSCAN0.TMID23.UINT8[R_IO_HH])
+#define RSCAN0TMPTR23 (RSCAN0.TMPTR23.UINT32)
+#define RSCAN0TMPTR23L (RSCAN0.TMPTR23.UINT16[R_IO_L])
+#define RSCAN0TMPTR23LL (RSCAN0.TMPTR23.UINT8[R_IO_LL])
+#define RSCAN0TMPTR23LH (RSCAN0.TMPTR23.UINT8[R_IO_LH])
+#define RSCAN0TMPTR23H (RSCAN0.TMPTR23.UINT16[R_IO_H])
+#define RSCAN0TMPTR23HL (RSCAN0.TMPTR23.UINT8[R_IO_HL])
+#define RSCAN0TMPTR23HH (RSCAN0.TMPTR23.UINT8[R_IO_HH])
+#define RSCAN0TMDF023 (RSCAN0.TMDF023.UINT32)
+#define RSCAN0TMDF023L (RSCAN0.TMDF023.UINT16[R_IO_L])
+#define RSCAN0TMDF023LL (RSCAN0.TMDF023.UINT8[R_IO_LL])
+#define RSCAN0TMDF023LH (RSCAN0.TMDF023.UINT8[R_IO_LH])
+#define RSCAN0TMDF023H (RSCAN0.TMDF023.UINT16[R_IO_H])
+#define RSCAN0TMDF023HL (RSCAN0.TMDF023.UINT8[R_IO_HL])
+#define RSCAN0TMDF023HH (RSCAN0.TMDF023.UINT8[R_IO_HH])
+#define RSCAN0TMDF123 (RSCAN0.TMDF123.UINT32)
+#define RSCAN0TMDF123L (RSCAN0.TMDF123.UINT16[R_IO_L])
+#define RSCAN0TMDF123LL (RSCAN0.TMDF123.UINT8[R_IO_LL])
+#define RSCAN0TMDF123LH (RSCAN0.TMDF123.UINT8[R_IO_LH])
+#define RSCAN0TMDF123H (RSCAN0.TMDF123.UINT16[R_IO_H])
+#define RSCAN0TMDF123HL (RSCAN0.TMDF123.UINT8[R_IO_HL])
+#define RSCAN0TMDF123HH (RSCAN0.TMDF123.UINT8[R_IO_HH])
+#define RSCAN0TMID24 (RSCAN0.TMID24.UINT32)
+#define RSCAN0TMID24L (RSCAN0.TMID24.UINT16[R_IO_L])
+#define RSCAN0TMID24LL (RSCAN0.TMID24.UINT8[R_IO_LL])
+#define RSCAN0TMID24LH (RSCAN0.TMID24.UINT8[R_IO_LH])
+#define RSCAN0TMID24H (RSCAN0.TMID24.UINT16[R_IO_H])
+#define RSCAN0TMID24HL (RSCAN0.TMID24.UINT8[R_IO_HL])
+#define RSCAN0TMID24HH (RSCAN0.TMID24.UINT8[R_IO_HH])
+#define RSCAN0TMPTR24 (RSCAN0.TMPTR24.UINT32)
+#define RSCAN0TMPTR24L (RSCAN0.TMPTR24.UINT16[R_IO_L])
+#define RSCAN0TMPTR24LL (RSCAN0.TMPTR24.UINT8[R_IO_LL])
+#define RSCAN0TMPTR24LH (RSCAN0.TMPTR24.UINT8[R_IO_LH])
+#define RSCAN0TMPTR24H (RSCAN0.TMPTR24.UINT16[R_IO_H])
+#define RSCAN0TMPTR24HL (RSCAN0.TMPTR24.UINT8[R_IO_HL])
+#define RSCAN0TMPTR24HH (RSCAN0.TMPTR24.UINT8[R_IO_HH])
+#define RSCAN0TMDF024 (RSCAN0.TMDF024.UINT32)
+#define RSCAN0TMDF024L (RSCAN0.TMDF024.UINT16[R_IO_L])
+#define RSCAN0TMDF024LL (RSCAN0.TMDF024.UINT8[R_IO_LL])
+#define RSCAN0TMDF024LH (RSCAN0.TMDF024.UINT8[R_IO_LH])
+#define RSCAN0TMDF024H (RSCAN0.TMDF024.UINT16[R_IO_H])
+#define RSCAN0TMDF024HL (RSCAN0.TMDF024.UINT8[R_IO_HL])
+#define RSCAN0TMDF024HH (RSCAN0.TMDF024.UINT8[R_IO_HH])
+#define RSCAN0TMDF124 (RSCAN0.TMDF124.UINT32)
+#define RSCAN0TMDF124L (RSCAN0.TMDF124.UINT16[R_IO_L])
+#define RSCAN0TMDF124LL (RSCAN0.TMDF124.UINT8[R_IO_LL])
+#define RSCAN0TMDF124LH (RSCAN0.TMDF124.UINT8[R_IO_LH])
+#define RSCAN0TMDF124H (RSCAN0.TMDF124.UINT16[R_IO_H])
+#define RSCAN0TMDF124HL (RSCAN0.TMDF124.UINT8[R_IO_HL])
+#define RSCAN0TMDF124HH (RSCAN0.TMDF124.UINT8[R_IO_HH])
+#define RSCAN0TMID25 (RSCAN0.TMID25.UINT32)
+#define RSCAN0TMID25L (RSCAN0.TMID25.UINT16[R_IO_L])
+#define RSCAN0TMID25LL (RSCAN0.TMID25.UINT8[R_IO_LL])
+#define RSCAN0TMID25LH (RSCAN0.TMID25.UINT8[R_IO_LH])
+#define RSCAN0TMID25H (RSCAN0.TMID25.UINT16[R_IO_H])
+#define RSCAN0TMID25HL (RSCAN0.TMID25.UINT8[R_IO_HL])
+#define RSCAN0TMID25HH (RSCAN0.TMID25.UINT8[R_IO_HH])
+#define RSCAN0TMPTR25 (RSCAN0.TMPTR25.UINT32)
+#define RSCAN0TMPTR25L (RSCAN0.TMPTR25.UINT16[R_IO_L])
+#define RSCAN0TMPTR25LL (RSCAN0.TMPTR25.UINT8[R_IO_LL])
+#define RSCAN0TMPTR25LH (RSCAN0.TMPTR25.UINT8[R_IO_LH])
+#define RSCAN0TMPTR25H (RSCAN0.TMPTR25.UINT16[R_IO_H])
+#define RSCAN0TMPTR25HL (RSCAN0.TMPTR25.UINT8[R_IO_HL])
+#define RSCAN0TMPTR25HH (RSCAN0.TMPTR25.UINT8[R_IO_HH])
+#define RSCAN0TMDF025 (RSCAN0.TMDF025.UINT32)
+#define RSCAN0TMDF025L (RSCAN0.TMDF025.UINT16[R_IO_L])
+#define RSCAN0TMDF025LL (RSCAN0.TMDF025.UINT8[R_IO_LL])
+#define RSCAN0TMDF025LH (RSCAN0.TMDF025.UINT8[R_IO_LH])
+#define RSCAN0TMDF025H (RSCAN0.TMDF025.UINT16[R_IO_H])
+#define RSCAN0TMDF025HL (RSCAN0.TMDF025.UINT8[R_IO_HL])
+#define RSCAN0TMDF025HH (RSCAN0.TMDF025.UINT8[R_IO_HH])
+#define RSCAN0TMDF125 (RSCAN0.TMDF125.UINT32)
+#define RSCAN0TMDF125L (RSCAN0.TMDF125.UINT16[R_IO_L])
+#define RSCAN0TMDF125LL (RSCAN0.TMDF125.UINT8[R_IO_LL])
+#define RSCAN0TMDF125LH (RSCAN0.TMDF125.UINT8[R_IO_LH])
+#define RSCAN0TMDF125H (RSCAN0.TMDF125.UINT16[R_IO_H])
+#define RSCAN0TMDF125HL (RSCAN0.TMDF125.UINT8[R_IO_HL])
+#define RSCAN0TMDF125HH (RSCAN0.TMDF125.UINT8[R_IO_HH])
+#define RSCAN0TMID26 (RSCAN0.TMID26.UINT32)
+#define RSCAN0TMID26L (RSCAN0.TMID26.UINT16[R_IO_L])
+#define RSCAN0TMID26LL (RSCAN0.TMID26.UINT8[R_IO_LL])
+#define RSCAN0TMID26LH (RSCAN0.TMID26.UINT8[R_IO_LH])
+#define RSCAN0TMID26H (RSCAN0.TMID26.UINT16[R_IO_H])
+#define RSCAN0TMID26HL (RSCAN0.TMID26.UINT8[R_IO_HL])
+#define RSCAN0TMID26HH (RSCAN0.TMID26.UINT8[R_IO_HH])
+#define RSCAN0TMPTR26 (RSCAN0.TMPTR26.UINT32)
+#define RSCAN0TMPTR26L (RSCAN0.TMPTR26.UINT16[R_IO_L])
+#define RSCAN0TMPTR26LL (RSCAN0.TMPTR26.UINT8[R_IO_LL])
+#define RSCAN0TMPTR26LH (RSCAN0.TMPTR26.UINT8[R_IO_LH])
+#define RSCAN0TMPTR26H (RSCAN0.TMPTR26.UINT16[R_IO_H])
+#define RSCAN0TMPTR26HL (RSCAN0.TMPTR26.UINT8[R_IO_HL])
+#define RSCAN0TMPTR26HH (RSCAN0.TMPTR26.UINT8[R_IO_HH])
+#define RSCAN0TMDF026 (RSCAN0.TMDF026.UINT32)
+#define RSCAN0TMDF026L (RSCAN0.TMDF026.UINT16[R_IO_L])
+#define RSCAN0TMDF026LL (RSCAN0.TMDF026.UINT8[R_IO_LL])
+#define RSCAN0TMDF026LH (RSCAN0.TMDF026.UINT8[R_IO_LH])
+#define RSCAN0TMDF026H (RSCAN0.TMDF026.UINT16[R_IO_H])
+#define RSCAN0TMDF026HL (RSCAN0.TMDF026.UINT8[R_IO_HL])
+#define RSCAN0TMDF026HH (RSCAN0.TMDF026.UINT8[R_IO_HH])
+#define RSCAN0TMDF126 (RSCAN0.TMDF126.UINT32)
+#define RSCAN0TMDF126L (RSCAN0.TMDF126.UINT16[R_IO_L])
+#define RSCAN0TMDF126LL (RSCAN0.TMDF126.UINT8[R_IO_LL])
+#define RSCAN0TMDF126LH (RSCAN0.TMDF126.UINT8[R_IO_LH])
+#define RSCAN0TMDF126H (RSCAN0.TMDF126.UINT16[R_IO_H])
+#define RSCAN0TMDF126HL (RSCAN0.TMDF126.UINT8[R_IO_HL])
+#define RSCAN0TMDF126HH (RSCAN0.TMDF126.UINT8[R_IO_HH])
+#define RSCAN0TMID27 (RSCAN0.TMID27.UINT32)
+#define RSCAN0TMID27L (RSCAN0.TMID27.UINT16[R_IO_L])
+#define RSCAN0TMID27LL (RSCAN0.TMID27.UINT8[R_IO_LL])
+#define RSCAN0TMID27LH (RSCAN0.TMID27.UINT8[R_IO_LH])
+#define RSCAN0TMID27H (RSCAN0.TMID27.UINT16[R_IO_H])
+#define RSCAN0TMID27HL (RSCAN0.TMID27.UINT8[R_IO_HL])
+#define RSCAN0TMID27HH (RSCAN0.TMID27.UINT8[R_IO_HH])
+#define RSCAN0TMPTR27 (RSCAN0.TMPTR27.UINT32)
+#define RSCAN0TMPTR27L (RSCAN0.TMPTR27.UINT16[R_IO_L])
+#define RSCAN0TMPTR27LL (RSCAN0.TMPTR27.UINT8[R_IO_LL])
+#define RSCAN0TMPTR27LH (RSCAN0.TMPTR27.UINT8[R_IO_LH])
+#define RSCAN0TMPTR27H (RSCAN0.TMPTR27.UINT16[R_IO_H])
+#define RSCAN0TMPTR27HL (RSCAN0.TMPTR27.UINT8[R_IO_HL])
+#define RSCAN0TMPTR27HH (RSCAN0.TMPTR27.UINT8[R_IO_HH])
+#define RSCAN0TMDF027 (RSCAN0.TMDF027.UINT32)
+#define RSCAN0TMDF027L (RSCAN0.TMDF027.UINT16[R_IO_L])
+#define RSCAN0TMDF027LL (RSCAN0.TMDF027.UINT8[R_IO_LL])
+#define RSCAN0TMDF027LH (RSCAN0.TMDF027.UINT8[R_IO_LH])
+#define RSCAN0TMDF027H (RSCAN0.TMDF027.UINT16[R_IO_H])
+#define RSCAN0TMDF027HL (RSCAN0.TMDF027.UINT8[R_IO_HL])
+#define RSCAN0TMDF027HH (RSCAN0.TMDF027.UINT8[R_IO_HH])
+#define RSCAN0TMDF127 (RSCAN0.TMDF127.UINT32)
+#define RSCAN0TMDF127L (RSCAN0.TMDF127.UINT16[R_IO_L])
+#define RSCAN0TMDF127LL (RSCAN0.TMDF127.UINT8[R_IO_LL])
+#define RSCAN0TMDF127LH (RSCAN0.TMDF127.UINT8[R_IO_LH])
+#define RSCAN0TMDF127H (RSCAN0.TMDF127.UINT16[R_IO_H])
+#define RSCAN0TMDF127HL (RSCAN0.TMDF127.UINT8[R_IO_HL])
+#define RSCAN0TMDF127HH (RSCAN0.TMDF127.UINT8[R_IO_HH])
+#define RSCAN0TMID28 (RSCAN0.TMID28.UINT32)
+#define RSCAN0TMID28L (RSCAN0.TMID28.UINT16[R_IO_L])
+#define RSCAN0TMID28LL (RSCAN0.TMID28.UINT8[R_IO_LL])
+#define RSCAN0TMID28LH (RSCAN0.TMID28.UINT8[R_IO_LH])
+#define RSCAN0TMID28H (RSCAN0.TMID28.UINT16[R_IO_H])
+#define RSCAN0TMID28HL (RSCAN0.TMID28.UINT8[R_IO_HL])
+#define RSCAN0TMID28HH (RSCAN0.TMID28.UINT8[R_IO_HH])
+#define RSCAN0TMPTR28 (RSCAN0.TMPTR28.UINT32)
+#define RSCAN0TMPTR28L (RSCAN0.TMPTR28.UINT16[R_IO_L])
+#define RSCAN0TMPTR28LL (RSCAN0.TMPTR28.UINT8[R_IO_LL])
+#define RSCAN0TMPTR28LH (RSCAN0.TMPTR28.UINT8[R_IO_LH])
+#define RSCAN0TMPTR28H (RSCAN0.TMPTR28.UINT16[R_IO_H])
+#define RSCAN0TMPTR28HL (RSCAN0.TMPTR28.UINT8[R_IO_HL])
+#define RSCAN0TMPTR28HH (RSCAN0.TMPTR28.UINT8[R_IO_HH])
+#define RSCAN0TMDF028 (RSCAN0.TMDF028.UINT32)
+#define RSCAN0TMDF028L (RSCAN0.TMDF028.UINT16[R_IO_L])
+#define RSCAN0TMDF028LL (RSCAN0.TMDF028.UINT8[R_IO_LL])
+#define RSCAN0TMDF028LH (RSCAN0.TMDF028.UINT8[R_IO_LH])
+#define RSCAN0TMDF028H (RSCAN0.TMDF028.UINT16[R_IO_H])
+#define RSCAN0TMDF028HL (RSCAN0.TMDF028.UINT8[R_IO_HL])
+#define RSCAN0TMDF028HH (RSCAN0.TMDF028.UINT8[R_IO_HH])
+#define RSCAN0TMDF128 (RSCAN0.TMDF128.UINT32)
+#define RSCAN0TMDF128L (RSCAN0.TMDF128.UINT16[R_IO_L])
+#define RSCAN0TMDF128LL (RSCAN0.TMDF128.UINT8[R_IO_LL])
+#define RSCAN0TMDF128LH (RSCAN0.TMDF128.UINT8[R_IO_LH])
+#define RSCAN0TMDF128H (RSCAN0.TMDF128.UINT16[R_IO_H])
+#define RSCAN0TMDF128HL (RSCAN0.TMDF128.UINT8[R_IO_HL])
+#define RSCAN0TMDF128HH (RSCAN0.TMDF128.UINT8[R_IO_HH])
+#define RSCAN0TMID29 (RSCAN0.TMID29.UINT32)
+#define RSCAN0TMID29L (RSCAN0.TMID29.UINT16[R_IO_L])
+#define RSCAN0TMID29LL (RSCAN0.TMID29.UINT8[R_IO_LL])
+#define RSCAN0TMID29LH (RSCAN0.TMID29.UINT8[R_IO_LH])
+#define RSCAN0TMID29H (RSCAN0.TMID29.UINT16[R_IO_H])
+#define RSCAN0TMID29HL (RSCAN0.TMID29.UINT8[R_IO_HL])
+#define RSCAN0TMID29HH (RSCAN0.TMID29.UINT8[R_IO_HH])
+#define RSCAN0TMPTR29 (RSCAN0.TMPTR29.UINT32)
+#define RSCAN0TMPTR29L (RSCAN0.TMPTR29.UINT16[R_IO_L])
+#define RSCAN0TMPTR29LL (RSCAN0.TMPTR29.UINT8[R_IO_LL])
+#define RSCAN0TMPTR29LH (RSCAN0.TMPTR29.UINT8[R_IO_LH])
+#define RSCAN0TMPTR29H (RSCAN0.TMPTR29.UINT16[R_IO_H])
+#define RSCAN0TMPTR29HL (RSCAN0.TMPTR29.UINT8[R_IO_HL])
+#define RSCAN0TMPTR29HH (RSCAN0.TMPTR29.UINT8[R_IO_HH])
+#define RSCAN0TMDF029 (RSCAN0.TMDF029.UINT32)
+#define RSCAN0TMDF029L (RSCAN0.TMDF029.UINT16[R_IO_L])
+#define RSCAN0TMDF029LL (RSCAN0.TMDF029.UINT8[R_IO_LL])
+#define RSCAN0TMDF029LH (RSCAN0.TMDF029.UINT8[R_IO_LH])
+#define RSCAN0TMDF029H (RSCAN0.TMDF029.UINT16[R_IO_H])
+#define RSCAN0TMDF029HL (RSCAN0.TMDF029.UINT8[R_IO_HL])
+#define RSCAN0TMDF029HH (RSCAN0.TMDF029.UINT8[R_IO_HH])
+#define RSCAN0TMDF129 (RSCAN0.TMDF129.UINT32)
+#define RSCAN0TMDF129L (RSCAN0.TMDF129.UINT16[R_IO_L])
+#define RSCAN0TMDF129LL (RSCAN0.TMDF129.UINT8[R_IO_LL])
+#define RSCAN0TMDF129LH (RSCAN0.TMDF129.UINT8[R_IO_LH])
+#define RSCAN0TMDF129H (RSCAN0.TMDF129.UINT16[R_IO_H])
+#define RSCAN0TMDF129HL (RSCAN0.TMDF129.UINT8[R_IO_HL])
+#define RSCAN0TMDF129HH (RSCAN0.TMDF129.UINT8[R_IO_HH])
+#define RSCAN0TMID30 (RSCAN0.TMID30.UINT32)
+#define RSCAN0TMID30L (RSCAN0.TMID30.UINT16[R_IO_L])
+#define RSCAN0TMID30LL (RSCAN0.TMID30.UINT8[R_IO_LL])
+#define RSCAN0TMID30LH (RSCAN0.TMID30.UINT8[R_IO_LH])
+#define RSCAN0TMID30H (RSCAN0.TMID30.UINT16[R_IO_H])
+#define RSCAN0TMID30HL (RSCAN0.TMID30.UINT8[R_IO_HL])
+#define RSCAN0TMID30HH (RSCAN0.TMID30.UINT8[R_IO_HH])
+#define RSCAN0TMPTR30 (RSCAN0.TMPTR30.UINT32)
+#define RSCAN0TMPTR30L (RSCAN0.TMPTR30.UINT16[R_IO_L])
+#define RSCAN0TMPTR30LL (RSCAN0.TMPTR30.UINT8[R_IO_LL])
+#define RSCAN0TMPTR30LH (RSCAN0.TMPTR30.UINT8[R_IO_LH])
+#define RSCAN0TMPTR30H (RSCAN0.TMPTR30.UINT16[R_IO_H])
+#define RSCAN0TMPTR30HL (RSCAN0.TMPTR30.UINT8[R_IO_HL])
+#define RSCAN0TMPTR30HH (RSCAN0.TMPTR30.UINT8[R_IO_HH])
+#define RSCAN0TMDF030 (RSCAN0.TMDF030.UINT32)
+#define RSCAN0TMDF030L (RSCAN0.TMDF030.UINT16[R_IO_L])
+#define RSCAN0TMDF030LL (RSCAN0.TMDF030.UINT8[R_IO_LL])
+#define RSCAN0TMDF030LH (RSCAN0.TMDF030.UINT8[R_IO_LH])
+#define RSCAN0TMDF030H (RSCAN0.TMDF030.UINT16[R_IO_H])
+#define RSCAN0TMDF030HL (RSCAN0.TMDF030.UINT8[R_IO_HL])
+#define RSCAN0TMDF030HH (RSCAN0.TMDF030.UINT8[R_IO_HH])
+#define RSCAN0TMDF130 (RSCAN0.TMDF130.UINT32)
+#define RSCAN0TMDF130L (RSCAN0.TMDF130.UINT16[R_IO_L])
+#define RSCAN0TMDF130LL (RSCAN0.TMDF130.UINT8[R_IO_LL])
+#define RSCAN0TMDF130LH (RSCAN0.TMDF130.UINT8[R_IO_LH])
+#define RSCAN0TMDF130H (RSCAN0.TMDF130.UINT16[R_IO_H])
+#define RSCAN0TMDF130HL (RSCAN0.TMDF130.UINT8[R_IO_HL])
+#define RSCAN0TMDF130HH (RSCAN0.TMDF130.UINT8[R_IO_HH])
+#define RSCAN0TMID31 (RSCAN0.TMID31.UINT32)
+#define RSCAN0TMID31L (RSCAN0.TMID31.UINT16[R_IO_L])
+#define RSCAN0TMID31LL (RSCAN0.TMID31.UINT8[R_IO_LL])
+#define RSCAN0TMID31LH (RSCAN0.TMID31.UINT8[R_IO_LH])
+#define RSCAN0TMID31H (RSCAN0.TMID31.UINT16[R_IO_H])
+#define RSCAN0TMID31HL (RSCAN0.TMID31.UINT8[R_IO_HL])
+#define RSCAN0TMID31HH (RSCAN0.TMID31.UINT8[R_IO_HH])
+#define RSCAN0TMPTR31 (RSCAN0.TMPTR31.UINT32)
+#define RSCAN0TMPTR31L (RSCAN0.TMPTR31.UINT16[R_IO_L])
+#define RSCAN0TMPTR31LL (RSCAN0.TMPTR31.UINT8[R_IO_LL])
+#define RSCAN0TMPTR31LH (RSCAN0.TMPTR31.UINT8[R_IO_LH])
+#define RSCAN0TMPTR31H (RSCAN0.TMPTR31.UINT16[R_IO_H])
+#define RSCAN0TMPTR31HL (RSCAN0.TMPTR31.UINT8[R_IO_HL])
+#define RSCAN0TMPTR31HH (RSCAN0.TMPTR31.UINT8[R_IO_HH])
+#define RSCAN0TMDF031 (RSCAN0.TMDF031.UINT32)
+#define RSCAN0TMDF031L (RSCAN0.TMDF031.UINT16[R_IO_L])
+#define RSCAN0TMDF031LL (RSCAN0.TMDF031.UINT8[R_IO_LL])
+#define RSCAN0TMDF031LH (RSCAN0.TMDF031.UINT8[R_IO_LH])
+#define RSCAN0TMDF031H (RSCAN0.TMDF031.UINT16[R_IO_H])
+#define RSCAN0TMDF031HL (RSCAN0.TMDF031.UINT8[R_IO_HL])
+#define RSCAN0TMDF031HH (RSCAN0.TMDF031.UINT8[R_IO_HH])
+#define RSCAN0TMDF131 (RSCAN0.TMDF131.UINT32)
+#define RSCAN0TMDF131L (RSCAN0.TMDF131.UINT16[R_IO_L])
+#define RSCAN0TMDF131LL (RSCAN0.TMDF131.UINT8[R_IO_LL])
+#define RSCAN0TMDF131LH (RSCAN0.TMDF131.UINT8[R_IO_LH])
+#define RSCAN0TMDF131H (RSCAN0.TMDF131.UINT16[R_IO_H])
+#define RSCAN0TMDF131HL (RSCAN0.TMDF131.UINT8[R_IO_HL])
+#define RSCAN0TMDF131HH (RSCAN0.TMDF131.UINT8[R_IO_HH])
+#define RSCAN0TMID32 (RSCAN0.TMID32.UINT32)
+#define RSCAN0TMID32L (RSCAN0.TMID32.UINT16[R_IO_L])
+#define RSCAN0TMID32LL (RSCAN0.TMID32.UINT8[R_IO_LL])
+#define RSCAN0TMID32LH (RSCAN0.TMID32.UINT8[R_IO_LH])
+#define RSCAN0TMID32H (RSCAN0.TMID32.UINT16[R_IO_H])
+#define RSCAN0TMID32HL (RSCAN0.TMID32.UINT8[R_IO_HL])
+#define RSCAN0TMID32HH (RSCAN0.TMID32.UINT8[R_IO_HH])
+#define RSCAN0TMPTR32 (RSCAN0.TMPTR32.UINT32)
+#define RSCAN0TMPTR32L (RSCAN0.TMPTR32.UINT16[R_IO_L])
+#define RSCAN0TMPTR32LL (RSCAN0.TMPTR32.UINT8[R_IO_LL])
+#define RSCAN0TMPTR32LH (RSCAN0.TMPTR32.UINT8[R_IO_LH])
+#define RSCAN0TMPTR32H (RSCAN0.TMPTR32.UINT16[R_IO_H])
+#define RSCAN0TMPTR32HL (RSCAN0.TMPTR32.UINT8[R_IO_HL])
+#define RSCAN0TMPTR32HH (RSCAN0.TMPTR32.UINT8[R_IO_HH])
+#define RSCAN0TMDF032 (RSCAN0.TMDF032.UINT32)
+#define RSCAN0TMDF032L (RSCAN0.TMDF032.UINT16[R_IO_L])
+#define RSCAN0TMDF032LL (RSCAN0.TMDF032.UINT8[R_IO_LL])
+#define RSCAN0TMDF032LH (RSCAN0.TMDF032.UINT8[R_IO_LH])
+#define RSCAN0TMDF032H (RSCAN0.TMDF032.UINT16[R_IO_H])
+#define RSCAN0TMDF032HL (RSCAN0.TMDF032.UINT8[R_IO_HL])
+#define RSCAN0TMDF032HH (RSCAN0.TMDF032.UINT8[R_IO_HH])
+#define RSCAN0TMDF132 (RSCAN0.TMDF132.UINT32)
+#define RSCAN0TMDF132L (RSCAN0.TMDF132.UINT16[R_IO_L])
+#define RSCAN0TMDF132LL (RSCAN0.TMDF132.UINT8[R_IO_LL])
+#define RSCAN0TMDF132LH (RSCAN0.TMDF132.UINT8[R_IO_LH])
+#define RSCAN0TMDF132H (RSCAN0.TMDF132.UINT16[R_IO_H])
+#define RSCAN0TMDF132HL (RSCAN0.TMDF132.UINT8[R_IO_HL])
+#define RSCAN0TMDF132HH (RSCAN0.TMDF132.UINT8[R_IO_HH])
+#define RSCAN0TMID33 (RSCAN0.TMID33.UINT32)
+#define RSCAN0TMID33L (RSCAN0.TMID33.UINT16[R_IO_L])
+#define RSCAN0TMID33LL (RSCAN0.TMID33.UINT8[R_IO_LL])
+#define RSCAN0TMID33LH (RSCAN0.TMID33.UINT8[R_IO_LH])
+#define RSCAN0TMID33H (RSCAN0.TMID33.UINT16[R_IO_H])
+#define RSCAN0TMID33HL (RSCAN0.TMID33.UINT8[R_IO_HL])
+#define RSCAN0TMID33HH (RSCAN0.TMID33.UINT8[R_IO_HH])
+#define RSCAN0TMPTR33 (RSCAN0.TMPTR33.UINT32)
+#define RSCAN0TMPTR33L (RSCAN0.TMPTR33.UINT16[R_IO_L])
+#define RSCAN0TMPTR33LL (RSCAN0.TMPTR33.UINT8[R_IO_LL])
+#define RSCAN0TMPTR33LH (RSCAN0.TMPTR33.UINT8[R_IO_LH])
+#define RSCAN0TMPTR33H (RSCAN0.TMPTR33.UINT16[R_IO_H])
+#define RSCAN0TMPTR33HL (RSCAN0.TMPTR33.UINT8[R_IO_HL])
+#define RSCAN0TMPTR33HH (RSCAN0.TMPTR33.UINT8[R_IO_HH])
+#define RSCAN0TMDF033 (RSCAN0.TMDF033.UINT32)
+#define RSCAN0TMDF033L (RSCAN0.TMDF033.UINT16[R_IO_L])
+#define RSCAN0TMDF033LL (RSCAN0.TMDF033.UINT8[R_IO_LL])
+#define RSCAN0TMDF033LH (RSCAN0.TMDF033.UINT8[R_IO_LH])
+#define RSCAN0TMDF033H (RSCAN0.TMDF033.UINT16[R_IO_H])
+#define RSCAN0TMDF033HL (RSCAN0.TMDF033.UINT8[R_IO_HL])
+#define RSCAN0TMDF033HH (RSCAN0.TMDF033.UINT8[R_IO_HH])
+#define RSCAN0TMDF133 (RSCAN0.TMDF133.UINT32)
+#define RSCAN0TMDF133L (RSCAN0.TMDF133.UINT16[R_IO_L])
+#define RSCAN0TMDF133LL (RSCAN0.TMDF133.UINT8[R_IO_LL])
+#define RSCAN0TMDF133LH (RSCAN0.TMDF133.UINT8[R_IO_LH])
+#define RSCAN0TMDF133H (RSCAN0.TMDF133.UINT16[R_IO_H])
+#define RSCAN0TMDF133HL (RSCAN0.TMDF133.UINT8[R_IO_HL])
+#define RSCAN0TMDF133HH (RSCAN0.TMDF133.UINT8[R_IO_HH])
+#define RSCAN0TMID34 (RSCAN0.TMID34.UINT32)
+#define RSCAN0TMID34L (RSCAN0.TMID34.UINT16[R_IO_L])
+#define RSCAN0TMID34LL (RSCAN0.TMID34.UINT8[R_IO_LL])
+#define RSCAN0TMID34LH (RSCAN0.TMID34.UINT8[R_IO_LH])
+#define RSCAN0TMID34H (RSCAN0.TMID34.UINT16[R_IO_H])
+#define RSCAN0TMID34HL (RSCAN0.TMID34.UINT8[R_IO_HL])
+#define RSCAN0TMID34HH (RSCAN0.TMID34.UINT8[R_IO_HH])
+#define RSCAN0TMPTR34 (RSCAN0.TMPTR34.UINT32)
+#define RSCAN0TMPTR34L (RSCAN0.TMPTR34.UINT16[R_IO_L])
+#define RSCAN0TMPTR34LL (RSCAN0.TMPTR34.UINT8[R_IO_LL])
+#define RSCAN0TMPTR34LH (RSCAN0.TMPTR34.UINT8[R_IO_LH])
+#define RSCAN0TMPTR34H (RSCAN0.TMPTR34.UINT16[R_IO_H])
+#define RSCAN0TMPTR34HL (RSCAN0.TMPTR34.UINT8[R_IO_HL])
+#define RSCAN0TMPTR34HH (RSCAN0.TMPTR34.UINT8[R_IO_HH])
+#define RSCAN0TMDF034 (RSCAN0.TMDF034.UINT32)
+#define RSCAN0TMDF034L (RSCAN0.TMDF034.UINT16[R_IO_L])
+#define RSCAN0TMDF034LL (RSCAN0.TMDF034.UINT8[R_IO_LL])
+#define RSCAN0TMDF034LH (RSCAN0.TMDF034.UINT8[R_IO_LH])
+#define RSCAN0TMDF034H (RSCAN0.TMDF034.UINT16[R_IO_H])
+#define RSCAN0TMDF034HL (RSCAN0.TMDF034.UINT8[R_IO_HL])
+#define RSCAN0TMDF034HH (RSCAN0.TMDF034.UINT8[R_IO_HH])
+#define RSCAN0TMDF134 (RSCAN0.TMDF134.UINT32)
+#define RSCAN0TMDF134L (RSCAN0.TMDF134.UINT16[R_IO_L])
+#define RSCAN0TMDF134LL (RSCAN0.TMDF134.UINT8[R_IO_LL])
+#define RSCAN0TMDF134LH (RSCAN0.TMDF134.UINT8[R_IO_LH])
+#define RSCAN0TMDF134H (RSCAN0.TMDF134.UINT16[R_IO_H])
+#define RSCAN0TMDF134HL (RSCAN0.TMDF134.UINT8[R_IO_HL])
+#define RSCAN0TMDF134HH (RSCAN0.TMDF134.UINT8[R_IO_HH])
+#define RSCAN0TMID35 (RSCAN0.TMID35.UINT32)
+#define RSCAN0TMID35L (RSCAN0.TMID35.UINT16[R_IO_L])
+#define RSCAN0TMID35LL (RSCAN0.TMID35.UINT8[R_IO_LL])
+#define RSCAN0TMID35LH (RSCAN0.TMID35.UINT8[R_IO_LH])
+#define RSCAN0TMID35H (RSCAN0.TMID35.UINT16[R_IO_H])
+#define RSCAN0TMID35HL (RSCAN0.TMID35.UINT8[R_IO_HL])
+#define RSCAN0TMID35HH (RSCAN0.TMID35.UINT8[R_IO_HH])
+#define RSCAN0TMPTR35 (RSCAN0.TMPTR35.UINT32)
+#define RSCAN0TMPTR35L (RSCAN0.TMPTR35.UINT16[R_IO_L])
+#define RSCAN0TMPTR35LL (RSCAN0.TMPTR35.UINT8[R_IO_LL])
+#define RSCAN0TMPTR35LH (RSCAN0.TMPTR35.UINT8[R_IO_LH])
+#define RSCAN0TMPTR35H (RSCAN0.TMPTR35.UINT16[R_IO_H])
+#define RSCAN0TMPTR35HL (RSCAN0.TMPTR35.UINT8[R_IO_HL])
+#define RSCAN0TMPTR35HH (RSCAN0.TMPTR35.UINT8[R_IO_HH])
+#define RSCAN0TMDF035 (RSCAN0.TMDF035.UINT32)
+#define RSCAN0TMDF035L (RSCAN0.TMDF035.UINT16[R_IO_L])
+#define RSCAN0TMDF035LL (RSCAN0.TMDF035.UINT8[R_IO_LL])
+#define RSCAN0TMDF035LH (RSCAN0.TMDF035.UINT8[R_IO_LH])
+#define RSCAN0TMDF035H (RSCAN0.TMDF035.UINT16[R_IO_H])
+#define RSCAN0TMDF035HL (RSCAN0.TMDF035.UINT8[R_IO_HL])
+#define RSCAN0TMDF035HH (RSCAN0.TMDF035.UINT8[R_IO_HH])
+#define RSCAN0TMDF135 (RSCAN0.TMDF135.UINT32)
+#define RSCAN0TMDF135L (RSCAN0.TMDF135.UINT16[R_IO_L])
+#define RSCAN0TMDF135LL (RSCAN0.TMDF135.UINT8[R_IO_LL])
+#define RSCAN0TMDF135LH (RSCAN0.TMDF135.UINT8[R_IO_LH])
+#define RSCAN0TMDF135H (RSCAN0.TMDF135.UINT16[R_IO_H])
+#define RSCAN0TMDF135HL (RSCAN0.TMDF135.UINT8[R_IO_HL])
+#define RSCAN0TMDF135HH (RSCAN0.TMDF135.UINT8[R_IO_HH])
+#define RSCAN0TMID36 (RSCAN0.TMID36.UINT32)
+#define RSCAN0TMID36L (RSCAN0.TMID36.UINT16[R_IO_L])
+#define RSCAN0TMID36LL (RSCAN0.TMID36.UINT8[R_IO_LL])
+#define RSCAN0TMID36LH (RSCAN0.TMID36.UINT8[R_IO_LH])
+#define RSCAN0TMID36H (RSCAN0.TMID36.UINT16[R_IO_H])
+#define RSCAN0TMID36HL (RSCAN0.TMID36.UINT8[R_IO_HL])
+#define RSCAN0TMID36HH (RSCAN0.TMID36.UINT8[R_IO_HH])
+#define RSCAN0TMPTR36 (RSCAN0.TMPTR36.UINT32)
+#define RSCAN0TMPTR36L (RSCAN0.TMPTR36.UINT16[R_IO_L])
+#define RSCAN0TMPTR36LL (RSCAN0.TMPTR36.UINT8[R_IO_LL])
+#define RSCAN0TMPTR36LH (RSCAN0.TMPTR36.UINT8[R_IO_LH])
+#define RSCAN0TMPTR36H (RSCAN0.TMPTR36.UINT16[R_IO_H])
+#define RSCAN0TMPTR36HL (RSCAN0.TMPTR36.UINT8[R_IO_HL])
+#define RSCAN0TMPTR36HH (RSCAN0.TMPTR36.UINT8[R_IO_HH])
+#define RSCAN0TMDF036 (RSCAN0.TMDF036.UINT32)
+#define RSCAN0TMDF036L (RSCAN0.TMDF036.UINT16[R_IO_L])
+#define RSCAN0TMDF036LL (RSCAN0.TMDF036.UINT8[R_IO_LL])
+#define RSCAN0TMDF036LH (RSCAN0.TMDF036.UINT8[R_IO_LH])
+#define RSCAN0TMDF036H (RSCAN0.TMDF036.UINT16[R_IO_H])
+#define RSCAN0TMDF036HL (RSCAN0.TMDF036.UINT8[R_IO_HL])
+#define RSCAN0TMDF036HH (RSCAN0.TMDF036.UINT8[R_IO_HH])
+#define RSCAN0TMDF136 (RSCAN0.TMDF136.UINT32)
+#define RSCAN0TMDF136L (RSCAN0.TMDF136.UINT16[R_IO_L])
+#define RSCAN0TMDF136LL (RSCAN0.TMDF136.UINT8[R_IO_LL])
+#define RSCAN0TMDF136LH (RSCAN0.TMDF136.UINT8[R_IO_LH])
+#define RSCAN0TMDF136H (RSCAN0.TMDF136.UINT16[R_IO_H])
+#define RSCAN0TMDF136HL (RSCAN0.TMDF136.UINT8[R_IO_HL])
+#define RSCAN0TMDF136HH (RSCAN0.TMDF136.UINT8[R_IO_HH])
+#define RSCAN0TMID37 (RSCAN0.TMID37.UINT32)
+#define RSCAN0TMID37L (RSCAN0.TMID37.UINT16[R_IO_L])
+#define RSCAN0TMID37LL (RSCAN0.TMID37.UINT8[R_IO_LL])
+#define RSCAN0TMID37LH (RSCAN0.TMID37.UINT8[R_IO_LH])
+#define RSCAN0TMID37H (RSCAN0.TMID37.UINT16[R_IO_H])
+#define RSCAN0TMID37HL (RSCAN0.TMID37.UINT8[R_IO_HL])
+#define RSCAN0TMID37HH (RSCAN0.TMID37.UINT8[R_IO_HH])
+#define RSCAN0TMPTR37 (RSCAN0.TMPTR37.UINT32)
+#define RSCAN0TMPTR37L (RSCAN0.TMPTR37.UINT16[R_IO_L])
+#define RSCAN0TMPTR37LL (RSCAN0.TMPTR37.UINT8[R_IO_LL])
+#define RSCAN0TMPTR37LH (RSCAN0.TMPTR37.UINT8[R_IO_LH])
+#define RSCAN0TMPTR37H (RSCAN0.TMPTR37.UINT16[R_IO_H])
+#define RSCAN0TMPTR37HL (RSCAN0.TMPTR37.UINT8[R_IO_HL])
+#define RSCAN0TMPTR37HH (RSCAN0.TMPTR37.UINT8[R_IO_HH])
+#define RSCAN0TMDF037 (RSCAN0.TMDF037.UINT32)
+#define RSCAN0TMDF037L (RSCAN0.TMDF037.UINT16[R_IO_L])
+#define RSCAN0TMDF037LL (RSCAN0.TMDF037.UINT8[R_IO_LL])
+#define RSCAN0TMDF037LH (RSCAN0.TMDF037.UINT8[R_IO_LH])
+#define RSCAN0TMDF037H (RSCAN0.TMDF037.UINT16[R_IO_H])
+#define RSCAN0TMDF037HL (RSCAN0.TMDF037.UINT8[R_IO_HL])
+#define RSCAN0TMDF037HH (RSCAN0.TMDF037.UINT8[R_IO_HH])
+#define RSCAN0TMDF137 (RSCAN0.TMDF137.UINT32)
+#define RSCAN0TMDF137L (RSCAN0.TMDF137.UINT16[R_IO_L])
+#define RSCAN0TMDF137LL (RSCAN0.TMDF137.UINT8[R_IO_LL])
+#define RSCAN0TMDF137LH (RSCAN0.TMDF137.UINT8[R_IO_LH])
+#define RSCAN0TMDF137H (RSCAN0.TMDF137.UINT16[R_IO_H])
+#define RSCAN0TMDF137HL (RSCAN0.TMDF137.UINT8[R_IO_HL])
+#define RSCAN0TMDF137HH (RSCAN0.TMDF137.UINT8[R_IO_HH])
+#define RSCAN0TMID38 (RSCAN0.TMID38.UINT32)
+#define RSCAN0TMID38L (RSCAN0.TMID38.UINT16[R_IO_L])
+#define RSCAN0TMID38LL (RSCAN0.TMID38.UINT8[R_IO_LL])
+#define RSCAN0TMID38LH (RSCAN0.TMID38.UINT8[R_IO_LH])
+#define RSCAN0TMID38H (RSCAN0.TMID38.UINT16[R_IO_H])
+#define RSCAN0TMID38HL (RSCAN0.TMID38.UINT8[R_IO_HL])
+#define RSCAN0TMID38HH (RSCAN0.TMID38.UINT8[R_IO_HH])
+#define RSCAN0TMPTR38 (RSCAN0.TMPTR38.UINT32)
+#define RSCAN0TMPTR38L (RSCAN0.TMPTR38.UINT16[R_IO_L])
+#define RSCAN0TMPTR38LL (RSCAN0.TMPTR38.UINT8[R_IO_LL])
+#define RSCAN0TMPTR38LH (RSCAN0.TMPTR38.UINT8[R_IO_LH])
+#define RSCAN0TMPTR38H (RSCAN0.TMPTR38.UINT16[R_IO_H])
+#define RSCAN0TMPTR38HL (RSCAN0.TMPTR38.UINT8[R_IO_HL])
+#define RSCAN0TMPTR38HH (RSCAN0.TMPTR38.UINT8[R_IO_HH])
+#define RSCAN0TMDF038 (RSCAN0.TMDF038.UINT32)
+#define RSCAN0TMDF038L (RSCAN0.TMDF038.UINT16[R_IO_L])
+#define RSCAN0TMDF038LL (RSCAN0.TMDF038.UINT8[R_IO_LL])
+#define RSCAN0TMDF038LH (RSCAN0.TMDF038.UINT8[R_IO_LH])
+#define RSCAN0TMDF038H (RSCAN0.TMDF038.UINT16[R_IO_H])
+#define RSCAN0TMDF038HL (RSCAN0.TMDF038.UINT8[R_IO_HL])
+#define RSCAN0TMDF038HH (RSCAN0.TMDF038.UINT8[R_IO_HH])
+#define RSCAN0TMDF138 (RSCAN0.TMDF138.UINT32)
+#define RSCAN0TMDF138L (RSCAN0.TMDF138.UINT16[R_IO_L])
+#define RSCAN0TMDF138LL (RSCAN0.TMDF138.UINT8[R_IO_LL])
+#define RSCAN0TMDF138LH (RSCAN0.TMDF138.UINT8[R_IO_LH])
+#define RSCAN0TMDF138H (RSCAN0.TMDF138.UINT16[R_IO_H])
+#define RSCAN0TMDF138HL (RSCAN0.TMDF138.UINT8[R_IO_HL])
+#define RSCAN0TMDF138HH (RSCAN0.TMDF138.UINT8[R_IO_HH])
+#define RSCAN0TMID39 (RSCAN0.TMID39.UINT32)
+#define RSCAN0TMID39L (RSCAN0.TMID39.UINT16[R_IO_L])
+#define RSCAN0TMID39LL (RSCAN0.TMID39.UINT8[R_IO_LL])
+#define RSCAN0TMID39LH (RSCAN0.TMID39.UINT8[R_IO_LH])
+#define RSCAN0TMID39H (RSCAN0.TMID39.UINT16[R_IO_H])
+#define RSCAN0TMID39HL (RSCAN0.TMID39.UINT8[R_IO_HL])
+#define RSCAN0TMID39HH (RSCAN0.TMID39.UINT8[R_IO_HH])
+#define RSCAN0TMPTR39 (RSCAN0.TMPTR39.UINT32)
+#define RSCAN0TMPTR39L (RSCAN0.TMPTR39.UINT16[R_IO_L])
+#define RSCAN0TMPTR39LL (RSCAN0.TMPTR39.UINT8[R_IO_LL])
+#define RSCAN0TMPTR39LH (RSCAN0.TMPTR39.UINT8[R_IO_LH])
+#define RSCAN0TMPTR39H (RSCAN0.TMPTR39.UINT16[R_IO_H])
+#define RSCAN0TMPTR39HL (RSCAN0.TMPTR39.UINT8[R_IO_HL])
+#define RSCAN0TMPTR39HH (RSCAN0.TMPTR39.UINT8[R_IO_HH])
+#define RSCAN0TMDF039 (RSCAN0.TMDF039.UINT32)
+#define RSCAN0TMDF039L (RSCAN0.TMDF039.UINT16[R_IO_L])
+#define RSCAN0TMDF039LL (RSCAN0.TMDF039.UINT8[R_IO_LL])
+#define RSCAN0TMDF039LH (RSCAN0.TMDF039.UINT8[R_IO_LH])
+#define RSCAN0TMDF039H (RSCAN0.TMDF039.UINT16[R_IO_H])
+#define RSCAN0TMDF039HL (RSCAN0.TMDF039.UINT8[R_IO_HL])
+#define RSCAN0TMDF039HH (RSCAN0.TMDF039.UINT8[R_IO_HH])
+#define RSCAN0TMDF139 (RSCAN0.TMDF139.UINT32)
+#define RSCAN0TMDF139L (RSCAN0.TMDF139.UINT16[R_IO_L])
+#define RSCAN0TMDF139LL (RSCAN0.TMDF139.UINT8[R_IO_LL])
+#define RSCAN0TMDF139LH (RSCAN0.TMDF139.UINT8[R_IO_LH])
+#define RSCAN0TMDF139H (RSCAN0.TMDF139.UINT16[R_IO_H])
+#define RSCAN0TMDF139HL (RSCAN0.TMDF139.UINT8[R_IO_HL])
+#define RSCAN0TMDF139HH (RSCAN0.TMDF139.UINT8[R_IO_HH])
+#define RSCAN0TMID40 (RSCAN0.TMID40.UINT32)
+#define RSCAN0TMID40L (RSCAN0.TMID40.UINT16[R_IO_L])
+#define RSCAN0TMID40LL (RSCAN0.TMID40.UINT8[R_IO_LL])
+#define RSCAN0TMID40LH (RSCAN0.TMID40.UINT8[R_IO_LH])
+#define RSCAN0TMID40H (RSCAN0.TMID40.UINT16[R_IO_H])
+#define RSCAN0TMID40HL (RSCAN0.TMID40.UINT8[R_IO_HL])
+#define RSCAN0TMID40HH (RSCAN0.TMID40.UINT8[R_IO_HH])
+#define RSCAN0TMPTR40 (RSCAN0.TMPTR40.UINT32)
+#define RSCAN0TMPTR40L (RSCAN0.TMPTR40.UINT16[R_IO_L])
+#define RSCAN0TMPTR40LL (RSCAN0.TMPTR40.UINT8[R_IO_LL])
+#define RSCAN0TMPTR40LH (RSCAN0.TMPTR40.UINT8[R_IO_LH])
+#define RSCAN0TMPTR40H (RSCAN0.TMPTR40.UINT16[R_IO_H])
+#define RSCAN0TMPTR40HL (RSCAN0.TMPTR40.UINT8[R_IO_HL])
+#define RSCAN0TMPTR40HH (RSCAN0.TMPTR40.UINT8[R_IO_HH])
+#define RSCAN0TMDF040 (RSCAN0.TMDF040.UINT32)
+#define RSCAN0TMDF040L (RSCAN0.TMDF040.UINT16[R_IO_L])
+#define RSCAN0TMDF040LL (RSCAN0.TMDF040.UINT8[R_IO_LL])
+#define RSCAN0TMDF040LH (RSCAN0.TMDF040.UINT8[R_IO_LH])
+#define RSCAN0TMDF040H (RSCAN0.TMDF040.UINT16[R_IO_H])
+#define RSCAN0TMDF040HL (RSCAN0.TMDF040.UINT8[R_IO_HL])
+#define RSCAN0TMDF040HH (RSCAN0.TMDF040.UINT8[R_IO_HH])
+#define RSCAN0TMDF140 (RSCAN0.TMDF140.UINT32)
+#define RSCAN0TMDF140L (RSCAN0.TMDF140.UINT16[R_IO_L])
+#define RSCAN0TMDF140LL (RSCAN0.TMDF140.UINT8[R_IO_LL])
+#define RSCAN0TMDF140LH (RSCAN0.TMDF140.UINT8[R_IO_LH])
+#define RSCAN0TMDF140H (RSCAN0.TMDF140.UINT16[R_IO_H])
+#define RSCAN0TMDF140HL (RSCAN0.TMDF140.UINT8[R_IO_HL])
+#define RSCAN0TMDF140HH (RSCAN0.TMDF140.UINT8[R_IO_HH])
+#define RSCAN0TMID41 (RSCAN0.TMID41.UINT32)
+#define RSCAN0TMID41L (RSCAN0.TMID41.UINT16[R_IO_L])
+#define RSCAN0TMID41LL (RSCAN0.TMID41.UINT8[R_IO_LL])
+#define RSCAN0TMID41LH (RSCAN0.TMID41.UINT8[R_IO_LH])
+#define RSCAN0TMID41H (RSCAN0.TMID41.UINT16[R_IO_H])
+#define RSCAN0TMID41HL (RSCAN0.TMID41.UINT8[R_IO_HL])
+#define RSCAN0TMID41HH (RSCAN0.TMID41.UINT8[R_IO_HH])
+#define RSCAN0TMPTR41 (RSCAN0.TMPTR41.UINT32)
+#define RSCAN0TMPTR41L (RSCAN0.TMPTR41.UINT16[R_IO_L])
+#define RSCAN0TMPTR41LL (RSCAN0.TMPTR41.UINT8[R_IO_LL])
+#define RSCAN0TMPTR41LH (RSCAN0.TMPTR41.UINT8[R_IO_LH])
+#define RSCAN0TMPTR41H (RSCAN0.TMPTR41.UINT16[R_IO_H])
+#define RSCAN0TMPTR41HL (RSCAN0.TMPTR41.UINT8[R_IO_HL])
+#define RSCAN0TMPTR41HH (RSCAN0.TMPTR41.UINT8[R_IO_HH])
+#define RSCAN0TMDF041 (RSCAN0.TMDF041.UINT32)
+#define RSCAN0TMDF041L (RSCAN0.TMDF041.UINT16[R_IO_L])
+#define RSCAN0TMDF041LL (RSCAN0.TMDF041.UINT8[R_IO_LL])
+#define RSCAN0TMDF041LH (RSCAN0.TMDF041.UINT8[R_IO_LH])
+#define RSCAN0TMDF041H (RSCAN0.TMDF041.UINT16[R_IO_H])
+#define RSCAN0TMDF041HL (RSCAN0.TMDF041.UINT8[R_IO_HL])
+#define RSCAN0TMDF041HH (RSCAN0.TMDF041.UINT8[R_IO_HH])
+#define RSCAN0TMDF141 (RSCAN0.TMDF141.UINT32)
+#define RSCAN0TMDF141L (RSCAN0.TMDF141.UINT16[R_IO_L])
+#define RSCAN0TMDF141LL (RSCAN0.TMDF141.UINT8[R_IO_LL])
+#define RSCAN0TMDF141LH (RSCAN0.TMDF141.UINT8[R_IO_LH])
+#define RSCAN0TMDF141H (RSCAN0.TMDF141.UINT16[R_IO_H])
+#define RSCAN0TMDF141HL (RSCAN0.TMDF141.UINT8[R_IO_HL])
+#define RSCAN0TMDF141HH (RSCAN0.TMDF141.UINT8[R_IO_HH])
+#define RSCAN0TMID42 (RSCAN0.TMID42.UINT32)
+#define RSCAN0TMID42L (RSCAN0.TMID42.UINT16[R_IO_L])
+#define RSCAN0TMID42LL (RSCAN0.TMID42.UINT8[R_IO_LL])
+#define RSCAN0TMID42LH (RSCAN0.TMID42.UINT8[R_IO_LH])
+#define RSCAN0TMID42H (RSCAN0.TMID42.UINT16[R_IO_H])
+#define RSCAN0TMID42HL (RSCAN0.TMID42.UINT8[R_IO_HL])
+#define RSCAN0TMID42HH (RSCAN0.TMID42.UINT8[R_IO_HH])
+#define RSCAN0TMPTR42 (RSCAN0.TMPTR42.UINT32)
+#define RSCAN0TMPTR42L (RSCAN0.TMPTR42.UINT16[R_IO_L])
+#define RSCAN0TMPTR42LL (RSCAN0.TMPTR42.UINT8[R_IO_LL])
+#define RSCAN0TMPTR42LH (RSCAN0.TMPTR42.UINT8[R_IO_LH])
+#define RSCAN0TMPTR42H (RSCAN0.TMPTR42.UINT16[R_IO_H])
+#define RSCAN0TMPTR42HL (RSCAN0.TMPTR42.UINT8[R_IO_HL])
+#define RSCAN0TMPTR42HH (RSCAN0.TMPTR42.UINT8[R_IO_HH])
+#define RSCAN0TMDF042 (RSCAN0.TMDF042.UINT32)
+#define RSCAN0TMDF042L (RSCAN0.TMDF042.UINT16[R_IO_L])
+#define RSCAN0TMDF042LL (RSCAN0.TMDF042.UINT8[R_IO_LL])
+#define RSCAN0TMDF042LH (RSCAN0.TMDF042.UINT8[R_IO_LH])
+#define RSCAN0TMDF042H (RSCAN0.TMDF042.UINT16[R_IO_H])
+#define RSCAN0TMDF042HL (RSCAN0.TMDF042.UINT8[R_IO_HL])
+#define RSCAN0TMDF042HH (RSCAN0.TMDF042.UINT8[R_IO_HH])
+#define RSCAN0TMDF142 (RSCAN0.TMDF142.UINT32)
+#define RSCAN0TMDF142L (RSCAN0.TMDF142.UINT16[R_IO_L])
+#define RSCAN0TMDF142LL (RSCAN0.TMDF142.UINT8[R_IO_LL])
+#define RSCAN0TMDF142LH (RSCAN0.TMDF142.UINT8[R_IO_LH])
+#define RSCAN0TMDF142H (RSCAN0.TMDF142.UINT16[R_IO_H])
+#define RSCAN0TMDF142HL (RSCAN0.TMDF142.UINT8[R_IO_HL])
+#define RSCAN0TMDF142HH (RSCAN0.TMDF142.UINT8[R_IO_HH])
+#define RSCAN0TMID43 (RSCAN0.TMID43.UINT32)
+#define RSCAN0TMID43L (RSCAN0.TMID43.UINT16[R_IO_L])
+#define RSCAN0TMID43LL (RSCAN0.TMID43.UINT8[R_IO_LL])
+#define RSCAN0TMID43LH (RSCAN0.TMID43.UINT8[R_IO_LH])
+#define RSCAN0TMID43H (RSCAN0.TMID43.UINT16[R_IO_H])
+#define RSCAN0TMID43HL (RSCAN0.TMID43.UINT8[R_IO_HL])
+#define RSCAN0TMID43HH (RSCAN0.TMID43.UINT8[R_IO_HH])
+#define RSCAN0TMPTR43 (RSCAN0.TMPTR43.UINT32)
+#define RSCAN0TMPTR43L (RSCAN0.TMPTR43.UINT16[R_IO_L])
+#define RSCAN0TMPTR43LL (RSCAN0.TMPTR43.UINT8[R_IO_LL])
+#define RSCAN0TMPTR43LH (RSCAN0.TMPTR43.UINT8[R_IO_LH])
+#define RSCAN0TMPTR43H (RSCAN0.TMPTR43.UINT16[R_IO_H])
+#define RSCAN0TMPTR43HL (RSCAN0.TMPTR43.UINT8[R_IO_HL])
+#define RSCAN0TMPTR43HH (RSCAN0.TMPTR43.UINT8[R_IO_HH])
+#define RSCAN0TMDF043 (RSCAN0.TMDF043.UINT32)
+#define RSCAN0TMDF043L (RSCAN0.TMDF043.UINT16[R_IO_L])
+#define RSCAN0TMDF043LL (RSCAN0.TMDF043.UINT8[R_IO_LL])
+#define RSCAN0TMDF043LH (RSCAN0.TMDF043.UINT8[R_IO_LH])
+#define RSCAN0TMDF043H (RSCAN0.TMDF043.UINT16[R_IO_H])
+#define RSCAN0TMDF043HL (RSCAN0.TMDF043.UINT8[R_IO_HL])
+#define RSCAN0TMDF043HH (RSCAN0.TMDF043.UINT8[R_IO_HH])
+#define RSCAN0TMDF143 (RSCAN0.TMDF143.UINT32)
+#define RSCAN0TMDF143L (RSCAN0.TMDF143.UINT16[R_IO_L])
+#define RSCAN0TMDF143LL (RSCAN0.TMDF143.UINT8[R_IO_LL])
+#define RSCAN0TMDF143LH (RSCAN0.TMDF143.UINT8[R_IO_LH])
+#define RSCAN0TMDF143H (RSCAN0.TMDF143.UINT16[R_IO_H])
+#define RSCAN0TMDF143HL (RSCAN0.TMDF143.UINT8[R_IO_HL])
+#define RSCAN0TMDF143HH (RSCAN0.TMDF143.UINT8[R_IO_HH])
+#define RSCAN0TMID44 (RSCAN0.TMID44.UINT32)
+#define RSCAN0TMID44L (RSCAN0.TMID44.UINT16[R_IO_L])
+#define RSCAN0TMID44LL (RSCAN0.TMID44.UINT8[R_IO_LL])
+#define RSCAN0TMID44LH (RSCAN0.TMID44.UINT8[R_IO_LH])
+#define RSCAN0TMID44H (RSCAN0.TMID44.UINT16[R_IO_H])
+#define RSCAN0TMID44HL (RSCAN0.TMID44.UINT8[R_IO_HL])
+#define RSCAN0TMID44HH (RSCAN0.TMID44.UINT8[R_IO_HH])
+#define RSCAN0TMPTR44 (RSCAN0.TMPTR44.UINT32)
+#define RSCAN0TMPTR44L (RSCAN0.TMPTR44.UINT16[R_IO_L])
+#define RSCAN0TMPTR44LL (RSCAN0.TMPTR44.UINT8[R_IO_LL])
+#define RSCAN0TMPTR44LH (RSCAN0.TMPTR44.UINT8[R_IO_LH])
+#define RSCAN0TMPTR44H (RSCAN0.TMPTR44.UINT16[R_IO_H])
+#define RSCAN0TMPTR44HL (RSCAN0.TMPTR44.UINT8[R_IO_HL])
+#define RSCAN0TMPTR44HH (RSCAN0.TMPTR44.UINT8[R_IO_HH])
+#define RSCAN0TMDF044 (RSCAN0.TMDF044.UINT32)
+#define RSCAN0TMDF044L (RSCAN0.TMDF044.UINT16[R_IO_L])
+#define RSCAN0TMDF044LL (RSCAN0.TMDF044.UINT8[R_IO_LL])
+#define RSCAN0TMDF044LH (RSCAN0.TMDF044.UINT8[R_IO_LH])
+#define RSCAN0TMDF044H (RSCAN0.TMDF044.UINT16[R_IO_H])
+#define RSCAN0TMDF044HL (RSCAN0.TMDF044.UINT8[R_IO_HL])
+#define RSCAN0TMDF044HH (RSCAN0.TMDF044.UINT8[R_IO_HH])
+#define RSCAN0TMDF144 (RSCAN0.TMDF144.UINT32)
+#define RSCAN0TMDF144L (RSCAN0.TMDF144.UINT16[R_IO_L])
+#define RSCAN0TMDF144LL (RSCAN0.TMDF144.UINT8[R_IO_LL])
+#define RSCAN0TMDF144LH (RSCAN0.TMDF144.UINT8[R_IO_LH])
+#define RSCAN0TMDF144H (RSCAN0.TMDF144.UINT16[R_IO_H])
+#define RSCAN0TMDF144HL (RSCAN0.TMDF144.UINT8[R_IO_HL])
+#define RSCAN0TMDF144HH (RSCAN0.TMDF144.UINT8[R_IO_HH])
+#define RSCAN0TMID45 (RSCAN0.TMID45.UINT32)
+#define RSCAN0TMID45L (RSCAN0.TMID45.UINT16[R_IO_L])
+#define RSCAN0TMID45LL (RSCAN0.TMID45.UINT8[R_IO_LL])
+#define RSCAN0TMID45LH (RSCAN0.TMID45.UINT8[R_IO_LH])
+#define RSCAN0TMID45H (RSCAN0.TMID45.UINT16[R_IO_H])
+#define RSCAN0TMID45HL (RSCAN0.TMID45.UINT8[R_IO_HL])
+#define RSCAN0TMID45HH (RSCAN0.TMID45.UINT8[R_IO_HH])
+#define RSCAN0TMPTR45 (RSCAN0.TMPTR45.UINT32)
+#define RSCAN0TMPTR45L (RSCAN0.TMPTR45.UINT16[R_IO_L])
+#define RSCAN0TMPTR45LL (RSCAN0.TMPTR45.UINT8[R_IO_LL])
+#define RSCAN0TMPTR45LH (RSCAN0.TMPTR45.UINT8[R_IO_LH])
+#define RSCAN0TMPTR45H (RSCAN0.TMPTR45.UINT16[R_IO_H])
+#define RSCAN0TMPTR45HL (RSCAN0.TMPTR45.UINT8[R_IO_HL])
+#define RSCAN0TMPTR45HH (RSCAN0.TMPTR45.UINT8[R_IO_HH])
+#define RSCAN0TMDF045 (RSCAN0.TMDF045.UINT32)
+#define RSCAN0TMDF045L (RSCAN0.TMDF045.UINT16[R_IO_L])
+#define RSCAN0TMDF045LL (RSCAN0.TMDF045.UINT8[R_IO_LL])
+#define RSCAN0TMDF045LH (RSCAN0.TMDF045.UINT8[R_IO_LH])
+#define RSCAN0TMDF045H (RSCAN0.TMDF045.UINT16[R_IO_H])
+#define RSCAN0TMDF045HL (RSCAN0.TMDF045.UINT8[R_IO_HL])
+#define RSCAN0TMDF045HH (RSCAN0.TMDF045.UINT8[R_IO_HH])
+#define RSCAN0TMDF145 (RSCAN0.TMDF145.UINT32)
+#define RSCAN0TMDF145L (RSCAN0.TMDF145.UINT16[R_IO_L])
+#define RSCAN0TMDF145LL (RSCAN0.TMDF145.UINT8[R_IO_LL])
+#define RSCAN0TMDF145LH (RSCAN0.TMDF145.UINT8[R_IO_LH])
+#define RSCAN0TMDF145H (RSCAN0.TMDF145.UINT16[R_IO_H])
+#define RSCAN0TMDF145HL (RSCAN0.TMDF145.UINT8[R_IO_HL])
+#define RSCAN0TMDF145HH (RSCAN0.TMDF145.UINT8[R_IO_HH])
+#define RSCAN0TMID46 (RSCAN0.TMID46.UINT32)
+#define RSCAN0TMID46L (RSCAN0.TMID46.UINT16[R_IO_L])
+#define RSCAN0TMID46LL (RSCAN0.TMID46.UINT8[R_IO_LL])
+#define RSCAN0TMID46LH (RSCAN0.TMID46.UINT8[R_IO_LH])
+#define RSCAN0TMID46H (RSCAN0.TMID46.UINT16[R_IO_H])
+#define RSCAN0TMID46HL (RSCAN0.TMID46.UINT8[R_IO_HL])
+#define RSCAN0TMID46HH (RSCAN0.TMID46.UINT8[R_IO_HH])
+#define RSCAN0TMPTR46 (RSCAN0.TMPTR46.UINT32)
+#define RSCAN0TMPTR46L (RSCAN0.TMPTR46.UINT16[R_IO_L])
+#define RSCAN0TMPTR46LL (RSCAN0.TMPTR46.UINT8[R_IO_LL])
+#define RSCAN0TMPTR46LH (RSCAN0.TMPTR46.UINT8[R_IO_LH])
+#define RSCAN0TMPTR46H (RSCAN0.TMPTR46.UINT16[R_IO_H])
+#define RSCAN0TMPTR46HL (RSCAN0.TMPTR46.UINT8[R_IO_HL])
+#define RSCAN0TMPTR46HH (RSCAN0.TMPTR46.UINT8[R_IO_HH])
+#define RSCAN0TMDF046 (RSCAN0.TMDF046.UINT32)
+#define RSCAN0TMDF046L (RSCAN0.TMDF046.UINT16[R_IO_L])
+#define RSCAN0TMDF046LL (RSCAN0.TMDF046.UINT8[R_IO_LL])
+#define RSCAN0TMDF046LH (RSCAN0.TMDF046.UINT8[R_IO_LH])
+#define RSCAN0TMDF046H (RSCAN0.TMDF046.UINT16[R_IO_H])
+#define RSCAN0TMDF046HL (RSCAN0.TMDF046.UINT8[R_IO_HL])
+#define RSCAN0TMDF046HH (RSCAN0.TMDF046.UINT8[R_IO_HH])
+#define RSCAN0TMDF146 (RSCAN0.TMDF146.UINT32)
+#define RSCAN0TMDF146L (RSCAN0.TMDF146.UINT16[R_IO_L])
+#define RSCAN0TMDF146LL (RSCAN0.TMDF146.UINT8[R_IO_LL])
+#define RSCAN0TMDF146LH (RSCAN0.TMDF146.UINT8[R_IO_LH])
+#define RSCAN0TMDF146H (RSCAN0.TMDF146.UINT16[R_IO_H])
+#define RSCAN0TMDF146HL (RSCAN0.TMDF146.UINT8[R_IO_HL])
+#define RSCAN0TMDF146HH (RSCAN0.TMDF146.UINT8[R_IO_HH])
+#define RSCAN0TMID47 (RSCAN0.TMID47.UINT32)
+#define RSCAN0TMID47L (RSCAN0.TMID47.UINT16[R_IO_L])
+#define RSCAN0TMID47LL (RSCAN0.TMID47.UINT8[R_IO_LL])
+#define RSCAN0TMID47LH (RSCAN0.TMID47.UINT8[R_IO_LH])
+#define RSCAN0TMID47H (RSCAN0.TMID47.UINT16[R_IO_H])
+#define RSCAN0TMID47HL (RSCAN0.TMID47.UINT8[R_IO_HL])
+#define RSCAN0TMID47HH (RSCAN0.TMID47.UINT8[R_IO_HH])
+#define RSCAN0TMPTR47 (RSCAN0.TMPTR47.UINT32)
+#define RSCAN0TMPTR47L (RSCAN0.TMPTR47.UINT16[R_IO_L])
+#define RSCAN0TMPTR47LL (RSCAN0.TMPTR47.UINT8[R_IO_LL])
+#define RSCAN0TMPTR47LH (RSCAN0.TMPTR47.UINT8[R_IO_LH])
+#define RSCAN0TMPTR47H (RSCAN0.TMPTR47.UINT16[R_IO_H])
+#define RSCAN0TMPTR47HL (RSCAN0.TMPTR47.UINT8[R_IO_HL])
+#define RSCAN0TMPTR47HH (RSCAN0.TMPTR47.UINT8[R_IO_HH])
+#define RSCAN0TMDF047 (RSCAN0.TMDF047.UINT32)
+#define RSCAN0TMDF047L (RSCAN0.TMDF047.UINT16[R_IO_L])
+#define RSCAN0TMDF047LL (RSCAN0.TMDF047.UINT8[R_IO_LL])
+#define RSCAN0TMDF047LH (RSCAN0.TMDF047.UINT8[R_IO_LH])
+#define RSCAN0TMDF047H (RSCAN0.TMDF047.UINT16[R_IO_H])
+#define RSCAN0TMDF047HL (RSCAN0.TMDF047.UINT8[R_IO_HL])
+#define RSCAN0TMDF047HH (RSCAN0.TMDF047.UINT8[R_IO_HH])
+#define RSCAN0TMDF147 (RSCAN0.TMDF147.UINT32)
+#define RSCAN0TMDF147L (RSCAN0.TMDF147.UINT16[R_IO_L])
+#define RSCAN0TMDF147LL (RSCAN0.TMDF147.UINT8[R_IO_LL])
+#define RSCAN0TMDF147LH (RSCAN0.TMDF147.UINT8[R_IO_LH])
+#define RSCAN0TMDF147H (RSCAN0.TMDF147.UINT16[R_IO_H])
+#define RSCAN0TMDF147HL (RSCAN0.TMDF147.UINT8[R_IO_HL])
+#define RSCAN0TMDF147HH (RSCAN0.TMDF147.UINT8[R_IO_HH])
+#define RSCAN0TMID48 (RSCAN0.TMID48.UINT32)
+#define RSCAN0TMID48L (RSCAN0.TMID48.UINT16[R_IO_L])
+#define RSCAN0TMID48LL (RSCAN0.TMID48.UINT8[R_IO_LL])
+#define RSCAN0TMID48LH (RSCAN0.TMID48.UINT8[R_IO_LH])
+#define RSCAN0TMID48H (RSCAN0.TMID48.UINT16[R_IO_H])
+#define RSCAN0TMID48HL (RSCAN0.TMID48.UINT8[R_IO_HL])
+#define RSCAN0TMID48HH (RSCAN0.TMID48.UINT8[R_IO_HH])
+#define RSCAN0TMPTR48 (RSCAN0.TMPTR48.UINT32)
+#define RSCAN0TMPTR48L (RSCAN0.TMPTR48.UINT16[R_IO_L])
+#define RSCAN0TMPTR48LL (RSCAN0.TMPTR48.UINT8[R_IO_LL])
+#define RSCAN0TMPTR48LH (RSCAN0.TMPTR48.UINT8[R_IO_LH])
+#define RSCAN0TMPTR48H (RSCAN0.TMPTR48.UINT16[R_IO_H])
+#define RSCAN0TMPTR48HL (RSCAN0.TMPTR48.UINT8[R_IO_HL])
+#define RSCAN0TMPTR48HH (RSCAN0.TMPTR48.UINT8[R_IO_HH])
+#define RSCAN0TMDF048 (RSCAN0.TMDF048.UINT32)
+#define RSCAN0TMDF048L (RSCAN0.TMDF048.UINT16[R_IO_L])
+#define RSCAN0TMDF048LL (RSCAN0.TMDF048.UINT8[R_IO_LL])
+#define RSCAN0TMDF048LH (RSCAN0.TMDF048.UINT8[R_IO_LH])
+#define RSCAN0TMDF048H (RSCAN0.TMDF048.UINT16[R_IO_H])
+#define RSCAN0TMDF048HL (RSCAN0.TMDF048.UINT8[R_IO_HL])
+#define RSCAN0TMDF048HH (RSCAN0.TMDF048.UINT8[R_IO_HH])
+#define RSCAN0TMDF148 (RSCAN0.TMDF148.UINT32)
+#define RSCAN0TMDF148L (RSCAN0.TMDF148.UINT16[R_IO_L])
+#define RSCAN0TMDF148LL (RSCAN0.TMDF148.UINT8[R_IO_LL])
+#define RSCAN0TMDF148LH (RSCAN0.TMDF148.UINT8[R_IO_LH])
+#define RSCAN0TMDF148H (RSCAN0.TMDF148.UINT16[R_IO_H])
+#define RSCAN0TMDF148HL (RSCAN0.TMDF148.UINT8[R_IO_HL])
+#define RSCAN0TMDF148HH (RSCAN0.TMDF148.UINT8[R_IO_HH])
+#define RSCAN0TMID49 (RSCAN0.TMID49.UINT32)
+#define RSCAN0TMID49L (RSCAN0.TMID49.UINT16[R_IO_L])
+#define RSCAN0TMID49LL (RSCAN0.TMID49.UINT8[R_IO_LL])
+#define RSCAN0TMID49LH (RSCAN0.TMID49.UINT8[R_IO_LH])
+#define RSCAN0TMID49H (RSCAN0.TMID49.UINT16[R_IO_H])
+#define RSCAN0TMID49HL (RSCAN0.TMID49.UINT8[R_IO_HL])
+#define RSCAN0TMID49HH (RSCAN0.TMID49.UINT8[R_IO_HH])
+#define RSCAN0TMPTR49 (RSCAN0.TMPTR49.UINT32)
+#define RSCAN0TMPTR49L (RSCAN0.TMPTR49.UINT16[R_IO_L])
+#define RSCAN0TMPTR49LL (RSCAN0.TMPTR49.UINT8[R_IO_LL])
+#define RSCAN0TMPTR49LH (RSCAN0.TMPTR49.UINT8[R_IO_LH])
+#define RSCAN0TMPTR49H (RSCAN0.TMPTR49.UINT16[R_IO_H])
+#define RSCAN0TMPTR49HL (RSCAN0.TMPTR49.UINT8[R_IO_HL])
+#define RSCAN0TMPTR49HH (RSCAN0.TMPTR49.UINT8[R_IO_HH])
+#define RSCAN0TMDF049 (RSCAN0.TMDF049.UINT32)
+#define RSCAN0TMDF049L (RSCAN0.TMDF049.UINT16[R_IO_L])
+#define RSCAN0TMDF049LL (RSCAN0.TMDF049.UINT8[R_IO_LL])
+#define RSCAN0TMDF049LH (RSCAN0.TMDF049.UINT8[R_IO_LH])
+#define RSCAN0TMDF049H (RSCAN0.TMDF049.UINT16[R_IO_H])
+#define RSCAN0TMDF049HL (RSCAN0.TMDF049.UINT8[R_IO_HL])
+#define RSCAN0TMDF049HH (RSCAN0.TMDF049.UINT8[R_IO_HH])
+#define RSCAN0TMDF149 (RSCAN0.TMDF149.UINT32)
+#define RSCAN0TMDF149L (RSCAN0.TMDF149.UINT16[R_IO_L])
+#define RSCAN0TMDF149LL (RSCAN0.TMDF149.UINT8[R_IO_LL])
+#define RSCAN0TMDF149LH (RSCAN0.TMDF149.UINT8[R_IO_LH])
+#define RSCAN0TMDF149H (RSCAN0.TMDF149.UINT16[R_IO_H])
+#define RSCAN0TMDF149HL (RSCAN0.TMDF149.UINT8[R_IO_HL])
+#define RSCAN0TMDF149HH (RSCAN0.TMDF149.UINT8[R_IO_HH])
+#define RSCAN0TMID50 (RSCAN0.TMID50.UINT32)
+#define RSCAN0TMID50L (RSCAN0.TMID50.UINT16[R_IO_L])
+#define RSCAN0TMID50LL (RSCAN0.TMID50.UINT8[R_IO_LL])
+#define RSCAN0TMID50LH (RSCAN0.TMID50.UINT8[R_IO_LH])
+#define RSCAN0TMID50H (RSCAN0.TMID50.UINT16[R_IO_H])
+#define RSCAN0TMID50HL (RSCAN0.TMID50.UINT8[R_IO_HL])
+#define RSCAN0TMID50HH (RSCAN0.TMID50.UINT8[R_IO_HH])
+#define RSCAN0TMPTR50 (RSCAN0.TMPTR50.UINT32)
+#define RSCAN0TMPTR50L (RSCAN0.TMPTR50.UINT16[R_IO_L])
+#define RSCAN0TMPTR50LL (RSCAN0.TMPTR50.UINT8[R_IO_LL])
+#define RSCAN0TMPTR50LH (RSCAN0.TMPTR50.UINT8[R_IO_LH])
+#define RSCAN0TMPTR50H (RSCAN0.TMPTR50.UINT16[R_IO_H])
+#define RSCAN0TMPTR50HL (RSCAN0.TMPTR50.UINT8[R_IO_HL])
+#define RSCAN0TMPTR50HH (RSCAN0.TMPTR50.UINT8[R_IO_HH])
+#define RSCAN0TMDF050 (RSCAN0.TMDF050.UINT32)
+#define RSCAN0TMDF050L (RSCAN0.TMDF050.UINT16[R_IO_L])
+#define RSCAN0TMDF050LL (RSCAN0.TMDF050.UINT8[R_IO_LL])
+#define RSCAN0TMDF050LH (RSCAN0.TMDF050.UINT8[R_IO_LH])
+#define RSCAN0TMDF050H (RSCAN0.TMDF050.UINT16[R_IO_H])
+#define RSCAN0TMDF050HL (RSCAN0.TMDF050.UINT8[R_IO_HL])
+#define RSCAN0TMDF050HH (RSCAN0.TMDF050.UINT8[R_IO_HH])
+#define RSCAN0TMDF150 (RSCAN0.TMDF150.UINT32)
+#define RSCAN0TMDF150L (RSCAN0.TMDF150.UINT16[R_IO_L])
+#define RSCAN0TMDF150LL (RSCAN0.TMDF150.UINT8[R_IO_LL])
+#define RSCAN0TMDF150LH (RSCAN0.TMDF150.UINT8[R_IO_LH])
+#define RSCAN0TMDF150H (RSCAN0.TMDF150.UINT16[R_IO_H])
+#define RSCAN0TMDF150HL (RSCAN0.TMDF150.UINT8[R_IO_HL])
+#define RSCAN0TMDF150HH (RSCAN0.TMDF150.UINT8[R_IO_HH])
+#define RSCAN0TMID51 (RSCAN0.TMID51.UINT32)
+#define RSCAN0TMID51L (RSCAN0.TMID51.UINT16[R_IO_L])
+#define RSCAN0TMID51LL (RSCAN0.TMID51.UINT8[R_IO_LL])
+#define RSCAN0TMID51LH (RSCAN0.TMID51.UINT8[R_IO_LH])
+#define RSCAN0TMID51H (RSCAN0.TMID51.UINT16[R_IO_H])
+#define RSCAN0TMID51HL (RSCAN0.TMID51.UINT8[R_IO_HL])
+#define RSCAN0TMID51HH (RSCAN0.TMID51.UINT8[R_IO_HH])
+#define RSCAN0TMPTR51 (RSCAN0.TMPTR51.UINT32)
+#define RSCAN0TMPTR51L (RSCAN0.TMPTR51.UINT16[R_IO_L])
+#define RSCAN0TMPTR51LL (RSCAN0.TMPTR51.UINT8[R_IO_LL])
+#define RSCAN0TMPTR51LH (RSCAN0.TMPTR51.UINT8[R_IO_LH])
+#define RSCAN0TMPTR51H (RSCAN0.TMPTR51.UINT16[R_IO_H])
+#define RSCAN0TMPTR51HL (RSCAN0.TMPTR51.UINT8[R_IO_HL])
+#define RSCAN0TMPTR51HH (RSCAN0.TMPTR51.UINT8[R_IO_HH])
+#define RSCAN0TMDF051 (RSCAN0.TMDF051.UINT32)
+#define RSCAN0TMDF051L (RSCAN0.TMDF051.UINT16[R_IO_L])
+#define RSCAN0TMDF051LL (RSCAN0.TMDF051.UINT8[R_IO_LL])
+#define RSCAN0TMDF051LH (RSCAN0.TMDF051.UINT8[R_IO_LH])
+#define RSCAN0TMDF051H (RSCAN0.TMDF051.UINT16[R_IO_H])
+#define RSCAN0TMDF051HL (RSCAN0.TMDF051.UINT8[R_IO_HL])
+#define RSCAN0TMDF051HH (RSCAN0.TMDF051.UINT8[R_IO_HH])
+#define RSCAN0TMDF151 (RSCAN0.TMDF151.UINT32)
+#define RSCAN0TMDF151L (RSCAN0.TMDF151.UINT16[R_IO_L])
+#define RSCAN0TMDF151LL (RSCAN0.TMDF151.UINT8[R_IO_LL])
+#define RSCAN0TMDF151LH (RSCAN0.TMDF151.UINT8[R_IO_LH])
+#define RSCAN0TMDF151H (RSCAN0.TMDF151.UINT16[R_IO_H])
+#define RSCAN0TMDF151HL (RSCAN0.TMDF151.UINT8[R_IO_HL])
+#define RSCAN0TMDF151HH (RSCAN0.TMDF151.UINT8[R_IO_HH])
+#define RSCAN0TMID52 (RSCAN0.TMID52.UINT32)
+#define RSCAN0TMID52L (RSCAN0.TMID52.UINT16[R_IO_L])
+#define RSCAN0TMID52LL (RSCAN0.TMID52.UINT8[R_IO_LL])
+#define RSCAN0TMID52LH (RSCAN0.TMID52.UINT8[R_IO_LH])
+#define RSCAN0TMID52H (RSCAN0.TMID52.UINT16[R_IO_H])
+#define RSCAN0TMID52HL (RSCAN0.TMID52.UINT8[R_IO_HL])
+#define RSCAN0TMID52HH (RSCAN0.TMID52.UINT8[R_IO_HH])
+#define RSCAN0TMPTR52 (RSCAN0.TMPTR52.UINT32)
+#define RSCAN0TMPTR52L (RSCAN0.TMPTR52.UINT16[R_IO_L])
+#define RSCAN0TMPTR52LL (RSCAN0.TMPTR52.UINT8[R_IO_LL])
+#define RSCAN0TMPTR52LH (RSCAN0.TMPTR52.UINT8[R_IO_LH])
+#define RSCAN0TMPTR52H (RSCAN0.TMPTR52.UINT16[R_IO_H])
+#define RSCAN0TMPTR52HL (RSCAN0.TMPTR52.UINT8[R_IO_HL])
+#define RSCAN0TMPTR52HH (RSCAN0.TMPTR52.UINT8[R_IO_HH])
+#define RSCAN0TMDF052 (RSCAN0.TMDF052.UINT32)
+#define RSCAN0TMDF052L (RSCAN0.TMDF052.UINT16[R_IO_L])
+#define RSCAN0TMDF052LL (RSCAN0.TMDF052.UINT8[R_IO_LL])
+#define RSCAN0TMDF052LH (RSCAN0.TMDF052.UINT8[R_IO_LH])
+#define RSCAN0TMDF052H (RSCAN0.TMDF052.UINT16[R_IO_H])
+#define RSCAN0TMDF052HL (RSCAN0.TMDF052.UINT8[R_IO_HL])
+#define RSCAN0TMDF052HH (RSCAN0.TMDF052.UINT8[R_IO_HH])
+#define RSCAN0TMDF152 (RSCAN0.TMDF152.UINT32)
+#define RSCAN0TMDF152L (RSCAN0.TMDF152.UINT16[R_IO_L])
+#define RSCAN0TMDF152LL (RSCAN0.TMDF152.UINT8[R_IO_LL])
+#define RSCAN0TMDF152LH (RSCAN0.TMDF152.UINT8[R_IO_LH])
+#define RSCAN0TMDF152H (RSCAN0.TMDF152.UINT16[R_IO_H])
+#define RSCAN0TMDF152HL (RSCAN0.TMDF152.UINT8[R_IO_HL])
+#define RSCAN0TMDF152HH (RSCAN0.TMDF152.UINT8[R_IO_HH])
+#define RSCAN0TMID53 (RSCAN0.TMID53.UINT32)
+#define RSCAN0TMID53L (RSCAN0.TMID53.UINT16[R_IO_L])
+#define RSCAN0TMID53LL (RSCAN0.TMID53.UINT8[R_IO_LL])
+#define RSCAN0TMID53LH (RSCAN0.TMID53.UINT8[R_IO_LH])
+#define RSCAN0TMID53H (RSCAN0.TMID53.UINT16[R_IO_H])
+#define RSCAN0TMID53HL (RSCAN0.TMID53.UINT8[R_IO_HL])
+#define RSCAN0TMID53HH (RSCAN0.TMID53.UINT8[R_IO_HH])
+#define RSCAN0TMPTR53 (RSCAN0.TMPTR53.UINT32)
+#define RSCAN0TMPTR53L (RSCAN0.TMPTR53.UINT16[R_IO_L])
+#define RSCAN0TMPTR53LL (RSCAN0.TMPTR53.UINT8[R_IO_LL])
+#define RSCAN0TMPTR53LH (RSCAN0.TMPTR53.UINT8[R_IO_LH])
+#define RSCAN0TMPTR53H (RSCAN0.TMPTR53.UINT16[R_IO_H])
+#define RSCAN0TMPTR53HL (RSCAN0.TMPTR53.UINT8[R_IO_HL])
+#define RSCAN0TMPTR53HH (RSCAN0.TMPTR53.UINT8[R_IO_HH])
+#define RSCAN0TMDF053 (RSCAN0.TMDF053.UINT32)
+#define RSCAN0TMDF053L (RSCAN0.TMDF053.UINT16[R_IO_L])
+#define RSCAN0TMDF053LL (RSCAN0.TMDF053.UINT8[R_IO_LL])
+#define RSCAN0TMDF053LH (RSCAN0.TMDF053.UINT8[R_IO_LH])
+#define RSCAN0TMDF053H (RSCAN0.TMDF053.UINT16[R_IO_H])
+#define RSCAN0TMDF053HL (RSCAN0.TMDF053.UINT8[R_IO_HL])
+#define RSCAN0TMDF053HH (RSCAN0.TMDF053.UINT8[R_IO_HH])
+#define RSCAN0TMDF153 (RSCAN0.TMDF153.UINT32)
+#define RSCAN0TMDF153L (RSCAN0.TMDF153.UINT16[R_IO_L])
+#define RSCAN0TMDF153LL (RSCAN0.TMDF153.UINT8[R_IO_LL])
+#define RSCAN0TMDF153LH (RSCAN0.TMDF153.UINT8[R_IO_LH])
+#define RSCAN0TMDF153H (RSCAN0.TMDF153.UINT16[R_IO_H])
+#define RSCAN0TMDF153HL (RSCAN0.TMDF153.UINT8[R_IO_HL])
+#define RSCAN0TMDF153HH (RSCAN0.TMDF153.UINT8[R_IO_HH])
+#define RSCAN0TMID54 (RSCAN0.TMID54.UINT32)
+#define RSCAN0TMID54L (RSCAN0.TMID54.UINT16[R_IO_L])
+#define RSCAN0TMID54LL (RSCAN0.TMID54.UINT8[R_IO_LL])
+#define RSCAN0TMID54LH (RSCAN0.TMID54.UINT8[R_IO_LH])
+#define RSCAN0TMID54H (RSCAN0.TMID54.UINT16[R_IO_H])
+#define RSCAN0TMID54HL (RSCAN0.TMID54.UINT8[R_IO_HL])
+#define RSCAN0TMID54HH (RSCAN0.TMID54.UINT8[R_IO_HH])
+#define RSCAN0TMPTR54 (RSCAN0.TMPTR54.UINT32)
+#define RSCAN0TMPTR54L (RSCAN0.TMPTR54.UINT16[R_IO_L])
+#define RSCAN0TMPTR54LL (RSCAN0.TMPTR54.UINT8[R_IO_LL])
+#define RSCAN0TMPTR54LH (RSCAN0.TMPTR54.UINT8[R_IO_LH])
+#define RSCAN0TMPTR54H (RSCAN0.TMPTR54.UINT16[R_IO_H])
+#define RSCAN0TMPTR54HL (RSCAN0.TMPTR54.UINT8[R_IO_HL])
+#define RSCAN0TMPTR54HH (RSCAN0.TMPTR54.UINT8[R_IO_HH])
+#define RSCAN0TMDF054 (RSCAN0.TMDF054.UINT32)
+#define RSCAN0TMDF054L (RSCAN0.TMDF054.UINT16[R_IO_L])
+#define RSCAN0TMDF054LL (RSCAN0.TMDF054.UINT8[R_IO_LL])
+#define RSCAN0TMDF054LH (RSCAN0.TMDF054.UINT8[R_IO_LH])
+#define RSCAN0TMDF054H (RSCAN0.TMDF054.UINT16[R_IO_H])
+#define RSCAN0TMDF054HL (RSCAN0.TMDF054.UINT8[R_IO_HL])
+#define RSCAN0TMDF054HH (RSCAN0.TMDF054.UINT8[R_IO_HH])
+#define RSCAN0TMDF154 (RSCAN0.TMDF154.UINT32)
+#define RSCAN0TMDF154L (RSCAN0.TMDF154.UINT16[R_IO_L])
+#define RSCAN0TMDF154LL (RSCAN0.TMDF154.UINT8[R_IO_LL])
+#define RSCAN0TMDF154LH (RSCAN0.TMDF154.UINT8[R_IO_LH])
+#define RSCAN0TMDF154H (RSCAN0.TMDF154.UINT16[R_IO_H])
+#define RSCAN0TMDF154HL (RSCAN0.TMDF154.UINT8[R_IO_HL])
+#define RSCAN0TMDF154HH (RSCAN0.TMDF154.UINT8[R_IO_HH])
+#define RSCAN0TMID55 (RSCAN0.TMID55.UINT32)
+#define RSCAN0TMID55L (RSCAN0.TMID55.UINT16[R_IO_L])
+#define RSCAN0TMID55LL (RSCAN0.TMID55.UINT8[R_IO_LL])
+#define RSCAN0TMID55LH (RSCAN0.TMID55.UINT8[R_IO_LH])
+#define RSCAN0TMID55H (RSCAN0.TMID55.UINT16[R_IO_H])
+#define RSCAN0TMID55HL (RSCAN0.TMID55.UINT8[R_IO_HL])
+#define RSCAN0TMID55HH (RSCAN0.TMID55.UINT8[R_IO_HH])
+#define RSCAN0TMPTR55 (RSCAN0.TMPTR55.UINT32)
+#define RSCAN0TMPTR55L (RSCAN0.TMPTR55.UINT16[R_IO_L])
+#define RSCAN0TMPTR55LL (RSCAN0.TMPTR55.UINT8[R_IO_LL])
+#define RSCAN0TMPTR55LH (RSCAN0.TMPTR55.UINT8[R_IO_LH])
+#define RSCAN0TMPTR55H (RSCAN0.TMPTR55.UINT16[R_IO_H])
+#define RSCAN0TMPTR55HL (RSCAN0.TMPTR55.UINT8[R_IO_HL])
+#define RSCAN0TMPTR55HH (RSCAN0.TMPTR55.UINT8[R_IO_HH])
+#define RSCAN0TMDF055 (RSCAN0.TMDF055.UINT32)
+#define RSCAN0TMDF055L (RSCAN0.TMDF055.UINT16[R_IO_L])
+#define RSCAN0TMDF055LL (RSCAN0.TMDF055.UINT8[R_IO_LL])
+#define RSCAN0TMDF055LH (RSCAN0.TMDF055.UINT8[R_IO_LH])
+#define RSCAN0TMDF055H (RSCAN0.TMDF055.UINT16[R_IO_H])
+#define RSCAN0TMDF055HL (RSCAN0.TMDF055.UINT8[R_IO_HL])
+#define RSCAN0TMDF055HH (RSCAN0.TMDF055.UINT8[R_IO_HH])
+#define RSCAN0TMDF155 (RSCAN0.TMDF155.UINT32)
+#define RSCAN0TMDF155L (RSCAN0.TMDF155.UINT16[R_IO_L])
+#define RSCAN0TMDF155LL (RSCAN0.TMDF155.UINT8[R_IO_LL])
+#define RSCAN0TMDF155LH (RSCAN0.TMDF155.UINT8[R_IO_LH])
+#define RSCAN0TMDF155H (RSCAN0.TMDF155.UINT16[R_IO_H])
+#define RSCAN0TMDF155HL (RSCAN0.TMDF155.UINT8[R_IO_HL])
+#define RSCAN0TMDF155HH (RSCAN0.TMDF155.UINT8[R_IO_HH])
+#define RSCAN0TMID56 (RSCAN0.TMID56.UINT32)
+#define RSCAN0TMID56L (RSCAN0.TMID56.UINT16[R_IO_L])
+#define RSCAN0TMID56LL (RSCAN0.TMID56.UINT8[R_IO_LL])
+#define RSCAN0TMID56LH (RSCAN0.TMID56.UINT8[R_IO_LH])
+#define RSCAN0TMID56H (RSCAN0.TMID56.UINT16[R_IO_H])
+#define RSCAN0TMID56HL (RSCAN0.TMID56.UINT8[R_IO_HL])
+#define RSCAN0TMID56HH (RSCAN0.TMID56.UINT8[R_IO_HH])
+#define RSCAN0TMPTR56 (RSCAN0.TMPTR56.UINT32)
+#define RSCAN0TMPTR56L (RSCAN0.TMPTR56.UINT16[R_IO_L])
+#define RSCAN0TMPTR56LL (RSCAN0.TMPTR56.UINT8[R_IO_LL])
+#define RSCAN0TMPTR56LH (RSCAN0.TMPTR56.UINT8[R_IO_LH])
+#define RSCAN0TMPTR56H (RSCAN0.TMPTR56.UINT16[R_IO_H])
+#define RSCAN0TMPTR56HL (RSCAN0.TMPTR56.UINT8[R_IO_HL])
+#define RSCAN0TMPTR56HH (RSCAN0.TMPTR56.UINT8[R_IO_HH])
+#define RSCAN0TMDF056 (RSCAN0.TMDF056.UINT32)
+#define RSCAN0TMDF056L (RSCAN0.TMDF056.UINT16[R_IO_L])
+#define RSCAN0TMDF056LL (RSCAN0.TMDF056.UINT8[R_IO_LL])
+#define RSCAN0TMDF056LH (RSCAN0.TMDF056.UINT8[R_IO_LH])
+#define RSCAN0TMDF056H (RSCAN0.TMDF056.UINT16[R_IO_H])
+#define RSCAN0TMDF056HL (RSCAN0.TMDF056.UINT8[R_IO_HL])
+#define RSCAN0TMDF056HH (RSCAN0.TMDF056.UINT8[R_IO_HH])
+#define RSCAN0TMDF156 (RSCAN0.TMDF156.UINT32)
+#define RSCAN0TMDF156L (RSCAN0.TMDF156.UINT16[R_IO_L])
+#define RSCAN0TMDF156LL (RSCAN0.TMDF156.UINT8[R_IO_LL])
+#define RSCAN0TMDF156LH (RSCAN0.TMDF156.UINT8[R_IO_LH])
+#define RSCAN0TMDF156H (RSCAN0.TMDF156.UINT16[R_IO_H])
+#define RSCAN0TMDF156HL (RSCAN0.TMDF156.UINT8[R_IO_HL])
+#define RSCAN0TMDF156HH (RSCAN0.TMDF156.UINT8[R_IO_HH])
+#define RSCAN0TMID57 (RSCAN0.TMID57.UINT32)
+#define RSCAN0TMID57L (RSCAN0.TMID57.UINT16[R_IO_L])
+#define RSCAN0TMID57LL (RSCAN0.TMID57.UINT8[R_IO_LL])
+#define RSCAN0TMID57LH (RSCAN0.TMID57.UINT8[R_IO_LH])
+#define RSCAN0TMID57H (RSCAN0.TMID57.UINT16[R_IO_H])
+#define RSCAN0TMID57HL (RSCAN0.TMID57.UINT8[R_IO_HL])
+#define RSCAN0TMID57HH (RSCAN0.TMID57.UINT8[R_IO_HH])
+#define RSCAN0TMPTR57 (RSCAN0.TMPTR57.UINT32)
+#define RSCAN0TMPTR57L (RSCAN0.TMPTR57.UINT16[R_IO_L])
+#define RSCAN0TMPTR57LL (RSCAN0.TMPTR57.UINT8[R_IO_LL])
+#define RSCAN0TMPTR57LH (RSCAN0.TMPTR57.UINT8[R_IO_LH])
+#define RSCAN0TMPTR57H (RSCAN0.TMPTR57.UINT16[R_IO_H])
+#define RSCAN0TMPTR57HL (RSCAN0.TMPTR57.UINT8[R_IO_HL])
+#define RSCAN0TMPTR57HH (RSCAN0.TMPTR57.UINT8[R_IO_HH])
+#define RSCAN0TMDF057 (RSCAN0.TMDF057.UINT32)
+#define RSCAN0TMDF057L (RSCAN0.TMDF057.UINT16[R_IO_L])
+#define RSCAN0TMDF057LL (RSCAN0.TMDF057.UINT8[R_IO_LL])
+#define RSCAN0TMDF057LH (RSCAN0.TMDF057.UINT8[R_IO_LH])
+#define RSCAN0TMDF057H (RSCAN0.TMDF057.UINT16[R_IO_H])
+#define RSCAN0TMDF057HL (RSCAN0.TMDF057.UINT8[R_IO_HL])
+#define RSCAN0TMDF057HH (RSCAN0.TMDF057.UINT8[R_IO_HH])
+#define RSCAN0TMDF157 (RSCAN0.TMDF157.UINT32)
+#define RSCAN0TMDF157L (RSCAN0.TMDF157.UINT16[R_IO_L])
+#define RSCAN0TMDF157LL (RSCAN0.TMDF157.UINT8[R_IO_LL])
+#define RSCAN0TMDF157LH (RSCAN0.TMDF157.UINT8[R_IO_LH])
+#define RSCAN0TMDF157H (RSCAN0.TMDF157.UINT16[R_IO_H])
+#define RSCAN0TMDF157HL (RSCAN0.TMDF157.UINT8[R_IO_HL])
+#define RSCAN0TMDF157HH (RSCAN0.TMDF157.UINT8[R_IO_HH])
+#define RSCAN0TMID58 (RSCAN0.TMID58.UINT32)
+#define RSCAN0TMID58L (RSCAN0.TMID58.UINT16[R_IO_L])
+#define RSCAN0TMID58LL (RSCAN0.TMID58.UINT8[R_IO_LL])
+#define RSCAN0TMID58LH (RSCAN0.TMID58.UINT8[R_IO_LH])
+#define RSCAN0TMID58H (RSCAN0.TMID58.UINT16[R_IO_H])
+#define RSCAN0TMID58HL (RSCAN0.TMID58.UINT8[R_IO_HL])
+#define RSCAN0TMID58HH (RSCAN0.TMID58.UINT8[R_IO_HH])
+#define RSCAN0TMPTR58 (RSCAN0.TMPTR58.UINT32)
+#define RSCAN0TMPTR58L (RSCAN0.TMPTR58.UINT16[R_IO_L])
+#define RSCAN0TMPTR58LL (RSCAN0.TMPTR58.UINT8[R_IO_LL])
+#define RSCAN0TMPTR58LH (RSCAN0.TMPTR58.UINT8[R_IO_LH])
+#define RSCAN0TMPTR58H (RSCAN0.TMPTR58.UINT16[R_IO_H])
+#define RSCAN0TMPTR58HL (RSCAN0.TMPTR58.UINT8[R_IO_HL])
+#define RSCAN0TMPTR58HH (RSCAN0.TMPTR58.UINT8[R_IO_HH])
+#define RSCAN0TMDF058 (RSCAN0.TMDF058.UINT32)
+#define RSCAN0TMDF058L (RSCAN0.TMDF058.UINT16[R_IO_L])
+#define RSCAN0TMDF058LL (RSCAN0.TMDF058.UINT8[R_IO_LL])
+#define RSCAN0TMDF058LH (RSCAN0.TMDF058.UINT8[R_IO_LH])
+#define RSCAN0TMDF058H (RSCAN0.TMDF058.UINT16[R_IO_H])
+#define RSCAN0TMDF058HL (RSCAN0.TMDF058.UINT8[R_IO_HL])
+#define RSCAN0TMDF058HH (RSCAN0.TMDF058.UINT8[R_IO_HH])
+#define RSCAN0TMDF158 (RSCAN0.TMDF158.UINT32)
+#define RSCAN0TMDF158L (RSCAN0.TMDF158.UINT16[R_IO_L])
+#define RSCAN0TMDF158LL (RSCAN0.TMDF158.UINT8[R_IO_LL])
+#define RSCAN0TMDF158LH (RSCAN0.TMDF158.UINT8[R_IO_LH])
+#define RSCAN0TMDF158H (RSCAN0.TMDF158.UINT16[R_IO_H])
+#define RSCAN0TMDF158HL (RSCAN0.TMDF158.UINT8[R_IO_HL])
+#define RSCAN0TMDF158HH (RSCAN0.TMDF158.UINT8[R_IO_HH])
+#define RSCAN0TMID59 (RSCAN0.TMID59.UINT32)
+#define RSCAN0TMID59L (RSCAN0.TMID59.UINT16[R_IO_L])
+#define RSCAN0TMID59LL (RSCAN0.TMID59.UINT8[R_IO_LL])
+#define RSCAN0TMID59LH (RSCAN0.TMID59.UINT8[R_IO_LH])
+#define RSCAN0TMID59H (RSCAN0.TMID59.UINT16[R_IO_H])
+#define RSCAN0TMID59HL (RSCAN0.TMID59.UINT8[R_IO_HL])
+#define RSCAN0TMID59HH (RSCAN0.TMID59.UINT8[R_IO_HH])
+#define RSCAN0TMPTR59 (RSCAN0.TMPTR59.UINT32)
+#define RSCAN0TMPTR59L (RSCAN0.TMPTR59.UINT16[R_IO_L])
+#define RSCAN0TMPTR59LL (RSCAN0.TMPTR59.UINT8[R_IO_LL])
+#define RSCAN0TMPTR59LH (RSCAN0.TMPTR59.UINT8[R_IO_LH])
+#define RSCAN0TMPTR59H (RSCAN0.TMPTR59.UINT16[R_IO_H])
+#define RSCAN0TMPTR59HL (RSCAN0.TMPTR59.UINT8[R_IO_HL])
+#define RSCAN0TMPTR59HH (RSCAN0.TMPTR59.UINT8[R_IO_HH])
+#define RSCAN0TMDF059 (RSCAN0.TMDF059.UINT32)
+#define RSCAN0TMDF059L (RSCAN0.TMDF059.UINT16[R_IO_L])
+#define RSCAN0TMDF059LL (RSCAN0.TMDF059.UINT8[R_IO_LL])
+#define RSCAN0TMDF059LH (RSCAN0.TMDF059.UINT8[R_IO_LH])
+#define RSCAN0TMDF059H (RSCAN0.TMDF059.UINT16[R_IO_H])
+#define RSCAN0TMDF059HL (RSCAN0.TMDF059.UINT8[R_IO_HL])
+#define RSCAN0TMDF059HH (RSCAN0.TMDF059.UINT8[R_IO_HH])
+#define RSCAN0TMDF159 (RSCAN0.TMDF159.UINT32)
+#define RSCAN0TMDF159L (RSCAN0.TMDF159.UINT16[R_IO_L])
+#define RSCAN0TMDF159LL (RSCAN0.TMDF159.UINT8[R_IO_LL])
+#define RSCAN0TMDF159LH (RSCAN0.TMDF159.UINT8[R_IO_LH])
+#define RSCAN0TMDF159H (RSCAN0.TMDF159.UINT16[R_IO_H])
+#define RSCAN0TMDF159HL (RSCAN0.TMDF159.UINT8[R_IO_HL])
+#define RSCAN0TMDF159HH (RSCAN0.TMDF159.UINT8[R_IO_HH])
+#define RSCAN0TMID60 (RSCAN0.TMID60.UINT32)
+#define RSCAN0TMID60L (RSCAN0.TMID60.UINT16[R_IO_L])
+#define RSCAN0TMID60LL (RSCAN0.TMID60.UINT8[R_IO_LL])
+#define RSCAN0TMID60LH (RSCAN0.TMID60.UINT8[R_IO_LH])
+#define RSCAN0TMID60H (RSCAN0.TMID60.UINT16[R_IO_H])
+#define RSCAN0TMID60HL (RSCAN0.TMID60.UINT8[R_IO_HL])
+#define RSCAN0TMID60HH (RSCAN0.TMID60.UINT8[R_IO_HH])
+#define RSCAN0TMPTR60 (RSCAN0.TMPTR60.UINT32)
+#define RSCAN0TMPTR60L (RSCAN0.TMPTR60.UINT16[R_IO_L])
+#define RSCAN0TMPTR60LL (RSCAN0.TMPTR60.UINT8[R_IO_LL])
+#define RSCAN0TMPTR60LH (RSCAN0.TMPTR60.UINT8[R_IO_LH])
+#define RSCAN0TMPTR60H (RSCAN0.TMPTR60.UINT16[R_IO_H])
+#define RSCAN0TMPTR60HL (RSCAN0.TMPTR60.UINT8[R_IO_HL])
+#define RSCAN0TMPTR60HH (RSCAN0.TMPTR60.UINT8[R_IO_HH])
+#define RSCAN0TMDF060 (RSCAN0.TMDF060.UINT32)
+#define RSCAN0TMDF060L (RSCAN0.TMDF060.UINT16[R_IO_L])
+#define RSCAN0TMDF060LL (RSCAN0.TMDF060.UINT8[R_IO_LL])
+#define RSCAN0TMDF060LH (RSCAN0.TMDF060.UINT8[R_IO_LH])
+#define RSCAN0TMDF060H (RSCAN0.TMDF060.UINT16[R_IO_H])
+#define RSCAN0TMDF060HL (RSCAN0.TMDF060.UINT8[R_IO_HL])
+#define RSCAN0TMDF060HH (RSCAN0.TMDF060.UINT8[R_IO_HH])
+#define RSCAN0TMDF160 (RSCAN0.TMDF160.UINT32)
+#define RSCAN0TMDF160L (RSCAN0.TMDF160.UINT16[R_IO_L])
+#define RSCAN0TMDF160LL (RSCAN0.TMDF160.UINT8[R_IO_LL])
+#define RSCAN0TMDF160LH (RSCAN0.TMDF160.UINT8[R_IO_LH])
+#define RSCAN0TMDF160H (RSCAN0.TMDF160.UINT16[R_IO_H])
+#define RSCAN0TMDF160HL (RSCAN0.TMDF160.UINT8[R_IO_HL])
+#define RSCAN0TMDF160HH (RSCAN0.TMDF160.UINT8[R_IO_HH])
+#define RSCAN0TMID61 (RSCAN0.TMID61.UINT32)
+#define RSCAN0TMID61L (RSCAN0.TMID61.UINT16[R_IO_L])
+#define RSCAN0TMID61LL (RSCAN0.TMID61.UINT8[R_IO_LL])
+#define RSCAN0TMID61LH (RSCAN0.TMID61.UINT8[R_IO_LH])
+#define RSCAN0TMID61H (RSCAN0.TMID61.UINT16[R_IO_H])
+#define RSCAN0TMID61HL (RSCAN0.TMID61.UINT8[R_IO_HL])
+#define RSCAN0TMID61HH (RSCAN0.TMID61.UINT8[R_IO_HH])
+#define RSCAN0TMPTR61 (RSCAN0.TMPTR61.UINT32)
+#define RSCAN0TMPTR61L (RSCAN0.TMPTR61.UINT16[R_IO_L])
+#define RSCAN0TMPTR61LL (RSCAN0.TMPTR61.UINT8[R_IO_LL])
+#define RSCAN0TMPTR61LH (RSCAN0.TMPTR61.UINT8[R_IO_LH])
+#define RSCAN0TMPTR61H (RSCAN0.TMPTR61.UINT16[R_IO_H])
+#define RSCAN0TMPTR61HL (RSCAN0.TMPTR61.UINT8[R_IO_HL])
+#define RSCAN0TMPTR61HH (RSCAN0.TMPTR61.UINT8[R_IO_HH])
+#define RSCAN0TMDF061 (RSCAN0.TMDF061.UINT32)
+#define RSCAN0TMDF061L (RSCAN0.TMDF061.UINT16[R_IO_L])
+#define RSCAN0TMDF061LL (RSCAN0.TMDF061.UINT8[R_IO_LL])
+#define RSCAN0TMDF061LH (RSCAN0.TMDF061.UINT8[R_IO_LH])
+#define RSCAN0TMDF061H (RSCAN0.TMDF061.UINT16[R_IO_H])
+#define RSCAN0TMDF061HL (RSCAN0.TMDF061.UINT8[R_IO_HL])
+#define RSCAN0TMDF061HH (RSCAN0.TMDF061.UINT8[R_IO_HH])
+#define RSCAN0TMDF161 (RSCAN0.TMDF161.UINT32)
+#define RSCAN0TMDF161L (RSCAN0.TMDF161.UINT16[R_IO_L])
+#define RSCAN0TMDF161LL (RSCAN0.TMDF161.UINT8[R_IO_LL])
+#define RSCAN0TMDF161LH (RSCAN0.TMDF161.UINT8[R_IO_LH])
+#define RSCAN0TMDF161H (RSCAN0.TMDF161.UINT16[R_IO_H])
+#define RSCAN0TMDF161HL (RSCAN0.TMDF161.UINT8[R_IO_HL])
+#define RSCAN0TMDF161HH (RSCAN0.TMDF161.UINT8[R_IO_HH])
+#define RSCAN0TMID62 (RSCAN0.TMID62.UINT32)
+#define RSCAN0TMID62L (RSCAN0.TMID62.UINT16[R_IO_L])
+#define RSCAN0TMID62LL (RSCAN0.TMID62.UINT8[R_IO_LL])
+#define RSCAN0TMID62LH (RSCAN0.TMID62.UINT8[R_IO_LH])
+#define RSCAN0TMID62H (RSCAN0.TMID62.UINT16[R_IO_H])
+#define RSCAN0TMID62HL (RSCAN0.TMID62.UINT8[R_IO_HL])
+#define RSCAN0TMID62HH (RSCAN0.TMID62.UINT8[R_IO_HH])
+#define RSCAN0TMPTR62 (RSCAN0.TMPTR62.UINT32)
+#define RSCAN0TMPTR62L (RSCAN0.TMPTR62.UINT16[R_IO_L])
+#define RSCAN0TMPTR62LL (RSCAN0.TMPTR62.UINT8[R_IO_LL])
+#define RSCAN0TMPTR62LH (RSCAN0.TMPTR62.UINT8[R_IO_LH])
+#define RSCAN0TMPTR62H (RSCAN0.TMPTR62.UINT16[R_IO_H])
+#define RSCAN0TMPTR62HL (RSCAN0.TMPTR62.UINT8[R_IO_HL])
+#define RSCAN0TMPTR62HH (RSCAN0.TMPTR62.UINT8[R_IO_HH])
+#define RSCAN0TMDF062 (RSCAN0.TMDF062.UINT32)
+#define RSCAN0TMDF062L (RSCAN0.TMDF062.UINT16[R_IO_L])
+#define RSCAN0TMDF062LL (RSCAN0.TMDF062.UINT8[R_IO_LL])
+#define RSCAN0TMDF062LH (RSCAN0.TMDF062.UINT8[R_IO_LH])
+#define RSCAN0TMDF062H (RSCAN0.TMDF062.UINT16[R_IO_H])
+#define RSCAN0TMDF062HL (RSCAN0.TMDF062.UINT8[R_IO_HL])
+#define RSCAN0TMDF062HH (RSCAN0.TMDF062.UINT8[R_IO_HH])
+#define RSCAN0TMDF162 (RSCAN0.TMDF162.UINT32)
+#define RSCAN0TMDF162L (RSCAN0.TMDF162.UINT16[R_IO_L])
+#define RSCAN0TMDF162LL (RSCAN0.TMDF162.UINT8[R_IO_LL])
+#define RSCAN0TMDF162LH (RSCAN0.TMDF162.UINT8[R_IO_LH])
+#define RSCAN0TMDF162H (RSCAN0.TMDF162.UINT16[R_IO_H])
+#define RSCAN0TMDF162HL (RSCAN0.TMDF162.UINT8[R_IO_HL])
+#define RSCAN0TMDF162HH (RSCAN0.TMDF162.UINT8[R_IO_HH])
+#define RSCAN0TMID63 (RSCAN0.TMID63.UINT32)
+#define RSCAN0TMID63L (RSCAN0.TMID63.UINT16[R_IO_L])
+#define RSCAN0TMID63LL (RSCAN0.TMID63.UINT8[R_IO_LL])
+#define RSCAN0TMID63LH (RSCAN0.TMID63.UINT8[R_IO_LH])
+#define RSCAN0TMID63H (RSCAN0.TMID63.UINT16[R_IO_H])
+#define RSCAN0TMID63HL (RSCAN0.TMID63.UINT8[R_IO_HL])
+#define RSCAN0TMID63HH (RSCAN0.TMID63.UINT8[R_IO_HH])
+#define RSCAN0TMPTR63 (RSCAN0.TMPTR63.UINT32)
+#define RSCAN0TMPTR63L (RSCAN0.TMPTR63.UINT16[R_IO_L])
+#define RSCAN0TMPTR63LL (RSCAN0.TMPTR63.UINT8[R_IO_LL])
+#define RSCAN0TMPTR63LH (RSCAN0.TMPTR63.UINT8[R_IO_LH])
+#define RSCAN0TMPTR63H (RSCAN0.TMPTR63.UINT16[R_IO_H])
+#define RSCAN0TMPTR63HL (RSCAN0.TMPTR63.UINT8[R_IO_HL])
+#define RSCAN0TMPTR63HH (RSCAN0.TMPTR63.UINT8[R_IO_HH])
+#define RSCAN0TMDF063 (RSCAN0.TMDF063.UINT32)
+#define RSCAN0TMDF063L (RSCAN0.TMDF063.UINT16[R_IO_L])
+#define RSCAN0TMDF063LL (RSCAN0.TMDF063.UINT8[R_IO_LL])
+#define RSCAN0TMDF063LH (RSCAN0.TMDF063.UINT8[R_IO_LH])
+#define RSCAN0TMDF063H (RSCAN0.TMDF063.UINT16[R_IO_H])
+#define RSCAN0TMDF063HL (RSCAN0.TMDF063.UINT8[R_IO_HL])
+#define RSCAN0TMDF063HH (RSCAN0.TMDF063.UINT8[R_IO_HH])
+#define RSCAN0TMDF163 (RSCAN0.TMDF163.UINT32)
+#define RSCAN0TMDF163L (RSCAN0.TMDF163.UINT16[R_IO_L])
+#define RSCAN0TMDF163LL (RSCAN0.TMDF163.UINT8[R_IO_LL])
+#define RSCAN0TMDF163LH (RSCAN0.TMDF163.UINT8[R_IO_LH])
+#define RSCAN0TMDF163H (RSCAN0.TMDF163.UINT16[R_IO_H])
+#define RSCAN0TMDF163HL (RSCAN0.TMDF163.UINT8[R_IO_HL])
+#define RSCAN0TMDF163HH (RSCAN0.TMDF163.UINT8[R_IO_HH])
+#define RSCAN0TMID64 (RSCAN0.TMID64.UINT32)
+#define RSCAN0TMID64L (RSCAN0.TMID64.UINT16[R_IO_L])
+#define RSCAN0TMID64LL (RSCAN0.TMID64.UINT8[R_IO_LL])
+#define RSCAN0TMID64LH (RSCAN0.TMID64.UINT8[R_IO_LH])
+#define RSCAN0TMID64H (RSCAN0.TMID64.UINT16[R_IO_H])
+#define RSCAN0TMID64HL (RSCAN0.TMID64.UINT8[R_IO_HL])
+#define RSCAN0TMID64HH (RSCAN0.TMID64.UINT8[R_IO_HH])
+#define RSCAN0TMPTR64 (RSCAN0.TMPTR64.UINT32)
+#define RSCAN0TMPTR64L (RSCAN0.TMPTR64.UINT16[R_IO_L])
+#define RSCAN0TMPTR64LL (RSCAN0.TMPTR64.UINT8[R_IO_LL])
+#define RSCAN0TMPTR64LH (RSCAN0.TMPTR64.UINT8[R_IO_LH])
+#define RSCAN0TMPTR64H (RSCAN0.TMPTR64.UINT16[R_IO_H])
+#define RSCAN0TMPTR64HL (RSCAN0.TMPTR64.UINT8[R_IO_HL])
+#define RSCAN0TMPTR64HH (RSCAN0.TMPTR64.UINT8[R_IO_HH])
+#define RSCAN0TMDF064 (RSCAN0.TMDF064.UINT32)
+#define RSCAN0TMDF064L (RSCAN0.TMDF064.UINT16[R_IO_L])
+#define RSCAN0TMDF064LL (RSCAN0.TMDF064.UINT8[R_IO_LL])
+#define RSCAN0TMDF064LH (RSCAN0.TMDF064.UINT8[R_IO_LH])
+#define RSCAN0TMDF064H (RSCAN0.TMDF064.UINT16[R_IO_H])
+#define RSCAN0TMDF064HL (RSCAN0.TMDF064.UINT8[R_IO_HL])
+#define RSCAN0TMDF064HH (RSCAN0.TMDF064.UINT8[R_IO_HH])
+#define RSCAN0TMDF164 (RSCAN0.TMDF164.UINT32)
+#define RSCAN0TMDF164L (RSCAN0.TMDF164.UINT16[R_IO_L])
+#define RSCAN0TMDF164LL (RSCAN0.TMDF164.UINT8[R_IO_LL])
+#define RSCAN0TMDF164LH (RSCAN0.TMDF164.UINT8[R_IO_LH])
+#define RSCAN0TMDF164H (RSCAN0.TMDF164.UINT16[R_IO_H])
+#define RSCAN0TMDF164HL (RSCAN0.TMDF164.UINT8[R_IO_HL])
+#define RSCAN0TMDF164HH (RSCAN0.TMDF164.UINT8[R_IO_HH])
+#define RSCAN0TMID65 (RSCAN0.TMID65.UINT32)
+#define RSCAN0TMID65L (RSCAN0.TMID65.UINT16[R_IO_L])
+#define RSCAN0TMID65LL (RSCAN0.TMID65.UINT8[R_IO_LL])
+#define RSCAN0TMID65LH (RSCAN0.TMID65.UINT8[R_IO_LH])
+#define RSCAN0TMID65H (RSCAN0.TMID65.UINT16[R_IO_H])
+#define RSCAN0TMID65HL (RSCAN0.TMID65.UINT8[R_IO_HL])
+#define RSCAN0TMID65HH (RSCAN0.TMID65.UINT8[R_IO_HH])
+#define RSCAN0TMPTR65 (RSCAN0.TMPTR65.UINT32)
+#define RSCAN0TMPTR65L (RSCAN0.TMPTR65.UINT16[R_IO_L])
+#define RSCAN0TMPTR65LL (RSCAN0.TMPTR65.UINT8[R_IO_LL])
+#define RSCAN0TMPTR65LH (RSCAN0.TMPTR65.UINT8[R_IO_LH])
+#define RSCAN0TMPTR65H (RSCAN0.TMPTR65.UINT16[R_IO_H])
+#define RSCAN0TMPTR65HL (RSCAN0.TMPTR65.UINT8[R_IO_HL])
+#define RSCAN0TMPTR65HH (RSCAN0.TMPTR65.UINT8[R_IO_HH])
+#define RSCAN0TMDF065 (RSCAN0.TMDF065.UINT32)
+#define RSCAN0TMDF065L (RSCAN0.TMDF065.UINT16[R_IO_L])
+#define RSCAN0TMDF065LL (RSCAN0.TMDF065.UINT8[R_IO_LL])
+#define RSCAN0TMDF065LH (RSCAN0.TMDF065.UINT8[R_IO_LH])
+#define RSCAN0TMDF065H (RSCAN0.TMDF065.UINT16[R_IO_H])
+#define RSCAN0TMDF065HL (RSCAN0.TMDF065.UINT8[R_IO_HL])
+#define RSCAN0TMDF065HH (RSCAN0.TMDF065.UINT8[R_IO_HH])
+#define RSCAN0TMDF165 (RSCAN0.TMDF165.UINT32)
+#define RSCAN0TMDF165L (RSCAN0.TMDF165.UINT16[R_IO_L])
+#define RSCAN0TMDF165LL (RSCAN0.TMDF165.UINT8[R_IO_LL])
+#define RSCAN0TMDF165LH (RSCAN0.TMDF165.UINT8[R_IO_LH])
+#define RSCAN0TMDF165H (RSCAN0.TMDF165.UINT16[R_IO_H])
+#define RSCAN0TMDF165HL (RSCAN0.TMDF165.UINT8[R_IO_HL])
+#define RSCAN0TMDF165HH (RSCAN0.TMDF165.UINT8[R_IO_HH])
+#define RSCAN0TMID66 (RSCAN0.TMID66.UINT32)
+#define RSCAN0TMID66L (RSCAN0.TMID66.UINT16[R_IO_L])
+#define RSCAN0TMID66LL (RSCAN0.TMID66.UINT8[R_IO_LL])
+#define RSCAN0TMID66LH (RSCAN0.TMID66.UINT8[R_IO_LH])
+#define RSCAN0TMID66H (RSCAN0.TMID66.UINT16[R_IO_H])
+#define RSCAN0TMID66HL (RSCAN0.TMID66.UINT8[R_IO_HL])
+#define RSCAN0TMID66HH (RSCAN0.TMID66.UINT8[R_IO_HH])
+#define RSCAN0TMPTR66 (RSCAN0.TMPTR66.UINT32)
+#define RSCAN0TMPTR66L (RSCAN0.TMPTR66.UINT16[R_IO_L])
+#define RSCAN0TMPTR66LL (RSCAN0.TMPTR66.UINT8[R_IO_LL])
+#define RSCAN0TMPTR66LH (RSCAN0.TMPTR66.UINT8[R_IO_LH])
+#define RSCAN0TMPTR66H (RSCAN0.TMPTR66.UINT16[R_IO_H])
+#define RSCAN0TMPTR66HL (RSCAN0.TMPTR66.UINT8[R_IO_HL])
+#define RSCAN0TMPTR66HH (RSCAN0.TMPTR66.UINT8[R_IO_HH])
+#define RSCAN0TMDF066 (RSCAN0.TMDF066.UINT32)
+#define RSCAN0TMDF066L (RSCAN0.TMDF066.UINT16[R_IO_L])
+#define RSCAN0TMDF066LL (RSCAN0.TMDF066.UINT8[R_IO_LL])
+#define RSCAN0TMDF066LH (RSCAN0.TMDF066.UINT8[R_IO_LH])
+#define RSCAN0TMDF066H (RSCAN0.TMDF066.UINT16[R_IO_H])
+#define RSCAN0TMDF066HL (RSCAN0.TMDF066.UINT8[R_IO_HL])
+#define RSCAN0TMDF066HH (RSCAN0.TMDF066.UINT8[R_IO_HH])
+#define RSCAN0TMDF166 (RSCAN0.TMDF166.UINT32)
+#define RSCAN0TMDF166L (RSCAN0.TMDF166.UINT16[R_IO_L])
+#define RSCAN0TMDF166LL (RSCAN0.TMDF166.UINT8[R_IO_LL])
+#define RSCAN0TMDF166LH (RSCAN0.TMDF166.UINT8[R_IO_LH])
+#define RSCAN0TMDF166H (RSCAN0.TMDF166.UINT16[R_IO_H])
+#define RSCAN0TMDF166HL (RSCAN0.TMDF166.UINT8[R_IO_HL])
+#define RSCAN0TMDF166HH (RSCAN0.TMDF166.UINT8[R_IO_HH])
+#define RSCAN0TMID67 (RSCAN0.TMID67.UINT32)
+#define RSCAN0TMID67L (RSCAN0.TMID67.UINT16[R_IO_L])
+#define RSCAN0TMID67LL (RSCAN0.TMID67.UINT8[R_IO_LL])
+#define RSCAN0TMID67LH (RSCAN0.TMID67.UINT8[R_IO_LH])
+#define RSCAN0TMID67H (RSCAN0.TMID67.UINT16[R_IO_H])
+#define RSCAN0TMID67HL (RSCAN0.TMID67.UINT8[R_IO_HL])
+#define RSCAN0TMID67HH (RSCAN0.TMID67.UINT8[R_IO_HH])
+#define RSCAN0TMPTR67 (RSCAN0.TMPTR67.UINT32)
+#define RSCAN0TMPTR67L (RSCAN0.TMPTR67.UINT16[R_IO_L])
+#define RSCAN0TMPTR67LL (RSCAN0.TMPTR67.UINT8[R_IO_LL])
+#define RSCAN0TMPTR67LH (RSCAN0.TMPTR67.UINT8[R_IO_LH])
+#define RSCAN0TMPTR67H (RSCAN0.TMPTR67.UINT16[R_IO_H])
+#define RSCAN0TMPTR67HL (RSCAN0.TMPTR67.UINT8[R_IO_HL])
+#define RSCAN0TMPTR67HH (RSCAN0.TMPTR67.UINT8[R_IO_HH])
+#define RSCAN0TMDF067 (RSCAN0.TMDF067.UINT32)
+#define RSCAN0TMDF067L (RSCAN0.TMDF067.UINT16[R_IO_L])
+#define RSCAN0TMDF067LL (RSCAN0.TMDF067.UINT8[R_IO_LL])
+#define RSCAN0TMDF067LH (RSCAN0.TMDF067.UINT8[R_IO_LH])
+#define RSCAN0TMDF067H (RSCAN0.TMDF067.UINT16[R_IO_H])
+#define RSCAN0TMDF067HL (RSCAN0.TMDF067.UINT8[R_IO_HL])
+#define RSCAN0TMDF067HH (RSCAN0.TMDF067.UINT8[R_IO_HH])
+#define RSCAN0TMDF167 (RSCAN0.TMDF167.UINT32)
+#define RSCAN0TMDF167L (RSCAN0.TMDF167.UINT16[R_IO_L])
+#define RSCAN0TMDF167LL (RSCAN0.TMDF167.UINT8[R_IO_LL])
+#define RSCAN0TMDF167LH (RSCAN0.TMDF167.UINT8[R_IO_LH])
+#define RSCAN0TMDF167H (RSCAN0.TMDF167.UINT16[R_IO_H])
+#define RSCAN0TMDF167HL (RSCAN0.TMDF167.UINT8[R_IO_HL])
+#define RSCAN0TMDF167HH (RSCAN0.TMDF167.UINT8[R_IO_HH])
+#define RSCAN0TMID68 (RSCAN0.TMID68.UINT32)
+#define RSCAN0TMID68L (RSCAN0.TMID68.UINT16[R_IO_L])
+#define RSCAN0TMID68LL (RSCAN0.TMID68.UINT8[R_IO_LL])
+#define RSCAN0TMID68LH (RSCAN0.TMID68.UINT8[R_IO_LH])
+#define RSCAN0TMID68H (RSCAN0.TMID68.UINT16[R_IO_H])
+#define RSCAN0TMID68HL (RSCAN0.TMID68.UINT8[R_IO_HL])
+#define RSCAN0TMID68HH (RSCAN0.TMID68.UINT8[R_IO_HH])
+#define RSCAN0TMPTR68 (RSCAN0.TMPTR68.UINT32)
+#define RSCAN0TMPTR68L (RSCAN0.TMPTR68.UINT16[R_IO_L])
+#define RSCAN0TMPTR68LL (RSCAN0.TMPTR68.UINT8[R_IO_LL])
+#define RSCAN0TMPTR68LH (RSCAN0.TMPTR68.UINT8[R_IO_LH])
+#define RSCAN0TMPTR68H (RSCAN0.TMPTR68.UINT16[R_IO_H])
+#define RSCAN0TMPTR68HL (RSCAN0.TMPTR68.UINT8[R_IO_HL])
+#define RSCAN0TMPTR68HH (RSCAN0.TMPTR68.UINT8[R_IO_HH])
+#define RSCAN0TMDF068 (RSCAN0.TMDF068.UINT32)
+#define RSCAN0TMDF068L (RSCAN0.TMDF068.UINT16[R_IO_L])
+#define RSCAN0TMDF068LL (RSCAN0.TMDF068.UINT8[R_IO_LL])
+#define RSCAN0TMDF068LH (RSCAN0.TMDF068.UINT8[R_IO_LH])
+#define RSCAN0TMDF068H (RSCAN0.TMDF068.UINT16[R_IO_H])
+#define RSCAN0TMDF068HL (RSCAN0.TMDF068.UINT8[R_IO_HL])
+#define RSCAN0TMDF068HH (RSCAN0.TMDF068.UINT8[R_IO_HH])
+#define RSCAN0TMDF168 (RSCAN0.TMDF168.UINT32)
+#define RSCAN0TMDF168L (RSCAN0.TMDF168.UINT16[R_IO_L])
+#define RSCAN0TMDF168LL (RSCAN0.TMDF168.UINT8[R_IO_LL])
+#define RSCAN0TMDF168LH (RSCAN0.TMDF168.UINT8[R_IO_LH])
+#define RSCAN0TMDF168H (RSCAN0.TMDF168.UINT16[R_IO_H])
+#define RSCAN0TMDF168HL (RSCAN0.TMDF168.UINT8[R_IO_HL])
+#define RSCAN0TMDF168HH (RSCAN0.TMDF168.UINT8[R_IO_HH])
+#define RSCAN0TMID69 (RSCAN0.TMID69.UINT32)
+#define RSCAN0TMID69L (RSCAN0.TMID69.UINT16[R_IO_L])
+#define RSCAN0TMID69LL (RSCAN0.TMID69.UINT8[R_IO_LL])
+#define RSCAN0TMID69LH (RSCAN0.TMID69.UINT8[R_IO_LH])
+#define RSCAN0TMID69H (RSCAN0.TMID69.UINT16[R_IO_H])
+#define RSCAN0TMID69HL (RSCAN0.TMID69.UINT8[R_IO_HL])
+#define RSCAN0TMID69HH (RSCAN0.TMID69.UINT8[R_IO_HH])
+#define RSCAN0TMPTR69 (RSCAN0.TMPTR69.UINT32)
+#define RSCAN0TMPTR69L (RSCAN0.TMPTR69.UINT16[R_IO_L])
+#define RSCAN0TMPTR69LL (RSCAN0.TMPTR69.UINT8[R_IO_LL])
+#define RSCAN0TMPTR69LH (RSCAN0.TMPTR69.UINT8[R_IO_LH])
+#define RSCAN0TMPTR69H (RSCAN0.TMPTR69.UINT16[R_IO_H])
+#define RSCAN0TMPTR69HL (RSCAN0.TMPTR69.UINT8[R_IO_HL])
+#define RSCAN0TMPTR69HH (RSCAN0.TMPTR69.UINT8[R_IO_HH])
+#define RSCAN0TMDF069 (RSCAN0.TMDF069.UINT32)
+#define RSCAN0TMDF069L (RSCAN0.TMDF069.UINT16[R_IO_L])
+#define RSCAN0TMDF069LL (RSCAN0.TMDF069.UINT8[R_IO_LL])
+#define RSCAN0TMDF069LH (RSCAN0.TMDF069.UINT8[R_IO_LH])
+#define RSCAN0TMDF069H (RSCAN0.TMDF069.UINT16[R_IO_H])
+#define RSCAN0TMDF069HL (RSCAN0.TMDF069.UINT8[R_IO_HL])
+#define RSCAN0TMDF069HH (RSCAN0.TMDF069.UINT8[R_IO_HH])
+#define RSCAN0TMDF169 (RSCAN0.TMDF169.UINT32)
+#define RSCAN0TMDF169L (RSCAN0.TMDF169.UINT16[R_IO_L])
+#define RSCAN0TMDF169LL (RSCAN0.TMDF169.UINT8[R_IO_LL])
+#define RSCAN0TMDF169LH (RSCAN0.TMDF169.UINT8[R_IO_LH])
+#define RSCAN0TMDF169H (RSCAN0.TMDF169.UINT16[R_IO_H])
+#define RSCAN0TMDF169HL (RSCAN0.TMDF169.UINT8[R_IO_HL])
+#define RSCAN0TMDF169HH (RSCAN0.TMDF169.UINT8[R_IO_HH])
+#define RSCAN0TMID70 (RSCAN0.TMID70.UINT32)
+#define RSCAN0TMID70L (RSCAN0.TMID70.UINT16[R_IO_L])
+#define RSCAN0TMID70LL (RSCAN0.TMID70.UINT8[R_IO_LL])
+#define RSCAN0TMID70LH (RSCAN0.TMID70.UINT8[R_IO_LH])
+#define RSCAN0TMID70H (RSCAN0.TMID70.UINT16[R_IO_H])
+#define RSCAN0TMID70HL (RSCAN0.TMID70.UINT8[R_IO_HL])
+#define RSCAN0TMID70HH (RSCAN0.TMID70.UINT8[R_IO_HH])
+#define RSCAN0TMPTR70 (RSCAN0.TMPTR70.UINT32)
+#define RSCAN0TMPTR70L (RSCAN0.TMPTR70.UINT16[R_IO_L])
+#define RSCAN0TMPTR70LL (RSCAN0.TMPTR70.UINT8[R_IO_LL])
+#define RSCAN0TMPTR70LH (RSCAN0.TMPTR70.UINT8[R_IO_LH])
+#define RSCAN0TMPTR70H (RSCAN0.TMPTR70.UINT16[R_IO_H])
+#define RSCAN0TMPTR70HL (RSCAN0.TMPTR70.UINT8[R_IO_HL])
+#define RSCAN0TMPTR70HH (RSCAN0.TMPTR70.UINT8[R_IO_HH])
+#define RSCAN0TMDF070 (RSCAN0.TMDF070.UINT32)
+#define RSCAN0TMDF070L (RSCAN0.TMDF070.UINT16[R_IO_L])
+#define RSCAN0TMDF070LL (RSCAN0.TMDF070.UINT8[R_IO_LL])
+#define RSCAN0TMDF070LH (RSCAN0.TMDF070.UINT8[R_IO_LH])
+#define RSCAN0TMDF070H (RSCAN0.TMDF070.UINT16[R_IO_H])
+#define RSCAN0TMDF070HL (RSCAN0.TMDF070.UINT8[R_IO_HL])
+#define RSCAN0TMDF070HH (RSCAN0.TMDF070.UINT8[R_IO_HH])
+#define RSCAN0TMDF170 (RSCAN0.TMDF170.UINT32)
+#define RSCAN0TMDF170L (RSCAN0.TMDF170.UINT16[R_IO_L])
+#define RSCAN0TMDF170LL (RSCAN0.TMDF170.UINT8[R_IO_LL])
+#define RSCAN0TMDF170LH (RSCAN0.TMDF170.UINT8[R_IO_LH])
+#define RSCAN0TMDF170H (RSCAN0.TMDF170.UINT16[R_IO_H])
+#define RSCAN0TMDF170HL (RSCAN0.TMDF170.UINT8[R_IO_HL])
+#define RSCAN0TMDF170HH (RSCAN0.TMDF170.UINT8[R_IO_HH])
+#define RSCAN0TMID71 (RSCAN0.TMID71.UINT32)
+#define RSCAN0TMID71L (RSCAN0.TMID71.UINT16[R_IO_L])
+#define RSCAN0TMID71LL (RSCAN0.TMID71.UINT8[R_IO_LL])
+#define RSCAN0TMID71LH (RSCAN0.TMID71.UINT8[R_IO_LH])
+#define RSCAN0TMID71H (RSCAN0.TMID71.UINT16[R_IO_H])
+#define RSCAN0TMID71HL (RSCAN0.TMID71.UINT8[R_IO_HL])
+#define RSCAN0TMID71HH (RSCAN0.TMID71.UINT8[R_IO_HH])
+#define RSCAN0TMPTR71 (RSCAN0.TMPTR71.UINT32)
+#define RSCAN0TMPTR71L (RSCAN0.TMPTR71.UINT16[R_IO_L])
+#define RSCAN0TMPTR71LL (RSCAN0.TMPTR71.UINT8[R_IO_LL])
+#define RSCAN0TMPTR71LH (RSCAN0.TMPTR71.UINT8[R_IO_LH])
+#define RSCAN0TMPTR71H (RSCAN0.TMPTR71.UINT16[R_IO_H])
+#define RSCAN0TMPTR71HL (RSCAN0.TMPTR71.UINT8[R_IO_HL])
+#define RSCAN0TMPTR71HH (RSCAN0.TMPTR71.UINT8[R_IO_HH])
+#define RSCAN0TMDF071 (RSCAN0.TMDF071.UINT32)
+#define RSCAN0TMDF071L (RSCAN0.TMDF071.UINT16[R_IO_L])
+#define RSCAN0TMDF071LL (RSCAN0.TMDF071.UINT8[R_IO_LL])
+#define RSCAN0TMDF071LH (RSCAN0.TMDF071.UINT8[R_IO_LH])
+#define RSCAN0TMDF071H (RSCAN0.TMDF071.UINT16[R_IO_H])
+#define RSCAN0TMDF071HL (RSCAN0.TMDF071.UINT8[R_IO_HL])
+#define RSCAN0TMDF071HH (RSCAN0.TMDF071.UINT8[R_IO_HH])
+#define RSCAN0TMDF171 (RSCAN0.TMDF171.UINT32)
+#define RSCAN0TMDF171L (RSCAN0.TMDF171.UINT16[R_IO_L])
+#define RSCAN0TMDF171LL (RSCAN0.TMDF171.UINT8[R_IO_LL])
+#define RSCAN0TMDF171LH (RSCAN0.TMDF171.UINT8[R_IO_LH])
+#define RSCAN0TMDF171H (RSCAN0.TMDF171.UINT16[R_IO_H])
+#define RSCAN0TMDF171HL (RSCAN0.TMDF171.UINT8[R_IO_HL])
+#define RSCAN0TMDF171HH (RSCAN0.TMDF171.UINT8[R_IO_HH])
+#define RSCAN0TMID72 (RSCAN0.TMID72.UINT32)
+#define RSCAN0TMID72L (RSCAN0.TMID72.UINT16[R_IO_L])
+#define RSCAN0TMID72LL (RSCAN0.TMID72.UINT8[R_IO_LL])
+#define RSCAN0TMID72LH (RSCAN0.TMID72.UINT8[R_IO_LH])
+#define RSCAN0TMID72H (RSCAN0.TMID72.UINT16[R_IO_H])
+#define RSCAN0TMID72HL (RSCAN0.TMID72.UINT8[R_IO_HL])
+#define RSCAN0TMID72HH (RSCAN0.TMID72.UINT8[R_IO_HH])
+#define RSCAN0TMPTR72 (RSCAN0.TMPTR72.UINT32)
+#define RSCAN0TMPTR72L (RSCAN0.TMPTR72.UINT16[R_IO_L])
+#define RSCAN0TMPTR72LL (RSCAN0.TMPTR72.UINT8[R_IO_LL])
+#define RSCAN0TMPTR72LH (RSCAN0.TMPTR72.UINT8[R_IO_LH])
+#define RSCAN0TMPTR72H (RSCAN0.TMPTR72.UINT16[R_IO_H])
+#define RSCAN0TMPTR72HL (RSCAN0.TMPTR72.UINT8[R_IO_HL])
+#define RSCAN0TMPTR72HH (RSCAN0.TMPTR72.UINT8[R_IO_HH])
+#define RSCAN0TMDF072 (RSCAN0.TMDF072.UINT32)
+#define RSCAN0TMDF072L (RSCAN0.TMDF072.UINT16[R_IO_L])
+#define RSCAN0TMDF072LL (RSCAN0.TMDF072.UINT8[R_IO_LL])
+#define RSCAN0TMDF072LH (RSCAN0.TMDF072.UINT8[R_IO_LH])
+#define RSCAN0TMDF072H (RSCAN0.TMDF072.UINT16[R_IO_H])
+#define RSCAN0TMDF072HL (RSCAN0.TMDF072.UINT8[R_IO_HL])
+#define RSCAN0TMDF072HH (RSCAN0.TMDF072.UINT8[R_IO_HH])
+#define RSCAN0TMDF172 (RSCAN0.TMDF172.UINT32)
+#define RSCAN0TMDF172L (RSCAN0.TMDF172.UINT16[R_IO_L])
+#define RSCAN0TMDF172LL (RSCAN0.TMDF172.UINT8[R_IO_LL])
+#define RSCAN0TMDF172LH (RSCAN0.TMDF172.UINT8[R_IO_LH])
+#define RSCAN0TMDF172H (RSCAN0.TMDF172.UINT16[R_IO_H])
+#define RSCAN0TMDF172HL (RSCAN0.TMDF172.UINT8[R_IO_HL])
+#define RSCAN0TMDF172HH (RSCAN0.TMDF172.UINT8[R_IO_HH])
+#define RSCAN0TMID73 (RSCAN0.TMID73.UINT32)
+#define RSCAN0TMID73L (RSCAN0.TMID73.UINT16[R_IO_L])
+#define RSCAN0TMID73LL (RSCAN0.TMID73.UINT8[R_IO_LL])
+#define RSCAN0TMID73LH (RSCAN0.TMID73.UINT8[R_IO_LH])
+#define RSCAN0TMID73H (RSCAN0.TMID73.UINT16[R_IO_H])
+#define RSCAN0TMID73HL (RSCAN0.TMID73.UINT8[R_IO_HL])
+#define RSCAN0TMID73HH (RSCAN0.TMID73.UINT8[R_IO_HH])
+#define RSCAN0TMPTR73 (RSCAN0.TMPTR73.UINT32)
+#define RSCAN0TMPTR73L (RSCAN0.TMPTR73.UINT16[R_IO_L])
+#define RSCAN0TMPTR73LL (RSCAN0.TMPTR73.UINT8[R_IO_LL])
+#define RSCAN0TMPTR73LH (RSCAN0.TMPTR73.UINT8[R_IO_LH])
+#define RSCAN0TMPTR73H (RSCAN0.TMPTR73.UINT16[R_IO_H])
+#define RSCAN0TMPTR73HL (RSCAN0.TMPTR73.UINT8[R_IO_HL])
+#define RSCAN0TMPTR73HH (RSCAN0.TMPTR73.UINT8[R_IO_HH])
+#define RSCAN0TMDF073 (RSCAN0.TMDF073.UINT32)
+#define RSCAN0TMDF073L (RSCAN0.TMDF073.UINT16[R_IO_L])
+#define RSCAN0TMDF073LL (RSCAN0.TMDF073.UINT8[R_IO_LL])
+#define RSCAN0TMDF073LH (RSCAN0.TMDF073.UINT8[R_IO_LH])
+#define RSCAN0TMDF073H (RSCAN0.TMDF073.UINT16[R_IO_H])
+#define RSCAN0TMDF073HL (RSCAN0.TMDF073.UINT8[R_IO_HL])
+#define RSCAN0TMDF073HH (RSCAN0.TMDF073.UINT8[R_IO_HH])
+#define RSCAN0TMDF173 (RSCAN0.TMDF173.UINT32)
+#define RSCAN0TMDF173L (RSCAN0.TMDF173.UINT16[R_IO_L])
+#define RSCAN0TMDF173LL (RSCAN0.TMDF173.UINT8[R_IO_LL])
+#define RSCAN0TMDF173LH (RSCAN0.TMDF173.UINT8[R_IO_LH])
+#define RSCAN0TMDF173H (RSCAN0.TMDF173.UINT16[R_IO_H])
+#define RSCAN0TMDF173HL (RSCAN0.TMDF173.UINT8[R_IO_HL])
+#define RSCAN0TMDF173HH (RSCAN0.TMDF173.UINT8[R_IO_HH])
+#define RSCAN0TMID74 (RSCAN0.TMID74.UINT32)
+#define RSCAN0TMID74L (RSCAN0.TMID74.UINT16[R_IO_L])
+#define RSCAN0TMID74LL (RSCAN0.TMID74.UINT8[R_IO_LL])
+#define RSCAN0TMID74LH (RSCAN0.TMID74.UINT8[R_IO_LH])
+#define RSCAN0TMID74H (RSCAN0.TMID74.UINT16[R_IO_H])
+#define RSCAN0TMID74HL (RSCAN0.TMID74.UINT8[R_IO_HL])
+#define RSCAN0TMID74HH (RSCAN0.TMID74.UINT8[R_IO_HH])
+#define RSCAN0TMPTR74 (RSCAN0.TMPTR74.UINT32)
+#define RSCAN0TMPTR74L (RSCAN0.TMPTR74.UINT16[R_IO_L])
+#define RSCAN0TMPTR74LL (RSCAN0.TMPTR74.UINT8[R_IO_LL])
+#define RSCAN0TMPTR74LH (RSCAN0.TMPTR74.UINT8[R_IO_LH])
+#define RSCAN0TMPTR74H (RSCAN0.TMPTR74.UINT16[R_IO_H])
+#define RSCAN0TMPTR74HL (RSCAN0.TMPTR74.UINT8[R_IO_HL])
+#define RSCAN0TMPTR74HH (RSCAN0.TMPTR74.UINT8[R_IO_HH])
+#define RSCAN0TMDF074 (RSCAN0.TMDF074.UINT32)
+#define RSCAN0TMDF074L (RSCAN0.TMDF074.UINT16[R_IO_L])
+#define RSCAN0TMDF074LL (RSCAN0.TMDF074.UINT8[R_IO_LL])
+#define RSCAN0TMDF074LH (RSCAN0.TMDF074.UINT8[R_IO_LH])
+#define RSCAN0TMDF074H (RSCAN0.TMDF074.UINT16[R_IO_H])
+#define RSCAN0TMDF074HL (RSCAN0.TMDF074.UINT8[R_IO_HL])
+#define RSCAN0TMDF074HH (RSCAN0.TMDF074.UINT8[R_IO_HH])
+#define RSCAN0TMDF174 (RSCAN0.TMDF174.UINT32)
+#define RSCAN0TMDF174L (RSCAN0.TMDF174.UINT16[R_IO_L])
+#define RSCAN0TMDF174LL (RSCAN0.TMDF174.UINT8[R_IO_LL])
+#define RSCAN0TMDF174LH (RSCAN0.TMDF174.UINT8[R_IO_LH])
+#define RSCAN0TMDF174H (RSCAN0.TMDF174.UINT16[R_IO_H])
+#define RSCAN0TMDF174HL (RSCAN0.TMDF174.UINT8[R_IO_HL])
+#define RSCAN0TMDF174HH (RSCAN0.TMDF174.UINT8[R_IO_HH])
+#define RSCAN0TMID75 (RSCAN0.TMID75.UINT32)
+#define RSCAN0TMID75L (RSCAN0.TMID75.UINT16[R_IO_L])
+#define RSCAN0TMID75LL (RSCAN0.TMID75.UINT8[R_IO_LL])
+#define RSCAN0TMID75LH (RSCAN0.TMID75.UINT8[R_IO_LH])
+#define RSCAN0TMID75H (RSCAN0.TMID75.UINT16[R_IO_H])
+#define RSCAN0TMID75HL (RSCAN0.TMID75.UINT8[R_IO_HL])
+#define RSCAN0TMID75HH (RSCAN0.TMID75.UINT8[R_IO_HH])
+#define RSCAN0TMPTR75 (RSCAN0.TMPTR75.UINT32)
+#define RSCAN0TMPTR75L (RSCAN0.TMPTR75.UINT16[R_IO_L])
+#define RSCAN0TMPTR75LL (RSCAN0.TMPTR75.UINT8[R_IO_LL])
+#define RSCAN0TMPTR75LH (RSCAN0.TMPTR75.UINT8[R_IO_LH])
+#define RSCAN0TMPTR75H (RSCAN0.TMPTR75.UINT16[R_IO_H])
+#define RSCAN0TMPTR75HL (RSCAN0.TMPTR75.UINT8[R_IO_HL])
+#define RSCAN0TMPTR75HH (RSCAN0.TMPTR75.UINT8[R_IO_HH])
+#define RSCAN0TMDF075 (RSCAN0.TMDF075.UINT32)
+#define RSCAN0TMDF075L (RSCAN0.TMDF075.UINT16[R_IO_L])
+#define RSCAN0TMDF075LL (RSCAN0.TMDF075.UINT8[R_IO_LL])
+#define RSCAN0TMDF075LH (RSCAN0.TMDF075.UINT8[R_IO_LH])
+#define RSCAN0TMDF075H (RSCAN0.TMDF075.UINT16[R_IO_H])
+#define RSCAN0TMDF075HL (RSCAN0.TMDF075.UINT8[R_IO_HL])
+#define RSCAN0TMDF075HH (RSCAN0.TMDF075.UINT8[R_IO_HH])
+#define RSCAN0TMDF175 (RSCAN0.TMDF175.UINT32)
+#define RSCAN0TMDF175L (RSCAN0.TMDF175.UINT16[R_IO_L])
+#define RSCAN0TMDF175LL (RSCAN0.TMDF175.UINT8[R_IO_LL])
+#define RSCAN0TMDF175LH (RSCAN0.TMDF175.UINT8[R_IO_LH])
+#define RSCAN0TMDF175H (RSCAN0.TMDF175.UINT16[R_IO_H])
+#define RSCAN0TMDF175HL (RSCAN0.TMDF175.UINT8[R_IO_HL])
+#define RSCAN0TMDF175HH (RSCAN0.TMDF175.UINT8[R_IO_HH])
+#define RSCAN0TMID76 (RSCAN0.TMID76.UINT32)
+#define RSCAN0TMID76L (RSCAN0.TMID76.UINT16[R_IO_L])
+#define RSCAN0TMID76LL (RSCAN0.TMID76.UINT8[R_IO_LL])
+#define RSCAN0TMID76LH (RSCAN0.TMID76.UINT8[R_IO_LH])
+#define RSCAN0TMID76H (RSCAN0.TMID76.UINT16[R_IO_H])
+#define RSCAN0TMID76HL (RSCAN0.TMID76.UINT8[R_IO_HL])
+#define RSCAN0TMID76HH (RSCAN0.TMID76.UINT8[R_IO_HH])
+#define RSCAN0TMPTR76 (RSCAN0.TMPTR76.UINT32)
+#define RSCAN0TMPTR76L (RSCAN0.TMPTR76.UINT16[R_IO_L])
+#define RSCAN0TMPTR76LL (RSCAN0.TMPTR76.UINT8[R_IO_LL])
+#define RSCAN0TMPTR76LH (RSCAN0.TMPTR76.UINT8[R_IO_LH])
+#define RSCAN0TMPTR76H (RSCAN0.TMPTR76.UINT16[R_IO_H])
+#define RSCAN0TMPTR76HL (RSCAN0.TMPTR76.UINT8[R_IO_HL])
+#define RSCAN0TMPTR76HH (RSCAN0.TMPTR76.UINT8[R_IO_HH])
+#define RSCAN0TMDF076 (RSCAN0.TMDF076.UINT32)
+#define RSCAN0TMDF076L (RSCAN0.TMDF076.UINT16[R_IO_L])
+#define RSCAN0TMDF076LL (RSCAN0.TMDF076.UINT8[R_IO_LL])
+#define RSCAN0TMDF076LH (RSCAN0.TMDF076.UINT8[R_IO_LH])
+#define RSCAN0TMDF076H (RSCAN0.TMDF076.UINT16[R_IO_H])
+#define RSCAN0TMDF076HL (RSCAN0.TMDF076.UINT8[R_IO_HL])
+#define RSCAN0TMDF076HH (RSCAN0.TMDF076.UINT8[R_IO_HH])
+#define RSCAN0TMDF176 (RSCAN0.TMDF176.UINT32)
+#define RSCAN0TMDF176L (RSCAN0.TMDF176.UINT16[R_IO_L])
+#define RSCAN0TMDF176LL (RSCAN0.TMDF176.UINT8[R_IO_LL])
+#define RSCAN0TMDF176LH (RSCAN0.TMDF176.UINT8[R_IO_LH])
+#define RSCAN0TMDF176H (RSCAN0.TMDF176.UINT16[R_IO_H])
+#define RSCAN0TMDF176HL (RSCAN0.TMDF176.UINT8[R_IO_HL])
+#define RSCAN0TMDF176HH (RSCAN0.TMDF176.UINT8[R_IO_HH])
+#define RSCAN0TMID77 (RSCAN0.TMID77.UINT32)
+#define RSCAN0TMID77L (RSCAN0.TMID77.UINT16[R_IO_L])
+#define RSCAN0TMID77LL (RSCAN0.TMID77.UINT8[R_IO_LL])
+#define RSCAN0TMID77LH (RSCAN0.TMID77.UINT8[R_IO_LH])
+#define RSCAN0TMID77H (RSCAN0.TMID77.UINT16[R_IO_H])
+#define RSCAN0TMID77HL (RSCAN0.TMID77.UINT8[R_IO_HL])
+#define RSCAN0TMID77HH (RSCAN0.TMID77.UINT8[R_IO_HH])
+#define RSCAN0TMPTR77 (RSCAN0.TMPTR77.UINT32)
+#define RSCAN0TMPTR77L (RSCAN0.TMPTR77.UINT16[R_IO_L])
+#define RSCAN0TMPTR77LL (RSCAN0.TMPTR77.UINT8[R_IO_LL])
+#define RSCAN0TMPTR77LH (RSCAN0.TMPTR77.UINT8[R_IO_LH])
+#define RSCAN0TMPTR77H (RSCAN0.TMPTR77.UINT16[R_IO_H])
+#define RSCAN0TMPTR77HL (RSCAN0.TMPTR77.UINT8[R_IO_HL])
+#define RSCAN0TMPTR77HH (RSCAN0.TMPTR77.UINT8[R_IO_HH])
+#define RSCAN0TMDF077 (RSCAN0.TMDF077.UINT32)
+#define RSCAN0TMDF077L (RSCAN0.TMDF077.UINT16[R_IO_L])
+#define RSCAN0TMDF077LL (RSCAN0.TMDF077.UINT8[R_IO_LL])
+#define RSCAN0TMDF077LH (RSCAN0.TMDF077.UINT8[R_IO_LH])
+#define RSCAN0TMDF077H (RSCAN0.TMDF077.UINT16[R_IO_H])
+#define RSCAN0TMDF077HL (RSCAN0.TMDF077.UINT8[R_IO_HL])
+#define RSCAN0TMDF077HH (RSCAN0.TMDF077.UINT8[R_IO_HH])
+#define RSCAN0TMDF177 (RSCAN0.TMDF177.UINT32)
+#define RSCAN0TMDF177L (RSCAN0.TMDF177.UINT16[R_IO_L])
+#define RSCAN0TMDF177LL (RSCAN0.TMDF177.UINT8[R_IO_LL])
+#define RSCAN0TMDF177LH (RSCAN0.TMDF177.UINT8[R_IO_LH])
+#define RSCAN0TMDF177H (RSCAN0.TMDF177.UINT16[R_IO_H])
+#define RSCAN0TMDF177HL (RSCAN0.TMDF177.UINT8[R_IO_HL])
+#define RSCAN0TMDF177HH (RSCAN0.TMDF177.UINT8[R_IO_HH])
+#define RSCAN0TMID78 (RSCAN0.TMID78.UINT32)
+#define RSCAN0TMID78L (RSCAN0.TMID78.UINT16[R_IO_L])
+#define RSCAN0TMID78LL (RSCAN0.TMID78.UINT8[R_IO_LL])
+#define RSCAN0TMID78LH (RSCAN0.TMID78.UINT8[R_IO_LH])
+#define RSCAN0TMID78H (RSCAN0.TMID78.UINT16[R_IO_H])
+#define RSCAN0TMID78HL (RSCAN0.TMID78.UINT8[R_IO_HL])
+#define RSCAN0TMID78HH (RSCAN0.TMID78.UINT8[R_IO_HH])
+#define RSCAN0TMPTR78 (RSCAN0.TMPTR78.UINT32)
+#define RSCAN0TMPTR78L (RSCAN0.TMPTR78.UINT16[R_IO_L])
+#define RSCAN0TMPTR78LL (RSCAN0.TMPTR78.UINT8[R_IO_LL])
+#define RSCAN0TMPTR78LH (RSCAN0.TMPTR78.UINT8[R_IO_LH])
+#define RSCAN0TMPTR78H (RSCAN0.TMPTR78.UINT16[R_IO_H])
+#define RSCAN0TMPTR78HL (RSCAN0.TMPTR78.UINT8[R_IO_HL])
+#define RSCAN0TMPTR78HH (RSCAN0.TMPTR78.UINT8[R_IO_HH])
+#define RSCAN0TMDF078 (RSCAN0.TMDF078.UINT32)
+#define RSCAN0TMDF078L (RSCAN0.TMDF078.UINT16[R_IO_L])
+#define RSCAN0TMDF078LL (RSCAN0.TMDF078.UINT8[R_IO_LL])
+#define RSCAN0TMDF078LH (RSCAN0.TMDF078.UINT8[R_IO_LH])
+#define RSCAN0TMDF078H (RSCAN0.TMDF078.UINT16[R_IO_H])
+#define RSCAN0TMDF078HL (RSCAN0.TMDF078.UINT8[R_IO_HL])
+#define RSCAN0TMDF078HH (RSCAN0.TMDF078.UINT8[R_IO_HH])
+#define RSCAN0TMDF178 (RSCAN0.TMDF178.UINT32)
+#define RSCAN0TMDF178L (RSCAN0.TMDF178.UINT16[R_IO_L])
+#define RSCAN0TMDF178LL (RSCAN0.TMDF178.UINT8[R_IO_LL])
+#define RSCAN0TMDF178LH (RSCAN0.TMDF178.UINT8[R_IO_LH])
+#define RSCAN0TMDF178H (RSCAN0.TMDF178.UINT16[R_IO_H])
+#define RSCAN0TMDF178HL (RSCAN0.TMDF178.UINT8[R_IO_HL])
+#define RSCAN0TMDF178HH (RSCAN0.TMDF178.UINT8[R_IO_HH])
+#define RSCAN0TMID79 (RSCAN0.TMID79.UINT32)
+#define RSCAN0TMID79L (RSCAN0.TMID79.UINT16[R_IO_L])
+#define RSCAN0TMID79LL (RSCAN0.TMID79.UINT8[R_IO_LL])
+#define RSCAN0TMID79LH (RSCAN0.TMID79.UINT8[R_IO_LH])
+#define RSCAN0TMID79H (RSCAN0.TMID79.UINT16[R_IO_H])
+#define RSCAN0TMID79HL (RSCAN0.TMID79.UINT8[R_IO_HL])
+#define RSCAN0TMID79HH (RSCAN0.TMID79.UINT8[R_IO_HH])
+#define RSCAN0TMPTR79 (RSCAN0.TMPTR79.UINT32)
+#define RSCAN0TMPTR79L (RSCAN0.TMPTR79.UINT16[R_IO_L])
+#define RSCAN0TMPTR79LL (RSCAN0.TMPTR79.UINT8[R_IO_LL])
+#define RSCAN0TMPTR79LH (RSCAN0.TMPTR79.UINT8[R_IO_LH])
+#define RSCAN0TMPTR79H (RSCAN0.TMPTR79.UINT16[R_IO_H])
+#define RSCAN0TMPTR79HL (RSCAN0.TMPTR79.UINT8[R_IO_HL])
+#define RSCAN0TMPTR79HH (RSCAN0.TMPTR79.UINT8[R_IO_HH])
+#define RSCAN0TMDF079 (RSCAN0.TMDF079.UINT32)
+#define RSCAN0TMDF079L (RSCAN0.TMDF079.UINT16[R_IO_L])
+#define RSCAN0TMDF079LL (RSCAN0.TMDF079.UINT8[R_IO_LL])
+#define RSCAN0TMDF079LH (RSCAN0.TMDF079.UINT8[R_IO_LH])
+#define RSCAN0TMDF079H (RSCAN0.TMDF079.UINT16[R_IO_H])
+#define RSCAN0TMDF079HL (RSCAN0.TMDF079.UINT8[R_IO_HL])
+#define RSCAN0TMDF079HH (RSCAN0.TMDF079.UINT8[R_IO_HH])
+#define RSCAN0TMDF179 (RSCAN0.TMDF179.UINT32)
+#define RSCAN0TMDF179L (RSCAN0.TMDF179.UINT16[R_IO_L])
+#define RSCAN0TMDF179LL (RSCAN0.TMDF179.UINT8[R_IO_LL])
+#define RSCAN0TMDF179LH (RSCAN0.TMDF179.UINT8[R_IO_LH])
+#define RSCAN0TMDF179H (RSCAN0.TMDF179.UINT16[R_IO_H])
+#define RSCAN0TMDF179HL (RSCAN0.TMDF179.UINT8[R_IO_HL])
+#define RSCAN0TMDF179HH (RSCAN0.TMDF179.UINT8[R_IO_HH])
+#define RSCAN0THLACC0 (RSCAN0.THLACC0.UINT32)
+#define RSCAN0THLACC0L (RSCAN0.THLACC0.UINT16[R_IO_L])
+#define RSCAN0THLACC0LL (RSCAN0.THLACC0.UINT8[R_IO_LL])
+#define RSCAN0THLACC0LH (RSCAN0.THLACC0.UINT8[R_IO_LH])
+#define RSCAN0THLACC0H (RSCAN0.THLACC0.UINT16[R_IO_H])
+#define RSCAN0THLACC0HL (RSCAN0.THLACC0.UINT8[R_IO_HL])
+#define RSCAN0THLACC0HH (RSCAN0.THLACC0.UINT8[R_IO_HH])
+#define RSCAN0THLACC1 (RSCAN0.THLACC1.UINT32)
+#define RSCAN0THLACC1L (RSCAN0.THLACC1.UINT16[R_IO_L])
+#define RSCAN0THLACC1LL (RSCAN0.THLACC1.UINT8[R_IO_LL])
+#define RSCAN0THLACC1LH (RSCAN0.THLACC1.UINT8[R_IO_LH])
+#define RSCAN0THLACC1H (RSCAN0.THLACC1.UINT16[R_IO_H])
+#define RSCAN0THLACC1HL (RSCAN0.THLACC1.UINT8[R_IO_HL])
+#define RSCAN0THLACC1HH (RSCAN0.THLACC1.UINT8[R_IO_HH])
+#define RSCAN0THLACC2 (RSCAN0.THLACC2.UINT32)
+#define RSCAN0THLACC2L (RSCAN0.THLACC2.UINT16[R_IO_L])
+#define RSCAN0THLACC2LL (RSCAN0.THLACC2.UINT8[R_IO_LL])
+#define RSCAN0THLACC2LH (RSCAN0.THLACC2.UINT8[R_IO_LH])
+#define RSCAN0THLACC2H (RSCAN0.THLACC2.UINT16[R_IO_H])
+#define RSCAN0THLACC2HL (RSCAN0.THLACC2.UINT8[R_IO_HL])
+#define RSCAN0THLACC2HH (RSCAN0.THLACC2.UINT8[R_IO_HH])
+#define RSCAN0THLACC3 (RSCAN0.THLACC3.UINT32)
+#define RSCAN0THLACC3L (RSCAN0.THLACC3.UINT16[R_IO_L])
+#define RSCAN0THLACC3LL (RSCAN0.THLACC3.UINT8[R_IO_LL])
+#define RSCAN0THLACC3LH (RSCAN0.THLACC3.UINT8[R_IO_LH])
+#define RSCAN0THLACC3H (RSCAN0.THLACC3.UINT16[R_IO_H])
+#define RSCAN0THLACC3HL (RSCAN0.THLACC3.UINT8[R_IO_HL])
+#define RSCAN0THLACC3HH (RSCAN0.THLACC3.UINT8[R_IO_HH])
+#define RSCAN0THLACC4 (RSCAN0.THLACC4.UINT32)
+#define RSCAN0THLACC4L (RSCAN0.THLACC4.UINT16[R_IO_L])
+#define RSCAN0THLACC4LL (RSCAN0.THLACC4.UINT8[R_IO_LL])
+#define RSCAN0THLACC4LH (RSCAN0.THLACC4.UINT8[R_IO_LH])
+#define RSCAN0THLACC4H (RSCAN0.THLACC4.UINT16[R_IO_H])
+#define RSCAN0THLACC4HL (RSCAN0.THLACC4.UINT8[R_IO_HL])
+#define RSCAN0THLACC4HH (RSCAN0.THLACC4.UINT8[R_IO_HH])
+
+#define RSCAN0_GAFLCFG0_COUNT (2)
+#define RSCAN0_RMND0_COUNT (3)
+#define RSCAN0_RFCC0_COUNT (8)
+#define RSCAN0_RFSTS0_COUNT (8)
+#define RSCAN0_RFPCTR0_COUNT (8)
+#define RSCAN0_CFCC0_COUNT (15)
+#define RSCAN0_CFSTS0_COUNT (15)
+#define RSCAN0_CFPCTR0_COUNT (15)
+#define RSCAN0_TMC0_COUNT (80)
+#define RSCAN0_TMSTS0_COUNT (80)
+#define RSCAN0_TMTRSTS0_COUNT (3)
+#define RSCAN0_TMTARSTS0_COUNT (3)
+#define RSCAN0_TMTCSTS0_COUNT (3)
+#define RSCAN0_TMTASTS0_COUNT (3)
+#define RSCAN0_TMIEC0_COUNT (3)
+#define RSCAN0_TXQCC0_COUNT (5)
+#define RSCAN0_TXQSTS0_COUNT (5)
+#define RSCAN0_TXQPCTR0_COUNT (5)
+#define RSCAN0_THLCC0_COUNT (5)
+#define RSCAN0_THLSTS0_COUNT (5)
+#define RSCAN0_THLPCTR0_COUNT (5)
+#define RSCAN0_GTINTSTS0_COUNT (2)
+#define RSCAN0_THLACC0_COUNT (5)
+
+
+typedef struct st_rscan0
+{
+                                                           /* RSCAN0           */
+
+/* start of struct st_rscan_from_rscan0cncfg */
+    union iodefine_reg32_t  C0CFG;                         /*  C0CFG           */
+    union iodefine_reg32_t  C0CTR;                         /*  C0CTR           */
+    union iodefine_reg32_t  C0STS;                         /*  C0STS           */
+    union iodefine_reg32_t  C0ERFL;                        /*  C0ERFL          */
+
+/* end of struct st_rscan_from_rscan0cncfg */
+    
+/* start of struct st_rscan_from_rscan0cncfg */
+    union iodefine_reg32_t  C1CFG;                         /*  C1CFG           */
+    union iodefine_reg32_t  C1CTR;                         /*  C1CTR           */
+    union iodefine_reg32_t  C1STS;                         /*  C1STS           */
+    union iodefine_reg32_t  C1ERFL;                        /*  C1ERFL          */
+
+/* end of struct st_rscan_from_rscan0cncfg */
+    
+/* start of struct st_rscan_from_rscan0cncfg */
+    union iodefine_reg32_t  C2CFG;                         /*  C2CFG           */
+    union iodefine_reg32_t  C2CTR;                         /*  C2CTR           */
+    union iodefine_reg32_t  C2STS;                         /*  C2STS           */
+    union iodefine_reg32_t  C2ERFL;                        /*  C2ERFL          */
+
+/* end of struct st_rscan_from_rscan0cncfg */
+    
+/* start of struct st_rscan_from_rscan0cncfg */
+    union iodefine_reg32_t  C3CFG;                         /*  C3CFG           */
+    union iodefine_reg32_t  C3CTR;                         /*  C3CTR           */
+    union iodefine_reg32_t  C3STS;                         /*  C3STS           */
+    union iodefine_reg32_t  C3ERFL;                        /*  C3ERFL          */
+
+/* end of struct st_rscan_from_rscan0cncfg */
+    
+/* start of struct st_rscan_from_rscan0cncfg */
+    union iodefine_reg32_t  C4CFG;                         /*  C4CFG           */
+    union iodefine_reg32_t  C4CTR;                         /*  C4CTR           */
+    union iodefine_reg32_t  C4STS;                         /*  C4STS           */
+    union iodefine_reg32_t  C4ERFL;                        /*  C4ERFL          */
+
+/* end of struct st_rscan_from_rscan0cncfg */
+    
+    volatile uint8_t   dummy159[52];                           /*                  */
+    union iodefine_reg32_t  GCFG;                          /*  GCFG            */
+    union iodefine_reg32_t  GCTR;                          /*  GCTR            */
+    union iodefine_reg32_t  GSTS;                          /*  GSTS            */
+    union iodefine_reg32_t  GERFL;                         /*  GERFL           */
+    union iodefine_reg32_16_t  GTSC;                       /*  GTSC            */
+    union iodefine_reg32_t  GAFLECTR;                      /*  GAFLECTR        */
+
+/* #define RSCAN0_GAFLCFG0_COUNT (2) */
+    union iodefine_reg32_t  GAFLCFG0;                      /*  GAFLCFG0        */
+    union iodefine_reg32_t  GAFLCFG1;                      /*  GAFLCFG1        */
+    union iodefine_reg32_t  RMNB;                          /*  RMNB            */
+
+/* #define RSCAN0_RMND0_COUNT (3) */
+    union iodefine_reg32_t  RMND0;                         /*  RMND0           */
+    union iodefine_reg32_t  RMND1;                         /*  RMND1           */
+    union iodefine_reg32_t  RMND2;                         /*  RMND2           */
+    
+    volatile uint8_t   dummy160[4];                            /*                  */
+
+/* #define RSCAN0_RFCC0_COUNT (8) */
+    union iodefine_reg32_t  RFCC0;                         /*  RFCC0           */
+    union iodefine_reg32_t  RFCC1;                         /*  RFCC1           */
+    union iodefine_reg32_t  RFCC2;                         /*  RFCC2           */
+    union iodefine_reg32_t  RFCC3;                         /*  RFCC3           */
+    union iodefine_reg32_t  RFCC4;                         /*  RFCC4           */
+    union iodefine_reg32_t  RFCC5;                         /*  RFCC5           */
+    union iodefine_reg32_t  RFCC6;                         /*  RFCC6           */
+    union iodefine_reg32_t  RFCC7;                         /*  RFCC7           */
+
+/* #define RSCAN0_RFSTS0_COUNT (8) */
+    union iodefine_reg32_t  RFSTS0;                        /*  RFSTS0          */
+    union iodefine_reg32_t  RFSTS1;                        /*  RFSTS1          */
+    union iodefine_reg32_t  RFSTS2;                        /*  RFSTS2          */
+    union iodefine_reg32_t  RFSTS3;                        /*  RFSTS3          */
+    union iodefine_reg32_t  RFSTS4;                        /*  RFSTS4          */
+    union iodefine_reg32_t  RFSTS5;                        /*  RFSTS5          */
+    union iodefine_reg32_t  RFSTS6;                        /*  RFSTS6          */
+    union iodefine_reg32_t  RFSTS7;                        /*  RFSTS7          */
+
+/* #define RSCAN0_RFPCTR0_COUNT (8) */
+    union iodefine_reg32_t  RFPCTR0;                       /*  RFPCTR0         */
+    union iodefine_reg32_t  RFPCTR1;                       /*  RFPCTR1         */
+    union iodefine_reg32_t  RFPCTR2;                       /*  RFPCTR2         */
+    union iodefine_reg32_t  RFPCTR3;                       /*  RFPCTR3         */
+    union iodefine_reg32_t  RFPCTR4;                       /*  RFPCTR4         */
+    union iodefine_reg32_t  RFPCTR5;                       /*  RFPCTR5         */
+    union iodefine_reg32_t  RFPCTR6;                       /*  RFPCTR6         */
+    union iodefine_reg32_t  RFPCTR7;                       /*  RFPCTR7         */
+
+/* #define RSCAN0_CFCC0_COUNT (15) */
+    union iodefine_reg32_t  CFCC0;                         /*  CFCC0           */
+    union iodefine_reg32_t  CFCC1;                         /*  CFCC1           */
+    union iodefine_reg32_t  CFCC2;                         /*  CFCC2           */
+    union iodefine_reg32_t  CFCC3;                         /*  CFCC3           */
+    union iodefine_reg32_t  CFCC4;                         /*  CFCC4           */
+    union iodefine_reg32_t  CFCC5;                         /*  CFCC5           */
+    union iodefine_reg32_t  CFCC6;                         /*  CFCC6           */
+    union iodefine_reg32_t  CFCC7;                         /*  CFCC7           */
+    union iodefine_reg32_t  CFCC8;                         /*  CFCC8           */
+    union iodefine_reg32_t  CFCC9;                         /*  CFCC9           */
+    union iodefine_reg32_t  CFCC10;                        /*  CFCC10          */
+    union iodefine_reg32_t  CFCC11;                        /*  CFCC11          */
+    union iodefine_reg32_t  CFCC12;                        /*  CFCC12          */
+    union iodefine_reg32_t  CFCC13;                        /*  CFCC13          */
+    union iodefine_reg32_t  CFCC14;                        /*  CFCC14          */
+    
+    volatile uint8_t   dummy161[36];                           /*                  */
+
+/* #define RSCAN0_CFSTS0_COUNT (15) */
+    union iodefine_reg32_t  CFSTS0;                        /*  CFSTS0          */
+    union iodefine_reg32_t  CFSTS1;                        /*  CFSTS1          */
+    union iodefine_reg32_t  CFSTS2;                        /*  CFSTS2          */
+    union iodefine_reg32_t  CFSTS3;                        /*  CFSTS3          */
+    union iodefine_reg32_t  CFSTS4;                        /*  CFSTS4          */
+    union iodefine_reg32_t  CFSTS5;                        /*  CFSTS5          */
+    union iodefine_reg32_t  CFSTS6;                        /*  CFSTS6          */
+    union iodefine_reg32_t  CFSTS7;                        /*  CFSTS7          */
+    union iodefine_reg32_t  CFSTS8;                        /*  CFSTS8          */
+    union iodefine_reg32_t  CFSTS9;                        /*  CFSTS9          */
+    union iodefine_reg32_t  CFSTS10;                       /*  CFSTS10         */
+    union iodefine_reg32_t  CFSTS11;                       /*  CFSTS11         */
+    union iodefine_reg32_t  CFSTS12;                       /*  CFSTS12         */
+    union iodefine_reg32_t  CFSTS13;                       /*  CFSTS13         */
+    union iodefine_reg32_t  CFSTS14;                       /*  CFSTS14         */
+    
+    volatile uint8_t   dummy162[36];                           /*                  */
+
+/* #define RSCAN0_CFPCTR0_COUNT (15) */
+    union iodefine_reg32_t  CFPCTR0;                       /*  CFPCTR0         */
+    union iodefine_reg32_t  CFPCTR1;                       /*  CFPCTR1         */
+    union iodefine_reg32_t  CFPCTR2;                       /*  CFPCTR2         */
+    union iodefine_reg32_t  CFPCTR3;                       /*  CFPCTR3         */
+    union iodefine_reg32_t  CFPCTR4;                       /*  CFPCTR4         */
+    union iodefine_reg32_t  CFPCTR5;                       /*  CFPCTR5         */
+    union iodefine_reg32_t  CFPCTR6;                       /*  CFPCTR6         */
+    union iodefine_reg32_t  CFPCTR7;                       /*  CFPCTR7         */
+    union iodefine_reg32_t  CFPCTR8;                       /*  CFPCTR8         */
+    union iodefine_reg32_t  CFPCTR9;                       /*  CFPCTR9         */
+    union iodefine_reg32_t  CFPCTR10;                      /*  CFPCTR10        */
+    union iodefine_reg32_t  CFPCTR11;                      /*  CFPCTR11        */
+    union iodefine_reg32_t  CFPCTR12;                      /*  CFPCTR12        */
+    union iodefine_reg32_t  CFPCTR13;                      /*  CFPCTR13        */
+    union iodefine_reg32_t  CFPCTR14;                      /*  CFPCTR14        */
+    
+    volatile uint8_t   dummy163[36];                           /*                  */
+    union iodefine_reg32_t  FESTS;                         /*  FESTS           */
+    union iodefine_reg32_t  FFSTS;                         /*  FFSTS           */
+    union iodefine_reg32_t  FMSTS;                         /*  FMSTS           */
+    union iodefine_reg32_t  RFISTS;                        /*  RFISTS          */
+    union iodefine_reg32_t  CFRISTS;                       /*  CFRISTS         */
+    union iodefine_reg32_t  CFTISTS;                       /*  CFTISTS         */
+    
+
+/* #define RSCAN0_TMC0_COUNT (80) */
+    volatile uint8_t   TMC0;                                   /*  TMC0            */
+    volatile uint8_t   TMC1;                                   /*  TMC1            */
+    volatile uint8_t   TMC2;                                   /*  TMC2            */
+    volatile uint8_t   TMC3;                                   /*  TMC3            */
+    volatile uint8_t   TMC4;                                   /*  TMC4            */
+    volatile uint8_t   TMC5;                                   /*  TMC5            */
+    volatile uint8_t   TMC6;                                   /*  TMC6            */
+    volatile uint8_t   TMC7;                                   /*  TMC7            */
+    volatile uint8_t   TMC8;                                   /*  TMC8            */
+    volatile uint8_t   TMC9;                                   /*  TMC9            */
+    volatile uint8_t   TMC10;                                  /*  TMC10           */
+    volatile uint8_t   TMC11;                                  /*  TMC11           */
+    volatile uint8_t   TMC12;                                  /*  TMC12           */
+    volatile uint8_t   TMC13;                                  /*  TMC13           */
+    volatile uint8_t   TMC14;                                  /*  TMC14           */
+    volatile uint8_t   TMC15;                                  /*  TMC15           */
+    volatile uint8_t   TMC16;                                  /*  TMC16           */
+    volatile uint8_t   TMC17;                                  /*  TMC17           */
+    volatile uint8_t   TMC18;                                  /*  TMC18           */
+    volatile uint8_t   TMC19;                                  /*  TMC19           */
+    volatile uint8_t   TMC20;                                  /*  TMC20           */
+    volatile uint8_t   TMC21;                                  /*  TMC21           */
+    volatile uint8_t   TMC22;                                  /*  TMC22           */
+    volatile uint8_t   TMC23;                                  /*  TMC23           */
+    volatile uint8_t   TMC24;                                  /*  TMC24           */
+    volatile uint8_t   TMC25;                                  /*  TMC25           */
+    volatile uint8_t   TMC26;                                  /*  TMC26           */
+    volatile uint8_t   TMC27;                                  /*  TMC27           */
+    volatile uint8_t   TMC28;                                  /*  TMC28           */
+    volatile uint8_t   TMC29;                                  /*  TMC29           */
+    volatile uint8_t   TMC30;                                  /*  TMC30           */
+    volatile uint8_t   TMC31;                                  /*  TMC31           */
+    volatile uint8_t   TMC32;                                  /*  TMC32           */
+    volatile uint8_t   TMC33;                                  /*  TMC33           */
+    volatile uint8_t   TMC34;                                  /*  TMC34           */
+    volatile uint8_t   TMC35;                                  /*  TMC35           */
+    volatile uint8_t   TMC36;                                  /*  TMC36           */
+    volatile uint8_t   TMC37;                                  /*  TMC37           */
+    volatile uint8_t   TMC38;                                  /*  TMC38           */
+    volatile uint8_t   TMC39;                                  /*  TMC39           */
+    volatile uint8_t   TMC40;                                  /*  TMC40           */
+    volatile uint8_t   TMC41;                                  /*  TMC41           */
+    volatile uint8_t   TMC42;                                  /*  TMC42           */
+    volatile uint8_t   TMC43;                                  /*  TMC43           */
+    volatile uint8_t   TMC44;                                  /*  TMC44           */
+    volatile uint8_t   TMC45;                                  /*  TMC45           */
+    volatile uint8_t   TMC46;                                  /*  TMC46           */
+    volatile uint8_t   TMC47;                                  /*  TMC47           */
+    volatile uint8_t   TMC48;                                  /*  TMC48           */
+    volatile uint8_t   TMC49;                                  /*  TMC49           */
+    volatile uint8_t   TMC50;                                  /*  TMC50           */
+    volatile uint8_t   TMC51;                                  /*  TMC51           */
+    volatile uint8_t   TMC52;                                  /*  TMC52           */
+    volatile uint8_t   TMC53;                                  /*  TMC53           */
+    volatile uint8_t   TMC54;                                  /*  TMC54           */
+    volatile uint8_t   TMC55;                                  /*  TMC55           */
+    volatile uint8_t   TMC56;                                  /*  TMC56           */
+    volatile uint8_t   TMC57;                                  /*  TMC57           */
+    volatile uint8_t   TMC58;                                  /*  TMC58           */
+    volatile uint8_t   TMC59;                                  /*  TMC59           */
+    volatile uint8_t   TMC60;                                  /*  TMC60           */
+    volatile uint8_t   TMC61;                                  /*  TMC61           */
+    volatile uint8_t   TMC62;                                  /*  TMC62           */
+    volatile uint8_t   TMC63;                                  /*  TMC63           */
+    volatile uint8_t   TMC64;                                  /*  TMC64           */
+    volatile uint8_t   TMC65;                                  /*  TMC65           */
+    volatile uint8_t   TMC66;                                  /*  TMC66           */
+    volatile uint8_t   TMC67;                                  /*  TMC67           */
+    volatile uint8_t   TMC68;                                  /*  TMC68           */
+    volatile uint8_t   TMC69;                                  /*  TMC69           */
+    volatile uint8_t   TMC70;                                  /*  TMC70           */
+    volatile uint8_t   TMC71;                                  /*  TMC71           */
+    volatile uint8_t   TMC72;                                  /*  TMC72           */
+    volatile uint8_t   TMC73;                                  /*  TMC73           */
+    volatile uint8_t   TMC74;                                  /*  TMC74           */
+    volatile uint8_t   TMC75;                                  /*  TMC75           */
+    volatile uint8_t   TMC76;                                  /*  TMC76           */
+    volatile uint8_t   TMC77;                                  /*  TMC77           */
+    volatile uint8_t   TMC78;                                  /*  TMC78           */
+    volatile uint8_t   TMC79;                                  /*  TMC79           */
+    volatile uint8_t   dummy164[48];                           /*                  */
+
+/* #define RSCAN0_TMSTS0_COUNT (80) */
+    volatile uint8_t   TMSTS0;                                 /*  TMSTS0          */
+    volatile uint8_t   TMSTS1;                                 /*  TMSTS1          */
+    volatile uint8_t   TMSTS2;                                 /*  TMSTS2          */
+    volatile uint8_t   TMSTS3;                                 /*  TMSTS3          */
+    volatile uint8_t   TMSTS4;                                 /*  TMSTS4          */
+    volatile uint8_t   TMSTS5;                                 /*  TMSTS5          */
+    volatile uint8_t   TMSTS6;                                 /*  TMSTS6          */
+    volatile uint8_t   TMSTS7;                                 /*  TMSTS7          */
+    volatile uint8_t   TMSTS8;                                 /*  TMSTS8          */
+    volatile uint8_t   TMSTS9;                                 /*  TMSTS9          */
+    volatile uint8_t   TMSTS10;                                /*  TMSTS10         */
+    volatile uint8_t   TMSTS11;                                /*  TMSTS11         */
+    volatile uint8_t   TMSTS12;                                /*  TMSTS12         */
+    volatile uint8_t   TMSTS13;                                /*  TMSTS13         */
+    volatile uint8_t   TMSTS14;                                /*  TMSTS14         */
+    volatile uint8_t   TMSTS15;                                /*  TMSTS15         */
+    volatile uint8_t   TMSTS16;                                /*  TMSTS16         */
+    volatile uint8_t   TMSTS17;                                /*  TMSTS17         */
+    volatile uint8_t   TMSTS18;                                /*  TMSTS18         */
+    volatile uint8_t   TMSTS19;                                /*  TMSTS19         */
+    volatile uint8_t   TMSTS20;                                /*  TMSTS20         */
+    volatile uint8_t   TMSTS21;                                /*  TMSTS21         */
+    volatile uint8_t   TMSTS22;                                /*  TMSTS22         */
+    volatile uint8_t   TMSTS23;                                /*  TMSTS23         */
+    volatile uint8_t   TMSTS24;                                /*  TMSTS24         */
+    volatile uint8_t   TMSTS25;                                /*  TMSTS25         */
+    volatile uint8_t   TMSTS26;                                /*  TMSTS26         */
+    volatile uint8_t   TMSTS27;                                /*  TMSTS27         */
+    volatile uint8_t   TMSTS28;                                /*  TMSTS28         */
+    volatile uint8_t   TMSTS29;                                /*  TMSTS29         */
+    volatile uint8_t   TMSTS30;                                /*  TMSTS30         */
+    volatile uint8_t   TMSTS31;                                /*  TMSTS31         */
+    volatile uint8_t   TMSTS32;                                /*  TMSTS32         */
+    volatile uint8_t   TMSTS33;                                /*  TMSTS33         */
+    volatile uint8_t   TMSTS34;                                /*  TMSTS34         */
+    volatile uint8_t   TMSTS35;                                /*  TMSTS35         */
+    volatile uint8_t   TMSTS36;                                /*  TMSTS36         */
+    volatile uint8_t   TMSTS37;                                /*  TMSTS37         */
+    volatile uint8_t   TMSTS38;                                /*  TMSTS38         */
+    volatile uint8_t   TMSTS39;                                /*  TMSTS39         */
+    volatile uint8_t   TMSTS40;                                /*  TMSTS40         */
+    volatile uint8_t   TMSTS41;                                /*  TMSTS41         */
+    volatile uint8_t   TMSTS42;                                /*  TMSTS42         */
+    volatile uint8_t   TMSTS43;                                /*  TMSTS43         */
+    volatile uint8_t   TMSTS44;                                /*  TMSTS44         */
+    volatile uint8_t   TMSTS45;                                /*  TMSTS45         */
+    volatile uint8_t   TMSTS46;                                /*  TMSTS46         */
+    volatile uint8_t   TMSTS47;                                /*  TMSTS47         */
+    volatile uint8_t   TMSTS48;                                /*  TMSTS48         */
+    volatile uint8_t   TMSTS49;                                /*  TMSTS49         */
+    volatile uint8_t   TMSTS50;                                /*  TMSTS50         */
+    volatile uint8_t   TMSTS51;                                /*  TMSTS51         */
+    volatile uint8_t   TMSTS52;                                /*  TMSTS52         */
+    volatile uint8_t   TMSTS53;                                /*  TMSTS53         */
+    volatile uint8_t   TMSTS54;                                /*  TMSTS54         */
+    volatile uint8_t   TMSTS55;                                /*  TMSTS55         */
+    volatile uint8_t   TMSTS56;                                /*  TMSTS56         */
+    volatile uint8_t   TMSTS57;                                /*  TMSTS57         */
+    volatile uint8_t   TMSTS58;                                /*  TMSTS58         */
+    volatile uint8_t   TMSTS59;                                /*  TMSTS59         */
+    volatile uint8_t   TMSTS60;                                /*  TMSTS60         */
+    volatile uint8_t   TMSTS61;                                /*  TMSTS61         */
+    volatile uint8_t   TMSTS62;                                /*  TMSTS62         */
+    volatile uint8_t   TMSTS63;                                /*  TMSTS63         */
+    volatile uint8_t   TMSTS64;                                /*  TMSTS64         */
+    volatile uint8_t   TMSTS65;                                /*  TMSTS65         */
+    volatile uint8_t   TMSTS66;                                /*  TMSTS66         */
+    volatile uint8_t   TMSTS67;                                /*  TMSTS67         */
+    volatile uint8_t   TMSTS68;                                /*  TMSTS68         */
+    volatile uint8_t   TMSTS69;                                /*  TMSTS69         */
+    volatile uint8_t   TMSTS70;                                /*  TMSTS70         */
+    volatile uint8_t   TMSTS71;                                /*  TMSTS71         */
+    volatile uint8_t   TMSTS72;                                /*  TMSTS72         */
+    volatile uint8_t   TMSTS73;                                /*  TMSTS73         */
+    volatile uint8_t   TMSTS74;                                /*  TMSTS74         */
+    volatile uint8_t   TMSTS75;                                /*  TMSTS75         */
+    volatile uint8_t   TMSTS76;                                /*  TMSTS76         */
+    volatile uint8_t   TMSTS77;                                /*  TMSTS77         */
+    volatile uint8_t   TMSTS78;                                /*  TMSTS78         */
+    volatile uint8_t   TMSTS79;                                /*  TMSTS79         */
+    volatile uint8_t   dummy165[48];                           /*                  */
+
+/* #define RSCAN0_TMTRSTS0_COUNT (3) */
+    union iodefine_reg32_t  TMTRSTS0;                      /*  TMTRSTS0        */
+    union iodefine_reg32_t  TMTRSTS1;                      /*  TMTRSTS1        */
+    union iodefine_reg32_t  TMTRSTS2;                      /*  TMTRSTS2        */
+    
+    volatile uint8_t   dummy166[4];                            /*                  */
+
+/* #define RSCAN0_TMTARSTS0_COUNT (3) */
+    union iodefine_reg32_t  TMTARSTS0;                     /*  TMTARSTS0       */
+    union iodefine_reg32_t  TMTARSTS1;                     /*  TMTARSTS1       */
+    union iodefine_reg32_t  TMTARSTS2;                     /*  TMTARSTS2       */
+    
+    volatile uint8_t   dummy167[4];                            /*                  */
+
+/* #define RSCAN0_TMTCSTS0_COUNT (3) */
+    union iodefine_reg32_t  TMTCSTS0;                      /*  TMTCSTS0        */
+    union iodefine_reg32_t  TMTCSTS1;                      /*  TMTCSTS1        */
+    union iodefine_reg32_t  TMTCSTS2;                      /*  TMTCSTS2        */
+    
+    volatile uint8_t   dummy168[4];                            /*                  */
+
+/* #define RSCAN0_TMTASTS0_COUNT (3) */
+    union iodefine_reg32_t  TMTASTS0;                      /*  TMTASTS0        */
+    union iodefine_reg32_t  TMTASTS1;                      /*  TMTASTS1        */
+    union iodefine_reg32_t  TMTASTS2;                      /*  TMTASTS2        */
+    
+    volatile uint8_t   dummy169[4];                            /*                  */
+
+/* #define RSCAN0_TMIEC0_COUNT (3) */
+    union iodefine_reg32_t  TMIEC0;                        /*  TMIEC0          */
+    union iodefine_reg32_t  TMIEC1;                        /*  TMIEC1          */
+    union iodefine_reg32_t  TMIEC2;                        /*  TMIEC2          */
+    
+    volatile uint8_t   dummy170[4];                            /*                  */
+
+/* #define RSCAN0_TXQCC0_COUNT (5) */
+    union iodefine_reg32_t  TXQCC0;                        /*  TXQCC0          */
+    union iodefine_reg32_t  TXQCC1;                        /*  TXQCC1          */
+    union iodefine_reg32_t  TXQCC2;                        /*  TXQCC2          */
+    union iodefine_reg32_t  TXQCC3;                        /*  TXQCC3          */
+    union iodefine_reg32_t  TXQCC4;                        /*  TXQCC4          */
+    
+    volatile uint8_t   dummy171[12];                           /*                  */
+
+/* #define RSCAN0_TXQSTS0_COUNT (5) */
+    union iodefine_reg32_t  TXQSTS0;                       /*  TXQSTS0         */
+    union iodefine_reg32_t  TXQSTS1;                       /*  TXQSTS1         */
+    union iodefine_reg32_t  TXQSTS2;                       /*  TXQSTS2         */
+    union iodefine_reg32_t  TXQSTS3;                       /*  TXQSTS3         */
+    union iodefine_reg32_t  TXQSTS4;                       /*  TXQSTS4         */
+    
+    volatile uint8_t   dummy172[12];                           /*                  */
+
+/* #define RSCAN0_TXQPCTR0_COUNT (5) */
+    union iodefine_reg32_t  TXQPCTR0;                      /*  TXQPCTR0        */
+    union iodefine_reg32_t  TXQPCTR1;                      /*  TXQPCTR1        */
+    union iodefine_reg32_t  TXQPCTR2;                      /*  TXQPCTR2        */
+    union iodefine_reg32_t  TXQPCTR3;                      /*  TXQPCTR3        */
+    union iodefine_reg32_t  TXQPCTR4;                      /*  TXQPCTR4        */
+    
+    volatile uint8_t   dummy173[12];                           /*                  */
+
+/* #define RSCAN0_THLCC0_COUNT (5) */
+    union iodefine_reg32_t  THLCC0;                        /*  THLCC0          */
+    union iodefine_reg32_t  THLCC1;                        /*  THLCC1          */
+    union iodefine_reg32_t  THLCC2;                        /*  THLCC2          */
+    union iodefine_reg32_t  THLCC3;                        /*  THLCC3          */
+    union iodefine_reg32_t  THLCC4;                        /*  THLCC4          */
+    
+    volatile uint8_t   dummy174[12];                           /*                  */
+
+/* #define RSCAN0_THLSTS0_COUNT (5) */
+    union iodefine_reg32_t  THLSTS0;                       /*  THLSTS0         */
+    union iodefine_reg32_t  THLSTS1;                       /*  THLSTS1         */
+    union iodefine_reg32_t  THLSTS2;                       /*  THLSTS2         */
+    union iodefine_reg32_t  THLSTS3;                       /*  THLSTS3         */
+    union iodefine_reg32_t  THLSTS4;                       /*  THLSTS4         */
+    
+    volatile uint8_t   dummy175[12];                           /*                  */
+
+/* #define RSCAN0_THLPCTR0_COUNT (5) */
+    union iodefine_reg32_t  THLPCTR0;                      /*  THLPCTR0        */
+    union iodefine_reg32_t  THLPCTR1;                      /*  THLPCTR1        */
+    union iodefine_reg32_t  THLPCTR2;                      /*  THLPCTR2        */
+    union iodefine_reg32_t  THLPCTR3;                      /*  THLPCTR3        */
+    union iodefine_reg32_t  THLPCTR4;                      /*  THLPCTR4        */
+    
+    volatile uint8_t   dummy176[12];                           /*                  */
+
+/* #define RSCAN0_GTINTSTS0_COUNT (2) */
+    union iodefine_reg32_t  GTINTSTS0;                     /*  GTINTSTS0       */
+    union iodefine_reg32_t  GTINTSTS1;                     /*  GTINTSTS1       */
+    union iodefine_reg32_t  GTSTCFG;                       /*  GTSTCFG         */
+    union iodefine_reg32_t  GTSTCTR;                       /*  GTSTCTR         */
+    
+    volatile uint8_t   dummy177[12];                           /*                  */
+    union iodefine_reg32_16_t  GLOCKK;                     /*  GLOCKK          */
+    
+    volatile uint8_t   dummy178[128];                          /*                  */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID0;                       /*  GAFLID0         */
+    union iodefine_reg32_t  GAFLM0;                        /*  GAFLM0          */
+    union iodefine_reg32_t  GAFLP00;                       /*  GAFLP00         */
+    union iodefine_reg32_t  GAFLP10;                       /*  GAFLP10         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID1;                       /*  GAFLID1         */
+    union iodefine_reg32_t  GAFLM1;                        /*  GAFLM1          */
+    union iodefine_reg32_t  GAFLP01;                       /*  GAFLP01         */
+    union iodefine_reg32_t  GAFLP11;                       /*  GAFLP11         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID2;                       /*  GAFLID2         */
+    union iodefine_reg32_t  GAFLM2;                        /*  GAFLM2          */
+    union iodefine_reg32_t  GAFLP02;                       /*  GAFLP02         */
+    union iodefine_reg32_t  GAFLP12;                       /*  GAFLP12         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID3;                       /*  GAFLID3         */
+    union iodefine_reg32_t  GAFLM3;                        /*  GAFLM3          */
+    union iodefine_reg32_t  GAFLP03;                       /*  GAFLP03         */
+    union iodefine_reg32_t  GAFLP13;                       /*  GAFLP13         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID4;                       /*  GAFLID4         */
+    union iodefine_reg32_t  GAFLM4;                        /*  GAFLM4          */
+    union iodefine_reg32_t  GAFLP04;                       /*  GAFLP04         */
+    union iodefine_reg32_t  GAFLP14;                       /*  GAFLP14         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID5;                       /*  GAFLID5         */
+    union iodefine_reg32_t  GAFLM5;                        /*  GAFLM5          */
+    union iodefine_reg32_t  GAFLP05;                       /*  GAFLP05         */
+    union iodefine_reg32_t  GAFLP15;                       /*  GAFLP15         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID6;                       /*  GAFLID6         */
+    union iodefine_reg32_t  GAFLM6;                        /*  GAFLM6          */
+    union iodefine_reg32_t  GAFLP06;                       /*  GAFLP06         */
+    union iodefine_reg32_t  GAFLP16;                       /*  GAFLP16         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID7;                       /*  GAFLID7         */
+    union iodefine_reg32_t  GAFLM7;                        /*  GAFLM7          */
+    union iodefine_reg32_t  GAFLP07;                       /*  GAFLP07         */
+    union iodefine_reg32_t  GAFLP17;                       /*  GAFLP17         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID8;                       /*  GAFLID8         */
+    union iodefine_reg32_t  GAFLM8;                        /*  GAFLM8          */
+    union iodefine_reg32_t  GAFLP08;                       /*  GAFLP08         */
+    union iodefine_reg32_t  GAFLP18;                       /*  GAFLP18         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID9;                       /*  GAFLID9         */
+    union iodefine_reg32_t  GAFLM9;                        /*  GAFLM9          */
+    union iodefine_reg32_t  GAFLP09;                       /*  GAFLP09         */
+    union iodefine_reg32_t  GAFLP19;                       /*  GAFLP19         */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID10;                      /*  GAFLID10        */
+    union iodefine_reg32_t  GAFLM10;                       /*  GAFLM10         */
+    union iodefine_reg32_t  GAFLP010;                      /*  GAFLP010        */
+    union iodefine_reg32_t  GAFLP110;                      /*  GAFLP110        */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID11;                      /*  GAFLID11        */
+    union iodefine_reg32_t  GAFLM11;                       /*  GAFLM11         */
+    union iodefine_reg32_t  GAFLP011;                      /*  GAFLP011        */
+    union iodefine_reg32_t  GAFLP111;                      /*  GAFLP111        */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID12;                      /*  GAFLID12        */
+    union iodefine_reg32_t  GAFLM12;                       /*  GAFLM12         */
+    union iodefine_reg32_t  GAFLP012;                      /*  GAFLP012        */
+    union iodefine_reg32_t  GAFLP112;                      /*  GAFLP112        */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID13;                      /*  GAFLID13        */
+    union iodefine_reg32_t  GAFLM13;                       /*  GAFLM13         */
+    union iodefine_reg32_t  GAFLP013;                      /*  GAFLP013        */
+    union iodefine_reg32_t  GAFLP113;                      /*  GAFLP113        */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID14;                      /*  GAFLID14        */
+    union iodefine_reg32_t  GAFLM14;                       /*  GAFLM14         */
+    union iodefine_reg32_t  GAFLP014;                      /*  GAFLP014        */
+    union iodefine_reg32_t  GAFLP114;                      /*  GAFLP114        */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0gaflidj */
+    union iodefine_reg32_t  GAFLID15;                      /*  GAFLID15        */
+    union iodefine_reg32_t  GAFLM15;                       /*  GAFLM15         */
+    union iodefine_reg32_t  GAFLP015;                      /*  GAFLP015        */
+    union iodefine_reg32_t  GAFLP115;                      /*  GAFLP115        */
+
+/* end of struct st_rscan_from_rscan0gaflidj */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID0;                         /*  RMID0           */
+    union iodefine_reg32_t  RMPTR0;                        /*  RMPTR0          */
+    union iodefine_reg32_t  RMDF00;                        /*  RMDF00          */
+    union iodefine_reg32_t  RMDF10;                        /*  RMDF10          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID1;                         /*  RMID1           */
+    union iodefine_reg32_t  RMPTR1;                        /*  RMPTR1          */
+    union iodefine_reg32_t  RMDF01;                        /*  RMDF01          */
+    union iodefine_reg32_t  RMDF11;                        /*  RMDF11          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID2;                         /*  RMID2           */
+    union iodefine_reg32_t  RMPTR2;                        /*  RMPTR2          */
+    union iodefine_reg32_t  RMDF02;                        /*  RMDF02          */
+    union iodefine_reg32_t  RMDF12;                        /*  RMDF12          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID3;                         /*  RMID3           */
+    union iodefine_reg32_t  RMPTR3;                        /*  RMPTR3          */
+    union iodefine_reg32_t  RMDF03;                        /*  RMDF03          */
+    union iodefine_reg32_t  RMDF13;                        /*  RMDF13          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID4;                         /*  RMID4           */
+    union iodefine_reg32_t  RMPTR4;                        /*  RMPTR4          */
+    union iodefine_reg32_t  RMDF04;                        /*  RMDF04          */
+    union iodefine_reg32_t  RMDF14;                        /*  RMDF14          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID5;                         /*  RMID5           */
+    union iodefine_reg32_t  RMPTR5;                        /*  RMPTR5          */
+    union iodefine_reg32_t  RMDF05;                        /*  RMDF05          */
+    union iodefine_reg32_t  RMDF15;                        /*  RMDF15          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID6;                         /*  RMID6           */
+    union iodefine_reg32_t  RMPTR6;                        /*  RMPTR6          */
+    union iodefine_reg32_t  RMDF06;                        /*  RMDF06          */
+    union iodefine_reg32_t  RMDF16;                        /*  RMDF16          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID7;                         /*  RMID7           */
+    union iodefine_reg32_t  RMPTR7;                        /*  RMPTR7          */
+    union iodefine_reg32_t  RMDF07;                        /*  RMDF07          */
+    union iodefine_reg32_t  RMDF17;                        /*  RMDF17          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID8;                         /*  RMID8           */
+    union iodefine_reg32_t  RMPTR8;                        /*  RMPTR8          */
+    union iodefine_reg32_t  RMDF08;                        /*  RMDF08          */
+    union iodefine_reg32_t  RMDF18;                        /*  RMDF18          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID9;                         /*  RMID9           */
+    union iodefine_reg32_t  RMPTR9;                        /*  RMPTR9          */
+    union iodefine_reg32_t  RMDF09;                        /*  RMDF09          */
+    union iodefine_reg32_t  RMDF19;                        /*  RMDF19          */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID10;                        /*  RMID10          */
+    union iodefine_reg32_t  RMPTR10;                       /*  RMPTR10         */
+    union iodefine_reg32_t  RMDF010;                       /*  RMDF010         */
+    union iodefine_reg32_t  RMDF110;                       /*  RMDF110         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID11;                        /*  RMID11          */
+    union iodefine_reg32_t  RMPTR11;                       /*  RMPTR11         */
+    union iodefine_reg32_t  RMDF011;                       /*  RMDF011         */
+    union iodefine_reg32_t  RMDF111;                       /*  RMDF111         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID12;                        /*  RMID12          */
+    union iodefine_reg32_t  RMPTR12;                       /*  RMPTR12         */
+    union iodefine_reg32_t  RMDF012;                       /*  RMDF012         */
+    union iodefine_reg32_t  RMDF112;                       /*  RMDF112         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID13;                        /*  RMID13          */
+    union iodefine_reg32_t  RMPTR13;                       /*  RMPTR13         */
+    union iodefine_reg32_t  RMDF013;                       /*  RMDF013         */
+    union iodefine_reg32_t  RMDF113;                       /*  RMDF113         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID14;                        /*  RMID14          */
+    union iodefine_reg32_t  RMPTR14;                       /*  RMPTR14         */
+    union iodefine_reg32_t  RMDF014;                       /*  RMDF014         */
+    union iodefine_reg32_t  RMDF114;                       /*  RMDF114         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID15;                        /*  RMID15          */
+    union iodefine_reg32_t  RMPTR15;                       /*  RMPTR15         */
+    union iodefine_reg32_t  RMDF015;                       /*  RMDF015         */
+    union iodefine_reg32_t  RMDF115;                       /*  RMDF115         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID16;                        /*  RMID16          */
+    union iodefine_reg32_t  RMPTR16;                       /*  RMPTR16         */
+    union iodefine_reg32_t  RMDF016;                       /*  RMDF016         */
+    union iodefine_reg32_t  RMDF116;                       /*  RMDF116         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID17;                        /*  RMID17          */
+    union iodefine_reg32_t  RMPTR17;                       /*  RMPTR17         */
+    union iodefine_reg32_t  RMDF017;                       /*  RMDF017         */
+    union iodefine_reg32_t  RMDF117;                       /*  RMDF117         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID18;                        /*  RMID18          */
+    union iodefine_reg32_t  RMPTR18;                       /*  RMPTR18         */
+    union iodefine_reg32_t  RMDF018;                       /*  RMDF018         */
+    union iodefine_reg32_t  RMDF118;                       /*  RMDF118         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID19;                        /*  RMID19          */
+    union iodefine_reg32_t  RMPTR19;                       /*  RMPTR19         */
+    union iodefine_reg32_t  RMDF019;                       /*  RMDF019         */
+    union iodefine_reg32_t  RMDF119;                       /*  RMDF119         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID20;                        /*  RMID20          */
+    union iodefine_reg32_t  RMPTR20;                       /*  RMPTR20         */
+    union iodefine_reg32_t  RMDF020;                       /*  RMDF020         */
+    union iodefine_reg32_t  RMDF120;                       /*  RMDF120         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID21;                        /*  RMID21          */
+    union iodefine_reg32_t  RMPTR21;                       /*  RMPTR21         */
+    union iodefine_reg32_t  RMDF021;                       /*  RMDF021         */
+    union iodefine_reg32_t  RMDF121;                       /*  RMDF121         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID22;                        /*  RMID22          */
+    union iodefine_reg32_t  RMPTR22;                       /*  RMPTR22         */
+    union iodefine_reg32_t  RMDF022;                       /*  RMDF022         */
+    union iodefine_reg32_t  RMDF122;                       /*  RMDF122         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID23;                        /*  RMID23          */
+    union iodefine_reg32_t  RMPTR23;                       /*  RMPTR23         */
+    union iodefine_reg32_t  RMDF023;                       /*  RMDF023         */
+    union iodefine_reg32_t  RMDF123;                       /*  RMDF123         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID24;                        /*  RMID24          */
+    union iodefine_reg32_t  RMPTR24;                       /*  RMPTR24         */
+    union iodefine_reg32_t  RMDF024;                       /*  RMDF024         */
+    union iodefine_reg32_t  RMDF124;                       /*  RMDF124         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID25;                        /*  RMID25          */
+    union iodefine_reg32_t  RMPTR25;                       /*  RMPTR25         */
+    union iodefine_reg32_t  RMDF025;                       /*  RMDF025         */
+    union iodefine_reg32_t  RMDF125;                       /*  RMDF125         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID26;                        /*  RMID26          */
+    union iodefine_reg32_t  RMPTR26;                       /*  RMPTR26         */
+    union iodefine_reg32_t  RMDF026;                       /*  RMDF026         */
+    union iodefine_reg32_t  RMDF126;                       /*  RMDF126         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID27;                        /*  RMID27          */
+    union iodefine_reg32_t  RMPTR27;                       /*  RMPTR27         */
+    union iodefine_reg32_t  RMDF027;                       /*  RMDF027         */
+    union iodefine_reg32_t  RMDF127;                       /*  RMDF127         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID28;                        /*  RMID28          */
+    union iodefine_reg32_t  RMPTR28;                       /*  RMPTR28         */
+    union iodefine_reg32_t  RMDF028;                       /*  RMDF028         */
+    union iodefine_reg32_t  RMDF128;                       /*  RMDF128         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID29;                        /*  RMID29          */
+    union iodefine_reg32_t  RMPTR29;                       /*  RMPTR29         */
+    union iodefine_reg32_t  RMDF029;                       /*  RMDF029         */
+    union iodefine_reg32_t  RMDF129;                       /*  RMDF129         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID30;                        /*  RMID30          */
+    union iodefine_reg32_t  RMPTR30;                       /*  RMPTR30         */
+    union iodefine_reg32_t  RMDF030;                       /*  RMDF030         */
+    union iodefine_reg32_t  RMDF130;                       /*  RMDF130         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID31;                        /*  RMID31          */
+    union iodefine_reg32_t  RMPTR31;                       /*  RMPTR31         */
+    union iodefine_reg32_t  RMDF031;                       /*  RMDF031         */
+    union iodefine_reg32_t  RMDF131;                       /*  RMDF131         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID32;                        /*  RMID32          */
+    union iodefine_reg32_t  RMPTR32;                       /*  RMPTR32         */
+    union iodefine_reg32_t  RMDF032;                       /*  RMDF032         */
+    union iodefine_reg32_t  RMDF132;                       /*  RMDF132         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID33;                        /*  RMID33          */
+    union iodefine_reg32_t  RMPTR33;                       /*  RMPTR33         */
+    union iodefine_reg32_t  RMDF033;                       /*  RMDF033         */
+    union iodefine_reg32_t  RMDF133;                       /*  RMDF133         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID34;                        /*  RMID34          */
+    union iodefine_reg32_t  RMPTR34;                       /*  RMPTR34         */
+    union iodefine_reg32_t  RMDF034;                       /*  RMDF034         */
+    union iodefine_reg32_t  RMDF134;                       /*  RMDF134         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID35;                        /*  RMID35          */
+    union iodefine_reg32_t  RMPTR35;                       /*  RMPTR35         */
+    union iodefine_reg32_t  RMDF035;                       /*  RMDF035         */
+    union iodefine_reg32_t  RMDF135;                       /*  RMDF135         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID36;                        /*  RMID36          */
+    union iodefine_reg32_t  RMPTR36;                       /*  RMPTR36         */
+    union iodefine_reg32_t  RMDF036;                       /*  RMDF036         */
+    union iodefine_reg32_t  RMDF136;                       /*  RMDF136         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID37;                        /*  RMID37          */
+    union iodefine_reg32_t  RMPTR37;                       /*  RMPTR37         */
+    union iodefine_reg32_t  RMDF037;                       /*  RMDF037         */
+    union iodefine_reg32_t  RMDF137;                       /*  RMDF137         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID38;                        /*  RMID38          */
+    union iodefine_reg32_t  RMPTR38;                       /*  RMPTR38         */
+    union iodefine_reg32_t  RMDF038;                       /*  RMDF038         */
+    union iodefine_reg32_t  RMDF138;                       /*  RMDF138         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID39;                        /*  RMID39          */
+    union iodefine_reg32_t  RMPTR39;                       /*  RMPTR39         */
+    union iodefine_reg32_t  RMDF039;                       /*  RMDF039         */
+    union iodefine_reg32_t  RMDF139;                       /*  RMDF139         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID40;                        /*  RMID40          */
+    union iodefine_reg32_t  RMPTR40;                       /*  RMPTR40         */
+    union iodefine_reg32_t  RMDF040;                       /*  RMDF040         */
+    union iodefine_reg32_t  RMDF140;                       /*  RMDF140         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID41;                        /*  RMID41          */
+    union iodefine_reg32_t  RMPTR41;                       /*  RMPTR41         */
+    union iodefine_reg32_t  RMDF041;                       /*  RMDF041         */
+    union iodefine_reg32_t  RMDF141;                       /*  RMDF141         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID42;                        /*  RMID42          */
+    union iodefine_reg32_t  RMPTR42;                       /*  RMPTR42         */
+    union iodefine_reg32_t  RMDF042;                       /*  RMDF042         */
+    union iodefine_reg32_t  RMDF142;                       /*  RMDF142         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID43;                        /*  RMID43          */
+    union iodefine_reg32_t  RMPTR43;                       /*  RMPTR43         */
+    union iodefine_reg32_t  RMDF043;                       /*  RMDF043         */
+    union iodefine_reg32_t  RMDF143;                       /*  RMDF143         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID44;                        /*  RMID44          */
+    union iodefine_reg32_t  RMPTR44;                       /*  RMPTR44         */
+    union iodefine_reg32_t  RMDF044;                       /*  RMDF044         */
+    union iodefine_reg32_t  RMDF144;                       /*  RMDF144         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID45;                        /*  RMID45          */
+    union iodefine_reg32_t  RMPTR45;                       /*  RMPTR45         */
+    union iodefine_reg32_t  RMDF045;                       /*  RMDF045         */
+    union iodefine_reg32_t  RMDF145;                       /*  RMDF145         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID46;                        /*  RMID46          */
+    union iodefine_reg32_t  RMPTR46;                       /*  RMPTR46         */
+    union iodefine_reg32_t  RMDF046;                       /*  RMDF046         */
+    union iodefine_reg32_t  RMDF146;                       /*  RMDF146         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID47;                        /*  RMID47          */
+    union iodefine_reg32_t  RMPTR47;                       /*  RMPTR47         */
+    union iodefine_reg32_t  RMDF047;                       /*  RMDF047         */
+    union iodefine_reg32_t  RMDF147;                       /*  RMDF147         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID48;                        /*  RMID48          */
+    union iodefine_reg32_t  RMPTR48;                       /*  RMPTR48         */
+    union iodefine_reg32_t  RMDF048;                       /*  RMDF048         */
+    union iodefine_reg32_t  RMDF148;                       /*  RMDF148         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID49;                        /*  RMID49          */
+    union iodefine_reg32_t  RMPTR49;                       /*  RMPTR49         */
+    union iodefine_reg32_t  RMDF049;                       /*  RMDF049         */
+    union iodefine_reg32_t  RMDF149;                       /*  RMDF149         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID50;                        /*  RMID50          */
+    union iodefine_reg32_t  RMPTR50;                       /*  RMPTR50         */
+    union iodefine_reg32_t  RMDF050;                       /*  RMDF050         */
+    union iodefine_reg32_t  RMDF150;                       /*  RMDF150         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID51;                        /*  RMID51          */
+    union iodefine_reg32_t  RMPTR51;                       /*  RMPTR51         */
+    union iodefine_reg32_t  RMDF051;                       /*  RMDF051         */
+    union iodefine_reg32_t  RMDF151;                       /*  RMDF151         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID52;                        /*  RMID52          */
+    union iodefine_reg32_t  RMPTR52;                       /*  RMPTR52         */
+    union iodefine_reg32_t  RMDF052;                       /*  RMDF052         */
+    union iodefine_reg32_t  RMDF152;                       /*  RMDF152         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID53;                        /*  RMID53          */
+    union iodefine_reg32_t  RMPTR53;                       /*  RMPTR53         */
+    union iodefine_reg32_t  RMDF053;                       /*  RMDF053         */
+    union iodefine_reg32_t  RMDF153;                       /*  RMDF153         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID54;                        /*  RMID54          */
+    union iodefine_reg32_t  RMPTR54;                       /*  RMPTR54         */
+    union iodefine_reg32_t  RMDF054;                       /*  RMDF054         */
+    union iodefine_reg32_t  RMDF154;                       /*  RMDF154         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID55;                        /*  RMID55          */
+    union iodefine_reg32_t  RMPTR55;                       /*  RMPTR55         */
+    union iodefine_reg32_t  RMDF055;                       /*  RMDF055         */
+    union iodefine_reg32_t  RMDF155;                       /*  RMDF155         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID56;                        /*  RMID56          */
+    union iodefine_reg32_t  RMPTR56;                       /*  RMPTR56         */
+    union iodefine_reg32_t  RMDF056;                       /*  RMDF056         */
+    union iodefine_reg32_t  RMDF156;                       /*  RMDF156         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID57;                        /*  RMID57          */
+    union iodefine_reg32_t  RMPTR57;                       /*  RMPTR57         */
+    union iodefine_reg32_t  RMDF057;                       /*  RMDF057         */
+    union iodefine_reg32_t  RMDF157;                       /*  RMDF157         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID58;                        /*  RMID58          */
+    union iodefine_reg32_t  RMPTR58;                       /*  RMPTR58         */
+    union iodefine_reg32_t  RMDF058;                       /*  RMDF058         */
+    union iodefine_reg32_t  RMDF158;                       /*  RMDF158         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID59;                        /*  RMID59          */
+    union iodefine_reg32_t  RMPTR59;                       /*  RMPTR59         */
+    union iodefine_reg32_t  RMDF059;                       /*  RMDF059         */
+    union iodefine_reg32_t  RMDF159;                       /*  RMDF159         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID60;                        /*  RMID60          */
+    union iodefine_reg32_t  RMPTR60;                       /*  RMPTR60         */
+    union iodefine_reg32_t  RMDF060;                       /*  RMDF060         */
+    union iodefine_reg32_t  RMDF160;                       /*  RMDF160         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID61;                        /*  RMID61          */
+    union iodefine_reg32_t  RMPTR61;                       /*  RMPTR61         */
+    union iodefine_reg32_t  RMDF061;                       /*  RMDF061         */
+    union iodefine_reg32_t  RMDF161;                       /*  RMDF161         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID62;                        /*  RMID62          */
+    union iodefine_reg32_t  RMPTR62;                       /*  RMPTR62         */
+    union iodefine_reg32_t  RMDF062;                       /*  RMDF062         */
+    union iodefine_reg32_t  RMDF162;                       /*  RMDF162         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID63;                        /*  RMID63          */
+    union iodefine_reg32_t  RMPTR63;                       /*  RMPTR63         */
+    union iodefine_reg32_t  RMDF063;                       /*  RMDF063         */
+    union iodefine_reg32_t  RMDF163;                       /*  RMDF163         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID64;                        /*  RMID64          */
+    union iodefine_reg32_t  RMPTR64;                       /*  RMPTR64         */
+    union iodefine_reg32_t  RMDF064;                       /*  RMDF064         */
+    union iodefine_reg32_t  RMDF164;                       /*  RMDF164         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID65;                        /*  RMID65          */
+    union iodefine_reg32_t  RMPTR65;                       /*  RMPTR65         */
+    union iodefine_reg32_t  RMDF065;                       /*  RMDF065         */
+    union iodefine_reg32_t  RMDF165;                       /*  RMDF165         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID66;                        /*  RMID66          */
+    union iodefine_reg32_t  RMPTR66;                       /*  RMPTR66         */
+    union iodefine_reg32_t  RMDF066;                       /*  RMDF066         */
+    union iodefine_reg32_t  RMDF166;                       /*  RMDF166         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID67;                        /*  RMID67          */
+    union iodefine_reg32_t  RMPTR67;                       /*  RMPTR67         */
+    union iodefine_reg32_t  RMDF067;                       /*  RMDF067         */
+    union iodefine_reg32_t  RMDF167;                       /*  RMDF167         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID68;                        /*  RMID68          */
+    union iodefine_reg32_t  RMPTR68;                       /*  RMPTR68         */
+    union iodefine_reg32_t  RMDF068;                       /*  RMDF068         */
+    union iodefine_reg32_t  RMDF168;                       /*  RMDF168         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID69;                        /*  RMID69          */
+    union iodefine_reg32_t  RMPTR69;                       /*  RMPTR69         */
+    union iodefine_reg32_t  RMDF069;                       /*  RMDF069         */
+    union iodefine_reg32_t  RMDF169;                       /*  RMDF169         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID70;                        /*  RMID70          */
+    union iodefine_reg32_t  RMPTR70;                       /*  RMPTR70         */
+    union iodefine_reg32_t  RMDF070;                       /*  RMDF070         */
+    union iodefine_reg32_t  RMDF170;                       /*  RMDF170         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID71;                        /*  RMID71          */
+    union iodefine_reg32_t  RMPTR71;                       /*  RMPTR71         */
+    union iodefine_reg32_t  RMDF071;                       /*  RMDF071         */
+    union iodefine_reg32_t  RMDF171;                       /*  RMDF171         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID72;                        /*  RMID72          */
+    union iodefine_reg32_t  RMPTR72;                       /*  RMPTR72         */
+    union iodefine_reg32_t  RMDF072;                       /*  RMDF072         */
+    union iodefine_reg32_t  RMDF172;                       /*  RMDF172         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID73;                        /*  RMID73          */
+    union iodefine_reg32_t  RMPTR73;                       /*  RMPTR73         */
+    union iodefine_reg32_t  RMDF073;                       /*  RMDF073         */
+    union iodefine_reg32_t  RMDF173;                       /*  RMDF173         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID74;                        /*  RMID74          */
+    union iodefine_reg32_t  RMPTR74;                       /*  RMPTR74         */
+    union iodefine_reg32_t  RMDF074;                       /*  RMDF074         */
+    union iodefine_reg32_t  RMDF174;                       /*  RMDF174         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID75;                        /*  RMID75          */
+    union iodefine_reg32_t  RMPTR75;                       /*  RMPTR75         */
+    union iodefine_reg32_t  RMDF075;                       /*  RMDF075         */
+    union iodefine_reg32_t  RMDF175;                       /*  RMDF175         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID76;                        /*  RMID76          */
+    union iodefine_reg32_t  RMPTR76;                       /*  RMPTR76         */
+    union iodefine_reg32_t  RMDF076;                       /*  RMDF076         */
+    union iodefine_reg32_t  RMDF176;                       /*  RMDF176         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID77;                        /*  RMID77          */
+    union iodefine_reg32_t  RMPTR77;                       /*  RMPTR77         */
+    union iodefine_reg32_t  RMDF077;                       /*  RMDF077         */
+    union iodefine_reg32_t  RMDF177;                       /*  RMDF177         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID78;                        /*  RMID78          */
+    union iodefine_reg32_t  RMPTR78;                       /*  RMPTR78         */
+    union iodefine_reg32_t  RMDF078;                       /*  RMDF078         */
+    union iodefine_reg32_t  RMDF178;                       /*  RMDF178         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+/* start of struct st_rscan_from_rscan0rmidp */
+    union iodefine_reg32_t  RMID79;                        /*  RMID79          */
+    union iodefine_reg32_t  RMPTR79;                       /*  RMPTR79         */
+    union iodefine_reg32_t  RMDF079;                       /*  RMDF079         */
+    union iodefine_reg32_t  RMDF179;                       /*  RMDF179         */
+
+/* end of struct st_rscan_from_rscan0rmidp */
+    
+    volatile uint8_t   dummy179[768];                          /*                  */
+    
+/* start of struct st_rscan_from_rscan0rfidm */
+    union iodefine_reg32_t  RFID0;                         /*  RFID0           */
+    union iodefine_reg32_t  RFPTR0;                        /*  RFPTR0          */
+    union iodefine_reg32_t  RFDF00;                        /*  RFDF00          */
+    union iodefine_reg32_t  RFDF10;                        /*  RFDF10          */
+
+/* end of struct st_rscan_from_rscan0rfidm */
+    
+/* start of struct st_rscan_from_rscan0rfidm */
+    union iodefine_reg32_t  RFID1;                         /*  RFID1           */
+    union iodefine_reg32_t  RFPTR1;                        /*  RFPTR1          */
+    union iodefine_reg32_t  RFDF01;                        /*  RFDF01          */
+    union iodefine_reg32_t  RFDF11;                        /*  RFDF11          */
+
+/* end of struct st_rscan_from_rscan0rfidm */
+    
+/* start of struct st_rscan_from_rscan0rfidm */
+    union iodefine_reg32_t  RFID2;                         /*  RFID2           */
+    union iodefine_reg32_t  RFPTR2;                        /*  RFPTR2          */
+    union iodefine_reg32_t  RFDF02;                        /*  RFDF02          */
+    union iodefine_reg32_t  RFDF12;                        /*  RFDF12          */
+
+/* end of struct st_rscan_from_rscan0rfidm */
+    
+/* start of struct st_rscan_from_rscan0rfidm */
+    union iodefine_reg32_t  RFID3;                         /*  RFID3           */
+    union iodefine_reg32_t  RFPTR3;                        /*  RFPTR3          */
+    union iodefine_reg32_t  RFDF03;                        /*  RFDF03          */
+    union iodefine_reg32_t  RFDF13;                        /*  RFDF13          */
+
+/* end of struct st_rscan_from_rscan0rfidm */
+    
+/* start of struct st_rscan_from_rscan0rfidm */
+    union iodefine_reg32_t  RFID4;                         /*  RFID4           */
+    union iodefine_reg32_t  RFPTR4;                        /*  RFPTR4          */
+    union iodefine_reg32_t  RFDF04;                        /*  RFDF04          */
+    union iodefine_reg32_t  RFDF14;                        /*  RFDF14          */
+
+/* end of struct st_rscan_from_rscan0rfidm */
+    
+/* start of struct st_rscan_from_rscan0rfidm */
+    union iodefine_reg32_t  RFID5;                         /*  RFID5           */
+    union iodefine_reg32_t  RFPTR5;                        /*  RFPTR5          */
+    union iodefine_reg32_t  RFDF05;                        /*  RFDF05          */
+    union iodefine_reg32_t  RFDF15;                        /*  RFDF15          */
+
+/* end of struct st_rscan_from_rscan0rfidm */
+    
+/* start of struct st_rscan_from_rscan0rfidm */
+    union iodefine_reg32_t  RFID6;                         /*  RFID6           */
+    union iodefine_reg32_t  RFPTR6;                        /*  RFPTR6          */
+    union iodefine_reg32_t  RFDF06;                        /*  RFDF06          */
+    union iodefine_reg32_t  RFDF16;                        /*  RFDF16          */
+
+/* end of struct st_rscan_from_rscan0rfidm */
+    
+/* start of struct st_rscan_from_rscan0rfidm */
+    union iodefine_reg32_t  RFID7;                         /*  RFID7           */
+    union iodefine_reg32_t  RFPTR7;                        /*  RFPTR7          */
+    union iodefine_reg32_t  RFDF07;                        /*  RFDF07          */
+    union iodefine_reg32_t  RFDF17;                        /*  RFDF17          */
+
+/* end of struct st_rscan_from_rscan0rfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID0;                         /*  CFID0           */
+    union iodefine_reg32_t  CFPTR0;                        /*  CFPTR0          */
+    union iodefine_reg32_t  CFDF00;                        /*  CFDF00          */
+    union iodefine_reg32_t  CFDF10;                        /*  CFDF10          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID1;                         /*  CFID1           */
+    union iodefine_reg32_t  CFPTR1;                        /*  CFPTR1          */
+    union iodefine_reg32_t  CFDF01;                        /*  CFDF01          */
+    union iodefine_reg32_t  CFDF11;                        /*  CFDF11          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID2;                         /*  CFID2           */
+    union iodefine_reg32_t  CFPTR2;                        /*  CFPTR2          */
+    union iodefine_reg32_t  CFDF02;                        /*  CFDF02          */
+    union iodefine_reg32_t  CFDF12;                        /*  CFDF12          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID3;                         /*  CFID3           */
+    union iodefine_reg32_t  CFPTR3;                        /*  CFPTR3          */
+    union iodefine_reg32_t  CFDF03;                        /*  CFDF03          */
+    union iodefine_reg32_t  CFDF13;                        /*  CFDF13          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID4;                         /*  CFID4           */
+    union iodefine_reg32_t  CFPTR4;                        /*  CFPTR4          */
+    union iodefine_reg32_t  CFDF04;                        /*  CFDF04          */
+    union iodefine_reg32_t  CFDF14;                        /*  CFDF14          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID5;                         /*  CFID5           */
+    union iodefine_reg32_t  CFPTR5;                        /*  CFPTR5          */
+    union iodefine_reg32_t  CFDF05;                        /*  CFDF05          */
+    union iodefine_reg32_t  CFDF15;                        /*  CFDF15          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID6;                         /*  CFID6           */
+    union iodefine_reg32_t  CFPTR6;                        /*  CFPTR6          */
+    union iodefine_reg32_t  CFDF06;                        /*  CFDF06          */
+    union iodefine_reg32_t  CFDF16;                        /*  CFDF16          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID7;                         /*  CFID7           */
+    union iodefine_reg32_t  CFPTR7;                        /*  CFPTR7          */
+    union iodefine_reg32_t  CFDF07;                        /*  CFDF07          */
+    union iodefine_reg32_t  CFDF17;                        /*  CFDF17          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID8;                         /*  CFID8           */
+    union iodefine_reg32_t  CFPTR8;                        /*  CFPTR8          */
+    union iodefine_reg32_t  CFDF08;                        /*  CFDF08          */
+    union iodefine_reg32_t  CFDF18;                        /*  CFDF18          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID9;                         /*  CFID9           */
+    union iodefine_reg32_t  CFPTR9;                        /*  CFPTR9          */
+    union iodefine_reg32_t  CFDF09;                        /*  CFDF09          */
+    union iodefine_reg32_t  CFDF19;                        /*  CFDF19          */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID10;                        /*  CFID10          */
+    union iodefine_reg32_t  CFPTR10;                       /*  CFPTR10         */
+    union iodefine_reg32_t  CFDF010;                       /*  CFDF010         */
+    union iodefine_reg32_t  CFDF110;                       /*  CFDF110         */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID11;                        /*  CFID11          */
+    union iodefine_reg32_t  CFPTR11;                       /*  CFPTR11         */
+    union iodefine_reg32_t  CFDF011;                       /*  CFDF011         */
+    union iodefine_reg32_t  CFDF111;                       /*  CFDF111         */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID12;                        /*  CFID12          */
+    union iodefine_reg32_t  CFPTR12;                       /*  CFPTR12         */
+    union iodefine_reg32_t  CFDF012;                       /*  CFDF012         */
+    union iodefine_reg32_t  CFDF112;                       /*  CFDF112         */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID13;                        /*  CFID13          */
+    union iodefine_reg32_t  CFPTR13;                       /*  CFPTR13         */
+    union iodefine_reg32_t  CFDF013;                       /*  CFDF013         */
+    union iodefine_reg32_t  CFDF113;                       /*  CFDF113         */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+/* start of struct st_rscan_from_rscan0cfidm */
+    union iodefine_reg32_t  CFID14;                        /*  CFID14          */
+    union iodefine_reg32_t  CFPTR14;                       /*  CFPTR14         */
+    union iodefine_reg32_t  CFDF014;                       /*  CFDF014         */
+    union iodefine_reg32_t  CFDF114;                       /*  CFDF114         */
+
+/* end of struct st_rscan_from_rscan0cfidm */
+    
+    volatile uint8_t   dummy180[144];                          /*                  */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID0;                         /*  TMID0           */
+    union iodefine_reg32_t  TMPTR0;                        /*  TMPTR0          */
+    union iodefine_reg32_t  TMDF00;                        /*  TMDF00          */
+    union iodefine_reg32_t  TMDF10;                        /*  TMDF10          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID1;                         /*  TMID1           */
+    union iodefine_reg32_t  TMPTR1;                        /*  TMPTR1          */
+    union iodefine_reg32_t  TMDF01;                        /*  TMDF01          */
+    union iodefine_reg32_t  TMDF11;                        /*  TMDF11          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID2;                         /*  TMID2           */
+    union iodefine_reg32_t  TMPTR2;                        /*  TMPTR2          */
+    union iodefine_reg32_t  TMDF02;                        /*  TMDF02          */
+    union iodefine_reg32_t  TMDF12;                        /*  TMDF12          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID3;                         /*  TMID3           */
+    union iodefine_reg32_t  TMPTR3;                        /*  TMPTR3          */
+    union iodefine_reg32_t  TMDF03;                        /*  TMDF03          */
+    union iodefine_reg32_t  TMDF13;                        /*  TMDF13          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID4;                         /*  TMID4           */
+    union iodefine_reg32_t  TMPTR4;                        /*  TMPTR4          */
+    union iodefine_reg32_t  TMDF04;                        /*  TMDF04          */
+    union iodefine_reg32_t  TMDF14;                        /*  TMDF14          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID5;                         /*  TMID5           */
+    union iodefine_reg32_t  TMPTR5;                        /*  TMPTR5          */
+    union iodefine_reg32_t  TMDF05;                        /*  TMDF05          */
+    union iodefine_reg32_t  TMDF15;                        /*  TMDF15          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID6;                         /*  TMID6           */
+    union iodefine_reg32_t  TMPTR6;                        /*  TMPTR6          */
+    union iodefine_reg32_t  TMDF06;                        /*  TMDF06          */
+    union iodefine_reg32_t  TMDF16;                        /*  TMDF16          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID7;                         /*  TMID7           */
+    union iodefine_reg32_t  TMPTR7;                        /*  TMPTR7          */
+    union iodefine_reg32_t  TMDF07;                        /*  TMDF07          */
+    union iodefine_reg32_t  TMDF17;                        /*  TMDF17          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID8;                         /*  TMID8           */
+    union iodefine_reg32_t  TMPTR8;                        /*  TMPTR8          */
+    union iodefine_reg32_t  TMDF08;                        /*  TMDF08          */
+    union iodefine_reg32_t  TMDF18;                        /*  TMDF18          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID9;                         /*  TMID9           */
+    union iodefine_reg32_t  TMPTR9;                        /*  TMPTR9          */
+    union iodefine_reg32_t  TMDF09;                        /*  TMDF09          */
+    union iodefine_reg32_t  TMDF19;                        /*  TMDF19          */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID10;                        /*  TMID10          */
+    union iodefine_reg32_t  TMPTR10;                       /*  TMPTR10         */
+    union iodefine_reg32_t  TMDF010;                       /*  TMDF010         */
+    union iodefine_reg32_t  TMDF110;                       /*  TMDF110         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID11;                        /*  TMID11          */
+    union iodefine_reg32_t  TMPTR11;                       /*  TMPTR11         */
+    union iodefine_reg32_t  TMDF011;                       /*  TMDF011         */
+    union iodefine_reg32_t  TMDF111;                       /*  TMDF111         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID12;                        /*  TMID12          */
+    union iodefine_reg32_t  TMPTR12;                       /*  TMPTR12         */
+    union iodefine_reg32_t  TMDF012;                       /*  TMDF012         */
+    union iodefine_reg32_t  TMDF112;                       /*  TMDF112         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID13;                        /*  TMID13          */
+    union iodefine_reg32_t  TMPTR13;                       /*  TMPTR13         */
+    union iodefine_reg32_t  TMDF013;                       /*  TMDF013         */
+    union iodefine_reg32_t  TMDF113;                       /*  TMDF113         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID14;                        /*  TMID14          */
+    union iodefine_reg32_t  TMPTR14;                       /*  TMPTR14         */
+    union iodefine_reg32_t  TMDF014;                       /*  TMDF014         */
+    union iodefine_reg32_t  TMDF114;                       /*  TMDF114         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID15;                        /*  TMID15          */
+    union iodefine_reg32_t  TMPTR15;                       /*  TMPTR15         */
+    union iodefine_reg32_t  TMDF015;                       /*  TMDF015         */
+    union iodefine_reg32_t  TMDF115;                       /*  TMDF115         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID16;                        /*  TMID16          */
+    union iodefine_reg32_t  TMPTR16;                       /*  TMPTR16         */
+    union iodefine_reg32_t  TMDF016;                       /*  TMDF016         */
+    union iodefine_reg32_t  TMDF116;                       /*  TMDF116         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID17;                        /*  TMID17          */
+    union iodefine_reg32_t  TMPTR17;                       /*  TMPTR17         */
+    union iodefine_reg32_t  TMDF017;                       /*  TMDF017         */
+    union iodefine_reg32_t  TMDF117;                       /*  TMDF117         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID18;                        /*  TMID18          */
+    union iodefine_reg32_t  TMPTR18;                       /*  TMPTR18         */
+    union iodefine_reg32_t  TMDF018;                       /*  TMDF018         */
+    union iodefine_reg32_t  TMDF118;                       /*  TMDF118         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID19;                        /*  TMID19          */
+    union iodefine_reg32_t  TMPTR19;                       /*  TMPTR19         */
+    union iodefine_reg32_t  TMDF019;                       /*  TMDF019         */
+    union iodefine_reg32_t  TMDF119;                       /*  TMDF119         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID20;                        /*  TMID20          */
+    union iodefine_reg32_t  TMPTR20;                       /*  TMPTR20         */
+    union iodefine_reg32_t  TMDF020;                       /*  TMDF020         */
+    union iodefine_reg32_t  TMDF120;                       /*  TMDF120         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID21;                        /*  TMID21          */
+    union iodefine_reg32_t  TMPTR21;                       /*  TMPTR21         */
+    union iodefine_reg32_t  TMDF021;                       /*  TMDF021         */
+    union iodefine_reg32_t  TMDF121;                       /*  TMDF121         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID22;                        /*  TMID22          */
+    union iodefine_reg32_t  TMPTR22;                       /*  TMPTR22         */
+    union iodefine_reg32_t  TMDF022;                       /*  TMDF022         */
+    union iodefine_reg32_t  TMDF122;                       /*  TMDF122         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID23;                        /*  TMID23          */
+    union iodefine_reg32_t  TMPTR23;                       /*  TMPTR23         */
+    union iodefine_reg32_t  TMDF023;                       /*  TMDF023         */
+    union iodefine_reg32_t  TMDF123;                       /*  TMDF123         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID24;                        /*  TMID24          */
+    union iodefine_reg32_t  TMPTR24;                       /*  TMPTR24         */
+    union iodefine_reg32_t  TMDF024;                       /*  TMDF024         */
+    union iodefine_reg32_t  TMDF124;                       /*  TMDF124         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID25;                        /*  TMID25          */
+    union iodefine_reg32_t  TMPTR25;                       /*  TMPTR25         */
+    union iodefine_reg32_t  TMDF025;                       /*  TMDF025         */
+    union iodefine_reg32_t  TMDF125;                       /*  TMDF125         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID26;                        /*  TMID26          */
+    union iodefine_reg32_t  TMPTR26;                       /*  TMPTR26         */
+    union iodefine_reg32_t  TMDF026;                       /*  TMDF026         */
+    union iodefine_reg32_t  TMDF126;                       /*  TMDF126         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID27;                        /*  TMID27          */
+    union iodefine_reg32_t  TMPTR27;                       /*  TMPTR27         */
+    union iodefine_reg32_t  TMDF027;                       /*  TMDF027         */
+    union iodefine_reg32_t  TMDF127;                       /*  TMDF127         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID28;                        /*  TMID28          */
+    union iodefine_reg32_t  TMPTR28;                       /*  TMPTR28         */
+    union iodefine_reg32_t  TMDF028;                       /*  TMDF028         */
+    union iodefine_reg32_t  TMDF128;                       /*  TMDF128         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID29;                        /*  TMID29          */
+    union iodefine_reg32_t  TMPTR29;                       /*  TMPTR29         */
+    union iodefine_reg32_t  TMDF029;                       /*  TMDF029         */
+    union iodefine_reg32_t  TMDF129;                       /*  TMDF129         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID30;                        /*  TMID30          */
+    union iodefine_reg32_t  TMPTR30;                       /*  TMPTR30         */
+    union iodefine_reg32_t  TMDF030;                       /*  TMDF030         */
+    union iodefine_reg32_t  TMDF130;                       /*  TMDF130         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID31;                        /*  TMID31          */
+    union iodefine_reg32_t  TMPTR31;                       /*  TMPTR31         */
+    union iodefine_reg32_t  TMDF031;                       /*  TMDF031         */
+    union iodefine_reg32_t  TMDF131;                       /*  TMDF131         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID32;                        /*  TMID32          */
+    union iodefine_reg32_t  TMPTR32;                       /*  TMPTR32         */
+    union iodefine_reg32_t  TMDF032;                       /*  TMDF032         */
+    union iodefine_reg32_t  TMDF132;                       /*  TMDF132         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID33;                        /*  TMID33          */
+    union iodefine_reg32_t  TMPTR33;                       /*  TMPTR33         */
+    union iodefine_reg32_t  TMDF033;                       /*  TMDF033         */
+    union iodefine_reg32_t  TMDF133;                       /*  TMDF133         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID34;                        /*  TMID34          */
+    union iodefine_reg32_t  TMPTR34;                       /*  TMPTR34         */
+    union iodefine_reg32_t  TMDF034;                       /*  TMDF034         */
+    union iodefine_reg32_t  TMDF134;                       /*  TMDF134         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID35;                        /*  TMID35          */
+    union iodefine_reg32_t  TMPTR35;                       /*  TMPTR35         */
+    union iodefine_reg32_t  TMDF035;                       /*  TMDF035         */
+    union iodefine_reg32_t  TMDF135;                       /*  TMDF135         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID36;                        /*  TMID36          */
+    union iodefine_reg32_t  TMPTR36;                       /*  TMPTR36         */
+    union iodefine_reg32_t  TMDF036;                       /*  TMDF036         */
+    union iodefine_reg32_t  TMDF136;                       /*  TMDF136         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID37;                        /*  TMID37          */
+    union iodefine_reg32_t  TMPTR37;                       /*  TMPTR37         */
+    union iodefine_reg32_t  TMDF037;                       /*  TMDF037         */
+    union iodefine_reg32_t  TMDF137;                       /*  TMDF137         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID38;                        /*  TMID38          */
+    union iodefine_reg32_t  TMPTR38;                       /*  TMPTR38         */
+    union iodefine_reg32_t  TMDF038;                       /*  TMDF038         */
+    union iodefine_reg32_t  TMDF138;                       /*  TMDF138         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID39;                        /*  TMID39          */
+    union iodefine_reg32_t  TMPTR39;                       /*  TMPTR39         */
+    union iodefine_reg32_t  TMDF039;                       /*  TMDF039         */
+    union iodefine_reg32_t  TMDF139;                       /*  TMDF139         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID40;                        /*  TMID40          */
+    union iodefine_reg32_t  TMPTR40;                       /*  TMPTR40         */
+    union iodefine_reg32_t  TMDF040;                       /*  TMDF040         */
+    union iodefine_reg32_t  TMDF140;                       /*  TMDF140         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID41;                        /*  TMID41          */
+    union iodefine_reg32_t  TMPTR41;                       /*  TMPTR41         */
+    union iodefine_reg32_t  TMDF041;                       /*  TMDF041         */
+    union iodefine_reg32_t  TMDF141;                       /*  TMDF141         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID42;                        /*  TMID42          */
+    union iodefine_reg32_t  TMPTR42;                       /*  TMPTR42         */
+    union iodefine_reg32_t  TMDF042;                       /*  TMDF042         */
+    union iodefine_reg32_t  TMDF142;                       /*  TMDF142         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID43;                        /*  TMID43          */
+    union iodefine_reg32_t  TMPTR43;                       /*  TMPTR43         */
+    union iodefine_reg32_t  TMDF043;                       /*  TMDF043         */
+    union iodefine_reg32_t  TMDF143;                       /*  TMDF143         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID44;                        /*  TMID44          */
+    union iodefine_reg32_t  TMPTR44;                       /*  TMPTR44         */
+    union iodefine_reg32_t  TMDF044;                       /*  TMDF044         */
+    union iodefine_reg32_t  TMDF144;                       /*  TMDF144         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID45;                        /*  TMID45          */
+    union iodefine_reg32_t  TMPTR45;                       /*  TMPTR45         */
+    union iodefine_reg32_t  TMDF045;                       /*  TMDF045         */
+    union iodefine_reg32_t  TMDF145;                       /*  TMDF145         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID46;                        /*  TMID46          */
+    union iodefine_reg32_t  TMPTR46;                       /*  TMPTR46         */
+    union iodefine_reg32_t  TMDF046;                       /*  TMDF046         */
+    union iodefine_reg32_t  TMDF146;                       /*  TMDF146         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID47;                        /*  TMID47          */
+    union iodefine_reg32_t  TMPTR47;                       /*  TMPTR47         */
+    union iodefine_reg32_t  TMDF047;                       /*  TMDF047         */
+    union iodefine_reg32_t  TMDF147;                       /*  TMDF147         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID48;                        /*  TMID48          */
+    union iodefine_reg32_t  TMPTR48;                       /*  TMPTR48         */
+    union iodefine_reg32_t  TMDF048;                       /*  TMDF048         */
+    union iodefine_reg32_t  TMDF148;                       /*  TMDF148         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID49;                        /*  TMID49          */
+    union iodefine_reg32_t  TMPTR49;                       /*  TMPTR49         */
+    union iodefine_reg32_t  TMDF049;                       /*  TMDF049         */
+    union iodefine_reg32_t  TMDF149;                       /*  TMDF149         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID50;                        /*  TMID50          */
+    union iodefine_reg32_t  TMPTR50;                       /*  TMPTR50         */
+    union iodefine_reg32_t  TMDF050;                       /*  TMDF050         */
+    union iodefine_reg32_t  TMDF150;                       /*  TMDF150         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID51;                        /*  TMID51          */
+    union iodefine_reg32_t  TMPTR51;                       /*  TMPTR51         */
+    union iodefine_reg32_t  TMDF051;                       /*  TMDF051         */
+    union iodefine_reg32_t  TMDF151;                       /*  TMDF151         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID52;                        /*  TMID52          */
+    union iodefine_reg32_t  TMPTR52;                       /*  TMPTR52         */
+    union iodefine_reg32_t  TMDF052;                       /*  TMDF052         */
+    union iodefine_reg32_t  TMDF152;                       /*  TMDF152         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID53;                        /*  TMID53          */
+    union iodefine_reg32_t  TMPTR53;                       /*  TMPTR53         */
+    union iodefine_reg32_t  TMDF053;                       /*  TMDF053         */
+    union iodefine_reg32_t  TMDF153;                       /*  TMDF153         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID54;                        /*  TMID54          */
+    union iodefine_reg32_t  TMPTR54;                       /*  TMPTR54         */
+    union iodefine_reg32_t  TMDF054;                       /*  TMDF054         */
+    union iodefine_reg32_t  TMDF154;                       /*  TMDF154         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID55;                        /*  TMID55          */
+    union iodefine_reg32_t  TMPTR55;                       /*  TMPTR55         */
+    union iodefine_reg32_t  TMDF055;                       /*  TMDF055         */
+    union iodefine_reg32_t  TMDF155;                       /*  TMDF155         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID56;                        /*  TMID56          */
+    union iodefine_reg32_t  TMPTR56;                       /*  TMPTR56         */
+    union iodefine_reg32_t  TMDF056;                       /*  TMDF056         */
+    union iodefine_reg32_t  TMDF156;                       /*  TMDF156         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID57;                        /*  TMID57          */
+    union iodefine_reg32_t  TMPTR57;                       /*  TMPTR57         */
+    union iodefine_reg32_t  TMDF057;                       /*  TMDF057         */
+    union iodefine_reg32_t  TMDF157;                       /*  TMDF157         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID58;                        /*  TMID58          */
+    union iodefine_reg32_t  TMPTR58;                       /*  TMPTR58         */
+    union iodefine_reg32_t  TMDF058;                       /*  TMDF058         */
+    union iodefine_reg32_t  TMDF158;                       /*  TMDF158         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID59;                        /*  TMID59          */
+    union iodefine_reg32_t  TMPTR59;                       /*  TMPTR59         */
+    union iodefine_reg32_t  TMDF059;                       /*  TMDF059         */
+    union iodefine_reg32_t  TMDF159;                       /*  TMDF159         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID60;                        /*  TMID60          */
+    union iodefine_reg32_t  TMPTR60;                       /*  TMPTR60         */
+    union iodefine_reg32_t  TMDF060;                       /*  TMDF060         */
+    union iodefine_reg32_t  TMDF160;                       /*  TMDF160         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID61;                        /*  TMID61          */
+    union iodefine_reg32_t  TMPTR61;                       /*  TMPTR61         */
+    union iodefine_reg32_t  TMDF061;                       /*  TMDF061         */
+    union iodefine_reg32_t  TMDF161;                       /*  TMDF161         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID62;                        /*  TMID62          */
+    union iodefine_reg32_t  TMPTR62;                       /*  TMPTR62         */
+    union iodefine_reg32_t  TMDF062;                       /*  TMDF062         */
+    union iodefine_reg32_t  TMDF162;                       /*  TMDF162         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID63;                        /*  TMID63          */
+    union iodefine_reg32_t  TMPTR63;                       /*  TMPTR63         */
+    union iodefine_reg32_t  TMDF063;                       /*  TMDF063         */
+    union iodefine_reg32_t  TMDF163;                       /*  TMDF163         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID64;                        /*  TMID64          */
+    union iodefine_reg32_t  TMPTR64;                       /*  TMPTR64         */
+    union iodefine_reg32_t  TMDF064;                       /*  TMDF064         */
+    union iodefine_reg32_t  TMDF164;                       /*  TMDF164         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID65;                        /*  TMID65          */
+    union iodefine_reg32_t  TMPTR65;                       /*  TMPTR65         */
+    union iodefine_reg32_t  TMDF065;                       /*  TMDF065         */
+    union iodefine_reg32_t  TMDF165;                       /*  TMDF165         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID66;                        /*  TMID66          */
+    union iodefine_reg32_t  TMPTR66;                       /*  TMPTR66         */
+    union iodefine_reg32_t  TMDF066;                       /*  TMDF066         */
+    union iodefine_reg32_t  TMDF166;                       /*  TMDF166         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID67;                        /*  TMID67          */
+    union iodefine_reg32_t  TMPTR67;                       /*  TMPTR67         */
+    union iodefine_reg32_t  TMDF067;                       /*  TMDF067         */
+    union iodefine_reg32_t  TMDF167;                       /*  TMDF167         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID68;                        /*  TMID68          */
+    union iodefine_reg32_t  TMPTR68;                       /*  TMPTR68         */
+    union iodefine_reg32_t  TMDF068;                       /*  TMDF068         */
+    union iodefine_reg32_t  TMDF168;                       /*  TMDF168         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID69;                        /*  TMID69          */
+    union iodefine_reg32_t  TMPTR69;                       /*  TMPTR69         */
+    union iodefine_reg32_t  TMDF069;                       /*  TMDF069         */
+    union iodefine_reg32_t  TMDF169;                       /*  TMDF169         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID70;                        /*  TMID70          */
+    union iodefine_reg32_t  TMPTR70;                       /*  TMPTR70         */
+    union iodefine_reg32_t  TMDF070;                       /*  TMDF070         */
+    union iodefine_reg32_t  TMDF170;                       /*  TMDF170         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID71;                        /*  TMID71          */
+    union iodefine_reg32_t  TMPTR71;                       /*  TMPTR71         */
+    union iodefine_reg32_t  TMDF071;                       /*  TMDF071         */
+    union iodefine_reg32_t  TMDF171;                       /*  TMDF171         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID72;                        /*  TMID72          */
+    union iodefine_reg32_t  TMPTR72;                       /*  TMPTR72         */
+    union iodefine_reg32_t  TMDF072;                       /*  TMDF072         */
+    union iodefine_reg32_t  TMDF172;                       /*  TMDF172         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID73;                        /*  TMID73          */
+    union iodefine_reg32_t  TMPTR73;                       /*  TMPTR73         */
+    union iodefine_reg32_t  TMDF073;                       /*  TMDF073         */
+    union iodefine_reg32_t  TMDF173;                       /*  TMDF173         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID74;                        /*  TMID74          */
+    union iodefine_reg32_t  TMPTR74;                       /*  TMPTR74         */
+    union iodefine_reg32_t  TMDF074;                       /*  TMDF074         */
+    union iodefine_reg32_t  TMDF174;                       /*  TMDF174         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID75;                        /*  TMID75          */
+    union iodefine_reg32_t  TMPTR75;                       /*  TMPTR75         */
+    union iodefine_reg32_t  TMDF075;                       /*  TMDF075         */
+    union iodefine_reg32_t  TMDF175;                       /*  TMDF175         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID76;                        /*  TMID76          */
+    union iodefine_reg32_t  TMPTR76;                       /*  TMPTR76         */
+    union iodefine_reg32_t  TMDF076;                       /*  TMDF076         */
+    union iodefine_reg32_t  TMDF176;                       /*  TMDF176         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID77;                        /*  TMID77          */
+    union iodefine_reg32_t  TMPTR77;                       /*  TMPTR77         */
+    union iodefine_reg32_t  TMDF077;                       /*  TMDF077         */
+    union iodefine_reg32_t  TMDF177;                       /*  TMDF177         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID78;                        /*  TMID78          */
+    union iodefine_reg32_t  TMPTR78;                       /*  TMPTR78         */
+    union iodefine_reg32_t  TMDF078;                       /*  TMDF078         */
+    union iodefine_reg32_t  TMDF178;                       /*  TMDF178         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+/* start of struct st_rscan_from_rscan0tmidp */
+    union iodefine_reg32_t  TMID79;                        /*  TMID79          */
+    union iodefine_reg32_t  TMPTR79;                       /*  TMPTR79         */
+    union iodefine_reg32_t  TMDF079;                       /*  TMDF079         */
+    union iodefine_reg32_t  TMDF179;                       /*  TMDF179         */
+
+/* end of struct st_rscan_from_rscan0tmidp */
+    
+    volatile uint8_t   dummy181[768];                          /*                  */
+
+/* #define RSCAN0_THLACC0_COUNT (5) */
+    union iodefine_reg32_t  THLACC0;                       /*  THLACC0         */
+    union iodefine_reg32_t  THLACC1;                       /*  THLACC1         */
+    union iodefine_reg32_t  THLACC2;                       /*  THLACC2         */
+    union iodefine_reg32_t  THLACC3;                       /*  THLACC3         */
+    union iodefine_reg32_t  THLACC4;                       /*  THLACC4         */
+    
+} r_io_rscan0_t;
+
+
+typedef struct st_rscan_from_rscan0cncfg
+{
+ 
+    union iodefine_reg32_t  CnCFG;                         /*  CnCFG           */
+    union iodefine_reg32_t  CnCTR;                         /*  CnCTR           */
+    union iodefine_reg32_t  CnSTS;                         /*  CnSTS           */
+    union iodefine_reg32_t  CnERFL;                        /*  CnERFL          */
+} r_io_rscan_from_rscan0cncfg_t;
+
+
+typedef struct st_rscan_from_rscan0gaflidj
+{
+ 
+    union iodefine_reg32_t  GAFLIDj;                       /*  GAFLIDj         */
+    union iodefine_reg32_t  GAFLMj;                        /*  GAFLMj          */
+    union iodefine_reg32_t  GAFLP0j;                       /*  GAFLP0j         */
+    union iodefine_reg32_t  GAFLP1j;                       /*  GAFLP1j         */
+} r_io_rscan_from_rscan0gaflidj_t;
+
+
+typedef struct st_rscan_from_rscan0rmidp
+{
+ 
+    union iodefine_reg32_t  RMIDp;                         /*  RMIDp           */
+    union iodefine_reg32_t  RMPTRp;                        /*  RMPTRp          */
+    union iodefine_reg32_t  RMDF0p;                        /*  RMDF0p          */
+    union iodefine_reg32_t  RMDF1p;                        /*  RMDF1p          */
+} r_io_rscan_from_rscan0rmidp_t;
+
+
+typedef struct st_rscan_from_rscan0rfidm
+{
+ 
+    union iodefine_reg32_t  RFIDm;                         /*  RFIDm           */
+    union iodefine_reg32_t  RFPTRm;                        /*  RFPTRm          */
+    union iodefine_reg32_t  RFDF0m;                        /*  RFDF0m          */
+    union iodefine_reg32_t  RFDF1m;                        /*  RFDF1m          */
+} r_io_rscan_from_rscan0rfidm_t;
+
+
+typedef struct st_rscan_from_rscan0tmidp
+{
+ 
+    union iodefine_reg32_t  TMIDp;                         /*  TMIDp           */
+    union iodefine_reg32_t  TMPTRp;                        /*  TMPTRp          */
+    union iodefine_reg32_t  TMDF0p;                        /*  TMDF0p          */
+    union iodefine_reg32_t  TMDF1p;                        /*  TMDF1p          */
+} r_io_rscan_from_rscan0tmidp_t;
+
+
+typedef struct st_rscan_from_rscan0cfidm
+{
+ 
+    union iodefine_reg32_t  CFIDm;                         /*  CFIDm           */
+    union iodefine_reg32_t  CFPTRm;                        /*  CFPTRm          */
+    union iodefine_reg32_t  CFDF0m;                        /*  CFDF0m          */
+    union iodefine_reg32_t  CFDF1m;                        /*  CFDF1m          */
+} r_io_rscan_from_rscan0cfidm_t;
+
+
+/* Channel array defines of RSCAN0 (2)*/
+#ifdef  DECLARE_RSCAN_FROM_RSCAN0_CFIDm_CHANNELS
+volatile struct st_rscan_from_rscan0cfidm*  RSCAN_FROM_RSCAN0_CFIDm[ RSCAN_FROM_RSCAN0_CFIDm_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    RSCAN_FROM_RSCAN0_CFIDm_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_RSCAN_FROM_RSCAN0_CFIDm_CHANNELS */
+
+#ifdef  DECLARE_RSCAN_FROM_RSCAN0_TMIDp_CHANNELS
+volatile struct st_rscan_from_rscan0tmidp*  RSCAN_FROM_RSCAN0_TMIDp[ RSCAN_FROM_RSCAN0_TMIDp_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    RSCAN_FROM_RSCAN0_TMIDp_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_RSCAN_FROM_RSCAN0_TMIDp_CHANNELS */
+
+#ifdef  DECLARE_RSCAN_FROM_RSCAN0_RFIDm_CHANNELS
+volatile struct st_rscan_from_rscan0rfidm*  RSCAN_FROM_RSCAN0_RFIDm[ RSCAN_FROM_RSCAN0_RFIDm_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    RSCAN_FROM_RSCAN0_RFIDm_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_RSCAN_FROM_RSCAN0_RFIDm_CHANNELS */
+
+#ifdef  DECLARE_RSCAN_FROM_RSCAN0_RMIDp_CHANNELS
+volatile struct st_rscan_from_rscan0rmidp*  RSCAN_FROM_RSCAN0_RMIDp[ RSCAN_FROM_RSCAN0_RMIDp_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    RSCAN_FROM_RSCAN0_RMIDp_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_RSCAN_FROM_RSCAN0_RMIDp_CHANNELS */
+
+#ifdef  DECLARE_RSCAN_FROM_RSCAN0_GAFLIDj_CHANNELS
+volatile struct st_rscan_from_rscan0gaflidj*  RSCAN_FROM_RSCAN0_GAFLIDj[ RSCAN_FROM_RSCAN0_GAFLIDj_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    RSCAN_FROM_RSCAN0_GAFLIDj_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_RSCAN_FROM_RSCAN0_GAFLIDj_CHANNELS */
+
+#ifdef  DECLARE_RSCAN_FROM_RSCAN0_CnCFG_CHANNELS
+volatile struct st_rscan_from_rscan0cncfg*  RSCAN_FROM_RSCAN0_CnCFG[ RSCAN_FROM_RSCAN0_CnCFG_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    RSCAN_FROM_RSCAN0_CnCFG_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_RSCAN_FROM_RSCAN0_CnCFG_CHANNELS */
+/* End of channel array defines of RSCAN0 (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rspi_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rspi_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rspi_iodefine.h	(revision 429)
@@ -0,0 +1,224 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : rspi_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef RSPI_IODEFINE_H
+#define RSPI_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define RSPI0   (*(struct st_rspi    *)0xE800C800uL) /* RSPI0 */
+#define RSPI1   (*(struct st_rspi    *)0xE800D000uL) /* RSPI1 */
+#define RSPI2   (*(struct st_rspi    *)0xE800D800uL) /* RSPI2 */
+#define RSPI3   (*(struct st_rspi    *)0xE800E000uL) /* RSPI3 */
+#define RSPI4   (*(struct st_rspi    *)0xE800E800uL) /* RSPI4 */
+
+
+/* Start of channel array defines of RSPI */
+
+/* Channel array defines of RSPI */
+/*(Sample) value = RSPI[ channel ]->SPCR; */
+#define RSPI_COUNT  (5)
+#define RSPI_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &RSPI0, &RSPI1, &RSPI2, &RSPI3, &RSPI4 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of RSPI */
+
+
+#define SPCR_0 (RSPI0.SPCR)
+#define SSLP_0 (RSPI0.SSLP)
+#define SPPCR_0 (RSPI0.SPPCR)
+#define SPSR_0 (RSPI0.SPSR)
+#define SPDR_0   (RSPI0.SPDR.UINT32)
+#define SPDR_0L  (RSPI0.SPDR.UINT16[R_IO_L])
+#define SPDR_0H  (RSPI0.SPDR.UINT16[R_IO_H])
+#define SPDR_0LL (RSPI0.SPDR.UINT8[R_IO_LL])
+#define SPDR_0LH (RSPI0.SPDR.UINT8[R_IO_LH])
+#define SPDR_0HL (RSPI0.SPDR.UINT8[R_IO_HL])
+#define SPDR_0HH (RSPI0.SPDR.UINT8[R_IO_HH])
+#define SPSCR_0 (RSPI0.SPSCR)
+#define SPSSR_0 (RSPI0.SPSSR)
+#define SPBR_0 (RSPI0.SPBR)
+#define SPDCR_0 (RSPI0.SPDCR)
+#define SPCKD_0 (RSPI0.SPCKD)
+#define SSLND_0 (RSPI0.SSLND)
+#define SPND_0 (RSPI0.SPND)
+#define SPCMD0_0 (RSPI0.SPCMD0)
+#define SPCMD1_0 (RSPI0.SPCMD1)
+#define SPCMD2_0 (RSPI0.SPCMD2)
+#define SPCMD3_0 (RSPI0.SPCMD3)
+#define SPBFCR_0 (RSPI0.SPBFCR)
+#define SPBFDR_0 (RSPI0.SPBFDR)
+#define SPCR_1 (RSPI1.SPCR)
+#define SSLP_1 (RSPI1.SSLP)
+#define SPPCR_1 (RSPI1.SPPCR)
+#define SPSR_1 (RSPI1.SPSR)
+#define SPDR_1   (RSPI1.SPDR.UINT32)
+#define SPDR_1L  (RSPI1.SPDR.UINT16[R_IO_L])
+#define SPDR_1H  (RSPI1.SPDR.UINT16[R_IO_H])
+#define SPDR_1LL (RSPI1.SPDR.UINT8[R_IO_LL])
+#define SPDR_1LH (RSPI1.SPDR.UINT8[R_IO_LH])
+#define SPDR_1HL (RSPI1.SPDR.UINT8[R_IO_HL])
+#define SPDR_1HH (RSPI1.SPDR.UINT8[R_IO_HH])
+#define SPSCR_1 (RSPI1.SPSCR)
+#define SPSSR_1 (RSPI1.SPSSR)
+#define SPBR_1 (RSPI1.SPBR)
+#define SPDCR_1 (RSPI1.SPDCR)
+#define SPCKD_1 (RSPI1.SPCKD)
+#define SSLND_1 (RSPI1.SSLND)
+#define SPND_1 (RSPI1.SPND)
+#define SPCMD0_1 (RSPI1.SPCMD0)
+#define SPCMD1_1 (RSPI1.SPCMD1)
+#define SPCMD2_1 (RSPI1.SPCMD2)
+#define SPCMD3_1 (RSPI1.SPCMD3)
+#define SPBFCR_1 (RSPI1.SPBFCR)
+#define SPBFDR_1 (RSPI1.SPBFDR)
+#define SPCR_2 (RSPI2.SPCR)
+#define SSLP_2 (RSPI2.SSLP)
+#define SPPCR_2 (RSPI2.SPPCR)
+#define SPSR_2 (RSPI2.SPSR)
+#define SPDR_2   (RSPI2.SPDR.UINT32)
+#define SPDR_2L  (RSPI2.SPDR.UINT16[R_IO_L])
+#define SPDR_2H  (RSPI2.SPDR.UINT16[R_IO_H])
+#define SPDR_2LL (RSPI2.SPDR.UINT8[R_IO_LL])
+#define SPDR_2LH (RSPI2.SPDR.UINT8[R_IO_LH])
+#define SPDR_2HL (RSPI2.SPDR.UINT8[R_IO_HL])
+#define SPDR_2HH (RSPI2.SPDR.UINT8[R_IO_HH])
+#define SPSCR_2 (RSPI2.SPSCR)
+#define SPSSR_2 (RSPI2.SPSSR)
+#define SPBR_2 (RSPI2.SPBR)
+#define SPDCR_2 (RSPI2.SPDCR)
+#define SPCKD_2 (RSPI2.SPCKD)
+#define SSLND_2 (RSPI2.SSLND)
+#define SPND_2 (RSPI2.SPND)
+#define SPCMD0_2 (RSPI2.SPCMD0)
+#define SPCMD1_2 (RSPI2.SPCMD1)
+#define SPCMD2_2 (RSPI2.SPCMD2)
+#define SPCMD3_2 (RSPI2.SPCMD3)
+#define SPBFCR_2 (RSPI2.SPBFCR)
+#define SPBFDR_2 (RSPI2.SPBFDR)
+#define SPCR_3 (RSPI3.SPCR)
+#define SSLP_3 (RSPI3.SSLP)
+#define SPPCR_3 (RSPI3.SPPCR)
+#define SPSR_3 (RSPI3.SPSR)
+#define SPDR_3   (RSPI3.SPDR.UINT32)
+#define SPDR_3L  (RSPI3.SPDR.UINT16[R_IO_L])
+#define SPDR_3H  (RSPI3.SPDR.UINT16[R_IO_H])
+#define SPDR_3LL (RSPI3.SPDR.UINT8[R_IO_LL])
+#define SPDR_3LH (RSPI3.SPDR.UINT8[R_IO_LH])
+#define SPDR_3HL (RSPI3.SPDR.UINT8[R_IO_HL])
+#define SPDR_3HH (RSPI3.SPDR.UINT8[R_IO_HH])
+#define SPSCR_3 (RSPI3.SPSCR)
+#define SPSSR_3 (RSPI3.SPSSR)
+#define SPBR_3 (RSPI3.SPBR)
+#define SPDCR_3 (RSPI3.SPDCR)
+#define SPCKD_3 (RSPI3.SPCKD)
+#define SSLND_3 (RSPI3.SSLND)
+#define SPND_3 (RSPI3.SPND)
+#define SPCMD0_3 (RSPI3.SPCMD0)
+#define SPCMD1_3 (RSPI3.SPCMD1)
+#define SPCMD2_3 (RSPI3.SPCMD2)
+#define SPCMD3_3 (RSPI3.SPCMD3)
+#define SPBFCR_3 (RSPI3.SPBFCR)
+#define SPBFDR_3 (RSPI3.SPBFDR)
+#define SPCR_4 (RSPI4.SPCR)
+#define SSLP_4 (RSPI4.SSLP)
+#define SPPCR_4 (RSPI4.SPPCR)
+#define SPSR_4 (RSPI4.SPSR)
+#define SPDR_4   (RSPI4.SPDR.UINT32)
+#define SPDR_4L  (RSPI4.SPDR.UINT16[R_IO_L])
+#define SPDR_4H  (RSPI4.SPDR.UINT16[R_IO_H])
+#define SPDR_4LL (RSPI4.SPDR.UINT8[R_IO_LL])
+#define SPDR_4LH (RSPI4.SPDR.UINT8[R_IO_LH])
+#define SPDR_4HL (RSPI4.SPDR.UINT8[R_IO_HL])
+#define SPDR_4HH (RSPI4.SPDR.UINT8[R_IO_HH])
+#define SPSCR_4 (RSPI4.SPSCR)
+#define SPSSR_4 (RSPI4.SPSSR)
+#define SPBR_4 (RSPI4.SPBR)
+#define SPDCR_4 (RSPI4.SPDCR)
+#define SPCKD_4 (RSPI4.SPCKD)
+#define SSLND_4 (RSPI4.SSLND)
+#define SPND_4 (RSPI4.SPND)
+#define SPCMD0_4 (RSPI4.SPCMD0)
+#define SPCMD1_4 (RSPI4.SPCMD1)
+#define SPCMD2_4 (RSPI4.SPCMD2)
+#define SPCMD3_4 (RSPI4.SPCMD3)
+#define SPBFCR_4 (RSPI4.SPBFCR)
+#define SPBFDR_4 (RSPI4.SPBFDR)
+
+#define SPCMD_COUNT (4)
+
+
+typedef struct st_rspi
+{
+                                                           /* RSPI             */
+    volatile uint8_t   SPCR;                                   /*  SPCR            */
+    volatile uint8_t   SSLP;                                   /*  SSLP            */
+    volatile uint8_t   SPPCR;                                  /*  SPPCR           */
+    volatile uint8_t   SPSR;                                   /*  SPSR            */
+    union iodefine_reg32_t  SPDR;                          /*  SPDR            */
+    
+    volatile uint8_t   SPSCR;                                  /*  SPSCR           */
+    volatile uint8_t   SPSSR;                                  /*  SPSSR           */
+    volatile uint8_t   SPBR;                                   /*  SPBR            */
+    volatile uint8_t   SPDCR;                                  /*  SPDCR           */
+    volatile uint8_t   SPCKD;                                  /*  SPCKD           */
+    volatile uint8_t   SSLND;                                  /*  SSLND           */
+    volatile uint8_t   SPND;                                   /*  SPND            */
+    volatile uint8_t   dummy1[1];                              /*                  */
+
+/* #define SPCMD_COUNT (4) */
+    volatile uint16_t SPCMD0;                                 /*  SPCMD0          */
+    volatile uint16_t SPCMD1;                                 /*  SPCMD1          */
+    volatile uint16_t SPCMD2;                                 /*  SPCMD2          */
+    volatile uint16_t SPCMD3;                                 /*  SPCMD3          */
+    volatile uint8_t   dummy2[8];                              /*                  */
+    volatile uint8_t   SPBFCR;                                 /*  SPBFCR          */
+    volatile uint8_t   dummy3[1];                              /*                  */
+    volatile uint16_t SPBFDR;                                 /*  SPBFDR          */
+} r_io_rspi_t;
+
+
+/* Channel array defines of RSPI (2)*/
+#ifdef  DECLARE_RSPI_CHANNELS
+volatile struct st_rspi*  RSPI[ RSPI_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    RSPI_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_RSPI_CHANNELS */
+/* End of channel array defines of RSPI (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rtc_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rtc_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/rtc_iodefine.h	(revision 429)
@@ -0,0 +1,111 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : rtc_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef RTC_IODEFINE_H
+#define RTC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define RTC     (*(struct st_rtc     *)0xFCFF1000uL) /* RTC */
+
+
+#define RTCR64CNT (RTC.R64CNT)
+#define RTCRSECCNT (RTC.RSECCNT)
+#define RTCRMINCNT (RTC.RMINCNT)
+#define RTCRHRCNT (RTC.RHRCNT)
+#define RTCRWKCNT (RTC.RWKCNT)
+#define RTCRDAYCNT (RTC.RDAYCNT)
+#define RTCRMONCNT (RTC.RMONCNT)
+#define RTCRYRCNT (RTC.RYRCNT)
+#define RTCRSECAR (RTC.RSECAR)
+#define RTCRMINAR (RTC.RMINAR)
+#define RTCRHRAR (RTC.RHRAR)
+#define RTCRWKAR (RTC.RWKAR)
+#define RTCRDAYAR (RTC.RDAYAR)
+#define RTCRMONAR (RTC.RMONAR)
+#define RTCRCR1 (RTC.RCR1)
+#define RTCRCR2 (RTC.RCR2)
+#define RTCRYRAR (RTC.RYRAR)
+#define RTCRCR3 (RTC.RCR3)
+#define RTCRCR5 (RTC.RCR5)
+#define RTCRFRH (RTC.RFRH)
+#define RTCRFRL (RTC.RFRL)
+
+
+typedef struct st_rtc
+{
+                                                           /* RTC              */
+    volatile uint8_t   R64CNT;                                 /*  R64CNT          */
+    volatile uint8_t   dummy537[1];                            /*                  */
+    volatile uint8_t   RSECCNT;                                /*  RSECCNT         */
+    volatile uint8_t   dummy538[1];                            /*                  */
+    volatile uint8_t   RMINCNT;                                /*  RMINCNT         */
+    volatile uint8_t   dummy539[1];                            /*                  */
+    volatile uint8_t   RHRCNT;                                 /*  RHRCNT          */
+    volatile uint8_t   dummy540[1];                            /*                  */
+    volatile uint8_t   RWKCNT;                                 /*  RWKCNT          */
+    volatile uint8_t   dummy541[1];                            /*                  */
+    volatile uint8_t   RDAYCNT;                                /*  RDAYCNT         */
+    volatile uint8_t   dummy542[1];                            /*                  */
+    volatile uint8_t   RMONCNT;                                /*  RMONCNT         */
+    volatile uint8_t   dummy543[1];                            /*                  */
+    volatile uint16_t RYRCNT;                                 /*  RYRCNT          */
+    volatile uint8_t   RSECAR;                                 /*  RSECAR          */
+    volatile uint8_t   dummy544[1];                            /*                  */
+    volatile uint8_t   RMINAR;                                 /*  RMINAR          */
+    volatile uint8_t   dummy545[1];                            /*                  */
+    volatile uint8_t   RHRAR;                                  /*  RHRAR           */
+    volatile uint8_t   dummy546[1];                            /*                  */
+    volatile uint8_t   RWKAR;                                  /*  RWKAR           */
+    volatile uint8_t   dummy547[1];                            /*                  */
+    volatile uint8_t   RDAYAR;                                 /*  RDAYAR          */
+    volatile uint8_t   dummy548[1];                            /*                  */
+    volatile uint8_t   RMONAR;                                 /*  RMONAR          */
+    volatile uint8_t   dummy549[1];                            /*                  */
+    volatile uint8_t   RCR1;                                   /*  RCR1            */
+    volatile uint8_t   dummy550[1];                            /*                  */
+    volatile uint8_t   RCR2;                                   /*  RCR2            */
+    volatile uint8_t   dummy551[1];                            /*                  */
+    volatile uint16_t RYRAR;                                  /*  RYRAR           */
+    volatile uint8_t   dummy552[2];                            /*                  */
+    volatile uint8_t   RCR3;                                   /*  RCR3            */
+    volatile uint8_t   dummy553[1];                            /*                  */
+    volatile uint8_t   RCR5;                                   /*  RCR5            */
+    volatile uint8_t   dummy554[3];                            /*                  */
+    volatile uint16_t RFRH;                                   /*  RFRH            */
+    volatile uint16_t RFRL;                                   /*  RFRL            */
+} r_io_rtc_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scif_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scif_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scif_iodefine.h	(revision 429)
@@ -0,0 +1,190 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : scif_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef SCIF_IODEFINE_H
+#define SCIF_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define SCIF0   (*(struct st_scif    *)0xE8007000uL) /* SCIF0 */
+#define SCIF1   (*(struct st_scif    *)0xE8007800uL) /* SCIF1 */
+#define SCIF2   (*(struct st_scif    *)0xE8008000uL) /* SCIF2 */
+#define SCIF3   (*(struct st_scif    *)0xE8008800uL) /* SCIF3 */
+#define SCIF4   (*(struct st_scif    *)0xE8009000uL) /* SCIF4 */
+#define SCIF5   (*(struct st_scif    *)0xE8009800uL) /* SCIF5 */
+#define SCIF6   (*(struct st_scif    *)0xE800A000uL) /* SCIF6 */
+#define SCIF7   (*(struct st_scif    *)0xE800A800uL) /* SCIF7 */
+
+
+/* Start of channel array defines of SCIF */
+
+/* Channel array defines of SCIF */
+/*(Sample) value = SCIF[ channel ]->SCSMR; */
+#define SCIF_COUNT  (8)
+#define SCIF_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SCIF0, &SCIF1, &SCIF2, &SCIF3, &SCIF4, &SCIF5, &SCIF6, &SCIF7 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of SCIF */
+
+
+#define SCSMR_0 (SCIF0.SCSMR)
+#define SCBRR_0 (SCIF0.SCBRR)
+#define SCSCR_0 (SCIF0.SCSCR)
+#define SCFTDR_0 (SCIF0.SCFTDR)
+#define SCFSR_0 (SCIF0.SCFSR)
+#define SCFRDR_0 (SCIF0.SCFRDR)
+#define SCFCR_0 (SCIF0.SCFCR)
+#define SCFDR_0 (SCIF0.SCFDR)
+#define SCSPTR_0 (SCIF0.SCSPTR)
+#define SCLSR_0 (SCIF0.SCLSR)
+#define SCEMR_0 (SCIF0.SCEMR)
+#define SCSMR_1 (SCIF1.SCSMR)
+#define SCBRR_1 (SCIF1.SCBRR)
+#define SCSCR_1 (SCIF1.SCSCR)
+#define SCFTDR_1 (SCIF1.SCFTDR)
+#define SCFSR_1 (SCIF1.SCFSR)
+#define SCFRDR_1 (SCIF1.SCFRDR)
+#define SCFCR_1 (SCIF1.SCFCR)
+#define SCFDR_1 (SCIF1.SCFDR)
+#define SCSPTR_1 (SCIF1.SCSPTR)
+#define SCLSR_1 (SCIF1.SCLSR)
+#define SCEMR_1 (SCIF1.SCEMR)
+#define SCSMR_2 (SCIF2.SCSMR)
+#define SCBRR_2 (SCIF2.SCBRR)
+#define SCSCR_2 (SCIF2.SCSCR)
+#define SCFTDR_2 (SCIF2.SCFTDR)
+#define SCFSR_2 (SCIF2.SCFSR)
+#define SCFRDR_2 (SCIF2.SCFRDR)
+#define SCFCR_2 (SCIF2.SCFCR)
+#define SCFDR_2 (SCIF2.SCFDR)
+#define SCSPTR_2 (SCIF2.SCSPTR)
+#define SCLSR_2 (SCIF2.SCLSR)
+#define SCEMR_2 (SCIF2.SCEMR)
+#define SCSMR_3 (SCIF3.SCSMR)
+#define SCBRR_3 (SCIF3.SCBRR)
+#define SCSCR_3 (SCIF3.SCSCR)
+#define SCFTDR_3 (SCIF3.SCFTDR)
+#define SCFSR_3 (SCIF3.SCFSR)
+#define SCFRDR_3 (SCIF3.SCFRDR)
+#define SCFCR_3 (SCIF3.SCFCR)
+#define SCFDR_3 (SCIF3.SCFDR)
+#define SCSPTR_3 (SCIF3.SCSPTR)
+#define SCLSR_3 (SCIF3.SCLSR)
+#define SCEMR_3 (SCIF3.SCEMR)
+#define SCSMR_4 (SCIF4.SCSMR)
+#define SCBRR_4 (SCIF4.SCBRR)
+#define SCSCR_4 (SCIF4.SCSCR)
+#define SCFTDR_4 (SCIF4.SCFTDR)
+#define SCFSR_4 (SCIF4.SCFSR)
+#define SCFRDR_4 (SCIF4.SCFRDR)
+#define SCFCR_4 (SCIF4.SCFCR)
+#define SCFDR_4 (SCIF4.SCFDR)
+#define SCSPTR_4 (SCIF4.SCSPTR)
+#define SCLSR_4 (SCIF4.SCLSR)
+#define SCEMR_4 (SCIF4.SCEMR)
+#define SCSMR_5 (SCIF5.SCSMR)
+#define SCBRR_5 (SCIF5.SCBRR)
+#define SCSCR_5 (SCIF5.SCSCR)
+#define SCFTDR_5 (SCIF5.SCFTDR)
+#define SCFSR_5 (SCIF5.SCFSR)
+#define SCFRDR_5 (SCIF5.SCFRDR)
+#define SCFCR_5 (SCIF5.SCFCR)
+#define SCFDR_5 (SCIF5.SCFDR)
+#define SCSPTR_5 (SCIF5.SCSPTR)
+#define SCLSR_5 (SCIF5.SCLSR)
+#define SCEMR_5 (SCIF5.SCEMR)
+#define SCSMR_6 (SCIF6.SCSMR)
+#define SCBRR_6 (SCIF6.SCBRR)
+#define SCSCR_6 (SCIF6.SCSCR)
+#define SCFTDR_6 (SCIF6.SCFTDR)
+#define SCFSR_6 (SCIF6.SCFSR)
+#define SCFRDR_6 (SCIF6.SCFRDR)
+#define SCFCR_6 (SCIF6.SCFCR)
+#define SCFDR_6 (SCIF6.SCFDR)
+#define SCSPTR_6 (SCIF6.SCSPTR)
+#define SCLSR_6 (SCIF6.SCLSR)
+#define SCEMR_6 (SCIF6.SCEMR)
+#define SCSMR_7 (SCIF7.SCSMR)
+#define SCBRR_7 (SCIF7.SCBRR)
+#define SCSCR_7 (SCIF7.SCSCR)
+#define SCFTDR_7 (SCIF7.SCFTDR)
+#define SCFSR_7 (SCIF7.SCFSR)
+#define SCFRDR_7 (SCIF7.SCFRDR)
+#define SCFCR_7 (SCIF7.SCFCR)
+#define SCFDR_7 (SCIF7.SCFDR)
+#define SCSPTR_7 (SCIF7.SCSPTR)
+#define SCLSR_7 (SCIF7.SCLSR)
+#define SCEMR_7 (SCIF7.SCEMR)
+
+
+typedef struct st_scif
+{
+                                                           /* SCIF             */
+    volatile uint16_t SCSMR;                                  /*  SCSMR           */
+    volatile uint8_t   dummy1[2];                              /*                  */
+    volatile uint8_t   SCBRR;                                  /*  SCBRR           */
+    volatile uint8_t   dummy2[3];                              /*                  */
+    volatile uint16_t SCSCR;                                  /*  SCSCR           */
+    volatile uint8_t   dummy3[2];                              /*                  */
+    volatile uint8_t   SCFTDR;                                 /*  SCFTDR          */
+    volatile uint8_t   dummy4[3];                              /*                  */
+    volatile uint16_t SCFSR;                                  /*  SCFSR           */
+    volatile uint8_t   dummy5[2];                              /*                  */
+    volatile uint8_t   SCFRDR;                                 /*  SCFRDR          */
+    volatile uint8_t   dummy6[3];                              /*                  */
+    volatile uint16_t SCFCR;                                  /*  SCFCR           */
+    volatile uint8_t   dummy7[2];                              /*                  */
+    volatile uint16_t SCFDR;                                  /*  SCFDR           */
+    volatile uint8_t   dummy8[2];                              /*                  */
+    volatile uint16_t SCSPTR;                                 /*  SCSPTR          */
+    volatile uint8_t   dummy9[2];                              /*                  */
+    volatile uint16_t SCLSR;                                  /*  SCLSR           */
+    volatile uint8_t   dummy10[2];                             /*                  */
+    volatile uint16_t SCEMR;                                  /*  SCEMR           */
+} r_io_scif_t;
+
+
+/* Channel array defines of SCIF (2)*/
+#ifdef  DECLARE_SCIF_CHANNELS
+volatile struct st_scif*  SCIF[ SCIF_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SCIF_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SCIF_CHANNELS */
+/* End of channel array defines of SCIF (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scim_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scim_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scim_iodefine.h	(revision 429)
@@ -0,0 +1,106 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : scim_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef SCIM_IODEFINE_H
+#define SCIM_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define SCIM0   (*(struct st_scim    *)0xE800B000uL) /* SCIM0 */
+#define SCIM1   (*(struct st_scim    *)0xE800B800uL) /* SCIM1 */
+
+
+/* Start of channel array defines of SCIM */
+
+/* Channel array defines of SCIM */
+/*(Sample) value = SCIM[ channel ]->SMR; */
+#define SCIM_COUNT  (2)
+#define SCIM_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SCIM0, &SCIM1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of SCIM */
+
+
+#define SMR0 (SCIM0.SMR)
+#define BRR0 (SCIM0.BRR)
+#define SCR0 (SCIM0.SCR)
+#define TDR0 (SCIM0.TDR)
+#define SSR0 (SCIM0.SSR)
+#define RDR0 (SCIM0.RDR)
+#define SCMR0 (SCIM0.SCMR)
+#define SEMR0 (SCIM0.SEMR)
+#define SNFR0 (SCIM0.SNFR)
+#define SECR0 (SCIM0.SECR)
+#define SMR1 (SCIM1.SMR)
+#define BRR1 (SCIM1.BRR)
+#define SCR1 (SCIM1.SCR)
+#define TDR1 (SCIM1.TDR)
+#define SSR1 (SCIM1.SSR)
+#define RDR1 (SCIM1.RDR)
+#define SCMR1 (SCIM1.SCMR)
+#define SEMR1 (SCIM1.SEMR)
+#define SNFR1 (SCIM1.SNFR)
+#define SECR1 (SCIM1.SECR)
+
+
+typedef struct st_scim
+{
+                                                           /* SCIM             */
+    volatile uint8_t   SMR;                                    /*  SMR             */
+    volatile uint8_t   BRR;                                    /*  BRR             */
+    volatile uint8_t   SCR;                                    /*  SCR             */
+    volatile uint8_t   TDR;                                    /*  TDR             */
+    volatile uint8_t   SSR;                                    /*  SSR             */
+    volatile uint8_t   RDR;                                    /*  RDR             */
+    volatile uint8_t   SCMR;                                   /*  SCMR            */
+    volatile uint8_t   SEMR;                                   /*  SEMR            */
+    volatile uint8_t   SNFR;                                   /*  SNFR            */
+    volatile uint8_t   dummy1[4];                              /*                  */
+    volatile uint8_t   SECR;                                   /*  SECR            */
+} r_io_scim_t;
+
+
+/* Channel array defines of SCIM (2)*/
+#ifdef  DECLARE_SCIM_CHANNELS
+volatile struct st_scim*  SCIM[ SCIM_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SCIM_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SCIM_CHANNELS */
+/* End of channel array defines of SCIM (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scux_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scux_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/scux_iodefine.h	(revision 429)
@@ -0,0 +1,921 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : scux_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef SCUX_IODEFINE_H
+#define SCUX_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define SCUX    (*(struct st_scux    *)0xE8208000uL) /* SCUX */
+
+
+/* Start of channel array defines of SCUX */
+
+/* Channel array defines of SCUX_FROM_DVUIR_DVU0_0_ARRAY */
+/*(Sample) value = SCUX_FROM_DVUIR_DVU0_0_ARRAY[ channel ]->DVUIR_DVU0_0; */
+#define SCUX_FROM_DVUIR_DVU0_0_ARRAY_COUNT  (4)
+#define SCUX_FROM_DVUIR_DVU0_0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SCUX_FROM_DVUIR_DVU0_0, &SCUX_FROM_DVUIR_DVU0_1, &SCUX_FROM_DVUIR_DVU0_2, &SCUX_FROM_DVUIR_DVU0_3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define SCUX_FROM_DVUIR_DVU0_0 (*(struct st_scux_from_dvuir_dvu0_n *)&SCUX.DVUIR_DVU0_0) /* SCUX_FROM_DVUIR_DVU0_0 */
+#define SCUX_FROM_DVUIR_DVU0_1 (*(struct st_scux_from_dvuir_dvu0_n *)&SCUX.DVUIR_DVU0_1) /* SCUX_FROM_DVUIR_DVU0_1 */
+#define SCUX_FROM_DVUIR_DVU0_2 (*(struct st_scux_from_dvuir_dvu0_n *)&SCUX.DVUIR_DVU0_2) /* SCUX_FROM_DVUIR_DVU0_2 */
+#define SCUX_FROM_DVUIR_DVU0_3 (*(struct st_scux_from_dvuir_dvu0_n *)&SCUX.DVUIR_DVU0_3) /* SCUX_FROM_DVUIR_DVU0_3 */
+
+
+/* Channel array defines of SCUX_FROM_SRCIR0_2SRC0_0_ARRAY */
+/*(Sample) value = SCUX_FROM_SRCIR0_2SRC0_0_ARRAY[ channel ]->SRCIR0_2SRC0_0; */
+#define SCUX_FROM_SRCIR0_2SRC0_0_ARRAY_COUNT  (2)
+#define SCUX_FROM_SRCIR0_2SRC0_0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SCUX_FROM_SRCIR0_2SRC0_0, &SCUX_FROM_SRCIR0_2SRC0_1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define SCUX_FROM_SRCIR0_2SRC0_0 (*(struct st_scux_from_srcir0_2src0_n *)&SCUX.SRCIR0_2SRC0_0) /* SCUX_FROM_SRCIR0_2SRC0_0 */
+#define SCUX_FROM_SRCIR0_2SRC0_1 (*(struct st_scux_from_srcir0_2src0_n *)&SCUX.SRCIR0_2SRC0_1) /* SCUX_FROM_SRCIR0_2SRC0_1 */
+
+
+/* Channel array defines of SCUX_FROM_FFUIR_FFU0_0_ARRAY */
+/*(Sample) value = SCUX_FROM_FFUIR_FFU0_0_ARRAY[ channel ]->FFUIR_FFU0_0; */
+#define SCUX_FROM_FFUIR_FFU0_0_ARRAY_COUNT  (4)
+#define SCUX_FROM_FFUIR_FFU0_0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SCUX_FROM_FFUIR_FFU0_0, &SCUX_FROM_FFUIR_FFU0_1, &SCUX_FROM_FFUIR_FFU0_2, &SCUX_FROM_FFUIR_FFU0_3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define SCUX_FROM_FFUIR_FFU0_0 (*(struct st_scux_from_ffuir_ffu0_n *)&SCUX.FFUIR_FFU0_0) /* SCUX_FROM_FFUIR_FFU0_0 */
+#define SCUX_FROM_FFUIR_FFU0_1 (*(struct st_scux_from_ffuir_ffu0_n *)&SCUX.FFUIR_FFU0_1) /* SCUX_FROM_FFUIR_FFU0_1 */
+#define SCUX_FROM_FFUIR_FFU0_2 (*(struct st_scux_from_ffuir_ffu0_n *)&SCUX.FFUIR_FFU0_2) /* SCUX_FROM_FFUIR_FFU0_2 */
+#define SCUX_FROM_FFUIR_FFU0_3 (*(struct st_scux_from_ffuir_ffu0_n *)&SCUX.FFUIR_FFU0_3) /* SCUX_FROM_FFUIR_FFU0_3 */
+
+
+/* Channel array defines of SCUX_FROM_FFDIR_FFD0_0_ARRAY */
+/*(Sample) value = SCUX_FROM_FFDIR_FFD0_0_ARRAY[ channel ]->FFDIR_FFD0_0; */
+#define SCUX_FROM_FFDIR_FFD0_0_ARRAY_COUNT  (4)
+#define SCUX_FROM_FFDIR_FFD0_0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SCUX_FROM_FFDIR_FFD0_0, &SCUX_FROM_FFDIR_FFD0_1, &SCUX_FROM_FFDIR_FFD0_2, &SCUX_FROM_FFDIR_FFD0_3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define SCUX_FROM_FFDIR_FFD0_0 (*(struct st_scux_from_ffdir_ffd0_n *)&SCUX.FFDIR_FFD0_0) /* SCUX_FROM_FFDIR_FFD0_0 */
+#define SCUX_FROM_FFDIR_FFD0_1 (*(struct st_scux_from_ffdir_ffd0_n *)&SCUX.FFDIR_FFD0_1) /* SCUX_FROM_FFDIR_FFD0_1 */
+#define SCUX_FROM_FFDIR_FFD0_2 (*(struct st_scux_from_ffdir_ffd0_n *)&SCUX.FFDIR_FFD0_2) /* SCUX_FROM_FFDIR_FFD0_2 */
+#define SCUX_FROM_FFDIR_FFD0_3 (*(struct st_scux_from_ffdir_ffd0_n *)&SCUX.FFDIR_FFD0_3) /* SCUX_FROM_FFDIR_FFD0_3 */
+
+
+/* Channel array defines of SCUX_FROM_OPCIR_OPC0_0_ARRAY */
+/*(Sample) value = SCUX_FROM_OPCIR_OPC0_0_ARRAY[ channel ]->OPCIR_OPC0_0; */
+#define SCUX_FROM_OPCIR_OPC0_0_ARRAY_COUNT  (4)
+#define SCUX_FROM_OPCIR_OPC0_0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SCUX_FROM_OPCIR_OPC0_0, &SCUX_FROM_OPCIR_OPC0_1, &SCUX_FROM_OPCIR_OPC0_2, &SCUX_FROM_OPCIR_OPC0_3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define SCUX_FROM_OPCIR_OPC0_0 (*(struct st_scux_from_opcir_opc0_n *)&SCUX.OPCIR_OPC0_0) /* SCUX_FROM_OPCIR_OPC0_0 */
+#define SCUX_FROM_OPCIR_OPC0_1 (*(struct st_scux_from_opcir_opc0_n *)&SCUX.OPCIR_OPC0_1) /* SCUX_FROM_OPCIR_OPC0_1 */
+#define SCUX_FROM_OPCIR_OPC0_2 (*(struct st_scux_from_opcir_opc0_n *)&SCUX.OPCIR_OPC0_2) /* SCUX_FROM_OPCIR_OPC0_2 */
+#define SCUX_FROM_OPCIR_OPC0_3 (*(struct st_scux_from_opcir_opc0_n *)&SCUX.OPCIR_OPC0_3) /* SCUX_FROM_OPCIR_OPC0_3 */
+
+
+/* Channel array defines of SCUX_FROM_IPCIR_IPC0_0_ARRAY */
+/*(Sample) value = SCUX_FROM_IPCIR_IPC0_0_ARRAY[ channel ]->IPCIR_IPC0_0; */
+#define SCUX_FROM_IPCIR_IPC0_0_ARRAY_COUNT  (4)
+#define SCUX_FROM_IPCIR_IPC0_0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SCUX_FROM_IPCIR_IPC0_0, &SCUX_FROM_IPCIR_IPC0_1, &SCUX_FROM_IPCIR_IPC0_2, &SCUX_FROM_IPCIR_IPC0_3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define SCUX_FROM_IPCIR_IPC0_0 (*(struct st_scux_from_ipcir_ipc0_n *)&SCUX.IPCIR_IPC0_0) /* SCUX_FROM_IPCIR_IPC0_0 */
+#define SCUX_FROM_IPCIR_IPC0_1 (*(struct st_scux_from_ipcir_ipc0_n *)&SCUX.IPCIR_IPC0_1) /* SCUX_FROM_IPCIR_IPC0_1 */
+#define SCUX_FROM_IPCIR_IPC0_2 (*(struct st_scux_from_ipcir_ipc0_n *)&SCUX.IPCIR_IPC0_2) /* SCUX_FROM_IPCIR_IPC0_2 */
+#define SCUX_FROM_IPCIR_IPC0_3 (*(struct st_scux_from_ipcir_ipc0_n *)&SCUX.IPCIR_IPC0_3) /* SCUX_FROM_IPCIR_IPC0_3 */
+
+/* End of channel array defines of SCUX */
+
+
+#define SCUXIPCIR_IPC0_0 (SCUX.IPCIR_IPC0_0)
+#define SCUXIPSLR_IPC0_0 (SCUX.IPSLR_IPC0_0)
+#define SCUXIPCIR_IPC0_1 (SCUX.IPCIR_IPC0_1)
+#define SCUXIPSLR_IPC0_1 (SCUX.IPSLR_IPC0_1)
+#define SCUXIPCIR_IPC0_2 (SCUX.IPCIR_IPC0_2)
+#define SCUXIPSLR_IPC0_2 (SCUX.IPSLR_IPC0_2)
+#define SCUXIPCIR_IPC0_3 (SCUX.IPCIR_IPC0_3)
+#define SCUXIPSLR_IPC0_3 (SCUX.IPSLR_IPC0_3)
+#define SCUXOPCIR_OPC0_0 (SCUX.OPCIR_OPC0_0)
+#define SCUXOPSLR_OPC0_0 (SCUX.OPSLR_OPC0_0)
+#define SCUXOPCIR_OPC0_1 (SCUX.OPCIR_OPC0_1)
+#define SCUXOPSLR_OPC0_1 (SCUX.OPSLR_OPC0_1)
+#define SCUXOPCIR_OPC0_2 (SCUX.OPCIR_OPC0_2)
+#define SCUXOPSLR_OPC0_2 (SCUX.OPSLR_OPC0_2)
+#define SCUXOPCIR_OPC0_3 (SCUX.OPCIR_OPC0_3)
+#define SCUXOPSLR_OPC0_3 (SCUX.OPSLR_OPC0_3)
+#define SCUXFFDIR_FFD0_0 (SCUX.FFDIR_FFD0_0)
+#define SCUXFDAIR_FFD0_0 (SCUX.FDAIR_FFD0_0)
+#define SCUXDRQSR_FFD0_0 (SCUX.DRQSR_FFD0_0)
+#define SCUXFFDPR_FFD0_0 (SCUX.FFDPR_FFD0_0)
+#define SCUXFFDBR_FFD0_0 (SCUX.FFDBR_FFD0_0)
+#define SCUXDEVMR_FFD0_0 (SCUX.DEVMR_FFD0_0)
+#define SCUXDEVCR_FFD0_0 (SCUX.DEVCR_FFD0_0)
+#define SCUXFFDIR_FFD0_1 (SCUX.FFDIR_FFD0_1)
+#define SCUXFDAIR_FFD0_1 (SCUX.FDAIR_FFD0_1)
+#define SCUXDRQSR_FFD0_1 (SCUX.DRQSR_FFD0_1)
+#define SCUXFFDPR_FFD0_1 (SCUX.FFDPR_FFD0_1)
+#define SCUXFFDBR_FFD0_1 (SCUX.FFDBR_FFD0_1)
+#define SCUXDEVMR_FFD0_1 (SCUX.DEVMR_FFD0_1)
+#define SCUXDEVCR_FFD0_1 (SCUX.DEVCR_FFD0_1)
+#define SCUXFFDIR_FFD0_2 (SCUX.FFDIR_FFD0_2)
+#define SCUXFDAIR_FFD0_2 (SCUX.FDAIR_FFD0_2)
+#define SCUXDRQSR_FFD0_2 (SCUX.DRQSR_FFD0_2)
+#define SCUXFFDPR_FFD0_2 (SCUX.FFDPR_FFD0_2)
+#define SCUXFFDBR_FFD0_2 (SCUX.FFDBR_FFD0_2)
+#define SCUXDEVMR_FFD0_2 (SCUX.DEVMR_FFD0_2)
+#define SCUXDEVCR_FFD0_2 (SCUX.DEVCR_FFD0_2)
+#define SCUXFFDIR_FFD0_3 (SCUX.FFDIR_FFD0_3)
+#define SCUXFDAIR_FFD0_3 (SCUX.FDAIR_FFD0_3)
+#define SCUXDRQSR_FFD0_3 (SCUX.DRQSR_FFD0_3)
+#define SCUXFFDPR_FFD0_3 (SCUX.FFDPR_FFD0_3)
+#define SCUXFFDBR_FFD0_3 (SCUX.FFDBR_FFD0_3)
+#define SCUXDEVMR_FFD0_3 (SCUX.DEVMR_FFD0_3)
+#define SCUXDEVCR_FFD0_3 (SCUX.DEVCR_FFD0_3)
+#define SCUXFFUIR_FFU0_0 (SCUX.FFUIR_FFU0_0)
+#define SCUXFUAIR_FFU0_0 (SCUX.FUAIR_FFU0_0)
+#define SCUXURQSR_FFU0_0 (SCUX.URQSR_FFU0_0)
+#define SCUXFFUPR_FFU0_0 (SCUX.FFUPR_FFU0_0)
+#define SCUXUEVMR_FFU0_0 (SCUX.UEVMR_FFU0_0)
+#define SCUXUEVCR_FFU0_0 (SCUX.UEVCR_FFU0_0)
+#define SCUXFFUIR_FFU0_1 (SCUX.FFUIR_FFU0_1)
+#define SCUXFUAIR_FFU0_1 (SCUX.FUAIR_FFU0_1)
+#define SCUXURQSR_FFU0_1 (SCUX.URQSR_FFU0_1)
+#define SCUXFFUPR_FFU0_1 (SCUX.FFUPR_FFU0_1)
+#define SCUXUEVMR_FFU0_1 (SCUX.UEVMR_FFU0_1)
+#define SCUXUEVCR_FFU0_1 (SCUX.UEVCR_FFU0_1)
+#define SCUXFFUIR_FFU0_2 (SCUX.FFUIR_FFU0_2)
+#define SCUXFUAIR_FFU0_2 (SCUX.FUAIR_FFU0_2)
+#define SCUXURQSR_FFU0_2 (SCUX.URQSR_FFU0_2)
+#define SCUXFFUPR_FFU0_2 (SCUX.FFUPR_FFU0_2)
+#define SCUXUEVMR_FFU0_2 (SCUX.UEVMR_FFU0_2)
+#define SCUXUEVCR_FFU0_2 (SCUX.UEVCR_FFU0_2)
+#define SCUXFFUIR_FFU0_3 (SCUX.FFUIR_FFU0_3)
+#define SCUXFUAIR_FFU0_3 (SCUX.FUAIR_FFU0_3)
+#define SCUXURQSR_FFU0_3 (SCUX.URQSR_FFU0_3)
+#define SCUXFFUPR_FFU0_3 (SCUX.FFUPR_FFU0_3)
+#define SCUXUEVMR_FFU0_3 (SCUX.UEVMR_FFU0_3)
+#define SCUXUEVCR_FFU0_3 (SCUX.UEVCR_FFU0_3)
+#define SCUXSRCIR0_2SRC0_0 (SCUX.SRCIR0_2SRC0_0)
+#define SCUXSADIR0_2SRC0_0 (SCUX.SADIR0_2SRC0_0)
+#define SCUXSRCBR0_2SRC0_0 (SCUX.SRCBR0_2SRC0_0)
+#define SCUXIFSCR0_2SRC0_0 (SCUX.IFSCR0_2SRC0_0)
+#define SCUXIFSVR0_2SRC0_0 (SCUX.IFSVR0_2SRC0_0)
+#define SCUXSRCCR0_2SRC0_0 (SCUX.SRCCR0_2SRC0_0)
+#define SCUXMNFSR0_2SRC0_0 (SCUX.MNFSR0_2SRC0_0)
+#define SCUXBFSSR0_2SRC0_0 (SCUX.BFSSR0_2SRC0_0)
+#define SCUXSC2SR0_2SRC0_0 (SCUX.SC2SR0_2SRC0_0)
+#define SCUXWATSR0_2SRC0_0 (SCUX.WATSR0_2SRC0_0)
+#define SCUXSEVMR0_2SRC0_0 (SCUX.SEVMR0_2SRC0_0)
+#define SCUXSEVCR0_2SRC0_0 (SCUX.SEVCR0_2SRC0_0)
+#define SCUXSRCIR1_2SRC0_0 (SCUX.SRCIR1_2SRC0_0)
+#define SCUXSADIR1_2SRC0_0 (SCUX.SADIR1_2SRC0_0)
+#define SCUXSRCBR1_2SRC0_0 (SCUX.SRCBR1_2SRC0_0)
+#define SCUXIFSCR1_2SRC0_0 (SCUX.IFSCR1_2SRC0_0)
+#define SCUXIFSVR1_2SRC0_0 (SCUX.IFSVR1_2SRC0_0)
+#define SCUXSRCCR1_2SRC0_0 (SCUX.SRCCR1_2SRC0_0)
+#define SCUXMNFSR1_2SRC0_0 (SCUX.MNFSR1_2SRC0_0)
+#define SCUXBFSSR1_2SRC0_0 (SCUX.BFSSR1_2SRC0_0)
+#define SCUXSC2SR1_2SRC0_0 (SCUX.SC2SR1_2SRC0_0)
+#define SCUXWATSR1_2SRC0_0 (SCUX.WATSR1_2SRC0_0)
+#define SCUXSEVMR1_2SRC0_0 (SCUX.SEVMR1_2SRC0_0)
+#define SCUXSEVCR1_2SRC0_0 (SCUX.SEVCR1_2SRC0_0)
+#define SCUXSRCIRR_2SRC0_0 (SCUX.SRCIRR_2SRC0_0)
+#define SCUXSRCIR0_2SRC0_1 (SCUX.SRCIR0_2SRC0_1)
+#define SCUXSADIR0_2SRC0_1 (SCUX.SADIR0_2SRC0_1)
+#define SCUXSRCBR0_2SRC0_1 (SCUX.SRCBR0_2SRC0_1)
+#define SCUXIFSCR0_2SRC0_1 (SCUX.IFSCR0_2SRC0_1)
+#define SCUXIFSVR0_2SRC0_1 (SCUX.IFSVR0_2SRC0_1)
+#define SCUXSRCCR0_2SRC0_1 (SCUX.SRCCR0_2SRC0_1)
+#define SCUXMNFSR0_2SRC0_1 (SCUX.MNFSR0_2SRC0_1)
+#define SCUXBFSSR0_2SRC0_1 (SCUX.BFSSR0_2SRC0_1)
+#define SCUXSC2SR0_2SRC0_1 (SCUX.SC2SR0_2SRC0_1)
+#define SCUXWATSR0_2SRC0_1 (SCUX.WATSR0_2SRC0_1)
+#define SCUXSEVMR0_2SRC0_1 (SCUX.SEVMR0_2SRC0_1)
+#define SCUXSEVCR0_2SRC0_1 (SCUX.SEVCR0_2SRC0_1)
+#define SCUXSRCIR1_2SRC0_1 (SCUX.SRCIR1_2SRC0_1)
+#define SCUXSADIR1_2SRC0_1 (SCUX.SADIR1_2SRC0_1)
+#define SCUXSRCBR1_2SRC0_1 (SCUX.SRCBR1_2SRC0_1)
+#define SCUXIFSCR1_2SRC0_1 (SCUX.IFSCR1_2SRC0_1)
+#define SCUXIFSVR1_2SRC0_1 (SCUX.IFSVR1_2SRC0_1)
+#define SCUXSRCCR1_2SRC0_1 (SCUX.SRCCR1_2SRC0_1)
+#define SCUXMNFSR1_2SRC0_1 (SCUX.MNFSR1_2SRC0_1)
+#define SCUXBFSSR1_2SRC0_1 (SCUX.BFSSR1_2SRC0_1)
+#define SCUXSC2SR1_2SRC0_1 (SCUX.SC2SR1_2SRC0_1)
+#define SCUXWATSR1_2SRC0_1 (SCUX.WATSR1_2SRC0_1)
+#define SCUXSEVMR1_2SRC0_1 (SCUX.SEVMR1_2SRC0_1)
+#define SCUXSEVCR1_2SRC0_1 (SCUX.SEVCR1_2SRC0_1)
+#define SCUXSRCIRR_2SRC0_1 (SCUX.SRCIRR_2SRC0_1)
+#define SCUXDVUIR_DVU0_0 (SCUX.DVUIR_DVU0_0)
+#define SCUXVADIR_DVU0_0 (SCUX.VADIR_DVU0_0)
+#define SCUXDVUBR_DVU0_0 (SCUX.DVUBR_DVU0_0)
+#define SCUXDVUCR_DVU0_0 (SCUX.DVUCR_DVU0_0)
+#define SCUXZCMCR_DVU0_0 (SCUX.ZCMCR_DVU0_0)
+#define SCUXVRCTR_DVU0_0 (SCUX.VRCTR_DVU0_0)
+#define SCUXVRPDR_DVU0_0 (SCUX.VRPDR_DVU0_0)
+#define SCUXVRDBR_DVU0_0 (SCUX.VRDBR_DVU0_0)
+#define SCUXVRWTR_DVU0_0 (SCUX.VRWTR_DVU0_0)
+#define SCUXVOL0R_DVU0_0 (SCUX.VOL0R_DVU0_0)
+#define SCUXVOL1R_DVU0_0 (SCUX.VOL1R_DVU0_0)
+#define SCUXVOL2R_DVU0_0 (SCUX.VOL2R_DVU0_0)
+#define SCUXVOL3R_DVU0_0 (SCUX.VOL3R_DVU0_0)
+#define SCUXVOL4R_DVU0_0 (SCUX.VOL4R_DVU0_0)
+#define SCUXVOL5R_DVU0_0 (SCUX.VOL5R_DVU0_0)
+#define SCUXVOL6R_DVU0_0 (SCUX.VOL6R_DVU0_0)
+#define SCUXVOL7R_DVU0_0 (SCUX.VOL7R_DVU0_0)
+#define SCUXDVUER_DVU0_0 (SCUX.DVUER_DVU0_0)
+#define SCUXDVUSR_DVU0_0 (SCUX.DVUSR_DVU0_0)
+#define SCUXVEVMR_DVU0_0 (SCUX.VEVMR_DVU0_0)
+#define SCUXVEVCR_DVU0_0 (SCUX.VEVCR_DVU0_0)
+#define SCUXDVUIR_DVU0_1 (SCUX.DVUIR_DVU0_1)
+#define SCUXVADIR_DVU0_1 (SCUX.VADIR_DVU0_1)
+#define SCUXDVUBR_DVU0_1 (SCUX.DVUBR_DVU0_1)
+#define SCUXDVUCR_DVU0_1 (SCUX.DVUCR_DVU0_1)
+#define SCUXZCMCR_DVU0_1 (SCUX.ZCMCR_DVU0_1)
+#define SCUXVRCTR_DVU0_1 (SCUX.VRCTR_DVU0_1)
+#define SCUXVRPDR_DVU0_1 (SCUX.VRPDR_DVU0_1)
+#define SCUXVRDBR_DVU0_1 (SCUX.VRDBR_DVU0_1)
+#define SCUXVRWTR_DVU0_1 (SCUX.VRWTR_DVU0_1)
+#define SCUXVOL0R_DVU0_1 (SCUX.VOL0R_DVU0_1)
+#define SCUXVOL1R_DVU0_1 (SCUX.VOL1R_DVU0_1)
+#define SCUXVOL2R_DVU0_1 (SCUX.VOL2R_DVU0_1)
+#define SCUXVOL3R_DVU0_1 (SCUX.VOL3R_DVU0_1)
+#define SCUXVOL4R_DVU0_1 (SCUX.VOL4R_DVU0_1)
+#define SCUXVOL5R_DVU0_1 (SCUX.VOL5R_DVU0_1)
+#define SCUXVOL6R_DVU0_1 (SCUX.VOL6R_DVU0_1)
+#define SCUXVOL7R_DVU0_1 (SCUX.VOL7R_DVU0_1)
+#define SCUXDVUER_DVU0_1 (SCUX.DVUER_DVU0_1)
+#define SCUXDVUSR_DVU0_1 (SCUX.DVUSR_DVU0_1)
+#define SCUXVEVMR_DVU0_1 (SCUX.VEVMR_DVU0_1)
+#define SCUXVEVCR_DVU0_1 (SCUX.VEVCR_DVU0_1)
+#define SCUXDVUIR_DVU0_2 (SCUX.DVUIR_DVU0_2)
+#define SCUXVADIR_DVU0_2 (SCUX.VADIR_DVU0_2)
+#define SCUXDVUBR_DVU0_2 (SCUX.DVUBR_DVU0_2)
+#define SCUXDVUCR_DVU0_2 (SCUX.DVUCR_DVU0_2)
+#define SCUXZCMCR_DVU0_2 (SCUX.ZCMCR_DVU0_2)
+#define SCUXVRCTR_DVU0_2 (SCUX.VRCTR_DVU0_2)
+#define SCUXVRPDR_DVU0_2 (SCUX.VRPDR_DVU0_2)
+#define SCUXVRDBR_DVU0_2 (SCUX.VRDBR_DVU0_2)
+#define SCUXVRWTR_DVU0_2 (SCUX.VRWTR_DVU0_2)
+#define SCUXVOL0R_DVU0_2 (SCUX.VOL0R_DVU0_2)
+#define SCUXVOL1R_DVU0_2 (SCUX.VOL1R_DVU0_2)
+#define SCUXVOL2R_DVU0_2 (SCUX.VOL2R_DVU0_2)
+#define SCUXVOL3R_DVU0_2 (SCUX.VOL3R_DVU0_2)
+#define SCUXVOL4R_DVU0_2 (SCUX.VOL4R_DVU0_2)
+#define SCUXVOL5R_DVU0_2 (SCUX.VOL5R_DVU0_2)
+#define SCUXVOL6R_DVU0_2 (SCUX.VOL6R_DVU0_2)
+#define SCUXVOL7R_DVU0_2 (SCUX.VOL7R_DVU0_2)
+#define SCUXDVUER_DVU0_2 (SCUX.DVUER_DVU0_2)
+#define SCUXDVUSR_DVU0_2 (SCUX.DVUSR_DVU0_2)
+#define SCUXVEVMR_DVU0_2 (SCUX.VEVMR_DVU0_2)
+#define SCUXVEVCR_DVU0_2 (SCUX.VEVCR_DVU0_2)
+#define SCUXDVUIR_DVU0_3 (SCUX.DVUIR_DVU0_3)
+#define SCUXVADIR_DVU0_3 (SCUX.VADIR_DVU0_3)
+#define SCUXDVUBR_DVU0_3 (SCUX.DVUBR_DVU0_3)
+#define SCUXDVUCR_DVU0_3 (SCUX.DVUCR_DVU0_3)
+#define SCUXZCMCR_DVU0_3 (SCUX.ZCMCR_DVU0_3)
+#define SCUXVRCTR_DVU0_3 (SCUX.VRCTR_DVU0_3)
+#define SCUXVRPDR_DVU0_3 (SCUX.VRPDR_DVU0_3)
+#define SCUXVRDBR_DVU0_3 (SCUX.VRDBR_DVU0_3)
+#define SCUXVRWTR_DVU0_3 (SCUX.VRWTR_DVU0_3)
+#define SCUXVOL0R_DVU0_3 (SCUX.VOL0R_DVU0_3)
+#define SCUXVOL1R_DVU0_3 (SCUX.VOL1R_DVU0_3)
+#define SCUXVOL2R_DVU0_3 (SCUX.VOL2R_DVU0_3)
+#define SCUXVOL3R_DVU0_3 (SCUX.VOL3R_DVU0_3)
+#define SCUXVOL4R_DVU0_3 (SCUX.VOL4R_DVU0_3)
+#define SCUXVOL5R_DVU0_3 (SCUX.VOL5R_DVU0_3)
+#define SCUXVOL6R_DVU0_3 (SCUX.VOL6R_DVU0_3)
+#define SCUXVOL7R_DVU0_3 (SCUX.VOL7R_DVU0_3)
+#define SCUXDVUER_DVU0_3 (SCUX.DVUER_DVU0_3)
+#define SCUXDVUSR_DVU0_3 (SCUX.DVUSR_DVU0_3)
+#define SCUXVEVMR_DVU0_3 (SCUX.VEVMR_DVU0_3)
+#define SCUXVEVCR_DVU0_3 (SCUX.VEVCR_DVU0_3)
+#define SCUXMIXIR_MIX0_0 (SCUX.MIXIR_MIX0_0)
+#define SCUXMADIR_MIX0_0 (SCUX.MADIR_MIX0_0)
+#define SCUXMIXBR_MIX0_0 (SCUX.MIXBR_MIX0_0)
+#define SCUXMIXMR_MIX0_0 (SCUX.MIXMR_MIX0_0)
+#define SCUXMVPDR_MIX0_0 (SCUX.MVPDR_MIX0_0)
+#define SCUXMDBAR_MIX0_0 (SCUX.MDBAR_MIX0_0)
+#define SCUXMDBBR_MIX0_0 (SCUX.MDBBR_MIX0_0)
+#define SCUXMDBCR_MIX0_0 (SCUX.MDBCR_MIX0_0)
+#define SCUXMDBDR_MIX0_0 (SCUX.MDBDR_MIX0_0)
+#define SCUXMDBER_MIX0_0 (SCUX.MDBER_MIX0_0)
+#define SCUXMIXSR_MIX0_0 (SCUX.MIXSR_MIX0_0)
+#define SCUXSWRSR_CIM (SCUX.SWRSR_CIM)
+#define SCUXDMACR_CIM (SCUX.DMACR_CIM)
+#define SCUXDMATD0_CIM (SCUX.DMATD0_CIM.UINT32)
+#define SCUXDMATD0_CIML (SCUX.DMATD0_CIM.UINT16[R_IO_L])
+#define SCUXDMATD0_CIMH (SCUX.DMATD0_CIM.UINT16[R_IO_H])
+#define SCUXDMATD1_CIM (SCUX.DMATD1_CIM.UINT32)
+#define SCUXDMATD1_CIML (SCUX.DMATD1_CIM.UINT16[R_IO_L])
+#define SCUXDMATD1_CIMH (SCUX.DMATD1_CIM.UINT16[R_IO_H])
+#define SCUXDMATD2_CIM (SCUX.DMATD2_CIM.UINT32)
+#define SCUXDMATD2_CIML (SCUX.DMATD2_CIM.UINT16[R_IO_L])
+#define SCUXDMATD2_CIMH (SCUX.DMATD2_CIM.UINT16[R_IO_H])
+#define SCUXDMATD3_CIM (SCUX.DMATD3_CIM.UINT32)
+#define SCUXDMATD3_CIML (SCUX.DMATD3_CIM.UINT16[R_IO_L])
+#define SCUXDMATD3_CIMH (SCUX.DMATD3_CIM.UINT16[R_IO_H])
+#define SCUXDMATU0_CIM (SCUX.DMATU0_CIM.UINT32)
+#define SCUXDMATU0_CIML (SCUX.DMATU0_CIM.UINT16[R_IO_L])
+#define SCUXDMATU0_CIMH (SCUX.DMATU0_CIM.UINT16[R_IO_H])
+#define SCUXDMATU1_CIM (SCUX.DMATU1_CIM.UINT32)
+#define SCUXDMATU1_CIML (SCUX.DMATU1_CIM.UINT16[R_IO_L])
+#define SCUXDMATU1_CIMH (SCUX.DMATU1_CIM.UINT16[R_IO_H])
+#define SCUXDMATU2_CIM (SCUX.DMATU2_CIM.UINT32)
+#define SCUXDMATU2_CIML (SCUX.DMATU2_CIM.UINT16[R_IO_L])
+#define SCUXDMATU2_CIMH (SCUX.DMATU2_CIM.UINT16[R_IO_H])
+#define SCUXDMATU3_CIM (SCUX.DMATU3_CIM.UINT32)
+#define SCUXDMATU3_CIML (SCUX.DMATU3_CIM.UINT16[R_IO_L])
+#define SCUXDMATU3_CIMH (SCUX.DMATU3_CIM.UINT16[R_IO_H])
+#define SCUXSSIRSEL_CIM (SCUX.SSIRSEL_CIM)
+#define SCUXFDTSEL0_CIM (SCUX.FDTSEL0_CIM)
+#define SCUXFDTSEL1_CIM (SCUX.FDTSEL1_CIM)
+#define SCUXFDTSEL2_CIM (SCUX.FDTSEL2_CIM)
+#define SCUXFDTSEL3_CIM (SCUX.FDTSEL3_CIM)
+#define SCUXFUTSEL0_CIM (SCUX.FUTSEL0_CIM)
+#define SCUXFUTSEL1_CIM (SCUX.FUTSEL1_CIM)
+#define SCUXFUTSEL2_CIM (SCUX.FUTSEL2_CIM)
+#define SCUXFUTSEL3_CIM (SCUX.FUTSEL3_CIM)
+#define SCUXSSIPMD_CIM (SCUX.SSIPMD_CIM)
+#define SCUXSSICTRL_CIM (SCUX.SSICTRL_CIM)
+#define SCUXSRCRSEL0_CIM (SCUX.SRCRSEL0_CIM)
+#define SCUXSRCRSEL1_CIM (SCUX.SRCRSEL1_CIM)
+#define SCUXSRCRSEL2_CIM (SCUX.SRCRSEL2_CIM)
+#define SCUXSRCRSEL3_CIM (SCUX.SRCRSEL3_CIM)
+#define SCUXMIXRSEL_CIM (SCUX.MIXRSEL_CIM)
+
+#define SCUX_DMATDnCIM_COUNT (4)
+#define SCUX_DMATUnCIM_COUNT (4)
+#define SCUX_FDTSELnCIM_COUNT (4)
+#define SCUX_FUTSELnCIM_COUNT (4)
+#define SCUX_SRCRSELnCIM_COUNT (4)
+
+
+typedef struct st_scux
+{
+                                                           /* SCUX             */
+
+/* start of struct st_scux_from_ipcir_ipc0_n */
+    volatile uint32_t  IPCIR_IPC0_0;                           /*  IPCIR_IPC0_0    */
+    volatile uint32_t  IPSLR_IPC0_0;                           /*  IPSLR_IPC0_0    */
+    volatile uint8_t   dummy259[248];                          /*                  */
+
+/* end of struct st_scux_from_ipcir_ipc0_n */
+
+/* start of struct st_scux_from_ipcir_ipc0_n */
+    volatile uint32_t  IPCIR_IPC0_1;                           /*  IPCIR_IPC0_1    */
+    volatile uint32_t  IPSLR_IPC0_1;                           /*  IPSLR_IPC0_1    */
+    volatile uint8_t   dummy260[248];                          /*                  */
+
+/* end of struct st_scux_from_ipcir_ipc0_n */
+
+/* start of struct st_scux_from_ipcir_ipc0_n */
+    volatile uint32_t  IPCIR_IPC0_2;                           /*  IPCIR_IPC0_2    */
+    volatile uint32_t  IPSLR_IPC0_2;                           /*  IPSLR_IPC0_2    */
+    volatile uint8_t   dummy261[248];                          /*                  */
+
+/* end of struct st_scux_from_ipcir_ipc0_n */
+
+/* start of struct st_scux_from_ipcir_ipc0_n */
+    volatile uint32_t  IPCIR_IPC0_3;                           /*  IPCIR_IPC0_3    */
+    volatile uint32_t  IPSLR_IPC0_3;                           /*  IPSLR_IPC0_3    */
+    volatile uint8_t   dummy262[248];                          /*                  */
+
+/* end of struct st_scux_from_ipcir_ipc0_n */
+
+/* start of struct st_scux_from_opcir_opc0_n */
+    volatile uint32_t  OPCIR_OPC0_0;                           /*  OPCIR_OPC0_0    */
+    volatile uint32_t  OPSLR_OPC0_0;                           /*  OPSLR_OPC0_0    */
+    volatile uint8_t   dummy263[248];                          /*                  */
+
+/* end of struct st_scux_from_opcir_opc0_n */
+
+/* start of struct st_scux_from_opcir_opc0_n */
+    volatile uint32_t  OPCIR_OPC0_1;                           /*  OPCIR_OPC0_1    */
+    volatile uint32_t  OPSLR_OPC0_1;                           /*  OPSLR_OPC0_1    */
+    volatile uint8_t   dummy264[248];                          /*                  */
+
+/* end of struct st_scux_from_opcir_opc0_n */
+
+/* start of struct st_scux_from_opcir_opc0_n */
+    volatile uint32_t  OPCIR_OPC0_2;                           /*  OPCIR_OPC0_2    */
+    volatile uint32_t  OPSLR_OPC0_2;                           /*  OPSLR_OPC0_2    */
+    volatile uint8_t   dummy265[248];                          /*                  */
+
+/* end of struct st_scux_from_opcir_opc0_n */
+
+/* start of struct st_scux_from_opcir_opc0_n */
+    volatile uint32_t  OPCIR_OPC0_3;                           /*  OPCIR_OPC0_3    */
+    volatile uint32_t  OPSLR_OPC0_3;                           /*  OPSLR_OPC0_3    */
+    volatile uint8_t   dummy266[248];                          /*                  */
+
+/* end of struct st_scux_from_opcir_opc0_n */
+
+/* start of struct st_scux_from_ffdir_ffd0_n */
+    volatile uint32_t  FFDIR_FFD0_0;                           /*  FFDIR_FFD0_0    */
+    volatile uint32_t  FDAIR_FFD0_0;                           /*  FDAIR_FFD0_0    */
+    volatile uint32_t  DRQSR_FFD0_0;                           /*  DRQSR_FFD0_0    */
+    volatile uint32_t  FFDPR_FFD0_0;                           /*  FFDPR_FFD0_0    */
+    volatile uint32_t  FFDBR_FFD0_0;                           /*  FFDBR_FFD0_0    */
+    volatile uint32_t  DEVMR_FFD0_0;                           /*  DEVMR_FFD0_0    */
+    volatile uint8_t   dummy267[4];                            /*                  */
+    volatile uint32_t  DEVCR_FFD0_0;                           /*  DEVCR_FFD0_0    */
+
+/* end of struct st_scux_from_ffdir_ffd0_n */
+    volatile uint8_t   dummy268[224];                          /*                  */
+
+/* start of struct st_scux_from_ffdir_ffd0_n */
+    volatile uint32_t  FFDIR_FFD0_1;                           /*  FFDIR_FFD0_1    */
+    volatile uint32_t  FDAIR_FFD0_1;                           /*  FDAIR_FFD0_1    */
+    volatile uint32_t  DRQSR_FFD0_1;                           /*  DRQSR_FFD0_1    */
+    volatile uint32_t  FFDPR_FFD0_1;                           /*  FFDPR_FFD0_1    */
+    volatile uint32_t  FFDBR_FFD0_1;                           /*  FFDBR_FFD0_1    */
+    volatile uint32_t  DEVMR_FFD0_1;                           /*  DEVMR_FFD0_1    */
+    volatile uint8_t   dummy269[4];                            /*                  */
+    volatile uint32_t  DEVCR_FFD0_1;                           /*  DEVCR_FFD0_1    */
+
+/* end of struct st_scux_from_ffdir_ffd0_n */
+    volatile uint8_t   dummy270[224];                          /*                  */
+
+/* start of struct st_scux_from_ffdir_ffd0_n */
+    volatile uint32_t  FFDIR_FFD0_2;                           /*  FFDIR_FFD0_2    */
+    volatile uint32_t  FDAIR_FFD0_2;                           /*  FDAIR_FFD0_2    */
+    volatile uint32_t  DRQSR_FFD0_2;                           /*  DRQSR_FFD0_2    */
+    volatile uint32_t  FFDPR_FFD0_2;                           /*  FFDPR_FFD0_2    */
+    volatile uint32_t  FFDBR_FFD0_2;                           /*  FFDBR_FFD0_2    */
+    volatile uint32_t  DEVMR_FFD0_2;                           /*  DEVMR_FFD0_2    */
+    volatile uint8_t   dummy271[4];                            /*                  */
+    volatile uint32_t  DEVCR_FFD0_2;                           /*  DEVCR_FFD0_2    */
+
+/* end of struct st_scux_from_ffdir_ffd0_n */
+    volatile uint8_t   dummy272[224];                          /*                  */
+
+/* start of struct st_scux_from_ffdir_ffd0_n */
+    volatile uint32_t  FFDIR_FFD0_3;                           /*  FFDIR_FFD0_3    */
+    volatile uint32_t  FDAIR_FFD0_3;                           /*  FDAIR_FFD0_3    */
+    volatile uint32_t  DRQSR_FFD0_3;                           /*  DRQSR_FFD0_3    */
+    volatile uint32_t  FFDPR_FFD0_3;                           /*  FFDPR_FFD0_3    */
+    volatile uint32_t  FFDBR_FFD0_3;                           /*  FFDBR_FFD0_3    */
+    volatile uint32_t  DEVMR_FFD0_3;                           /*  DEVMR_FFD0_3    */
+    volatile uint8_t   dummy273[4];                            /*                  */
+    volatile uint32_t  DEVCR_FFD0_3;                           /*  DEVCR_FFD0_3    */
+
+/* end of struct st_scux_from_ffdir_ffd0_n */
+    volatile uint8_t   dummy274[224];                          /*                  */
+
+/* start of struct st_scux_from_ffuir_ffu0_n */
+    volatile uint32_t  FFUIR_FFU0_0;                           /*  FFUIR_FFU0_0    */
+    volatile uint32_t  FUAIR_FFU0_0;                           /*  FUAIR_FFU0_0    */
+    volatile uint32_t  URQSR_FFU0_0;                           /*  URQSR_FFU0_0    */
+    volatile uint32_t  FFUPR_FFU0_0;                           /*  FFUPR_FFU0_0    */
+    volatile uint32_t  UEVMR_FFU0_0;                           /*  UEVMR_FFU0_0    */
+    volatile uint8_t   dummy275[4];                            /*                  */
+    volatile uint32_t  UEVCR_FFU0_0;                           /*  UEVCR_FFU0_0    */
+
+/* end of struct st_scux_from_ffuir_ffu0_n */
+    volatile uint8_t   dummy276[228];                          /*                  */
+
+/* start of struct st_scux_from_ffuir_ffu0_n */
+    volatile uint32_t  FFUIR_FFU0_1;                           /*  FFUIR_FFU0_1    */
+    volatile uint32_t  FUAIR_FFU0_1;                           /*  FUAIR_FFU0_1    */
+    volatile uint32_t  URQSR_FFU0_1;                           /*  URQSR_FFU0_1    */
+    volatile uint32_t  FFUPR_FFU0_1;                           /*  FFUPR_FFU0_1    */
+    volatile uint32_t  UEVMR_FFU0_1;                           /*  UEVMR_FFU0_1    */
+    volatile uint8_t   dummy277[4];                            /*                  */
+    volatile uint32_t  UEVCR_FFU0_1;                           /*  UEVCR_FFU0_1    */
+
+/* end of struct st_scux_from_ffuir_ffu0_n */
+    volatile uint8_t   dummy278[228];                          /*                  */
+
+/* start of struct st_scux_from_ffuir_ffu0_n */
+    volatile uint32_t  FFUIR_FFU0_2;                           /*  FFUIR_FFU0_2    */
+    volatile uint32_t  FUAIR_FFU0_2;                           /*  FUAIR_FFU0_2    */
+    volatile uint32_t  URQSR_FFU0_2;                           /*  URQSR_FFU0_2    */
+    volatile uint32_t  FFUPR_FFU0_2;                           /*  FFUPR_FFU0_2    */
+    volatile uint32_t  UEVMR_FFU0_2;                           /*  UEVMR_FFU0_2    */
+    volatile uint8_t   dummy279[4];                            /*                  */
+    volatile uint32_t  UEVCR_FFU0_2;                           /*  UEVCR_FFU0_2    */
+
+/* end of struct st_scux_from_ffuir_ffu0_n */
+    volatile uint8_t   dummy280[228];                          /*                  */
+
+/* start of struct st_scux_from_ffuir_ffu0_n */
+    volatile uint32_t  FFUIR_FFU0_3;                           /*  FFUIR_FFU0_3    */
+    volatile uint32_t  FUAIR_FFU0_3;                           /*  FUAIR_FFU0_3    */
+    volatile uint32_t  URQSR_FFU0_3;                           /*  URQSR_FFU0_3    */
+    volatile uint32_t  FFUPR_FFU0_3;                           /*  FFUPR_FFU0_3    */
+    volatile uint32_t  UEVMR_FFU0_3;                           /*  UEVMR_FFU0_3    */
+    volatile uint8_t   dummy281[4];                            /*                  */
+    volatile uint32_t  UEVCR_FFU0_3;                           /*  UEVCR_FFU0_3    */
+
+/* end of struct st_scux_from_ffuir_ffu0_n */
+    volatile uint8_t   dummy282[228];                          /*                  */
+
+/* start of struct st_scux_from_srcir0_2src0_n */
+    volatile uint32_t  SRCIR0_2SRC0_0;                         /*  SRCIR0_2SRC0_0  */
+    volatile uint32_t  SADIR0_2SRC0_0;                         /*  SADIR0_2SRC0_0  */
+    volatile uint32_t  SRCBR0_2SRC0_0;                         /*  SRCBR0_2SRC0_0  */
+    volatile uint32_t  IFSCR0_2SRC0_0;                         /*  IFSCR0_2SRC0_0  */
+    volatile uint32_t  IFSVR0_2SRC0_0;                         /*  IFSVR0_2SRC0_0  */
+    volatile uint32_t  SRCCR0_2SRC0_0;                         /*  SRCCR0_2SRC0_0  */
+    volatile uint32_t  MNFSR0_2SRC0_0;                         /*  MNFSR0_2SRC0_0  */
+    volatile uint32_t  BFSSR0_2SRC0_0;                         /*  BFSSR0_2SRC0_0  */
+    volatile uint32_t  SC2SR0_2SRC0_0;                         /*  SC2SR0_2SRC0_0  */
+    volatile uint32_t  WATSR0_2SRC0_0;                         /*  WATSR0_2SRC0_0  */
+    volatile uint32_t  SEVMR0_2SRC0_0;                         /*  SEVMR0_2SRC0_0  */
+    volatile uint8_t   dummy283[4];                            /*                  */
+    volatile uint32_t  SEVCR0_2SRC0_0;                         /*  SEVCR0_2SRC0_0  */
+    volatile uint32_t  SRCIR1_2SRC0_0;                         /*  SRCIR1_2SRC0_0  */
+    volatile uint32_t  SADIR1_2SRC0_0;                         /*  SADIR1_2SRC0_0  */
+    volatile uint32_t  SRCBR1_2SRC0_0;                         /*  SRCBR1_2SRC0_0  */
+    volatile uint32_t  IFSCR1_2SRC0_0;                         /*  IFSCR1_2SRC0_0  */
+    volatile uint32_t  IFSVR1_2SRC0_0;                         /*  IFSVR1_2SRC0_0  */
+    volatile uint32_t  SRCCR1_2SRC0_0;                         /*  SRCCR1_2SRC0_0  */
+    volatile uint32_t  MNFSR1_2SRC0_0;                         /*  MNFSR1_2SRC0_0  */
+    volatile uint32_t  BFSSR1_2SRC0_0;                         /*  BFSSR1_2SRC0_0  */
+    volatile uint32_t  SC2SR1_2SRC0_0;                         /*  SC2SR1_2SRC0_0  */
+    volatile uint32_t  WATSR1_2SRC0_0;                         /*  WATSR1_2SRC0_0  */
+    volatile uint32_t  SEVMR1_2SRC0_0;                         /*  SEVMR1_2SRC0_0  */
+    volatile uint8_t   dummy284[4];                            /*                  */
+    volatile uint32_t  SEVCR1_2SRC0_0;                         /*  SEVCR1_2SRC0_0  */
+    volatile uint32_t  SRCIRR_2SRC0_0;                         /*  SRCIRR_2SRC0_0  */
+
+/* end of struct st_scux_from_srcir0_2src0_n */
+    volatile uint8_t   dummy285[148];                          /*                  */
+
+/* start of struct st_scux_from_srcir0_2src0_n */
+    volatile uint32_t  SRCIR0_2SRC0_1;                         /*  SRCIR0_2SRC0_1  */
+    volatile uint32_t  SADIR0_2SRC0_1;                         /*  SADIR0_2SRC0_1  */
+    volatile uint32_t  SRCBR0_2SRC0_1;                         /*  SRCBR0_2SRC0_1  */
+    volatile uint32_t  IFSCR0_2SRC0_1;                         /*  IFSCR0_2SRC0_1  */
+    volatile uint32_t  IFSVR0_2SRC0_1;                         /*  IFSVR0_2SRC0_1  */
+    volatile uint32_t  SRCCR0_2SRC0_1;                         /*  SRCCR0_2SRC0_1  */
+    volatile uint32_t  MNFSR0_2SRC0_1;                         /*  MNFSR0_2SRC0_1  */
+    volatile uint32_t  BFSSR0_2SRC0_1;                         /*  BFSSR0_2SRC0_1  */
+    volatile uint32_t  SC2SR0_2SRC0_1;                         /*  SC2SR0_2SRC0_1  */
+    volatile uint32_t  WATSR0_2SRC0_1;                         /*  WATSR0_2SRC0_1  */
+    volatile uint32_t  SEVMR0_2SRC0_1;                         /*  SEVMR0_2SRC0_1  */
+    volatile uint8_t   dummy286[4];                            /*                  */
+    volatile uint32_t  SEVCR0_2SRC0_1;                         /*  SEVCR0_2SRC0_1  */
+    volatile uint32_t  SRCIR1_2SRC0_1;                         /*  SRCIR1_2SRC0_1  */
+    volatile uint32_t  SADIR1_2SRC0_1;                         /*  SADIR1_2SRC0_1  */
+    volatile uint32_t  SRCBR1_2SRC0_1;                         /*  SRCBR1_2SRC0_1  */
+    volatile uint32_t  IFSCR1_2SRC0_1;                         /*  IFSCR1_2SRC0_1  */
+    volatile uint32_t  IFSVR1_2SRC0_1;                         /*  IFSVR1_2SRC0_1  */
+    volatile uint32_t  SRCCR1_2SRC0_1;                         /*  SRCCR1_2SRC0_1  */
+    volatile uint32_t  MNFSR1_2SRC0_1;                         /*  MNFSR1_2SRC0_1  */
+    volatile uint32_t  BFSSR1_2SRC0_1;                         /*  BFSSR1_2SRC0_1  */
+    volatile uint32_t  SC2SR1_2SRC0_1;                         /*  SC2SR1_2SRC0_1  */
+    volatile uint32_t  WATSR1_2SRC0_1;                         /*  WATSR1_2SRC0_1  */
+    volatile uint32_t  SEVMR1_2SRC0_1;                         /*  SEVMR1_2SRC0_1  */
+    volatile uint8_t   dummy287[4];                            /*                  */
+    volatile uint32_t  SEVCR1_2SRC0_1;                         /*  SEVCR1_2SRC0_1  */
+    volatile uint32_t  SRCIRR_2SRC0_1;                         /*  SRCIRR_2SRC0_1  */
+
+/* end of struct st_scux_from_srcir0_2src0_n */
+    volatile uint8_t   dummy288[148];                          /*                  */
+
+/* start of struct st_scux_from_dvuir_dvu0_n */
+    volatile uint32_t  DVUIR_DVU0_0;                           /*  DVUIR_DVU0_0    */
+    volatile uint32_t  VADIR_DVU0_0;                           /*  VADIR_DVU0_0    */
+    volatile uint32_t  DVUBR_DVU0_0;                           /*  DVUBR_DVU0_0    */
+    volatile uint32_t  DVUCR_DVU0_0;                           /*  DVUCR_DVU0_0    */
+    volatile uint32_t  ZCMCR_DVU0_0;                           /*  ZCMCR_DVU0_0    */
+    volatile uint32_t  VRCTR_DVU0_0;                           /*  VRCTR_DVU0_0    */
+    volatile uint32_t  VRPDR_DVU0_0;                           /*  VRPDR_DVU0_0    */
+    volatile uint32_t  VRDBR_DVU0_0;                           /*  VRDBR_DVU0_0    */
+    volatile uint32_t  VRWTR_DVU0_0;                           /*  VRWTR_DVU0_0    */
+    volatile uint32_t  VOL0R_DVU0_0;                           /*  VOL0R_DVU0_0    */
+    volatile uint32_t  VOL1R_DVU0_0;                           /*  VOL1R_DVU0_0    */
+    volatile uint32_t  VOL2R_DVU0_0;                           /*  VOL2R_DVU0_0    */
+    volatile uint32_t  VOL3R_DVU0_0;                           /*  VOL3R_DVU0_0    */
+    volatile uint32_t  VOL4R_DVU0_0;                           /*  VOL4R_DVU0_0    */
+    volatile uint32_t  VOL5R_DVU0_0;                           /*  VOL5R_DVU0_0    */
+    volatile uint32_t  VOL6R_DVU0_0;                           /*  VOL6R_DVU0_0    */
+    volatile uint32_t  VOL7R_DVU0_0;                           /*  VOL7R_DVU0_0    */
+    volatile uint32_t  DVUER_DVU0_0;                           /*  DVUER_DVU0_0    */
+    volatile uint32_t  DVUSR_DVU0_0;                           /*  DVUSR_DVU0_0    */
+    volatile uint32_t  VEVMR_DVU0_0;                           /*  VEVMR_DVU0_0    */
+    volatile uint8_t   dummy289[4];                            /*                  */
+    volatile uint32_t  VEVCR_DVU0_0;                           /*  VEVCR_DVU0_0    */
+
+/* end of struct st_scux_from_dvuir_dvu0_n */
+    volatile uint8_t   dummy290[168];                          /*                  */
+
+/* start of struct st_scux_from_dvuir_dvu0_n */
+    volatile uint32_t  DVUIR_DVU0_1;                           /*  DVUIR_DVU0_1    */
+    volatile uint32_t  VADIR_DVU0_1;                           /*  VADIR_DVU0_1    */
+    volatile uint32_t  DVUBR_DVU0_1;                           /*  DVUBR_DVU0_1    */
+    volatile uint32_t  DVUCR_DVU0_1;                           /*  DVUCR_DVU0_1    */
+    volatile uint32_t  ZCMCR_DVU0_1;                           /*  ZCMCR_DVU0_1    */
+    volatile uint32_t  VRCTR_DVU0_1;                           /*  VRCTR_DVU0_1    */
+    volatile uint32_t  VRPDR_DVU0_1;                           /*  VRPDR_DVU0_1    */
+    volatile uint32_t  VRDBR_DVU0_1;                           /*  VRDBR_DVU0_1    */
+    volatile uint32_t  VRWTR_DVU0_1;                           /*  VRWTR_DVU0_1    */
+    volatile uint32_t  VOL0R_DVU0_1;                           /*  VOL0R_DVU0_1    */
+    volatile uint32_t  VOL1R_DVU0_1;                           /*  VOL1R_DVU0_1    */
+    volatile uint32_t  VOL2R_DVU0_1;                           /*  VOL2R_DVU0_1    */
+    volatile uint32_t  VOL3R_DVU0_1;                           /*  VOL3R_DVU0_1    */
+    volatile uint32_t  VOL4R_DVU0_1;                           /*  VOL4R_DVU0_1    */
+    volatile uint32_t  VOL5R_DVU0_1;                           /*  VOL5R_DVU0_1    */
+    volatile uint32_t  VOL6R_DVU0_1;                           /*  VOL6R_DVU0_1    */
+    volatile uint32_t  VOL7R_DVU0_1;                           /*  VOL7R_DVU0_1    */
+    volatile uint32_t  DVUER_DVU0_1;                           /*  DVUER_DVU0_1    */
+    volatile uint32_t  DVUSR_DVU0_1;                           /*  DVUSR_DVU0_1    */
+    volatile uint32_t  VEVMR_DVU0_1;                           /*  VEVMR_DVU0_1    */
+    volatile uint8_t   dummy291[4];                            /*                  */
+    volatile uint32_t  VEVCR_DVU0_1;                           /*  VEVCR_DVU0_1    */
+
+/* end of struct st_scux_from_dvuir_dvu0_n */
+    volatile uint8_t   dummy292[168];                          /*                  */
+
+/* start of struct st_scux_from_dvuir_dvu0_n */
+    volatile uint32_t  DVUIR_DVU0_2;                           /*  DVUIR_DVU0_2    */
+    volatile uint32_t  VADIR_DVU0_2;                           /*  VADIR_DVU0_2    */
+    volatile uint32_t  DVUBR_DVU0_2;                           /*  DVUBR_DVU0_2    */
+    volatile uint32_t  DVUCR_DVU0_2;                           /*  DVUCR_DVU0_2    */
+    volatile uint32_t  ZCMCR_DVU0_2;                           /*  ZCMCR_DVU0_2    */
+    volatile uint32_t  VRCTR_DVU0_2;                           /*  VRCTR_DVU0_2    */
+    volatile uint32_t  VRPDR_DVU0_2;                           /*  VRPDR_DVU0_2    */
+    volatile uint32_t  VRDBR_DVU0_2;                           /*  VRDBR_DVU0_2    */
+    volatile uint32_t  VRWTR_DVU0_2;                           /*  VRWTR_DVU0_2    */
+    volatile uint32_t  VOL0R_DVU0_2;                           /*  VOL0R_DVU0_2    */
+    volatile uint32_t  VOL1R_DVU0_2;                           /*  VOL1R_DVU0_2    */
+    volatile uint32_t  VOL2R_DVU0_2;                           /*  VOL2R_DVU0_2    */
+    volatile uint32_t  VOL3R_DVU0_2;                           /*  VOL3R_DVU0_2    */
+    volatile uint32_t  VOL4R_DVU0_2;                           /*  VOL4R_DVU0_2    */
+    volatile uint32_t  VOL5R_DVU0_2;                           /*  VOL5R_DVU0_2    */
+    volatile uint32_t  VOL6R_DVU0_2;                           /*  VOL6R_DVU0_2    */
+    volatile uint32_t  VOL7R_DVU0_2;                           /*  VOL7R_DVU0_2    */
+    volatile uint32_t  DVUER_DVU0_2;                           /*  DVUER_DVU0_2    */
+    volatile uint32_t  DVUSR_DVU0_2;                           /*  DVUSR_DVU0_2    */
+    volatile uint32_t  VEVMR_DVU0_2;                           /*  VEVMR_DVU0_2    */
+    volatile uint8_t   dummy293[4];                            /*                  */
+    volatile uint32_t  VEVCR_DVU0_2;                           /*  VEVCR_DVU0_2    */
+
+/* end of struct st_scux_from_dvuir_dvu0_n */
+    volatile uint8_t   dummy294[168];                          /*                  */
+
+/* start of struct st_scux_from_dvuir_dvu0_n */
+    volatile uint32_t  DVUIR_DVU0_3;                           /*  DVUIR_DVU0_3    */
+    volatile uint32_t  VADIR_DVU0_3;                           /*  VADIR_DVU0_3    */
+    volatile uint32_t  DVUBR_DVU0_3;                           /*  DVUBR_DVU0_3    */
+    volatile uint32_t  DVUCR_DVU0_3;                           /*  DVUCR_DVU0_3    */
+    volatile uint32_t  ZCMCR_DVU0_3;                           /*  ZCMCR_DVU0_3    */
+    volatile uint32_t  VRCTR_DVU0_3;                           /*  VRCTR_DVU0_3    */
+    volatile uint32_t  VRPDR_DVU0_3;                           /*  VRPDR_DVU0_3    */
+    volatile uint32_t  VRDBR_DVU0_3;                           /*  VRDBR_DVU0_3    */
+    volatile uint32_t  VRWTR_DVU0_3;                           /*  VRWTR_DVU0_3    */
+    volatile uint32_t  VOL0R_DVU0_3;                           /*  VOL0R_DVU0_3    */
+    volatile uint32_t  VOL1R_DVU0_3;                           /*  VOL1R_DVU0_3    */
+    volatile uint32_t  VOL2R_DVU0_3;                           /*  VOL2R_DVU0_3    */
+    volatile uint32_t  VOL3R_DVU0_3;                           /*  VOL3R_DVU0_3    */
+    volatile uint32_t  VOL4R_DVU0_3;                           /*  VOL4R_DVU0_3    */
+    volatile uint32_t  VOL5R_DVU0_3;                           /*  VOL5R_DVU0_3    */
+    volatile uint32_t  VOL6R_DVU0_3;                           /*  VOL6R_DVU0_3    */
+    volatile uint32_t  VOL7R_DVU0_3;                           /*  VOL7R_DVU0_3    */
+    volatile uint32_t  DVUER_DVU0_3;                           /*  DVUER_DVU0_3    */
+    volatile uint32_t  DVUSR_DVU0_3;                           /*  DVUSR_DVU0_3    */
+    volatile uint32_t  VEVMR_DVU0_3;                           /*  VEVMR_DVU0_3    */
+    volatile uint8_t   dummy295[4];                            /*                  */
+    volatile uint32_t  VEVCR_DVU0_3;                           /*  VEVCR_DVU0_3    */
+
+/* end of struct st_scux_from_dvuir_dvu0_n */
+    volatile uint8_t   dummy296[168];                          /*                  */
+    volatile uint32_t  MIXIR_MIX0_0;                           /*  MIXIR_MIX0_0    */
+    volatile uint32_t  MADIR_MIX0_0;                           /*  MADIR_MIX0_0    */
+    volatile uint32_t  MIXBR_MIX0_0;                           /*  MIXBR_MIX0_0    */
+    volatile uint32_t  MIXMR_MIX0_0;                           /*  MIXMR_MIX0_0    */
+    volatile uint32_t  MVPDR_MIX0_0;                           /*  MVPDR_MIX0_0    */
+    volatile uint32_t  MDBAR_MIX0_0;                           /*  MDBAR_MIX0_0    */
+    volatile uint32_t  MDBBR_MIX0_0;                           /*  MDBBR_MIX0_0    */
+    volatile uint32_t  MDBCR_MIX0_0;                           /*  MDBCR_MIX0_0    */
+    volatile uint32_t  MDBDR_MIX0_0;                           /*  MDBDR_MIX0_0    */
+    volatile uint32_t  MDBER_MIX0_0;                           /*  MDBER_MIX0_0    */
+    volatile uint32_t  MIXSR_MIX0_0;                           /*  MIXSR_MIX0_0    */
+    volatile uint8_t   dummy297[212];                          /*                  */
+    volatile uint32_t  SWRSR_CIM;                              /*  SWRSR_CIM       */
+    volatile uint32_t  DMACR_CIM;                              /*  DMACR_CIM       */
+
+/* #define SCUX_DMATDnCIM_COUNT (4) */
+    union iodefine_reg32_16_t  DMATD0_CIM;                 /*  DMATD0_CIM      */
+    union iodefine_reg32_16_t  DMATD1_CIM;                 /*  DMATD1_CIM      */
+    union iodefine_reg32_16_t  DMATD2_CIM;                 /*  DMATD2_CIM      */
+    union iodefine_reg32_16_t  DMATD3_CIM;                 /*  DMATD3_CIM      */
+
+/* #define SCUX_DMATUnCIM_COUNT (4) */
+    union iodefine_reg32_16_t  DMATU0_CIM;                 /*  DMATU0_CIM      */
+    union iodefine_reg32_16_t  DMATU1_CIM;                 /*  DMATU1_CIM      */
+    union iodefine_reg32_16_t  DMATU2_CIM;                 /*  DMATU2_CIM      */
+    union iodefine_reg32_16_t  DMATU3_CIM;                 /*  DMATU3_CIM      */
+    
+    volatile uint8_t   dummy298[16];                           /*                  */
+    volatile uint32_t  SSIRSEL_CIM;                            /*  SSIRSEL_CIM     */
+
+/* #define SCUX_FDTSELnCIM_COUNT (4) */
+    volatile uint32_t  FDTSEL0_CIM;                            /*  FDTSEL0_CIM     */
+    volatile uint32_t  FDTSEL1_CIM;                            /*  FDTSEL1_CIM     */
+    volatile uint32_t  FDTSEL2_CIM;                            /*  FDTSEL2_CIM     */
+    volatile uint32_t  FDTSEL3_CIM;                            /*  FDTSEL3_CIM     */
+
+/* #define SCUX_FUTSELnCIM_COUNT (4) */
+    volatile uint32_t  FUTSEL0_CIM;                            /*  FUTSEL0_CIM     */
+    volatile uint32_t  FUTSEL1_CIM;                            /*  FUTSEL1_CIM     */
+    volatile uint32_t  FUTSEL2_CIM;                            /*  FUTSEL2_CIM     */
+    volatile uint32_t  FUTSEL3_CIM;                            /*  FUTSEL3_CIM     */
+    volatile uint32_t  SSIPMD_CIM;                             /*  SSIPMD_CIM      */
+    volatile uint32_t  SSICTRL_CIM;                            /*  SSICTRL_CIM     */
+
+/* #define SCUX_SRCRSELnCIM_COUNT (4) */
+    volatile uint32_t  SRCRSEL0_CIM;                           /*  SRCRSEL0_CIM    */
+    volatile uint32_t  SRCRSEL1_CIM;                           /*  SRCRSEL1_CIM    */
+    volatile uint32_t  SRCRSEL2_CIM;                           /*  SRCRSEL2_CIM    */
+    volatile uint32_t  SRCRSEL3_CIM;                           /*  SRCRSEL3_CIM    */
+    volatile uint32_t  MIXRSEL_CIM;                            /*  MIXRSEL_CIM     */
+} r_io_scux_t;
+
+
+typedef struct st_scux_from_ipcir_ipc0_n
+{
+ 
+    volatile uint32_t  IPCIR_IPC0_0;                           /*  IPCIR_IPC0_0    */
+    volatile uint32_t  IPSLR_IPC0_0;                           /*  IPSLR_IPC0_0    */
+    volatile uint8_t   dummy1[248];                            /*                  */
+} r_io_scux_from_ipcir_ipc0_n_t;
+
+
+typedef struct st_scux_from_opcir_opc0_n
+{
+ 
+    volatile uint32_t  OPCIR_OPC0_0;                           /*  OPCIR_OPC0_0    */
+    volatile uint32_t  OPSLR_OPC0_0;                           /*  OPSLR_OPC0_0    */
+    volatile uint8_t   dummy1[248];                            /*                  */
+} r_io_scux_from_opcir_opc0_n_t;
+
+
+typedef struct st_scux_from_ffdir_ffd0_n
+{
+ 
+    volatile uint32_t  FFDIR_FFD0_0;                           /*  FFDIR_FFD0_0    */
+    volatile uint32_t  FDAIR_FFD0_0;                           /*  FDAIR_FFD0_0    */
+    volatile uint32_t  DRQSR_FFD0_0;                           /*  DRQSR_FFD0_0    */
+    volatile uint32_t  FFDPR_FFD0_0;                           /*  FFDPR_FFD0_0    */
+    volatile uint32_t  FFDBR_FFD0_0;                           /*  FFDBR_FFD0_0    */
+    volatile uint32_t  DEVMR_FFD0_0;                           /*  DEVMR_FFD0_0    */
+    volatile uint8_t   dummy1[4];                              /*                  */
+    volatile uint32_t  DEVCR_FFD0_0;                           /*  DEVCR_FFD0_0    */
+} r_io_scux_from_ffdir_ffd0_n_t;
+
+
+typedef struct st_scux_from_ffuir_ffu0_n
+{
+ 
+    volatile uint32_t  FFUIR_FFU0_0;                           /*  FFUIR_FFU0_0    */
+    volatile uint32_t  FUAIR_FFU0_0;                           /*  FUAIR_FFU0_0    */
+    volatile uint32_t  URQSR_FFU0_0;                           /*  URQSR_FFU0_0    */
+    volatile uint32_t  FFUPR_FFU0_0;                           /*  FFUPR_FFU0_0    */
+    volatile uint32_t  UEVMR_FFU0_0;                           /*  UEVMR_FFU0_0    */
+    volatile uint8_t   dummy1[4];                              /*                  */
+    volatile uint32_t  UEVCR_FFU0_0;                           /*  UEVCR_FFU0_0    */
+} r_io_scux_from_ffuir_ffu0_n_t;
+
+
+typedef struct st_scux_from_srcir0_2src0_n
+{
+ 
+    volatile uint32_t  SRCIR0_2SRC0_0;                         /*  SRCIR0_2SRC0_0  */
+    volatile uint32_t  SADIR0_2SRC0_0;                         /*  SADIR0_2SRC0_0  */
+    volatile uint32_t  SRCBR0_2SRC0_0;                         /*  SRCBR0_2SRC0_0  */
+    volatile uint32_t  IFSCR0_2SRC0_0;                         /*  IFSCR0_2SRC0_0  */
+    volatile uint32_t  IFSVR0_2SRC0_0;                         /*  IFSVR0_2SRC0_0  */
+    volatile uint32_t  SRCCR0_2SRC0_0;                         /*  SRCCR0_2SRC0_0  */
+    volatile uint32_t  MNFSR0_2SRC0_0;                         /*  MNFSR0_2SRC0_0  */
+    volatile uint32_t  BFSSR0_2SRC0_0;                         /*  BFSSR0_2SRC0_0  */
+    volatile uint32_t  SC2SR0_2SRC0_0;                         /*  SC2SR0_2SRC0_0  */
+    volatile uint32_t  WATSR0_2SRC0_0;                         /*  WATSR0_2SRC0_0  */
+    volatile uint32_t  SEVMR0_2SRC0_0;                         /*  SEVMR0_2SRC0_0  */
+    volatile uint8_t   dummy1[4];                              /*                  */
+    volatile uint32_t  SEVCR0_2SRC0_0;                         /*  SEVCR0_2SRC0_0  */
+    volatile uint32_t  SRCIR1_2SRC0_0;                         /*  SRCIR1_2SRC0_0  */
+    volatile uint32_t  SADIR1_2SRC0_0;                         /*  SADIR1_2SRC0_0  */
+    volatile uint32_t  SRCBR1_2SRC0_0;                         /*  SRCBR1_2SRC0_0  */
+    volatile uint32_t  IFSCR1_2SRC0_0;                         /*  IFSCR1_2SRC0_0  */
+    volatile uint32_t  IFSVR1_2SRC0_0;                         /*  IFSVR1_2SRC0_0  */
+    volatile uint32_t  SRCCR1_2SRC0_0;                         /*  SRCCR1_2SRC0_0  */
+    volatile uint32_t  MNFSR1_2SRC0_0;                         /*  MNFSR1_2SRC0_0  */
+    volatile uint32_t  BFSSR1_2SRC0_0;                         /*  BFSSR1_2SRC0_0  */
+    volatile uint32_t  SC2SR1_2SRC0_0;                         /*  SC2SR1_2SRC0_0  */
+    volatile uint32_t  WATSR1_2SRC0_0;                         /*  WATSR1_2SRC0_0  */
+    volatile uint32_t  SEVMR1_2SRC0_0;                         /*  SEVMR1_2SRC0_0  */
+    volatile uint8_t   dummy2[4];                              /*                  */
+    volatile uint32_t  SEVCR1_2SRC0_0;                         /*  SEVCR1_2SRC0_0  */
+    volatile uint32_t  SRCIRR_2SRC0_0;                         /*  SRCIRR_2SRC0_0  */
+} r_io_scux_from_srcir0_2src0_n_t;
+
+
+typedef struct st_scux_from_dvuir_dvu0_n
+{
+ 
+    volatile uint32_t  DVUIR_DVU0_0;                           /*  DVUIR_DVU0_0    */
+    volatile uint32_t  VADIR_DVU0_0;                           /*  VADIR_DVU0_0    */
+    volatile uint32_t  DVUBR_DVU0_0;                           /*  DVUBR_DVU0_0    */
+    volatile uint32_t  DVUCR_DVU0_0;                           /*  DVUCR_DVU0_0    */
+    volatile uint32_t  ZCMCR_DVU0_0;                           /*  ZCMCR_DVU0_0    */
+    volatile uint32_t  VRCTR_DVU0_0;                           /*  VRCTR_DVU0_0    */
+    volatile uint32_t  VRPDR_DVU0_0;                           /*  VRPDR_DVU0_0    */
+    volatile uint32_t  VRDBR_DVU0_0;                           /*  VRDBR_DVU0_0    */
+    volatile uint32_t  VRWTR_DVU0_0;                           /*  VRWTR_DVU0_0    */
+    volatile uint32_t  VOL0R_DVU0_0;                           /*  VOL0R_DVU0_0    */
+    volatile uint32_t  VOL1R_DVU0_0;                           /*  VOL1R_DVU0_0    */
+    volatile uint32_t  VOL2R_DVU0_0;                           /*  VOL2R_DVU0_0    */
+    volatile uint32_t  VOL3R_DVU0_0;                           /*  VOL3R_DVU0_0    */
+    volatile uint32_t  VOL4R_DVU0_0;                           /*  VOL4R_DVU0_0    */
+    volatile uint32_t  VOL5R_DVU0_0;                           /*  VOL5R_DVU0_0    */
+    volatile uint32_t  VOL6R_DVU0_0;                           /*  VOL6R_DVU0_0    */
+    volatile uint32_t  VOL7R_DVU0_0;                           /*  VOL7R_DVU0_0    */
+    volatile uint32_t  DVUER_DVU0_0;                           /*  DVUER_DVU0_0    */
+    volatile uint32_t  DVUSR_DVU0_0;                           /*  DVUSR_DVU0_0    */
+    volatile uint32_t  VEVMR_DVU0_0;                           /*  VEVMR_DVU0_0    */
+    volatile uint8_t   dummy1[4];                              /*                  */
+    volatile uint32_t  VEVCR_DVU0_0;                           /*  VEVCR_DVU0_0    */
+} r_io_scux_from_dvuir_dvu0_n_t;
+
+
+/* Channel array defines of SCUX (2)*/
+#ifdef  DECLARE_SCUX_FROM_DVUIR_DVU0_0_ARRAY_CHANNELS
+volatile struct st_scux_from_dvuir_dvu0_n*  SCUX_FROM_DVUIR_DVU0_0_ARRAY[ SCUX_FROM_DVUIR_DVU0_0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SCUX_FROM_DVUIR_DVU0_0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SCUX_FROM_DVUIR_DVU0_0_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_SCUX_FROM_SRCIR0_2SRC0_0_ARRAY_CHANNELS
+volatile struct st_scux_from_srcir0_2src0_n*  SCUX_FROM_SRCIR0_2SRC0_0_ARRAY[ SCUX_FROM_SRCIR0_2SRC0_0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SCUX_FROM_SRCIR0_2SRC0_0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SCUX_FROM_SRCIR0_2SRC0_0_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_SCUX_FROM_FFUIR_FFU0_0_ARRAY_CHANNELS
+volatile struct st_scux_from_ffuir_ffu0_n*  SCUX_FROM_FFUIR_FFU0_0_ARRAY[ SCUX_FROM_FFUIR_FFU0_0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SCUX_FROM_FFUIR_FFU0_0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SCUX_FROM_FFUIR_FFU0_0_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_SCUX_FROM_FFDIR_FFD0_0_ARRAY_CHANNELS
+volatile struct st_scux_from_ffdir_ffd0_n*  SCUX_FROM_FFDIR_FFD0_0_ARRAY[ SCUX_FROM_FFDIR_FFD0_0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SCUX_FROM_FFDIR_FFD0_0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SCUX_FROM_FFDIR_FFD0_0_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_SCUX_FROM_OPCIR_OPC0_0_ARRAY_CHANNELS
+volatile struct st_scux_from_opcir_opc0_n*  SCUX_FROM_OPCIR_OPC0_0_ARRAY[ SCUX_FROM_OPCIR_OPC0_0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SCUX_FROM_OPCIR_OPC0_0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SCUX_FROM_OPCIR_OPC0_0_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_SCUX_FROM_IPCIR_IPC0_0_ARRAY_CHANNELS
+volatile struct st_scux_from_ipcir_ipc0_n*  SCUX_FROM_IPCIR_IPC0_0_ARRAY[ SCUX_FROM_IPCIR_IPC0_0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SCUX_FROM_IPCIR_IPC0_0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SCUX_FROM_IPCIR_IPC0_0_ARRAY_CHANNELS */
+/* End of channel array defines of SCUX (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/sdg_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/sdg_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/sdg_iodefine.h	(revision 429)
@@ -0,0 +1,107 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : sdg_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef SDG_IODEFINE_H
+#define SDG_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define SDG0    (*(struct st_sdg     *)0xFCFF4800uL) /* SDG0 */
+#define SDG1    (*(struct st_sdg     *)0xFCFF4A00uL) /* SDG1 */
+#define SDG2    (*(struct st_sdg     *)0xFCFF4C00uL) /* SDG2 */
+#define SDG3    (*(struct st_sdg     *)0xFCFF4E00uL) /* SDG3 */
+
+
+/* Start of channel array defines of SDG */
+
+/* Channel array defines of SDG */
+/*(Sample) value = SDG[ channel ]->SGCR1; */
+#define SDG_COUNT  (4)
+#define SDG_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SDG0, &SDG1, &SDG2, &SDG3 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of SDG */
+
+
+#define SGCR1_0 (SDG0.SGCR1)
+#define SGCSR_0 (SDG0.SGCSR)
+#define SGCR2_0 (SDG0.SGCR2)
+#define SGLR_0 (SDG0.SGLR)
+#define SGTFR_0 (SDG0.SGTFR)
+#define SGSFR_0 (SDG0.SGSFR)
+#define SGCR1_1 (SDG1.SGCR1)
+#define SGCSR_1 (SDG1.SGCSR)
+#define SGCR2_1 (SDG1.SGCR2)
+#define SGLR_1 (SDG1.SGLR)
+#define SGTFR_1 (SDG1.SGTFR)
+#define SGSFR_1 (SDG1.SGSFR)
+#define SGCR1_2 (SDG2.SGCR1)
+#define SGCSR_2 (SDG2.SGCSR)
+#define SGCR2_2 (SDG2.SGCR2)
+#define SGLR_2 (SDG2.SGLR)
+#define SGTFR_2 (SDG2.SGTFR)
+#define SGSFR_2 (SDG2.SGSFR)
+#define SGCR1_3 (SDG3.SGCR1)
+#define SGCSR_3 (SDG3.SGCSR)
+#define SGCR2_3 (SDG3.SGCR2)
+#define SGLR_3 (SDG3.SGLR)
+#define SGTFR_3 (SDG3.SGTFR)
+#define SGSFR_3 (SDG3.SGSFR)
+
+
+typedef struct st_sdg
+{
+                                                           /* SDG              */
+    volatile uint8_t   SGCR1;                                  /*  SGCR1           */
+    volatile uint8_t   SGCSR;                                  /*  SGCSR           */
+    volatile uint8_t   SGCR2;                                  /*  SGCR2           */
+    volatile uint8_t   SGLR;                                   /*  SGLR            */
+    volatile uint8_t   SGTFR;                                  /*  SGTFR           */
+    volatile uint8_t   SGSFR;                                  /*  SGSFR           */
+} r_io_sdg_t;
+
+
+/* Channel array defines of SDG (2)*/
+#ifdef  DECLARE_SDG_CHANNELS
+volatile struct st_sdg*  SDG[ SDG_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SDG_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SDG_CHANNELS */
+/* End of channel array defines of SDG (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/spdif_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/spdif_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/spdif_iodefine.h	(revision 429)
@@ -0,0 +1,79 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : spdif_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef SPDIF_IODEFINE_H
+#define SPDIF_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define SPDIF   (*(struct st_spdif   *)0xE8012000uL) /* SPDIF */
+
+
+#define SPDIFTLCA (SPDIF.TLCA)
+#define SPDIFTRCA (SPDIF.TRCA)
+#define SPDIFTLCS (SPDIF.TLCS)
+#define SPDIFTRCS (SPDIF.TRCS)
+#define SPDIFTUI (SPDIF.TUI)
+#define SPDIFRLCA (SPDIF.RLCA)
+#define SPDIFRRCA (SPDIF.RRCA)
+#define SPDIFRLCS (SPDIF.RLCS)
+#define SPDIFRRCS (SPDIF.RRCS)
+#define SPDIFRUI (SPDIF.RUI)
+#define SPDIFCTRL (SPDIF.CTRL)
+#define SPDIFSTAT (SPDIF.STAT)
+#define SPDIFTDAD (SPDIF.TDAD)
+#define SPDIFRDAD (SPDIF.RDAD)
+
+
+typedef struct st_spdif
+{
+                                                           /* SPDIF            */
+    volatile uint32_t  TLCA;                                   /*  TLCA            */
+    volatile uint32_t  TRCA;                                   /*  TRCA            */
+    volatile uint32_t  TLCS;                                   /*  TLCS            */
+    volatile uint32_t  TRCS;                                   /*  TRCS            */
+    volatile uint32_t  TUI;                                    /*  TUI             */
+    volatile uint32_t  RLCA;                                   /*  RLCA            */
+    volatile uint32_t  RRCA;                                   /*  RRCA            */
+    volatile uint32_t  RLCS;                                   /*  RLCS            */
+    volatile uint32_t  RRCS;                                   /*  RRCS            */
+    volatile uint32_t  RUI;                                    /*  RUI             */
+    volatile uint32_t  CTRL;                                   /*  CTRL            */
+    volatile uint32_t  STAT;                                   /*  STAT            */
+    volatile uint32_t  TDAD;                                   /*  TDAD            */
+    volatile uint32_t  RDAD;                                   /*  RDAD            */
+} r_io_spdif_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/spibsc_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/spibsc_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/spibsc_iodefine.h	(revision 429)
@@ -0,0 +1,199 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : spibsc_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef SPIBSC_IODEFINE_H
+#define SPIBSC_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define SPIBSC0 (*(struct st_spibsc  *)0x3FEFA000uL) /* SPIBSC0 */
+#define SPIBSC1 (*(struct st_spibsc  *)0x3FEFB000uL) /* SPIBSC1 */
+
+
+/* Start of channel array defines of SPIBSC */
+
+/* Channel array defines of SPIBSC */
+/*(Sample) value = SPIBSC[ channel ]->CMNCR; */
+#define SPIBSC_COUNT  (2)
+#define SPIBSC_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SPIBSC0, &SPIBSC1 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of SPIBSC */
+
+
+#define CMNCR_0 (SPIBSC0.CMNCR)
+#define SSLDR_0 (SPIBSC0.SSLDR)
+#define SPBCR_0 (SPIBSC0.SPBCR)
+#define DRCR_0 (SPIBSC0.DRCR)
+#define DRCMR_0 (SPIBSC0.DRCMR)
+#define DREAR_0 (SPIBSC0.DREAR)
+#define DROPR_0 (SPIBSC0.DROPR)
+#define DRENR_0 (SPIBSC0.DRENR)
+#define SMCR_0 (SPIBSC0.SMCR)
+#define SMCMR_0 (SPIBSC0.SMCMR)
+#define SMADR_0 (SPIBSC0.SMADR)
+#define SMOPR_0 (SPIBSC0.SMOPR)
+#define SMENR_0 (SPIBSC0.SMENR)
+#define SMRDR0_0   (SPIBSC0.SMRDR0.UINT32)
+#define SMRDR0_0L  (SPIBSC0.SMRDR0.UINT16[R_IO_L])
+#define SMRDR0_0H  (SPIBSC0.SMRDR0.UINT16[R_IO_H])
+#define SMRDR0_0LL (SPIBSC0.SMRDR0.UINT8[R_IO_LL])
+#define SMRDR0_0LH (SPIBSC0.SMRDR0.UINT8[R_IO_LH])
+#define SMRDR0_0HL (SPIBSC0.SMRDR0.UINT8[R_IO_HL])
+#define SMRDR0_0HH (SPIBSC0.SMRDR0.UINT8[R_IO_HH])
+#define SMRDR1_0   (SPIBSC0.SMRDR1.UINT32)
+#define SMRDR1_0L  (SPIBSC0.SMRDR1.UINT16[R_IO_L])
+#define SMRDR1_0H  (SPIBSC0.SMRDR1.UINT16[R_IO_H])
+#define SMRDR1_0LL (SPIBSC0.SMRDR1.UINT8[R_IO_LL])
+#define SMRDR1_0LH (SPIBSC0.SMRDR1.UINT8[R_IO_LH])
+#define SMRDR1_0HL (SPIBSC0.SMRDR1.UINT8[R_IO_HL])
+#define SMRDR1_0HH (SPIBSC0.SMRDR1.UINT8[R_IO_HH])
+#define SMWDR0_0   (SPIBSC0.SMWDR0.UINT32)
+#define SMWDR0_0L  (SPIBSC0.SMWDR0.UINT16[R_IO_L])
+#define SMWDR0_0H  (SPIBSC0.SMWDR0.UINT16[R_IO_H])
+#define SMWDR0_0LL (SPIBSC0.SMWDR0.UINT8[R_IO_LL])
+#define SMWDR0_0LH (SPIBSC0.SMWDR0.UINT8[R_IO_LH])
+#define SMWDR0_0HL (SPIBSC0.SMWDR0.UINT8[R_IO_HL])
+#define SMWDR0_0HH (SPIBSC0.SMWDR0.UINT8[R_IO_HH])
+#define SMWDR1_0   (SPIBSC0.SMWDR1.UINT32)
+#define SMWDR1_0L  (SPIBSC0.SMWDR1.UINT16[R_IO_L])
+#define SMWDR1_0H  (SPIBSC0.SMWDR1.UINT16[R_IO_H])
+#define SMWDR1_0LL (SPIBSC0.SMWDR1.UINT8[R_IO_LL])
+#define SMWDR1_0LH (SPIBSC0.SMWDR1.UINT8[R_IO_LH])
+#define SMWDR1_0HL (SPIBSC0.SMWDR1.UINT8[R_IO_HL])
+#define SMWDR1_0HH (SPIBSC0.SMWDR1.UINT8[R_IO_HH])
+#define CMNSR_0 (SPIBSC0.CMNSR)
+#define CKDLY_0 (SPIBSC0.CKDLY)
+#define DRDMCR_0 (SPIBSC0.DRDMCR)
+#define DRDRENR_0 (SPIBSC0.DRDRENR)
+#define SMDMCR_0 (SPIBSC0.SMDMCR)
+#define SMDRENR_0 (SPIBSC0.SMDRENR)
+#define SPODLY_0 (SPIBSC0.SPODLY)
+#define CMNCR_1 (SPIBSC1.CMNCR)
+#define SSLDR_1 (SPIBSC1.SSLDR)
+#define SPBCR_1 (SPIBSC1.SPBCR)
+#define DRCR_1 (SPIBSC1.DRCR)
+#define DRCMR_1 (SPIBSC1.DRCMR)
+#define DREAR_1 (SPIBSC1.DREAR)
+#define DROPR_1 (SPIBSC1.DROPR)
+#define DRENR_1 (SPIBSC1.DRENR)
+#define SMCR_1 (SPIBSC1.SMCR)
+#define SMCMR_1 (SPIBSC1.SMCMR)
+#define SMADR_1 (SPIBSC1.SMADR)
+#define SMOPR_1 (SPIBSC1.SMOPR)
+#define SMENR_1 (SPIBSC1.SMENR)
+#define SMRDR0_1   (SPIBSC1.SMRDR0.UINT32)
+#define SMRDR0_1L  (SPIBSC1.SMRDR0.UINT16[R_IO_L])
+#define SMRDR0_1H  (SPIBSC1.SMRDR0.UINT16[R_IO_H])
+#define SMRDR0_1LL (SPIBSC1.SMRDR0.UINT8[R_IO_LL])
+#define SMRDR0_1LH (SPIBSC1.SMRDR0.UINT8[R_IO_LH])
+#define SMRDR0_1HL (SPIBSC1.SMRDR0.UINT8[R_IO_HL])
+#define SMRDR0_1HH (SPIBSC1.SMRDR0.UINT8[R_IO_HH])
+#define SMRDR1_1   (SPIBSC1.SMRDR1.UINT32)
+#define SMRDR1_1L  (SPIBSC1.SMRDR1.UINT16[R_IO_L])
+#define SMRDR1_1H  (SPIBSC1.SMRDR1.UINT16[R_IO_H])
+#define SMRDR1_1LL (SPIBSC1.SMRDR1.UINT8[R_IO_LL])
+#define SMRDR1_1LH (SPIBSC1.SMRDR1.UINT8[R_IO_LH])
+#define SMRDR1_1HL (SPIBSC1.SMRDR1.UINT8[R_IO_HL])
+#define SMRDR1_1HH (SPIBSC1.SMRDR1.UINT8[R_IO_HH])
+#define SMWDR0_1   (SPIBSC1.SMWDR0.UINT32)
+#define SMWDR0_1L  (SPIBSC1.SMWDR0.UINT16[R_IO_L])
+#define SMWDR0_1H  (SPIBSC1.SMWDR0.UINT16[R_IO_H])
+#define SMWDR0_1LL (SPIBSC1.SMWDR0.UINT8[R_IO_LL])
+#define SMWDR0_1LH (SPIBSC1.SMWDR0.UINT8[R_IO_LH])
+#define SMWDR0_1HL (SPIBSC1.SMWDR0.UINT8[R_IO_HL])
+#define SMWDR0_1HH (SPIBSC1.SMWDR0.UINT8[R_IO_HH])
+#define SMWDR1_1   (SPIBSC1.SMWDR1.UINT32)
+#define SMWDR1_1L  (SPIBSC1.SMWDR1.UINT16[R_IO_L])
+#define SMWDR1_1H  (SPIBSC1.SMWDR1.UINT16[R_IO_H])
+#define SMWDR1_1LL (SPIBSC1.SMWDR1.UINT8[R_IO_LL])
+#define SMWDR1_1LH (SPIBSC1.SMWDR1.UINT8[R_IO_LH])
+#define SMWDR1_1HL (SPIBSC1.SMWDR1.UINT8[R_IO_HL])
+#define SMWDR1_1HH (SPIBSC1.SMWDR1.UINT8[R_IO_HH])
+#define CMNSR_1 (SPIBSC1.CMNSR)
+#define CKDLY_1 (SPIBSC1.CKDLY)
+#define DRDMCR_1 (SPIBSC1.DRDMCR)
+#define DRDRENR_1 (SPIBSC1.DRDRENR)
+#define SMDMCR_1 (SPIBSC1.SMDMCR)
+#define SMDRENR_1 (SPIBSC1.SMDRENR)
+#define SPODLY_1 (SPIBSC1.SPODLY)
+
+
+typedef struct st_spibsc
+{
+                                                           /* SPIBSC           */
+    volatile uint32_t  CMNCR;                                  /*  CMNCR           */
+    volatile uint32_t  SSLDR;                                  /*  SSLDR           */
+    volatile uint32_t  SPBCR;                                  /*  SPBCR           */
+    volatile uint32_t  DRCR;                                   /*  DRCR            */
+    volatile uint32_t  DRCMR;                                  /*  DRCMR           */
+    volatile uint32_t  DREAR;                                  /*  DREAR           */
+    volatile uint32_t  DROPR;                                  /*  DROPR           */
+    volatile uint32_t  DRENR;                                  /*  DRENR           */
+    volatile uint32_t  SMCR;                                   /*  SMCR            */
+    volatile uint32_t  SMCMR;                                  /*  SMCMR           */
+    volatile uint32_t  SMADR;                                  /*  SMADR           */
+    volatile uint32_t  SMOPR;                                  /*  SMOPR           */
+    volatile uint32_t  SMENR;                                  /*  SMENR           */
+    volatile uint8_t   dummy1[4];                              /*                  */
+    union iodefine_reg32_t  SMRDR0;                        /*  SMRDR0          */
+    union iodefine_reg32_t  SMRDR1;                        /*  SMRDR1          */
+    union iodefine_reg32_t  SMWDR0;                        /*  SMWDR0          */
+    union iodefine_reg32_t  SMWDR1;                        /*  SMWDR1          */
+    
+    volatile uint32_t  CMNSR;                                  /*  CMNSR           */
+    volatile uint8_t   dummy2[4];                              /*                  */
+    volatile uint32_t  CKDLY;                                  /*  CKDLY           */
+    volatile uint8_t   dummy3[4];                              /*                  */
+    volatile uint32_t  DRDMCR;                                 /*  DRDMCR          */
+    volatile uint32_t  DRDRENR;                                /*  DRDRENR         */
+    volatile uint32_t  SMDMCR;                                 /*  SMDMCR          */
+    volatile uint32_t  SMDRENR;                                /*  SMDRENR         */
+    volatile uint32_t  SPODLY;                                 /*  SPODLY          */
+} r_io_spibsc_t;
+
+
+/* Channel array defines of SPIBSC (2)*/
+#ifdef  DECLARE_SPIBSC_CHANNELS
+volatile struct st_spibsc*  SPIBSC[ SPIBSC_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SPIBSC_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SPIBSC_CHANNELS */
+/* End of channel array defines of SPIBSC (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ssif_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ssif_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/ssif_iodefine.h	(revision 429)
@@ -0,0 +1,150 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : ssif_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef SSIF_IODEFINE_H
+#define SSIF_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define SSIF0   (*(struct st_ssif    *)0xE820B000uL) /* SSIF0 */
+#define SSIF1   (*(struct st_ssif    *)0xE820B800uL) /* SSIF1 */
+#define SSIF2   (*(struct st_ssif    *)0xE820C000uL) /* SSIF2 */
+#define SSIF3   (*(struct st_ssif    *)0xE820C800uL) /* SSIF3 */
+#define SSIF4   (*(struct st_ssif    *)0xE820D000uL) /* SSIF4 */
+#define SSIF5   (*(struct st_ssif    *)0xE820D800uL) /* SSIF5 */
+
+
+/* Start of channel array defines of SSIF */
+
+/* Channel array defines of SSIF */
+/*(Sample) value = SSIF[ channel ]->SSICR; */
+#define SSIF_COUNT  (6)
+#define SSIF_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &SSIF0, &SSIF1, &SSIF2, &SSIF3, &SSIF4, &SSIF5 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+/* End of channel array defines of SSIF */
+
+
+#define SSICR_0 (SSIF0.SSICR)
+#define SSISR_0 (SSIF0.SSISR)
+#define SSIFCR_0 (SSIF0.SSIFCR)
+#define SSIFSR_0 (SSIF0.SSIFSR)
+#define SSIFTDR_0 (SSIF0.SSIFTDR)
+#define SSIFRDR_0 (SSIF0.SSIFRDR)
+#define SSITDMR_0 (SSIF0.SSITDMR)
+#define SSIFCCR_0 (SSIF0.SSIFCCR)
+#define SSIFCMR_0 (SSIF0.SSIFCMR)
+#define SSIFCSR_0 (SSIF0.SSIFCSR)
+#define SSICR_1 (SSIF1.SSICR)
+#define SSISR_1 (SSIF1.SSISR)
+#define SSIFCR_1 (SSIF1.SSIFCR)
+#define SSIFSR_1 (SSIF1.SSIFSR)
+#define SSIFTDR_1 (SSIF1.SSIFTDR)
+#define SSIFRDR_1 (SSIF1.SSIFRDR)
+#define SSITDMR_1 (SSIF1.SSITDMR)
+#define SSIFCCR_1 (SSIF1.SSIFCCR)
+#define SSIFCMR_1 (SSIF1.SSIFCMR)
+#define SSIFCSR_1 (SSIF1.SSIFCSR)
+#define SSICR_2 (SSIF2.SSICR)
+#define SSISR_2 (SSIF2.SSISR)
+#define SSIFCR_2 (SSIF2.SSIFCR)
+#define SSIFSR_2 (SSIF2.SSIFSR)
+#define SSIFTDR_2 (SSIF2.SSIFTDR)
+#define SSIFRDR_2 (SSIF2.SSIFRDR)
+#define SSITDMR_2 (SSIF2.SSITDMR)
+#define SSIFCCR_2 (SSIF2.SSIFCCR)
+#define SSIFCMR_2 (SSIF2.SSIFCMR)
+#define SSIFCSR_2 (SSIF2.SSIFCSR)
+#define SSICR_3 (SSIF3.SSICR)
+#define SSISR_3 (SSIF3.SSISR)
+#define SSIFCR_3 (SSIF3.SSIFCR)
+#define SSIFSR_3 (SSIF3.SSIFSR)
+#define SSIFTDR_3 (SSIF3.SSIFTDR)
+#define SSIFRDR_3 (SSIF3.SSIFRDR)
+#define SSITDMR_3 (SSIF3.SSITDMR)
+#define SSIFCCR_3 (SSIF3.SSIFCCR)
+#define SSIFCMR_3 (SSIF3.SSIFCMR)
+#define SSIFCSR_3 (SSIF3.SSIFCSR)
+#define SSICR_4 (SSIF4.SSICR)
+#define SSISR_4 (SSIF4.SSISR)
+#define SSIFCR_4 (SSIF4.SSIFCR)
+#define SSIFSR_4 (SSIF4.SSIFSR)
+#define SSIFTDR_4 (SSIF4.SSIFTDR)
+#define SSIFRDR_4 (SSIF4.SSIFRDR)
+#define SSITDMR_4 (SSIF4.SSITDMR)
+#define SSIFCCR_4 (SSIF4.SSIFCCR)
+#define SSIFCMR_4 (SSIF4.SSIFCMR)
+#define SSIFCSR_4 (SSIF4.SSIFCSR)
+#define SSICR_5 (SSIF5.SSICR)
+#define SSISR_5 (SSIF5.SSISR)
+#define SSIFCR_5 (SSIF5.SSIFCR)
+#define SSIFSR_5 (SSIF5.SSIFSR)
+#define SSIFTDR_5 (SSIF5.SSIFTDR)
+#define SSIFRDR_5 (SSIF5.SSIFRDR)
+#define SSITDMR_5 (SSIF5.SSITDMR)
+#define SSIFCCR_5 (SSIF5.SSIFCCR)
+#define SSIFCMR_5 (SSIF5.SSIFCMR)
+#define SSIFCSR_5 (SSIF5.SSIFCSR)
+
+
+typedef struct st_ssif
+{
+                                                           /* SSIF             */
+    volatile uint32_t  SSICR;                                  /*  SSICR           */
+    volatile uint32_t  SSISR;                                  /*  SSISR           */
+    volatile uint8_t   dummy1[8];                              /*                  */
+    volatile uint32_t  SSIFCR;                                 /*  SSIFCR          */
+    volatile uint32_t  SSIFSR;                                 /*  SSIFSR          */
+    volatile uint32_t  SSIFTDR;                                /*  SSIFTDR         */
+    volatile uint32_t  SSIFRDR;                                /*  SSIFRDR         */
+    volatile uint32_t  SSITDMR;                                /*  SSITDMR         */
+    volatile uint32_t  SSIFCCR;                                /*  SSIFCCR         */
+    volatile uint32_t  SSIFCMR;                                /*  SSIFCMR         */
+    volatile uint32_t  SSIFCSR;                                /*  SSIFCSR         */
+} r_io_ssif_t;
+
+
+/* Channel array defines of SSIF (2)*/
+#ifdef  DECLARE_SSIF_CHANNELS
+volatile struct st_ssif*  SSIF[ SSIF_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    SSIF_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_SSIF_CHANNELS */
+/* End of channel array defines of SSIF (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/usb20_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/usb20_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/usb20_iodefine.h	(revision 429)
@@ -0,0 +1,622 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : usb20_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef USB20_IODEFINE_H
+#define USB20_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define USB200  (*(struct st_usb20   *)0xE8010000uL) /* USB200 */
+#define USB201  (*(struct st_usb20   *)0xE8207000uL) /* USB201 */
+
+
+/* Start of channel array defines of USB20 */
+
+/* Channel array defines of USB20 */
+/*(Sample) value = USB20[ channel ]->SYSCFG0; */
+#define USB20_COUNT  (2)
+#define USB20_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &USB200, &USB201 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+
+
+/* Channel array defines of USB20_FROM_D0FIFOB0 */
+/*(Sample) value = USB20_FROM_D0FIFOB0[ channel ][ index ]->D0FIFOB0; */
+#define USB20_FROM_D0FIFOB0_COUNT  (2)
+#define USB20_FROM_D0FIFOB0_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &USB200_FROM_D0FIFOB0, &USB200_FROM_D1FIFOB0 },{ \
+    &USB201_FROM_D0FIFOB0, &USB201_FROM_D1FIFOB0 \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define USB200_FROM_D0FIFOB0 (*(struct st_usb20_from_dmfifob0 *)&USB200.D0FIFOB0) /* USB200_FROM_D0FIFOB0 */
+#define USB200_FROM_D1FIFOB0 (*(struct st_usb20_from_dmfifob0 *)&USB200.D1FIFOB0) /* USB200_FROM_D1FIFOB0 */
+#define USB201_FROM_D0FIFOB0 (*(struct st_usb20_from_dmfifob0 *)&USB201.D0FIFOB0) /* USB201_FROM_D0FIFOB0 */
+#define USB201_FROM_D1FIFOB0 (*(struct st_usb20_from_dmfifob0 *)&USB201.D1FIFOB0) /* USB201_FROM_D1FIFOB0 */
+
+
+
+
+/* Channel array defines of USB20_FROM_PIPE1ATRE */
+/*(Sample) value = USB20_FROM_PIPE1ATRE[ channel ][ index ]->PIPE1TRE; */
+#define USB20_FROM_PIPE1ATRE_COUNT  (5)
+#define USB20_FROM_PIPE1ATRE_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &USB200_FROM_PIPE1TRE, &USB200_FROM_PIPE2TRE, &USB200_FROM_PIPE3TRE, &USB200_FROM_PIPE4TRE, &USB200_FROM_PIPE5TRE },{ \
+    &USB201_FROM_PIPE1TRE, &USB201_FROM_PIPE2TRE, &USB201_FROM_PIPE3TRE, &USB201_FROM_PIPE4TRE, &USB201_FROM_PIPE5TRE \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define USB200_FROM_PIPE1TRE (*(struct st_usb20_from_pipe1tre *)&USB200.PIPE1TRE) /* USB200_FROM_PIPE1TRE */
+#define USB200_FROM_PIPE2TRE (*(struct st_usb20_from_pipe1tre *)&USB200.PIPE2TRE) /* USB200_FROM_PIPE2TRE */
+#define USB200_FROM_PIPE3TRE (*(struct st_usb20_from_pipe1tre *)&USB200.PIPE3TRE) /* USB200_FROM_PIPE3TRE */
+#define USB200_FROM_PIPE4TRE (*(struct st_usb20_from_pipe1tre *)&USB200.PIPE4TRE) /* USB200_FROM_PIPE4TRE */
+#define USB200_FROM_PIPE5TRE (*(struct st_usb20_from_pipe1tre *)&USB200.PIPE5TRE) /* USB200_FROM_PIPE5TRE */
+#define USB201_FROM_PIPE1TRE (*(struct st_usb20_from_pipe1tre *)&USB201.PIPE1TRE) /* USB201_FROM_PIPE1TRE */
+#define USB201_FROM_PIPE2TRE (*(struct st_usb20_from_pipe1tre *)&USB201.PIPE2TRE) /* USB201_FROM_PIPE2TRE */
+#define USB201_FROM_PIPE3TRE (*(struct st_usb20_from_pipe1tre *)&USB201.PIPE3TRE) /* USB201_FROM_PIPE3TRE */
+#define USB201_FROM_PIPE4TRE (*(struct st_usb20_from_pipe1tre *)&USB201.PIPE4TRE) /* USB201_FROM_PIPE4TRE */
+#define USB201_FROM_PIPE5TRE (*(struct st_usb20_from_pipe1tre *)&USB201.PIPE5TRE) /* USB201_FROM_PIPE5TRE */
+
+
+
+
+/* Channel array defines of USB20_FROM_D0FIFOSEL */
+/*(Sample) value = USB20_FROM_D0FIFOSEL[ channel ][ index ]->D0FIFOSEL; */
+#define USB20_FROM_D0FIFOSEL_COUNT  (2)
+#define USB20_FROM_D0FIFOSEL_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &USB200_FROM_D0FIFOSEL, &USB200_FROM_D1FIFOSEL },{ \
+    &USB201_FROM_D0FIFOSEL, &USB201_FROM_D1FIFOSEL \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define USB200_FROM_D0FIFOSEL (*(struct st_usb20_from_d0fifosel *)&USB200.D0FIFOSEL) /* USB200_FROM_D0FIFOSEL */
+#define USB200_FROM_D1FIFOSEL (*(struct st_usb20_from_d0fifosel *)&USB200.D1FIFOSEL) /* USB200_FROM_D1FIFOSEL */
+#define USB201_FROM_D0FIFOSEL (*(struct st_usb20_from_d0fifosel *)&USB201.D0FIFOSEL) /* USB201_FROM_D0FIFOSEL */
+#define USB201_FROM_D1FIFOSEL (*(struct st_usb20_from_d0fifosel *)&USB201.D1FIFOSEL) /* USB201_FROM_D1FIFOSEL */
+
+
+/* End of channel array defines of USB20 */
+
+
+#define SYSCFG0_0 (USB200.SYSCFG0)
+#define BUSWAIT_0 (USB200.BUSWAIT)
+#define SYSSTS0_0 (USB200.SYSSTS0)
+#define DVSTCTR0_0 (USB200.DVSTCTR0)
+#define TESTMODE_0 (USB200.TESTMODE)
+#define D0FBCFG_0 (USB200.D0FBCFG)
+#define D1FBCFG_0 (USB200.D1FBCFG)
+#define CFIFO_0   (USB200.CFIFO.UINT32)
+#define CFIFO_0L  (USB200.CFIFO.UINT16[R_IO_L])
+#define CFIFO_0H  (USB200.CFIFO.UINT16[R_IO_H])
+#define CFIFO_0LL (USB200.CFIFO.UINT8[R_IO_LL])
+#define CFIFO_0LH (USB200.CFIFO.UINT8[R_IO_LH])
+#define CFIFO_0HL (USB200.CFIFO.UINT8[R_IO_HL])
+#define CFIFO_0HH (USB200.CFIFO.UINT8[R_IO_HH])
+#define D0FIFO_0   (USB200.D0FIFO.UINT32)
+#define D0FIFO_0L  (USB200.D0FIFO.UINT16[R_IO_L])
+#define D0FIFO_0H  (USB200.D0FIFO.UINT16[R_IO_H])
+#define D0FIFO_0LL (USB200.D0FIFO.UINT8[R_IO_LL])
+#define D0FIFO_0LH (USB200.D0FIFO.UINT8[R_IO_LH])
+#define D0FIFO_0HL (USB200.D0FIFO.UINT8[R_IO_HL])
+#define D0FIFO_0HH (USB200.D0FIFO.UINT8[R_IO_HH])
+#define D1FIFO_0   (USB200.D1FIFO.UINT32)
+#define D1FIFO_0L  (USB200.D1FIFO.UINT16[R_IO_L])
+#define D1FIFO_0H  (USB200.D1FIFO.UINT16[R_IO_H])
+#define D1FIFO_0LL (USB200.D1FIFO.UINT8[R_IO_LL])
+#define D1FIFO_0LH (USB200.D1FIFO.UINT8[R_IO_LH])
+#define D1FIFO_0HL (USB200.D1FIFO.UINT8[R_IO_HL])
+#define D1FIFO_0HH (USB200.D1FIFO.UINT8[R_IO_HH])
+#define CFIFOSEL_0 (USB200.CFIFOSEL)
+#define CFIFOCTR_0 (USB200.CFIFOCTR)
+#define D0FIFOSEL_0 (USB200.D0FIFOSEL)
+#define D0FIFOCTR_0 (USB200.D0FIFOCTR)
+#define D1FIFOSEL_0 (USB200.D1FIFOSEL)
+#define D1FIFOCTR_0 (USB200.D1FIFOCTR)
+#define INTENB0_0 (USB200.INTENB0)
+#define INTENB1_0 (USB200.INTENB1)
+#define BRDYENB_0 (USB200.BRDYENB)
+#define NRDYENB_0 (USB200.NRDYENB)
+#define BEMPENB_0 (USB200.BEMPENB)
+#define SOFCFG_0 (USB200.SOFCFG)
+#define INTSTS0_0 (USB200.INTSTS0)
+#define INTSTS1_0 (USB200.INTSTS1)
+#define BRDYSTS_0 (USB200.BRDYSTS)
+#define NRDYSTS_0 (USB200.NRDYSTS)
+#define BEMPSTS_0 (USB200.BEMPSTS)
+#define FRMNUM_0 (USB200.FRMNUM)
+#define UFRMNUM_0 (USB200.UFRMNUM)
+#define USBADDR_0 (USB200.USBADDR)
+#define USBREQ_0 (USB200.USBREQ)
+#define USBVAL_0 (USB200.USBVAL)
+#define USBINDX_0 (USB200.USBINDX)
+#define USBLENG_0 (USB200.USBLENG)
+#define DCPCFG_0 (USB200.DCPCFG)
+#define DCPMAXP_0 (USB200.DCPMAXP)
+#define DCPCTR_0 (USB200.DCPCTR)
+#define PIPESEL_0 (USB200.PIPESEL)
+#define PIPECFG_0 (USB200.PIPECFG)
+#define PIPEBUF_0 (USB200.PIPEBUF)
+#define PIPEMAXP_0 (USB200.PIPEMAXP)
+#define PIPEPERI_0 (USB200.PIPEPERI)
+#define PIPE1CTR_0 (USB200.PIPE1CTR)
+#define PIPE2CTR_0 (USB200.PIPE2CTR)
+#define PIPE3CTR_0 (USB200.PIPE3CTR)
+#define PIPE4CTR_0 (USB200.PIPE4CTR)
+#define PIPE5CTR_0 (USB200.PIPE5CTR)
+#define PIPE6CTR_0 (USB200.PIPE6CTR)
+#define PIPE7CTR_0 (USB200.PIPE7CTR)
+#define PIPE8CTR_0 (USB200.PIPE8CTR)
+#define PIPE9CTR_0 (USB200.PIPE9CTR)
+#define PIPEACTR_0 (USB200.PIPEACTR)
+#define PIPEBCTR_0 (USB200.PIPEBCTR)
+#define PIPECCTR_0 (USB200.PIPECCTR)
+#define PIPEDCTR_0 (USB200.PIPEDCTR)
+#define PIPEECTR_0 (USB200.PIPEECTR)
+#define PIPEFCTR_0 (USB200.PIPEFCTR)
+#define PIPE1TRE_0 (USB200.PIPE1TRE)
+#define PIPE1TRN_0 (USB200.PIPE1TRN)
+#define PIPE2TRE_0 (USB200.PIPE2TRE)
+#define PIPE2TRN_0 (USB200.PIPE2TRN)
+#define PIPE3TRE_0 (USB200.PIPE3TRE)
+#define PIPE3TRN_0 (USB200.PIPE3TRN)
+#define PIPE4TRE_0 (USB200.PIPE4TRE)
+#define PIPE4TRN_0 (USB200.PIPE4TRN)
+#define PIPE5TRE_0 (USB200.PIPE5TRE)
+#define PIPE5TRN_0 (USB200.PIPE5TRN)
+#define PIPEBTRE_0 (USB200.PIPEBTRE)
+#define PIPEBTRN_0 (USB200.PIPEBTRN)
+#define PIPECTRE_0 (USB200.PIPECTRE)
+#define PIPECTRN_0 (USB200.PIPECTRN)
+#define PIPEDTRE_0 (USB200.PIPEDTRE)
+#define PIPEDTRN_0 (USB200.PIPEDTRN)
+#define PIPEETRE_0 (USB200.PIPEETRE)
+#define PIPEETRN_0 (USB200.PIPEETRN)
+#define PIPEFTRE_0 (USB200.PIPEFTRE)
+#define PIPEFTRN_0 (USB200.PIPEFTRN)
+#define PIPE9TRE_0 (USB200.PIPE9TRE)
+#define PIPE9TRN_0 (USB200.PIPE9TRN)
+#define PIPEATRE_0 (USB200.PIPEATRE)
+#define PIPEATRN_0 (USB200.PIPEATRN)
+#define DEVADD0_0 (USB200.DEVADD0)
+#define DEVADD1_0 (USB200.DEVADD1)
+#define DEVADD2_0 (USB200.DEVADD2)
+#define DEVADD3_0 (USB200.DEVADD3)
+#define DEVADD4_0 (USB200.DEVADD4)
+#define DEVADD5_0 (USB200.DEVADD5)
+#define DEVADD6_0 (USB200.DEVADD6)
+#define DEVADD7_0 (USB200.DEVADD7)
+#define DEVADD8_0 (USB200.DEVADD8)
+#define DEVADD9_0 (USB200.DEVADD9)
+#define DEVADDA_0 (USB200.DEVADDA)
+#define SUSPMODE_0 (USB200.SUSPMODE)
+#define D0FIFOB0_0 (USB200.D0FIFOB0)
+#define D0FIFOB1_0 (USB200.D0FIFOB1)
+#define D0FIFOB2_0 (USB200.D0FIFOB2)
+#define D0FIFOB3_0 (USB200.D0FIFOB3)
+#define D0FIFOB4_0 (USB200.D0FIFOB4)
+#define D0FIFOB5_0 (USB200.D0FIFOB5)
+#define D0FIFOB6_0 (USB200.D0FIFOB6)
+#define D0FIFOB7_0 (USB200.D0FIFOB7)
+#define D1FIFOB0_0 (USB200.D1FIFOB0)
+#define D1FIFOB1_0 (USB200.D1FIFOB1)
+#define D1FIFOB2_0 (USB200.D1FIFOB2)
+#define D1FIFOB3_0 (USB200.D1FIFOB3)
+#define D1FIFOB4_0 (USB200.D1FIFOB4)
+#define D1FIFOB5_0 (USB200.D1FIFOB5)
+#define D1FIFOB6_0 (USB200.D1FIFOB6)
+#define D1FIFOB7_0 (USB200.D1FIFOB7)
+#define SYSCFG0_1 (USB201.SYSCFG0)
+#define BUSWAIT_1 (USB201.BUSWAIT)
+#define SYSSTS0_1 (USB201.SYSSTS0)
+#define DVSTCTR0_1 (USB201.DVSTCTR0)
+#define TESTMODE_1 (USB201.TESTMODE)
+#define D0FBCFG_1 (USB201.D0FBCFG)
+#define D1FBCFG_1 (USB201.D1FBCFG)
+#define CFIFO_1   (USB201.CFIFO.UINT32)
+#define CFIFO_1L  (USB201.CFIFO.UINT16[R_IO_L])
+#define CFIFO_1H  (USB201.CFIFO.UINT16[R_IO_H])
+#define CFIFO_1LL (USB201.CFIFO.UINT8[R_IO_LL])
+#define CFIFO_1LH (USB201.CFIFO.UINT8[R_IO_LH])
+#define CFIFO_1HL (USB201.CFIFO.UINT8[R_IO_HL])
+#define CFIFO_1HH (USB201.CFIFO.UINT8[R_IO_HH])
+#define D0FIFO_1   (USB201.D0FIFO.UINT32)
+#define D0FIFO_1L  (USB201.D0FIFO.UINT16[R_IO_L])
+#define D0FIFO_1H  (USB201.D0FIFO.UINT16[R_IO_H])
+#define D0FIFO_1LL (USB201.D0FIFO.UINT8[R_IO_LL])
+#define D0FIFO_1LH (USB201.D0FIFO.UINT8[R_IO_LH])
+#define D0FIFO_1HL (USB201.D0FIFO.UINT8[R_IO_HL])
+#define D0FIFO_1HH (USB201.D0FIFO.UINT8[R_IO_HH])
+#define D1FIFO_1   (USB201.D1FIFO.UINT32)
+#define D1FIFO_1L  (USB201.D1FIFO.UINT16[R_IO_L])
+#define D1FIFO_1H  (USB201.D1FIFO.UINT16[R_IO_H])
+#define D1FIFO_1LL (USB201.D1FIFO.UINT8[R_IO_LL])
+#define D1FIFO_1LH (USB201.D1FIFO.UINT8[R_IO_LH])
+#define D1FIFO_1HL (USB201.D1FIFO.UINT8[R_IO_HL])
+#define D1FIFO_1HH (USB201.D1FIFO.UINT8[R_IO_HH])
+#define CFIFOSEL_1 (USB201.CFIFOSEL)
+#define CFIFOCTR_1 (USB201.CFIFOCTR)
+#define D0FIFOSEL_1 (USB201.D0FIFOSEL)
+#define D0FIFOCTR_1 (USB201.D0FIFOCTR)
+#define D1FIFOSEL_1 (USB201.D1FIFOSEL)
+#define D1FIFOCTR_1 (USB201.D1FIFOCTR)
+#define INTENB0_1 (USB201.INTENB0)
+#define INTENB1_1 (USB201.INTENB1)
+#define BRDYENB_1 (USB201.BRDYENB)
+#define NRDYENB_1 (USB201.NRDYENB)
+#define BEMPENB_1 (USB201.BEMPENB)
+#define SOFCFG_1 (USB201.SOFCFG)
+#define INTSTS0_1 (USB201.INTSTS0)
+#define INTSTS1_1 (USB201.INTSTS1)
+#define BRDYSTS_1 (USB201.BRDYSTS)
+#define NRDYSTS_1 (USB201.NRDYSTS)
+#define BEMPSTS_1 (USB201.BEMPSTS)
+#define FRMNUM_1 (USB201.FRMNUM)
+#define UFRMNUM_1 (USB201.UFRMNUM)
+#define USBADDR_1 (USB201.USBADDR)
+#define USBREQ_1 (USB201.USBREQ)
+#define USBVAL_1 (USB201.USBVAL)
+#define USBINDX_1 (USB201.USBINDX)
+#define USBLENG_1 (USB201.USBLENG)
+#define DCPCFG_1 (USB201.DCPCFG)
+#define DCPMAXP_1 (USB201.DCPMAXP)
+#define DCPCTR_1 (USB201.DCPCTR)
+#define PIPESEL_1 (USB201.PIPESEL)
+#define PIPECFG_1 (USB201.PIPECFG)
+#define PIPEBUF_1 (USB201.PIPEBUF)
+#define PIPEMAXP_1 (USB201.PIPEMAXP)
+#define PIPEPERI_1 (USB201.PIPEPERI)
+#define PIPE1CTR_1 (USB201.PIPE1CTR)
+#define PIPE2CTR_1 (USB201.PIPE2CTR)
+#define PIPE3CTR_1 (USB201.PIPE3CTR)
+#define PIPE4CTR_1 (USB201.PIPE4CTR)
+#define PIPE5CTR_1 (USB201.PIPE5CTR)
+#define PIPE6CTR_1 (USB201.PIPE6CTR)
+#define PIPE7CTR_1 (USB201.PIPE7CTR)
+#define PIPE8CTR_1 (USB201.PIPE8CTR)
+#define PIPE9CTR_1 (USB201.PIPE9CTR)
+#define PIPEACTR_1 (USB201.PIPEACTR)
+#define PIPEBCTR_1 (USB201.PIPEBCTR)
+#define PIPECCTR_1 (USB201.PIPECCTR)
+#define PIPEDCTR_1 (USB201.PIPEDCTR)
+#define PIPEECTR_1 (USB201.PIPEECTR)
+#define PIPEFCTR_1 (USB201.PIPEFCTR)
+#define PIPE1TRE_1 (USB201.PIPE1TRE)
+#define PIPE1TRN_1 (USB201.PIPE1TRN)
+#define PIPE2TRE_1 (USB201.PIPE2TRE)
+#define PIPE2TRN_1 (USB201.PIPE2TRN)
+#define PIPE3TRE_1 (USB201.PIPE3TRE)
+#define PIPE3TRN_1 (USB201.PIPE3TRN)
+#define PIPE4TRE_1 (USB201.PIPE4TRE)
+#define PIPE4TRN_1 (USB201.PIPE4TRN)
+#define PIPE5TRE_1 (USB201.PIPE5TRE)
+#define PIPE5TRN_1 (USB201.PIPE5TRN)
+#define PIPEBTRE_1 (USB201.PIPEBTRE)
+#define PIPEBTRN_1 (USB201.PIPEBTRN)
+#define PIPECTRE_1 (USB201.PIPECTRE)
+#define PIPECTRN_1 (USB201.PIPECTRN)
+#define PIPEDTRE_1 (USB201.PIPEDTRE)
+#define PIPEDTRN_1 (USB201.PIPEDTRN)
+#define PIPEETRE_1 (USB201.PIPEETRE)
+#define PIPEETRN_1 (USB201.PIPEETRN)
+#define PIPEFTRE_1 (USB201.PIPEFTRE)
+#define PIPEFTRN_1 (USB201.PIPEFTRN)
+#define PIPE9TRE_1 (USB201.PIPE9TRE)
+#define PIPE9TRN_1 (USB201.PIPE9TRN)
+#define PIPEATRE_1 (USB201.PIPEATRE)
+#define PIPEATRN_1 (USB201.PIPEATRN)
+#define DEVADD0_1 (USB201.DEVADD0)
+#define DEVADD1_1 (USB201.DEVADD1)
+#define DEVADD2_1 (USB201.DEVADD2)
+#define DEVADD3_1 (USB201.DEVADD3)
+#define DEVADD4_1 (USB201.DEVADD4)
+#define DEVADD5_1 (USB201.DEVADD5)
+#define DEVADD6_1 (USB201.DEVADD6)
+#define DEVADD7_1 (USB201.DEVADD7)
+#define DEVADD8_1 (USB201.DEVADD8)
+#define DEVADD9_1 (USB201.DEVADD9)
+#define DEVADDA_1 (USB201.DEVADDA)
+#define SUSPMODE_1 (USB201.SUSPMODE)
+#define D0FIFOB0_1 (USB201.D0FIFOB0)
+#define D0FIFOB1_1 (USB201.D0FIFOB1)
+#define D0FIFOB2_1 (USB201.D0FIFOB2)
+#define D0FIFOB3_1 (USB201.D0FIFOB3)
+#define D0FIFOB4_1 (USB201.D0FIFOB4)
+#define D0FIFOB5_1 (USB201.D0FIFOB5)
+#define D0FIFOB6_1 (USB201.D0FIFOB6)
+#define D0FIFOB7_1 (USB201.D0FIFOB7)
+#define D1FIFOB0_1 (USB201.D1FIFOB0)
+#define D1FIFOB1_1 (USB201.D1FIFOB1)
+#define D1FIFOB2_1 (USB201.D1FIFOB2)
+#define D1FIFOB3_1 (USB201.D1FIFOB3)
+#define D1FIFOB4_1 (USB201.D1FIFOB4)
+#define D1FIFOB5_1 (USB201.D1FIFOB5)
+#define D1FIFOB6_1 (USB201.D1FIFOB6)
+#define D1FIFOB7_1 (USB201.D1FIFOB7)
+
+#define USB20_D0FBCFG_COUNT (2)
+#define USB20_D0FIFO_COUNT (2)
+#define USB20_INTENB0_COUNT (2)
+#define USB20_INTSTS0_COUNT (2)
+#define USB20_PIPE1CTR_COUNT (0xF)
+#define USB20_DEVADD0_COUNT (0xB)
+#define USB20_D0FIFOB0_COUNT (0x8)
+
+
+typedef struct st_usb20
+{
+                                                           /* USB20            */
+    volatile uint16_t SYSCFG0;                                /*  SYSCFG0         */
+    volatile uint16_t BUSWAIT;                                /*  BUSWAIT         */
+    volatile uint16_t SYSSTS0;                                /*  SYSSTS0         */
+    volatile uint8_t   dummy1[2];                              /*                  */
+    volatile uint16_t DVSTCTR0;                               /*  DVSTCTR0        */
+    volatile uint8_t   dummy2[2];                              /*                  */
+    volatile uint16_t TESTMODE;                               /*  TESTMODE        */
+    volatile uint8_t   dummy3[2];                              /*                  */
+
+/* #define USB20_D0FBCFG_COUNT (2) */
+    volatile uint16_t D0FBCFG;                                /*  D0FBCFG         */
+    volatile uint16_t D1FBCFG;                                /*  D1FBCFG         */
+    union iodefine_reg32_t  CFIFO;                         /*  CFIFO           */
+
+/* #define USB20_D0FIFO_COUNT (2) */
+    union iodefine_reg32_t  D0FIFO;                        /*  D0FIFO          */
+    union iodefine_reg32_t  D1FIFO;                        /*  D1FIFO          */
+    
+    volatile uint16_t CFIFOSEL;                               /*  CFIFOSEL        */
+    volatile uint16_t CFIFOCTR;                               /*  CFIFOCTR        */
+    volatile uint8_t   dummy4[4];                              /*                  */
+
+/* start of struct st_usb20_from_d0fifosel */
+    volatile uint16_t D0FIFOSEL;                              /*  D0FIFOSEL       */
+    volatile uint16_t D0FIFOCTR;                              /*  D0FIFOCTR       */
+
+/* end of struct st_usb20_from_d0fifosel */
+
+/* start of struct st_usb20_from_d0fifosel */
+    volatile uint16_t D1FIFOSEL;                              /*  D1FIFOSEL       */
+    volatile uint16_t D1FIFOCTR;                              /*  D1FIFOCTR       */
+
+/* end of struct st_usb20_from_d0fifosel */
+
+/* #define USB20_INTENB0_COUNT (2) */
+    volatile uint16_t INTENB0;                                /*  INTENB0         */
+    volatile uint16_t INTENB1;                                /*  INTENB1         */
+    volatile uint8_t   dummy5[2];                              /*                  */
+    volatile uint16_t BRDYENB;                                /*  BRDYENB         */
+    volatile uint16_t NRDYENB;                                /*  NRDYENB         */
+    volatile uint16_t BEMPENB;                                /*  BEMPENB         */
+    volatile uint16_t SOFCFG;                                 /*  SOFCFG          */
+    volatile uint8_t   dummy6[2];                              /*                  */
+
+/* #define USB20_INTSTS0_COUNT (2) */
+    volatile uint16_t INTSTS0;                                /*  INTSTS0         */
+    volatile uint16_t INTSTS1;                                /*  INTSTS1         */
+    volatile uint8_t   dummy7[2];                              /*                  */
+    volatile uint16_t BRDYSTS;                                /*  BRDYSTS         */
+    volatile uint16_t NRDYSTS;                                /*  NRDYSTS         */
+    volatile uint16_t BEMPSTS;                                /*  BEMPSTS         */
+    volatile uint16_t FRMNUM;                                 /*  FRMNUM          */
+    volatile uint16_t UFRMNUM;                                /*  UFRMNUM         */
+    volatile uint16_t USBADDR;                                /*  USBADDR         */
+    volatile uint8_t   dummy8[2];                              /*                  */
+    volatile uint16_t USBREQ;                                 /*  USBREQ          */
+    volatile uint16_t USBVAL;                                 /*  USBVAL          */
+    volatile uint16_t USBINDX;                                /*  USBINDX         */
+    volatile uint16_t USBLENG;                                /*  USBLENG         */
+    volatile uint16_t DCPCFG;                                 /*  DCPCFG          */
+    volatile uint16_t DCPMAXP;                                /*  DCPMAXP         */
+    volatile uint16_t DCPCTR;                                 /*  DCPCTR          */
+    volatile uint8_t   dummy9[2];                              /*                  */
+    volatile uint16_t PIPESEL;                                /*  PIPESEL         */
+    volatile uint8_t   dummy10[2];                             /*                  */
+    volatile uint16_t PIPECFG;                                /*  PIPECFG         */
+    volatile uint16_t PIPEBUF;                                /*  PIPEBUF         */
+    volatile uint16_t PIPEMAXP;                               /*  PIPEMAXP        */
+    volatile uint16_t PIPEPERI;                               /*  PIPEPERI        */
+
+/* #define USB20_PIPE1CTR_COUNT (0xF) */
+    volatile uint16_t PIPE1CTR;                               /*  PIPE1CTR        */
+    volatile uint16_t PIPE2CTR;                               /*  PIPE2CTR        */
+    volatile uint16_t PIPE3CTR;                               /*  PIPE3CTR        */
+    volatile uint16_t PIPE4CTR;                               /*  PIPE4CTR        */
+    volatile uint16_t PIPE5CTR;                               /*  PIPE5CTR        */
+    volatile uint16_t PIPE6CTR;                               /*  PIPE6CTR        */
+    volatile uint16_t PIPE7CTR;                               /*  PIPE7CTR        */
+    volatile uint16_t PIPE8CTR;                               /*  PIPE8CTR        */
+    volatile uint16_t PIPE9CTR;                               /*  PIPE9CTR        */
+    volatile uint16_t PIPEACTR;                               /*  PIPEACTR        */
+    volatile uint16_t PIPEBCTR;                               /*  PIPEBCTR        */
+    volatile uint16_t PIPECCTR;                               /*  PIPECCTR        */
+    volatile uint16_t PIPEDCTR;                               /*  PIPEDCTR        */
+    volatile uint16_t PIPEECTR;                               /*  PIPEECTR        */
+    volatile uint16_t PIPEFCTR;                               /*  PIPEFCTR        */
+    volatile uint8_t   dummy11[2];                             /*                  */
+
+/* start of struct st_usb20_from_pipe1tre */
+    volatile uint16_t PIPE1TRE;                               /*  PIPE1TRE        */
+    volatile uint16_t PIPE1TRN;                               /*  PIPE1TRN        */
+
+/* end of struct st_usb20_from_pipe1tre */
+
+/* start of struct st_usb20_from_pipe1tre */
+    volatile uint16_t PIPE2TRE;                               /*  PIPE2TRE        */
+    volatile uint16_t PIPE2TRN;                               /*  PIPE2TRN        */
+
+/* end of struct st_usb20_from_pipe1tre */
+
+/* start of struct st_usb20_from_pipe1tre */
+    volatile uint16_t PIPE3TRE;                               /*  PIPE3TRE        */
+    volatile uint16_t PIPE3TRN;                               /*  PIPE3TRN        */
+
+/* end of struct st_usb20_from_pipe1tre */
+
+/* start of struct st_usb20_from_pipe1tre */
+    volatile uint16_t PIPE4TRE;                               /*  PIPE4TRE        */
+    volatile uint16_t PIPE4TRN;                               /*  PIPE4TRN        */
+
+/* end of struct st_usb20_from_pipe1tre */
+
+/* start of struct st_usb20_from_pipe1tre */
+    volatile uint16_t PIPE5TRE;                               /*  PIPE5TRE        */
+    volatile uint16_t PIPE5TRN;                               /*  PIPE5TRN        */
+
+/* end of struct st_usb20_from_pipe1tre */
+    volatile uint16_t PIPEBTRE;                               /*  PIPEBTRE        */
+    volatile uint16_t PIPEBTRN;                               /*  PIPEBTRN        */
+    volatile uint16_t PIPECTRE;                               /*  PIPECTRE        */
+    volatile uint16_t PIPECTRN;                               /*  PIPECTRN        */
+    volatile uint16_t PIPEDTRE;                               /*  PIPEDTRE        */
+    volatile uint16_t PIPEDTRN;                               /*  PIPEDTRN        */
+    volatile uint16_t PIPEETRE;                               /*  PIPEETRE        */
+    volatile uint16_t PIPEETRN;                               /*  PIPEETRN        */
+    volatile uint16_t PIPEFTRE;                               /*  PIPEFTRE        */
+    volatile uint16_t PIPEFTRN;                               /*  PIPEFTRN        */
+    volatile uint16_t PIPE9TRE;                               /*  PIPE9TRE        */
+    volatile uint16_t PIPE9TRN;                               /*  PIPE9TRN        */
+    volatile uint16_t PIPEATRE;                               /*  PIPEATRE        */
+    volatile uint16_t PIPEATRN;                               /*  PIPEATRN        */
+    volatile uint8_t   dummy12[16];                            /*                  */
+
+/* #define USB20_DEVADD0_COUNT (0xB) */
+    volatile uint16_t DEVADD0;                                /*  DEVADD0         */
+    volatile uint16_t DEVADD1;                                /*  DEVADD1         */
+    volatile uint16_t DEVADD2;                                /*  DEVADD2         */
+    volatile uint16_t DEVADD3;                                /*  DEVADD3         */
+    volatile uint16_t DEVADD4;                                /*  DEVADD4         */
+    volatile uint16_t DEVADD5;                                /*  DEVADD5         */
+    volatile uint16_t DEVADD6;                                /*  DEVADD6         */
+    volatile uint16_t DEVADD7;                                /*  DEVADD7         */
+    volatile uint16_t DEVADD8;                                /*  DEVADD8         */
+    volatile uint16_t DEVADD9;                                /*  DEVADD9         */
+    volatile uint16_t DEVADDA;                                /*  DEVADDA         */
+    volatile uint8_t   dummy13[28];                            /*                  */
+    volatile uint16_t SUSPMODE;                               /*  SUSPMODE        */
+    volatile uint8_t   dummy14[92];                            /*                  */
+
+/* start of struct st_usb20_from_dmfifob0 */
+    volatile uint32_t  D0FIFOB0;                               /*  D0FIFOB0        */
+    volatile uint32_t  D0FIFOB1;                               /*  D0FIFOB1        */
+    volatile uint32_t  D0FIFOB2;                               /*  D0FIFOB2        */
+    volatile uint32_t  D0FIFOB3;                               /*  D0FIFOB3        */
+    volatile uint32_t  D0FIFOB4;                               /*  D0FIFOB4        */
+    volatile uint32_t  D0FIFOB5;                               /*  D0FIFOB5        */
+    volatile uint32_t  D0FIFOB6;                               /*  D0FIFOB6        */
+    volatile uint32_t  D0FIFOB7;                               /*  D0FIFOB7        */
+
+/* end of struct st_usb20_from_dmfifob0 */
+
+/* start of struct st_usb20_from_dmfifob0 */
+    volatile uint32_t  D1FIFOB0;                               /*  D1FIFOB0        */
+    volatile uint32_t  D1FIFOB1;                               /*  D1FIFOB1        */
+    volatile uint32_t  D1FIFOB2;                               /*  D1FIFOB2        */
+    volatile uint32_t  D1FIFOB3;                               /*  D1FIFOB3        */
+    volatile uint32_t  D1FIFOB4;                               /*  D1FIFOB4        */
+    volatile uint32_t  D1FIFOB5;                               /*  D1FIFOB5        */
+    volatile uint32_t  D1FIFOB6;                               /*  D1FIFOB6        */
+    volatile uint32_t  D1FIFOB7;                               /*  D1FIFOB7        */
+
+/* end of struct st_usb20_from_dmfifob0 */
+} r_io_usb20_t;
+
+
+typedef struct st_usb20_from_d0fifosel
+{
+ 
+    volatile uint16_t D0FIFOSEL;                              /*  D0FIFOSEL       */
+    volatile uint16_t D0FIFOCTR;                              /*  D0FIFOCTR       */
+} r_io_usb20_from_d0fifosel_t;
+
+
+typedef struct st_usb20_from_pipe1tre
+{
+ 
+    volatile uint16_t PIPE1TRE;                               /*  PIPE1TRE        */
+    volatile uint16_t PIPE1TRN;                               /*  PIPE1TRN        */
+} r_io_usb20_from_pipe1tre_t;
+
+
+typedef struct st_usb20_from_dmfifob0
+{
+ 
+
+/* #define USB20_D0FIFOB0_COUNT (0x8) */
+    volatile uint32_t  D0FIFOB0;                               /*  D0FIFOB0        */
+    volatile uint32_t  D0FIFOB1;                               /*  D0FIFOB1        */
+    volatile uint32_t  D0FIFOB2;                               /*  D0FIFOB2        */
+    volatile uint32_t  D0FIFOB3;                               /*  D0FIFOB3        */
+    volatile uint32_t  D0FIFOB4;                               /*  D0FIFOB4        */
+    volatile uint32_t  D0FIFOB5;                               /*  D0FIFOB5        */
+    volatile uint32_t  D0FIFOB6;                               /*  D0FIFOB6        */
+    volatile uint32_t  D0FIFOB7;                               /*  D0FIFOB7        */
+} r_io_usb20_from_dmfifob0_t;
+
+
+/* Channel array defines of USB20 (2)*/
+#ifdef  DECLARE_USB20_CHANNELS
+volatile struct st_usb20*  USB20[ USB20_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    USB20_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_USB20_CHANNELS */
+
+#ifdef  DECLARE_USB20_FROM_D0FIFOB0_CHANNELS
+volatile struct st_usb20_from_dmfifob0*  USB20_FROM_D0FIFOB0[ USB20_COUNT ][ USB20_FROM_D0FIFOB0_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    USB20_FROM_D0FIFOB0_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_USB20_FROM_D0FIFOB0_CHANNELS */
+
+#ifdef  DECLARE_USB20_FROM_PIPE1ATRE_CHANNELS
+volatile struct st_usb20_from_pipe1tre*  USB20_FROM_PIPE1ATRE[ USB20_COUNT ][ USB20_FROM_PIPE1ATRE_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    USB20_FROM_PIPE1ATRE_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_USB20_FROM_PIPE1ATRE_CHANNELS */
+
+#ifdef  DECLARE_USB20_FROM_D0FIFOSEL_CHANNELS
+volatile struct st_usb20_from_d0fifosel*  USB20_FROM_D0FIFOSEL[ USB20_COUNT ][ USB20_FROM_D0FIFOSEL_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    USB20_FROM_D0FIFOSEL_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_USB20_FROM_D0FIFOSEL_CHANNELS */
+/* End of channel array defines of USB20 (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/vdc5_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/vdc5_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/vdc5_iodefine.h	(revision 429)
@@ -0,0 +1,1788 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : vdc5_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef VDC5_IODEFINE_H
+#define VDC5_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define VDC50   (*(struct st_vdc5    *)0xFCFF7400uL) /* VDC50 */
+#define VDC51   (*(struct st_vdc5    *)0xFCFF9400uL) /* VDC51 */
+
+
+/* Start of channel array defines of VDC5 */
+
+/* Channel array defines of VDC5 */
+/*(Sample) value = VDC5[ channel ]->INP_UPDATE; */
+#define VDC5_COUNT  (2)
+#define VDC5_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+    &VDC50, &VDC51 \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+
+
+
+/* Channel array defines of VDC50_FROM_GR2_AB7_ARRAY */
+/*(Sample) value = VDC50_FROM_GR2_AB7_ARRAY[ channel ][ index ]->GR0_AB7; */
+#define VDC50_FROM_GR2_AB7_ARRAY_COUNT  (2)
+#define VDC50_FROM_GR2_AB7_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &VDC50_FROM_GR2_AB7, &VDC50_FROM_GR3_AB7 },{ \
+    &VDC51_FROM_GR2_AB7, &VDC51_FROM_GR3_AB7 \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define VDC50_FROM_GR2_AB7 (*(struct st_vdc5_from_gr0_ab7 *)&VDC50.GR2_AB7) /* VDC50_FROM_GR2_AB7 */
+#define VDC50_FROM_GR3_AB7 (*(struct st_vdc5_from_gr0_ab7 *)&VDC50.GR3_AB7) /* VDC50_FROM_GR3_AB7 */
+#define VDC51_FROM_GR2_AB7 (*(struct st_vdc5_from_gr0_ab7 *)&VDC51.GR2_AB7) /* VDC51_FROM_GR2_AB7 */
+#define VDC51_FROM_GR3_AB7 (*(struct st_vdc5_from_gr0_ab7 *)&VDC51.GR3_AB7) /* VDC51_FROM_GR3_AB7 */
+
+
+
+
+/* Channel array defines of VDC50_FROM_GR2_UPDATE_ARRAY */
+/*(Sample) value = VDC50_FROM_GR2_UPDATE_ARRAY[ channel ][ index ]->GR0_UPDATE; */
+#define VDC50_FROM_GR2_UPDATE_ARRAY_COUNT  (2)
+#define VDC50_FROM_GR2_UPDATE_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &VDC50_FROM_GR2_UPDATE, &VDC50_FROM_GR3_UPDATE },{ \
+    &VDC51_FROM_GR2_UPDATE, &VDC51_FROM_GR3_UPDATE \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define VDC50_FROM_GR2_UPDATE (*(struct st_vdc5_from_gr0_update *)&VDC50.GR2_UPDATE) /* VDC50_FROM_GR2_UPDATE */
+#define VDC50_FROM_GR3_UPDATE (*(struct st_vdc5_from_gr0_update *)&VDC50.GR3_UPDATE) /* VDC50_FROM_GR3_UPDATE */
+#define VDC51_FROM_GR2_UPDATE (*(struct st_vdc5_from_gr0_update *)&VDC51.GR2_UPDATE) /* VDC51_FROM_GR2_UPDATE */
+#define VDC51_FROM_GR3_UPDATE (*(struct st_vdc5_from_gr0_update *)&VDC51.GR3_UPDATE) /* VDC51_FROM_GR3_UPDATE */
+
+
+
+
+/* Channel array defines of VDC50_FROM_SC0_SCL1_PBUF0_ARRAY */
+/*(Sample) value = VDC50_FROM_SC0_SCL1_PBUF0_ARRAY[ channel ][ index ]->SC0_SCL1_PBUF0; */
+#define VDC50_FROM_SC0_SCL1_PBUF0_ARRAY_COUNT  (2)
+#define VDC50_FROM_SC0_SCL1_PBUF0_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &VDC50_FROM_SC0_SCL1_PBUF0, &VDC50_FROM_SC1_SCL1_PBUF0 },{ \
+    &VDC51_FROM_SC0_SCL1_PBUF0, &VDC51_FROM_SC1_SCL1_PBUF0 \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define VDC50_FROM_SC0_SCL1_PBUF0 (*(struct st_vdc5_from_sc0_scl1_pbuf0 *)&VDC50.SC0_SCL1_PBUF0) /* VDC50_FROM_SC0_SCL1_PBUF0 */
+#define VDC50_FROM_SC1_SCL1_PBUF0 (*(struct st_vdc5_from_sc0_scl1_pbuf0 *)&VDC50.SC1_SCL1_PBUF0) /* VDC50_FROM_SC1_SCL1_PBUF0 */
+#define VDC51_FROM_SC0_SCL1_PBUF0 (*(struct st_vdc5_from_sc0_scl1_pbuf0 *)&VDC51.SC0_SCL1_PBUF0) /* VDC51_FROM_SC0_SCL1_PBUF0 */
+#define VDC51_FROM_SC1_SCL1_PBUF0 (*(struct st_vdc5_from_sc0_scl1_pbuf0 *)&VDC51.SC1_SCL1_PBUF0) /* VDC51_FROM_SC1_SCL1_PBUF0 */
+
+
+
+
+/* Channel array defines of VDC50_FROM_SC0_SCL0_UPDATE_ARRAY */
+/*(Sample) value = VDC50_FROM_SC0_SCL0_UPDATE_ARRAY[ channel ][ index ]->SC0_SCL0_UPDATE; */
+#define VDC50_FROM_SC0_SCL0_UPDATE_ARRAY_COUNT  (2)
+#define VDC50_FROM_SC0_SCL0_UPDATE_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &VDC50_FROM_SC0_SCL0_UPDATE, &VDC50_FROM_SC1_SCL0_UPDATE },{ \
+    &VDC51_FROM_SC0_SCL0_UPDATE, &VDC51_FROM_SC1_SCL0_UPDATE \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define VDC50_FROM_SC0_SCL0_UPDATE (*(struct st_vdc5_from_sc0_scl0_update *)&VDC50.SC0_SCL0_UPDATE) /* VDC50_FROM_SC0_SCL0_UPDATE */
+#define VDC50_FROM_SC1_SCL0_UPDATE (*(struct st_vdc5_from_sc0_scl0_update *)&VDC50.SC1_SCL0_UPDATE) /* VDC50_FROM_SC1_SCL0_UPDATE */
+#define VDC51_FROM_SC0_SCL0_UPDATE (*(struct st_vdc5_from_sc0_scl0_update *)&VDC51.SC0_SCL0_UPDATE) /* VDC51_FROM_SC0_SCL0_UPDATE */
+#define VDC51_FROM_SC1_SCL0_UPDATE (*(struct st_vdc5_from_sc0_scl0_update *)&VDC51.SC1_SCL0_UPDATE) /* VDC51_FROM_SC1_SCL0_UPDATE */
+
+
+
+
+/* Channel array defines of VDC50_FROM_ADJ0_UPDATE_ARRAY */
+/*(Sample) value = VDC50_FROM_ADJ0_UPDATE_ARRAY[ channel ][ index ]->ADJ0_UPDATE; */
+#define VDC50_FROM_ADJ0_UPDATE_ARRAY_COUNT  (2)
+#define VDC50_FROM_ADJ0_UPDATE_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &VDC50_FROM_ADJ0_UPDATE, &VDC50_FROM_ADJ1_UPDATE },{ \
+    &VDC51_FROM_ADJ0_UPDATE, &VDC51_FROM_ADJ1_UPDATE \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define VDC50_FROM_ADJ0_UPDATE (*(struct st_vdc5_from_adj0_update *)&VDC50.ADJ0_UPDATE) /* VDC50_FROM_ADJ0_UPDATE */
+#define VDC50_FROM_ADJ1_UPDATE (*(struct st_vdc5_from_adj0_update *)&VDC50.ADJ1_UPDATE) /* VDC50_FROM_ADJ1_UPDATE */
+#define VDC51_FROM_ADJ0_UPDATE (*(struct st_vdc5_from_adj0_update *)&VDC51.ADJ0_UPDATE) /* VDC51_FROM_ADJ0_UPDATE */
+#define VDC51_FROM_ADJ1_UPDATE (*(struct st_vdc5_from_adj0_update *)&VDC51.ADJ1_UPDATE) /* VDC51_FROM_ADJ1_UPDATE */
+
+
+
+
+/* Channel array defines of VDC50_FROM_GR0_AB7_ARRAY */
+/*(Sample) value = VDC50_FROM_GR0_AB7_ARRAY[ channel ][ index ]->GR0_AB7; */
+#define VDC50_FROM_GR0_AB7_ARRAY_COUNT  (2)
+#define VDC50_FROM_GR0_AB7_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &VDC50_FROM_GR0_AB7, &VDC50_FROM_GR1_AB7 },{ \
+    &VDC51_FROM_GR0_AB7, &VDC51_FROM_GR1_AB7 \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define VDC50_FROM_GR0_AB7 (*(struct st_vdc5_from_gr0_ab7 *)&VDC50.GR0_AB7) /* VDC50_FROM_GR0_AB7 */
+#define VDC50_FROM_GR1_AB7 (*(struct st_vdc5_from_gr0_ab7 *)&VDC50.GR1_AB7) /* VDC50_FROM_GR1_AB7 */
+#define VDC51_FROM_GR0_AB7 (*(struct st_vdc5_from_gr0_ab7 *)&VDC51.GR0_AB7) /* VDC51_FROM_GR0_AB7 */
+#define VDC51_FROM_GR1_AB7 (*(struct st_vdc5_from_gr0_ab7 *)&VDC51.GR1_AB7) /* VDC51_FROM_GR1_AB7 */
+
+
+
+
+/* Channel array defines of VDC50_FROM_GR0_UPDATE_ARRAY */
+/*(Sample) value = VDC50_FROM_GR0_UPDATE_ARRAY[ channel ][ index ]->GR0_UPDATE; */
+#define VDC50_FROM_GR0_UPDATE_ARRAY_COUNT  (2)
+#define VDC50_FROM_GR0_UPDATE_ARRAY_ADDRESS_LIST \
+{   /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */ \
+{ \
+    &VDC50_FROM_GR0_UPDATE, &VDC50_FROM_GR1_UPDATE },{ \
+    &VDC51_FROM_GR0_UPDATE, &VDC51_FROM_GR1_UPDATE \
+} \
+}   /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */ /* { } is for MISRA 19.4 */
+#define VDC50_FROM_GR0_UPDATE (*(struct st_vdc5_from_gr0_update *)&VDC50.GR0_UPDATE) /* VDC50_FROM_GR0_UPDATE */
+#define VDC50_FROM_GR1_UPDATE (*(struct st_vdc5_from_gr0_update *)&VDC50.GR1_UPDATE) /* VDC50_FROM_GR1_UPDATE */
+#define VDC51_FROM_GR0_UPDATE (*(struct st_vdc5_from_gr0_update *)&VDC51.GR0_UPDATE) /* VDC51_FROM_GR0_UPDATE */
+#define VDC51_FROM_GR1_UPDATE (*(struct st_vdc5_from_gr0_update *)&VDC51.GR1_UPDATE) /* VDC51_FROM_GR1_UPDATE */
+
+
+/* End of channel array defines of VDC5 */
+
+
+#define VDC50INP_UPDATE (VDC50.INP_UPDATE)
+#define VDC50INP_SEL_CNT (VDC50.INP_SEL_CNT)
+#define VDC50INP_EXT_SYNC_CNT (VDC50.INP_EXT_SYNC_CNT)
+#define VDC50INP_VSYNC_PH_ADJ (VDC50.INP_VSYNC_PH_ADJ)
+#define VDC50INP_DLY_ADJ (VDC50.INP_DLY_ADJ)
+#define VDC50IMGCNT_UPDATE (VDC50.IMGCNT_UPDATE)
+#define VDC50IMGCNT_NR_CNT0 (VDC50.IMGCNT_NR_CNT0)
+#define VDC50IMGCNT_NR_CNT1 (VDC50.IMGCNT_NR_CNT1)
+#define VDC50IMGCNT_MTX_MODE (VDC50.IMGCNT_MTX_MODE)
+#define VDC50IMGCNT_MTX_YG_ADJ0 (VDC50.IMGCNT_MTX_YG_ADJ0)
+#define VDC50IMGCNT_MTX_YG_ADJ1 (VDC50.IMGCNT_MTX_YG_ADJ1)
+#define VDC50IMGCNT_MTX_CBB_ADJ0 (VDC50.IMGCNT_MTX_CBB_ADJ0)
+#define VDC50IMGCNT_MTX_CBB_ADJ1 (VDC50.IMGCNT_MTX_CBB_ADJ1)
+#define VDC50IMGCNT_MTX_CRR_ADJ0 (VDC50.IMGCNT_MTX_CRR_ADJ0)
+#define VDC50IMGCNT_MTX_CRR_ADJ1 (VDC50.IMGCNT_MTX_CRR_ADJ1)
+#define VDC50IMGCNT_DRC_REG (VDC50.IMGCNT_DRC_REG)
+#define VDC50SC0_SCL0_UPDATE (VDC50.SC0_SCL0_UPDATE)
+#define VDC50SC0_SCL0_FRC1 (VDC50.SC0_SCL0_FRC1)
+#define VDC50SC0_SCL0_FRC2 (VDC50.SC0_SCL0_FRC2)
+#define VDC50SC0_SCL0_FRC3 (VDC50.SC0_SCL0_FRC3)
+#define VDC50SC0_SCL0_FRC4 (VDC50.SC0_SCL0_FRC4)
+#define VDC50SC0_SCL0_FRC5 (VDC50.SC0_SCL0_FRC5)
+#define VDC50SC0_SCL0_FRC6 (VDC50.SC0_SCL0_FRC6)
+#define VDC50SC0_SCL0_FRC7 (VDC50.SC0_SCL0_FRC7)
+#define VDC50SC0_SCL0_FRC9 (VDC50.SC0_SCL0_FRC9)
+#define VDC50SC0_SCL0_MON0 (VDC50.SC0_SCL0_MON0)
+#define VDC50SC0_SCL0_INT (VDC50.SC0_SCL0_INT)
+#define VDC50SC0_SCL0_DS1 (VDC50.SC0_SCL0_DS1)
+#define VDC50SC0_SCL0_DS2 (VDC50.SC0_SCL0_DS2)
+#define VDC50SC0_SCL0_DS3 (VDC50.SC0_SCL0_DS3)
+#define VDC50SC0_SCL0_DS4 (VDC50.SC0_SCL0_DS4)
+#define VDC50SC0_SCL0_DS5 (VDC50.SC0_SCL0_DS5)
+#define VDC50SC0_SCL0_DS6 (VDC50.SC0_SCL0_DS6)
+#define VDC50SC0_SCL0_DS7 (VDC50.SC0_SCL0_DS7)
+#define VDC50SC0_SCL0_US1 (VDC50.SC0_SCL0_US1)
+#define VDC50SC0_SCL0_US2 (VDC50.SC0_SCL0_US2)
+#define VDC50SC0_SCL0_US3 (VDC50.SC0_SCL0_US3)
+#define VDC50SC0_SCL0_US4 (VDC50.SC0_SCL0_US4)
+#define VDC50SC0_SCL0_US5 (VDC50.SC0_SCL0_US5)
+#define VDC50SC0_SCL0_US6 (VDC50.SC0_SCL0_US6)
+#define VDC50SC0_SCL0_US7 (VDC50.SC0_SCL0_US7)
+#define VDC50SC0_SCL0_US8 (VDC50.SC0_SCL0_US8)
+#define VDC50SC0_SCL0_OVR1 (VDC50.SC0_SCL0_OVR1)
+#define VDC50SC0_SCL1_UPDATE (VDC50.SC0_SCL1_UPDATE)
+#define VDC50SC0_SCL1_WR1 (VDC50.SC0_SCL1_WR1)
+#define VDC50SC0_SCL1_WR2 (VDC50.SC0_SCL1_WR2)
+#define VDC50SC0_SCL1_WR3 (VDC50.SC0_SCL1_WR3)
+#define VDC50SC0_SCL1_WR4 (VDC50.SC0_SCL1_WR4)
+#define VDC50SC0_SCL1_WR5 (VDC50.SC0_SCL1_WR5)
+#define VDC50SC0_SCL1_WR6 (VDC50.SC0_SCL1_WR6)
+#define VDC50SC0_SCL1_WR7 (VDC50.SC0_SCL1_WR7)
+#define VDC50SC0_SCL1_WR8 (VDC50.SC0_SCL1_WR8)
+#define VDC50SC0_SCL1_WR9 (VDC50.SC0_SCL1_WR9)
+#define VDC50SC0_SCL1_WR10 (VDC50.SC0_SCL1_WR10)
+#define VDC50SC0_SCL1_WR11 (VDC50.SC0_SCL1_WR11)
+#define VDC50SC0_SCL1_MON1 (VDC50.SC0_SCL1_MON1)
+#define VDC50SC0_SCL1_PBUF0 (VDC50.SC0_SCL1_PBUF0)
+#define VDC50SC0_SCL1_PBUF1 (VDC50.SC0_SCL1_PBUF1)
+#define VDC50SC0_SCL1_PBUF2 (VDC50.SC0_SCL1_PBUF2)
+#define VDC50SC0_SCL1_PBUF3 (VDC50.SC0_SCL1_PBUF3)
+#define VDC50SC0_SCL1_PBUF_FLD (VDC50.SC0_SCL1_PBUF_FLD)
+#define VDC50SC0_SCL1_PBUF_CNT (VDC50.SC0_SCL1_PBUF_CNT)
+#define VDC50GR0_UPDATE (VDC50.GR0_UPDATE)
+#define VDC50GR0_FLM_RD (VDC50.GR0_FLM_RD)
+#define VDC50GR0_FLM1 (VDC50.GR0_FLM1)
+#define VDC50GR0_FLM2 (VDC50.GR0_FLM2)
+#define VDC50GR0_FLM3 (VDC50.GR0_FLM3)
+#define VDC50GR0_FLM4 (VDC50.GR0_FLM4)
+#define VDC50GR0_FLM5 (VDC50.GR0_FLM5)
+#define VDC50GR0_FLM6 (VDC50.GR0_FLM6)
+#define VDC50GR0_AB1 (VDC50.GR0_AB1)
+#define VDC50GR0_AB2 (VDC50.GR0_AB2)
+#define VDC50GR0_AB3 (VDC50.GR0_AB3)
+#define VDC50GR0_AB7 (VDC50.GR0_AB7)
+#define VDC50GR0_AB8 (VDC50.GR0_AB8)
+#define VDC50GR0_AB9 (VDC50.GR0_AB9)
+#define VDC50GR0_AB10 (VDC50.GR0_AB10)
+#define VDC50GR0_AB11 (VDC50.GR0_AB11)
+#define VDC50GR0_BASE (VDC50.GR0_BASE)
+#define VDC50GR0_CLUT (VDC50.GR0_CLUT)
+#define VDC50ADJ0_UPDATE (VDC50.ADJ0_UPDATE)
+#define VDC50ADJ0_BKSTR_SET (VDC50.ADJ0_BKSTR_SET)
+#define VDC50ADJ0_ENH_TIM1 (VDC50.ADJ0_ENH_TIM1)
+#define VDC50ADJ0_ENH_TIM2 (VDC50.ADJ0_ENH_TIM2)
+#define VDC50ADJ0_ENH_TIM3 (VDC50.ADJ0_ENH_TIM3)
+#define VDC50ADJ0_ENH_SHP1 (VDC50.ADJ0_ENH_SHP1)
+#define VDC50ADJ0_ENH_SHP2 (VDC50.ADJ0_ENH_SHP2)
+#define VDC50ADJ0_ENH_SHP3 (VDC50.ADJ0_ENH_SHP3)
+#define VDC50ADJ0_ENH_SHP4 (VDC50.ADJ0_ENH_SHP4)
+#define VDC50ADJ0_ENH_SHP5 (VDC50.ADJ0_ENH_SHP5)
+#define VDC50ADJ0_ENH_SHP6 (VDC50.ADJ0_ENH_SHP6)
+#define VDC50ADJ0_ENH_LTI1 (VDC50.ADJ0_ENH_LTI1)
+#define VDC50ADJ0_ENH_LTI2 (VDC50.ADJ0_ENH_LTI2)
+#define VDC50ADJ0_MTX_MODE (VDC50.ADJ0_MTX_MODE)
+#define VDC50ADJ0_MTX_YG_ADJ0 (VDC50.ADJ0_MTX_YG_ADJ0)
+#define VDC50ADJ0_MTX_YG_ADJ1 (VDC50.ADJ0_MTX_YG_ADJ1)
+#define VDC50ADJ0_MTX_CBB_ADJ0 (VDC50.ADJ0_MTX_CBB_ADJ0)
+#define VDC50ADJ0_MTX_CBB_ADJ1 (VDC50.ADJ0_MTX_CBB_ADJ1)
+#define VDC50ADJ0_MTX_CRR_ADJ0 (VDC50.ADJ0_MTX_CRR_ADJ0)
+#define VDC50ADJ0_MTX_CRR_ADJ1 (VDC50.ADJ0_MTX_CRR_ADJ1)
+#define VDC50GR2_UPDATE (VDC50.GR2_UPDATE)
+#define VDC50GR2_FLM_RD (VDC50.GR2_FLM_RD)
+#define VDC50GR2_FLM1 (VDC50.GR2_FLM1)
+#define VDC50GR2_FLM2 (VDC50.GR2_FLM2)
+#define VDC50GR2_FLM3 (VDC50.GR2_FLM3)
+#define VDC50GR2_FLM4 (VDC50.GR2_FLM4)
+#define VDC50GR2_FLM5 (VDC50.GR2_FLM5)
+#define VDC50GR2_FLM6 (VDC50.GR2_FLM6)
+#define VDC50GR2_AB1 (VDC50.GR2_AB1)
+#define VDC50GR2_AB2 (VDC50.GR2_AB2)
+#define VDC50GR2_AB3 (VDC50.GR2_AB3)
+#define VDC50GR2_AB4 (VDC50.GR2_AB4)
+#define VDC50GR2_AB5 (VDC50.GR2_AB5)
+#define VDC50GR2_AB6 (VDC50.GR2_AB6)
+#define VDC50GR2_AB7 (VDC50.GR2_AB7)
+#define VDC50GR2_AB8 (VDC50.GR2_AB8)
+#define VDC50GR2_AB9 (VDC50.GR2_AB9)
+#define VDC50GR2_AB10 (VDC50.GR2_AB10)
+#define VDC50GR2_AB11 (VDC50.GR2_AB11)
+#define VDC50GR2_BASE (VDC50.GR2_BASE)
+#define VDC50GR2_CLUT (VDC50.GR2_CLUT)
+#define VDC50GR2_MON (VDC50.GR2_MON)
+#define VDC50GR3_UPDATE (VDC50.GR3_UPDATE)
+#define VDC50GR3_FLM_RD (VDC50.GR3_FLM_RD)
+#define VDC50GR3_FLM1 (VDC50.GR3_FLM1)
+#define VDC50GR3_FLM2 (VDC50.GR3_FLM2)
+#define VDC50GR3_FLM3 (VDC50.GR3_FLM3)
+#define VDC50GR3_FLM4 (VDC50.GR3_FLM4)
+#define VDC50GR3_FLM5 (VDC50.GR3_FLM5)
+#define VDC50GR3_FLM6 (VDC50.GR3_FLM6)
+#define VDC50GR3_AB1 (VDC50.GR3_AB1)
+#define VDC50GR3_AB2 (VDC50.GR3_AB2)
+#define VDC50GR3_AB3 (VDC50.GR3_AB3)
+#define VDC50GR3_AB4 (VDC50.GR3_AB4)
+#define VDC50GR3_AB5 (VDC50.GR3_AB5)
+#define VDC50GR3_AB6 (VDC50.GR3_AB6)
+#define VDC50GR3_AB7 (VDC50.GR3_AB7)
+#define VDC50GR3_AB8 (VDC50.GR3_AB8)
+#define VDC50GR3_AB9 (VDC50.GR3_AB9)
+#define VDC50GR3_AB10 (VDC50.GR3_AB10)
+#define VDC50GR3_AB11 (VDC50.GR3_AB11)
+#define VDC50GR3_BASE (VDC50.GR3_BASE)
+#define VDC50GR3_CLUT_INT (VDC50.GR3_CLUT_INT)
+#define VDC50GR3_MON (VDC50.GR3_MON)
+#define VDC50GAM_G_UPDATE (VDC50.GAM_G_UPDATE)
+#define VDC50GAM_SW (VDC50.GAM_SW)
+#define VDC50GAM_G_LUT1 (VDC50.GAM_G_LUT1)
+#define VDC50GAM_G_LUT2 (VDC50.GAM_G_LUT2)
+#define VDC50GAM_G_LUT3 (VDC50.GAM_G_LUT3)
+#define VDC50GAM_G_LUT4 (VDC50.GAM_G_LUT4)
+#define VDC50GAM_G_LUT5 (VDC50.GAM_G_LUT5)
+#define VDC50GAM_G_LUT6 (VDC50.GAM_G_LUT6)
+#define VDC50GAM_G_LUT7 (VDC50.GAM_G_LUT7)
+#define VDC50GAM_G_LUT8 (VDC50.GAM_G_LUT8)
+#define VDC50GAM_G_LUT9 (VDC50.GAM_G_LUT9)
+#define VDC50GAM_G_LUT10 (VDC50.GAM_G_LUT10)
+#define VDC50GAM_G_LUT11 (VDC50.GAM_G_LUT11)
+#define VDC50GAM_G_LUT12 (VDC50.GAM_G_LUT12)
+#define VDC50GAM_G_LUT13 (VDC50.GAM_G_LUT13)
+#define VDC50GAM_G_LUT14 (VDC50.GAM_G_LUT14)
+#define VDC50GAM_G_LUT15 (VDC50.GAM_G_LUT15)
+#define VDC50GAM_G_LUT16 (VDC50.GAM_G_LUT16)
+#define VDC50GAM_G_AREA1 (VDC50.GAM_G_AREA1)
+#define VDC50GAM_G_AREA2 (VDC50.GAM_G_AREA2)
+#define VDC50GAM_G_AREA3 (VDC50.GAM_G_AREA3)
+#define VDC50GAM_G_AREA4 (VDC50.GAM_G_AREA4)
+#define VDC50GAM_G_AREA5 (VDC50.GAM_G_AREA5)
+#define VDC50GAM_G_AREA6 (VDC50.GAM_G_AREA6)
+#define VDC50GAM_G_AREA7 (VDC50.GAM_G_AREA7)
+#define VDC50GAM_G_AREA8 (VDC50.GAM_G_AREA8)
+#define VDC50GAM_B_UPDATE (VDC50.GAM_B_UPDATE)
+#define VDC50GAM_B_LUT1 (VDC50.GAM_B_LUT1)
+#define VDC50GAM_B_LUT2 (VDC50.GAM_B_LUT2)
+#define VDC50GAM_B_LUT3 (VDC50.GAM_B_LUT3)
+#define VDC50GAM_B_LUT4 (VDC50.GAM_B_LUT4)
+#define VDC50GAM_B_LUT5 (VDC50.GAM_B_LUT5)
+#define VDC50GAM_B_LUT6 (VDC50.GAM_B_LUT6)
+#define VDC50GAM_B_LUT7 (VDC50.GAM_B_LUT7)
+#define VDC50GAM_B_LUT8 (VDC50.GAM_B_LUT8)
+#define VDC50GAM_B_LUT9 (VDC50.GAM_B_LUT9)
+#define VDC50GAM_B_LUT10 (VDC50.GAM_B_LUT10)
+#define VDC50GAM_B_LUT11 (VDC50.GAM_B_LUT11)
+#define VDC50GAM_B_LUT12 (VDC50.GAM_B_LUT12)
+#define VDC50GAM_B_LUT13 (VDC50.GAM_B_LUT13)
+#define VDC50GAM_B_LUT14 (VDC50.GAM_B_LUT14)
+#define VDC50GAM_B_LUT15 (VDC50.GAM_B_LUT15)
+#define VDC50GAM_B_LUT16 (VDC50.GAM_B_LUT16)
+#define VDC50GAM_B_AREA1 (VDC50.GAM_B_AREA1)
+#define VDC50GAM_B_AREA2 (VDC50.GAM_B_AREA2)
+#define VDC50GAM_B_AREA3 (VDC50.GAM_B_AREA3)
+#define VDC50GAM_B_AREA4 (VDC50.GAM_B_AREA4)
+#define VDC50GAM_B_AREA5 (VDC50.GAM_B_AREA5)
+#define VDC50GAM_B_AREA6 (VDC50.GAM_B_AREA6)
+#define VDC50GAM_B_AREA7 (VDC50.GAM_B_AREA7)
+#define VDC50GAM_B_AREA8 (VDC50.GAM_B_AREA8)
+#define VDC50GAM_R_UPDATE (VDC50.GAM_R_UPDATE)
+#define VDC50GAM_R_LUT1 (VDC50.GAM_R_LUT1)
+#define VDC50GAM_R_LUT2 (VDC50.GAM_R_LUT2)
+#define VDC50GAM_R_LUT3 (VDC50.GAM_R_LUT3)
+#define VDC50GAM_R_LUT4 (VDC50.GAM_R_LUT4)
+#define VDC50GAM_R_LUT5 (VDC50.GAM_R_LUT5)
+#define VDC50GAM_R_LUT6 (VDC50.GAM_R_LUT6)
+#define VDC50GAM_R_LUT7 (VDC50.GAM_R_LUT7)
+#define VDC50GAM_R_LUT8 (VDC50.GAM_R_LUT8)
+#define VDC50GAM_R_LUT9 (VDC50.GAM_R_LUT9)
+#define VDC50GAM_R_LUT10 (VDC50.GAM_R_LUT10)
+#define VDC50GAM_R_LUT11 (VDC50.GAM_R_LUT11)
+#define VDC50GAM_R_LUT12 (VDC50.GAM_R_LUT12)
+#define VDC50GAM_R_LUT13 (VDC50.GAM_R_LUT13)
+#define VDC50GAM_R_LUT14 (VDC50.GAM_R_LUT14)
+#define VDC50GAM_R_LUT15 (VDC50.GAM_R_LUT15)
+#define VDC50GAM_R_LUT16 (VDC50.GAM_R_LUT16)
+#define VDC50GAM_R_AREA1 (VDC50.GAM_R_AREA1)
+#define VDC50GAM_R_AREA2 (VDC50.GAM_R_AREA2)
+#define VDC50GAM_R_AREA3 (VDC50.GAM_R_AREA3)
+#define VDC50GAM_R_AREA4 (VDC50.GAM_R_AREA4)
+#define VDC50GAM_R_AREA5 (VDC50.GAM_R_AREA5)
+#define VDC50GAM_R_AREA6 (VDC50.GAM_R_AREA6)
+#define VDC50GAM_R_AREA7 (VDC50.GAM_R_AREA7)
+#define VDC50GAM_R_AREA8 (VDC50.GAM_R_AREA8)
+#define VDC50TCON_UPDATE (VDC50.TCON_UPDATE)
+#define VDC50TCON_TIM (VDC50.TCON_TIM)
+#define VDC50TCON_TIM_STVA1 (VDC50.TCON_TIM_STVA1)
+#define VDC50TCON_TIM_STVA2 (VDC50.TCON_TIM_STVA2)
+#define VDC50TCON_TIM_STVB1 (VDC50.TCON_TIM_STVB1)
+#define VDC50TCON_TIM_STVB2 (VDC50.TCON_TIM_STVB2)
+#define VDC50TCON_TIM_STH1 (VDC50.TCON_TIM_STH1)
+#define VDC50TCON_TIM_STH2 (VDC50.TCON_TIM_STH2)
+#define VDC50TCON_TIM_STB1 (VDC50.TCON_TIM_STB1)
+#define VDC50TCON_TIM_STB2 (VDC50.TCON_TIM_STB2)
+#define VDC50TCON_TIM_CPV1 (VDC50.TCON_TIM_CPV1)
+#define VDC50TCON_TIM_CPV2 (VDC50.TCON_TIM_CPV2)
+#define VDC50TCON_TIM_POLA1 (VDC50.TCON_TIM_POLA1)
+#define VDC50TCON_TIM_POLA2 (VDC50.TCON_TIM_POLA2)
+#define VDC50TCON_TIM_POLB1 (VDC50.TCON_TIM_POLB1)
+#define VDC50TCON_TIM_POLB2 (VDC50.TCON_TIM_POLB2)
+#define VDC50TCON_TIM_DE (VDC50.TCON_TIM_DE)
+#define VDC50OUT_UPDATE (VDC50.OUT_UPDATE)
+#define VDC50OUT_SET (VDC50.OUT_SET)
+#define VDC50OUT_BRIGHT1 (VDC50.OUT_BRIGHT1)
+#define VDC50OUT_BRIGHT2 (VDC50.OUT_BRIGHT2)
+#define VDC50OUT_CONTRAST (VDC50.OUT_CONTRAST)
+#define VDC50OUT_PDTHA (VDC50.OUT_PDTHA)
+#define VDC50OUT_CLK_PHASE (VDC50.OUT_CLK_PHASE)
+#define VDC50SYSCNT_INT1 (VDC50.SYSCNT_INT1)
+#define VDC50SYSCNT_INT2 (VDC50.SYSCNT_INT2)
+#define VDC50SYSCNT_INT3 (VDC50.SYSCNT_INT3)
+#define VDC50SYSCNT_INT4 (VDC50.SYSCNT_INT4)
+#define VDC50SYSCNT_INT5 (VDC50.SYSCNT_INT5)
+#define VDC50SYSCNT_INT6 (VDC50.SYSCNT_INT6)
+#define VDC50SYSCNT_PANEL_CLK (VDC50.SYSCNT_PANEL_CLK)
+#define VDC50SYSCNT_CLUT (VDC50.SYSCNT_CLUT)
+#define VDC50SC1_SCL0_UPDATE (VDC50.SC1_SCL0_UPDATE)
+#define VDC50SC1_SCL0_FRC1 (VDC50.SC1_SCL0_FRC1)
+#define VDC50SC1_SCL0_FRC2 (VDC50.SC1_SCL0_FRC2)
+#define VDC50SC1_SCL0_FRC3 (VDC50.SC1_SCL0_FRC3)
+#define VDC50SC1_SCL0_FRC4 (VDC50.SC1_SCL0_FRC4)
+#define VDC50SC1_SCL0_FRC5 (VDC50.SC1_SCL0_FRC5)
+#define VDC50SC1_SCL0_FRC6 (VDC50.SC1_SCL0_FRC6)
+#define VDC50SC1_SCL0_FRC7 (VDC50.SC1_SCL0_FRC7)
+#define VDC50SC1_SCL0_FRC9 (VDC50.SC1_SCL0_FRC9)
+#define VDC50SC1_SCL0_MON0 (VDC50.SC1_SCL0_MON0)
+#define VDC50SC1_SCL0_INT (VDC50.SC1_SCL0_INT)
+#define VDC50SC1_SCL0_DS1 (VDC50.SC1_SCL0_DS1)
+#define VDC50SC1_SCL0_DS2 (VDC50.SC1_SCL0_DS2)
+#define VDC50SC1_SCL0_DS3 (VDC50.SC1_SCL0_DS3)
+#define VDC50SC1_SCL0_DS4 (VDC50.SC1_SCL0_DS4)
+#define VDC50SC1_SCL0_DS5 (VDC50.SC1_SCL0_DS5)
+#define VDC50SC1_SCL0_DS6 (VDC50.SC1_SCL0_DS6)
+#define VDC50SC1_SCL0_DS7 (VDC50.SC1_SCL0_DS7)
+#define VDC50SC1_SCL0_US1 (VDC50.SC1_SCL0_US1)
+#define VDC50SC1_SCL0_US2 (VDC50.SC1_SCL0_US2)
+#define VDC50SC1_SCL0_US3 (VDC50.SC1_SCL0_US3)
+#define VDC50SC1_SCL0_US4 (VDC50.SC1_SCL0_US4)
+#define VDC50SC1_SCL0_US5 (VDC50.SC1_SCL0_US5)
+#define VDC50SC1_SCL0_US6 (VDC50.SC1_SCL0_US6)
+#define VDC50SC1_SCL0_US7 (VDC50.SC1_SCL0_US7)
+#define VDC50SC1_SCL0_US8 (VDC50.SC1_SCL0_US8)
+#define VDC50SC1_SCL0_OVR1 (VDC50.SC1_SCL0_OVR1)
+#define VDC50SC1_SCL1_UPDATE (VDC50.SC1_SCL1_UPDATE)
+#define VDC50SC1_SCL1_WR1 (VDC50.SC1_SCL1_WR1)
+#define VDC50SC1_SCL1_WR2 (VDC50.SC1_SCL1_WR2)
+#define VDC50SC1_SCL1_WR3 (VDC50.SC1_SCL1_WR3)
+#define VDC50SC1_SCL1_WR4 (VDC50.SC1_SCL1_WR4)
+#define VDC50SC1_SCL1_WR5 (VDC50.SC1_SCL1_WR5)
+#define VDC50SC1_SCL1_WR6 (VDC50.SC1_SCL1_WR6)
+#define VDC50SC1_SCL1_WR7 (VDC50.SC1_SCL1_WR7)
+#define VDC50SC1_SCL1_WR8 (VDC50.SC1_SCL1_WR8)
+#define VDC50SC1_SCL1_WR9 (VDC50.SC1_SCL1_WR9)
+#define VDC50SC1_SCL1_WR10 (VDC50.SC1_SCL1_WR10)
+#define VDC50SC1_SCL1_WR11 (VDC50.SC1_SCL1_WR11)
+#define VDC50SC1_SCL1_MON1 (VDC50.SC1_SCL1_MON1)
+#define VDC50SC1_SCL1_PBUF0 (VDC50.SC1_SCL1_PBUF0)
+#define VDC50SC1_SCL1_PBUF1 (VDC50.SC1_SCL1_PBUF1)
+#define VDC50SC1_SCL1_PBUF2 (VDC50.SC1_SCL1_PBUF2)
+#define VDC50SC1_SCL1_PBUF3 (VDC50.SC1_SCL1_PBUF3)
+#define VDC50SC1_SCL1_PBUF_FLD (VDC50.SC1_SCL1_PBUF_FLD)
+#define VDC50SC1_SCL1_PBUF_CNT (VDC50.SC1_SCL1_PBUF_CNT)
+#define VDC50GR1_UPDATE (VDC50.GR1_UPDATE)
+#define VDC50GR1_FLM_RD (VDC50.GR1_FLM_RD)
+#define VDC50GR1_FLM1 (VDC50.GR1_FLM1)
+#define VDC50GR1_FLM2 (VDC50.GR1_FLM2)
+#define VDC50GR1_FLM3 (VDC50.GR1_FLM3)
+#define VDC50GR1_FLM4 (VDC50.GR1_FLM4)
+#define VDC50GR1_FLM5 (VDC50.GR1_FLM5)
+#define VDC50GR1_FLM6 (VDC50.GR1_FLM6)
+#define VDC50GR1_AB1 (VDC50.GR1_AB1)
+#define VDC50GR1_AB2 (VDC50.GR1_AB2)
+#define VDC50GR1_AB3 (VDC50.GR1_AB3)
+#define VDC50GR1_AB4 (VDC50.GR1_AB4)
+#define VDC50GR1_AB5 (VDC50.GR1_AB5)
+#define VDC50GR1_AB6 (VDC50.GR1_AB6)
+#define VDC50GR1_AB7 (VDC50.GR1_AB7)
+#define VDC50GR1_AB8 (VDC50.GR1_AB8)
+#define VDC50GR1_AB9 (VDC50.GR1_AB9)
+#define VDC50GR1_AB10 (VDC50.GR1_AB10)
+#define VDC50GR1_AB11 (VDC50.GR1_AB11)
+#define VDC50GR1_BASE (VDC50.GR1_BASE)
+#define VDC50GR1_CLUT (VDC50.GR1_CLUT)
+#define VDC50GR1_MON (VDC50.GR1_MON)
+#define VDC50ADJ1_UPDATE (VDC50.ADJ1_UPDATE)
+#define VDC50ADJ1_BKSTR_SET (VDC50.ADJ1_BKSTR_SET)
+#define VDC50ADJ1_ENH_TIM1 (VDC50.ADJ1_ENH_TIM1)
+#define VDC50ADJ1_ENH_TIM2 (VDC50.ADJ1_ENH_TIM2)
+#define VDC50ADJ1_ENH_TIM3 (VDC50.ADJ1_ENH_TIM3)
+#define VDC50ADJ1_ENH_SHP1 (VDC50.ADJ1_ENH_SHP1)
+#define VDC50ADJ1_ENH_SHP2 (VDC50.ADJ1_ENH_SHP2)
+#define VDC50ADJ1_ENH_SHP3 (VDC50.ADJ1_ENH_SHP3)
+#define VDC50ADJ1_ENH_SHP4 (VDC50.ADJ1_ENH_SHP4)
+#define VDC50ADJ1_ENH_SHP5 (VDC50.ADJ1_ENH_SHP5)
+#define VDC50ADJ1_ENH_SHP6 (VDC50.ADJ1_ENH_SHP6)
+#define VDC50ADJ1_ENH_LTI1 (VDC50.ADJ1_ENH_LTI1)
+#define VDC50ADJ1_ENH_LTI2 (VDC50.ADJ1_ENH_LTI2)
+#define VDC50ADJ1_MTX_MODE (VDC50.ADJ1_MTX_MODE)
+#define VDC50ADJ1_MTX_YG_ADJ0 (VDC50.ADJ1_MTX_YG_ADJ0)
+#define VDC50ADJ1_MTX_YG_ADJ1 (VDC50.ADJ1_MTX_YG_ADJ1)
+#define VDC50ADJ1_MTX_CBB_ADJ0 (VDC50.ADJ1_MTX_CBB_ADJ0)
+#define VDC50ADJ1_MTX_CBB_ADJ1 (VDC50.ADJ1_MTX_CBB_ADJ1)
+#define VDC50ADJ1_MTX_CRR_ADJ0 (VDC50.ADJ1_MTX_CRR_ADJ0)
+#define VDC50ADJ1_MTX_CRR_ADJ1 (VDC50.ADJ1_MTX_CRR_ADJ1)
+#define VDC50GR_VIN_UPDATE (VDC50.GR_VIN_UPDATE)
+#define VDC50GR_VIN_AB1 (VDC50.GR_VIN_AB1)
+#define VDC50GR_VIN_AB2 (VDC50.GR_VIN_AB2)
+#define VDC50GR_VIN_AB3 (VDC50.GR_VIN_AB3)
+#define VDC50GR_VIN_AB4 (VDC50.GR_VIN_AB4)
+#define VDC50GR_VIN_AB5 (VDC50.GR_VIN_AB5)
+#define VDC50GR_VIN_AB6 (VDC50.GR_VIN_AB6)
+#define VDC50GR_VIN_AB7 (VDC50.GR_VIN_AB7)
+#define VDC50GR_VIN_BASE (VDC50.GR_VIN_BASE)
+#define VDC50GR_VIN_MON (VDC50.GR_VIN_MON)
+#define VDC50OIR_SCL0_UPDATE (VDC50.OIR_SCL0_UPDATE)
+#define VDC50OIR_SCL0_FRC1 (VDC50.OIR_SCL0_FRC1)
+#define VDC50OIR_SCL0_FRC2 (VDC50.OIR_SCL0_FRC2)
+#define VDC50OIR_SCL0_FRC3 (VDC50.OIR_SCL0_FRC3)
+#define VDC50OIR_SCL0_FRC4 (VDC50.OIR_SCL0_FRC4)
+#define VDC50OIR_SCL0_FRC5 (VDC50.OIR_SCL0_FRC5)
+#define VDC50OIR_SCL0_FRC6 (VDC50.OIR_SCL0_FRC6)
+#define VDC50OIR_SCL0_FRC7 (VDC50.OIR_SCL0_FRC7)
+#define VDC50OIR_SCL0_DS1 (VDC50.OIR_SCL0_DS1)
+#define VDC50OIR_SCL0_DS2 (VDC50.OIR_SCL0_DS2)
+#define VDC50OIR_SCL0_DS3 (VDC50.OIR_SCL0_DS3)
+#define VDC50OIR_SCL0_DS7 (VDC50.OIR_SCL0_DS7)
+#define VDC50OIR_SCL0_US1 (VDC50.OIR_SCL0_US1)
+#define VDC50OIR_SCL0_US2 (VDC50.OIR_SCL0_US2)
+#define VDC50OIR_SCL0_US3 (VDC50.OIR_SCL0_US3)
+#define VDC50OIR_SCL0_US8 (VDC50.OIR_SCL0_US8)
+#define VDC50OIR_SCL0_OVR1 (VDC50.OIR_SCL0_OVR1)
+#define VDC50OIR_SCL1_UPDATE (VDC50.OIR_SCL1_UPDATE)
+#define VDC50OIR_SCL1_WR1 (VDC50.OIR_SCL1_WR1)
+#define VDC50OIR_SCL1_WR2 (VDC50.OIR_SCL1_WR2)
+#define VDC50OIR_SCL1_WR3 (VDC50.OIR_SCL1_WR3)
+#define VDC50OIR_SCL1_WR4 (VDC50.OIR_SCL1_WR4)
+#define VDC50OIR_SCL1_WR5 (VDC50.OIR_SCL1_WR5)
+#define VDC50OIR_SCL1_WR6 (VDC50.OIR_SCL1_WR6)
+#define VDC50OIR_SCL1_WR7 (VDC50.OIR_SCL1_WR7)
+#define VDC50GR_OIR_UPDATE (VDC50.GR_OIR_UPDATE)
+#define VDC50GR_OIR_FLM_RD (VDC50.GR_OIR_FLM_RD)
+#define VDC50GR_OIR_FLM1 (VDC50.GR_OIR_FLM1)
+#define VDC50GR_OIR_FLM2 (VDC50.GR_OIR_FLM2)
+#define VDC50GR_OIR_FLM3 (VDC50.GR_OIR_FLM3)
+#define VDC50GR_OIR_FLM4 (VDC50.GR_OIR_FLM4)
+#define VDC50GR_OIR_FLM5 (VDC50.GR_OIR_FLM5)
+#define VDC50GR_OIR_FLM6 (VDC50.GR_OIR_FLM6)
+#define VDC50GR_OIR_AB1 (VDC50.GR_OIR_AB1)
+#define VDC50GR_OIR_AB2 (VDC50.GR_OIR_AB2)
+#define VDC50GR_OIR_AB3 (VDC50.GR_OIR_AB3)
+#define VDC50GR_OIR_AB7 (VDC50.GR_OIR_AB7)
+#define VDC50GR_OIR_AB8 (VDC50.GR_OIR_AB8)
+#define VDC50GR_OIR_AB9 (VDC50.GR_OIR_AB9)
+#define VDC50GR_OIR_AB10 (VDC50.GR_OIR_AB10)
+#define VDC50GR_OIR_AB11 (VDC50.GR_OIR_AB11)
+#define VDC50GR_OIR_BASE (VDC50.GR_OIR_BASE)
+#define VDC50GR_OIR_CLUT (VDC50.GR_OIR_CLUT)
+#define VDC50GR_OIR_MON (VDC50.GR_OIR_MON)
+#define VDC51INP_UPDATE (VDC51.INP_UPDATE)
+#define VDC51INP_SEL_CNT (VDC51.INP_SEL_CNT)
+#define VDC51INP_EXT_SYNC_CNT (VDC51.INP_EXT_SYNC_CNT)
+#define VDC51INP_VSYNC_PH_ADJ (VDC51.INP_VSYNC_PH_ADJ)
+#define VDC51INP_DLY_ADJ (VDC51.INP_DLY_ADJ)
+#define VDC51IMGCNT_UPDATE (VDC51.IMGCNT_UPDATE)
+#define VDC51IMGCNT_NR_CNT0 (VDC51.IMGCNT_NR_CNT0)
+#define VDC51IMGCNT_NR_CNT1 (VDC51.IMGCNT_NR_CNT1)
+#define VDC51IMGCNT_MTX_MODE (VDC51.IMGCNT_MTX_MODE)
+#define VDC51IMGCNT_MTX_YG_ADJ0 (VDC51.IMGCNT_MTX_YG_ADJ0)
+#define VDC51IMGCNT_MTX_YG_ADJ1 (VDC51.IMGCNT_MTX_YG_ADJ1)
+#define VDC51IMGCNT_MTX_CBB_ADJ0 (VDC51.IMGCNT_MTX_CBB_ADJ0)
+#define VDC51IMGCNT_MTX_CBB_ADJ1 (VDC51.IMGCNT_MTX_CBB_ADJ1)
+#define VDC51IMGCNT_MTX_CRR_ADJ0 (VDC51.IMGCNT_MTX_CRR_ADJ0)
+#define VDC51IMGCNT_MTX_CRR_ADJ1 (VDC51.IMGCNT_MTX_CRR_ADJ1)
+#define VDC51IMGCNT_DRC_REG (VDC51.IMGCNT_DRC_REG)
+#define VDC51SC0_SCL0_UPDATE (VDC51.SC0_SCL0_UPDATE)
+#define VDC51SC0_SCL0_FRC1 (VDC51.SC0_SCL0_FRC1)
+#define VDC51SC0_SCL0_FRC2 (VDC51.SC0_SCL0_FRC2)
+#define VDC51SC0_SCL0_FRC3 (VDC51.SC0_SCL0_FRC3)
+#define VDC51SC0_SCL0_FRC4 (VDC51.SC0_SCL0_FRC4)
+#define VDC51SC0_SCL0_FRC5 (VDC51.SC0_SCL0_FRC5)
+#define VDC51SC0_SCL0_FRC6 (VDC51.SC0_SCL0_FRC6)
+#define VDC51SC0_SCL0_FRC7 (VDC51.SC0_SCL0_FRC7)
+#define VDC51SC0_SCL0_FRC9 (VDC51.SC0_SCL0_FRC9)
+#define VDC51SC0_SCL0_MON0 (VDC51.SC0_SCL0_MON0)
+#define VDC51SC0_SCL0_INT (VDC51.SC0_SCL0_INT)
+#define VDC51SC0_SCL0_DS1 (VDC51.SC0_SCL0_DS1)
+#define VDC51SC0_SCL0_DS2 (VDC51.SC0_SCL0_DS2)
+#define VDC51SC0_SCL0_DS3 (VDC51.SC0_SCL0_DS3)
+#define VDC51SC0_SCL0_DS4 (VDC51.SC0_SCL0_DS4)
+#define VDC51SC0_SCL0_DS5 (VDC51.SC0_SCL0_DS5)
+#define VDC51SC0_SCL0_DS6 (VDC51.SC0_SCL0_DS6)
+#define VDC51SC0_SCL0_DS7 (VDC51.SC0_SCL0_DS7)
+#define VDC51SC0_SCL0_US1 (VDC51.SC0_SCL0_US1)
+#define VDC51SC0_SCL0_US2 (VDC51.SC0_SCL0_US2)
+#define VDC51SC0_SCL0_US3 (VDC51.SC0_SCL0_US3)
+#define VDC51SC0_SCL0_US4 (VDC51.SC0_SCL0_US4)
+#define VDC51SC0_SCL0_US5 (VDC51.SC0_SCL0_US5)
+#define VDC51SC0_SCL0_US6 (VDC51.SC0_SCL0_US6)
+#define VDC51SC0_SCL0_US7 (VDC51.SC0_SCL0_US7)
+#define VDC51SC0_SCL0_US8 (VDC51.SC0_SCL0_US8)
+#define VDC51SC0_SCL0_OVR1 (VDC51.SC0_SCL0_OVR1)
+#define VDC51SC0_SCL1_UPDATE (VDC51.SC0_SCL1_UPDATE)
+#define VDC51SC0_SCL1_WR1 (VDC51.SC0_SCL1_WR1)
+#define VDC51SC0_SCL1_WR2 (VDC51.SC0_SCL1_WR2)
+#define VDC51SC0_SCL1_WR3 (VDC51.SC0_SCL1_WR3)
+#define VDC51SC0_SCL1_WR4 (VDC51.SC0_SCL1_WR4)
+#define VDC51SC0_SCL1_WR5 (VDC51.SC0_SCL1_WR5)
+#define VDC51SC0_SCL1_WR6 (VDC51.SC0_SCL1_WR6)
+#define VDC51SC0_SCL1_WR7 (VDC51.SC0_SCL1_WR7)
+#define VDC51SC0_SCL1_WR8 (VDC51.SC0_SCL1_WR8)
+#define VDC51SC0_SCL1_WR9 (VDC51.SC0_SCL1_WR9)
+#define VDC51SC0_SCL1_WR10 (VDC51.SC0_SCL1_WR10)
+#define VDC51SC0_SCL1_WR11 (VDC51.SC0_SCL1_WR11)
+#define VDC51SC0_SCL1_MON1 (VDC51.SC0_SCL1_MON1)
+#define VDC51SC0_SCL1_PBUF0 (VDC51.SC0_SCL1_PBUF0)
+#define VDC51SC0_SCL1_PBUF1 (VDC51.SC0_SCL1_PBUF1)
+#define VDC51SC0_SCL1_PBUF2 (VDC51.SC0_SCL1_PBUF2)
+#define VDC51SC0_SCL1_PBUF3 (VDC51.SC0_SCL1_PBUF3)
+#define VDC51SC0_SCL1_PBUF_FLD (VDC51.SC0_SCL1_PBUF_FLD)
+#define VDC51SC0_SCL1_PBUF_CNT (VDC51.SC0_SCL1_PBUF_CNT)
+#define VDC51GR0_UPDATE (VDC51.GR0_UPDATE)
+#define VDC51GR0_FLM_RD (VDC51.GR0_FLM_RD)
+#define VDC51GR0_FLM1 (VDC51.GR0_FLM1)
+#define VDC51GR0_FLM2 (VDC51.GR0_FLM2)
+#define VDC51GR0_FLM3 (VDC51.GR0_FLM3)
+#define VDC51GR0_FLM4 (VDC51.GR0_FLM4)
+#define VDC51GR0_FLM5 (VDC51.GR0_FLM5)
+#define VDC51GR0_FLM6 (VDC51.GR0_FLM6)
+#define VDC51GR0_AB1 (VDC51.GR0_AB1)
+#define VDC51GR0_AB2 (VDC51.GR0_AB2)
+#define VDC51GR0_AB3 (VDC51.GR0_AB3)
+#define VDC51GR0_AB7 (VDC51.GR0_AB7)
+#define VDC51GR0_AB8 (VDC51.GR0_AB8)
+#define VDC51GR0_AB9 (VDC51.GR0_AB9)
+#define VDC51GR0_AB10 (VDC51.GR0_AB10)
+#define VDC51GR0_AB11 (VDC51.GR0_AB11)
+#define VDC51GR0_BASE (VDC51.GR0_BASE)
+#define VDC51GR0_CLUT (VDC51.GR0_CLUT)
+#define VDC51ADJ0_UPDATE (VDC51.ADJ0_UPDATE)
+#define VDC51ADJ0_BKSTR_SET (VDC51.ADJ0_BKSTR_SET)
+#define VDC51ADJ0_ENH_TIM1 (VDC51.ADJ0_ENH_TIM1)
+#define VDC51ADJ0_ENH_TIM2 (VDC51.ADJ0_ENH_TIM2)
+#define VDC51ADJ0_ENH_TIM3 (VDC51.ADJ0_ENH_TIM3)
+#define VDC51ADJ0_ENH_SHP1 (VDC51.ADJ0_ENH_SHP1)
+#define VDC51ADJ0_ENH_SHP2 (VDC51.ADJ0_ENH_SHP2)
+#define VDC51ADJ0_ENH_SHP3 (VDC51.ADJ0_ENH_SHP3)
+#define VDC51ADJ0_ENH_SHP4 (VDC51.ADJ0_ENH_SHP4)
+#define VDC51ADJ0_ENH_SHP5 (VDC51.ADJ0_ENH_SHP5)
+#define VDC51ADJ0_ENH_SHP6 (VDC51.ADJ0_ENH_SHP6)
+#define VDC51ADJ0_ENH_LTI1 (VDC51.ADJ0_ENH_LTI1)
+#define VDC51ADJ0_ENH_LTI2 (VDC51.ADJ0_ENH_LTI2)
+#define VDC51ADJ0_MTX_MODE (VDC51.ADJ0_MTX_MODE)
+#define VDC51ADJ0_MTX_YG_ADJ0 (VDC51.ADJ0_MTX_YG_ADJ0)
+#define VDC51ADJ0_MTX_YG_ADJ1 (VDC51.ADJ0_MTX_YG_ADJ1)
+#define VDC51ADJ0_MTX_CBB_ADJ0 (VDC51.ADJ0_MTX_CBB_ADJ0)
+#define VDC51ADJ0_MTX_CBB_ADJ1 (VDC51.ADJ0_MTX_CBB_ADJ1)
+#define VDC51ADJ0_MTX_CRR_ADJ0 (VDC51.ADJ0_MTX_CRR_ADJ0)
+#define VDC51ADJ0_MTX_CRR_ADJ1 (VDC51.ADJ0_MTX_CRR_ADJ1)
+#define VDC51GR2_UPDATE (VDC51.GR2_UPDATE)
+#define VDC51GR2_FLM_RD (VDC51.GR2_FLM_RD)
+#define VDC51GR2_FLM1 (VDC51.GR2_FLM1)
+#define VDC51GR2_FLM2 (VDC51.GR2_FLM2)
+#define VDC51GR2_FLM3 (VDC51.GR2_FLM3)
+#define VDC51GR2_FLM4 (VDC51.GR2_FLM4)
+#define VDC51GR2_FLM5 (VDC51.GR2_FLM5)
+#define VDC51GR2_FLM6 (VDC51.GR2_FLM6)
+#define VDC51GR2_AB1 (VDC51.GR2_AB1)
+#define VDC51GR2_AB2 (VDC51.GR2_AB2)
+#define VDC51GR2_AB3 (VDC51.GR2_AB3)
+#define VDC51GR2_AB4 (VDC51.GR2_AB4)
+#define VDC51GR2_AB5 (VDC51.GR2_AB5)
+#define VDC51GR2_AB6 (VDC51.GR2_AB6)
+#define VDC51GR2_AB7 (VDC51.GR2_AB7)
+#define VDC51GR2_AB8 (VDC51.GR2_AB8)
+#define VDC51GR2_AB9 (VDC51.GR2_AB9)
+#define VDC51GR2_AB10 (VDC51.GR2_AB10)
+#define VDC51GR2_AB11 (VDC51.GR2_AB11)
+#define VDC51GR2_BASE (VDC51.GR2_BASE)
+#define VDC51GR2_CLUT (VDC51.GR2_CLUT)
+#define VDC51GR2_MON (VDC51.GR2_MON)
+#define VDC51GR3_UPDATE (VDC51.GR3_UPDATE)
+#define VDC51GR3_FLM_RD (VDC51.GR3_FLM_RD)
+#define VDC51GR3_FLM1 (VDC51.GR3_FLM1)
+#define VDC51GR3_FLM2 (VDC51.GR3_FLM2)
+#define VDC51GR3_FLM3 (VDC51.GR3_FLM3)
+#define VDC51GR3_FLM4 (VDC51.GR3_FLM4)
+#define VDC51GR3_FLM5 (VDC51.GR3_FLM5)
+#define VDC51GR3_FLM6 (VDC51.GR3_FLM6)
+#define VDC51GR3_AB1 (VDC51.GR3_AB1)
+#define VDC51GR3_AB2 (VDC51.GR3_AB2)
+#define VDC51GR3_AB3 (VDC51.GR3_AB3)
+#define VDC51GR3_AB4 (VDC51.GR3_AB4)
+#define VDC51GR3_AB5 (VDC51.GR3_AB5)
+#define VDC51GR3_AB6 (VDC51.GR3_AB6)
+#define VDC51GR3_AB7 (VDC51.GR3_AB7)
+#define VDC51GR3_AB8 (VDC51.GR3_AB8)
+#define VDC51GR3_AB9 (VDC51.GR3_AB9)
+#define VDC51GR3_AB10 (VDC51.GR3_AB10)
+#define VDC51GR3_AB11 (VDC51.GR3_AB11)
+#define VDC51GR3_BASE (VDC51.GR3_BASE)
+#define VDC51GR3_CLUT_INT (VDC51.GR3_CLUT_INT)
+#define VDC51GR3_MON (VDC51.GR3_MON)
+#define VDC51GAM_G_UPDATE (VDC51.GAM_G_UPDATE)
+#define VDC51GAM_SW (VDC51.GAM_SW)
+#define VDC51GAM_G_LUT1 (VDC51.GAM_G_LUT1)
+#define VDC51GAM_G_LUT2 (VDC51.GAM_G_LUT2)
+#define VDC51GAM_G_LUT3 (VDC51.GAM_G_LUT3)
+#define VDC51GAM_G_LUT4 (VDC51.GAM_G_LUT4)
+#define VDC51GAM_G_LUT5 (VDC51.GAM_G_LUT5)
+#define VDC51GAM_G_LUT6 (VDC51.GAM_G_LUT6)
+#define VDC51GAM_G_LUT7 (VDC51.GAM_G_LUT7)
+#define VDC51GAM_G_LUT8 (VDC51.GAM_G_LUT8)
+#define VDC51GAM_G_LUT9 (VDC51.GAM_G_LUT9)
+#define VDC51GAM_G_LUT10 (VDC51.GAM_G_LUT10)
+#define VDC51GAM_G_LUT11 (VDC51.GAM_G_LUT11)
+#define VDC51GAM_G_LUT12 (VDC51.GAM_G_LUT12)
+#define VDC51GAM_G_LUT13 (VDC51.GAM_G_LUT13)
+#define VDC51GAM_G_LUT14 (VDC51.GAM_G_LUT14)
+#define VDC51GAM_G_LUT15 (VDC51.GAM_G_LUT15)
+#define VDC51GAM_G_LUT16 (VDC51.GAM_G_LUT16)
+#define VDC51GAM_G_AREA1 (VDC51.GAM_G_AREA1)
+#define VDC51GAM_G_AREA2 (VDC51.GAM_G_AREA2)
+#define VDC51GAM_G_AREA3 (VDC51.GAM_G_AREA3)
+#define VDC51GAM_G_AREA4 (VDC51.GAM_G_AREA4)
+#define VDC51GAM_G_AREA5 (VDC51.GAM_G_AREA5)
+#define VDC51GAM_G_AREA6 (VDC51.GAM_G_AREA6)
+#define VDC51GAM_G_AREA7 (VDC51.GAM_G_AREA7)
+#define VDC51GAM_G_AREA8 (VDC51.GAM_G_AREA8)
+#define VDC51GAM_B_UPDATE (VDC51.GAM_B_UPDATE)
+#define VDC51GAM_B_LUT1 (VDC51.GAM_B_LUT1)
+#define VDC51GAM_B_LUT2 (VDC51.GAM_B_LUT2)
+#define VDC51GAM_B_LUT3 (VDC51.GAM_B_LUT3)
+#define VDC51GAM_B_LUT4 (VDC51.GAM_B_LUT4)
+#define VDC51GAM_B_LUT5 (VDC51.GAM_B_LUT5)
+#define VDC51GAM_B_LUT6 (VDC51.GAM_B_LUT6)
+#define VDC51GAM_B_LUT7 (VDC51.GAM_B_LUT7)
+#define VDC51GAM_B_LUT8 (VDC51.GAM_B_LUT8)
+#define VDC51GAM_B_LUT9 (VDC51.GAM_B_LUT9)
+#define VDC51GAM_B_LUT10 (VDC51.GAM_B_LUT10)
+#define VDC51GAM_B_LUT11 (VDC51.GAM_B_LUT11)
+#define VDC51GAM_B_LUT12 (VDC51.GAM_B_LUT12)
+#define VDC51GAM_B_LUT13 (VDC51.GAM_B_LUT13)
+#define VDC51GAM_B_LUT14 (VDC51.GAM_B_LUT14)
+#define VDC51GAM_B_LUT15 (VDC51.GAM_B_LUT15)
+#define VDC51GAM_B_LUT16 (VDC51.GAM_B_LUT16)
+#define VDC51GAM_B_AREA1 (VDC51.GAM_B_AREA1)
+#define VDC51GAM_B_AREA2 (VDC51.GAM_B_AREA2)
+#define VDC51GAM_B_AREA3 (VDC51.GAM_B_AREA3)
+#define VDC51GAM_B_AREA4 (VDC51.GAM_B_AREA4)
+#define VDC51GAM_B_AREA5 (VDC51.GAM_B_AREA5)
+#define VDC51GAM_B_AREA6 (VDC51.GAM_B_AREA6)
+#define VDC51GAM_B_AREA7 (VDC51.GAM_B_AREA7)
+#define VDC51GAM_B_AREA8 (VDC51.GAM_B_AREA8)
+#define VDC51GAM_R_UPDATE (VDC51.GAM_R_UPDATE)
+#define VDC51GAM_R_LUT1 (VDC51.GAM_R_LUT1)
+#define VDC51GAM_R_LUT2 (VDC51.GAM_R_LUT2)
+#define VDC51GAM_R_LUT3 (VDC51.GAM_R_LUT3)
+#define VDC51GAM_R_LUT4 (VDC51.GAM_R_LUT4)
+#define VDC51GAM_R_LUT5 (VDC51.GAM_R_LUT5)
+#define VDC51GAM_R_LUT6 (VDC51.GAM_R_LUT6)
+#define VDC51GAM_R_LUT7 (VDC51.GAM_R_LUT7)
+#define VDC51GAM_R_LUT8 (VDC51.GAM_R_LUT8)
+#define VDC51GAM_R_LUT9 (VDC51.GAM_R_LUT9)
+#define VDC51GAM_R_LUT10 (VDC51.GAM_R_LUT10)
+#define VDC51GAM_R_LUT11 (VDC51.GAM_R_LUT11)
+#define VDC51GAM_R_LUT12 (VDC51.GAM_R_LUT12)
+#define VDC51GAM_R_LUT13 (VDC51.GAM_R_LUT13)
+#define VDC51GAM_R_LUT14 (VDC51.GAM_R_LUT14)
+#define VDC51GAM_R_LUT15 (VDC51.GAM_R_LUT15)
+#define VDC51GAM_R_LUT16 (VDC51.GAM_R_LUT16)
+#define VDC51GAM_R_AREA1 (VDC51.GAM_R_AREA1)
+#define VDC51GAM_R_AREA2 (VDC51.GAM_R_AREA2)
+#define VDC51GAM_R_AREA3 (VDC51.GAM_R_AREA3)
+#define VDC51GAM_R_AREA4 (VDC51.GAM_R_AREA4)
+#define VDC51GAM_R_AREA5 (VDC51.GAM_R_AREA5)
+#define VDC51GAM_R_AREA6 (VDC51.GAM_R_AREA6)
+#define VDC51GAM_R_AREA7 (VDC51.GAM_R_AREA7)
+#define VDC51GAM_R_AREA8 (VDC51.GAM_R_AREA8)
+#define VDC51TCON_UPDATE (VDC51.TCON_UPDATE)
+#define VDC51TCON_TIM (VDC51.TCON_TIM)
+#define VDC51TCON_TIM_STVA1 (VDC51.TCON_TIM_STVA1)
+#define VDC51TCON_TIM_STVA2 (VDC51.TCON_TIM_STVA2)
+#define VDC51TCON_TIM_STVB1 (VDC51.TCON_TIM_STVB1)
+#define VDC51TCON_TIM_STVB2 (VDC51.TCON_TIM_STVB2)
+#define VDC51TCON_TIM_STH1 (VDC51.TCON_TIM_STH1)
+#define VDC51TCON_TIM_STH2 (VDC51.TCON_TIM_STH2)
+#define VDC51TCON_TIM_STB1 (VDC51.TCON_TIM_STB1)
+#define VDC51TCON_TIM_STB2 (VDC51.TCON_TIM_STB2)
+#define VDC51TCON_TIM_CPV1 (VDC51.TCON_TIM_CPV1)
+#define VDC51TCON_TIM_CPV2 (VDC51.TCON_TIM_CPV2)
+#define VDC51TCON_TIM_POLA1 (VDC51.TCON_TIM_POLA1)
+#define VDC51TCON_TIM_POLA2 (VDC51.TCON_TIM_POLA2)
+#define VDC51TCON_TIM_POLB1 (VDC51.TCON_TIM_POLB1)
+#define VDC51TCON_TIM_POLB2 (VDC51.TCON_TIM_POLB2)
+#define VDC51TCON_TIM_DE (VDC51.TCON_TIM_DE)
+#define VDC51OUT_UPDATE (VDC51.OUT_UPDATE)
+#define VDC51OUT_SET (VDC51.OUT_SET)
+#define VDC51OUT_BRIGHT1 (VDC51.OUT_BRIGHT1)
+#define VDC51OUT_BRIGHT2 (VDC51.OUT_BRIGHT2)
+#define VDC51OUT_CONTRAST (VDC51.OUT_CONTRAST)
+#define VDC51OUT_PDTHA (VDC51.OUT_PDTHA)
+#define VDC51OUT_CLK_PHASE (VDC51.OUT_CLK_PHASE)
+#define VDC51SYSCNT_INT1 (VDC51.SYSCNT_INT1)
+#define VDC51SYSCNT_INT2 (VDC51.SYSCNT_INT2)
+#define VDC51SYSCNT_INT3 (VDC51.SYSCNT_INT3)
+#define VDC51SYSCNT_INT4 (VDC51.SYSCNT_INT4)
+#define VDC51SYSCNT_INT5 (VDC51.SYSCNT_INT5)
+#define VDC51SYSCNT_INT6 (VDC51.SYSCNT_INT6)
+#define VDC51SYSCNT_PANEL_CLK (VDC51.SYSCNT_PANEL_CLK)
+#define VDC51SYSCNT_CLUT (VDC51.SYSCNT_CLUT)
+#define VDC51SC1_SCL0_UPDATE (VDC51.SC1_SCL0_UPDATE)
+#define VDC51SC1_SCL0_FRC1 (VDC51.SC1_SCL0_FRC1)
+#define VDC51SC1_SCL0_FRC2 (VDC51.SC1_SCL0_FRC2)
+#define VDC51SC1_SCL0_FRC3 (VDC51.SC1_SCL0_FRC3)
+#define VDC51SC1_SCL0_FRC4 (VDC51.SC1_SCL0_FRC4)
+#define VDC51SC1_SCL0_FRC5 (VDC51.SC1_SCL0_FRC5)
+#define VDC51SC1_SCL0_FRC6 (VDC51.SC1_SCL0_FRC6)
+#define VDC51SC1_SCL0_FRC7 (VDC51.SC1_SCL0_FRC7)
+#define VDC51SC1_SCL0_FRC9 (VDC51.SC1_SCL0_FRC9)
+#define VDC51SC1_SCL0_MON0 (VDC51.SC1_SCL0_MON0)
+#define VDC51SC1_SCL0_INT (VDC51.SC1_SCL0_INT)
+#define VDC51SC1_SCL0_DS1 (VDC51.SC1_SCL0_DS1)
+#define VDC51SC1_SCL0_DS2 (VDC51.SC1_SCL0_DS2)
+#define VDC51SC1_SCL0_DS3 (VDC51.SC1_SCL0_DS3)
+#define VDC51SC1_SCL0_DS4 (VDC51.SC1_SCL0_DS4)
+#define VDC51SC1_SCL0_DS5 (VDC51.SC1_SCL0_DS5)
+#define VDC51SC1_SCL0_DS6 (VDC51.SC1_SCL0_DS6)
+#define VDC51SC1_SCL0_DS7 (VDC51.SC1_SCL0_DS7)
+#define VDC51SC1_SCL0_US1 (VDC51.SC1_SCL0_US1)
+#define VDC51SC1_SCL0_US2 (VDC51.SC1_SCL0_US2)
+#define VDC51SC1_SCL0_US3 (VDC51.SC1_SCL0_US3)
+#define VDC51SC1_SCL0_US4 (VDC51.SC1_SCL0_US4)
+#define VDC51SC1_SCL0_US5 (VDC51.SC1_SCL0_US5)
+#define VDC51SC1_SCL0_US6 (VDC51.SC1_SCL0_US6)
+#define VDC51SC1_SCL0_US7 (VDC51.SC1_SCL0_US7)
+#define VDC51SC1_SCL0_US8 (VDC51.SC1_SCL0_US8)
+#define VDC51SC1_SCL0_OVR1 (VDC51.SC1_SCL0_OVR1)
+#define VDC51SC1_SCL1_UPDATE (VDC51.SC1_SCL1_UPDATE)
+#define VDC51SC1_SCL1_WR1 (VDC51.SC1_SCL1_WR1)
+#define VDC51SC1_SCL1_WR2 (VDC51.SC1_SCL1_WR2)
+#define VDC51SC1_SCL1_WR3 (VDC51.SC1_SCL1_WR3)
+#define VDC51SC1_SCL1_WR4 (VDC51.SC1_SCL1_WR4)
+#define VDC51SC1_SCL1_WR5 (VDC51.SC1_SCL1_WR5)
+#define VDC51SC1_SCL1_WR6 (VDC51.SC1_SCL1_WR6)
+#define VDC51SC1_SCL1_WR7 (VDC51.SC1_SCL1_WR7)
+#define VDC51SC1_SCL1_WR8 (VDC51.SC1_SCL1_WR8)
+#define VDC51SC1_SCL1_WR9 (VDC51.SC1_SCL1_WR9)
+#define VDC51SC1_SCL1_WR10 (VDC51.SC1_SCL1_WR10)
+#define VDC51SC1_SCL1_WR11 (VDC51.SC1_SCL1_WR11)
+#define VDC51SC1_SCL1_MON1 (VDC51.SC1_SCL1_MON1)
+#define VDC51SC1_SCL1_PBUF0 (VDC51.SC1_SCL1_PBUF0)
+#define VDC51SC1_SCL1_PBUF1 (VDC51.SC1_SCL1_PBUF1)
+#define VDC51SC1_SCL1_PBUF2 (VDC51.SC1_SCL1_PBUF2)
+#define VDC51SC1_SCL1_PBUF3 (VDC51.SC1_SCL1_PBUF3)
+#define VDC51SC1_SCL1_PBUF_FLD (VDC51.SC1_SCL1_PBUF_FLD)
+#define VDC51SC1_SCL1_PBUF_CNT (VDC51.SC1_SCL1_PBUF_CNT)
+#define VDC51GR1_UPDATE (VDC51.GR1_UPDATE)
+#define VDC51GR1_FLM_RD (VDC51.GR1_FLM_RD)
+#define VDC51GR1_FLM1 (VDC51.GR1_FLM1)
+#define VDC51GR1_FLM2 (VDC51.GR1_FLM2)
+#define VDC51GR1_FLM3 (VDC51.GR1_FLM3)
+#define VDC51GR1_FLM4 (VDC51.GR1_FLM4)
+#define VDC51GR1_FLM5 (VDC51.GR1_FLM5)
+#define VDC51GR1_FLM6 (VDC51.GR1_FLM6)
+#define VDC51GR1_AB1 (VDC51.GR1_AB1)
+#define VDC51GR1_AB2 (VDC51.GR1_AB2)
+#define VDC51GR1_AB3 (VDC51.GR1_AB3)
+#define VDC51GR1_AB4 (VDC51.GR1_AB4)
+#define VDC51GR1_AB5 (VDC51.GR1_AB5)
+#define VDC51GR1_AB6 (VDC51.GR1_AB6)
+#define VDC51GR1_AB7 (VDC51.GR1_AB7)
+#define VDC51GR1_AB8 (VDC51.GR1_AB8)
+#define VDC51GR1_AB9 (VDC51.GR1_AB9)
+#define VDC51GR1_AB10 (VDC51.GR1_AB10)
+#define VDC51GR1_AB11 (VDC51.GR1_AB11)
+#define VDC51GR1_BASE (VDC51.GR1_BASE)
+#define VDC51GR1_CLUT (VDC51.GR1_CLUT)
+#define VDC51GR1_MON (VDC51.GR1_MON)
+#define VDC51ADJ1_UPDATE (VDC51.ADJ1_UPDATE)
+#define VDC51ADJ1_BKSTR_SET (VDC51.ADJ1_BKSTR_SET)
+#define VDC51ADJ1_ENH_TIM1 (VDC51.ADJ1_ENH_TIM1)
+#define VDC51ADJ1_ENH_TIM2 (VDC51.ADJ1_ENH_TIM2)
+#define VDC51ADJ1_ENH_TIM3 (VDC51.ADJ1_ENH_TIM3)
+#define VDC51ADJ1_ENH_SHP1 (VDC51.ADJ1_ENH_SHP1)
+#define VDC51ADJ1_ENH_SHP2 (VDC51.ADJ1_ENH_SHP2)
+#define VDC51ADJ1_ENH_SHP3 (VDC51.ADJ1_ENH_SHP3)
+#define VDC51ADJ1_ENH_SHP4 (VDC51.ADJ1_ENH_SHP4)
+#define VDC51ADJ1_ENH_SHP5 (VDC51.ADJ1_ENH_SHP5)
+#define VDC51ADJ1_ENH_SHP6 (VDC51.ADJ1_ENH_SHP6)
+#define VDC51ADJ1_ENH_LTI1 (VDC51.ADJ1_ENH_LTI1)
+#define VDC51ADJ1_ENH_LTI2 (VDC51.ADJ1_ENH_LTI2)
+#define VDC51ADJ1_MTX_MODE (VDC51.ADJ1_MTX_MODE)
+#define VDC51ADJ1_MTX_YG_ADJ0 (VDC51.ADJ1_MTX_YG_ADJ0)
+#define VDC51ADJ1_MTX_YG_ADJ1 (VDC51.ADJ1_MTX_YG_ADJ1)
+#define VDC51ADJ1_MTX_CBB_ADJ0 (VDC51.ADJ1_MTX_CBB_ADJ0)
+#define VDC51ADJ1_MTX_CBB_ADJ1 (VDC51.ADJ1_MTX_CBB_ADJ1)
+#define VDC51ADJ1_MTX_CRR_ADJ0 (VDC51.ADJ1_MTX_CRR_ADJ0)
+#define VDC51ADJ1_MTX_CRR_ADJ1 (VDC51.ADJ1_MTX_CRR_ADJ1)
+#define VDC51GR_VIN_UPDATE (VDC51.GR_VIN_UPDATE)
+#define VDC51GR_VIN_AB1 (VDC51.GR_VIN_AB1)
+#define VDC51GR_VIN_AB2 (VDC51.GR_VIN_AB2)
+#define VDC51GR_VIN_AB3 (VDC51.GR_VIN_AB3)
+#define VDC51GR_VIN_AB4 (VDC51.GR_VIN_AB4)
+#define VDC51GR_VIN_AB5 (VDC51.GR_VIN_AB5)
+#define VDC51GR_VIN_AB6 (VDC51.GR_VIN_AB6)
+#define VDC51GR_VIN_AB7 (VDC51.GR_VIN_AB7)
+#define VDC51GR_VIN_BASE (VDC51.GR_VIN_BASE)
+#define VDC51GR_VIN_MON (VDC51.GR_VIN_MON)
+#define VDC51OIR_SCL0_UPDATE (VDC51.OIR_SCL0_UPDATE)
+#define VDC51OIR_SCL0_FRC1 (VDC51.OIR_SCL0_FRC1)
+#define VDC51OIR_SCL0_FRC2 (VDC51.OIR_SCL0_FRC2)
+#define VDC51OIR_SCL0_FRC3 (VDC51.OIR_SCL0_FRC3)
+#define VDC51OIR_SCL0_FRC4 (VDC51.OIR_SCL0_FRC4)
+#define VDC51OIR_SCL0_FRC5 (VDC51.OIR_SCL0_FRC5)
+#define VDC51OIR_SCL0_FRC6 (VDC51.OIR_SCL0_FRC6)
+#define VDC51OIR_SCL0_FRC7 (VDC51.OIR_SCL0_FRC7)
+#define VDC51OIR_SCL0_DS1 (VDC51.OIR_SCL0_DS1)
+#define VDC51OIR_SCL0_DS2 (VDC51.OIR_SCL0_DS2)
+#define VDC51OIR_SCL0_DS3 (VDC51.OIR_SCL0_DS3)
+#define VDC51OIR_SCL0_DS7 (VDC51.OIR_SCL0_DS7)
+#define VDC51OIR_SCL0_US1 (VDC51.OIR_SCL0_US1)
+#define VDC51OIR_SCL0_US2 (VDC51.OIR_SCL0_US2)
+#define VDC51OIR_SCL0_US3 (VDC51.OIR_SCL0_US3)
+#define VDC51OIR_SCL0_US8 (VDC51.OIR_SCL0_US8)
+#define VDC51OIR_SCL0_OVR1 (VDC51.OIR_SCL0_OVR1)
+#define VDC51OIR_SCL1_UPDATE (VDC51.OIR_SCL1_UPDATE)
+#define VDC51OIR_SCL1_WR1 (VDC51.OIR_SCL1_WR1)
+#define VDC51OIR_SCL1_WR2 (VDC51.OIR_SCL1_WR2)
+#define VDC51OIR_SCL1_WR3 (VDC51.OIR_SCL1_WR3)
+#define VDC51OIR_SCL1_WR4 (VDC51.OIR_SCL1_WR4)
+#define VDC51OIR_SCL1_WR5 (VDC51.OIR_SCL1_WR5)
+#define VDC51OIR_SCL1_WR6 (VDC51.OIR_SCL1_WR6)
+#define VDC51OIR_SCL1_WR7 (VDC51.OIR_SCL1_WR7)
+#define VDC51GR_OIR_UPDATE (VDC51.GR_OIR_UPDATE)
+#define VDC51GR_OIR_FLM_RD (VDC51.GR_OIR_FLM_RD)
+#define VDC51GR_OIR_FLM1 (VDC51.GR_OIR_FLM1)
+#define VDC51GR_OIR_FLM2 (VDC51.GR_OIR_FLM2)
+#define VDC51GR_OIR_FLM3 (VDC51.GR_OIR_FLM3)
+#define VDC51GR_OIR_FLM4 (VDC51.GR_OIR_FLM4)
+#define VDC51GR_OIR_FLM5 (VDC51.GR_OIR_FLM5)
+#define VDC51GR_OIR_FLM6 (VDC51.GR_OIR_FLM6)
+#define VDC51GR_OIR_AB1 (VDC51.GR_OIR_AB1)
+#define VDC51GR_OIR_AB2 (VDC51.GR_OIR_AB2)
+#define VDC51GR_OIR_AB3 (VDC51.GR_OIR_AB3)
+#define VDC51GR_OIR_AB7 (VDC51.GR_OIR_AB7)
+#define VDC51GR_OIR_AB8 (VDC51.GR_OIR_AB8)
+#define VDC51GR_OIR_AB9 (VDC51.GR_OIR_AB9)
+#define VDC51GR_OIR_AB10 (VDC51.GR_OIR_AB10)
+#define VDC51GR_OIR_AB11 (VDC51.GR_OIR_AB11)
+#define VDC51GR_OIR_BASE (VDC51.GR_OIR_BASE)
+#define VDC51GR_OIR_CLUT (VDC51.GR_OIR_CLUT)
+#define VDC51GR_OIR_MON (VDC51.GR_OIR_MON)
+
+#define VDC5_IMGCNT_NR_CNT0_COUNT (2)
+#define VDC5_SC0_SCL0_FRC1_COUNT (7)
+#define VDC5_SC0_SCL0_DS1_COUNT (7)
+#define VDC5_SC0_SCL0_US1_COUNT (8)
+#define VDC5_SC0_SCL1_WR1_COUNT (4)
+#define VDC5_SC0_SCL1_PBUF0_COUNT (4)
+#define VDC5_GR0_FLM1_COUNT (6)
+#define VDC5_GR0_AB1_COUNT (3)
+#define VDC5_ADJ0_ENH_TIM1_COUNT (3)
+#define VDC5_ADJ0_ENH_SHP1_COUNT (6)
+#define VDC5_ADJ0_ENH_LTI1_COUNT (2)
+#define VDC5_GR2_FLM1_COUNT (6)
+#define VDC5_GR2_AB1_COUNT (3)
+#define VDC5_GR3_FLM1_COUNT (6)
+#define VDC5_GR3_AB1_COUNT (3)
+#define VDC5_GAM_G_LUT1_COUNT (16)
+#define VDC5_GAM_G_AREA1_COUNT (8)
+#define VDC5_GAM_B_LUT1_COUNT (16)
+#define VDC5_GAM_B_AREA1_COUNT (8)
+#define VDC5_GAM_R_LUT1_COUNT (16)
+#define VDC5_GAM_R_AREA1_COUNT (8)
+#define VDC5_TCON_TIM_STVA1_COUNT (2)
+#define VDC5_TCON_TIM_STVB1_COUNT (2)
+#define VDC5_TCON_TIM_STH1_COUNT (2)
+#define VDC5_TCON_TIM_STB1_COUNT (2)
+#define VDC5_TCON_TIM_CPV1_COUNT (2)
+#define VDC5_TCON_TIM_POLA1_COUNT (2)
+#define VDC5_TCON_TIM_POLB1_COUNT (2)
+#define VDC5_OUT_BRIGHT1_COUNT (2)
+#define VDC5_SYSCNT_INT1_COUNT (6)
+#define VDC5_SC1_SCL0_FRC1_COUNT (7)
+#define VDC5_SC1_SC1_SCL0_DS1_COUNT (7)
+#define VDC5_SC1_SC1_SCL0_US1_COUNT (8)
+#define VDC5_SC1_SCL1_WR1_COUNT (4)
+#define VDC5_SC1_SCL1_PBUF0_COUNT (4)
+#define VDC5_GR1_FLM1_COUNT (6)
+#define VDC5_GR1_AB1_COUNT (3)
+#define VDC5_ADJ1_ENH_TIM1_COUNT (3)
+#define VDC5_ADJ1_ENH_SHP1_COUNT (6)
+#define VDC5_ADJ1_ENH_LTI1_COUNT (2)
+#define VDC5_GR_VIN_AB1_COUNT (7)
+#define VDC5_OIR_SCL0_FRC1_COUNT (7)
+#define VDC5_OIR_SCL0_DS1_COUNT (3)
+#define VDC5_OIR_SCL1_WR1_COUNT (4)
+#define VDC5_GR_OIR_FLM1_COUNT (6)
+#define VDC5_GR_OIR_AB1_COUNT (3)
+
+
+typedef struct st_vdc5
+{
+                                                           /* VDC5             */
+    volatile uint32_t  INP_UPDATE;                             /*  INP_UPDATE      */
+    volatile uint32_t  INP_SEL_CNT;                            /*  INP_SEL_CNT     */
+    volatile uint32_t  INP_EXT_SYNC_CNT;                       /*  INP_EXT_SYNC_CNT */
+    volatile uint32_t  INP_VSYNC_PH_ADJ;                       /*  INP_VSYNC_PH_ADJ */
+    volatile uint32_t  INP_DLY_ADJ;                            /*  INP_DLY_ADJ     */
+    volatile uint8_t   dummy1[108];                            /*                  */
+    volatile uint32_t  IMGCNT_UPDATE;                          /*  IMGCNT_UPDATE   */
+
+/* #define VDC5_IMGCNT_NR_CNT0_COUNT (2) */
+    volatile uint32_t  IMGCNT_NR_CNT0;                         /*  IMGCNT_NR_CNT0  */
+    volatile uint32_t  IMGCNT_NR_CNT1;                         /*  IMGCNT_NR_CNT1  */
+    volatile uint8_t   dummy2[20];                             /*                  */
+    volatile uint32_t  IMGCNT_MTX_MODE;                        /*  IMGCNT_MTX_MODE */
+    volatile uint32_t  IMGCNT_MTX_YG_ADJ0;                     /*  IMGCNT_MTX_YG_ADJ0 */
+    volatile uint32_t  IMGCNT_MTX_YG_ADJ1;                     /*  IMGCNT_MTX_YG_ADJ1 */
+    volatile uint32_t  IMGCNT_MTX_CBB_ADJ0;                    /*  IMGCNT_MTX_CBB_ADJ0 */
+    volatile uint32_t  IMGCNT_MTX_CBB_ADJ1;                    /*  IMGCNT_MTX_CBB_ADJ1 */
+    volatile uint32_t  IMGCNT_MTX_CRR_ADJ0;                    /*  IMGCNT_MTX_CRR_ADJ0 */
+    volatile uint32_t  IMGCNT_MTX_CRR_ADJ1;                    /*  IMGCNT_MTX_CRR_ADJ1 */
+    volatile uint8_t   dummy3[4];                              /*                  */
+    volatile uint32_t  IMGCNT_DRC_REG;                         /*  IMGCNT_DRC_REG  */
+    volatile uint8_t   dummy4[60];                             /*                  */
+
+/* start of struct st_vdc5_from_sc0_scl0_update */
+    volatile uint32_t  SC0_SCL0_UPDATE;                        /*  SC0_SCL0_UPDATE */
+
+/* #define VDC5_SC0_SCL0_FRC1_COUNT (7) */
+    volatile uint32_t  SC0_SCL0_FRC1;                          /*  SC0_SCL0_FRC1   */
+    volatile uint32_t  SC0_SCL0_FRC2;                          /*  SC0_SCL0_FRC2   */
+    volatile uint32_t  SC0_SCL0_FRC3;                          /*  SC0_SCL0_FRC3   */
+    volatile uint32_t  SC0_SCL0_FRC4;                          /*  SC0_SCL0_FRC4   */
+    volatile uint32_t  SC0_SCL0_FRC5;                          /*  SC0_SCL0_FRC5   */
+    volatile uint32_t  SC0_SCL0_FRC6;                          /*  SC0_SCL0_FRC6   */
+    volatile uint32_t  SC0_SCL0_FRC7;                          /*  SC0_SCL0_FRC7   */
+    volatile uint8_t   dummy5[4];                              /*                  */
+    volatile uint32_t  SC0_SCL0_FRC9;                          /*  SC0_SCL0_FRC9   */
+    volatile uint16_t SC0_SCL0_MON0;                          /*  SC0_SCL0_MON0   */
+    volatile uint16_t SC0_SCL0_INT;                           /*  SC0_SCL0_INT    */
+
+/* #define VDC5_SC0_SCL0_DS1_COUNT (7) */
+    volatile uint32_t  SC0_SCL0_DS1;                           /*  SC0_SCL0_DS1    */
+    volatile uint32_t  SC0_SCL0_DS2;                           /*  SC0_SCL0_DS2    */
+    volatile uint32_t  SC0_SCL0_DS3;                           /*  SC0_SCL0_DS3    */
+    volatile uint32_t  SC0_SCL0_DS4;                           /*  SC0_SCL0_DS4    */
+    volatile uint32_t  SC0_SCL0_DS5;                           /*  SC0_SCL0_DS5    */
+    volatile uint32_t  SC0_SCL0_DS6;                           /*  SC0_SCL0_DS6    */
+    volatile uint32_t  SC0_SCL0_DS7;                           /*  SC0_SCL0_DS7    */
+
+/* #define VDC5_SC0_SCL0_US1_COUNT (8) */
+    volatile uint32_t  SC0_SCL0_US1;                           /*  SC0_SCL0_US1    */
+    volatile uint32_t  SC0_SCL0_US2;                           /*  SC0_SCL0_US2    */
+    volatile uint32_t  SC0_SCL0_US3;                           /*  SC0_SCL0_US3    */
+    volatile uint32_t  SC0_SCL0_US4;                           /*  SC0_SCL0_US4    */
+    volatile uint32_t  SC0_SCL0_US5;                           /*  SC0_SCL0_US5    */
+    volatile uint32_t  SC0_SCL0_US6;                           /*  SC0_SCL0_US6    */
+    volatile uint32_t  SC0_SCL0_US7;                           /*  SC0_SCL0_US7    */
+    volatile uint32_t  SC0_SCL0_US8;                           /*  SC0_SCL0_US8    */
+    volatile uint8_t   dummy6[4];                              /*                  */
+    volatile uint32_t  SC0_SCL0_OVR1;                          /*  SC0_SCL0_OVR1   */
+    volatile uint8_t   dummy7[16];                             /*                  */
+    volatile uint32_t  SC0_SCL1_UPDATE;                        /*  SC0_SCL1_UPDATE */
+    volatile uint8_t   dummy8[4];                              /*                  */
+
+/* #define VDC5_SC0_SCL1_WR1_COUNT (4) */
+    volatile uint32_t  SC0_SCL1_WR1;                           /*  SC0_SCL1_WR1    */
+    volatile uint32_t  SC0_SCL1_WR2;                           /*  SC0_SCL1_WR2    */
+    volatile uint32_t  SC0_SCL1_WR3;                           /*  SC0_SCL1_WR3    */
+    volatile uint32_t  SC0_SCL1_WR4;                           /*  SC0_SCL1_WR4    */
+    volatile uint8_t   dummy9[4];                              /*                  */
+    volatile uint32_t  SC0_SCL1_WR5;                           /*  SC0_SCL1_WR5    */
+    volatile uint32_t  SC0_SCL1_WR6;                           /*  SC0_SCL1_WR6    */
+    volatile uint32_t  SC0_SCL1_WR7;                           /*  SC0_SCL1_WR7    */
+    volatile uint32_t  SC0_SCL1_WR8;                           /*  SC0_SCL1_WR8    */
+    volatile uint32_t  SC0_SCL1_WR9;                           /*  SC0_SCL1_WR9    */
+    volatile uint32_t  SC0_SCL1_WR10;                          /*  SC0_SCL1_WR10   */
+
+/* end of struct st_vdc5_from_sc0_scl0_update */
+    volatile uint32_t  SC0_SCL1_WR11;                          /*  SC0_SCL1_WR11   */
+    volatile uint32_t  SC0_SCL1_MON1;                          /*  SC0_SCL1_MON1   */
+
+/* start of struct st_vdc5_from_sc0_scl1_pbuf0 */
+
+/* #define VDC5_SC0_SCL1_PBUF0_COUNT (4) */
+    volatile uint32_t  SC0_SCL1_PBUF0;                         /*  SC0_SCL1_PBUF0  */
+    volatile uint32_t  SC0_SCL1_PBUF1;                         /*  SC0_SCL1_PBUF1  */
+    volatile uint32_t  SC0_SCL1_PBUF2;                         /*  SC0_SCL1_PBUF2  */
+    volatile uint32_t  SC0_SCL1_PBUF3;                         /*  SC0_SCL1_PBUF3  */
+    volatile uint32_t  SC0_SCL1_PBUF_FLD;                      /*  SC0_SCL1_PBUF_FLD */
+    volatile uint32_t  SC0_SCL1_PBUF_CNT;                      /*  SC0_SCL1_PBUF_CNT */
+
+/* end of struct st_vdc5_from_sc0_scl1_pbuf0 */
+    volatile uint8_t   dummy10[44];                            /*                  */
+
+/* start of struct st_vdc5_from_gr0_update */
+    volatile uint32_t  GR0_UPDATE;                             /*  GR0_UPDATE      */
+    volatile uint32_t  GR0_FLM_RD;                             /*  GR0_FLM_RD      */
+
+/* #define VDC5_GR0_FLM1_COUNT (6) */
+    volatile uint32_t  GR0_FLM1;                               /*  GR0_FLM1        */
+    volatile uint32_t  GR0_FLM2;                               /*  GR0_FLM2        */
+    volatile uint32_t  GR0_FLM3;                               /*  GR0_FLM3        */
+    volatile uint32_t  GR0_FLM4;                               /*  GR0_FLM4        */
+    volatile uint32_t  GR0_FLM5;                               /*  GR0_FLM5        */
+    volatile uint32_t  GR0_FLM6;                               /*  GR0_FLM6        */
+
+/* #define VDC5_GR0_AB1_COUNT (3) */
+    volatile uint32_t  GR0_AB1;                                /*  GR0_AB1         */
+    volatile uint32_t  GR0_AB2;                                /*  GR0_AB2         */
+    volatile uint32_t  GR0_AB3;                                /*  GR0_AB3         */
+
+/* end of struct st_vdc5_from_gr0_update */
+    volatile uint8_t   dummy11[12];                            /*                  */
+
+/* start of struct st_vdc5_from_gr0_ab7 */
+    volatile uint32_t  GR0_AB7;                                /*  GR0_AB7         */
+    volatile uint32_t  GR0_AB8;                                /*  GR0_AB8         */
+    volatile uint32_t  GR0_AB9;                                /*  GR0_AB9         */
+    volatile uint32_t  GR0_AB10;                               /*  GR0_AB10        */
+    volatile uint32_t  GR0_AB11;                               /*  GR0_AB11        */
+    volatile uint32_t  GR0_BASE;                               /*  GR0_BASE        */
+
+/* end of struct st_vdc5_from_gr0_ab7 */
+    volatile uint32_t  GR0_CLUT;                               /*  GR0_CLUT        */
+    volatile uint8_t   dummy12[44];                            /*                  */
+
+/* start of struct st_vdc5_from_adj0_update */
+    volatile uint32_t  ADJ0_UPDATE;                            /*  ADJ0_UPDATE     */
+    volatile uint32_t  ADJ0_BKSTR_SET;                         /*  ADJ0_BKSTR_SET  */
+
+/* #define VDC5_ADJ0_ENH_TIM1_COUNT (3) */
+    volatile uint32_t  ADJ0_ENH_TIM1;                          /*  ADJ0_ENH_TIM1   */
+    volatile uint32_t  ADJ0_ENH_TIM2;                          /*  ADJ0_ENH_TIM2   */
+    volatile uint32_t  ADJ0_ENH_TIM3;                          /*  ADJ0_ENH_TIM3   */
+
+/* #define VDC5_ADJ0_ENH_SHP1_COUNT (6) */
+    volatile uint32_t  ADJ0_ENH_SHP1;                          /*  ADJ0_ENH_SHP1   */
+    volatile uint32_t  ADJ0_ENH_SHP2;                          /*  ADJ0_ENH_SHP2   */
+    volatile uint32_t  ADJ0_ENH_SHP3;                          /*  ADJ0_ENH_SHP3   */
+    volatile uint32_t  ADJ0_ENH_SHP4;                          /*  ADJ0_ENH_SHP4   */
+    volatile uint32_t  ADJ0_ENH_SHP5;                          /*  ADJ0_ENH_SHP5   */
+    volatile uint32_t  ADJ0_ENH_SHP6;                          /*  ADJ0_ENH_SHP6   */
+
+/* #define VDC5_ADJ0_ENH_LTI1_COUNT (2) */
+    volatile uint32_t  ADJ0_ENH_LTI1;                          /*  ADJ0_ENH_LTI1   */
+    volatile uint32_t  ADJ0_ENH_LTI2;                          /*  ADJ0_ENH_LTI2   */
+    volatile uint32_t  ADJ0_MTX_MODE;                          /*  ADJ0_MTX_MODE   */
+    volatile uint32_t  ADJ0_MTX_YG_ADJ0;                       /*  ADJ0_MTX_YG_ADJ0 */
+    volatile uint32_t  ADJ0_MTX_YG_ADJ1;                       /*  ADJ0_MTX_YG_ADJ1 */
+    volatile uint32_t  ADJ0_MTX_CBB_ADJ0;                      /*  ADJ0_MTX_CBB_ADJ0 */
+    volatile uint32_t  ADJ0_MTX_CBB_ADJ1;                      /*  ADJ0_MTX_CBB_ADJ1 */
+    volatile uint32_t  ADJ0_MTX_CRR_ADJ0;                      /*  ADJ0_MTX_CRR_ADJ0 */
+    volatile uint32_t  ADJ0_MTX_CRR_ADJ1;                      /*  ADJ0_MTX_CRR_ADJ1 */
+
+/* end of struct st_vdc5_from_adj0_update */
+    volatile uint8_t   dummy13[48];                            /*                  */
+
+/* start of struct st_vdc5_from_gr0_update */
+    volatile uint32_t  GR2_UPDATE;                             /*  GR2_UPDATE      */
+    volatile uint32_t  GR2_FLM_RD;                             /*  GR2_FLM_RD      */
+
+/* #define VDC5_GR2_FLM1_COUNT (6) */
+    volatile uint32_t  GR2_FLM1;                               /*  GR2_FLM1        */
+    volatile uint32_t  GR2_FLM2;                               /*  GR2_FLM2        */
+    volatile uint32_t  GR2_FLM3;                               /*  GR2_FLM3        */
+    volatile uint32_t  GR2_FLM4;                               /*  GR2_FLM4        */
+    volatile uint32_t  GR2_FLM5;                               /*  GR2_FLM5        */
+    volatile uint32_t  GR2_FLM6;                               /*  GR2_FLM6        */
+
+/* #define VDC5_GR2_AB1_COUNT (3) */
+    volatile uint32_t  GR2_AB1;                                /*  GR2_AB1         */
+    volatile uint32_t  GR2_AB2;                                /*  GR2_AB2         */
+    volatile uint32_t  GR2_AB3;                                /*  GR2_AB3         */
+
+/* end of struct st_vdc5_from_gr0_update */
+    volatile uint32_t  GR2_AB4;                                /*  GR2_AB4         */
+    volatile uint32_t  GR2_AB5;                                /*  GR2_AB5         */
+    volatile uint32_t  GR2_AB6;                                /*  GR2_AB6         */
+
+/* start of struct st_vdc5_from_gr0_ab7 */
+    volatile uint32_t  GR2_AB7;                                /*  GR2_AB7         */
+    volatile uint32_t  GR2_AB8;                                /*  GR2_AB8         */
+    volatile uint32_t  GR2_AB9;                                /*  GR2_AB9         */
+    volatile uint32_t  GR2_AB10;                               /*  GR2_AB10        */
+    volatile uint32_t  GR2_AB11;                               /*  GR2_AB11        */
+    volatile uint32_t  GR2_BASE;                               /*  GR2_BASE        */
+
+/* end of struct st_vdc5_from_gr0_ab7 */
+    volatile uint32_t  GR2_CLUT;                               /*  GR2_CLUT        */
+    volatile uint32_t  GR2_MON;                                /*  GR2_MON         */
+    volatile uint8_t   dummy14[40];                            /*                  */
+
+/* start of struct st_vdc5_from_gr0_update */
+    volatile uint32_t  GR3_UPDATE;                             /*  GR3_UPDATE      */
+    volatile uint32_t  GR3_FLM_RD;                             /*  GR3_FLM_RD      */
+
+/* #define VDC5_GR3_FLM1_COUNT (6) */
+    volatile uint32_t  GR3_FLM1;                               /*  GR3_FLM1        */
+    volatile uint32_t  GR3_FLM2;                               /*  GR3_FLM2        */
+    volatile uint32_t  GR3_FLM3;                               /*  GR3_FLM3        */
+    volatile uint32_t  GR3_FLM4;                               /*  GR3_FLM4        */
+    volatile uint32_t  GR3_FLM5;                               /*  GR3_FLM5        */
+    volatile uint32_t  GR3_FLM6;                               /*  GR3_FLM6        */
+
+/* #define VDC5_GR3_AB1_COUNT (3) */
+    volatile uint32_t  GR3_AB1;                                /*  GR3_AB1         */
+    volatile uint32_t  GR3_AB2;                                /*  GR3_AB2         */
+    volatile uint32_t  GR3_AB3;                                /*  GR3_AB3         */
+
+/* end of struct st_vdc5_from_gr0_update */
+    volatile uint32_t  GR3_AB4;                                /*  GR3_AB4         */
+    volatile uint32_t  GR3_AB5;                                /*  GR3_AB5         */
+    volatile uint32_t  GR3_AB6;                                /*  GR3_AB6         */
+
+/* start of struct st_vdc5_from_gr0_ab7 */
+    volatile uint32_t  GR3_AB7;                                /*  GR3_AB7         */
+    volatile uint32_t  GR3_AB8;                                /*  GR3_AB8         */
+    volatile uint32_t  GR3_AB9;                                /*  GR3_AB9         */
+    volatile uint32_t  GR3_AB10;                               /*  GR3_AB10        */
+    volatile uint32_t  GR3_AB11;                               /*  GR3_AB11        */
+    volatile uint32_t  GR3_BASE;                               /*  GR3_BASE        */
+
+/* end of struct st_vdc5_from_gr0_ab7 */
+    volatile uint32_t  GR3_CLUT_INT;                           /*  GR3_CLUT_INT    */
+    volatile uint32_t  GR3_MON;                                /*  GR3_MON         */
+    volatile uint8_t   dummy15[40];                            /*                  */
+    volatile uint32_t  GAM_G_UPDATE;                           /*  GAM_G_UPDATE    */
+    volatile uint32_t  GAM_SW;                                 /*  GAM_SW          */
+
+/* #define VDC5_GAM_G_LUT1_COUNT (16) */
+    volatile uint32_t  GAM_G_LUT1;                             /*  GAM_G_LUT1      */
+    volatile uint32_t  GAM_G_LUT2;                             /*  GAM_G_LUT2      */
+    volatile uint32_t  GAM_G_LUT3;                             /*  GAM_G_LUT3      */
+    volatile uint32_t  GAM_G_LUT4;                             /*  GAM_G_LUT4      */
+    volatile uint32_t  GAM_G_LUT5;                             /*  GAM_G_LUT5      */
+    volatile uint32_t  GAM_G_LUT6;                             /*  GAM_G_LUT6      */
+    volatile uint32_t  GAM_G_LUT7;                             /*  GAM_G_LUT7      */
+    volatile uint32_t  GAM_G_LUT8;                             /*  GAM_G_LUT8      */
+    volatile uint32_t  GAM_G_LUT9;                             /*  GAM_G_LUT9      */
+    volatile uint32_t  GAM_G_LUT10;                            /*  GAM_G_LUT10     */
+    volatile uint32_t  GAM_G_LUT11;                            /*  GAM_G_LUT11     */
+    volatile uint32_t  GAM_G_LUT12;                            /*  GAM_G_LUT12     */
+    volatile uint32_t  GAM_G_LUT13;                            /*  GAM_G_LUT13     */
+    volatile uint32_t  GAM_G_LUT14;                            /*  GAM_G_LUT14     */
+    volatile uint32_t  GAM_G_LUT15;                            /*  GAM_G_LUT15     */
+    volatile uint32_t  GAM_G_LUT16;                            /*  GAM_G_LUT16     */
+
+/* #define VDC5_GAM_G_AREA1_COUNT (8) */
+    volatile uint32_t  GAM_G_AREA1;                            /*  GAM_G_AREA1     */
+    volatile uint32_t  GAM_G_AREA2;                            /*  GAM_G_AREA2     */
+    volatile uint32_t  GAM_G_AREA3;                            /*  GAM_G_AREA3     */
+    volatile uint32_t  GAM_G_AREA4;                            /*  GAM_G_AREA4     */
+    volatile uint32_t  GAM_G_AREA5;                            /*  GAM_G_AREA5     */
+    volatile uint32_t  GAM_G_AREA6;                            /*  GAM_G_AREA6     */
+    volatile uint32_t  GAM_G_AREA7;                            /*  GAM_G_AREA7     */
+    volatile uint32_t  GAM_G_AREA8;                            /*  GAM_G_AREA8     */
+    volatile uint8_t   dummy16[24];                            /*                  */
+    volatile uint32_t  GAM_B_UPDATE;                           /*  GAM_B_UPDATE    */
+    volatile uint8_t   dummy17[4];                             /*                  */
+
+/* #define VDC5_GAM_B_LUT1_COUNT (16) */
+    volatile uint32_t  GAM_B_LUT1;                             /*  GAM_B_LUT1      */
+    volatile uint32_t  GAM_B_LUT2;                             /*  GAM_B_LUT2      */
+    volatile uint32_t  GAM_B_LUT3;                             /*  GAM_B_LUT3      */
+    volatile uint32_t  GAM_B_LUT4;                             /*  GAM_B_LUT4      */
+    volatile uint32_t  GAM_B_LUT5;                             /*  GAM_B_LUT5      */
+    volatile uint32_t  GAM_B_LUT6;                             /*  GAM_B_LUT6      */
+    volatile uint32_t  GAM_B_LUT7;                             /*  GAM_B_LUT7      */
+    volatile uint32_t  GAM_B_LUT8;                             /*  GAM_B_LUT8      */
+    volatile uint32_t  GAM_B_LUT9;                             /*  GAM_B_LUT9      */
+    volatile uint32_t  GAM_B_LUT10;                            /*  GAM_B_LUT10     */
+    volatile uint32_t  GAM_B_LUT11;                            /*  GAM_B_LUT11     */
+    volatile uint32_t  GAM_B_LUT12;                            /*  GAM_B_LUT12     */
+    volatile uint32_t  GAM_B_LUT13;                            /*  GAM_B_LUT13     */
+    volatile uint32_t  GAM_B_LUT14;                            /*  GAM_B_LUT14     */
+    volatile uint32_t  GAM_B_LUT15;                            /*  GAM_B_LUT15     */
+    volatile uint32_t  GAM_B_LUT16;                            /*  GAM_B_LUT16     */
+
+/* #define VDC5_GAM_B_AREA1_COUNT (8) */
+    volatile uint32_t  GAM_B_AREA1;                            /*  GAM_B_AREA1     */
+    volatile uint32_t  GAM_B_AREA2;                            /*  GAM_B_AREA2     */
+    volatile uint32_t  GAM_B_AREA3;                            /*  GAM_B_AREA3     */
+    volatile uint32_t  GAM_B_AREA4;                            /*  GAM_B_AREA4     */
+    volatile uint32_t  GAM_B_AREA5;                            /*  GAM_B_AREA5     */
+    volatile uint32_t  GAM_B_AREA6;                            /*  GAM_B_AREA6     */
+    volatile uint32_t  GAM_B_AREA7;                            /*  GAM_B_AREA7     */
+    volatile uint32_t  GAM_B_AREA8;                            /*  GAM_B_AREA8     */
+    volatile uint8_t   dummy18[24];                            /*                  */
+    volatile uint32_t  GAM_R_UPDATE;                           /*  GAM_R_UPDATE    */
+    volatile uint8_t   dummy19[4];                             /*                  */
+
+/* #define VDC5_GAM_R_LUT1_COUNT (16) */
+    volatile uint32_t  GAM_R_LUT1;                             /*  GAM_R_LUT1      */
+    volatile uint32_t  GAM_R_LUT2;                             /*  GAM_R_LUT2      */
+    volatile uint32_t  GAM_R_LUT3;                             /*  GAM_R_LUT3      */
+    volatile uint32_t  GAM_R_LUT4;                             /*  GAM_R_LUT4      */
+    volatile uint32_t  GAM_R_LUT5;                             /*  GAM_R_LUT5      */
+    volatile uint32_t  GAM_R_LUT6;                             /*  GAM_R_LUT6      */
+    volatile uint32_t  GAM_R_LUT7;                             /*  GAM_R_LUT7      */
+    volatile uint32_t  GAM_R_LUT8;                             /*  GAM_R_LUT8      */
+    volatile uint32_t  GAM_R_LUT9;                             /*  GAM_R_LUT9      */
+    volatile uint32_t  GAM_R_LUT10;                            /*  GAM_R_LUT10     */
+    volatile uint32_t  GAM_R_LUT11;                            /*  GAM_R_LUT11     */
+    volatile uint32_t  GAM_R_LUT12;                            /*  GAM_R_LUT12     */
+    volatile uint32_t  GAM_R_LUT13;                            /*  GAM_R_LUT13     */
+    volatile uint32_t  GAM_R_LUT14;                            /*  GAM_R_LUT14     */
+    volatile uint32_t  GAM_R_LUT15;                            /*  GAM_R_LUT15     */
+    volatile uint32_t  GAM_R_LUT16;                            /*  GAM_R_LUT16     */
+
+/* #define VDC5_GAM_R_AREA1_COUNT (8) */
+    volatile uint32_t  GAM_R_AREA1;                            /*  GAM_R_AREA1     */
+    volatile uint32_t  GAM_R_AREA2;                            /*  GAM_R_AREA2     */
+    volatile uint32_t  GAM_R_AREA3;                            /*  GAM_R_AREA3     */
+    volatile uint32_t  GAM_R_AREA4;                            /*  GAM_R_AREA4     */
+    volatile uint32_t  GAM_R_AREA5;                            /*  GAM_R_AREA5     */
+    volatile uint32_t  GAM_R_AREA6;                            /*  GAM_R_AREA6     */
+    volatile uint32_t  GAM_R_AREA7;                            /*  GAM_R_AREA7     */
+    volatile uint32_t  GAM_R_AREA8;                            /*  GAM_R_AREA8     */
+    volatile uint8_t   dummy20[24];                            /*                  */
+    volatile uint32_t  TCON_UPDATE;                            /*  TCON_UPDATE     */
+    volatile uint32_t  TCON_TIM;                               /*  TCON_TIM        */
+
+/* #define VDC5_TCON_TIM_STVA1_COUNT (2) */
+    volatile uint32_t  TCON_TIM_STVA1;                         /*  TCON_TIM_STVA1  */
+    volatile uint32_t  TCON_TIM_STVA2;                         /*  TCON_TIM_STVA2  */
+
+/* #define VDC5_TCON_TIM_STVB1_COUNT (2) */
+    volatile uint32_t  TCON_TIM_STVB1;                         /*  TCON_TIM_STVB1  */
+    volatile uint32_t  TCON_TIM_STVB2;                         /*  TCON_TIM_STVB2  */
+
+/* #define VDC5_TCON_TIM_STH1_COUNT (2) */
+    volatile uint32_t  TCON_TIM_STH1;                          /*  TCON_TIM_STH1   */
+    volatile uint32_t  TCON_TIM_STH2;                          /*  TCON_TIM_STH2   */
+
+/* #define VDC5_TCON_TIM_STB1_COUNT (2) */
+    volatile uint32_t  TCON_TIM_STB1;                          /*  TCON_TIM_STB1   */
+    volatile uint32_t  TCON_TIM_STB2;                          /*  TCON_TIM_STB2   */
+
+/* #define VDC5_TCON_TIM_CPV1_COUNT (2) */
+    volatile uint32_t  TCON_TIM_CPV1;                          /*  TCON_TIM_CPV1   */
+    volatile uint32_t  TCON_TIM_CPV2;                          /*  TCON_TIM_CPV2   */
+
+/* #define VDC5_TCON_TIM_POLA1_COUNT (2) */
+    volatile uint32_t  TCON_TIM_POLA1;                         /*  TCON_TIM_POLA1  */
+    volatile uint32_t  TCON_TIM_POLA2;                         /*  TCON_TIM_POLA2  */
+
+/* #define VDC5_TCON_TIM_POLB1_COUNT (2) */
+    volatile uint32_t  TCON_TIM_POLB1;                         /*  TCON_TIM_POLB1  */
+    volatile uint32_t  TCON_TIM_POLB2;                         /*  TCON_TIM_POLB2  */
+    volatile uint32_t  TCON_TIM_DE;                            /*  TCON_TIM_DE     */
+    volatile uint8_t   dummy21[60];                            /*                  */
+    volatile uint32_t  OUT_UPDATE;                             /*  OUT_UPDATE      */
+    volatile uint32_t  OUT_SET;                                /*  OUT_SET         */
+
+/* #define VDC5_OUT_BRIGHT1_COUNT (2) */
+    volatile uint32_t  OUT_BRIGHT1;                            /*  OUT_BRIGHT1     */
+    volatile uint32_t  OUT_BRIGHT2;                            /*  OUT_BRIGHT2     */
+    volatile uint32_t  OUT_CONTRAST;                           /*  OUT_CONTRAST    */
+    volatile uint32_t  OUT_PDTHA;                              /*  OUT_PDTHA       */
+    volatile uint8_t   dummy22[12];                            /*                  */
+    volatile uint32_t  OUT_CLK_PHASE;                          /*  OUT_CLK_PHASE   */
+    volatile uint8_t   dummy23[88];                            /*                  */
+
+/* #define VDC5_SYSCNT_INT1_COUNT (6) */
+    volatile uint32_t  SYSCNT_INT1;                            /*  SYSCNT_INT1     */
+    volatile uint32_t  SYSCNT_INT2;                            /*  SYSCNT_INT2     */
+    volatile uint32_t  SYSCNT_INT3;                            /*  SYSCNT_INT3     */
+    volatile uint32_t  SYSCNT_INT4;                            /*  SYSCNT_INT4     */
+    volatile uint32_t  SYSCNT_INT5;                            /*  SYSCNT_INT5     */
+    volatile uint32_t  SYSCNT_INT6;                            /*  SYSCNT_INT6     */
+    volatile uint16_t SYSCNT_PANEL_CLK;                       /*  SYSCNT_PANEL_CLK */
+    volatile uint16_t SYSCNT_CLUT;                            /*  SYSCNT_CLUT     */
+    volatile uint8_t   dummy24[356];                           /*                  */
+
+/* start of struct st_vdc5_from_sc0_scl0_update */
+    volatile uint32_t  SC1_SCL0_UPDATE;                        /*  SC1_SCL0_UPDATE */
+
+/* #define VDC5_SC1_SCL0_FRC1_COUNT (7) */
+    volatile uint32_t  SC1_SCL0_FRC1;                          /*  SC1_SCL0_FRC1   */
+    volatile uint32_t  SC1_SCL0_FRC2;                          /*  SC1_SCL0_FRC2   */
+    volatile uint32_t  SC1_SCL0_FRC3;                          /*  SC1_SCL0_FRC3   */
+    volatile uint32_t  SC1_SCL0_FRC4;                          /*  SC1_SCL0_FRC4   */
+    volatile uint32_t  SC1_SCL0_FRC5;                          /*  SC1_SCL0_FRC5   */
+    volatile uint32_t  SC1_SCL0_FRC6;                          /*  SC1_SCL0_FRC6   */
+    volatile uint32_t  SC1_SCL0_FRC7;                          /*  SC1_SCL0_FRC7   */
+    volatile uint8_t   dummy25[4];                             /*                  */
+    volatile uint32_t  SC1_SCL0_FRC9;                          /*  SC1_SCL0_FRC9   */
+    volatile uint16_t SC1_SCL0_MON0;                          /*  SC1_SCL0_MON0   */
+    volatile uint16_t SC1_SCL0_INT;                           /*  SC1_SCL0_INT    */
+
+/* #define VDC5_SC1_SC1_SCL0_DS1_COUNT (7) */
+    volatile uint32_t  SC1_SCL0_DS1;                           /*  SC1_SCL0_DS1    */
+    volatile uint32_t  SC1_SCL0_DS2;                           /*  SC1_SCL0_DS2    */
+    volatile uint32_t  SC1_SCL0_DS3;                           /*  SC1_SCL0_DS3    */
+    volatile uint32_t  SC1_SCL0_DS4;                           /*  SC1_SCL0_DS4    */
+    volatile uint32_t  SC1_SCL0_DS5;                           /*  SC1_SCL0_DS5    */
+    volatile uint32_t  SC1_SCL0_DS6;                           /*  SC1_SCL0_DS6    */
+    volatile uint32_t  SC1_SCL0_DS7;                           /*  SC1_SCL0_DS7    */
+
+/* #define VDC5_SC1_SC1_SCL0_US1_COUNT (8) */
+    volatile uint32_t  SC1_SCL0_US1;                           /*  SC1_SCL0_US1    */
+    volatile uint32_t  SC1_SCL0_US2;                           /*  SC1_SCL0_US2    */
+    volatile uint32_t  SC1_SCL0_US3;                           /*  SC1_SCL0_US3    */
+    volatile uint32_t  SC1_SCL0_US4;                           /*  SC1_SCL0_US4    */
+    volatile uint32_t  SC1_SCL0_US5;                           /*  SC1_SCL0_US5    */
+    volatile uint32_t  SC1_SCL0_US6;                           /*  SC1_SCL0_US6    */
+    volatile uint32_t  SC1_SCL0_US7;                           /*  SC1_SCL0_US7    */
+    volatile uint32_t  SC1_SCL0_US8;                           /*  SC1_SCL0_US8    */
+    volatile uint8_t   dummy26[4];                             /*                  */
+    volatile uint32_t  SC1_SCL0_OVR1;                          /*  SC1_SCL0_OVR1   */
+    volatile uint8_t   dummy27[16];                            /*                  */
+    volatile uint32_t  SC1_SCL1_UPDATE;                        /*  SC1_SCL1_UPDATE */
+    volatile uint8_t   dummy28[4];                             /*                  */
+
+/* #define VDC5_SC1_SCL1_WR1_COUNT (4) */
+    volatile uint32_t  SC1_SCL1_WR1;                           /*  SC1_SCL1_WR1    */
+    volatile uint32_t  SC1_SCL1_WR2;                           /*  SC1_SCL1_WR2    */
+    volatile uint32_t  SC1_SCL1_WR3;                           /*  SC1_SCL1_WR3    */
+    volatile uint32_t  SC1_SCL1_WR4;                           /*  SC1_SCL1_WR4    */
+    volatile uint8_t   dummy29[4];                             /*                  */
+    volatile uint32_t  SC1_SCL1_WR5;                           /*  SC1_SCL1_WR5    */
+    volatile uint32_t  SC1_SCL1_WR6;                           /*  SC1_SCL1_WR6    */
+    volatile uint32_t  SC1_SCL1_WR7;                           /*  SC1_SCL1_WR7    */
+    volatile uint32_t  SC1_SCL1_WR8;                           /*  SC1_SCL1_WR8    */
+    volatile uint32_t  SC1_SCL1_WR9;                           /*  SC1_SCL1_WR9    */
+    volatile uint32_t  SC1_SCL1_WR10;                          /*  SC1_SCL1_WR10   */
+
+/* end of struct st_vdc5_from_sc0_scl0_update */
+    volatile uint32_t  SC1_SCL1_WR11;                          /*  SC1_SCL1_WR11   */
+    volatile uint32_t  SC1_SCL1_MON1;                          /*  SC1_SCL1_MON1   */
+
+/* start of struct st_vdc5_from_sc0_scl1_pbuf0 */
+
+/* #define VDC5_SC1_SCL1_PBUF0_COUNT (4) */
+    volatile uint32_t  SC1_SCL1_PBUF0;                         /*  SC1_SCL1_PBUF0  */
+    volatile uint32_t  SC1_SCL1_PBUF1;                         /*  SC1_SCL1_PBUF1  */
+    volatile uint32_t  SC1_SCL1_PBUF2;                         /*  SC1_SCL1_PBUF2  */
+    volatile uint32_t  SC1_SCL1_PBUF3;                         /*  SC1_SCL1_PBUF3  */
+    volatile uint32_t  SC1_SCL1_PBUF_FLD;                      /*  SC1_SCL1_PBUF_FLD */
+    volatile uint32_t  SC1_SCL1_PBUF_CNT;                      /*  SC1_SCL1_PBUF_CNT */
+
+/* end of struct st_vdc5_from_sc0_scl1_pbuf0 */
+    volatile uint8_t   dummy30[44];                            /*                  */
+
+/* start of struct st_vdc5_from_gr0_update */
+    volatile uint32_t  GR1_UPDATE;                             /*  GR1_UPDATE      */
+    volatile uint32_t  GR1_FLM_RD;                             /*  GR1_FLM_RD      */
+
+/* #define VDC5_GR1_FLM1_COUNT (6) */
+    volatile uint32_t  GR1_FLM1;                               /*  GR1_FLM1        */
+    volatile uint32_t  GR1_FLM2;                               /*  GR1_FLM2        */
+    volatile uint32_t  GR1_FLM3;                               /*  GR1_FLM3        */
+    volatile uint32_t  GR1_FLM4;                               /*  GR1_FLM4        */
+    volatile uint32_t  GR1_FLM5;                               /*  GR1_FLM5        */
+    volatile uint32_t  GR1_FLM6;                               /*  GR1_FLM6        */
+
+/* #define VDC5_GR1_AB1_COUNT (3) */
+    volatile uint32_t  GR1_AB1;                                /*  GR1_AB1         */
+    volatile uint32_t  GR1_AB2;                                /*  GR1_AB2         */
+    volatile uint32_t  GR1_AB3;                                /*  GR1_AB3         */
+
+/* end of struct st_vdc5_from_gr0_update */
+    volatile uint32_t  GR1_AB4;                                /*  GR1_AB4         */
+    volatile uint32_t  GR1_AB5;                                /*  GR1_AB5         */
+    volatile uint32_t  GR1_AB6;                                /*  GR1_AB6         */
+
+/* start of struct st_vdc5_from_gr0_ab7 */
+    volatile uint32_t  GR1_AB7;                                /*  GR1_AB7         */
+    volatile uint32_t  GR1_AB8;                                /*  GR1_AB8         */
+    volatile uint32_t  GR1_AB9;                                /*  GR1_AB9         */
+    volatile uint32_t  GR1_AB10;                               /*  GR1_AB10        */
+    volatile uint32_t  GR1_AB11;                               /*  GR1_AB11        */
+    volatile uint32_t  GR1_BASE;                               /*  GR1_BASE        */
+
+/* end of struct st_vdc5_from_gr0_ab7 */
+    volatile uint32_t  GR1_CLUT;                               /*  GR1_CLUT        */
+    volatile uint32_t  GR1_MON;                                /*  GR1_MON         */
+    volatile uint8_t   dummy31[40];                            /*                  */
+
+/* start of struct st_vdc5_from_adj0_update */
+    volatile uint32_t  ADJ1_UPDATE;                            /*  ADJ1_UPDATE     */
+    volatile uint32_t  ADJ1_BKSTR_SET;                         /*  ADJ1_BKSTR_SET  */
+
+/* #define VDC5_ADJ1_ENH_TIM1_COUNT (3) */
+    volatile uint32_t  ADJ1_ENH_TIM1;                          /*  ADJ1_ENH_TIM1   */
+    volatile uint32_t  ADJ1_ENH_TIM2;                          /*  ADJ1_ENH_TIM2   */
+    volatile uint32_t  ADJ1_ENH_TIM3;                          /*  ADJ1_ENH_TIM3   */
+
+/* #define VDC5_ADJ1_ENH_SHP1_COUNT (6) */
+    volatile uint32_t  ADJ1_ENH_SHP1;                          /*  ADJ1_ENH_SHP1   */
+    volatile uint32_t  ADJ1_ENH_SHP2;                          /*  ADJ1_ENH_SHP2   */
+    volatile uint32_t  ADJ1_ENH_SHP3;                          /*  ADJ1_ENH_SHP3   */
+    volatile uint32_t  ADJ1_ENH_SHP4;                          /*  ADJ1_ENH_SHP4   */
+    volatile uint32_t  ADJ1_ENH_SHP5;                          /*  ADJ1_ENH_SHP5   */
+    volatile uint32_t  ADJ1_ENH_SHP6;                          /*  ADJ1_ENH_SHP6   */
+
+/* #define VDC5_ADJ1_ENH_LTI1_COUNT (2) */
+    volatile uint32_t  ADJ1_ENH_LTI1;                          /*  ADJ1_ENH_LTI1   */
+    volatile uint32_t  ADJ1_ENH_LTI2;                          /*  ADJ1_ENH_LTI2   */
+    volatile uint32_t  ADJ1_MTX_MODE;                          /*  ADJ1_MTX_MODE   */
+    volatile uint32_t  ADJ1_MTX_YG_ADJ0;                       /*  ADJ1_MTX_YG_ADJ0 */
+    volatile uint32_t  ADJ1_MTX_YG_ADJ1;                       /*  ADJ1_MTX_YG_ADJ1 */
+    volatile uint32_t  ADJ1_MTX_CBB_ADJ0;                      /*  ADJ1_MTX_CBB_ADJ0 */
+    volatile uint32_t  ADJ1_MTX_CBB_ADJ1;                      /*  ADJ1_MTX_CBB_ADJ1 */
+    volatile uint32_t  ADJ1_MTX_CRR_ADJ0;                      /*  ADJ1_MTX_CRR_ADJ0 */
+    volatile uint32_t  ADJ1_MTX_CRR_ADJ1;                      /*  ADJ1_MTX_CRR_ADJ1 */
+
+/* end of struct st_vdc5_from_adj0_update */
+    volatile uint8_t   dummy32[48];                            /*                  */
+    volatile uint32_t  GR_VIN_UPDATE;                          /*  GR_VIN_UPDATE   */
+    volatile uint8_t   dummy33[28];                            /*                  */
+
+/* #define VDC5_GR_VIN_AB1_COUNT (7) */
+    volatile uint32_t  GR_VIN_AB1;                             /*  GR_VIN_AB1      */
+    volatile uint32_t  GR_VIN_AB2;                             /*  GR_VIN_AB2      */
+    volatile uint32_t  GR_VIN_AB3;                             /*  GR_VIN_AB3      */
+    volatile uint32_t  GR_VIN_AB4;                             /*  GR_VIN_AB4      */
+    volatile uint32_t  GR_VIN_AB5;                             /*  GR_VIN_AB5      */
+    volatile uint32_t  GR_VIN_AB6;                             /*  GR_VIN_AB6      */
+    volatile uint32_t  GR_VIN_AB7;                             /*  GR_VIN_AB7      */
+    volatile uint8_t   dummy34[16];                            /*                  */
+    volatile uint32_t  GR_VIN_BASE;                            /*  GR_VIN_BASE     */
+    volatile uint8_t   dummy35[4];                             /*                  */
+    volatile uint32_t  GR_VIN_MON;                             /*  GR_VIN_MON      */
+    volatile uint8_t   dummy36[40];                            /*                  */
+    volatile uint32_t  OIR_SCL0_UPDATE;                        /*  OIR_SCL0_UPDATE */
+
+/* #define VDC5_OIR_SCL0_FRC1_COUNT (7) */
+    volatile uint32_t  OIR_SCL0_FRC1;                          /*  OIR_SCL0_FRC1   */
+    volatile uint32_t  OIR_SCL0_FRC2;                          /*  OIR_SCL0_FRC2   */
+    volatile uint32_t  OIR_SCL0_FRC3;                          /*  OIR_SCL0_FRC3   */
+    volatile uint32_t  OIR_SCL0_FRC4;                          /*  OIR_SCL0_FRC4   */
+    volatile uint32_t  OIR_SCL0_FRC5;                          /*  OIR_SCL0_FRC5   */
+    volatile uint32_t  OIR_SCL0_FRC6;                          /*  OIR_SCL0_FRC6   */
+    volatile uint32_t  OIR_SCL0_FRC7;                          /*  OIR_SCL0_FRC7   */
+    volatile uint8_t   dummy37[12];                            /*                  */
+
+/* #define VDC5_OIR_SCL0_DS1_COUNT (3) */
+    volatile uint32_t  OIR_SCL0_DS1;                           /*  OIR_SCL0_DS1    */
+    volatile uint32_t  OIR_SCL0_DS2;                           /*  OIR_SCL0_DS2    */
+    volatile uint32_t  OIR_SCL0_DS3;                           /*  OIR_SCL0_DS3    */
+    volatile uint8_t   dummy38[12];                            /*                  */
+    volatile uint32_t  OIR_SCL0_DS7;                           /*  OIR_SCL0_DS7    */
+    volatile uint32_t  OIR_SCL0_US1;                           /*  OIR_SCL0_US1    */
+    volatile uint32_t  OIR_SCL0_US2;                           /*  OIR_SCL0_US2    */
+    volatile uint32_t  OIR_SCL0_US3;                           /*  OIR_SCL0_US3    */
+    volatile uint8_t   dummy39[16];                            /*                  */
+    volatile uint32_t  OIR_SCL0_US8;                           /*  OIR_SCL0_US8    */
+    volatile uint8_t   dummy40[4];                             /*                  */
+    volatile uint32_t  OIR_SCL0_OVR1;                          /*  OIR_SCL0_OVR1   */
+    volatile uint8_t   dummy41[16];                            /*                  */
+    volatile uint32_t  OIR_SCL1_UPDATE;                        /*  OIR_SCL1_UPDATE */
+    volatile uint8_t   dummy42[4];                             /*                  */
+
+/* #define VDC5_OIR_SCL1_WR1_COUNT (4) */
+    volatile uint32_t  OIR_SCL1_WR1;                           /*  OIR_SCL1_WR1    */
+    volatile uint32_t  OIR_SCL1_WR2;                           /*  OIR_SCL1_WR2    */
+    volatile uint32_t  OIR_SCL1_WR3;                           /*  OIR_SCL1_WR3    */
+    volatile uint32_t  OIR_SCL1_WR4;                           /*  OIR_SCL1_WR4    */
+    volatile uint8_t   dummy43[4];                             /*                  */
+    volatile uint32_t  OIR_SCL1_WR5;                           /*  OIR_SCL1_WR5    */
+    volatile uint32_t  OIR_SCL1_WR6;                           /*  OIR_SCL1_WR6    */
+    volatile uint32_t  OIR_SCL1_WR7;                           /*  OIR_SCL1_WR7    */
+    volatile uint8_t   dummy44[88];                            /*                  */
+    volatile uint32_t  GR_OIR_UPDATE;                          /*  GR_OIR_UPDATE   */
+    volatile uint32_t  GR_OIR_FLM_RD;                          /*  GR_OIR_FLM_RD   */
+
+/* #define VDC5_GR_OIR_FLM1_COUNT (6) */
+    volatile uint32_t  GR_OIR_FLM1;                            /*  GR_OIR_FLM1     */
+    volatile uint32_t  GR_OIR_FLM2;                            /*  GR_OIR_FLM2     */
+    volatile uint32_t  GR_OIR_FLM3;                            /*  GR_OIR_FLM3     */
+    volatile uint32_t  GR_OIR_FLM4;                            /*  GR_OIR_FLM4     */
+    volatile uint32_t  GR_OIR_FLM5;                            /*  GR_OIR_FLM5     */
+    volatile uint32_t  GR_OIR_FLM6;                            /*  GR_OIR_FLM6     */
+
+/* #define VDC5_GR_OIR_AB1_COUNT (3) */
+    volatile uint32_t  GR_OIR_AB1;                             /*  GR_OIR_AB1      */
+    volatile uint32_t  GR_OIR_AB2;                             /*  GR_OIR_AB2      */
+    volatile uint32_t  GR_OIR_AB3;                             /*  GR_OIR_AB3      */
+    volatile uint8_t   dummy45[12];                            /*                  */
+    volatile uint32_t  GR_OIR_AB7;                             /*  GR_OIR_AB7      */
+    volatile uint32_t  GR_OIR_AB8;                             /*  GR_OIR_AB8      */
+    volatile uint32_t  GR_OIR_AB9;                             /*  GR_OIR_AB9      */
+    volatile uint32_t  GR_OIR_AB10;                            /*  GR_OIR_AB10     */
+    volatile uint32_t  GR_OIR_AB11;                            /*  GR_OIR_AB11     */
+    volatile uint32_t  GR_OIR_BASE;                            /*  GR_OIR_BASE     */
+    volatile uint32_t  GR_OIR_CLUT;                            /*  GR_OIR_CLUT     */
+    volatile uint32_t  GR_OIR_MON;                             /*  GR_OIR_MON      */
+} r_io_vdc5_t;
+
+
+typedef struct st_vdc5_from_gr0_update
+{
+ 
+    volatile uint32_t  GR0_UPDATE;                             /*  GR0_UPDATE      */
+    volatile uint32_t  GR0_FLM_RD;                             /*  GR0_FLM_RD      */
+    volatile uint32_t  GR0_FLM1;                               /*  GR0_FLM1        */
+    volatile uint32_t  GR0_FLM2;                               /*  GR0_FLM2        */
+    volatile uint32_t  GR0_FLM3;                               /*  GR0_FLM3        */
+    volatile uint32_t  GR0_FLM4;                               /*  GR0_FLM4        */
+    volatile uint32_t  GR0_FLM5;                               /*  GR0_FLM5        */
+    volatile uint32_t  GR0_FLM6;                               /*  GR0_FLM6        */
+    volatile uint32_t  GR0_AB1;                                /*  GR0_AB1         */
+    volatile uint32_t  GR0_AB2;                                /*  GR0_AB2         */
+    volatile uint32_t  GR0_AB3;                                /*  GR0_AB3         */
+} r_io_vdc5_from_gr0_update_t;
+
+
+typedef struct st_vdc5_from_gr0_ab7
+{
+ 
+    volatile uint32_t  GR0_AB7;                                /*  GR0_AB7         */
+    volatile uint32_t  GR0_AB8;                                /*  GR0_AB8         */
+    volatile uint32_t  GR0_AB9;                                /*  GR0_AB9         */
+    volatile uint32_t  GR0_AB10;                               /*  GR0_AB10        */
+    volatile uint32_t  GR0_AB11;                               /*  GR0_AB11        */
+    volatile uint32_t  GR0_BASE;                               /*  GR0_BASE        */
+} r_io_vdc5_from_gr0_ab7_t;
+
+
+typedef struct st_vdc5_from_adj0_update
+{
+ 
+    volatile uint32_t  ADJ0_UPDATE;                            /*  ADJ0_UPDATE     */
+    volatile uint32_t  ADJ0_BKSTR_SET;                         /*  ADJ0_BKSTR_SET  */
+    volatile uint32_t  ADJ0_ENH_TIM1;                          /*  ADJ0_ENH_TIM1   */
+    volatile uint32_t  ADJ0_ENH_TIM2;                          /*  ADJ0_ENH_TIM2   */
+    volatile uint32_t  ADJ0_ENH_TIM3;                          /*  ADJ0_ENH_TIM3   */
+    volatile uint32_t  ADJ0_ENH_SHP1;                          /*  ADJ0_ENH_SHP1   */
+    volatile uint32_t  ADJ0_ENH_SHP2;                          /*  ADJ0_ENH_SHP2   */
+    volatile uint32_t  ADJ0_ENH_SHP3;                          /*  ADJ0_ENH_SHP3   */
+    volatile uint32_t  ADJ0_ENH_SHP4;                          /*  ADJ0_ENH_SHP4   */
+    volatile uint32_t  ADJ0_ENH_SHP5;                          /*  ADJ0_ENH_SHP5   */
+    volatile uint32_t  ADJ0_ENH_SHP6;                          /*  ADJ0_ENH_SHP6   */
+    volatile uint32_t  ADJ0_ENH_LTI1;                          /*  ADJ0_ENH_LTI1   */
+    volatile uint32_t  ADJ0_ENH_LTI2;                          /*  ADJ0_ENH_LTI2   */
+    volatile uint32_t  ADJ0_MTX_MODE;                          /*  ADJ0_MTX_MODE   */
+    volatile uint32_t  ADJ0_MTX_YG_ADJ0;                       /*  ADJ0_MTX_YG_ADJ0 */
+    volatile uint32_t  ADJ0_MTX_YG_ADJ1;                       /*  ADJ0_MTX_YG_ADJ1 */
+    volatile uint32_t  ADJ0_MTX_CBB_ADJ0;                      /*  ADJ0_MTX_CBB_ADJ0 */
+    volatile uint32_t  ADJ0_MTX_CBB_ADJ1;                      /*  ADJ0_MTX_CBB_ADJ1 */
+    volatile uint32_t  ADJ0_MTX_CRR_ADJ0;                      /*  ADJ0_MTX_CRR_ADJ0 */
+    volatile uint32_t  ADJ0_MTX_CRR_ADJ1;                      /*  ADJ0_MTX_CRR_ADJ1 */
+} r_io_vdc5_from_adj0_update_t;
+
+
+typedef struct st_vdc5_from_sc0_scl0_update
+{
+ 
+    volatile uint32_t  SC0_SCL0_UPDATE;                        /*  SC0_SCL0_UPDATE */
+    volatile uint32_t  SC0_SCL0_FRC1;                          /*  SC0_SCL0_FRC1   */
+    volatile uint32_t  SC0_SCL0_FRC2;                          /*  SC0_SCL0_FRC2   */
+    volatile uint32_t  SC0_SCL0_FRC3;                          /*  SC0_SCL0_FRC3   */
+    volatile uint32_t  SC0_SCL0_FRC4;                          /*  SC0_SCL0_FRC4   */
+    volatile uint32_t  SC0_SCL0_FRC5;                          /*  SC0_SCL0_FRC5   */
+    volatile uint32_t  SC0_SCL0_FRC6;                          /*  SC0_SCL0_FRC6   */
+    volatile uint32_t  SC0_SCL0_FRC7;                          /*  SC0_SCL0_FRC7   */
+    volatile uint8_t   dummy5[4];                              /*                  */
+    volatile uint32_t  SC0_SCL0_FRC9;                          /*  SC0_SCL0_FRC9   */
+    volatile uint16_t SC0_SCL0_MON0;                          /*  SC0_SCL0_MON0   */
+    volatile uint16_t SC0_SCL0_INT;                           /*  SC0_SCL0_INT    */
+    volatile uint32_t  SC0_SCL0_DS1;                           /*  SC0_SCL0_DS1    */
+    volatile uint32_t  SC0_SCL0_DS2;                           /*  SC0_SCL0_DS2    */
+    volatile uint32_t  SC0_SCL0_DS3;                           /*  SC0_SCL0_DS3    */
+    volatile uint32_t  SC0_SCL0_DS4;                           /*  SC0_SCL0_DS4    */
+    volatile uint32_t  SC0_SCL0_DS5;                           /*  SC0_SCL0_DS5    */
+    volatile uint32_t  SC0_SCL0_DS6;                           /*  SC0_SCL0_DS6    */
+    volatile uint32_t  SC0_SCL0_DS7;                           /*  SC0_SCL0_DS7    */
+    volatile uint32_t  SC0_SCL0_US1;                           /*  SC0_SCL0_US1    */
+    volatile uint32_t  SC0_SCL0_US2;                           /*  SC0_SCL0_US2    */
+    volatile uint32_t  SC0_SCL0_US3;                           /*  SC0_SCL0_US3    */
+    volatile uint32_t  SC0_SCL0_US4;                           /*  SC0_SCL0_US4    */
+    volatile uint32_t  SC0_SCL0_US5;                           /*  SC0_SCL0_US5    */
+    volatile uint32_t  SC0_SCL0_US6;                           /*  SC0_SCL0_US6    */
+    volatile uint32_t  SC0_SCL0_US7;                           /*  SC0_SCL0_US7    */
+    volatile uint32_t  SC0_SCL0_US8;                           /*  SC0_SCL0_US8    */
+    volatile uint8_t   dummy6[4];                              /*                  */
+    volatile uint32_t  SC0_SCL0_OVR1;                          /*  SC0_SCL0_OVR1   */
+    volatile uint8_t   dummy7[16];                             /*                  */
+    volatile uint32_t  SC0_SCL1_UPDATE;                        /*  SC0_SCL1_UPDATE */
+    volatile uint8_t   dummy8[4];                              /*                  */
+    volatile uint32_t  SC0_SCL1_WR1;                           /*  SC0_SCL1_WR1    */
+    volatile uint32_t  SC0_SCL1_WR2;                           /*  SC0_SCL1_WR2    */
+    volatile uint32_t  SC0_SCL1_WR3;                           /*  SC0_SCL1_WR3    */
+    volatile uint32_t  SC0_SCL1_WR4;                           /*  SC0_SCL1_WR4    */
+    volatile uint8_t   dummy9[4];                              /*                  */
+    volatile uint32_t  SC0_SCL1_WR5;                           /*  SC0_SCL1_WR5    */
+    volatile uint32_t  SC0_SCL1_WR6;                           /*  SC0_SCL1_WR6    */
+    volatile uint32_t  SC0_SCL1_WR7;                           /*  SC0_SCL1_WR7    */
+    volatile uint32_t  SC0_SCL1_WR8;                           /*  SC0_SCL1_WR8    */
+    volatile uint32_t  SC0_SCL1_WR9;                           /*  SC0_SCL1_WR9    */
+    volatile uint32_t  SC0_SCL1_WR10;                          /*  SC0_SCL1_WR10   */
+} r_io_vdc5_from_sc0_scl0_updat_t /* Short of r_io_vdc5_from_sc0_scl0_update_t */;
+
+
+typedef struct st_vdc5_from_sc0_scl1_pbuf0
+{
+ 
+    volatile uint32_t  SC0_SCL1_PBUF0;                         /*  SC0_SCL1_PBUF0  */
+    volatile uint32_t  SC0_SCL1_PBUF1;                         /*  SC0_SCL1_PBUF1  */
+    volatile uint32_t  SC0_SCL1_PBUF2;                         /*  SC0_SCL1_PBUF2  */
+    volatile uint32_t  SC0_SCL1_PBUF3;                         /*  SC0_SCL1_PBUF3  */
+    volatile uint32_t  SC0_SCL1_PBUF_FLD;                      /*  SC0_SCL1_PBUF_FLD */
+    volatile uint32_t  SC0_SCL1_PBUF_CNT;                      /*  SC0_SCL1_PBUF_CNT */
+} r_io_vdc5_from_sc0_scl1_pbuf0_t;
+
+
+/* Channel array defines of VDC5 (2)*/
+#ifdef  DECLARE_VDC5_CHANNELS
+volatile struct st_vdc5*  VDC5[ VDC5_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    VDC5_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_VDC5_CHANNELS */
+
+#ifdef  DECLARE_VDC50_FROM_GR2_AB7_ARRAY_CHANNELS
+volatile struct st_vdc5_from_gr0_ab7*  VDC50_FROM_GR2_AB7_ARRAY[ VDC5_COUNT ][ VDC50_FROM_GR2_AB7_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    VDC50_FROM_GR2_AB7_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_VDC50_FROM_GR2_AB7_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_VDC50_FROM_GR2_UPDATE_ARRAY_CHANNELS
+volatile struct st_vdc5_from_gr0_update*  VDC50_FROM_GR2_UPDATE_ARRAY[ VDC5_COUNT ][ VDC50_FROM_GR2_UPDATE_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    VDC50_FROM_GR2_UPDATE_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_VDC50_FROM_GR2_UPDATE_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_VDC50_FROM_SC0_SCL1_PBUF0_ARRAY_CHANNELS
+volatile struct st_vdc5_from_sc0_scl1_pbuf0*  VDC50_FROM_SC0_SCL1_PBUF0_ARRAY[ VDC5_COUNT ][ VDC50_FROM_SC0_SCL1_PBUF0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    VDC50_FROM_SC0_SCL1_PBUF0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_VDC50_FROM_SC0_SCL1_PBUF0_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_VDC50_FROM_SC0_SCL0_UPDATE_ARRAY_CHANNELS
+volatile struct st_vdc5_from_sc0_scl0_update*  VDC50_FROM_SC0_SCL0_UPDATE_ARRAY[ VDC5_COUNT ][ VDC50_FROM_SC0_SCL0_UPDATE_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    VDC50_FROM_SC0_SCL0_UPDATE_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_VDC50_FROM_SC0_SCL0_UPDATE_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_VDC50_FROM_ADJ0_UPDATE_ARRAY_CHANNELS
+volatile struct st_vdc5_from_adj0_update*  VDC50_FROM_ADJ0_UPDATE_ARRAY[ VDC5_COUNT ][ VDC50_FROM_ADJ0_UPDATE_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    VDC50_FROM_ADJ0_UPDATE_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_VDC50_FROM_ADJ0_UPDATE_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_VDC50_FROM_GR0_AB7_ARRAY_CHANNELS
+volatile struct st_vdc5_from_gr0_ab7*  VDC50_FROM_GR0_AB7_ARRAY[ VDC5_COUNT ][ VDC50_FROM_GR0_AB7_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    VDC50_FROM_GR0_AB7_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_VDC50_FROM_GR0_AB7_ARRAY_CHANNELS */
+
+#ifdef  DECLARE_VDC50_FROM_GR0_UPDATE_ARRAY_CHANNELS
+volatile struct st_vdc5_from_gr0_update*  VDC50_FROM_GR0_UPDATE_ARRAY[ VDC5_COUNT ][ VDC50_FROM_GR0_UPDATE_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    VDC50_FROM_GR0_UPDATE_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+#endif  /* DECLARE_VDC50_FROM_GR0_UPDATE_ARRAY_CHANNELS */
+/* End of channel array defines of VDC5 (2)*/
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/wdt_iodefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/wdt_iodefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/iodefines/wdt_iodefine.h	(revision 429)
@@ -0,0 +1,57 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer*
+* Copyright (C) 2013-2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : wdt_iodefine.h
+* $Rev: $
+* $Date::                           $
+* Description : Definition of I/O Register for RZ/A1H,M (V2.00h)
+******************************************************************************/
+#ifndef WDT_IODEFINE_H
+#define WDT_IODEFINE_H
+/* ->QAC 0639 : Over 127 members (C90) */
+/* ->QAC 0857 : Over 1024 #define (C90) */
+/* ->MISRA 18.4 : Pack unpack union */ /* ->SEC M1.6.2 */
+/* ->SEC M1.10.1 : Not magic number */
+
+#define WDT     (*(struct st_wdt     *)0xFCFE0000uL) /* WDT */
+
+
+#define WDTWTCSR (WDT.WTCSR)
+#define WDTWTCNT (WDT.WTCNT)
+#define WDTWRCSR (WDT.WRCSR)
+
+
+typedef struct st_wdt
+{
+                                                           /* WDT              */
+    volatile uint16_t WTCSR;                                  /*  WTCSR           */
+    volatile uint16_t WTCNT;                                  /*  WTCNT           */
+    volatile uint16_t WRCSR;                                  /*  WRCSR           */
+} r_io_wdt_t;
+
+
+/* <-SEC M1.10.1 */
+/* <-MISRA 18.4 */ /* <-SEC M1.6.2 */
+/* <-QAC 0857 */
+/* <-QAC 0639 */
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/reg32_t.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/reg32_t.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/inc/reg32_t.h	(revision 429)
@@ -0,0 +1,11 @@
+#ifndef __REG32_T
+#define __REG32_T
+
+union reg32_t {
+    volatile uint32_t UINT32;
+    volatile uint16_t UINT16[2];
+    volatile uint8_t  UINT8[4];
+};
+
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/mbed_sf_boot.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/mbed_sf_boot.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/mbed_sf_boot.c	(revision 429)
@@ -0,0 +1,828 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/**************************************************************************//**
+* @file         mbed_sf_boot.c
+* $Rev: $
+* $Date::                           $
+* @brief        RZ_A1 serial flash boot loader
+******************************************************************************/
+#if defined  (__CC_ARM)
+#pragma arm section rodata = "BOOT_LOADER"
+const char boot_loader[]  __attribute__((used)) =
+
+#elif defined (__ICCARM__)
+__root const char boot_loader[] @ 0x18000000 =
+#else
+const char boot_loader[]  __attribute__ ((section(".boot_loader"), used)) =
+
+#endif
+{
+    0x18,0xF0,0x9F,0xE5,0x18,0xF0,0x9F,0xE5,0x18,0xF0,0x9F,0xE5,0x18,0xF0,0x9F,0xE5,
+    0x18,0xF0,0x9F,0xE5,0x18,0xF0,0x9F,0xE5,0x18,0xF0,0x9F,0xE5,0x18,0xF0,0x9F,0xE5,
+    0x00,0x30,0x00,0x18,0x74,0x30,0x00,0x18,0x78,0x30,0x00,0x18,0x7C,0x30,0x00,0x18,
+    0x80,0x30,0x00,0x18,0x84,0x30,0x00,0x18,0x88,0x30,0x00,0x18,0x8C,0x30,0x00,0x18,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0x2C,0x30,0x9F,0xE5,0x00,0x20,0xA0,0xE3,0x28,0x10,0x9F,0xE5,0x28,0x00,0x9F,0xE5,
+    0x10,0x40,0x2D,0xE9,0x23,0x31,0xA0,0xE1,0x02,0x00,0x00,0xEA,0x04,0x40,0x91,0xE4,
+    0x01,0x20,0x82,0xE2,0x04,0x40,0x80,0xE4,0x03,0x00,0x52,0xE1,0xFA,0xFF,0xFF,0xBA,
+    0x10,0x80,0xBD,0xE8,0x97,0x28,0x00,0x00,0x00,0x04,0x00,0x18,0x00,0x02,0x02,0x20,
+    0x70,0x40,0x2D,0xE9,0x02,0x29,0xA0,0xE3,0xC8,0x40,0x9F,0xE5,0x0F,0x10,0xA0,0xE3,
+    0x04,0x00,0xA0,0xE1,0x4C,0x00,0x00,0xEB,0x01,0x00,0x50,0xE3,0x06,0x00,0x00,0x1A,
+    0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x00,0xA0,0xE1,
+    0x33,0x00,0x00,0xEB,0x08,0x00,0x44,0xE2,0xB8,0x00,0xD0,0xE1,0x01,0x34,0xA0,0xE3,
+    0x94,0x50,0x9F,0xE5,0x18,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,
+    0x32,0x00,0x00,0xEB,0x3C,0x40,0x85,0xE2,0x02,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x04,0x00,0xA0,0xE1,0x3C,0x00,0x00,0xEB,0x00,0x00,0x50,0xE3,0xF9,0xFF,0xFF,0x1A,
+    0x01,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x00,0xA0,0xE1,0x36,0x00,0x00,0xEB,
+    0x01,0x00,0x50,0xE3,0xF9,0xFF,0xFF,0x1A,0x00,0x00,0xA0,0xE3,0x4C,0x10,0x9F,0xE5,
+    0x04,0x00,0x81,0xE5,0x00,0x20,0xA0,0xE1,0x44,0x40,0x9F,0xE5,0x00,0x10,0xA0,0xE1,
+    0x03,0x30,0xA0,0xE3,0x04,0x00,0xA0,0xE1,0x1C,0x00,0x00,0xEB,0xFF,0x3C,0xA0,0xE3,
+    0x08,0x20,0xA0,0xE3,0x02,0x10,0xA0,0xE3,0x04,0x00,0xA0,0xE1,0x17,0x00,0x00,0xEB,
+    0x05,0x00,0xA0,0xE1,0x01,0x3C,0xA0,0xE3,0x70,0x40,0xBD,0xE8,0x08,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x11,0x00,0x00,0xEA,0x08,0x18,0xFF,0xFC,0x0C,0xA0,0xEF,0x3F,
+    0x00,0xA0,0xEF,0x3F,0x08,0xA0,0xEF,0x3F,0x10,0x40,0x2D,0xE9,0x00,0x40,0xD0,0xE5,
+    0x11,0x12,0xA0,0xE1,0x03,0x20,0xC4,0xE1,0x02,0x10,0x81,0xE1,0x00,0x10,0xC0,0xE5,
+    0x10,0x80,0xBD,0xE8,0x10,0x40,0x2D,0xE9,0xB0,0x40,0xD0,0xE1,0x11,0x12,0xA0,0xE1,
+    0x03,0x20,0xC4,0xE1,0x02,0x10,0x81,0xE1,0xB0,0x10,0xC0,0xE1,0x10,0x80,0xBD,0xE8,
+    0x10,0x40,0x2D,0xE9,0x00,0x40,0x90,0xE5,0x11,0x12,0xA0,0xE1,0x03,0x20,0xC4,0xE1,
+    0x02,0x10,0x81,0xE1,0x00,0x10,0x80,0xE5,0x10,0x80,0xBD,0xE8,0x00,0x00,0xD0,0xE5,
+    0x02,0x00,0x00,0xE0,0x30,0x01,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0xB0,0x00,0xD0,0xE1,
+    0x02,0x00,0x00,0xE0,0x30,0x01,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x90,0xE5,
+    0x02,0x00,0x00,0xE0,0x30,0x01,0xA0,0xE1,0x1E,0xFF,0x2F,0xE1,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0x10,0xFF,0x2F,0xE1,0x10,0x40,0x2D,0xE9,0x00,0x00,0xA0,0xE3,0x7D,0x03,0x00,0xEB,
+    0x2C,0x10,0x9F,0xE5,0x00,0x00,0xA0,0xE3,0x7B,0x03,0x00,0xEB,0x20,0x20,0x9F,0xE5,
+    0x00,0x10,0xA0,0xE3,0x01,0x00,0xA0,0xE1,0x51,0x03,0x00,0xEB,0x00,0x00,0x50,0xE3,
+    0x00,0x00,0x00,0x0A,0xFE,0xFF,0xFF,0xEA,0x10,0x40,0xBD,0xE8,0x04,0x00,0x9F,0xE5,
+    0xEE,0xFF,0xFF,0xEA,0x94,0x2A,0x02,0x20,0x00,0x40,0x00,0x18,0xF0,0x41,0x2D,0xE9,
+    0x00,0x40,0xA0,0xE1,0x03,0x70,0xA0,0xE1,0x02,0x50,0xA0,0xE1,0x18,0x60,0x9D,0xE5,
+    0x01,0x80,0xA0,0xE1,0x01,0x00,0xA0,0xE1,0xD9,0x01,0x00,0xEB,0x00,0x00,0x50,0xE3,
+    0xF0,0x81,0xBD,0x18,0x00,0x00,0xA0,0xE3,0x01,0x20,0xA0,0xE3,0x0F,0x00,0x56,0xE3,
+    0x54,0x16,0x9F,0xE5,0x18,0x30,0x81,0xE2,0x00,0x00,0x81,0xE5,0x08,0x00,0x81,0xE5,
+    0x14,0x20,0x81,0xE5,0xD8,0x20,0xA0,0x13,0x41,0x00,0x83,0xE8,0xDC,0x20,0xA0,0x03,
+    0x20,0x00,0x81,0xE5,0x01,0x00,0x55,0xE3,0x24,0x00,0x81,0xE5,0x28,0x00,0x81,0xE5,
+    0x2C,0x00,0x81,0xE5,0x30,0x00,0x81,0xE5,0x46,0x20,0xC1,0xE5,0xA4,0x20,0xA0,0x01,
+    0x48,0x20,0x81,0x05,0x48,0x40,0x81,0x15,0x34,0x00,0x81,0xE5,0x38,0x00,0x81,0xE5,
+    0x3C,0x00,0x81,0xE5,0x40,0x00,0x81,0xE5,0x08,0x00,0xA0,0xE1,0xF8,0x15,0x9F,0xE5,
+    0x91,0x08,0x00,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x81,0xBD,0x18,0x07,0x20,0xA0,0xE1,
+    0x05,0x10,0xA0,0xE1,0x08,0x00,0xA0,0xE1,0xF0,0x41,0xBD,0xE8,0x9E,0x01,0x00,0xEA,
+    0xFF,0x5F,0x2D,0xE9,0x00,0xB0,0xA0,0xE1,0x02,0x70,0xA0,0xE1,0x01,0x60,0xA0,0xE1,
+    0x0C,0x00,0x9D,0xE5,0x40,0x80,0x9D,0xE5,0x3C,0x90,0x9D,0xE5,0x38,0xA0,0x9D,0xE5,
+    0xAB,0x01,0x00,0xEB,0x00,0x00,0x50,0xE3,0x7A,0x00,0x00,0x1A,0x00,0x50,0xA0,0xE3,
+    0xA4,0x45,0x9F,0xE5,0x01,0x00,0xA0,0xE3,0x00,0x00,0x59,0xE3,0x14,0x10,0x84,0xE2,
+    0x00,0x50,0x84,0xE5,0x08,0x50,0x84,0xE5,0x21,0x01,0x81,0xE8,0x28,0x10,0x84,0xE2,
+    0x20,0x50,0x84,0xE5,0x24,0x50,0x84,0xE5,0x21,0x00,0x81,0xE8,0x30,0x50,0x84,0xE5,
+    0x34,0x50,0x84,0xE5,0x38,0x50,0x84,0xE5,0x3C,0x50,0x84,0xE5,0x40,0x50,0x84,0xE5,
+    0x22,0x00,0x00,0x0A,0x0F,0x00,0x58,0xE3,0x34,0x00,0xA0,0x03,0x32,0x00,0xA0,0x13,
+    0x01,0x00,0x5A,0xE3,0x50,0x15,0x9F,0xE5,0x46,0x00,0xC4,0xE5,0xAB,0x00,0xA0,0x01,
+    0x48,0x00,0x84,0x05,0x48,0xB0,0x84,0x15,0x0C,0x00,0x9D,0xE5,0x62,0x08,0x00,0xEB,
+    0x00,0x00,0x50,0xE3,0x5B,0x00,0x00,0x1A,0x14,0x50,0x84,0xE5,0x10,0x90,0x84,0xE5,
+    0x01,0x30,0xA0,0xE3,0x18,0x50,0x84,0xE5,0x01,0x00,0x5A,0xE3,0x1C,0x50,0x84,0xE5,
+    0x0F,0x00,0xA0,0xE3,0x20,0x50,0x84,0xE5,0x08,0x10,0xA0,0xE3,0x30,0x30,0x84,0xE5,
+    0x0C,0x20,0xA0,0xE3,0x2C,0x50,0x84,0xE5,0x0C,0x00,0x00,0x0A,0x03,0x00,0x17,0xE3,
+    0x20,0x00,0x00,0x0A,0x01,0x00,0x17,0xE3,0x23,0x00,0x00,0x0A,0x00,0x00,0x57,0xE3,
+    0x01,0x80,0xA0,0xE3,0x24,0x10,0x84,0xE5,0x42,0x00,0x00,0xDA,0x2C,0x00,0x00,0xEA,
+    0x0F,0x00,0x58,0xE3,0x02,0x00,0xA0,0x13,0x12,0x00,0xA0,0x03,0xDB,0xFF,0xFF,0xEA,
+    0x07,0x00,0x17,0xE3,0x09,0x00,0x00,0x0A,0x03,0x00,0x17,0xE3,0x0C,0x00,0x00,0x0A,
+    0x01,0x00,0x17,0xE3,0x00,0x00,0xE0,0x13,0x3A,0x00,0x00,0x1A,0x00,0x00,0x57,0xE3,
+    0x02,0x80,0xA0,0xE3,0x24,0x10,0x84,0xE5,0x1F,0x00,0x00,0xCA,0x31,0x00,0x00,0xEA,
+    0x00,0x00,0x57,0xE3,0x08,0x80,0xA0,0xE3,0x24,0x00,0x84,0xE5,0x1E,0x00,0x00,0xCA,
+    0x2C,0x00,0x00,0xEA,0x00,0x00,0x57,0xE3,0x04,0x80,0xA0,0xE3,0x24,0x20,0x84,0xE5,
+    0x17,0x00,0x00,0xCA,0x27,0x00,0x00,0xEA,0x00,0x00,0x57,0xE3,0x04,0x80,0xA0,0xE3,
+    0x24,0x00,0x84,0xE5,0x12,0x00,0x00,0xCA,0x22,0x00,0x00,0xEA,0x00,0x00,0x57,0xE3,
+    0x02,0x80,0xA0,0xE3,0x24,0x20,0x84,0xE5,0x0B,0x00,0x00,0xCA,0x1D,0x00,0x00,0xEA,
+    0x01,0x00,0x58,0xE3,0x06,0x00,0x00,0x0A,0x02,0x00,0x58,0xE3,0x06,0x00,0x00,0x0A,
+    0x04,0x00,0x58,0xE3,0x06,0x00,0x00,0x0A,0x08,0x00,0x58,0xE3,0x0A,0x00,0x00,0x1A,
+    0x05,0x00,0x00,0xEA,0x00,0x00,0xD6,0xE5,0x06,0x00,0x00,0xEA,0xB0,0x00,0xD6,0xE1,
+    0x04,0x00,0x00,0xEA,0x00,0x00,0x96,0xE5,0x02,0x00,0x00,0xEA,0x00,0x10,0x96,0xE5,
+    0x5C,0x10,0x84,0xE5,0x04,0x00,0x96,0xE5,0x58,0x00,0x84,0xE5,0x08,0x70,0x47,0xE0,
+    0x00,0x00,0x57,0xE3,0xF0,0x13,0x9F,0xE5,0x28,0x50,0x84,0xD5,0x08,0x60,0x86,0xE0,
+    0x0C,0x00,0x9D,0xE5,0x0C,0x08,0x00,0xEB,0x00,0x00,0x50,0xE3,0x05,0x00,0x00,0x1A,
+    0x00,0x00,0x57,0xE3,0xE1,0xFF,0xFF,0xCA,0x0C,0x00,0x9D,0xE5,0x09,0x20,0xA0,0xE1,
+    0x0A,0x10,0xA0,0xE1,0x18,0x01,0x00,0xEB,0x10,0xD0,0x8D,0xE2,0xF0,0x9F,0xBD,0xE8,
+    0xF0,0x47,0x2D,0xE9,0x01,0x50,0xA0,0xE1,0xAC,0x43,0x9F,0xE5,0x00,0x70,0xA0,0xE3,
+    0x24,0x10,0x9D,0xE5,0x01,0x80,0xA0,0xE3,0x20,0x90,0x9D,0xE5,0x02,0x60,0xA0,0xE1,
+    0x1C,0x20,0x84,0xE2,0x03,0xA0,0xA0,0xE1,0x00,0x70,0x84,0xE5,0x0F,0x00,0x51,0xE3,
+    0x08,0x70,0x84,0xE5,0x14,0x80,0x84,0xE5,0x18,0x70,0x84,0xE5,0x82,0x00,0x82,0xE8,
+    0x24,0x20,0x84,0xE2,0x6C,0x10,0xA0,0x03,0x6B,0x10,0xA0,0x13,0x80,0x01,0x82,0xE8,
+    0x01,0x00,0x59,0xE3,0x2C,0x70,0x84,0xE5,0xA0,0x00,0xA0,0x01,0x30,0x70,0x84,0xE5,
+    0x46,0x10,0xC4,0xE5,0x07,0x10,0xA0,0xE3,0x34,0x80,0x84,0xE5,0x44,0x70,0xC4,0xE5,
+    0x45,0x10,0xC4,0xE5,0x38,0x70,0x84,0xE5,0x3C,0x70,0x84,0xE5,0x38,0x13,0x9F,0xE5,
+    0x40,0x70,0x84,0xE5,0x48,0x00,0x84,0xE5,0x03,0x00,0xA0,0xE1,0xDE,0x07,0x00,0xEB,
+    0x00,0x00,0x50,0xE3,0xF0,0x87,0xBD,0x18,0x02,0x30,0xA0,0xE3,0x10,0xC0,0x84,0xE2,
+    0x01,0x00,0x59,0xE3,0x0F,0x00,0xA0,0xE3,0x08,0x10,0xA0,0xE3,0x88,0x00,0x8C,0xE8,
+    0x0C,0x20,0xA0,0xE3,0x18,0x70,0x84,0xE5,0x1C,0x70,0x84,0xE5,0x20,0x70,0x84,0xE5,
+    0x2C,0x80,0x84,0xE5,0x30,0x70,0x84,0xE5,0x34,0x70,0x84,0xE5,0x04,0x00,0x00,0x0A,
+    0x04,0x00,0x56,0xE3,0x1F,0x00,0x00,0x0A,0x02,0x00,0x56,0xE3,0x1F,0x00,0x00,0x0A,
+    0x06,0x00,0x00,0xEA,0x08,0x00,0x56,0xE3,0x1A,0x00,0x00,0x0A,0x04,0x00,0x56,0xE3,
+    0x1A,0x00,0x00,0x0A,0x02,0x00,0x56,0xE3,0x00,0x00,0xE0,0x13,0xF0,0x87,0xBD,0x18,
+    0x24,0x10,0x84,0xE5,0x0A,0x00,0xA0,0xE1,0x28,0x70,0x84,0xE5,0xA8,0x12,0x9F,0xE5,
+    0xBD,0x07,0x00,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x87,0xBD,0x18,0x01,0x00,0x56,0xE3,
+    0x50,0x00,0xD4,0x05,0x00,0x00,0xC5,0x05,0x12,0x00,0x00,0x0A,0x02,0x00,0x56,0xE3,
+    0xB0,0x05,0xD4,0x01,0xB0,0x00,0xC5,0x01,0x0E,0x00,0x00,0x0A,0x04,0x00,0x56,0xE3,
+    0x50,0x00,0x94,0x05,0x00,0x00,0x85,0x05,0x0A,0x00,0x00,0x0A,0x08,0x00,0x56,0xE3,
+    0x04,0x00,0x00,0x0A,0x07,0x00,0x00,0xEA,0x24,0x00,0x84,0xE5,0xE8,0xFF,0xFF,0xEA,
+    0x24,0x20,0x84,0xE5,0xE6,0xFF,0xFF,0xEA,0x54,0x00,0x94,0xE5,0x00,0x00,0x85,0xE5,
+    0x50,0x00,0x94,0xE5,0x04,0x00,0x85,0xE5,0x00,0x00,0xA0,0xE3,0xF0,0x87,0xBD,0xE8,
+    0xF0,0x5F,0x2D,0xE9,0x01,0x60,0xA0,0xE1,0x2C,0x42,0x9F,0xE5,0x00,0x50,0xA0,0xE3,
+    0x2C,0x10,0x9D,0xE5,0x01,0x80,0xA0,0xE3,0x28,0xA0,0x9D,0xE5,0x02,0x70,0xA0,0xE1,
+    0x1C,0x20,0x84,0xE2,0x0C,0x90,0xA0,0xE3,0x00,0x50,0x84,0xE5,0x0F,0x00,0x51,0xE3,
+    0x08,0x50,0x84,0xE5,0x03,0xB0,0xA0,0xE1,0x14,0x80,0x84,0xE5,0x18,0x50,0x84,0xE5,
+    0x22,0x00,0x82,0xE8,0x24,0x20,0x84,0xE2,0x0B,0x10,0xA0,0x13,0x20,0x01,0x82,0xE8,
+    0x2C,0x50,0x84,0xE5,0x30,0x50,0x84,0xE5,0x46,0x90,0xC4,0x05,0x46,0x10,0xC4,0x15,
+    0x07,0x10,0xA0,0xE3,0x34,0x80,0x84,0xE5,0x01,0x00,0x5A,0xE3,0x44,0x50,0xC4,0xE5,
+    0xA0,0x00,0xA0,0x01,0x45,0x10,0xC4,0xE5,0x38,0x50,0x84,0xE5,0x3C,0x50,0x84,0xE5,
+    0xB4,0x11,0x9F,0xE5,0x40,0x50,0x84,0xE5,0x48,0x00,0x84,0xE5,0x03,0x00,0xA0,0xE1,
+    0x7D,0x07,0x00,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x9F,0xBD,0x18,0x0F,0x00,0xA0,0xE3,
+    0x01,0x00,0x5A,0xE3,0x08,0x10,0xA0,0xE3,0x10,0x50,0x84,0xE5,0x14,0x50,0x84,0xE5,
+    0x18,0x50,0x84,0xE5,0x1C,0x50,0x84,0xE5,0x20,0x50,0x84,0xE5,0x2C,0x80,0x84,0xE5,
+    0x30,0x50,0x84,0xE5,0x34,0x50,0x84,0xE5,0x04,0x00,0x00,0x0A,0x04,0x00,0x57,0xE3,
+    0x1F,0x00,0x00,0x0A,0x02,0x00,0x57,0xE3,0x1F,0x00,0x00,0x0A,0x06,0x00,0x00,0xEA,
+    0x08,0x00,0x57,0xE3,0x1A,0x00,0x00,0x0A,0x04,0x00,0x57,0xE3,0x1A,0x00,0x00,0x0A,
+    0x02,0x00,0x57,0xE3,0x00,0x00,0xE0,0x13,0xF0,0x9F,0xBD,0x18,0x24,0x10,0x84,0xE5,
+    0x0B,0x00,0xA0,0xE1,0x28,0x50,0x84,0xE5,0x2C,0x11,0x9F,0xE5,0x5E,0x07,0x00,0xEB,
+    0x00,0x00,0x50,0xE3,0xF0,0x9F,0xBD,0x18,0x01,0x00,0x57,0xE3,0x50,0x00,0xD4,0x05,
+    0x00,0x00,0xC6,0x05,0x12,0x00,0x00,0x0A,0x02,0x00,0x57,0xE3,0xB0,0x05,0xD4,0x01,
+    0xB0,0x00,0xC6,0x01,0x0E,0x00,0x00,0x0A,0x04,0x00,0x57,0xE3,0x50,0x00,0x94,0x05,
+    0x00,0x00,0x86,0x05,0x0A,0x00,0x00,0x0A,0x08,0x00,0x57,0xE3,0x04,0x00,0x00,0x0A,
+    0x07,0x00,0x00,0xEA,0x24,0x00,0x84,0xE5,0xE8,0xFF,0xFF,0xEA,0x24,0x90,0x84,0xE5,
+    0xE6,0xFF,0xFF,0xEA,0x54,0x00,0x94,0xE5,0x00,0x00,0x86,0xE5,0x50,0x00,0x94,0xE5,
+    0x04,0x00,0x86,0xE5,0x00,0x00,0xA0,0xE3,0xF0,0x9F,0xBD,0xE8,0xFC,0x5F,0x2D,0xE9,
+    0x00,0x80,0xA0,0xE1,0x30,0x00,0x8D,0xE2,0x03,0xB0,0xA0,0xE1,0x38,0x90,0x9D,0xE5,
+    0x02,0x50,0xA0,0xE1,0x40,0x04,0x90,0xE8,0x01,0x70,0xA0,0xE1,0x01,0x00,0x56,0xE3,
+    0x00,0x00,0xA0,0xE3,0x05,0x00,0x00,0x0A,0x03,0x00,0x15,0xE3,0x0D,0x00,0x00,0x0A,
+    0x01,0x00,0x15,0xE3,0x01,0x40,0xA0,0x13,0x08,0x00,0x00,0x0A,0x0A,0x00,0x00,0xEA,
+    0x07,0x00,0x15,0xE3,0x08,0x40,0xA0,0x03,0x07,0x00,0x00,0x0A,0x03,0x00,0x15,0xE3,
+    0x04,0x00,0x00,0x0A,0x01,0x00,0x15,0xE3,0x00,0x00,0xE0,0x13,0x11,0x00,0x00,0x1A,
+    0x02,0x40,0xA0,0xE3,0x00,0x00,0x00,0xEA,0x04,0x40,0xA0,0xE3,0x00,0x00,0x55,0xE3,
+    0x0C,0x00,0x00,0xDA,0x00,0x00,0x5A,0xE3,0x40,0x02,0x8D,0xE8,0x0B,0x30,0xA0,0xE1,
+    0x04,0x20,0xA0,0xE1,0x07,0x10,0xA0,0xE1,0x08,0x00,0xA0,0xE1,0x06,0x00,0x00,0x0A,
+    0x1A,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x04,0x80,0x88,0x00,0x04,0x70,0x87,0x00,
+    0x04,0x50,0x45,0x00,0xF0,0xFF,0xFF,0x0A,0xFC,0x9F,0xBD,0xE8,0x73,0xFF,0xFF,0xEB,
+    0xF7,0xFF,0xFF,0xEA,0x14,0x07,0x00,0xEA,0xB1,0x00,0x00,0xEA,0xA4,0x2A,0x02,0x20,
+    0xF0,0x41,0x2D,0xE9,0x00,0x50,0xA0,0xE3,0x64,0x45,0x9F,0xE5,0x03,0x60,0xB0,0xE1,
+    0x00,0x80,0xA0,0xE1,0x01,0x00,0xA0,0xE3,0x01,0x70,0xA0,0xE1,0x08,0x10,0xA0,0xE3,
+    0x14,0x30,0x84,0xE2,0x00,0x50,0x84,0xE5,0x10,0x50,0x84,0xE5,0x21,0x00,0x83,0xE8,
+    0x1C,0x50,0x84,0xE5,0x24,0x10,0x84,0xE5,0x05,0x10,0xA0,0xE3,0x20,0x50,0x84,0xE5,
+    0x2C,0x00,0x84,0xE5,0x28,0x50,0x84,0xE5,0x30,0x00,0x84,0xE5,0x02,0x00,0xA0,0xE1,
+    0x46,0x10,0xC4,0xE5,0x00,0x10,0x84,0xE2,0x58,0x50,0x84,0xE5,0x5C,0x50,0x84,0xE5,
+    0x34,0x50,0x84,0xE5,0x38,0x50,0x84,0xE5,0x3C,0x50,0x84,0xE5,0x40,0x50,0x84,0xE5,
+    0xDF,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x81,0xBD,0x18,0x00,0x00,0x56,0xE3,
+    0x50,0x10,0xD4,0xE5,0x00,0x10,0xC8,0xE5,0xB0,0x15,0xD4,0x11,0x21,0x14,0xA0,0x11,
+    0x00,0x10,0xC7,0x15,0x00,0x50,0xC7,0x05,0xF0,0x81,0xBD,0xE8,0xFE,0x40,0x2D,0xE9,
+    0x02,0x50,0xA0,0xE1,0x01,0x40,0xA0,0xE1,0x00,0x60,0xA0,0xE1,0x04,0x30,0xA0,0xE1,
+    0x06,0x20,0xA0,0xE1,0x08,0x10,0x8D,0xE2,0x04,0x00,0x8D,0xE2,0x00,0x50,0x8D,0xE5,
+    0xCE,0xFF,0xFF,0xEB,0x01,0x00,0x54,0xE3,0x04,0x10,0xDD,0x05,0x08,0x20,0xDD,0x05,
+    0x02,0x10,0x81,0x01,0x03,0x00,0x00,0x0A,0x00,0x00,0x54,0xE3,0x04,0x10,0xDD,0x05,
+    0x00,0x00,0xE0,0x13,0x01,0x00,0x00,0x1A,0x01,0x00,0x11,0xE3,0xEE,0xFF,0xFF,0x1A,
+    0xFE,0x80,0xBD,0xE8,0x78,0x14,0x9F,0xE5,0x00,0x20,0xA0,0xE3,0x01,0x30,0xA0,0xE3,
+    0x00,0x20,0x81,0xE5,0x14,0x30,0x81,0xE5,0x06,0x30,0xA0,0xE3,0x18,0x20,0x81,0xE5,
+    0x1C,0x20,0x81,0xE5,0x20,0x20,0x81,0xE5,0x24,0x20,0x81,0xE5,0x28,0x20,0x81,0xE5,
+    0x2C,0x20,0x81,0xE5,0x30,0x20,0x81,0xE5,0x46,0x30,0xC1,0xE5,0x34,0x20,0x81,0xE5,
+    0x38,0x20,0x81,0xE5,0x3C,0x20,0x81,0xE5,0x40,0x20,0x81,0xE5,0xAC,0xFF,0xFF,0xEA,
+    0xF0,0x41,0x2D,0xE9,0x80,0x00,0x10,0xE3,0x03,0x60,0xA0,0xE1,0x02,0x70,0xA0,0xE1,
+    0x18,0x80,0x9D,0xE5,0x01,0x50,0xA0,0xE1,0x00,0x40,0xA0,0xE1,0x07,0x00,0x00,0x0A,
+    0x80,0x40,0xC4,0xE3,0x06,0x20,0xA0,0xE1,0x08,0x30,0xA0,0xE1,0x07,0x10,0xA0,0xE1,
+    0x04,0x00,0xA0,0xE1,0x7F,0x00,0x00,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x81,0xBD,0x18,
+    0x07,0x00,0xA0,0xE1,0xDA,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x81,0xBD,0x18,
+    0x00,0x10,0xA0,0xE3,0x01,0x20,0xA0,0xE3,0x0C,0x30,0xA0,0xE3,0xD0,0x03,0x9F,0xE5,
+    0x1C,0xC0,0x80,0xE2,0x00,0x10,0x80,0xE5,0x0C,0x10,0x80,0xE5,0x14,0x20,0x80,0xE5,
+    0x18,0x10,0x80,0xE5,0x0A,0x00,0x8C,0xE8,0x24,0x10,0x80,0xE5,0x28,0x10,0x80,0xE5,
+    0x2C,0x10,0x80,0xE5,0x30,0x10,0x80,0xE5,0x46,0x20,0xC0,0xE5,0x4C,0x40,0xC0,0xE5,
+    0x4D,0x50,0xC0,0xE5,0x4E,0x10,0xC0,0xE5,0x4F,0x10,0xC0,0xE5,0x34,0x10,0x80,0xE5,
+    0x38,0x10,0x80,0xE5,0x3C,0x10,0x80,0xE5,0x40,0x10,0x80,0xE5,0x00,0x10,0x80,0xE2,
+    0x07,0x00,0xA0,0xE1,0x7E,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x81,0xBD,0x18,
+    0x08,0x20,0xA0,0xE1,0x06,0x10,0xA0,0xE1,0x07,0x00,0xA0,0xE1,0xF0,0x41,0xBD,0xE8,
+    0xA1,0xFF,0xFF,0xEA,0xF0,0x41,0x2D,0xE9,0x00,0x50,0xA0,0xE3,0x50,0x43,0x9F,0xE5,
+    0x03,0x60,0xB0,0xE1,0x00,0x80,0xA0,0xE1,0x01,0x00,0xA0,0xE3,0x01,0x70,0xA0,0xE1,
+    0x08,0x10,0xA0,0xE3,0x14,0x30,0x84,0xE2,0x00,0x50,0x84,0xE5,0x10,0x50,0x84,0xE5,
+    0x21,0x00,0x83,0xE8,0x1C,0x50,0x84,0xE5,0x24,0x10,0x84,0xE5,0x35,0x10,0xA0,0xE3,
+    0x20,0x50,0x84,0xE5,0x2C,0x00,0x84,0xE5,0x28,0x50,0x84,0xE5,0x30,0x00,0x84,0xE5,
+    0x02,0x00,0xA0,0xE1,0x46,0x10,0xC4,0xE5,0x00,0x10,0x84,0xE2,0x58,0x50,0x84,0xE5,
+    0x5C,0x50,0x84,0xE5,0x34,0x50,0x84,0xE5,0x38,0x50,0x84,0xE5,0x3C,0x50,0x84,0xE5,
+    0x40,0x50,0x84,0xE5,0x5A,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x81,0xBD,0x18,
+    0x00,0x00,0x56,0xE3,0x50,0x10,0xD4,0xE5,0x00,0x10,0xC8,0xE5,0xB0,0x15,0xD4,0x11,
+    0x21,0x14,0xA0,0x11,0x00,0x10,0xC7,0x15,0x00,0x50,0xC7,0x05,0xF0,0x81,0xBD,0xE8,
+    0x38,0x40,0x2D,0xE9,0x10,0x40,0x9D,0xE5,0x00,0x40,0x8D,0xE5,0x57,0x00,0x00,0xEB,
+    0x38,0x80,0xBD,0xE8,0xF0,0x40,0x2D,0xE9,0x03,0x40,0xA0,0xE1,0x14,0xD0,0x4D,0xE2,
+    0x00,0x50,0xA0,0xE1,0x02,0x60,0xA0,0xE1,0x01,0x70,0xA0,0xE1,0x00,0x30,0x8D,0xE5,
+    0x02,0x30,0xA0,0xE1,0x01,0x20,0xA0,0xE1,0x0C,0x10,0x8D,0xE2,0x04,0x00,0x8D,0xE2,
+    0x42,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x1C,0x00,0x00,0x1A,0x06,0x30,0xA0,0xE1,
+    0x07,0x20,0xA0,0xE1,0x10,0x10,0x8D,0xE2,0x08,0x00,0x8D,0xE2,0x00,0x40,0x8D,0xE5,
+    0xBF,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x14,0x00,0x00,0x1A,0x06,0x30,0xA0,0xE1,
+    0x08,0x00,0xDD,0xE5,0x07,0x20,0xA0,0xE1,0x00,0x40,0x8D,0xE5,0x01,0x10,0xC0,0xE3,
+    0x04,0x00,0xDD,0xE5,0x81,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x0B,0x00,0x00,0x1A,
+    0x01,0x00,0x55,0xE3,0x04,0x00,0xDD,0xE5,0x06,0x30,0xA0,0xE1,0x07,0x20,0xA0,0xE1,
+    0x00,0x40,0x8D,0xE5,0x1C,0x00,0x80,0x13,0x1C,0x00,0xC0,0x03,0x04,0x00,0xCD,0xE5,
+    0x08,0x00,0xDD,0xE5,0x01,0x10,0x80,0xE3,0x04,0x00,0xDD,0xE5,0x73,0xFF,0xFF,0xEB,
+    0x14,0xD0,0x8D,0xE2,0xF0,0x80,0xBD,0xE8,0xF0,0x41,0x2D,0xE9,0x00,0x40,0xA0,0xE1,
+    0x03,0x50,0xA0,0xE1,0x02,0x60,0xA0,0xE1,0x01,0x70,0xA0,0xE1,0x01,0x00,0xA0,0xE1,
+    0x57,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x81,0xBD,0x18,0x00,0x10,0xA0,0xE3,
+    0x01,0x20,0xA0,0xE3,0x08,0x30,0xA0,0xE3,0xC4,0x01,0x9F,0xE5,0x1C,0x80,0x80,0xE2,
+    0x00,0x10,0x80,0xE5,0x0C,0x10,0x80,0xE5,0x14,0x20,0x80,0xE5,0x18,0x10,0x80,0xE5,
+    0x0A,0x00,0x88,0xE8,0x24,0x10,0x80,0xE5,0x28,0x10,0x80,0xE5,0x2C,0x10,0x80,0xE5,
+    0x30,0x10,0x80,0xE5,0x46,0x20,0xC0,0xE5,0x4C,0x40,0xC0,0xE5,0x4D,0x10,0xC0,0xE5,
+    0x4E,0x10,0xC0,0xE5,0x4F,0x10,0xC0,0xE5,0x34,0x10,0x80,0xE5,0x38,0x10,0x80,0xE5,
+    0x3C,0x10,0x80,0xE5,0x40,0x10,0x80,0xE5,0x00,0x10,0x80,0xE2,0x07,0x00,0xA0,0xE1,
+    0xFB,0xFE,0xFF,0xEB,0x00,0x00,0x50,0xE3,0xF0,0x81,0xBD,0x18,0x05,0x20,0xA0,0xE1,
+    0x06,0x10,0xA0,0xE1,0x07,0x00,0xA0,0xE1,0xF0,0x41,0xBD,0xE8,0x1E,0xFF,0xFF,0xEA,
+    0xF0,0x40,0x2D,0xE9,0x03,0x40,0xA0,0xE1,0x1C,0xD0,0x4D,0xE2,0x02,0x50,0xA0,0xE1,
+    0x01,0x60,0xA0,0xE1,0x00,0x70,0xA0,0xE1,0x00,0x20,0xA0,0xE1,0x00,0x30,0x8D,0xE5,
+    0x01,0x30,0xA0,0xE1,0x0C,0x10,0x8D,0xE2,0x08,0x00,0x8D,0xE2,0xEB,0xFE,0xFF,0xEB,
+    0x00,0x00,0x50,0xE3,0x1F,0x00,0x00,0x1A,0x06,0x30,0xA0,0xE1,0x07,0x20,0xA0,0xE1,
+    0x10,0x10,0x8D,0xE2,0x04,0x00,0x8D,0xE2,0x00,0x40,0x8D,0xE5,0x68,0xFF,0xFF,0xEB,
+    0x00,0x00,0x50,0xE3,0x17,0x00,0x00,0x1A,0x06,0x30,0xA0,0xE1,0x07,0x20,0xA0,0xE1,
+    0x18,0x10,0x8D,0xE2,0x14,0x00,0x8D,0xE2,0x00,0x40,0x8D,0xE5,0x13,0x00,0x00,0xEB,
+    0x00,0x00,0x50,0xE3,0x0F,0x00,0x00,0x1A,0x02,0x00,0x55,0xE3,0x04,0x00,0xDD,0x05,
+    0x02,0x00,0xC0,0x03,0x04,0x00,0x00,0x0A,0x03,0x00,0x55,0xE3,0x04,0x00,0xDD,0x05,
+    0x02,0x00,0x80,0x03,0x00,0x00,0xE0,0x13,0x06,0x00,0x00,0x1A,0x3F,0x10,0x00,0xE2,
+    0x08,0x00,0xDD,0xE5,0x06,0x30,0xA0,0xE1,0x04,0x10,0xCD,0xE5,0x07,0x20,0xA0,0xE1,
+    0x00,0x40,0x8D,0xE5,0x19,0xFF,0xFF,0xEB,0x1C,0xD0,0x8D,0xE2,0xF0,0x80,0xBD,0xE8,
+    0xF0,0x41,0x2D,0xE9,0x00,0x50,0xA0,0xE3,0x84,0x40,0x9F,0xE5,0x03,0x80,0xA0,0xE1,
+    0x00,0x70,0xA0,0xE1,0x01,0x00,0xA0,0xE3,0x01,0x60,0xA0,0xE1,0x08,0x10,0xA0,0xE3,
+    0x14,0x30,0x84,0xE2,0x00,0x50,0x84,0xE5,0x10,0x50,0x84,0xE5,0x21,0x00,0x83,0xE8,
+    0x24,0x30,0x84,0xE2,0x1C,0x50,0x84,0xE5,0x20,0x50,0x84,0xE5,0x22,0x00,0x83,0xE8,
+    0x16,0x10,0xA0,0xE3,0x2C,0x00,0x84,0xE5,0x30,0x00,0x84,0xE5,0x02,0x00,0xA0,0xE1,
+    0x46,0x10,0xC4,0xE5,0x00,0x10,0x84,0xE2,0x58,0x50,0x84,0xE5,0x5C,0x50,0x84,0xE5,
+    0x34,0x50,0x84,0xE5,0x38,0x50,0x84,0xE5,0x3C,0x50,0x84,0xE5,0x40,0x50,0x84,0xE5,
+    0xA7,0xFE,0xFF,0xEB,0x50,0x10,0xD4,0xE5,0x00,0x00,0x58,0xE3,0x00,0x10,0xC7,0xE5,
+    0xB0,0x15,0xD4,0x11,0x00,0x50,0xC6,0x05,0x21,0x14,0xA0,0x11,0x00,0x10,0xC6,0x15,
+    0xF0,0x81,0xBD,0xE8,0xA4,0x2A,0x02,0x20,0x89,0x05,0x00,0xEA,0x9D,0x05,0x00,0xEA,
+    0x73,0x05,0x00,0xEA,0xF8,0x40,0x2D,0xE9,0x02,0x40,0xA0,0xE1,0x18,0x20,0x8D,0xE2,
+    0x03,0xC0,0xA0,0xE1,0x01,0x60,0xA0,0xE1,0x00,0x70,0xA0,0xE1,0x28,0x00,0x92,0xE8,
+    0x0C,0x20,0xA0,0xE1,0x00,0x40,0x8D,0xE5,0x2E,0x04,0x00,0xEB,0x00,0x00,0x50,0xE3,
+    0x0B,0x00,0x00,0x1A,0x00,0x00,0x54,0xE3,0x02,0x20,0xA0,0x03,0x03,0x00,0x00,0x0A,
+    0x02,0x00,0x54,0xE3,0x03,0x20,0xA0,0x03,0x00,0x00,0xE0,0x13,0x04,0x00,0x00,0x1A,
+    0x04,0x30,0xA0,0xE1,0x06,0x10,0xA0,0xE1,0x07,0x00,0xA0,0xE1,0x00,0x50,0x8D,0xE5,
+    0x32,0xFF,0xFF,0xEB,0xF8,0x80,0xBD,0xE8,0x70,0x40,0x2D,0xE9,0x01,0x00,0x50,0xE3,
+    0x02,0x40,0xA0,0xE1,0x00,0x50,0xA0,0xE1,0x00,0x00,0xE0,0x83,0x70,0x80,0xBD,0x88,
+    0x00,0x00,0x51,0xE3,0x00,0x10,0xA0,0x03,0x01,0x10,0xA0,0x13,0x0B,0x20,0xD4,0xE5,
+    0xE9,0x03,0x00,0xEB,0x00,0x00,0x50,0xE3,0x70,0x80,0xBD,0x18,0x04,0x10,0xA0,0xE1,
+    0x05,0x00,0xA0,0xE1,0x70,0x40,0xBD,0xE8,0x9D,0x04,0x00,0xEA,0x01,0x20,0xD1,0xE5,
+    0x02,0x00,0x52,0xE3,0x0E,0x00,0xD1,0x95,0x02,0x00,0x50,0x93,0x12,0x00,0x00,0x8A,
+    0x06,0x00,0xD1,0xE5,0x0F,0x00,0x50,0xE3,0x07,0x00,0xD1,0x95,0x02,0x00,0x50,0x93,
+    0x0D,0x00,0x00,0x8A,0x08,0x00,0xD1,0xE5,0x07,0x00,0x50,0xE3,0x09,0x00,0xD1,0x95,
+    0x01,0x00,0x50,0x93,0x08,0x00,0x00,0x8A,0x0A,0x00,0xD1,0xE5,0x02,0x00,0x50,0xE3,
+    0x0B,0x00,0xD1,0x95,0x02,0x00,0x50,0x93,0x03,0x00,0x00,0x8A,0x0D,0x00,0xD1,0xE5,
+    0x03,0x00,0x50,0xE3,0x00,0x00,0xA0,0x93,0x1E,0xFF,0x2F,0x91,0x00,0x00,0xE0,0xE3,
+    0x1E,0xFF,0x2F,0xE1,0xF8,0x40,0x2D,0xE9,0x01,0x50,0xA0,0xE1,0x02,0x40,0xA0,0xE1,
+    0x00,0x60,0xA0,0xE1,0x02,0x10,0xA0,0xE1,0xDF,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,
+    0x1B,0x00,0x00,0x1A,0x05,0x10,0xA0,0xE1,0x0B,0x00,0xD4,0xE5,0x00,0x00,0x8D,0xE5,
+    0x06,0x00,0xA0,0xE1,0x0D,0x30,0xD4,0xE5,0x0C,0x20,0xD4,0xE5,0xE5,0x03,0x00,0xEB,
+    0x00,0x00,0x50,0xE3,0x12,0x00,0x00,0x1A,0x0B,0x30,0xD4,0xE5,0x00,0x00,0x53,0xE3,
+    0x02,0x20,0xA0,0x03,0x03,0x00,0x00,0x0A,0x02,0x00,0x53,0xE3,0x03,0x20,0xA0,0x03,
+    0x00,0x00,0xE0,0x13,0x0A,0x00,0x00,0x1A,0x05,0x10,0xA0,0xE1,0x0F,0x00,0xD4,0xE5,
+    0x00,0x00,0x8D,0xE5,0x06,0x00,0xA0,0xE1,0xE8,0xFE,0xFF,0xEB,0x00,0x00,0x50,0xE3,
+    0x03,0x00,0x00,0x1A,0x04,0x20,0xA0,0xE1,0x05,0x10,0xA0,0xE1,0x06,0x00,0xA0,0xE1,
+    0xB0,0xFF,0xFF,0xEB,0xF8,0x80,0xBD,0xE8,0x52,0x04,0x00,0xEA,0x70,0x40,0x2D,0xE9,
+    0x01,0x40,0xA0,0xE1,0x00,0x50,0xA0,0xE1,0x7F,0x06,0x00,0xEB,0x04,0x10,0xA0,0xE1,
+    0x05,0x00,0xA0,0xE1,0x70,0x40,0xBD,0xE8,0xB7,0xFF,0xFF,0xEA,0xF7,0x4F,0x2D,0xE9,
+    0x01,0x00,0x50,0xE3,0x01,0x40,0xA0,0xE1,0x00,0x00,0xE0,0x83,0x92,0x03,0x00,0x8A,
+    0x00,0x00,0x50,0xE3,0xE5,0x00,0x00,0x0A,0x01,0x3A,0xA0,0xE3,0x3C,0x5E,0x9F,0xE5,
+    0x0C,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0x38,0xFC,0xFF,0xEB,
+    0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x43,0x62,0x85,0xE1,
+    0x06,0x00,0xA0,0xE1,0x32,0xFC,0xFF,0xEB,0x3D,0x7C,0x45,0xE2,0x01,0x3A,0xA0,0xE3,
+    0x0C,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x2C,0xFC,0xFF,0xEB,
+    0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x43,0x82,0x87,0xE0,
+    0x08,0x00,0xA0,0xE1,0x26,0xFC,0xFF,0xEB,0x0C,0x20,0xA0,0xE3,0x01,0x3A,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x02,0x93,0x26,0xE0,0x09,0x00,0xA0,0xE1,0x20,0xFC,0xFF,0xEB,
+    0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0x1B,0xFC,0xFF,0xEB,0x0C,0x20,0xA0,0xE3,0x01,0x3A,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x82,0xA3,0x27,0xE0,0x0A,0x00,0xA0,0xE1,0x15,0xFC,0xFF,0xEB,0x01,0x10,0xA0,0xE3,
+    0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x01,0xB4,0x8A,0xE0,0x0B,0x00,0xA0,0xE1,
+    0x0F,0xFC,0xFF,0xEB,0x0C,0x20,0xA0,0xE3,0x01,0x3A,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x82,0x03,0x88,0xE0,0x0A,0xFC,0xFF,0xEB,0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x05,0xFC,0xFF,0xEB,0x01,0x3A,0xA0,0xE3,
+    0x0C,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0x00,0xFC,0xFF,0xEB,
+    0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,
+    0xFB,0xFB,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x06,0x00,0xA0,0xE1,0xF6,0xFB,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0xF1,0xFB,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,
+    0x0D,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0xEC,0xFB,0xFF,0xEB,
+    0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,
+    0xE7,0xFB,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x06,0x00,0xA0,0xE1,0xE2,0xFB,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,0xDD,0xFB,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,
+    0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,0xD8,0xFB,0xFF,0xEB,
+    0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0xC3,0x01,0x8B,0xE0,
+    0xD3,0xFB,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x09,0x00,0xA0,0xE1,0xCE,0xFB,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0xC9,0xFB,0xFF,0xEB,0x01,0x39,0xA0,0xE3,
+    0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0xC4,0xFB,0xFF,0xEB,
+    0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0xBF,0xFB,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x07,0x00,0xA0,0xE1,0xBA,0xFB,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0xB5,0xFB,0xFF,0xEB,0x01,0x39,0xA0,0xE3,
+    0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0xB0,0xFB,0xFF,0xEB,
+    0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0xAB,0xFB,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x0A,0x00,0xA0,0xE1,0xA6,0xFB,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,0xA1,0xFB,0xFF,0xEB,0x0E,0x20,0xA0,0xE3,
+    0x01,0x39,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x82,0x03,0x87,0xE0,0x9C,0xFB,0xFF,0xEB,
+    0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,
+    0x97,0xFB,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x08,0x00,0xA0,0xE1,0x92,0xFB,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0x8D,0xFB,0xFF,0xEB,0x02,0x39,0xA0,0xE3,
+    0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x88,0xFB,0xFF,0xEB,
+    0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,
+    0x83,0xFB,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x08,0x00,0xA0,0xE1,0x7E,0xFB,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x79,0xFB,0xFF,0xEB,0x02,0x39,0xA0,0xE3,
+    0x0F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x74,0xFB,0xFF,0xEB,
+    0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,
+    0x6F,0xFB,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x0B,0x00,0xA0,0xE1,0x6A,0xFB,0xFF,0xEB,0x0F,0x20,0xA0,0xE3,0x02,0x39,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x02,0x04,0x2A,0xE0,0x65,0xFB,0xFF,0xEB,0x02,0x39,0xA0,0xE3,
+    0x0F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x60,0xFB,0xFF,0xEB,
+    0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,
+    0x5B,0xFB,0xFF,0xEB,0x02,0x00,0x54,0xE3,0x3B,0x02,0x00,0x0A,0xA9,0x02,0x00,0xEA,
+    0xAC,0x5A,0x9F,0xE5,0x04,0x30,0xA0,0xE3,0x02,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x05,0x00,0xA0,0xE1,0x52,0xFB,0xFF,0xEB,0x02,0x20,0xA0,0xE3,0x04,0x30,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x82,0x63,0x85,0xE1,0x06,0x00,0xA0,0xE1,0x4C,0xFB,0xFF,0xEB,
+    0x3D,0x7C,0x45,0xE2,0x04,0x30,0xA0,0xE3,0x02,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x07,0x00,0xA0,0xE1,0x46,0xFB,0xFF,0xEB,0x02,0x20,0xA0,0xE3,0x04,0x30,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x82,0x83,0x87,0xE0,0x08,0x00,0xA0,0xE1,0x40,0xFB,0xFF,0xEB,
+    0x02,0x20,0xA0,0xE3,0x04,0x30,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x82,0x93,0x86,0xE0,
+    0x09,0x00,0xA0,0xE1,0x3A,0xFB,0xFF,0xEB,0x04,0x30,0xA0,0xE3,0x02,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x35,0xFB,0xFF,0xEB,0x01,0x10,0xA0,0xE3,
+    0x04,0x30,0xA0,0xE3,0x02,0x20,0xA0,0xE3,0x01,0xA4,0x88,0xE1,0x0A,0x00,0xA0,0xE1,
+    0x2F,0xFB,0xFF,0xEB,0x02,0x20,0xA0,0xE3,0x04,0x30,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x82,0xB3,0x8A,0xE0,0x0B,0x00,0xA0,0xE1,0x29,0xFB,0xFF,0xEB,0x02,0x20,0xA0,0xE3,
+    0x04,0x30,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x82,0x04,0x8B,0xE0,0x24,0xFB,0xFF,0xEB,
+    0x04,0x30,0xA0,0xE3,0x02,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,
+    0x1F,0xFB,0xFF,0xEB,0x04,0x30,0xA0,0xE3,0x02,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x08,0x00,0xA0,0xE1,0x1A,0xFB,0xFF,0xEB,0x08,0x30,0xA0,0xE3,0x03,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0x15,0xFB,0xFF,0xEB,0x08,0x30,0xA0,0xE3,
+    0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x10,0xFB,0xFF,0xEB,
+    0x08,0x30,0xA0,0xE3,0x03,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,
+    0x0B,0xFB,0xFF,0xEB,0x08,0x30,0xA0,0xE3,0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x08,0x00,0xA0,0xE1,0x06,0xFB,0xFF,0xEB,0x08,0x30,0xA0,0xE3,0x03,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x01,0xFB,0xFF,0xEB,0x08,0x30,0xA0,0xE3,
+    0x03,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0xFC,0xFA,0xFF,0xEB,
+    0x08,0x30,0xA0,0xE3,0x03,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,
+    0xF7,0xFA,0xFF,0xEB,0x08,0x30,0xA0,0xE3,0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x0B,0x00,0xA0,0xE1,0xF2,0xFA,0xFF,0xEB,0x03,0x20,0xA0,0xE3,0x08,0x30,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x82,0x04,0x88,0xE0,0xED,0xFA,0xFF,0xEB,0x08,0x30,0xA0,0xE3,
+    0x03,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0xE8,0xFA,0xFF,0xEB,
+    0x08,0x30,0xA0,0xE3,0x03,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,
+    0xE3,0xFA,0xFF,0xEB,0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x05,0x00,0xA0,0xE1,0xDE,0xFA,0xFF,0xEB,0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0xD9,0xFA,0xFF,0xEB,0x10,0x30,0xA0,0xE3,
+    0x04,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0xD4,0xFA,0xFF,0xEB,
+    0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,
+    0xCF,0xFA,0xFF,0xEB,0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x09,0x00,0xA0,0xE1,0xCA,0xFA,0xFF,0xEB,0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0xC5,0xFA,0xFF,0xEB,0x10,0x30,0xA0,0xE3,
+    0x04,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,0xC0,0xFA,0xFF,0xEB,
+    0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,
+    0xBB,0xFA,0xFF,0xEB,0x04,0x20,0xA0,0xE3,0x10,0x30,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x02,0x04,0x8B,0xE0,0xB6,0xFA,0xFF,0xEB,0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0xB1,0xFA,0xFF,0xEB,0x10,0x30,0xA0,0xE3,
+    0x04,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0xAC,0xFA,0xFF,0xEB,
+    0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,
+    0xA7,0xFA,0xFF,0xEB,0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x06,0x00,0xA0,0xE1,0xA2,0xFA,0xFF,0xEB,0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x9D,0xFA,0xFF,0xEB,0x20,0x30,0xA0,0xE3,
+    0x05,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0x98,0xFA,0xFF,0xEB,
+    0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,
+    0x93,0xFA,0xFF,0xEB,0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x06,0x00,0xA0,0xE1,0x8E,0xFA,0xFF,0xEB,0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,0x89,0xFA,0xFF,0xEB,0x20,0x30,0xA0,0xE3,
+    0x05,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,0x84,0xFA,0xFF,0xEB,
+    0x05,0x20,0xA0,0xE3,0x20,0x30,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x02,0x04,0x8A,0xE0,
+    0x7F,0xFA,0xFF,0xEB,0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x09,0x00,0xA0,0xE1,0x7A,0xFA,0xFF,0xEB,0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0x75,0xFA,0xFF,0xEB,0x02,0x00,0x54,0xE3,
+    0xC4,0x01,0x00,0x1A,0x40,0x30,0xA0,0xE3,0x06,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x05,0x00,0xA0,0xE1,0x6E,0xFA,0xFF,0xEB,0x40,0x30,0xA0,0xE3,0x06,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x69,0xFA,0xFF,0xEB,0x40,0x30,0xA0,0xE3,
+    0x06,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x64,0xFA,0xFF,0xEB,
+    0x40,0x30,0xA0,0xE3,0x06,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,
+    0x5F,0xFA,0xFF,0xEB,0x40,0x30,0xA0,0xE3,0x06,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x09,0x00,0xA0,0xE1,0x5A,0xFA,0xFF,0xEB,0x40,0x30,0xA0,0xE3,0x06,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x55,0xFA,0xFF,0xEB,0x40,0x30,0xA0,0xE3,
+    0x06,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,0x50,0xFA,0xFF,0xEB,
+    0x40,0x30,0xA0,0xE3,0x06,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,
+    0x4B,0xFA,0xFF,0xEB,0x06,0x20,0xA0,0xE3,0x40,0x30,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x02,0x44,0x88,0xE0,0x04,0x00,0xA0,0xE1,0x45,0xFA,0xFF,0xEB,0x40,0x30,0xA0,0xE3,
+    0x06,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x40,0xFA,0xFF,0xEB,
+    0x40,0x30,0xA0,0xE3,0x06,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,
+    0x3B,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,0x07,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x05,0x00,0xA0,0xE1,0x36,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,0x07,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x31,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,
+    0x07,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x2C,0xFA,0xFF,0xEB,
+    0x80,0x30,0xA0,0xE3,0x07,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,
+    0x27,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,0x07,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x09,0x00,0xA0,0xE1,0x22,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,0x07,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x1D,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,
+    0x07,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,0x18,0xFA,0xFF,0xEB,
+    0x80,0x30,0xA0,0xE3,0x07,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,
+    0x13,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,0x07,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x04,0x00,0xA0,0xE1,0x0E,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,0x07,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x09,0xFA,0xFF,0xEB,0x80,0x30,0xA0,0xE3,
+    0x07,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0x04,0xFA,0xFF,0xEB,
+    0x08,0x00,0x9D,0xE5,0x01,0x00,0x50,0xE3,0x52,0x01,0x00,0x1A,0x1C,0x40,0x45,0xE2,
+    0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x00,0xA0,0xE1,
+    0xFB,0xF9,0xFF,0xEB,0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x43,0x52,0x84,0xE1,0x05,0x00,0xA0,0xE1,0xF5,0xF9,0xFF,0xEB,0x3D,0x6C,0x44,0xE2,
+    0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0xEF,0xF9,0xFF,0xEB,0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x43,0x72,0x86,0xE0,0x07,0x00,0xA0,0xE1,0xE9,0xF9,0xFF,0xEB,0x0C,0x20,0xA0,0xE3,
+    0x01,0x3A,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x02,0x83,0x25,0xE0,0x08,0x00,0xA0,0xE1,
+    0xE3,0xF9,0xFF,0xEB,0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x05,0x00,0xA0,0xE1,0xDE,0xF9,0xFF,0xEB,0x01,0x10,0xA0,0xE3,0x01,0x3A,0xA0,0xE3,
+    0x0C,0x20,0xA0,0xE3,0x01,0x94,0x87,0xE1,0x09,0x00,0xA0,0xE1,0xD8,0xF9,0xFF,0xEB,
+    0x01,0x10,0xA0,0xE3,0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x01,0xA4,0x89,0xE0,
+    0x0A,0x00,0xA0,0xE1,0xD2,0xF9,0xFF,0xEB,0x0C,0x20,0xA0,0xE3,0x01,0x3A,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x82,0xB3,0x87,0xE0,0x0B,0x00,0xA0,0xE1,0xCC,0xF9,0xFF,0xEB,
+    0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,
+    0xC7,0xF9,0xFF,0xEB,0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x07,0x00,0xA0,0xE1,0xC2,0xF9,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x04,0x00,0xA0,0xE1,0xBD,0xF9,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,
+    0x0D,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0xB8,0xF9,0xFF,0xEB,
+    0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0xB3,0xF9,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x07,0x00,0xA0,0xE1,0xAE,0xF9,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0xA9,0xF9,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,
+    0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0xA4,0xF9,0xFF,0xEB,
+    0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,
+    0x9F,0xF9,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x0A,0x00,0xA0,0xE1,0x9A,0xF9,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,0x95,0xF9,0xFF,0xEB,0x02,0x3A,0xA0,0xE3,
+    0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0x90,0xF9,0xFF,0xEB,
+    0x02,0x3A,0xA0,0xE3,0x0D,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,
+    0x8B,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x04,0x00,0xA0,0xE1,0x86,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0x81,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,
+    0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x7C,0xF9,0xFF,0xEB,
+    0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,
+    0x77,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x08,0x00,0xA0,0xE1,0x72,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0x6D,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,
+    0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x68,0xF9,0xFF,0xEB,
+    0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,
+    0x63,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x0B,0x00,0xA0,0xE1,0x5E,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0x59,0xF9,0xFF,0xEB,0x01,0x39,0xA0,0xE3,
+    0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x54,0xF9,0xFF,0xEB,
+    0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x00,0xA0,0xE1,
+    0x4F,0xF9,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x05,0x00,0xA0,0xE1,0x4A,0xF9,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,0x45,0xF9,0xFF,0xEB,0x02,0x39,0xA0,0xE3,
+    0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x40,0xF9,0xFF,0xEB,
+    0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,
+    0x3B,0xF9,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x05,0x00,0xA0,0xE1,0x36,0xF9,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x31,0xF9,0xFF,0xEB,0x02,0x39,0xA0,0xE3,
+    0x0F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0A,0x00,0xA0,0xE1,0x2C,0xF9,0xFF,0xEB,
+    0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,
+    0x27,0xF9,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x08,0x00,0xA0,0xE1,0x22,0xF9,0xFF,0xEB,0x02,0x39,0xA0,0xE3,0x0F,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x6D,0x00,0x00,0xEA,0x01,0x3B,0xA0,0xE3,
+    0x0A,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0x18,0xF9,0xFF,0xEB,
+    0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0x13,0xF9,0xFF,0xEB,0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x07,0x00,0xA0,0xE1,0x0E,0xF9,0xFF,0xEB,0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0x09,0xF9,0xFF,0xEB,0x01,0x3B,0xA0,0xE3,
+    0x0A,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0x04,0xF9,0xFF,0xEB,
+    0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0xFF,0xF8,0xFF,0xEB,0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x0A,0x00,0xA0,0xE1,0xFA,0xF8,0xFF,0xEB,0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,0xF5,0xF8,0xFF,0xEB,0x24,0x41,0x9F,0xE5,
+    0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x00,0xA0,0xE1,
+    0xEF,0xF8,0xFF,0xEB,0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x09,0x00,0xA0,0xE1,0xEA,0xF8,0xFF,0xEB,0x01,0x3B,0xA0,0xE3,0x0A,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0xE5,0xF8,0xFF,0xEB,0x02,0x3B,0xA0,0xE3,
+    0x0B,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x05,0x00,0xA0,0xE1,0xE0,0xF8,0xFF,0xEB,
+    0x02,0x3B,0xA0,0xE3,0x0B,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0xDB,0xF8,0xFF,0xEB,0x02,0x3B,0xA0,0xE3,0x0B,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x07,0x00,0xA0,0xE1,0xD6,0xF8,0xFF,0xEB,0x02,0x3B,0xA0,0xE3,0x0B,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x08,0x00,0xA0,0xE1,0xD1,0xF8,0xFF,0xEB,0x02,0x3B,0xA0,0xE3,
+    0x0B,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,0xCC,0xF8,0xFF,0xEB,
+    0x02,0x3B,0xA0,0xE3,0x0B,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x06,0x00,0xA0,0xE1,
+    0xC7,0xF8,0xFF,0xEB,0x02,0x3B,0xA0,0xE3,0x0B,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x0A,0x00,0xA0,0xE1,0xC2,0xF8,0xFF,0xEB,0x02,0x3B,0xA0,0xE3,0x0B,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x0B,0x00,0xA0,0xE1,0xBD,0xF8,0xFF,0xEB,0x02,0x3B,0xA0,0xE3,
+    0x0B,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x00,0xA0,0xE1,0xB8,0xF8,0xFF,0xEB,
+    0x02,0x3B,0xA0,0xE3,0x0B,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x09,0x00,0xA0,0xE1,
+    0xB3,0xF8,0xFF,0xEB,0x02,0x3B,0xA0,0xE3,0x0B,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x08,0x00,0xA0,0xE1,0xAE,0xF8,0xFF,0xEB,0x00,0x00,0xA0,0xE3,0xFE,0x8F,0xBD,0xE8,
+    0x20,0x70,0xFE,0xFC,0x24,0x70,0xFE,0xFC,0x20,0x3A,0xFE,0xFC,0xF0,0x41,0x2D,0xE9,
+    0x01,0x00,0x50,0xE3,0x02,0x70,0xA0,0xE1,0x01,0x50,0xA0,0xE1,0x00,0x40,0xA0,0xE1,
+    0x15,0x00,0x00,0x8A,0x54,0x6B,0x9F,0xE5,0x01,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x04,0x01,0x96,0xE7,0x48,0x00,0x80,0xE2,0xB3,0xF8,0xFF,0xEB,0x01,0x00,0x50,0xE3,
+    0x0D,0x00,0x00,0x1A,0x04,0x01,0x96,0xE7,0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0xAD,0xF8,0xFF,0xEB,0x05,0x00,0x50,0xE1,0x14,0x00,0x00,0x0A,0x01,0x00,0x55,0xE3,
+    0x07,0x00,0x00,0x1A,0x05,0x20,0xA0,0xE1,0x07,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1,
+    0x49,0xFC,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0xAA,0x00,0x00,0xE0,0xE3,
+    0xF0,0x81,0xBD,0xE8,0x04,0x01,0x96,0xE7,0x03,0x30,0xA0,0xE3,0x00,0x20,0xA0,0xE3,
+    0x05,0x10,0xA0,0xE1,0x8D,0xF8,0xFF,0xEB,0x04,0x01,0x96,0xE7,0x02,0x3C,0xA0,0xE3,
+    0x09,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0C,0x00,0x80,0xE2,0x87,0xF8,0xFF,0xEB,
+    0x00,0x00,0xA0,0xE3,0xF0,0x81,0xBD,0xE8,0xF0,0x47,0x2D,0xE9,0x01,0x00,0x50,0xE3,
+    0x03,0x70,0xA0,0xE1,0x02,0x80,0xA0,0xE1,0x20,0x60,0x9D,0xE5,0x01,0x90,0xA0,0xE1,
+    0x00,0x40,0xA0,0xE1,0x71,0x00,0x00,0x8A,0x01,0x20,0xA0,0xE1,0x06,0x10,0xA0,0xE1,
+    0x2D,0xFC,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x6C,0x00,0x00,0xBA,0x01,0x20,0xA0,0xE3,
+    0x88,0x5A,0x9F,0xE5,0x00,0x10,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x48,0x00,0x80,0xE2,
+    0x81,0xF8,0xFF,0xEB,0x01,0x00,0x50,0xE3,0x64,0x00,0x00,0x1A,0x04,0x01,0x95,0xE7,
+    0x03,0x35,0xA0,0xE3,0x16,0x20,0xA0,0xE3,0x03,0x10,0xA0,0xE3,0x6B,0xF8,0xFF,0xEB,
+    0x04,0x01,0x95,0xE7,0x03,0x36,0xA0,0xE3,0x14,0x20,0xA0,0xE3,0x03,0x10,0xA0,0xE3,
+    0x66,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x03,0x37,0xA0,0xE3,0x12,0x20,0xA0,0xE3,
+    0x03,0x10,0xA0,0xE3,0x61,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x03,0x38,0xA0,0xE3,
+    0x10,0x20,0xA0,0xE3,0x03,0x10,0xA0,0xE3,0x5C,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x03,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x03,0x10,0xA0,0xE3,0x57,0xF8,0xFF,0xEB,
+    0x04,0x01,0x95,0xE7,0x03,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,0x03,0x10,0xA0,0xE3,
+    0x52,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x03,0x3C,0xA0,0xE3,0x08,0x20,0xA0,0xE3,
+    0x03,0x10,0xA0,0xE3,0x4D,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x01,0x34,0xA0,0xE3,
+    0x18,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x48,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x40,0x30,0xA0,0xE3,0x06,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x43,0xF8,0xFF,0xEB,
+    0x04,0x01,0x95,0xE7,0x20,0x30,0xA0,0xE3,0x05,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x3E,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x39,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x08,0x30,0xA0,0xE3,
+    0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x34,0xF8,0xFF,0xEB,0x06,0x20,0xA0,0xE1,
+    0x09,0x10,0xA0,0xE1,0x04,0x00,0xA0,0xE1,0x7F,0xFF,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x07,0x38,0xA0,0xE3,0x10,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x00,0x80,0xE2,
+    0x2A,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x07,0x3C,0xA0,0xE3,0x08,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x04,0x00,0x80,0xE2,0x24,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x00,0x20,0xA0,0xE3,0x07,0x30,0xA0,0xE3,0x02,0x10,0xA0,0xE1,0x04,0x00,0x80,0xE2,
+    0x1E,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0xFF,0x3C,0xA0,0xE3,0x08,0x20,0xA0,0xE3,
+    0x08,0x10,0xA0,0xE1,0x08,0x00,0x80,0xE2,0x18,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x03,0x30,0xA0,0xE3,0x00,0x20,0xA0,0xE3,0x07,0x10,0xA0,0xE1,0x08,0x00,0x80,0xE2,
+    0x12,0xF8,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x02,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x48,0x00,0x80,0xE2,0x1C,0xF8,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,
+    0x00,0x00,0xE0,0xE3,0xF0,0x87,0xBD,0xE8,0x04,0x11,0x95,0xE7,0x08,0x05,0x0A,0xE3,
+    0x50,0x00,0x81,0xE5,0x04,0x11,0x95,0xE7,0xC4,0x08,0x9F,0xE5,0x68,0x00,0x81,0xE5,
+    0x00,0x00,0xA0,0xE3,0xF0,0x87,0xBD,0xE8,0x70,0x40,0x2D,0xE9,0x00,0x40,0xA0,0xE1,
+    0xA8,0x58,0x9F,0xE5,0x01,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x48,0x00,0x80,0xE2,0x08,0xF8,0xFF,0xEB,0x01,0x00,0x50,0xE3,0xF8,0xFF,0xFF,0x1A,
+    0x70,0x80,0xBD,0xE8,0x70,0x40,0x2D,0xE9,0x01,0x00,0x50,0xE3,0x01,0x60,0xA0,0xE1,
+    0x00,0x40,0xA0,0xE1,0x07,0x00,0x00,0x8A,0x01,0x20,0xA0,0xE3,0x6C,0x58,0x9F,0xE5,
+    0x00,0x10,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x48,0x00,0x80,0xE2,0xFA,0xF7,0xFF,0xEB,
+    0x01,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,0x00,0x00,0xE0,0xE3,0x70,0x80,0xBD,0xE8,
+    0x04,0x01,0x95,0xE7,0x02,0x31,0xA0,0xE3,0x1F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0xE2,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x0F,0x38,0xA0,0xE3,0x10,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0x0C,0x00,0x80,0xE2,0xDC,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x01,0x3C,0xA0,0xE3,0x08,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x0C,0x00,0x80,0xE2,
+    0xD6,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x01,0x30,0xA0,0xE3,0x00,0x20,0xA0,0xE3,
+    0x03,0x10,0xA0,0xE1,0x0C,0x00,0x80,0xE2,0xD0,0xF7,0xFF,0xEB,0x00,0x10,0xD6,0xE5,
+    0xFF,0x38,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x10,0x20,0xA0,0xE3,0x10,0x00,0x80,0xE2,
+    0xCA,0xF7,0xFF,0xEB,0x01,0x10,0xD6,0xE5,0x03,0x31,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x1E,0x20,0xA0,0xE3,0x1C,0x00,0x80,0xE2,0xC4,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x01,0x39,0xA0,0xE3,0x0E,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x1C,0x00,0x80,0xE2,
+    0xBE,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x00,0x20,0xA0,0xE3,0xFF,0x30,0xA0,0xE3,
+    0x02,0x10,0xA0,0xE1,0x10,0x00,0x80,0xE2,0xB8,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x03,0x32,0xA0,0xE3,0x1C,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x1C,0x00,0x80,0xE2,
+    0xB2,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x01,0x3A,0xA0,0xE3,0x0C,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x1C,0x00,0x80,0xE2,0xAC,0xF7,0xFF,0xEB,0x0E,0x10,0xD6,0xE5,
+    0x03,0x34,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x18,0x20,0xA0,0xE3,0x1C,0x00,0x80,0xE2,
+    0xA6,0xF7,0xFF,0xEB,0x0F,0x10,0xD6,0xE5,0x0F,0x3C,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x08,0x20,0xA0,0xE3,0x1C,0x00,0x80,0xE2,0xA0,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0xFF,0x38,0xA0,0xE3,0x10,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x14,0x00,0x80,0xE2,
+    0x9A,0xF7,0xFF,0xEB,0x02,0x10,0xD6,0xE5,0xFF,0x34,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x18,0x20,0xA0,0xE3,0x18,0x00,0x80,0xE2,0x94,0xF7,0xFF,0xEB,0x03,0x10,0xD6,0xE5,
+    0xFF,0x38,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x10,0x20,0xA0,0xE3,0x18,0x00,0x80,0xE2,
+    0x8E,0xF7,0xFF,0xEB,0x04,0x10,0xD6,0xE5,0xFF,0x3C,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x08,0x20,0xA0,0xE3,0x18,0x00,0x80,0xE2,0x88,0xF7,0xFF,0xEB,0x05,0x10,0xD6,0xE5,
+    0xFF,0x30,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x00,0x20,0xA0,0xE3,0x18,0x00,0x80,0xE2,
+    0x82,0xF7,0xFF,0xEB,0x07,0x10,0xD6,0xE5,0x03,0x36,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x14,0x20,0xA0,0xE3,0x1C,0x00,0x80,0xE2,0x7C,0xF7,0xFF,0xEB,0x06,0x10,0xD6,0xE5,
+    0xF0,0x30,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x04,0x20,0xA0,0xE3,0x1C,0x00,0x80,0xE2,
+    0x76,0xF7,0xFF,0xEB,0x0B,0x10,0xD6,0xE5,0x03,0x38,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x10,0x20,0xA0,0xE3,0x1C,0x00,0x80,0xE2,0x70,0xF7,0xFF,0xEB,0x09,0x10,0xD6,0xE5,
+    0x02,0x39,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x0F,0x20,0xA0,0xE3,0x1C,0x00,0x80,0xE2,
+    0x6A,0xF7,0xFF,0xEB,0x0A,0x10,0xD6,0xE5,0x03,0x38,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x10,0x20,0xA0,0xE3,0x58,0x00,0x80,0xE2,0x64,0xF7,0xFF,0xEB,0x08,0x10,0xD6,0xE5,
+    0x07,0x30,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x00,0x20,0xA0,0xE3,0x58,0x00,0x80,0xE2,
+    0x5E,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x01,0x3C,0xA0,0xE3,0x08,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x5C,0x00,0x80,0xE2,0x58,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,
+    0x10,0x30,0xA0,0xE3,0x04,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x5C,0x00,0x80,0xE2,
+    0x52,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x00,0x20,0xA0,0xE3,0x01,0x30,0xA0,0xE3,
+    0x02,0x10,0xA0,0xE1,0x5C,0x00,0x80,0xE2,0x4C,0xF7,0xFF,0xEB,0x00,0x00,0xA0,0xE3,
+    0x70,0x80,0xBD,0xE8,0x70,0x40,0x2D,0xE9,0x01,0x00,0x50,0xE3,0x00,0x40,0xA0,0xE1,
+    0x00,0x00,0xE0,0x83,0x70,0x80,0xBD,0x88,0x01,0x34,0xA0,0xE3,0x18,0x20,0xA0,0xE3,
+    0x01,0x10,0xA0,0xE3,0xB4,0x55,0x9F,0xE5,0x04,0x01,0x95,0xE7,0x0C,0x00,0x80,0xE2,
+    0x3E,0xF7,0xFF,0xEB,0x04,0x01,0x95,0xE7,0x02,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,
+    0x48,0x00,0x80,0xE2,0x48,0xF7,0xFF,0xEB,0x00,0x00,0x50,0xE3,0xF8,0xFF,0xFF,0x1A,
+    0x70,0x80,0xBD,0xE8,0x70,0x40,0x2D,0xE9,0x00,0x40,0xA0,0xE1,0x7C,0x55,0x9F,0xE5,
+    0x02,0x21,0xA0,0xE3,0x1F,0x10,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x3E,0xF7,0xFF,0xEB,
+    0x00,0x00,0x50,0xE3,0x09,0x00,0x00,0x0A,0x04,0x00,0xA0,0xE1,0xE0,0xFF,0xFF,0xEB,
+    0x00,0x00,0x50,0xE3,0x00,0x00,0xE0,0xB3,0x70,0x80,0xBD,0xB8,0x02,0x31,0xA0,0xE3,
+    0x1F,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x04,0x01,0x95,0xE7,0x23,0xF7,0xFF,0xEB,
+    0x00,0x00,0xA0,0xE3,0x70,0x80,0xBD,0xE8,0x70,0x40,0x2D,0xE9,0x00,0x40,0xA0,0xE1,
+    0x28,0x55,0x9F,0xE5,0x02,0x21,0xA0,0xE3,0x1F,0x10,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x29,0xF7,0xFF,0xEB,0x01,0x00,0x50,0xE3,0x09,0x00,0x00,0x0A,0x04,0x00,0xA0,0xE1,
+    0xCB,0xFF,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x00,0x00,0xE0,0xB3,0x70,0x80,0xBD,0xB8,
+    0x02,0x31,0xA0,0xE3,0x1F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x04,0x01,0x95,0xE7,
+    0x0E,0xF7,0xFF,0xEB,0x00,0x00,0xA0,0xE3,0x70,0x80,0xBD,0xE8,0xF0,0x41,0x2D,0xE9,
+    0x01,0x00,0x50,0xE3,0x01,0x40,0xA0,0xE1,0x00,0x50,0xA0,0xE1,0x19,0x00,0x00,0x8A,
+    0x02,0x21,0xA0,0xE3,0xC4,0x64,0x9F,0xE5,0x1F,0x10,0xA0,0xE3,0x05,0x01,0x96,0xE7,
+    0x11,0xF7,0xFF,0xEB,0x01,0x00,0x50,0xE3,0x0B,0x00,0x00,0x0A,0x05,0x01,0x96,0xE7,
+    0x02,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0x48,0x00,0x80,0xE2,0x0A,0xF7,0xFF,0xEB,
+    0x00,0x00,0x50,0xE3,0x0B,0x00,0x00,0x1A,0x05,0x01,0x96,0xE7,0x02,0x31,0xA0,0xE3,
+    0x1F,0x20,0xA0,0xE3,0x01,0x10,0xA0,0xE3,0xF4,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,
+    0x01,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x48,0x00,0x80,0xE2,0xFE,0xF6,0xFF,0xEB,
+    0x01,0x00,0x50,0xE3,0x01,0x00,0x00,0x0A,0x00,0x00,0xE0,0xE3,0xF0,0x81,0xBD,0xE8,
+    0x05,0x01,0x96,0xE7,0x01,0x39,0xA0,0xE3,0x14,0x10,0x94,0xE5,0x0E,0x20,0xA0,0xE3,
+    0x30,0x00,0x80,0xE2,0xE5,0xF6,0xFF,0xEB,0x14,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,
+    0x0B,0x00,0x00,0x0A,0x05,0x01,0x96,0xE7,0x46,0x10,0xD4,0xE5,0xFF,0x38,0xA0,0xE3,
+    0x24,0x00,0x80,0xE2,0x10,0x20,0xA0,0xE3,0xDC,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,
+    0x03,0x31,0xA0,0xE3,0x00,0x10,0x94,0xE5,0x1E,0x20,0xA0,0xE3,0x30,0x00,0x80,0xE2,
+    0xD6,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,0x01,0x3A,0xA0,0xE3,0x18,0x10,0x94,0xE5,
+    0x0C,0x20,0xA0,0xE3,0x30,0x00,0x80,0xE2,0xD0,0xF6,0xFF,0xEB,0x18,0x00,0x94,0xE5,
+    0x00,0x00,0x50,0xE3,0x0B,0x00,0x00,0x0A,0x05,0x01,0x96,0xE7,0x47,0x10,0xD4,0xE5,
+    0xFF,0x30,0xA0,0xE3,0x24,0x00,0x80,0xE2,0x00,0x20,0xA0,0xE3,0xC7,0xF6,0xFF,0xEB,
+    0x05,0x01,0x96,0xE7,0x03,0x32,0xA0,0xE3,0x04,0x10,0x94,0xE5,0x1C,0x20,0xA0,0xE3,
+    0x30,0x00,0x80,0xE2,0xC1,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,0x0F,0x3C,0xA0,0xE3,
+    0x1C,0x10,0x94,0xE5,0x08,0x20,0xA0,0xE3,0x30,0x00,0x80,0xE2,0xBB,0xF6,0xFF,0xEB,
+    0x1C,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0x0B,0x00,0x00,0x0A,0x05,0x01,0x96,0xE7,
+    0x48,0x10,0x94,0xE5,0x00,0x30,0xE0,0xE3,0x00,0x20,0xA0,0xE3,0x28,0x00,0x80,0xE2,
+    0xB2,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,0x03,0x34,0xA0,0xE3,0x08,0x10,0x94,0xE5,
+    0x18,0x20,0xA0,0xE3,0x30,0x00,0x80,0xE2,0xAC,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,
+    0xF0,0x30,0xA0,0xE3,0x20,0x10,0x94,0xE5,0x04,0x20,0xA0,0xE3,0x30,0x00,0x80,0xE2,
+    0xA6,0xF6,0xFF,0xEB,0x20,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0x1D,0x00,0x00,0x0A,
+    0x05,0x01,0x96,0xE7,0x4C,0x10,0xD4,0xE5,0xFF,0x34,0xA0,0xE3,0x2C,0x00,0x80,0xE2,
+    0x18,0x20,0xA0,0xE3,0x9D,0xF6,0xFF,0xEB,0x4D,0x10,0xD4,0xE5,0xFF,0x38,0xA0,0xE3,
+    0x05,0x01,0x96,0xE7,0x10,0x20,0xA0,0xE3,0x2C,0x00,0x80,0xE2,0x97,0xF6,0xFF,0xEB,
+    0x4E,0x10,0xD4,0xE5,0xFF,0x3C,0xA0,0xE3,0x05,0x01,0x96,0xE7,0x08,0x20,0xA0,0xE3,
+    0x2C,0x00,0x80,0xE2,0x91,0xF6,0xFF,0xEB,0x4F,0x10,0xD4,0xE5,0xFF,0x30,0xA0,0xE3,
+    0x05,0x01,0x96,0xE7,0x00,0x20,0xA0,0xE3,0x2C,0x00,0x80,0xE2,0x8B,0xF6,0xFF,0xEB,
+    0x05,0x01,0x96,0xE7,0x03,0x36,0xA0,0xE3,0x0C,0x10,0x94,0xE5,0x14,0x20,0xA0,0xE3,
+    0x30,0x00,0x80,0xE2,0x85,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,0x02,0x39,0xA0,0xE3,
+    0x34,0x10,0x94,0xE5,0x0F,0x20,0xA0,0xE3,0x30,0x00,0x80,0xE2,0x7F,0xF6,0xFF,0xEB,
+    0x34,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0x0B,0x00,0x00,0x0A,0x05,0x01,0x96,0xE7,
+    0x44,0x10,0xD4,0xE5,0x03,0x38,0xA0,0xE3,0x60,0x00,0x80,0xE2,0x10,0x20,0xA0,0xE3,
+    0x76,0xF6,0xFF,0xEB,0x45,0x10,0xD4,0xE5,0x07,0x30,0xA0,0xE3,0x05,0x01,0x96,0xE7,
+    0x00,0x20,0xA0,0xE3,0x60,0x00,0x80,0xE2,0x70,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,
+    0x0F,0x30,0xA0,0xE3,0x24,0x10,0x94,0xE5,0x00,0x20,0xA0,0xE3,0x30,0x00,0x80,0xE2,
+    0x6A,0xF6,0xFF,0xEB,0x24,0x00,0x94,0xE5,0x58,0x72,0x9F,0xE5,0x00,0x00,0x50,0xE3,
+    0x2C,0x00,0x00,0x0A,0x08,0x00,0x50,0xE3,0x04,0x00,0x00,0x0A,0x0C,0x00,0x50,0xE3,
+    0x0C,0x00,0x00,0x0A,0x0F,0x00,0x50,0xE3,0x14,0x00,0x00,0x0A,0x1F,0x00,0x00,0xEA,
+    0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x6A,0xF6,0xFF,0xEB,
+    0x00,0x00,0x50,0xE3,0x58,0x00,0xD4,0x05,0x05,0x11,0x96,0x07,0x40,0x00,0xC1,0x05,
+    0x06,0x00,0x00,0x1A,0x15,0x00,0x00,0xEA,0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x07,0x00,0xA0,0xE1,0x60,0xF6,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x53,0x00,0x00,0x1A,
+    0x05,0x11,0x96,0xE7,0xB8,0x05,0xD4,0xE1,0xB0,0x04,0xC1,0xE1,0x0B,0x00,0x00,0xEA,
+    0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x56,0xF6,0xFF,0xEB,
+    0x00,0x00,0x50,0xE3,0x49,0x00,0x00,0x0A,0x05,0x11,0x96,0xE7,0x58,0x00,0x94,0xE5,
+    0x40,0x00,0x81,0xE5,0x05,0x01,0x96,0xE7,0x5C,0x10,0x94,0xE5,0x44,0x10,0x80,0xE5,
+    0x03,0x38,0xA0,0xE3,0x05,0x01,0x96,0xE7,0x10,0x20,0xA0,0xE3,0x10,0x10,0x94,0xE5,
+    0x30,0x00,0x80,0xE2,0x39,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,0x01,0x3C,0xA0,0xE3,
+    0x28,0x10,0x94,0xE5,0x08,0x20,0xA0,0xE3,0x20,0x00,0x80,0xE2,0x33,0xF6,0xFF,0xEB,
+    0x10,0x00,0x94,0xE5,0x00,0x00,0x50,0xE3,0x24,0x00,0x94,0x15,0x00,0x00,0x50,0x13,
+    0x04,0x00,0x00,0x0A,0x2C,0x00,0x94,0xE5,0x01,0x00,0x50,0xE3,0x30,0x00,0x94,0x05,
+    0x01,0x00,0x50,0x03,0x3B,0xFF,0xFF,0x0A,0x05,0x01,0x96,0xE7,0x2C,0x10,0x94,0xE5,
+    0x04,0x30,0xA0,0xE3,0x02,0x20,0xA0,0xE3,0x20,0x00,0x80,0xE2,0x23,0xF6,0xFF,0xEB,
+    0x05,0x01,0x96,0xE7,0x02,0x30,0xA0,0xE3,0x30,0x10,0x94,0xE5,0x01,0x20,0xA0,0xE3,
+    0x20,0x00,0x80,0xE2,0x1D,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,0x01,0x3C,0xA0,0xE3,
+    0x38,0x10,0x94,0xE5,0x08,0x20,0xA0,0xE3,0x64,0x00,0x80,0xE2,0x17,0xF6,0xFF,0xEB,
+    0x05,0x01,0x96,0xE7,0x10,0x30,0xA0,0xE3,0x3C,0x10,0x94,0xE5,0x04,0x20,0xA0,0xE3,
+    0x64,0x00,0x80,0xE2,0x11,0xF6,0xFF,0xEB,0x05,0x01,0x96,0xE7,0x01,0x30,0xA0,0xE3,
+    0x40,0x10,0x94,0xE5,0x00,0x20,0xA0,0xE3,0x64,0x00,0x80,0xE2,0x0B,0xF6,0xFF,0xEB,
+    0x05,0x01,0x96,0xE7,0x01,0x30,0xA0,0xE3,0x00,0x20,0xA0,0xE3,0x03,0x10,0xA0,0xE1,
+    0x20,0x00,0x80,0xE2,0x05,0xF6,0xFF,0xEB,0x05,0x00,0xA0,0xE1,0xAD,0xF9,0xFF,0xEB,
+    0x24,0x00,0x94,0xE5,0x08,0x00,0x50,0xE3,0x08,0x00,0x00,0x0A,0x0C,0x00,0x50,0xE3,
+    0x11,0x00,0x00,0x0A,0x0F,0x00,0x50,0xE3,0x16,0x00,0x00,0x0A,0x21,0x00,0x00,0xEA,
+    0x05,0x11,0x96,0xE7,0x58,0x00,0x94,0xE5,0x40,0x00,0x81,0xE5,0xB7,0xFF,0xFF,0xEA,
+    0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0x02,0xF6,0xFF,0xEB,
+    0x00,0x00,0x50,0xE3,0x05,0x01,0x96,0x07,0x38,0x00,0xD0,0x05,0x19,0x00,0x00,0x0A,
+    0x05,0x01,0x96,0xE7,0xB8,0x03,0xD0,0xE1,0x16,0x00,0x00,0xEA,0x03,0x20,0xA0,0xE3,
+    0x00,0x10,0xA0,0xE3,0x07,0x00,0xA0,0xE1,0xF7,0xF5,0xFF,0xEB,0x00,0x00,0x50,0xE3,
+    0x0E,0x00,0x00,0x1A,0xF5,0xFF,0xFF,0xEA,0x03,0x20,0xA0,0xE3,0x00,0x10,0xA0,0xE3,
+    0x07,0x00,0xA0,0xE1,0xF0,0xF5,0xFF,0xEB,0x00,0x00,0x50,0xE3,0x07,0x00,0x00,0x0A,
+    0x05,0x01,0x96,0xE7,0x38,0x00,0x90,0xE5,0x50,0x00,0x84,0xE5,0x05,0x01,0x96,0xE7,
+    0x3C,0x00,0x90,0xE5,0x54,0x00,0x84,0xE5,0x00,0x00,0xA0,0xE3,0xF0,0x81,0xBD,0xE8,
+    0x05,0x01,0x96,0xE7,0x38,0x00,0x90,0xE5,0x50,0x00,0x84,0xE5,0xF9,0xFF,0xFF,0xEA,
+    0x8C,0x2A,0x02,0x20,0x63,0x63,0x00,0xA5,0x00,0xA0,0xEF,0x3F,0xF0,0x40,0x2D,0xE9,
+    0xEB,0xC0,0xA0,0xE3,0x00,0xC0,0xC1,0xE5,0x08,0x70,0xA0,0xE3,0x06,0x70,0xC1,0xE5,
+    0x03,0x60,0xA0,0xE3,0x08,0x60,0xC1,0xE5,0x55,0x50,0xA0,0xE3,0x02,0x50,0xC1,0xE5,
+    0x01,0x40,0xA0,0xE3,0x09,0x40,0xC1,0xE5,0x02,0x30,0xA0,0xE3,0x0E,0x30,0xC1,0xE5,
+    0x00,0x20,0xA0,0xE3,0x07,0x30,0xC1,0xE5,0x00,0x00,0x50,0xE3,0x0B,0x30,0xC1,0xE5,
+    0x07,0x00,0xA0,0xE3,0x01,0x20,0xC1,0xE5,0x03,0x20,0xC1,0xE5,0x04,0x20,0xC1,0xE5,
+    0x05,0x20,0xC1,0xE5,0x0A,0x20,0xC1,0xE5,0x0C,0x40,0xC1,0x05,0x0C,0x30,0xC1,0x15,
+    0x0D,0x20,0xC1,0xE5,0x0F,0x00,0xC1,0xE5,0xF0,0x80,0xBD,0xE8,0x00,0xA0,0xEF,0x3F,
+    0x00,0xB0,0xEF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+    0x5C,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3,0x00,0x10,0x80,0xE5,0x00,0x00,0x90,0xE5,
+    0x50,0x00,0x9F,0xE5,0x35,0x10,0x01,0xE3,0xB0,0x10,0xC0,0xE1,0x00,0x00,0x90,0xE5,
+    0x44,0x00,0x9F,0xE5,0x01,0x10,0xA0,0xE3,0xB0,0x10,0xC0,0xE1,0x00,0x00,0x90,0xE5,
+    0x10,0x0F,0x11,0xEE,0x02,0x0A,0xC0,0xE3,0x01,0x0A,0xC0,0xE3,0x04,0x00,0xC0,0xE3,
+    0x01,0x00,0xC0,0xE3,0x10,0x0F,0x01,0xEE,0x26,0x00,0x00,0xEB,0x1C,0xD0,0x9F,0xE5,
+    0x14,0x00,0x00,0xEB,0x0D,0x00,0x00,0xEB,0x0E,0x00,0x00,0xEB,0x0F,0x00,0x00,0xEB,
+    0xFE,0xFF,0xFF,0xEA,0x80,0xFF,0xFF,0x3F,0x10,0x00,0xFE,0xFC,0x14,0x00,0xFE,0xFC,
+    0x00,0x00,0x03,0x20,0xFE,0xFF,0xFF,0xEA,0xFE,0xFF,0xFF,0xEA,0xFE,0xFF,0xFF,0xEA,
+    0xFE,0xFF,0xFF,0xEA,0xFE,0xFF,0xFF,0xEA,0xFE,0xFF,0xFF,0xEA,0xFE,0xFF,0xFF,0xEA,
+    0x04,0xF0,0x1F,0xE5,0x40,0x00,0x02,0x20,0x04,0xF0,0x1F,0xE5,0x00,0x00,0x02,0x20,
+    0x04,0xF0,0x1F,0xE5,0x04,0x02,0x02,0x20,0x2C,0x30,0x9F,0xE5,0x00,0x20,0xA0,0xE3,
+    0x28,0x10,0x9F,0xE5,0x28,0x00,0x9F,0xE5,0x10,0x40,0x2D,0xE9,0x23,0x31,0xA0,0xE1,
+    0x02,0x00,0x00,0xEA,0x04,0x40,0x91,0xE4,0x01,0x20,0x82,0xE2,0x04,0x40,0x80,0xE4,
+    0x03,0x00,0x52,0xE1,0xFA,0xFF,0xFF,0xBA,0x10,0x80,0xBD,0xE8,0xAF,0x01,0x00,0x00,
+    0x00,0x02,0x00,0x18,0x00,0x00,0x02,0x20,0x04,0x00,0x9F,0xE5,0x10,0x0F,0x0C,0xEE,
+    0x1E,0xFF,0x2F,0xE1,0x00,0x00,0x00,0x18,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+};
+#if defined  (__CC_ARM)
+#pragma arm section
+#endif
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/mmu_RZ_A1H.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/mmu_RZ_A1H.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/mmu_RZ_A1H.c	(revision 429)
@@ -0,0 +1,289 @@
+/**************************************************************************//**
+ * @file     mmu_RZ_A1H.c
+ * @brief    MMU Configuration for RZ_A1H Device Series
+ * @version  V1.00
+ * @date     10 Mar 2017
+ *
+ * @note
+ *
+ ******************************************************************************/
+/*
+ * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Memory map description from: Renesas RZ_A1H_05E_121130.pdf
+
+                                                     Memory Type
+0xffffffff |--------------------------|             ------------
+           |        Peripherals       |                Device
+0xfcf00000 |--------------------------|             ------------
+           |        Page Fault        |                Fault
+0xe8300000 |--------------------------|             ------------
+           |        Peripherals       |                Device
+0xe8000000 |--------------------------|             ------------
+           |        Page Fault        |                Fault
+0x60A00000 |--------------------------|             ------------
+           | On Chip RAM (10M) Mirror |                Fault
+0x60000000 |--------------------------|             ------------
+           |  SPI multi I/O 64MB      |                Fault
+0x5c000000 |--------------------------|             ------------
+           |  SPI multi I/O 64MB      |                Fault
+0x58000000 |--------------------------|             ------------
+           |        CS5 Mirror        |                Fault
+0x54000000 |--------------------------|             ------------
+           |        CS4 Mirror        |                Fault
+0x50000000 |--------------------------|             ------------
+           |        CS3 Mirror        |                Fault
+0x4c000000 |--------------------------|             ------------
+           |        CS2 Mirror        |                Fault
+0x48000000 |--------------------------|             ------------
+           |        CS1 Mirror        |                Fault
+0x44000000 |--------------------------|             ------------
+           |        CS0 Mirror        |                Fault
+0x40000000 |--------------------------|             ------------
+           |          BSC             |                 RW
+0x3ff00000 |--------------------------|             ------------
+           |      SPI_MIO_BASE        |                 RW
+0x3fe00000 |--------------------------|             ------------
+           |        Page Fault        |                Fault
+0x20A00000 |--------------------------|             ------------
+           |    On Chip RAM (10M)     |                 RW
+0x20000000 |--------------------------|             ------------
+           |  SPI multi I/O 64MB      |                 RO
+0x1c000000 |--------------------------|             ------------
+           |  SPI multi I/O 64MB      |                 RO
+0x18000000 |--------------------------|             ------------
+           |  CS5 User Area 64MB      |                 RW
+0x14000000 |--------------------------|             ------------
+           |  CS4 User Area 64MB      |                 RW
+0x10000000 |--------------------------|             ------------
+           |      CS3 SDRAM 64MB      |                 RW
+0x0c000000 |--------------------------|             ------------
+           |      CS2 SDRAM 64MB      |                 RW
+0x08000000 |--------------------------|             ------------
+           |  CS1 NOR Flash 64MB      |                 RO
+0x04000000 |--------------------------|             ------------
+           |  CS0 NOR Flash 64MB      |                 RO
+0x00000000 |--------------------------|             ------------
+*/
+
+// L1 Cache info and restrictions about architecture of the caches (CCSIR register):
+// Write-Through support *not* available
+// Write-Back support available.
+// Read allocation support available.
+// Write allocation support available.
+
+//Note: You should use the Shareable attribute carefully.
+//For cores without coherency logic (such as SCU) marking a region as shareable forces the processor to not cache that region regardless of the inner cache settings.
+//Cortex-A versions of RTX use LDREX/STREX instructions relying on Local monitors. Local monitors will be used only when the region gets cached, regions that are not cached will use the Global Monitor.
+//Some Cortex-A implementations do not include Global Monitors, so wrongly setting the attribute Shareable may cause STREX to fail.
+
+//Recall: When the Shareable attribute is applied to a memory region that is not Write-Back, Normal memory, data held in this region is treated as Non-cacheable.
+//When SMP bit = 0, Inner WB/WA Cacheable Shareable attributes are treated as Non-cacheable.
+//When SMP bit = 1, Inner WB/WA Cacheable Shareable attributes are treated as Cacheable.
+
+
+//Following MMU configuration is expected
+//SCTLR.AFE == 1 (Simplified access permissions model - AP[2:1] define access permissions, AP[0] is an access flag)
+//SCTLR.TRE == 0 (TEX remap disabled, so memory type and attributes are described directly by bits in the descriptor)
+//Domain 0 is always the Client domain
+//Descriptors should place all memory in domain 0
+//There are no restrictions by privilege level (PL0 can access all memory)
+
+
+#include "RZ_A1H.h"
+
+//Import symbols from linker
+extern uint32_t Image$$VECTORS$$Base;
+extern uint32_t Image$$RO_DATA$$Base;
+extern uint32_t Image$$RW_DATA$$Base;
+extern uint32_t Image$$RW_IRAM1$$Base;
+extern uint32_t Image$$CMD_AREA$$Base;
+#if !defined ( __ICCARM__ )
+extern uint32_t Image$$TTB$$ZI$$Base;
+#endif 
+
+#if defined( __CC_ARM )
+#elif defined( __ICCARM__ )
+#else
+extern uint32_t Image$$RW_DATA_NC$$Base;
+extern uint32_t Image$$ZI_DATA_NC$$Base;
+#endif
+
+extern uint32_t Image$$VECTORS$$Limit;
+extern uint32_t Image$$RO_DATA$$Limit;
+extern uint32_t Image$$RW_DATA$$Limit;
+extern uint32_t Image$$RW_IRAM1$$Limit;
+extern uint32_t Image$$CMD_AREA$$Limit;
+#if defined( __CC_ARM )
+#else
+extern uint32_t Image$$RW_DATA_NC$$Limit;
+extern uint32_t Image$$ZI_DATA_NC$$Limit;
+#endif
+
+#if defined( __ICCARM__ )
+#define VECTORS_SIZE    (((uint32_t)Image$$VECTORS$$Limit >> 20) - ((uint32_t)Image$$VECTORS$$Base >> 20) + 1)
+#define RO_DATA_SIZE    (((uint32_t)Image$$RO_DATA$$Limit >> 20) - ((uint32_t)Image$$RO_DATA$$Base >> 20) + 1)
+#define RW_DATA_SIZE    (((uint32_t)Image$$RW_DATA$$Limit >> 20) - ((uint32_t)Image$$RW_DATA$$Base >> 20) + 1)
+#define RW_IRAM1_SIZE   (((uint32_t)Image$$RW_IRAM1$$Limit >> 20) - ((uint32_t)Image$$RW_IRAM1$$Base >> 20) + 1)
+#define CMD_AREA_SIZE   (((uint32_t)Image$$CMD_AREA$$Limit >> 20) - ((uint32_t)Image$$CMD_AREA$$Base >> 20) + 1)
+#else
+#define VECTORS_SIZE    (((uint32_t)&Image$$VECTORS$$Limit >> 20) - ((uint32_t)&Image$$VECTORS$$Base >> 20) + 1)
+#define RO_DATA_SIZE    (((uint32_t)&Image$$RO_DATA$$Limit >> 20) - ((uint32_t)&Image$$RO_DATA$$Base >> 20) + 1)
+#define RW_DATA_SIZE    (((uint32_t)&Image$$RW_DATA$$Limit >> 20) - ((uint32_t)&Image$$RW_DATA$$Base >> 20) + 1)
+#define RW_IRAM1_SIZE   (((uint32_t)&Image$$RW_IRAM1$$Limit >> 20) - ((uint32_t)&Image$$RW_IRAM1$$Base >> 20) + 1)
+#define CMD_AREA_SIZE    (((uint32_t)&Image$$CMD_AREA$$Limit >> 20) - ((uint32_t)&Image$$CMD_AREA$$Base >> 20) + 1)
+#endif
+
+#if defined( __CC_ARM )
+#else
+#define RW_DATA_NC_SIZE (((uint32_t)&Image$$RW_DATA_NC$$Limit >> 20) - ((uint32_t)&Image$$RW_DATA_NC$$Base >> 20) + 1)
+#define ZI_DATA_NC_SIZE (((uint32_t)&Image$$ZI_DATA_NC$$Limit >> 20) - ((uint32_t)&Image$$ZI_DATA_NC$$Base >> 20) + 1)
+#endif
+
+static uint32_t Sect_Normal;     //outer & inner wb/wa, non-shareable, executable, rw, domain 0, base addr 0
+static uint32_t Sect_Normal_NC;  //non-shareable, non-executable, rw, domain 0, base addr 0
+static uint32_t Sect_Normal_Cod; //outer & inner wb/wa, non-shareable, executable, ro, domain 0, base addr 0
+static uint32_t Sect_Normal_RO;  //as Sect_Normal_Cod, but not executable
+static uint32_t Sect_Normal_RW;  //as Sect_Normal_Cod, but writeable and not executable
+static uint32_t Sect_Device_RO;  //device, non-shareable, non-executable, ro, domain 0, base addr 0
+static uint32_t Sect_Device_RW;  //as Sect_Device_RO, but writeable
+
+/* Define global descriptors */
+static uint32_t Page_L1_4k  = 0x0;  //generic
+static uint32_t Page_L1_64k = 0x0;  //generic
+static uint32_t Page_4k_Device_RW;  //Shared device, not executable, rw, domain 0
+static uint32_t Page_64k_Device_RW; //Shared device, not executable, rw, domain 0
+
+#if defined ( __ICCARM__ )
+__no_init uint32_t Image$$TTB$$ZI$$Base @ ".retram";
+uint32_t Image$$VECTORS$$Base;
+uint32_t Image$$RO_DATA$$Base;
+uint32_t Image$$RW_DATA$$Base;
+uint32_t Image$$RW_IRAM1$$Base;
+
+uint32_t Image$$VECTORS$$Limit;
+uint32_t Image$$RO_DATA$$Limit;
+uint32_t Image$$RW_DATA$$Limit;
+uint32_t Image$$RW_IRAM1$$Limit;
+#endif
+
+void MMU_CreateTranslationTable(void)
+{
+    mmu_region_attributes_Type region;
+#if defined ( __ICCARM__ )
+#pragma section=".intvec"
+#pragma section=".rodata"
+#pragma section=".rwdata"
+#pragma section=".bss"
+
+    Image$$VECTORS$$Base = (uint32_t) __section_begin(".intvec");
+    Image$$VECTORS$$Limit= ((uint32_t)__section_begin(".intvec")+(uint32_t)__section_size(".intvec"));
+    Image$$RO_DATA$$Base = (uint32_t) __section_begin(".rodata");
+    Image$$RO_DATA$$Limit= ((uint32_t)__section_begin(".rodata")+(uint32_t)__section_size(".rodata"));
+    Image$$RW_DATA$$Base = (uint32_t) __section_begin(".rwdata"); 
+    Image$$RW_DATA$$Limit= ((uint32_t)__section_begin(".rwdata")+(uint32_t)__section_size(".rwdata"));
+    Image$$RW_IRAM1$$Base = (uint32_t) __section_begin(".bss");  
+    Image$$RW_IRAM1$$Limit= ((uint32_t)__section_begin(".bss")+(uint32_t)__section_size(".bss"));
+#endif
+    /*
+     * Generate descriptors. Refer to core_ca.h to get information about attributes
+     *
+     */
+    //Create descriptors for Vectors, RO, RW, ZI sections
+    section_normal(Sect_Normal, region);
+    section_normal_cod(Sect_Normal_Cod, region);
+    section_normal_ro(Sect_Normal_RO, region);
+    section_normal(Sect_Normal_RW, region);
+    //Create descriptors for peripherals
+    section_device_ro(Sect_Device_RO, region);
+    section_device_rw(Sect_Device_RW, region);
+    section_normal_nc(Sect_Normal_NC, region);
+    //Create descriptors for 64k pages
+    page64k_device_rw(Page_L1_64k, Page_64k_Device_RW, region);
+    //Create descriptors for 4k pages
+    page4k_device_rw(Page_L1_4k, Page_4k_Device_RW, region);
+
+    /*
+     *  Define MMU flat-map regions and attributes
+     *
+     */
+
+    //Create 4GB of faulting entries
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, 0, 4096, DESCRIPTOR_FAULT);
+
+    // R7S72100 memory map.
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_NORFLASH_BASE0    , 64, Sect_Normal_RO);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_NORFLASH_BASE1    , 64, Sect_Normal_RO);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_SDRAM_BASE0       , 64, Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_SDRAM_BASE1       , 64, Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_USER_AREA0        , 64, Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_USER_AREA1        , 64, Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_SPI_IO0           , 64, Sect_Normal_RO);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_SPI_IO1           , 64, Sect_Normal_RO);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_ONCHIP_SRAM_BASE  , 10, Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_SPI_MIO_BASE      ,  1, Sect_Device_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_BSC_BASE          ,  1, Sect_Device_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_PERIPH_BASE0      ,  3, Sect_Device_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_PERIPH_BASE1      , 49, Sect_Device_RW);
+
+#if defined( __ICCARM__ )
+    //Define Image
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)Image$$RO_DATA$$Base , RO_DATA_SIZE , Sect_Normal_Cod);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, 0x18200000, (0x18800000 >> 20) - (0x18200000 >> 20) + 1, Sect_Normal_Cod);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)Image$$VECTORS$$Base , VECTORS_SIZE , Sect_Normal_Cod);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)Image$$RW_DATA$$Base , RW_DATA_SIZE , Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)Image$$RW_IRAM1$$Base, RW_IRAM1_SIZE, Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)Image$$CMD_AREA$$Base, CMD_AREA_SIZE, Sect_Normal);
+#else
+    //Define Image
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$RO_DATA$$Base , RO_DATA_SIZE , Sect_Normal_Cod);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, 0x18200000, (0x18800000 >> 20) - (0x18200000 >> 20) + 1, Sect_Normal_Cod);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$VECTORS$$Base , VECTORS_SIZE , Sect_Normal_Cod);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$RW_DATA$$Base , RW_DATA_SIZE , Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$RW_IRAM1$$Base, RW_IRAM1_SIZE, Sect_Normal_RW);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$CMD_AREA$$Base, CMD_AREA_SIZE, Sect_Normal);
+#endif
+
+#if defined( __CC_ARM )
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_ONCHIP_SRAM_NC_BASE         ,              10, Sect_Normal_NC);
+#elif defined ( __ICCARM__ ) 
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, RZ_A1_ONCHIP_SRAM_NC_BASE         ,              10, Sect_Normal_NC);
+
+#else
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$RW_DATA_NC$$Base, RW_DATA_NC_SIZE, Sect_Normal_NC);
+    MMU_TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$ZI_DATA_NC$$Base, ZI_DATA_NC_SIZE, Sect_Normal_NC);
+#endif
+
+    /* Set location of level 1 page table
+    ; 31:14 - Translation table base addr (31:14-TTBCR.N, TTBCR.N is 0 out of reset)
+    ; 13:7  - 0x0
+    ; 6     - IRGN[0] 0x0 (Inner WB WA)
+    ; 5     - NOS     0x0 (Non-shared)
+    ; 4:3   - RGN     0x1 (Outer WB WA)
+    ; 2     - IMP     0x0 (Implementation Defined)
+    ; 1     - S       0x0 (Non-shared)
+    ; 0     - IRGN[1] 0x1 (Inner WB WA) */
+    __set_TTBR0(((uint32_t)&Image$$TTB$$ZI$$Base) | 9);
+    __ISB();
+
+    /* Set up domain access control register
+    ; We set domain 0 to Client and all other domains to No Access.
+    ; All translation table entries specify domain 0 */
+    __set_DACR(1);
+    __ISB();
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/system_RZ_A1H.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/system_RZ_A1H.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/system_RZ_A1H.c	(revision 429)
@@ -0,0 +1,162 @@
+/******************************************************************************
+ * @file     system_RZ_A1H_H.c
+ * @brief    CMSIS Device System Source File for ARM Cortex-A9 Device Series
+ * @version  V1.00
+ * @date     10 Mar 2017
+ *
+ * @note
+ *
+ ******************************************************************************/
+/*
+ * Copyright (c) 2013-2014 Renesas Electronics Corporation. All rights reserved.
+ * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <RZ_A1H.h>
+#include "RZ_A1_Init.h"
+#include "irq_ctrl.h"
+
+#define CS2_SDRAM_MODE_16BIT_CAS2_BR_BW (*(volatile uint16_t*)0x3FFFD040)
+#define CS3_SDRAM_MODE_16BIT_CAS2_BR_BW (*(volatile uint16_t*)0x3FFFE040)
+#define GPIO_PORT0_BOOTMODE_BITMASK (0x000fu)
+
+/*
+ Port 0 (P0) MD pin assignment
+ P0_0: MD_BOOT0
+ P0_1: MD_BOOT1
+ P0_2: MD_CLK
+ P0_3: MD_CLKS
+ */
+
+/*----------------------------------------------------------------------------
+  System Core Clock Variable
+ *----------------------------------------------------------------------------*/
+uint32_t SystemCoreClock = CM0_RENESAS_RZ_A1_P0_CLK;
+
+/*----------------------------------------------------------------------------
+  System Core Clock update function
+ *----------------------------------------------------------------------------*/
+void SystemCoreClockUpdate (void)
+{
+  uint32_t freq;
+  uint16_t mode;
+  uint16_t ifc;
+
+  mode = (GPIO.PPR0 >> 2U) & 0x01U;
+
+  if (mode == 0) {
+    /* Clock Mode 0 */
+    /* CLKIN is between 10MHz and 13.33MHz */
+    /* Divider 1 uses 1/1 ratio, PLL x30 is ON */
+    freq = CM0_RENESAS_RZ_A1_CLKIN * 30U;
+  } else {
+    /* Clock Mode 1 */
+    /* CLKIN is 48MHz */
+    /* Divider 1 uses 1/4 ratio, PLL x32 is ON */
+    freq = (CM1_RENESAS_RZ_A1_CLKIN * 32U) / 4U;
+  }
+
+  /* Get CPG.FRQCR[IFC] bits */
+  ifc = (CPG.FRQCR >> 8U) & 0x03U;
+
+  /* Determine Divider 2 output clock */
+  if (ifc == 0x03U) {
+    /* Division ratio is 1/3 */
+    freq = (freq / 3U);
+  }
+  else {
+    if (ifc == 0x01U) {
+      /* Division ratio is 2/3 */
+      freq = (freq * 2U) / 3U;
+    }
+  }
+
+  SystemCoreClock = freq;
+}
+
+/*----------------------------------------------------------------------------
+  IRQ Handler Register/Unregister
+ *----------------------------------------------------------------------------*/
+uint32_t InterruptHandlerRegister (IRQn_Type irq, IRQHandler handler)
+{
+    return IRQ_SetHandler(irq, handler);
+}
+
+uint32_t InterruptHandlerUnregister (IRQn_Type irq)
+{
+    return IRQ_SetHandler(irq, (IRQHandler_t)NULL);
+}
+
+/*----------------------------------------------------------------------------
+  System Initialization
+ *----------------------------------------------------------------------------*/
+void SystemInit (void)
+{
+/*       do not use global variables because this function is called before
+         reaching pre-main. RW section may be overwritten afterwards.          */
+  
+  // Enable SRAM write access
+  CPG.SYSCR3 = 0x0F;
+
+  RZ_A1_InitClock();
+  RZ_A1_InitBus();
+
+  // Invalidate entire Unified TLB
+  __set_TLBIALL(0);
+
+  // Invalidate entire branch predictor array
+  __set_BPIALL(0);
+  __DSB();
+  __ISB();
+
+  //  Invalidate instruction cache and flush branch target cache
+  __set_ICIALLU(0);
+  __DSB();
+  __ISB();
+
+  //  Invalidate data cache
+  L1C_InvalidateDCacheAll();
+
+  // Create Translation Table
+  MMU_CreateTranslationTable();
+
+  // Enable MMU
+  MMU_Enable();
+
+  // Enable Caches
+  L1C_EnableCaches();
+  L1C_EnableBTAC();
+
+#if (__L2C_PRESENT == 1) 
+  L2C_InvAllByWay();
+  // Enable L2C
+  L2C_Enable();
+#endif
+
+#if ((__FPU_PRESENT == 1) && (__FPU_USED == 1))
+  // Enable FPU
+  __FPU_Enable();
+#endif
+
+  // IRQ Initialize
+  IRQ_Initialize();
+}
+
+void mbed_sdk_init(void) {
+    L1C_CleanDCacheAll();
+    L1C_InvalidateICacheAll();
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/system_RZ_A1H.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/system_RZ_A1H.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/system_RZ_A1H.h	(revision 429)
@@ -0,0 +1,81 @@
+/******************************************************************************
+ * @file     system_RZ_A1H.h
+ * @brief    CMSIS Device System Header File for ARM Cortex-A Device Series
+ * @version  V1.00
+ * @date     10 Mar 2017
+ *
+ * @note
+ *
+ ******************************************************************************/
+/*
+ * Copyright (c) 2009-2017 ARM Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the License); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __SYSTEM_RZ_A1H_H
+#define __SYSTEM_RZ_A1H_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+extern uint32_t SystemCoreClock;     /*!< System Clock Frequency (Core Clock)  */
+
+typedef void(*IRQHandler)();         /*!< Type Definition for Interrupt Handlers */
+
+/**
+  \brief Setup the microcontroller system.
+
+   Initialize the System and update the SystemCoreClock variable.
+ */
+extern void SystemInit (void);
+
+
+/**
+  \brief  Update SystemCoreClock variable.
+
+   Updates the SystemCoreClock with current core Clock retrieved from cpu registers.
+ */
+extern void SystemCoreClockUpdate (void);
+
+/**
+  \brief  Interrupt Handler Register.
+
+   Registers an Interrupt Handler into the IRQ Table.
+ */
+extern uint32_t InterruptHandlerRegister(IRQn_Type, IRQHandler);
+
+/**
+  \brief  Interrupt Handler Unregister.
+
+   Unregisters an Interrupt Handler from the IRQ Table.
+ */
+extern uint32_t InterruptHandlerUnregister(IRQn_Type);
+
+/**
+  \brief  Create Translation Table.
+
+   Creates Memory Management Unit Translation Table.
+ */
+extern void MMU_CreateTranslationTable(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SYSTEM_RZ_A1H_H */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/mbed_drv_cfg.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/mbed_drv_cfg.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/mbed_drv_cfg.h	(revision 429)
@@ -0,0 +1,46 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MBED_DRV_CFG_H
+#define MBED_DRV_CFG_H
+
+/* can_api.c */
+#define CAN_TEST_GLOBAL_CH  1
+
+/* gpio_api.c */
+#define GPIO_GROUP_MAX      11
+
+/* pwmout_api.c */
+#define FUNC_MOTOR_CTL_PWM
+#define FUMC_MTU2_PWM
+
+/* rtc_api.c */
+//#define USE_RTCX1_CLK
+#define USE_EXTAL_CLK
+//#define USE_RTCX3_CLK
+
+#define RENESAS_RZ_A1_P0_CLK   CM0_RENESAS_RZ_A1_P0_CLK
+
+#define LP_TICKER_MTU2_CH      3
+
+/* flash (MX25L6433FM2I) */
+#define FLASH_BASE                 (0x18000000UL) /**< Flash Base Address */
+#define FLASH_SIZE                 (0x00800000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE            256            /**< Flash Memory page size (interleaving off) */
+                                                  /**< Maximum size per one writing is 256 byte and minimum size per one writing is 1 byte */
+#define FLASH_SECTOR_SIZE          4096           /**< Flash Memory sector size (interleaving off) */
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/trng_api_esp32.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/trng_api_esp32.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/trng_api_esp32.c	(revision 429)
@@ -0,0 +1,83 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if defined(DEVICE_TRNG)
+#include "mbed.h"
+
+#define ESP32_I2C_ADDR    (0x28<<1)
+
+void trng_init_esp32(void) {
+    /* P3_10(EN), P3_9(IO0) */
+    if (((GPIOP3   & 0x0400) == 0)
+     || ((GPIOPMC3 & 0x0400) != 0)
+     || ((GPIOPM3  & 0x0400) != 0)
+
+     || ((GPIOP3   & 0x0200) == 0)
+     || ((GPIOPMC3 & 0x0200) != 0)
+     || ((GPIOPM3  & 0x0200) != 0)) {
+
+        /* P3_10(EN) */
+        GPIOP3   &= ~0x0400;         /* Outputs low level */
+        GPIOPMC3 &= ~0x0400;         /* Port mode */
+        GPIOPM3  &= ~0x0400;         /* Output mode */
+
+        /* P3_9(IO0) */
+        GPIOP3   &= ~0x0200;         /* Outputs low level */
+        GPIOPMC3 &= ~0x0200;         /* Port mode */
+        GPIOPM3  &= ~0x0200;         /* Output mode */
+
+        GPIOP3   |=  0x2000;         /* Outputs hi level */
+        wait_ms(5);
+        GPIOP3   |=  0x0400;         /* Outputs hi level */
+    }
+}
+
+void trng_free_esp32(void) {
+    // do nothing
+}
+
+int trng_get_bytes_esp32(uint8_t *output, size_t length, size_t *output_length) {
+    I2C mI2c(I2C_SDA, I2C_SCL);
+    int ret;
+    char send_data[1];
+    char recv_data[4];
+    size_t idx = 0;
+    int i;
+    int err_cnt = 0;
+
+    while (idx < length) {
+        send_data[0] = 0;
+        ret = mI2c.write(ESP32_I2C_ADDR, send_data, 1);
+        if (ret == 0) {
+            mI2c.read(ESP32_I2C_ADDR, recv_data, sizeof(recv_data));
+            for (i = 0; (i < 4) && (idx < length); i++) {
+                output[idx++] = recv_data[i];
+            }
+        } else {
+            err_cnt++;
+            if (err_cnt >= 20) {
+                break;
+            }
+            wait_ms(100);
+        }
+    }
+    if (output_length != NULL) {
+        *output_length = idx;
+    }
+
+    return (idx != 0 ? 0 : -1);
+}
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/analogin_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/analogin_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/analogin_api.c	(revision 429)
@@ -0,0 +1,107 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "mbed_assert.h"
+#include "analogin_api.h"
+
+#include "cmsis.h"
+#include "PeripheralPins.h"
+
+#include "iodefine.h"
+
+#define ANALOGIN_MEDIAN_FILTER      0
+
+static volatile uint16_t *ADCDR[] = {
+    &ADCADDRA,
+    &ADCADDRB,
+    &ADCADDRC,
+    &ADCADDRD,
+    &ADCADDRE,
+    &ADCADDRF,
+    &ADCADDRG,
+    &ADCADDRH,
+};
+
+void analogin_init(analogin_t *obj, PinName pin) {
+    obj->adc = (ADCName)pinmap_peripheral(pin, PinMap_ADC);
+    MBED_ASSERT(obj->adc != (ADCName)NC);
+
+    CPGSTBCR3 &= ~(1 << 1);
+    CPGSTBCR6 &= ~(1 << 7);
+
+    // 15: ADF 14: ADIE 13: ADST, [12:9] TRGS..0 
+    //    [8:6] CKS 010 :: 340tclk 
+    //    [5:3] MDS 000 :: single mode 
+    //    [2:0] CH  000 :: AN0 
+    ADCADCSR = 0x0080; 
+
+    pinmap_pinout(pin, PinMap_ADC);
+}
+
+static inline uint32_t adc_read(analogin_t *obj) {
+    volatile uint16_t data;
+
+    // Select the appropriate channel and start conversion
+    ADCADCSR &= 0xfff8;
+    ADCADCSR |= (1 << 13 | (obj->adc & 0x7));
+
+    // Wait end of conversion
+    do {
+        data = ADCADCSR;
+    } while (((data & (1 << 15)) == 0) || ((data & (1 << 13)) != 0));
+
+    // clear flag
+    ADCADCSR &= ~(1 << 15);
+
+    return ((*(ADCDR[obj->adc])) >> 4) & 0x0FFF;   // 12 bits range
+}
+
+#if ANALOGIN_MEDIAN_FILTER
+static inline void order(uint32_t *a, uint32_t *b) {
+    if (*a > *b) {
+        uint32_t t = *a;
+        *a = *b;
+        *b = t;
+    }
+}
+#endif
+
+static inline uint32_t adc_read_u32(analogin_t *obj) {
+    uint32_t value;
+#if ANALOGIN_MEDIAN_FILTER
+    uint32_t v1 = adc_read(obj);
+    uint32_t v2 = adc_read(obj);
+    uint32_t v3 = adc_read(obj);
+    order(&v1, &v2);
+    order(&v2, &v3);
+    order(&v1, &v2);
+    value = v2;
+#else
+    value = adc_read(obj);
+#endif
+    return value;
+}
+
+uint16_t analogin_read_u16(analogin_t *obj) {
+    uint32_t value = adc_read_u32(obj);
+
+    return (value << 4) | ((value >> 8) & 0x000F); // 12-bit to 16-bit conversion
+}
+
+float analogin_read(analogin_t *obj) {
+    uint32_t value = adc_read_u32(obj);
+
+    return (float)value * (1.0f / (float)0x0FFF);  // 12 bits range
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/can_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/can_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/can_api.c	(revision 429)
@@ -0,0 +1,1035 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <string.h>
+#include "mbed_assert.h"
+#include "can_api.h"
+#include "RZ_A1_Init.h"
+#include "cmsis.h"
+#include "PeripheralPins.h"
+#include "iodefine.h"
+#include "r_typedefs.h"
+#include "mbed_drv_cfg.h"
+
+#if defined(TARGET_RZA1H)
+#define CAN_NUM         5
+#else
+#define CAN_NUM         2
+#endif
+#define CAN_SND_RCV     2
+#define IRQ_NUM         8
+
+static void can_rec_irq(uint32_t ch);
+static void can_trx_irq(uint32_t ch);
+static void can_err_irq(uint32_t ch, CanIrqType type);
+static void can0_rec_irq(void);
+static void can0_trx_irq(void);
+static void can0_err_warning_irq(void);
+static void can0_overrun_irq(void);
+static void can0_passive_irq(void);
+static void can0_arb_lost_irq(void);
+static void can0_bus_err_irq(void);
+static void can1_rec_irq(void);
+static void can1_trx_irq(void);
+static void can1_err_warning_irq(void);
+static void can1_overrun_irq(void);
+static void can1_passive_irq(void);
+static void can1_arb_lost_irq(void);
+static void can1_bus_err_irq(void);
+#if defined(TARGET_RZA1H)
+static void can2_rec_irq(void);
+static void can2_trx_irq(void);
+static void can2_err_warning_irq(void);
+static void can2_overrun_irq(void);
+static void can2_passive_irq(void);
+static void can2_arb_lost_irq(void);
+static void can2_bus_err_irq(void);
+static void can3_rec_irq(void);
+static void can3_trx_irq(void);
+static void can3_err_warning_irq(void);
+static void can3_overrun_irq(void);
+static void can3_passive_irq(void);
+static void can3_arb_lost_irq(void);
+static void can3_bus_err_irq(void);
+static void can4_rec_irq(void);
+static void can4_trx_irq(void);
+static void can4_err_warning_irq(void);
+static void can4_overrun_irq(void);
+static void can4_passive_irq(void);
+static void can4_arb_lost_irq(void);
+static void can4_bus_err_irq(void);
+#endif
+
+static void can_reset_reg(can_t *obj);
+static void can_reset_recv_rule(can_t *obj);
+static void can_reset_buffer(can_t *obj);
+static void can_reconfigure_channel(void);
+static void can_set_frequency(can_t *obj, int f);
+static void can_set_global_mode(int mode);
+static void can_set_channel_mode(uint32_t ch, int mode);
+
+typedef enum {
+    CAN_SEND = 0,
+    CAN_RECV
+} CANfunc;
+
+typedef enum {
+    GL_OPE = 0,
+    GL_RESET,
+    GL_TEST
+} Globalmode;
+
+typedef enum {
+    CH_COMM = 0,
+    CH_RESET,
+    CH_HOLD
+} Channelmode;
+
+typedef struct {
+    IRQn_Type   int_num;    /* Interrupt number */
+    IRQHandler  handler;    /* Interrupt handler */
+} can_info_int_t;
+
+static can_irq_handler irq_handler;
+static uint32_t can_irq_id[CAN_NUM];
+static int can_initialized[CAN_NUM] = {0};
+
+
+static __IO uint32_t *CTR_MATCH[] = {
+    &RSCAN0C0CTR,
+    &RSCAN0C1CTR,
+#if defined(TARGET_RZA1H)
+    &RSCAN0C2CTR,
+    &RSCAN0C3CTR,
+    &RSCAN0C4CTR,
+#endif
+};
+
+static __IO uint32_t *CFG_MATCH[] = {
+    &RSCAN0C0CFG,
+    &RSCAN0C1CFG,
+#if defined(TARGET_RZA1H)
+    &RSCAN0C2CFG,
+    &RSCAN0C3CFG,
+    &RSCAN0C4CFG,
+#endif
+};
+
+static __IO uint32_t *RFCC_MATCH[] = {
+    &RSCAN0RFCC0,
+    &RSCAN0RFCC1,
+    &RSCAN0RFCC2,
+    &RSCAN0RFCC3,
+    &RSCAN0RFCC4,
+    &RSCAN0RFCC5,
+    &RSCAN0RFCC6,
+    &RSCAN0RFCC7
+};
+
+static __IO uint32_t *TXQCC_MATCH[] = {
+    &RSCAN0TXQCC0,
+    &RSCAN0TXQCC1,
+#if defined(TARGET_RZA1H)
+    &RSCAN0TXQCC2,
+    &RSCAN0TXQCC3,
+    &RSCAN0TXQCC4,
+#endif
+};
+
+static __IO uint32_t *THLCC_MATCH[] = {
+    &RSCAN0THLCC0,
+    &RSCAN0THLCC1,
+#if defined(TARGET_RZA1H)
+    &RSCAN0THLCC2,
+    &RSCAN0THLCC3,
+    &RSCAN0THLCC4,
+#endif
+};
+
+static __IO uint32_t *STS_MATCH[] = {
+    &RSCAN0C0STS,
+    &RSCAN0C1STS,
+#if defined(TARGET_RZA1H)
+    &RSCAN0C2STS,
+    &RSCAN0C3STS,
+    &RSCAN0C4STS,
+#endif
+};
+
+static __IO uint32_t *ERFL_MATCH[] = {
+    &RSCAN0C0ERFL,
+    &RSCAN0C1ERFL,
+#if defined(TARGET_RZA1H)
+    &RSCAN0C2ERFL,
+    &RSCAN0C3ERFL,
+    &RSCAN0C4ERFL,
+#endif
+};
+
+static __IO uint32_t *CFCC_TBL[CAN_NUM][CAN_SND_RCV] = {
+    { &RSCAN0CFCC0 , &RSCAN0CFCC1  },
+    { &RSCAN0CFCC3 , &RSCAN0CFCC4  },
+#if defined(TARGET_RZA1H)
+    { &RSCAN0CFCC6 , &RSCAN0CFCC7  },
+    { &RSCAN0CFCC9 , &RSCAN0CFCC10 },
+    { &RSCAN0CFCC12, &RSCAN0CFCC13 },
+#endif
+};
+
+static __IO uint32_t *CFSTS_TBL[CAN_NUM][CAN_SND_RCV] = {
+    { &RSCAN0CFSTS0 , &RSCAN0CFSTS1  },
+    { &RSCAN0CFSTS3 , &RSCAN0CFSTS4  },
+#if defined(TARGET_RZA1H)
+    { &RSCAN0CFSTS6 , &RSCAN0CFSTS7  },
+    { &RSCAN0CFSTS9 , &RSCAN0CFSTS10 },
+    { &RSCAN0CFSTS12, &RSCAN0CFSTS13 },
+#endif
+};
+
+static __IO uint32_t *CFPCTR_TBL[CAN_NUM][CAN_SND_RCV] = {
+    { &RSCAN0CFPCTR0 , &RSCAN0CFPCTR1  },
+    { &RSCAN0CFPCTR3 , &RSCAN0CFPCTR4  },
+#if defined(TARGET_RZA1H)
+    { &RSCAN0CFPCTR6 , &RSCAN0CFPCTR7  },
+    { &RSCAN0CFPCTR9 , &RSCAN0CFPCTR10 },
+    { &RSCAN0CFPCTR12, &RSCAN0CFPCTR13 },
+#endif
+};
+
+static __IO uint32_t *CFID_TBL[CAN_NUM][CAN_SND_RCV] = {
+    { &RSCAN0CFID0 , &RSCAN0CFID1  },
+    { &RSCAN0CFID3 , &RSCAN0CFID4  },
+#if defined(TARGET_RZA1H)
+    { &RSCAN0CFID6 , &RSCAN0CFID7  },
+    { &RSCAN0CFID9 , &RSCAN0CFID10 },
+    { &RSCAN0CFID12, &RSCAN0CFID13 },
+#endif
+};
+
+static __IO uint32_t *CFPTR_TBL[CAN_NUM][CAN_SND_RCV] = {
+    { &RSCAN0CFPTR0 , &RSCAN0CFPTR1  },
+    { &RSCAN0CFPTR3 , &RSCAN0CFPTR4  },
+#if defined(TARGET_RZA1H)
+    { &RSCAN0CFPTR6 , &RSCAN0CFPTR7  },
+    { &RSCAN0CFPTR9 , &RSCAN0CFPTR10 },
+    { &RSCAN0CFPTR12, &RSCAN0CFPTR13 }
+#endif
+};
+
+static __IO uint32_t *CFDF0_TBL[CAN_NUM][CAN_SND_RCV] = {
+    { &RSCAN0CFDF00 , &RSCAN0CFDF01  },
+    { &RSCAN0CFDF03 , &RSCAN0CFDF04  },
+#if defined(TARGET_RZA1H)
+    { &RSCAN0CFDF06 , &RSCAN0CFDF07  },
+    { &RSCAN0CFDF09 , &RSCAN0CFDF010 },
+    { &RSCAN0CFDF012, &RSCAN0CFDF013 },
+#endif
+};
+
+static __IO uint32_t *CFDF1_TBL[CAN_NUM][CAN_SND_RCV] = {
+    { &RSCAN0CFDF10 , &RSCAN0CFDF11  },
+    { &RSCAN0CFDF13 , &RSCAN0CFDF14  },
+#if defined(TARGET_RZA1H)
+    { &RSCAN0CFDF16 , &RSCAN0CFDF17  },
+    { &RSCAN0CFDF19 , &RSCAN0CFDF110 },
+    { &RSCAN0CFDF112, &RSCAN0CFDF113 },
+#endif
+};
+
+static const can_info_int_t can_int_info[CAN_NUM][IRQ_NUM] = 
+{
+    {   /* ch0 */
+        { INTRCAN0REC_IRQn, can0_rec_irq         }, /* RxIrq */
+        { INTRCAN0TRX_IRQn, can0_trx_irq         }, /* TxIrq */
+        { INTRCAN0ERR_IRQn, can0_err_warning_irq }, /* EwIrq */
+        { INTRCAN0ERR_IRQn, can0_overrun_irq     }, /* DoIrq */
+        { INTRCAN0ERR_IRQn, NULL                 }, /* WuIrq(not supported) */
+        { INTRCAN0ERR_IRQn, can0_passive_irq     }, /* EpIrq */
+        { INTRCAN0ERR_IRQn, can0_arb_lost_irq    }, /* AlIrq */
+        { INTRCAN0ERR_IRQn, can0_bus_err_irq     }  /* BeIrq */
+    },
+    {   /* ch1 */
+        { INTRCAN1REC_IRQn, can1_rec_irq         }, /* RxIrq */
+        { INTRCAN1TRX_IRQn, can1_trx_irq         }, /* TxIrq */
+        { INTRCAN1ERR_IRQn, can1_err_warning_irq }, /* EwIrq */
+        { INTRCAN1ERR_IRQn, can1_overrun_irq     }, /* DoIrq */
+        { INTRCAN1ERR_IRQn, NULL                 }, /* WuIrq(not supported) */
+        { INTRCAN1ERR_IRQn, can1_passive_irq     }, /* EpIrq */
+        { INTRCAN1ERR_IRQn, can1_arb_lost_irq    }, /* AlIrq */
+        { INTRCAN1ERR_IRQn, can1_bus_err_irq     }  /* BeIrq */
+    },
+#if defined(TARGET_RZA1H)
+    {   /* ch2 */
+        { INTRCAN2REC_IRQn, can2_rec_irq         }, /* RxIrq */
+        { INTRCAN2TRX_IRQn, can2_trx_irq         }, /* TxIrq */
+        { INTRCAN2ERR_IRQn, can2_err_warning_irq }, /* EwIrq */
+        { INTRCAN2ERR_IRQn, can2_overrun_irq     }, /* DoIrq */
+        { INTRCAN2ERR_IRQn, NULL                 }, /* WuIrq(not supported) */
+        { INTRCAN2ERR_IRQn, can2_passive_irq     }, /* EpIrq */
+        { INTRCAN2ERR_IRQn, can2_arb_lost_irq    }, /* AlIrq */
+        { INTRCAN2ERR_IRQn, can2_bus_err_irq     }  /* BeIrq */
+    },
+    {   /* ch3 */
+        { INTRCAN3REC_IRQn, can3_rec_irq         }, /* RxIrq */
+        { INTRCAN3TRX_IRQn, can3_trx_irq         }, /* TxIrq */
+        { INTRCAN3ERR_IRQn, can3_err_warning_irq }, /* EwIrq */
+        { INTRCAN3ERR_IRQn, can3_overrun_irq     }, /* DoIrq */
+        { INTRCAN3ERR_IRQn, NULL                 }, /* WuIrq(not supported) */
+        { INTRCAN3ERR_IRQn, can3_passive_irq     }, /* EpIrq */
+        { INTRCAN3ERR_IRQn, can3_arb_lost_irq    }, /* AlIrq */
+        { INTRCAN3ERR_IRQn, can3_bus_err_irq     }  /* BeIrq */
+    },
+    {   /* ch4 */
+        { INTRCAN4REC_IRQn, can4_rec_irq         }, /* RxIrq */
+        { INTRCAN4TRX_IRQn, can4_trx_irq         }, /* TxIrq */
+        { INTRCAN4ERR_IRQn, can4_err_warning_irq }, /* EwIrq */
+        { INTRCAN4ERR_IRQn, can4_overrun_irq     }, /* DoIrq */
+        { INTRCAN4ERR_IRQn, NULL                 }, /* WuIrq(not supported) */
+        { INTRCAN4ERR_IRQn, can4_passive_irq     }, /* EpIrq */
+        { INTRCAN4ERR_IRQn, can4_arb_lost_irq    }, /* AlIrq */
+        { INTRCAN4ERR_IRQn, can4_bus_err_irq     }  /* BeIrq */
+    },
+#endif
+};
+
+static __IO uint32_t *dmy_gaflid = &RSCAN0GAFLID0;
+static __IO uint32_t *dmy_gaflm  = &RSCAN0GAFLM0;
+static __IO uint32_t *dmy_gaflp0 = &RSCAN0GAFLP00;
+static __IO uint32_t *dmy_gaflp1 = &RSCAN0GAFLP10;
+
+void can_irq_init(can_t *obj, can_irq_handler handler, uint32_t id) {
+    irq_handler = handler;
+    can_irq_id[obj->ch] = id;
+}
+
+void can_irq_free(can_t *obj) {
+    can_irq_id[obj->ch] = 0;
+}
+
+void can_irq_set(can_t *obj, CanIrqType type, uint32_t enable) {
+    __IO uint32_t *dmy_ctr;
+
+    /* Wake-up Irq is not supported */
+    if (type != IRQ_WAKEUP) {
+        if (enable) {
+            dmy_ctr = CTR_MATCH[obj->ch];
+            if (type == IRQ_ERROR) {
+                /* EWIE interrupts is enable */
+                *dmy_ctr |= 0x00000200;
+            } else if (type == IRQ_OVERRUN) {
+                /* OLIE interrupts is enable */
+                *dmy_ctr |= 0x00002000;
+            } else if (type == IRQ_PASSIVE) {
+                /* EPIE interrupts is enable */
+                *dmy_ctr |= 0x00000400;
+            } else if (type == IRQ_ARB) {
+                /* ALIE interrupts is enable */
+                *dmy_ctr |= 0x00008000;
+            } else if (type == IRQ_BUS) {
+                /* BEIE interrupts is enable */
+                *dmy_ctr |= 0x00000100;
+            }
+            InterruptHandlerRegister(can_int_info[obj->ch][type].int_num, can_int_info[obj->ch][type].handler);
+            GIC_SetPriority(can_int_info[obj->ch][type].int_num, 5);
+            GIC_SetConfiguration(can_int_info[obj->ch][type].int_num, 1);
+            GIC_EnableIRQ(can_int_info[obj->ch][type].int_num);
+        } else {
+            GIC_DisableIRQ(can_int_info[obj->ch][type].int_num);
+        }
+    }
+}
+
+static void can_rec_irq(uint32_t ch) {
+    __IO uint32_t *dmy_cfsts;
+
+    dmy_cfsts = CFSTS_TBL[ch][CAN_RECV];
+    *dmy_cfsts &= 0xFFFFFFF7;           // Clear CFRXIF
+
+    irq_handler(can_irq_id[ch], IRQ_RX);
+}
+
+static void can_trx_irq(uint32_t ch) {
+    __IO uint32_t *dmy_cfsts;
+
+    dmy_cfsts = CFSTS_TBL[ch][CAN_SEND];
+    *dmy_cfsts &= 0xFFFFFFEF;           // Clear CFTXIF
+
+    irq_handler(can_irq_id[ch], IRQ_TX);
+}
+
+static void can_err_irq(uint32_t ch, CanIrqType type) {
+    __IO uint32_t *dmy_erfl;
+    int val = 1;
+    
+    dmy_erfl = ERFL_MATCH[ch];
+    switch (type) {
+        case IRQ_ERROR:
+            *dmy_erfl &= 0xFFFFFFFD;    // Clear EWF
+            break;
+        case IRQ_OVERRUN:
+            *dmy_erfl &= 0xFFFFFFDF;    // Clear OVLF
+            break;
+        case IRQ_PASSIVE:
+            *dmy_erfl &= 0xFFFFFFFB;    // Clear EPF
+            break;
+        case IRQ_ARB:
+            *dmy_erfl &= 0xFFFFFF7F;    // Clear ALF
+            break;
+        case IRQ_BUS:
+            *dmy_erfl &= 0xFFFF00FF;    // Clear ADERR、B0ERR、B1ERR、CERR、AERR、FERR、SERR
+            *dmy_erfl &= 0xFFFFFFFE;    // Clear BEF
+            break;
+        case IRQ_WAKEUP:
+            /* not supported */
+            /* fall through */
+        default:
+            val = 0;
+            break;
+    }
+    if (val == 1) {
+        irq_handler(can_irq_id[ch], type);
+    }
+}
+
+static void can0_rec_irq(void) {
+    can_rec_irq(CAN_0);
+}
+
+static void can0_trx_irq(void) {
+    can_trx_irq(CAN_0);
+}
+
+static void can0_err_warning_irq(void) {
+    can_err_irq(CAN_0, IRQ_ERROR);
+}
+
+static void can0_overrun_irq(void) {
+    can_err_irq(CAN_0, IRQ_OVERRUN);
+}
+
+static void can0_passive_irq(void) {
+    can_err_irq(CAN_0, IRQ_PASSIVE);
+}
+
+static void can0_arb_lost_irq(void) {
+    can_err_irq(CAN_0, IRQ_ARB);
+}
+
+static void can0_bus_err_irq(void) {
+    can_err_irq(CAN_0, IRQ_BUS);
+}
+
+static void can1_rec_irq(void) {
+    can_rec_irq(CAN_1);
+}
+
+static void can1_trx_irq(void) {
+    can_trx_irq(CAN_1);
+}
+
+static void can1_err_warning_irq(void) {
+    can_err_irq(CAN_1, IRQ_ERROR);
+}
+
+static void can1_overrun_irq(void) {
+    can_err_irq(CAN_1, IRQ_OVERRUN);
+}
+
+static void can1_passive_irq(void) {
+    can_err_irq(CAN_1, IRQ_PASSIVE);
+}
+
+static void can1_arb_lost_irq(void) {
+    can_err_irq(CAN_1, IRQ_ARB);
+}
+
+static void can1_bus_err_irq(void) {
+    can_err_irq(CAN_1, IRQ_BUS);
+}
+
+#if defined(TARGET_RZA1H)
+static void can2_rec_irq(void) {
+    can_rec_irq(CAN_2);
+}
+
+static void can2_trx_irq(void) {
+    can_trx_irq(CAN_2);
+}
+
+static void can2_err_warning_irq(void) {
+    can_err_irq(CAN_2, IRQ_ERROR);
+}
+
+static void can2_overrun_irq(void) {
+    can_err_irq(CAN_2, IRQ_OVERRUN);
+}
+
+static void can2_passive_irq(void) {
+    can_err_irq(CAN_2, IRQ_PASSIVE);
+}
+
+static void can2_arb_lost_irq(void) {
+    can_err_irq(CAN_2, IRQ_ARB);
+}
+
+static void can2_bus_err_irq(void) {
+    can_err_irq(CAN_2, IRQ_BUS);
+}
+
+static void can3_rec_irq(void) {
+    can_rec_irq(CAN_3);
+}
+
+static void can3_trx_irq(void) {
+    can_trx_irq(CAN_3);
+}
+
+static void can3_err_warning_irq(void) {
+    can_err_irq(CAN_3, IRQ_ERROR);
+}
+
+static void can3_overrun_irq(void) {
+    can_err_irq(CAN_3, IRQ_OVERRUN);
+}
+
+static void can3_passive_irq(void) {
+    can_err_irq(CAN_3, IRQ_PASSIVE);
+}
+
+static void can3_arb_lost_irq(void) {
+    can_err_irq(CAN_3, IRQ_ARB);
+}
+
+static void can3_bus_err_irq(void) {
+    can_err_irq(CAN_3, IRQ_BUS);
+}
+
+static void can4_rec_irq(void) {
+    can_rec_irq(CAN_4);
+}
+
+static void can4_trx_irq(void) {
+    can_trx_irq(CAN_4);
+}
+
+static void can4_err_warning_irq(void) {
+    can_err_irq(CAN_4, IRQ_ERROR);
+}
+
+static void can4_overrun_irq(void) {
+    can_err_irq(CAN_4, IRQ_OVERRUN);
+}
+
+static void can4_passive_irq(void) {
+    can_err_irq(CAN_4, IRQ_PASSIVE);
+}
+
+static void can4_arb_lost_irq(void) {
+    can_err_irq(CAN_4, IRQ_ARB);
+}
+
+static void can4_bus_err_irq(void) {
+    can_err_irq(CAN_4, IRQ_BUS);
+}
+#endif
+
+void can_init_freq(can_t *obj, PinName rd, PinName td, int hz) {
+    __IO uint32_t *dmy_ctr;
+
+    /* determine the CAN to use */
+    uint32_t can_rx = pinmap_peripheral(rd, PinMap_CAN_RD);
+    uint32_t can_tx = pinmap_peripheral(td, PinMap_CAN_TD);
+    obj->ch = pinmap_merge(can_tx, can_rx);
+    MBED_ASSERT((int)obj->ch != NC);
+
+    /* enable CAN clock */
+    CPGSTBCR3 &= ~(CPG_STBCR3_BIT_MSTP32);
+    /* Has CAN RAM initialisation completed ? */
+    while ((RSCAN0GSTS & 0x08) == 0x08) {
+        __NOP();
+    }
+    /* clear Global Stop mode bit */
+    RSCAN0GCTR &= 0xFFFFFFFB;
+    /* clear Channel Stop mode bit */
+    dmy_ctr = CTR_MATCH[obj->ch];
+    *dmy_ctr &= 0xFFFFFFFB;
+    /* Enter global reset mode */
+    can_set_global_mode(GL_RESET);
+    /* Enter channel reset mode */
+    can_set_channel_mode(obj->ch, CH_RESET);
+    /* reset register */
+    can_reset_reg(obj);
+
+    can_initialized[obj->ch] = 1;
+    /* reconfigure channel which is already initialized */
+    can_reconfigure_channel();
+    
+    /* pin out the can pins */
+    pinmap_pinout(rd, PinMap_CAN_RD);
+    pinmap_pinout(td, PinMap_CAN_TD);
+
+    /* set can frequency */
+    can_frequency(obj, hz);
+}
+
+void can_init(can_t *obj, PinName rd, PinName td) {
+    can_init_freq(obj, rd, td, 100000);
+}
+
+void can_free(can_t *obj) {
+    /* disable CAN clock */
+    CPGSTBCR3 |= CPG_STBCR3_BIT_MSTP32;
+}
+
+int can_frequency(can_t *obj, int f) {
+    __IO uint32_t *dmy_cfcc;
+    int retval = 0;
+    
+    if (f <= 1000000) {
+        /* less than 1Mhz */
+        /* set Channel Reset mode */
+        can_set_channel_mode(obj->ch, CH_RESET);
+        can_set_frequency(obj, f);
+        /* set Channel Communication mode */
+        can_set_channel_mode(obj->ch, CH_COMM);
+        /* restore  CFE bit since it is cleared */
+        /* Use send/receive FIFO buffer */
+        dmy_cfcc = CFCC_TBL[obj->ch][CAN_SEND];
+        *dmy_cfcc |= 0x01;
+        dmy_cfcc = CFCC_TBL[obj->ch][CAN_RECV];
+        *dmy_cfcc |= 0x01;
+        retval = 1;
+    }
+
+    return retval;
+}
+
+void can_reset(can_t *obj) {
+    /* Enter global reset mode */
+    can_set_global_mode(GL_RESET);
+    /* Enter channel reset mode */
+    can_set_channel_mode(obj->ch, CH_RESET);
+    /* reset register */
+    can_reset_reg(obj);
+    /* reconfigure channel which is already initialized */
+    can_reconfigure_channel();
+}
+
+int can_write(can_t *obj, CAN_Message msg, int cc) {
+    __IO uint32_t *dmy_sts;
+    __IO uint32_t *dmy_cfsts;
+    __IO uint32_t *dmy_cfid;
+    __IO uint32_t *dmy_cfptr;
+    __IO uint32_t *dmy_cfdf0;
+    __IO uint32_t *dmy_cfdf1;
+    __IO uint32_t *dmy_cfpctr;
+    int retval = 0;
+
+    /* Wait to become channel communication mode */
+    dmy_sts = STS_MATCH[obj->ch];
+    while ((*dmy_sts & 0x07) != 0) {
+        __NOP();
+    }
+    
+    if (((msg.format == CANStandard) && (msg.id <= 0x07FF)) || ((msg.format == CANExtended) && (msg.id <= 0x1FFFFFFF))) {
+        /* send/receive FIFO buffer isn't full */
+        dmy_cfsts = CFSTS_TBL[obj->ch][CAN_SEND];
+        if ((*dmy_cfsts & 0x02) != 0x02) {
+            /* set format, frame type and send/receive FIFO buffer ID(b10-0 or b28-0) */
+            dmy_cfid = CFID_TBL[obj->ch][CAN_SEND];
+            *dmy_cfid = ((msg.format << 31) | (msg.type << 30));
+            if (msg.format == CANStandard) {
+                *dmy_cfid |= (msg.id & 0x07FF);
+            } else {
+                *dmy_cfid |= (msg.id & 0x1FFFFFFF);
+            }
+            /* set length */
+            dmy_cfptr = CFPTR_TBL[obj->ch][CAN_SEND];
+            *dmy_cfptr = msg.len << 28;
+            /* set data */
+            dmy_cfdf0 = CFDF0_TBL[obj->ch][CAN_SEND];
+            memcpy((void *)dmy_cfdf0, &msg.data[0], 4);
+            dmy_cfdf1 = CFDF1_TBL[obj->ch][CAN_SEND];
+            memcpy((void *)dmy_cfdf1, &msg.data[4], 4);
+            /* send request */
+            dmy_cfpctr = CFPCTR_TBL[obj->ch][CAN_SEND];
+            *dmy_cfpctr = 0xFF;
+            retval = 1;
+        }
+    }
+    
+    return retval;
+}
+
+int can_read(can_t *obj, CAN_Message *msg, int handle) {
+    __IO uint32_t *dmy_sts;
+    __IO uint32_t *dmy_cfsts;
+    __IO uint32_t *dmy_cfid;
+    __IO uint32_t *dmy_cfptr;
+    __IO uint32_t *dmy_cfdf0;
+    __IO uint32_t *dmy_cfdf1;
+    __IO uint32_t *dmy_cfpctr;
+    int retval = 0;
+
+    /* Wait to become channel communication mode */
+    dmy_sts = STS_MATCH[obj->ch];
+    while ((*dmy_sts & 0x07) != 0) {
+        __NOP();
+    }
+    
+    /* send/receive FIFO buffer isn't empty */
+    dmy_cfsts = CFSTS_TBL[obj->ch][CAN_RECV];
+    while ((*dmy_cfsts & 0x01) != 0x01) {
+        /* get format, frame type and send/receive FIFO buffer ID(b10-0 or b28-0) */
+        dmy_cfid = CFID_TBL[obj->ch][CAN_RECV];
+        msg->format = (CANFormat)(*dmy_cfid >> 31);
+        msg->type = (CANType)((*dmy_cfid >> 30) & 0x1);
+        if (msg->format == CANStandard) {
+            msg->id = (*dmy_cfid & 0x07FF);
+        } else {
+            msg->id = (*dmy_cfid & 0x1FFFFFFF);
+        }
+        /* get length */
+        dmy_cfptr = CFPTR_TBL[obj->ch][CAN_RECV];
+        msg->len = (unsigned char)(*dmy_cfptr >> 28);
+        /* get data */
+        dmy_cfdf0 = CFDF0_TBL[obj->ch][CAN_RECV];
+        memcpy(&msg->data[0], (void *)dmy_cfdf0, 4);
+        dmy_cfdf1 = CFDF1_TBL[obj->ch][CAN_RECV];
+        memcpy(&msg->data[4], (void *)dmy_cfdf1, 4);
+        /* receive(next data) request */
+        dmy_cfpctr = CFPCTR_TBL[obj->ch][CAN_RECV];
+        *dmy_cfpctr = 0xFF;
+        retval = 1;
+    }
+    
+    return retval;
+}
+
+unsigned char can_rderror(can_t *obj) {
+    __IO uint32_t *dmy_sts;
+    
+    dmy_sts = STS_MATCH[obj->ch];
+    return (unsigned char)((*dmy_sts >> 16) & 0xFF);
+}
+
+unsigned char can_tderror(can_t *obj) {
+    __IO uint32_t *dmy_sts;
+    
+    dmy_sts = STS_MATCH[obj->ch];
+    return (unsigned char)((*dmy_sts >> 24) & 0xFF);
+}
+
+int can_mode(can_t *obj, CanMode mode) {
+    __IO uint32_t *dmy_ctr;
+    __IO uint32_t *dmy_sts;
+    __IO uint32_t *dmy_cfcc;
+    int ch_cnt;
+    can_t *tmp_obj;
+    tmp_obj = obj;
+    int retval = 1;
+    
+    switch (mode) {
+        case MODE_RESET:
+            can_set_global_mode(GL_RESET);
+            can_set_channel_mode(obj->ch, CH_RESET);
+            for (ch_cnt = 0; ch_cnt < CAN_NUM; ch_cnt++) {
+                can_initialized[ch_cnt] = 0;
+            }
+            break;
+        case MODE_NORMAL:
+            can_set_global_mode(GL_OPE);
+            can_set_channel_mode(obj->ch, CH_COMM);
+            break;
+        case MODE_SILENT:
+            can_set_channel_mode(obj->ch, CH_HOLD);
+            /* set listen only mode, enable communication test mode */
+            dmy_ctr = CTR_MATCH[obj->ch];
+            *dmy_ctr = ((*dmy_ctr & 0x00FFFFFF) | 0x03000000);
+            can_set_channel_mode(obj->ch, CH_COMM);
+            break;
+        case MODE_TEST_LOCAL:
+            can_set_channel_mode(obj->ch, CH_HOLD);
+            /* set self test mode 0, enable communication test mode */
+            dmy_ctr = CTR_MATCH[obj->ch];
+            *dmy_ctr = ((*dmy_ctr & 0x00FFFFFF) | 0x05000000);
+            can_set_channel_mode(obj->ch, CH_COMM);
+            break;
+        case MODE_TEST_GLOBAL:
+            /* set the channel between the communication test on CAN_TEST_GLOBAL_CH and CAN_TEST_GLOBAL_CH+1 */
+            /* set Channel Hold mode */
+            for (tmp_obj->ch = CAN_TEST_GLOBAL_CH; tmp_obj->ch <= (CAN_TEST_GLOBAL_CH + 1); tmp_obj->ch++) {
+                dmy_sts = STS_MATCH[tmp_obj->ch];
+                if ((*dmy_sts & 0x04) == 0x04) {
+                    /* Channel Stop mode */
+                    /* clear Channel Stop mode bit */
+                    dmy_ctr = CTR_MATCH[tmp_obj->ch];
+                    *dmy_ctr &= 0xFFFFFFFB;
+                    can_set_channel_mode(tmp_obj->ch, CH_RESET);
+                }
+                can_set_channel_mode(tmp_obj->ch, CH_HOLD);
+            }
+            can_set_global_mode(GL_TEST);
+            /* enable communication test between CAN_TEST_GLOBAL_CH and CAN_TEST_GLOBAL_CH+1 */
+            RSCAN0GTSTCFG = 0x06;
+            RSCAN0GTSTCTR = 0x01;
+            /* send and receive setting of channel1 and channel2 */
+            for (tmp_obj->ch = CAN_TEST_GLOBAL_CH; tmp_obj->ch <= (CAN_TEST_GLOBAL_CH + 1); tmp_obj->ch++) {
+                can_reset_buffer(tmp_obj);
+                /* set global interrrupt */
+                /* THLEIE, MEIE and DEIE interrupts are disable */
+                RSCAN0GCTR &= 0xFFFFF8FF;
+                /* BLIE, OLIE, BORIE and BOEIE interrupts are disable */
+                /* TAIE, ALIE, EPIE, EWIE and BEIE interrupts are enable */
+                dmy_ctr = CTR_MATCH[tmp_obj->ch];
+                *dmy_ctr &= 0x00018700;
+                can_set_global_mode(GL_OPE);
+                can_set_channel_mode(tmp_obj->ch, CH_COMM);
+                /* Use send/receive FIFO buffer */
+                dmy_cfcc = CFCC_TBL[tmp_obj->ch][CAN_SEND];
+                *dmy_cfcc |= 0x01;
+                dmy_cfcc = CFCC_TBL[tmp_obj->ch][CAN_RECV];
+                *dmy_cfcc |= 0x01;
+            }
+            break;
+        case MODE_TEST_SILENT:
+            /* not supported */
+            /* fall through */
+        default:
+            retval = 0;
+            break;
+    }
+    
+    return retval;
+}
+
+int can_filter(can_t *obj, uint32_t id, uint32_t mask, CANFormat format, int32_t handle) {
+    int retval = 0;
+    
+    if ((format == CANStandard) || (format == CANExtended)) {
+        if (((format == CANStandard) && (id <= 0x07FF)) || ((format == CANExtended) && (id <= 0x1FFFFFFF))) {
+            /* set Global Reset mode and Channel Reset mode */
+            can_set_global_mode(GL_RESET);
+            can_set_channel_mode(obj->ch, CH_RESET);
+            /* enable receive rule table writing */
+            RSCAN0GAFLECTR = 0x00000100;
+            /* set the page number of receive rule table(page number = 0) */
+            RSCAN0GAFLECTR |= (obj->ch * 4);
+            /* set IDE format */
+            *dmy_gaflid = (format << 31);
+            if (format == CANExtended) {
+                /* set receive rule ID for bit28-0 */
+                *dmy_gaflid |= (id & 0x1FFFFFFF);
+            } else {
+                /* set receive rule ID for bit10-0 */
+                *dmy_gaflid |= (id & 0x07FF);
+            }
+            /* set ID mask bit */
+            *dmy_gaflm = (0xC0000000 | mask);
+            /* disable receive rule table writing */
+            RSCAN0GAFLECTR &= 0xFFFFFEFF;
+            /* reconfigure channel which is already initialized */
+            can_reconfigure_channel();
+            retval = 1;
+        }
+    }
+    
+    return retval;
+}
+
+void can_monitor(can_t *obj, int silent) {
+    __IO uint32_t *dmy_ctr;
+
+    /* set Channel Hold mode */
+    can_set_channel_mode(obj->ch, CH_HOLD);
+    if (silent) {
+        /* set listen only mode, enable communication test mode */
+        dmy_ctr = CTR_MATCH[obj->ch];
+        *dmy_ctr = ((*dmy_ctr & 0x00FFFFFF) | 0x03000000);
+        can_set_channel_mode(obj->ch, CH_COMM);
+    } else {
+        /* set normal test mode, disable communication test mode */
+        dmy_ctr = CTR_MATCH[obj->ch];
+        *dmy_ctr &= 0x00FFFFFF;
+        /* reset register */
+        can_reset_reg(obj);
+        /* reconfigure channel which is already initialized */
+        can_reconfigure_channel();
+    }
+}
+
+static void can_reset_reg(can_t *obj) {
+    __IO uint32_t *dmy_ctr;
+
+    /* time stamp source uses peripheral clock (pclk(P1_phi)/2), CAN clock uses clkc(P1_phi/2),           */
+    /* mirror off, DLC not transfer, DLC check permit, transmit buffer priority, clock source not divided */
+    RSCAN0GCFG = 0x00000003;
+    /* set default frequency at 100k */
+    can_set_frequency(obj, 100000);
+    /* set receive rule */
+    can_reset_recv_rule(obj);
+    /* set buffer */
+    can_reset_buffer(obj);
+    /* set global interrrupt */
+    /* THLEIE, MEIE and DEIE interrupts are disable */
+    RSCAN0GCTR &= 0xFFFFF8FF;
+    /* ALIE, BLIE, OLIE, BORIE, BOEIE, EPIE, EWIE and BEIE interrupts are disable */
+    dmy_ctr = CTR_MATCH[obj->ch];
+    *dmy_ctr &= 0xFFFF00FF;
+}
+
+static void can_reset_recv_rule(can_t *obj) {
+    /* number of receive rules of each chanel = 64 */
+    RSCAN0GAFLCFG0 = 0x40404040;
+#if defined(TARGET_RZA1H)
+    RSCAN0GAFLCFG1 = 0x40000000;
+#endif
+    /* enable receive rule table writing */
+    RSCAN0GAFLECTR = 0x00000100;
+    /* set the page number of receive rule table(ex: id ch = 1, page number = 4) */
+    RSCAN0GAFLECTR |= (obj->ch * 4);
+    /* set standard ID, data frame and receive rule ID */
+    *dmy_gaflid = 0x07FF;
+    /* IDE bit, RTR bit and ID bit(28-0) are not compared */
+    *dmy_gaflm = 0;
+    /* DLC check is 1 bytes, not use a receive buffer */
+    *dmy_gaflp0 = 0x10000000;
+    /* use a send/receive FIFO buffer(ex: if ch = 1, FIFO buffer number = 4 and bit = 12) */
+    *dmy_gaflp1 = (1 << ((obj->ch + 3) * 3));
+    /* disable receive rule table writing */
+    RSCAN0GAFLECTR &= 0xFFFFFEFF;
+}
+
+static void can_reset_buffer(can_t *obj) {
+    __IO uint32_t *dmy_rfcc;
+    __IO uint32_t *dmy_cfcc;
+    __IO uint32_t *dmy_txqcc;
+    __IO uint32_t *dmy_thlcc;
+    int cnt;
+    
+    /* set linked send buffer number(ex: if ch = 1 and mode = send, buffer number = 16), interval timer is pclk/2 */
+    /* number of rows of send/receive FIFO buffer = 4 */
+    dmy_cfcc = CFCC_TBL[obj->ch][CAN_SEND];
+    *dmy_cfcc = 0x00011100;                 /* send/receive FIFO mode is send */
+    dmy_cfcc = CFCC_TBL[obj->ch][CAN_RECV];
+    *dmy_cfcc = 0x00001100;                 /* send/receive FIFO mode is receive */
+    /* receive buffer is not used */
+    RSCAN0RMNB = 0;
+    /* receive FIFO buffer is not used */
+    for (cnt = 0; cnt < 8; cnt++) {
+        dmy_rfcc = RFCC_MATCH[cnt];
+        *dmy_rfcc = 0;
+    }
+    /* send queue is not used */
+    dmy_txqcc = TXQCC_MATCH[obj->ch];
+    *dmy_txqcc = 0;
+    /* send history is not used */
+    dmy_thlcc = THLCC_MATCH[obj->ch];
+    *dmy_thlcc = 0;
+
+    /* CFTXIE and CFRXIE interrupts are enable */
+    dmy_cfcc = CFCC_TBL[obj->ch][CAN_SEND];
+    *dmy_cfcc |= 0x04;
+    dmy_cfcc = CFCC_TBL[obj->ch][CAN_RECV];
+    *dmy_cfcc |= 0x02;
+    /* TMIEp interrupt is disable */
+    RSCAN0TMIEC0 = 0x00000000;
+#if defined(TARGET_RZA1H)
+    RSCAN0TMIEC1 = 0x00000000;
+    RSCAN0TMIEC2 = 0x00000000;
+#endif
+}
+
+static void can_reconfigure_channel(void) {
+    __IO uint32_t *dmy_cfcc;
+    int ch_cnt;
+
+    for (ch_cnt = 0; ch_cnt < CAN_NUM; ch_cnt++) {
+        if (can_initialized[ch_cnt] == 1) {
+            /* set Global Operation mode and Channel Communication mode */
+            can_set_global_mode(GL_OPE);
+            can_set_channel_mode(ch_cnt, CH_COMM);
+            /* Use send/receive FIFO buffer */
+            dmy_cfcc = CFCC_TBL[ch_cnt][CAN_SEND];
+            *dmy_cfcc |= 0x01;
+            dmy_cfcc = CFCC_TBL[ch_cnt][CAN_RECV];
+            *dmy_cfcc |= 0x01;
+        }
+    }
+}
+
+static void can_set_frequency(can_t *obj, int f) {
+    __IO uint32_t *dmy_cfg;
+    int oldfreq = 0;
+    int newfreq = 0;
+    uint32_t  clkc_val;
+    uint8_t tmp_tq;
+    uint8_t tq = 0;
+    uint8_t tmp_brp;
+    uint8_t brp = 0;
+    uint8_t tseg1 = 0;
+    uint8_t tseg2 = 0;
+    uint8_t sjw = 0;
+    
+    /* set clkc */
+    if (RZ_A1_IsClockMode0() == false) {
+        clkc_val = CM1_RENESAS_RZ_A1_P1_CLK / 2;
+    } else {
+        clkc_val = CM0_RENESAS_RZ_A1_P1_CLK / 2;
+    }
+    /* calculate BRP bit and Choose max value of calculated frequency */
+    for (tmp_tq = 8; tmp_tq <= 25; tmp_tq++) {
+        /* f = fCAN / ((BRP+1) * Tq) */
+        /* BRP = (fCAN / (f * Tq)) - 1 */
+        tmp_brp = ((clkc_val / (f * tmp_tq)) - 1) + 1;   // carry(decimal point is carry)
+        newfreq = clkc_val / ((tmp_brp + 1) * tmp_tq);
+        if (newfreq >= oldfreq) {
+            oldfreq  = newfreq;
+            tq       = tmp_tq;
+            brp      = tmp_brp;
+        }
+    }
+    /* calculate TSEG1 bit and TSEG2 bit */
+    tseg1 = (tq - 1) * 0.666666667;
+    tseg2 = (tq - 1) - tseg1;
+    sjw = (tseg2 > 4)? 4 : tseg2;
+    /* set RSCAN0CmCFG register */
+    dmy_cfg = CFG_MATCH[obj->ch];
+    *dmy_cfg = ((sjw - 1) << 24) | ((tseg2 - 1) << 20) | ((tseg1 - 1) << 16) | brp;
+}
+
+static void can_set_global_mode(int mode) {
+    /* set Global mode */
+    RSCAN0GCTR = ((RSCAN0GCTR & 0xFFFFFFFC) | (uint32_t)mode);
+    /* Wait to cahnge into Global XXXX mode */
+    while ((RSCAN0GSTS & 0x07) != (uint32_t)mode) {
+        __NOP();
+    }
+}
+
+static void can_set_channel_mode(uint32_t ch, int mode) {
+    __IO uint32_t *dmy_ctr;
+    __IO uint32_t *dmy_sts;
+
+    /* set Channel mode */
+    dmy_ctr = CTR_MATCH[ch];
+    *dmy_ctr = ((*dmy_ctr & 0xFFFFFFFC) | (uint32_t)mode);
+    /* Wait to cahnge into Channel XXXX mode */
+    dmy_sts = STS_MATCH[ch];
+    while ((*dmy_sts & 0x07) != (uint32_t)mode) {
+        __NOP();
+    }
+}
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/RZ_A1_Init.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/RZ_A1_Init.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/RZ_A1_Init.h	(revision 429)
@@ -0,0 +1,71 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/**************************************************************************//**
+* @file          RZ_A1_Init.h
+* $Rev: 531 $
+* $Date:: 2013-04-16 13:07:35 +0900#$
+* @brief         RZ_A1 Initialize
+******************************************************************************/
+
+#ifndef RZ_A1_INIT_H
+#define RZ_A1_INIT_H
+
+/******************************************************************************
+Includes   <System Includes> , "Project Includes"
+******************************************************************************/
+#include <stdio.h>
+#include <stdbool.h>
+#include "iodefine.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+
+/******************************************************************************
+Variable Externs
+******************************************************************************/
+
+/******************************************************************************
+Functions Prototypes
+******************************************************************************/
+
+void    RZ_A1_SetSramWriteEnable(void);
+void    RZ_A1_InitClock(void);
+int     RZ_A1_IsClockMode0(void);
+void    RZ_A1_InitBus(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* RZ_A1_INIT_H */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/cmsis_nvic.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/cmsis_nvic.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/cmsis_nvic.c	(revision 429)
@@ -0,0 +1,43 @@
+/* mbed Microcontroller Library
+ * CMSIS-style functionality to support dynamic vectors
+ *******************************************************************************
+ * Copyright (c) 2015 ARM Limited. All rights reserved.
+ * 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 ARM Limited 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 COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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 "cmsis.h"
+#include "irq_ctrl.h"
+
+void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector)
+{
+    InterruptHandlerRegister(IRQn, (IRQHandler)vector);
+}
+
+uint32_t NVIC_GetVector(IRQn_Type IRQn)
+{
+    uint32_t vectors = (uint32_t)IRQ_GetHandler(IRQn);
+    return vectors;
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/cmsis_nvic.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/cmsis_nvic.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/cmsis_nvic.h	(revision 429)
@@ -0,0 +1,48 @@
+/* mbed Microcontroller Library
+ * CMSIS-style functionality to support dynamic vectors
+ *******************************************************************************
+ * Copyright (c) 2015 ARM Limited. All rights reserved.
+ * 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 ARM Limited 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 COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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 MBED_CMSIS_NVIC_H
+#define MBED_CMSIS_NVIC_H
+
+#include "cmsis.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector);
+uint32_t NVIC_GetVector(IRQn_Type IRQn);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/dev_drv.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/dev_drv.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/dev_drv.h	(revision 429)
@@ -0,0 +1,85 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/******************************************************************************
+* File Name    : dev_drv.h
+* $Rev: 809 $
+* $Date:: 2014-04-09 15:06:36 +0900#$
+* Description  : Device driver header
+******************************************************************************/
+#ifndef DEV_DRV_H
+#define DEV_DRV_H
+
+/******************************************************************************
+Includes   <System Includes> , "Project Includes"
+******************************************************************************/
+
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+/* ==== Arguments, Return values ==== */
+#define DEVDRV_SUCCESS      (0)     /* Success */
+#define DEVDRV_ERROR        (-1)    /* Failure */
+
+/* ==== Flags ==== */
+#define DEVDRV_FLAG_OFF     (0)     /* Flag OFF */
+#define DEVDRV_FLAG_ON      (1)     /* Flag ON  */
+
+/* ==== Channels ==== */
+typedef enum devdrv_ch
+{
+    DEVDRV_CH_0,            /* Channel 0  */
+    DEVDRV_CH_1,            /* Channel 1  */
+    DEVDRV_CH_2,            /* Channel 2  */
+    DEVDRV_CH_3,            /* Channel 3  */
+    DEVDRV_CH_4,            /* Channel 4  */
+    DEVDRV_CH_5,            /* Channel 5  */
+    DEVDRV_CH_6,            /* Channel 6  */
+    DEVDRV_CH_7,            /* Channel 7  */
+    DEVDRV_CH_8,            /* Channel 8  */
+    DEVDRV_CH_9,            /* Channel 9  */
+    DEVDRV_CH_10,           /* Channel 10 */
+    DEVDRV_CH_11,           /* Channel 11 */
+    DEVDRV_CH_12,           /* Channel 12 */
+    DEVDRV_CH_13,           /* Channel 13 */
+    DEVDRV_CH_14,           /* Channel 14 */
+    DEVDRV_CH_15            /* Channel 15 */
+} devdrv_ch_t;
+
+/******************************************************************************
+Variable Externs
+******************************************************************************/
+
+
+/******************************************************************************
+Functions Prototypes
+******************************************************************************/
+
+#endif  /* DEV_DRV_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/nvic_wrapper.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/nvic_wrapper.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/nvic_wrapper.c	(revision 429)
@@ -0,0 +1,230 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/**************************************************************************//**
+* @file         nvic_wrapper.c
+* $Rev:  $
+* $Date:: $
+* @brief        Wrapper between NVIC(for Cortex-M) and GIC(for Cortex-A9)
+******************************************************************************/
+
+/******************************************************************************
+Includes   <System Includes> , "Project Includes"
+******************************************************************************/
+#include "cmsis.h"
+#include "wdt_iodefine.h"
+#include "nvic_wrapper.h"
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+#define PRIO_BITS            (7)   /* Set binary point to 0 in gic.c */
+#define WDT_WTCNT_WRITE      (0x5A00)
+#define WDT_WTCSR_WRITE      (0xA500)
+#define WDT_WRCSR_WOVF_WRITE (0xA500)
+#define WDT_WRCSR_RSTE_WRITE (0x5A00)
+
+/******************************************************************************
+Imported global variables and functions (from other files)
+******************************************************************************/
+
+/******************************************************************************
+Exported global variables and functions (to be accessed by other files)
+******************************************************************************/
+
+/******************************************************************************
+Private global variables and functions
+******************************************************************************/
+
+
+
+/* ##########################   NVIC functions  #################################### */
+void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
+{
+    GIC_SetBinaryPoint(PriorityGroup);
+}
+
+
+uint32_t NVIC_GetPriorityGrouping(void)
+{
+    return GIC_GetBinaryPoint();
+}
+
+
+void NVIC_EnableIRQ(IRQn_Type IRQn)
+{
+    GIC_EnableIRQ(IRQn);
+}
+
+
+void NVIC_DisableIRQ(IRQn_Type IRQn)
+{
+    GIC_DisableIRQ(IRQn);
+}
+
+
+uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
+{
+    uint32_t pending;
+    
+    pending = GIC_GetIRQStatus(IRQn);
+    pending = (pending & 0x00000001);
+    
+    return pending;
+}
+
+
+void NVIC_SetPendingIRQ(IRQn_Type IRQn)
+{
+    GIC_SetPendingIRQ(IRQn);
+}
+
+
+void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
+{
+    GIC_ClearPendingIRQ(IRQn);
+}
+
+
+uint32_t NVIC_GetActive(IRQn_Type IRQn)
+{
+    uint32_t active;
+    
+    active = GIC_GetIRQStatus(IRQn);
+    active = ((active >> 1) & 0x00000001);
+    
+    return active;
+}
+
+
+void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
+{
+    GIC_SetPriority(IRQn, (priority << 3));
+}
+
+
+uint32_t NVIC_GetPriority(IRQn_Type IRQn)
+{
+    uint32_t priority_field;
+    
+    priority_field = GIC_GetPriority(IRQn);
+    priority_field = (priority_field >> 3);
+    return priority_field;
+}
+
+
+uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
+{
+    uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);          /* only values 0..7 are used          */
+    uint32_t PreemptPriorityBits;
+    uint32_t SubPriorityBits;
+
+    PreemptPriorityBits = ((7 - PriorityGroupTmp) > PRIO_BITS) ? PRIO_BITS : 7 - PriorityGroupTmp;
+    SubPriorityBits     = ((PriorityGroupTmp + PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + PRIO_BITS;
+
+    return (
+             ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) |
+             ((SubPriority     & ((1 << (SubPriorityBits    )) - 1)))
+           );
+}
+
+
+void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)
+{
+    uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);          /* only values 0..7 are used          */
+    uint32_t PreemptPriorityBits;
+    uint32_t SubPriorityBits;
+
+    PreemptPriorityBits = ((7 - PriorityGroupTmp) > PRIO_BITS) ? PRIO_BITS : 7 - PriorityGroupTmp;
+    SubPriorityBits     = ((PriorityGroupTmp + PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + PRIO_BITS;
+
+    *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1);
+    *pSubPriority     = (Priority                   ) & ((1 << (SubPriorityBits    )) - 1);
+}
+
+void NVIC_SystemReset(void)
+{
+    uint16_t reg;
+    uint8_t  dummy_read;
+    /* Use Watch Dog Timer to system reset */
+    
+    /* Set WT/IT bit of WTCSR to 1 = Watch Dog */
+    /* CLK = 000, 1xP0phi(=33.3333MHz) = 7.7us */
+    reg = (WDT_WTCSR_WRITE | 0x0058);
+    WDTWTCSR = reg;
+    
+    /* Clear Count reg */
+    reg = (WDT_WTCNT_WRITE | 0x0000);
+    WDTWTCNT = reg;
+    
+    /* Clear WOVF flag */
+    dummy_read = WDTWRCSR;
+    reg = (WDT_WRCSR_WOVF_WRITE | (dummy_read & 0x0000));
+    WDTWRCSR = reg;
+    /* Enable Internal Reset */
+    reg = (WDT_WRCSR_RSTE_WRITE | 0x005F);
+    WDTWRCSR = reg;
+    
+    /* Watch Dog start */
+    reg = (WDT_WTCSR_WRITE | 0x0078);
+    WDTWTCSR = reg;
+    
+    while(1);                      /* wait Internal Reset */
+}
+
+/* ##################################    SysTick function  ############################################ */
+uint32_t SysTick_Config(uint32_t ticks)
+{
+    /* Not support this function */
+    /* Use mbed Ticker */
+    return (1);     /* impossible */
+}
+
+
+/* ##################################### Debug In/Output function ########################################### */
+uint32_t ITM_SendChar (uint32_t ch)
+{
+    /* Not support this function */
+    /* Use mbed Serial */
+    return (ch);
+}
+
+
+int32_t ITM_ReceiveChar (void)
+{
+    /* Not support this function */
+    /* Use mbed Serial */
+    return (-1);    /* no character available */
+}
+
+
+int32_t ITM_CheckChar (void)
+{
+    /* Not support this function */
+    /* Use mbed Serial */
+    return (0);                                 /* no character available */
+}
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/nvic_wrapper.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/nvic_wrapper.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/nvic_wrapper.h	(revision 429)
@@ -0,0 +1,84 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2015 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/**************************************************************************//**
+* @file         nvic_wrapper.h
+* $Rev:  $
+* $Date:: $
+* @brief        Wrapper between NVIC(for Cortex-M) and GIC(for Cortex-A9)
+******************************************************************************/
+
+#ifndef NVIC_WRAPPER_H
+#define NVIC_WRAPPER_H
+
+
+/******************************************************************************
+Includes   <System Includes> , "Project Includes"
+******************************************************************************/
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+
+/******************************************************************************
+Variable Externs
+******************************************************************************/
+
+/******************************************************************************
+Functions Prototypes
+******************************************************************************/
+
+/* NVIC functions */
+void     NVIC_SetPriorityGrouping(uint32_t PriorityGroup);
+uint32_t NVIC_GetPriorityGrouping(void);
+void     NVIC_EnableIRQ(IRQn_Type IRQn);
+void     NVIC_DisableIRQ(IRQn_Type IRQn);
+uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn);
+void     NVIC_SetPendingIRQ(IRQn_Type IRQn);
+void     NVIC_ClearPendingIRQ(IRQn_Type IRQn);
+uint32_t NVIC_GetActive(IRQn_Type IRQn);
+void     NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority);
+uint32_t NVIC_GetPriority(IRQn_Type IRQn);
+uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority);
+void     NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority);
+void     NVIC_SystemReset(void);
+/* SysTick function */
+uint32_t SysTick_Config(uint32_t ticks);
+/* Debug In/Output function */
+uint32_t ITM_SendChar (uint32_t ch);
+int32_t  ITM_ReceiveChar (void);
+int32_t  ITM_CheckChar (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* NVIC_WRAPPER_H */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/r_typedefs.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/r_typedefs.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/r_typedefs.h	(revision 429)
@@ -0,0 +1,63 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2013 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name : r_typedefs.h
+* $Rev: 788 $
+* $Date:: 2014-04-07 18:57:13 +0900#$
+* Description : basic type definition
+******************************************************************************/
+#ifndef R_TYPEDEFS_H
+#define R_TYPEDEFS_H
+
+/******************************************************************************
+Includes <System Includes> , "Project Includes"
+******************************************************************************/
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdint.h>
+#if defined(__ARM_NEON__)
+#include <arm_neon.h>
+#endif /* __ARM_NEON__ */
+
+#ifndef float32_t
+typedef float               float32_t;
+#endif
+#ifndef float64_t
+typedef double              float64_t;
+#endif
+
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+typedef char                char_t;
+#ifndef bool_t
+typedef bool                bool_t;
+#endif
+typedef int                 int_t;
+typedef long double         float128_t;
+typedef signed long         long_t;
+typedef unsigned long       ulong_t;
+
+#endif /* R_TYPEDEFS_H */
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/rza_io_regrw.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/rza_io_regrw.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/rza_io_regrw.c	(revision 429)
@@ -0,0 +1,200 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : rza_io_regrw.c
+* $Rev: 1121 $
+* $Date:: 2014-08-06 17:09:53 +0900#$
+* Description : Low level register read/write
+*******************************************************************************/
+
+/******************************************************************************
+Includes   <System Includes> , "Project Includes"
+******************************************************************************/
+#include "r_typedefs.h"
+
+#ifdef __CC_ARM
+#pragma arm section code   = "CODE_IO_REGRW"
+#pragma arm section rodata = "CONST_IO_REGRW"
+#pragma arm section rwdata = "DATA_IO_REGRW"
+#pragma arm section zidata = "BSS_IO_REGRW"
+#endif
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+
+
+/******************************************************************************
+Imported global variables and functions (from other files)
+******************************************************************************/
+
+
+/******************************************************************************
+Exported global variables and functions (to be accessed by other files)
+******************************************************************************/
+
+
+/******************************************************************************
+Private global variables and functions
+******************************************************************************/
+
+
+/******************************************************************************
+* Function Name: RZA_IO_RegWrite_8
+* Description  : IO register 8-bit write
+* Arguments    : volatile uint8_t * ioreg : IO register for writing
+*              :                          : Use register definition name of the
+*              :                          : iodefine.h
+*              : uint8_t write_value      : Write value for the IO register
+*              : uint8_t shift            : The number of left shifts to the 
+*              :                          : target bit
+*              : uint8_t mask             : Mask value for the IO register
+*              :                          : (Target bit : "1")
+* Return Value : None
+******************************************************************************/
+void RZA_IO_RegWrite_8(volatile uint8_t * ioreg, uint8_t write_value, uint8_t shift, uint8_t mask)
+{
+    uint8_t reg_value;
+
+    reg_value = *ioreg;                                         /* Read from register */
+    reg_value = (reg_value & (~mask)) | (write_value << shift); /* Modify value       */
+    *ioreg    = reg_value;                                      /* Write to register  */
+}
+
+/******************************************************************************
+* Function Name: RZA_IO_RegWrite_16
+* Description  : IO register 16-bit write
+* Arguments    : volatile uint16_t * ioreg : IO register for writing
+*              :                           : Use register definition name of the
+*              :                           : iodefine.h
+*              : uint16_t write_value      : Write value for the IO register
+*              : uint16_t shift            : The number of left shifts to the 
+*              :                           : target bit
+*              : uint16_t mask             : Mask value for the IO register
+*              :                           : (Target bit : "1")
+* Return Value : None
+******************************************************************************/
+void RZA_IO_RegWrite_16(volatile uint16_t * ioreg, uint16_t write_value, uint16_t shift, uint16_t mask)
+{
+    uint16_t reg_value;
+
+    reg_value = *ioreg;                                         /* Read from register */
+    reg_value = (reg_value & (~mask)) | (write_value << shift); /* Modify value       */
+    *ioreg    = reg_value;                                      /* Write to register  */
+}
+
+/******************************************************************************
+* Function Name: RZA_IO_RegWrite_32
+* Description  : IO register 32-bit write
+* Arguments    : volatile uint32_t * ioreg : IO register for writing
+*              :                           : Use register definition name of the
+*              :                           : iodefine.h
+*              : uint32_t write_value      : Write value for the IO register
+*              : uint32_t shift            : The number of left shifts to the 
+*              :                           : target bit
+*              : uint32_t mask             : Mask value for the IO register
+*              :                           : (Target bit : "1")
+* Return Value : None
+******************************************************************************/
+void RZA_IO_RegWrite_32(volatile uint32_t * ioreg, uint32_t write_value, uint32_t shift, uint32_t mask)
+{
+    uint32_t reg_value;
+
+    reg_value = *ioreg;                                         /* Read from register */
+    reg_value = (reg_value & (~mask)) | (write_value << shift); /* Modify value       */
+    *ioreg    = reg_value;                                      /* Write to register  */
+}
+
+/******************************************************************************
+* Function Name: RZA_IO_RegRead_8
+* Description  : IO register 8-bit read
+* Arguments    : volatile uint8_t * ioreg : IO register for reading
+*              :                          : Use register definition name of the 
+*              :                          : iodefine.h
+*              : uint8_t shift            : The number of right shifts to the 
+*              :                          : target bit
+*              : uint8_t mask             : Mask bit for the IO register
+*              :                          : (Target bit: "1")
+* Return Value : uint8_t : Value of the obtained target bit
+******************************************************************************/
+uint8_t RZA_IO_RegRead_8(volatile uint8_t * ioreg, uint8_t shift, uint8_t mask)
+{
+    uint8_t reg_value;
+
+    reg_value = *ioreg;                         /* Read from register            */
+    reg_value = (reg_value & mask) >> shift;    /* Clear other bit and Bit shift */
+
+    return reg_value;
+}
+
+/******************************************************************************
+* Function Name: RZA_IO_RegRead_16
+* Description  : IO register 16-bit read
+* Arguments    : volatile uint16_t * ioreg : IO register for reading
+*              :                           : Use register definition name of the 
+*              :                           : iodefine.h
+*              : uint16_t shift            : The number of right shifts to the 
+*              :                           : target bit
+*              : uint16_t mask             : Mask bit for the IO register
+*              :                           : (Target bit: "1")
+* Return Value : uint16_t : Value of the obtained target bit
+******************************************************************************/
+uint16_t RZA_IO_RegRead_16(volatile uint16_t * ioreg, uint16_t shift, uint16_t mask)
+{
+    uint16_t reg_value;
+
+    reg_value = *ioreg;                         /* Read from register            */
+    reg_value = (reg_value & mask) >> shift;    /* Clear other bit and Bit shift */
+
+    return reg_value;
+}
+
+/******************************************************************************
+* Function Name: RZA_IO_RegRead_32
+* Description  : IO register 32-bit read
+* Arguments    : volatile uint32_t * ioreg : IO register for reading
+*              :                           : Use register definition name of the 
+*              :                           : iodefine.h
+*              : uint32_t shift            : The number of right shifts to the 
+*              :                           : target bit
+*              : uint32_t mask             : Mask bit for the IO register
+*              :                           : (Target bit: "1")
+* Return Value : uint32_t : Value of the obtained target bit
+******************************************************************************/
+uint32_t RZA_IO_RegRead_32(volatile uint32_t * ioreg, uint32_t shift, uint32_t mask)
+{
+    uint32_t reg_value;
+
+    reg_value = *ioreg;                         /* Read from register            */
+    reg_value = (reg_value & mask) >> shift;    /* Clear other bit and Bit shift */
+
+    return reg_value;
+}
+
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/rza_io_regrw.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/rza_io_regrw.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/rza_io_regrw.h	(revision 429)
@@ -0,0 +1,84 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/*******************************************************************************
+* File Name   : rza_io_regrw.h
+* $Rev: 1135 $
+* $Date:: 2014-08-08 10:11:30 +0900#$
+* Description : Low level register read/write header
+*******************************************************************************/
+#ifndef RZA_IO_REGRW_H
+#define RZA_IO_REGRW_H
+
+/******************************************************************************
+Includes   <System Includes> , "Project Includes"
+******************************************************************************/
+/* ==== includes each bit mask header ==== */
+#include "cpg_iobitmask.h"
+#include "intc_iobitmask.h"
+#include "bsc_iobitmask.h"
+#include "dmac_iobitmask.h"
+#include "mtu2_iobitmask.h"
+#include "ostm_iobitmask.h"
+#include "scif_iobitmask.h"
+#include "rspi_iobitmask.h"
+#include "riic_iobitmask.h"
+#include "usb_iobitmask.h"
+#include "spibsc_iobitmask.h"
+#include "gpio_iobitmask.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/******************************************************************************
+Typedef definitions
+******************************************************************************/
+
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+
+
+/******************************************************************************
+Variable Externs
+******************************************************************************/
+
+
+/******************************************************************************
+Functions Prototypes
+******************************************************************************/
+void     RZA_IO_RegWrite_8 (volatile uint8_t  * ioreg, uint8_t  write_value, uint8_t  shift, uint8_t  mask);
+void     RZA_IO_RegWrite_16(volatile uint16_t * ioreg, uint16_t write_value, uint16_t shift, uint16_t mask);
+void     RZA_IO_RegWrite_32(volatile uint32_t * ioreg, uint32_t write_value, uint32_t shift, uint32_t mask);
+uint8_t  RZA_IO_RegRead_8  (volatile uint8_t  * ioreg, uint8_t  shift, uint8_t  mask);
+uint16_t RZA_IO_RegRead_16 (volatile uint16_t * ioreg, uint16_t shift, uint16_t mask);
+uint32_t RZA_IO_RegRead_32 (volatile uint32_t * ioreg, uint32_t shift, uint32_t mask);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* RZA_IO_REGRW_H */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/vfp_neon_push_pop.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/vfp_neon_push_pop.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/common/vfp_neon_push_pop.h	(revision 429)
@@ -0,0 +1,166 @@
+#ifndef __VFP_NEON_PUSH_POP_H__
+#define __VFP_NEON_PUSH_POP_H__
+
+
+#if   defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/
+/* ARM armcc specific functions */
+#pragma push
+#pragma arm
+static __asm void __vfp_neon_push(void) {
+    ARM
+
+    VMRS    R2,FPSCR
+    STMDB   SP!,{R2,R4}         ; Push FPSCR, maintain 8-byte alignment
+    VSTMDB  SP!,{D0-D15}
+    VSTMDB  SP!,{D16-D31}
+    BX      LR
+}
+#pragma pop
+
+#pragma push
+#pragma arm
+static __asm void __vfp_neon_pop(void) {
+    ARM
+
+    VLDMIA  SP!,{D16-D31}
+    VLDMIA  SP!,{D0-D15}
+    LDR     R2,[SP]
+    VMSR    FPSCR,R2
+    ADD     SP,SP,#8
+    BX      LR
+}
+#pragma pop
+
+
+#pragma push
+#pragma arm
+static __asm void __vfp_push(void) {
+    ARM
+
+    VMRS    R2,FPSCR
+    STMDB   SP!,{R2,R4}         ; Push FPSCR, maintain 8-byte alignment
+    VSTMDB  SP!,{D0-D15}
+    BX      LR
+}
+#pragma pop
+
+#pragma push
+#pragma arm
+static __asm void __vfp_pop(void) {
+    ARM
+
+    VLDMIA  SP!,{D0-D15}
+    LDR     R2,[SP]
+    VMSR    FPSCR,R2
+    ADD     SP,SP,#8
+    BX      LR
+}
+#pragma pop
+
+#elif (defined (__ICCARM__)) /*---------------- ICC Compiler ---------------------*/
+
+__arm static inline void __vfp_neon_push(void) {
+__asm(
+    "ARM \n"
+    "VMRS    R2,FPSCR \n"
+    "STMDB   SP!,{R2,R4} \n"    // Push FPSCR, maintain 8-byte alignment
+    "VSTMDB  SP!,{D0-D15} \n"
+    "VSTMDB  SP!,{D16-D31} \n"
+    "BX      lr \n" );
+}
+
+__arm static inline void __vfp_neon_pop(void) {
+__asm(
+    "ARM \n"
+    "VLDMIA  SP!,{D16-D31} \n"
+    "VLDMIA  SP!,{D0-D15} \n"
+    "LDR     R2,[SP] \n"
+    "VMSR    FPSCR,R2 \n"
+    "ADD     SP,SP,#8 \n"
+    "BX      lr \n" );
+}
+
+__arm static inline void __vfp_push(void) {
+__asm(
+    "ARM \n"
+    "VMRS    R2,FPSCR \n"
+    "STMDB   SP!,{R2,R4} \n"    // Push FPSCR, maintain 8-byte alignment
+    "VSTMDB  SP!,{D0-D15} \n"
+    "BX      lr \n" );
+}
+
+__arm static inline void __vfp_pop(void) {
+__asm(
+    "ARM \n"
+    "VLDMIA  SP!,{D0-D15} \n"
+    "LDR     R2,[SP] \n"
+    "VMSR    FPSCR,R2 \n"
+    "ADD     SP,SP,#8 \n"
+    "BX      lr \n" );
+}
+
+#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
+
+__attribute__( ( always_inline ) ) __STATIC_INLINE void __vfp_neon_push(void)
+{
+    __asm__ volatile (
+    ".ARM;"
+
+    "VMRS    R2,FPSCR;"
+    "STMDB   SP!,{R2,R4};"      // Push FPSCR, maintain 8-byte alignment
+    "VSTMDB  SP!,{D0-D15};"
+    "VSTMDB  SP!,{D16-D31};"
+    :
+    :
+    : );
+    return;
+}
+
+__attribute__( ( always_inline ) ) __STATIC_INLINE void __vfp_neon_pop(void)
+{
+    __asm__ volatile (
+    ".ARM;"
+
+    "VLDMIA  SP!,{D16-D31};"
+    "VLDMIA  SP!,{D0-D15};"
+    "LDR     R2,[SP];"
+    "VMSR    FPSCR,R2;"
+    "ADD     SP,SP,#8;"
+    :
+    :
+    : );
+    return;
+}
+
+__attribute__( ( always_inline ) ) __STATIC_INLINE void __vfp_push(void)
+{
+    __asm__ volatile (
+    ".ARM;"
+
+    "VMRS    R2,FPSCR;"
+    "STMDB   SP!,{R2,R4};"      // Push FPSCR, maintain 8-byte alignment
+    "VSTMDB  SP!,{D0-D15};"
+    :
+    :
+    : );
+    return;
+}
+
+__attribute__( ( always_inline ) ) __STATIC_INLINE void __vfp_pop(void)
+{
+    __asm__ volatile (
+    ".ARM;"
+
+    "VLDMIA  SP!,{D0-D15};"
+    "LDR     R2,[SP];"
+    "VMSR    FPSCR,R2;"
+    "ADD     SP,SP,#8;"
+    :
+    :
+    : );
+    return;
+}
+
+#endif
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/ethernet_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/ethernet_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/ethernet_api.c	(revision 429)
@@ -0,0 +1,803 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <string.h>
+#include "ethernet_api.h"
+#include "cmsis.h"
+#include "mbed_interface.h"
+#include "mbed_toolchain.h"
+#include "mbed_error.h"
+#include "iodefine.h"
+#include "ethernetext_api.h"
+
+#if DEVICE_ETHERNET
+
+/* Descriptor info */
+#define SIZE_OF_BUFFER          (1600)     /* Must be an integral multiple of 32 */
+#define MAX_SEND_SIZE           (1514)
+/* Ethernet Descriptor Value Define */
+#define TD0_TFP_TOP_BOTTOM      (0x30000000)
+#define TD0_TACT                (0x80000000)
+#define TD0_TDLE                (0x40000000)
+#define RD0_RACT                (0x80000000)
+#define RD0_RDLE                (0x40000000)
+#define RD0_RFE                 (0x08000000)
+#define RD0_RCSE                (0x04000000)
+#define RD0_RFS                 (0x03FF0000)
+#define RD0_RCS                 (0x0000FFFF)
+#define RD0_RFS_RFOF            (0x02000000)
+#define RD0_RFS_RUAF            (0x00400000)
+#define RD0_RFS_RRF             (0x00100000)
+#define RD0_RFS_RTLF            (0x00080000)
+#define RD0_RFS_RTSF            (0x00040000)
+#define RD0_RFS_PRE             (0x00020000)
+#define RD0_RFS_CERF            (0x00010000)
+#define RD0_RFS_ERROR           (RD0_RFS_RFOF | RD0_RFS_RUAF | RD0_RFS_RRF | RD0_RFS_RTLF | \
+                                 RD0_RFS_RTSF | RD0_RFS_PRE | RD0_RFS_CERF)
+#define RD1_RDL_MSK             (0x0000FFFF)
+/* PHY Register */
+#define BASIC_MODE_CONTROL_REG  (0)
+#define BASIC_MODE_STATUS_REG   (1)
+#define PHY_IDENTIFIER1_REG     (2)
+#define PHY_IDENTIFIER2_REG     (3)
+#define PHY_SP_CTL_STS_REG      (31)
+/* MII management interface access */
+#define PHY_ADDR                (0)        /* Confirm the pin connection of the PHY-LSI */
+#define PHY_ST                  (1)
+#define PHY_WRITE               (1)
+#define PHY_READ                (2)
+#define MDC_WAIT                (6)        /* 400ns/4 */
+#define BASIC_STS_MSK_LINK      (0x0004)   /* Link Status */
+#define BASIC_STS_MSK_AUTO_CMP  (0x0020)   /* Auto-Negotiate Complete */
+#define M_PHY_ID                (0xFFFFFFF0)
+#define PHY_ID_LAN8710A         (0x0007C0F0)
+/* ETHERPIR0 */
+#define PIR0_MDI                (0x00000008)
+#define PIR0_MDO                (0x00000004)
+#define PIR0_MMD                (0x00000002)
+#define PIR0_MDC                (0x00000001)
+#define PIR0_MDC_HIGH           (0x00000001)
+#define PIR0_MDC_LOW            (0x00000000)
+/* ETHEREDRRR0 */
+#define EDRRR0_RR               (0x00000001)
+/* ETHEREDTRR0 */
+#define EDTRR0_TR               (0x00000003)
+/* software wait */
+#define LOOP_100us              (6700)     /* Loop counter for software wait  6666=100us/((1/400MHz)*6cyc) */
+
+#define EDMAC_EESIPR_INI_RECV   (0x0205001F)    /* 0x02000000 : Detect reception suspended */
+                                                /* 0x00040000 : Detect frame reception */
+                                                /* 0x00010000 : Receive FIFO overflow */
+                                                /* 0x00000010 : Residual bit frame reception */
+                                                /* 0x00000008 : Long frame reception */
+                                                /* 0x00000004 : Short frame reception */
+                                                /* 0x00000002 : PHY-LSI reception error */
+                                                /* 0x00000001 : Receive frame CRC error */
+#define EDMAC_EESIPR_INI_EtherC (0x00400000)    /* 0x00400000 : E-MAC status register */
+
+void ethernet_address(char *);
+void ethernet_set_link(int, int);
+
+
+/* Send descriptor */
+typedef struct tag_edmac_send_desc {
+    uint32_t    td0;
+    uint32_t    td1;
+    uint8_t     *td2;
+    uint32_t    padding4;
+} edmac_send_desc_t;
+
+/* Receive descriptor */
+typedef struct tag_edmac_recv_desc {
+    uint32_t    rd0;
+    uint32_t    rd1;
+    uint8_t     *rd2;
+    uint32_t    padding4;
+} edmac_recv_desc_t;
+
+/* memory */
+/* The whole transmit/receive descriptors (must be allocated in 16-byte boundaries) */
+/* Transmit/receive buffers (must be allocated in 16-byte boundaries) */
+#if defined(__ICCARM__)
+#pragma data_alignment=16
+static uint8_t ethernet_nc_memory[(sizeof(edmac_send_desc_t) * NUM_OF_TX_DESCRIPTOR) +
+                                 (sizeof(edmac_recv_desc_t) * NUM_OF_RX_DESCRIPTOR) +
+                                 (NUM_OF_TX_DESCRIPTOR * SIZE_OF_BUFFER) +
+                                 (NUM_OF_RX_DESCRIPTOR * SIZE_OF_BUFFER)]  //16 bytes aligned!
+                                 @ ".mirrorram";
+#else
+static uint8_t ethernet_nc_memory[(sizeof(edmac_send_desc_t) * NUM_OF_TX_DESCRIPTOR) +
+                                 (sizeof(edmac_recv_desc_t) * NUM_OF_RX_DESCRIPTOR) +
+                                 (NUM_OF_TX_DESCRIPTOR * SIZE_OF_BUFFER) +
+                                 (NUM_OF_RX_DESCRIPTOR * SIZE_OF_BUFFER)]
+                                 __attribute((section("NC_BSS"),aligned(16)));  //16 bytes aligned!
+#endif
+static int32_t            rx_read_offset;   /* read offset */
+static int32_t            tx_wite_offset;   /* write offset */
+static uint32_t           send_top_index;
+static uint32_t           recv_top_index;
+static int32_t            Interrupt_priority;
+static edmac_send_desc_t  *p_eth_desc_dsend = NULL;
+static edmac_recv_desc_t  *p_eth_desc_drecv = NULL;
+static edmac_recv_desc_t  *p_recv_end_desc  = NULL;
+static ethernetext_cb_fnc *p_recv_cb_fnc    = NULL;
+static char               mac_addr[6]       = {0x00, 0x02, 0xF7, 0xF0, 0x00, 0x00}; /* MAC Address */
+static uint32_t           phy_id            = 0;
+static uint32_t           start_stop        = 1;  /* 0:stop  1:start */
+static uint32_t           tsu_ten_tmp       = 0;
+
+volatile struct st_ether_from_tsu_adrh0*  ETHER_FROM_TSU_ADRH0_ARRAY[ ETHER_FROM_TSU_ADRH0_ARRAY_COUNT ] =
+    /* ->MISRA 11.3 */ /* ->SEC R2.7.1 */
+    ETHER_FROM_TSU_ADRH0_ARRAY_ADDRESS_LIST;
+    /* <-MISRA 11.3 */ /* <-SEC R2.7.1 */
+
+/* function */
+static void lan_reg_reset(void);
+static void lan_desc_create(void);
+static void lan_reg_set(int32_t link);
+static uint16_t phy_reg_read(uint16_t reg_addr);
+static void phy_reg_write(uint16_t reg_addr, uint16_t data);
+static void mii_preamble(void);
+static void mii_cmd(uint16_t reg_addr, uint32_t option);
+static void mii_reg_read(uint16_t *data);
+static void mii_reg_write(uint16_t data);
+static void mii_z(void);
+static void mii_write_1(void);
+static void mii_write_0(void);
+static void set_ether_pir(uint32_t set_data);
+static void wait_100us(int32_t wait_cnt);
+
+
+int ethernetext_init(ethernet_cfg_t *p_ethcfg) {
+    int32_t  i;
+    uint16_t val;
+
+    CPGSTBCR7 &= ~(CPG_STBCR7_BIT_MSTP74);  /* enable ETHER clock */
+
+    /* P4_2(PHY Reset) */
+    GPIOP4      &= ~0x0004;         /* Outputs low level */
+    GPIOPMC4    &= ~0x0004;         /* Port mode */
+    GPIOPM4     &= ~0x0004;         /* Output mode */
+
+    /* GPIO P1  P1_14(ET_COL) */
+    GPIOPMC1    |=  0x4000;
+    GPIOPFCAE1  &= ~0x4000;
+    GPIOPFCE1   |=  0x4000;
+    GPIOPFC1    |=  0x4000;
+
+    /* P3_0(ET_TXCLK), P3_3(ET_MDIO), P3_4(ET_RXCLK), P3_5(ET_RXER), P3_6(ET_RXDV) */
+    GPIOPMC3    |=  0x0079;
+    GPIOPFCAE3  &= ~0x0079;
+    GPIOPFCE3   &= ~0x0079;
+    GPIOPFC3    |=  0x0079;
+    GPIOPIPC3   |=  0x0079;
+
+    /* P5_9(ET_MDC) */
+    GPIOPMC5    |=  0x0200;
+    GPIOPFCAE5  &= ~0x0200;
+    GPIOPFCE5   &= ~0x0200;
+    GPIOPFC5    |=  0x0200;
+    GPIOPIPC5   |=  0x0200;
+
+    /* P10_1(ET_TXER), P10_2(ET_TXEN), P10_3(ET_CRS), P10_4(ET_TXD0), P10_5(ET_TXD1) */
+    /* P10_6(ET_TXD2), P10_7(ET_TXD3), P10_8(ET_RXD0), P10_9(ET_RXD1), P10_10(ET_RXD2), P10_11(ET_RXD3) */
+    GPIOPMC10   |=  0x0FFE;
+    GPIOPFCAE10 &= ~0x0FFE;
+    GPIOPFCE10  |=  0x0FFE;
+    GPIOPFC10   |=  0x0FFE;
+    GPIOPIPC10  |=  0x0FFE;
+
+    /* Resets the E-MAC,E-DMAC */
+    lan_reg_reset();
+
+    /* PHY Reset */
+    GPIOP4      &= ~0x0004;         /* P4_2 Outputs low level */
+    wait_100us(250);                /* 25msec */
+    GPIOP4      |=  0x0004;         /* P4_2 Outputs high level */
+    wait_100us(100);                /* 10msec */
+
+    /* Resets the PHY-LSI */
+    phy_reg_write(BASIC_MODE_CONTROL_REG, 0x8000);
+    for (i = 10000; i > 0; i--) {
+        val = phy_reg_read(BASIC_MODE_CONTROL_REG);
+        if (((uint32_t)val & 0x8000uL) == 0) {
+            break;                  /* Reset complete */
+        }
+    }
+
+    phy_id = ((uint32_t)phy_reg_read(PHY_IDENTIFIER1_REG) << 16)
+           |  (uint32_t)phy_reg_read(PHY_IDENTIFIER2_REG);
+
+    Interrupt_priority = p_ethcfg->int_priority;
+    p_recv_cb_fnc      = p_ethcfg->recv_cb;
+    start_stop         = 1;
+
+    if (p_ethcfg->ether_mac != NULL) {
+        (void)memcpy(mac_addr, p_ethcfg->ether_mac, sizeof(mac_addr));
+    } else {
+        ethernet_address(mac_addr); /* Get MAC Address */
+    }
+
+    return 0;
+}
+
+void ethernetext_start_stop(int32_t mode) {
+    if (mode == 1) {
+        /* start */
+        ETHEREDTRR0 |= EDTRR0_TR;
+        ETHEREDRRR0 |= EDRRR0_RR;
+        start_stop   = 1;
+    } else {
+        /* stop */
+        ETHEREDTRR0 &= ~EDTRR0_TR;
+        ETHEREDRRR0 &= ~EDRRR0_RR;
+        start_stop   = 0;
+    }
+}
+
+int ethernetext_chk_link_mode(void) {
+    int32_t  link;
+    uint16_t data;
+
+    if ((phy_id & M_PHY_ID) == PHY_ID_LAN8710A) {
+        data = phy_reg_read(PHY_SP_CTL_STS_REG);
+        switch (((uint32_t)data >> 2) & 0x00000007) {
+            case 0x0001:
+                link = HALF_10M;
+                break;
+            case 0x0005:
+                link = FULL_10M;
+                break;
+            case 0x0002:
+                link = HALF_TX;
+                break;
+            case 0x0006:
+                link = FULL_TX;
+                break;
+            default:
+                link = NEGO_FAIL;
+                break;
+        }
+    } else {
+        link = NEGO_FAIL;
+    }
+
+    /* Promiscuous Mode */
+    if (ETHERECMR0 & 0x00000001)
+        link |= PROMISCUOUS_MODE;
+
+    return link;
+}
+
+void ethernetext_set_link_mode(int32_t link) {
+    lan_reg_reset();            /* Resets the E-MAC,E-DMAC */
+    lan_desc_create();          /* Initialize of buffer memory */
+    lan_reg_set(link);          /* E-DMAC, E-MAC initialization */
+}
+
+void ethernetext_add_multicast_group(const uint8_t *addr) {
+    uint32_t cnt;
+    uint32_t tmp_data_h;
+    uint32_t tmp_data_l;
+
+    if (tsu_ten_tmp == 0xFFFFFFFF) {
+        ethernetext_set_all_multicast(1);
+    } else {
+        tmp_data_h = ((uint32_t)addr[0] << 24) | ((uint32_t)addr[1] << 16) | ((uint32_t)addr[2] << 8) | ((uint32_t)addr[3]);
+        tmp_data_l = ((uint32_t)addr[4] << 8) | ((uint32_t)addr[5]);
+
+        for (cnt = 0; cnt < 32; cnt++) {
+            if ((tsu_ten_tmp & (0x80000000 >> cnt)) == 0) {
+                while ((ETHERTSU_ADSBSY & 0x00000001) != 0) {
+                    ;
+                }
+                ETHER_FROM_TSU_ADRH0_ARRAY[cnt]->TSU_ADRH0 = tmp_data_h;
+                while ((ETHERTSU_ADSBSY & 0x00000001) != 0) {
+                    ;
+                }
+                ETHER_FROM_TSU_ADRH0_ARRAY[cnt]->TSU_ADRL0 = tmp_data_l;
+                if ((ETHERECMR0 & 0x00002000) != 0) {
+                    ETHERTSU_TEN |= (0x80000000 >> cnt);
+                }
+                tsu_ten_tmp  |= (0x80000000 >> cnt);
+                break;
+            }
+        }
+    }
+}
+
+void ethernetext_remove_multicast_group(const uint8_t *addr) {
+    uint32_t cnt;
+    uint32_t tmp_data_h;
+    uint32_t tmp_data_l;
+
+    tmp_data_h = ((uint32_t)addr[0] << 24) | ((uint32_t)addr[1] << 16) | ((uint32_t)addr[2] << 8) | ((uint32_t)addr[3]);
+    tmp_data_l = ((uint32_t)addr[4] << 8) | ((uint32_t)addr[5]);
+
+    for (cnt = 0; cnt< 32; cnt++) {
+        if ((ETHER_FROM_TSU_ADRH0_ARRAY[cnt]->TSU_ADRH0  == tmp_data_h) && 
+            (ETHER_FROM_TSU_ADRH0_ARRAY[cnt]->TSU_ADRL0  == tmp_data_l)) {
+            while ((ETHERTSU_ADSBSY & 0x00000001) != 0) {
+                ;
+            }
+            ETHER_FROM_TSU_ADRH0_ARRAY[cnt]->TSU_ADRH0 = 0;
+            while ((ETHERTSU_ADSBSY & 0x00000001) != 0) {
+                ;
+            }
+            ETHER_FROM_TSU_ADRH0_ARRAY[cnt]->TSU_ADRL0 = 0;
+
+            ETHERTSU_TEN &= ~(0x80000000 >> cnt);
+            tsu_ten_tmp  &= ~(0x80000000 >> cnt);
+            break;
+        }
+    }
+}
+
+void ethernetext_set_all_multicast(int all) {
+    if (all != 0) {
+        ETHERECMR0 &= ~(0x00002000);
+        ETHERTSU_TEN = 0x00000000;
+    } else {
+        ETHERECMR0 |= 0x00002000;
+        ETHERTSU_TEN = tsu_ten_tmp;
+    }
+}
+
+
+int ethernet_init() {
+    ethernet_cfg_t ethcfg;
+
+    ethcfg.int_priority = 5;
+    ethcfg.recv_cb      = NULL;
+    ethcfg.ether_mac    = NULL;
+    ethernetext_init(&ethcfg);
+    ethernet_set_link(-1, 0);   /* Auto-Negotiation */
+
+    return 0;
+}
+
+void ethernet_free() {
+    ETHERARSTR |= 0x00000001;            /* ETHER software reset */
+    CPGSTBCR7  |= CPG_STBCR7_BIT_MSTP74; /* disable ETHER clock */
+}
+
+int ethernet_write(const char *data, int slen) {
+    edmac_send_desc_t *p_send_desc;
+    int32_t           copy_size;
+
+    if ((p_eth_desc_dsend == NULL) || (data == NULL) || (slen < 0)
+     || (tx_wite_offset < 0) || (tx_wite_offset >= MAX_SEND_SIZE)) {
+        copy_size = 0;
+    } else {
+        p_send_desc = &p_eth_desc_dsend[send_top_index];   /* Current descriptor */
+        if ((p_send_desc->td0 & TD0_TACT) != 0) {
+            copy_size = 0;
+        } else {
+            copy_size = MAX_SEND_SIZE - tx_wite_offset;
+            if (copy_size > slen) {
+                copy_size = slen;
+            }
+            (void)memcpy(&p_send_desc->td2[tx_wite_offset], data, copy_size);
+            tx_wite_offset += copy_size;
+        }
+    }
+
+    return copy_size;
+}
+
+int ethernet_send() {
+    edmac_send_desc_t *p_send_desc;
+    int32_t           ret;
+
+    if ((p_eth_desc_dsend == NULL) || (tx_wite_offset <= 0)) {
+        ret = 0;
+    } else {
+        /* Transfer 1 frame */
+        p_send_desc = &p_eth_desc_dsend[send_top_index];   /* Current descriptor */
+
+        /* Sets the frame length */
+        p_send_desc->td1 = ((uint32_t)tx_wite_offset << 16);
+        tx_wite_offset   = 0;
+
+        /* Sets the transmit descriptor to transmit again */
+        p_send_desc->td0 &= (TD0_TACT | TD0_TDLE | TD0_TFP_TOP_BOTTOM);
+        p_send_desc->td0 |= TD0_TACT;
+        if ((start_stop == 1) && ((ETHEREDTRR0 & EDTRR0_TR) != EDTRR0_TR)) {
+            ETHEREDTRR0 |= EDTRR0_TR;
+        }
+
+        /* Update the current descriptor */
+        send_top_index++;
+        if (send_top_index >= NUM_OF_TX_DESCRIPTOR) {
+            send_top_index = 0;
+        }
+        ret = 1;
+    }
+
+    return ret;
+}
+
+int ethernet_receive() {
+    edmac_recv_desc_t *p_recv_desc;
+    int32_t           receive_size = 0;
+
+    if (p_eth_desc_drecv != NULL) {
+        if (p_recv_end_desc != NULL) {
+            /* Sets the receive descriptor to receive again */
+            p_recv_end_desc->rd0 &= (RD0_RACT | RD0_RDLE);
+            p_recv_end_desc->rd0 |= RD0_RACT;
+            if ((start_stop == 1) && ((ETHEREDRRR0 & EDRRR0_RR) == 0)) {
+                ETHEREDRRR0 |= EDRRR0_RR;
+            }
+            p_recv_end_desc = NULL;
+        }
+
+        p_recv_desc = &p_eth_desc_drecv[recv_top_index];   /* Current descriptor */
+        if ((p_recv_desc->rd0 & RD0_RACT) == 0) {
+            /* Receives 1 frame */
+            if (((p_recv_desc->rd0 & RD0_RFE) != 0) && ((p_recv_desc->rd0 & RD0_RFS_ERROR) != 0)) {
+                /* Receive frame error */
+                /* Sets the receive descriptor to receive again */
+                p_recv_desc->rd0 &= (RD0_RACT | RD0_RDLE);
+                p_recv_desc->rd0 |= RD0_RACT;
+                if ((start_stop == 1) && ((ETHEREDRRR0 & EDRRR0_RR) == 0)) {
+                    ETHEREDRRR0 |= EDRRR0_RR;
+                }
+            } else {
+                /* Copies the received frame */
+                rx_read_offset  = 0;
+                p_recv_end_desc = p_recv_desc;
+                receive_size    = (p_recv_desc->rd1 & RD1_RDL_MSK);    /* number of bytes received */
+            }
+
+            /* Update the current descriptor */
+            recv_top_index++;
+            if (recv_top_index >= NUM_OF_TX_DESCRIPTOR) {
+                recv_top_index = 0;
+            }
+        }
+    }
+
+    return receive_size;
+}
+
+int ethernet_read(char *data, int dlen) {
+    edmac_recv_desc_t *p_recv_desc = p_recv_end_desc;                   /* Read top descriptor */
+    int32_t           copy_size;
+
+    if ((data == NULL) || (dlen < 0) || (p_recv_desc == NULL)) {
+        copy_size = 0;
+    } else {
+        copy_size = (p_recv_desc->rd1 & RD1_RDL_MSK) - rx_read_offset;
+        if (copy_size > dlen) {
+            copy_size = dlen;
+        }
+        (void)memcpy(data, &p_recv_desc->rd2[rx_read_offset], (size_t)copy_size);
+        rx_read_offset += copy_size;
+    }
+
+    return copy_size;
+}
+
+void ethernet_address(char *mac) {
+    if (mac != NULL) {
+        mbed_mac_address(mac); /* Get MAC Address */
+    }
+}
+
+int ethernet_link(void) {
+    int32_t  ret;
+    uint16_t data;
+
+    data = phy_reg_read(BASIC_MODE_STATUS_REG);
+    if (((uint32_t)data & BASIC_STS_MSK_LINK) != 0) {
+        ret = 1;
+    } else {
+        ret = 0;
+    }
+
+    return ret;
+}
+
+void ethernet_set_link(int speed, int duplex) {
+    uint16_t data;
+    int32_t  i;
+    int32_t  link;
+
+    if ((speed < 0) || (speed > 1)) {
+        data = 0x1000;      /* Auto-Negotiation Enable */
+        phy_reg_write(BASIC_MODE_CONTROL_REG, data);
+        for (i = 0; i < 1000; i++) {
+            data = phy_reg_read(BASIC_MODE_STATUS_REG);
+            if (((uint32_t)data & BASIC_STS_MSK_AUTO_CMP) != 0) {
+                break;
+            }
+            wait_100us(10);
+        }
+    } else {
+        data = (uint16_t)(((uint32_t)speed << 13) | ((uint32_t)duplex << 8));
+        phy_reg_write(BASIC_MODE_CONTROL_REG, data);
+        wait_100us(1);
+    }
+
+    link = ethernetext_chk_link_mode();
+    ethernetext_set_link_mode(link);
+}
+
+void INT_Ether(void) {
+    uint32_t stat_edmac;
+    uint32_t stat_etherc;
+
+    /* Clear the interrupt request flag */
+    stat_edmac = (ETHEREESR0 & ETHEREESIPR0);       /* Targets are restricted to allowed interrupts */
+    ETHEREESR0 = stat_edmac;
+    /* Reception-related */
+    if (stat_edmac & EDMAC_EESIPR_INI_RECV) {
+        if (p_recv_cb_fnc != NULL) {
+            p_recv_cb_fnc();
+        }
+    }
+    /* E-MAC-related */
+    if (stat_edmac & EDMAC_EESIPR_INI_EtherC) {
+        /* Clear the interrupt request flag */
+        stat_etherc = (ETHERECSR0 & ETHERECSIPR0);  /* Targets are restricted to allowed interrupts */
+        ETHERECSR0  = stat_etherc;
+    }
+}
+
+static void lan_reg_reset(void) {
+    volatile int32_t j = 400;    /* Wait for B dia 256 cycles  ((I dia/B dia)*256)/6cyc = 8*256/6 = 342 */
+
+    ETHERARSTR      |= 0x00000001;      /* ETHER software reset */
+    while (j--) {
+        /* Do Nothing */
+    }
+
+    ETHEREDSR0      |= 0x00000003;      /* E-DMAC software reset */
+    ETHEREDMR0      |= 0x00000003;      /* Set SWRR and SWRT simultaneously */
+
+    /* Check clear software reset */
+    while ((ETHEREDMR0 & 0x00000003) != 0) {
+        /* Do Nothing */
+    }
+}
+
+static void lan_desc_create(void) {
+    int32_t i;
+    uint8_t *p_memory_top;
+
+    (void)memset((void *)ethernet_nc_memory, 0, sizeof(ethernet_nc_memory));
+    p_memory_top = ethernet_nc_memory;
+
+    /* Descriptor area configuration */
+    p_eth_desc_dsend  = (edmac_send_desc_t *)p_memory_top;
+    p_memory_top     += (sizeof(edmac_send_desc_t) * NUM_OF_TX_DESCRIPTOR);
+    p_eth_desc_drecv  = (edmac_recv_desc_t *)p_memory_top;
+    p_memory_top     += (sizeof(edmac_recv_desc_t) * NUM_OF_RX_DESCRIPTOR);
+
+    /* Transmit descriptor */
+    for (i = 0; i < NUM_OF_TX_DESCRIPTOR; i++) {
+        p_eth_desc_dsend[i].td2  = p_memory_top;                     /* TD2 TBA */
+        p_memory_top            += SIZE_OF_BUFFER;
+        p_eth_desc_dsend[i].td1  = 0;                                /* TD1 TDL */
+        p_eth_desc_dsend[i].td0  = TD0_TFP_TOP_BOTTOM;               /* TD0:1frame/1buf1buf, transmission disabled */
+    }
+    p_eth_desc_dsend[i - 1].td0 |= TD0_TDLE;                         /* Set the last descriptor */
+
+    /* Receive descriptor */
+    for (i = 0; i < NUM_OF_RX_DESCRIPTOR; i++) {
+        p_eth_desc_drecv[i].rd2  = p_memory_top;                     /* RD2 RBA */
+        p_memory_top            += SIZE_OF_BUFFER;
+        p_eth_desc_drecv[i].rd1  = ((uint32_t)SIZE_OF_BUFFER << 16); /* RD1 RBL */
+        p_eth_desc_drecv[i].rd0  = RD0_RACT;                         /* RD0:reception enabled */
+    }
+    p_eth_desc_drecv[i - 1].rd0 |= RD0_RDLE;                         /* Set the last descriptor */
+
+    /* Initialize descriptor management information */
+    send_top_index  = 0;
+    recv_top_index  = 0;
+    rx_read_offset  = 0;
+    tx_wite_offset  = 0;
+    p_recv_end_desc = NULL;
+}
+
+static void lan_reg_set(int32_t link) {
+    int32_t prm = link & PROMISCUOUS_MODE;
+    link &= ~PROMISCUOUS_MODE;
+
+    /* MAC address setting */
+    ETHERMAHR0      = ((uint8_t)mac_addr[0] << 24)
+                    | ((uint8_t)mac_addr[1] << 16)
+                    | ((uint8_t)mac_addr[2] << 8)
+                    |  (uint8_t)mac_addr[3];
+    ETHERMALR0      = ((uint8_t)mac_addr[4] << 8)
+                    |  (uint8_t)mac_addr[5];
+
+    /* E-DMAC */
+    ETHERTDLAR0     = (uint32_t)&p_eth_desc_dsend[0];
+    ETHERRDLAR0     = (uint32_t)&p_eth_desc_drecv[0];
+    ETHERTDFAR0     = (uint32_t)&p_eth_desc_dsend[0];
+    ETHERRDFAR0     = (uint32_t)&p_eth_desc_drecv[0];
+    ETHERTDFXR0     = (uint32_t)&p_eth_desc_dsend[NUM_OF_TX_DESCRIPTOR - 1];
+    ETHERRDFXR0     = (uint32_t)&p_eth_desc_drecv[NUM_OF_RX_DESCRIPTOR - 1];
+    ETHERTDFFR0    |=  0x00000001;      /* TDLF  Transmit Descriptor Queue Last Flag : Last descriptor (1) */
+    ETHERRDFFR0    |=  0x00000001;      /* RDLF  Receive Descriptor Queue Last Flag : Last descriptor (1) */
+    ETHEREDMR0     |=  0x00000040;      /* Little endian */
+    ETHERTRSCER0   &= ~0x0003009F;      /* All clear */
+    ETHERTFTR0     &= ~0x000007FF;      /* TFT[10:0]  Transmit FIFO Threshold : Store and forward modes (H'000) */
+    ETHERFDR0      |=  0x00000707;      /* Transmit FIFO Size:2048 bytes, Receive FIFO Size:2048 bytes */
+    ETHERRMCR0     |=  0x00000001;      /* RNC  Receive Enable Control : Continuous reception enabled (1) */
+    ETHERFCFTR0    &= ~0x001F00FF;
+    ETHERFCFTR0    |=  0x00070007;
+    ETHERRPADIR0   &= ~0x001FFFFF;      /* Padding Size:No padding insertion, Padding Slot:Inserts at first byte */
+
+    /* E-MAC */
+    ETHERECMR0     &= ~0x04BF2063;      /* All clear */
+    ETHERRFLR0     &= ~0x0003FFFF;      /* RFL[17:0]  Receive Frame Length : 1518 bytes (H'00000) */
+    ETHERAPR0      &= ~0x0000FFFF;      /* AP[15:0]   Automatic PAUSE : Flow control is disabled (H'0000) */
+    ETHERMPR0      &= ~0x0000FFFF;      /* MP[15:0]   Manual PAUSE : Flow control is disabled (H'0000) */
+    ETHERTPAUSER0  &= ~0x0000FFFF;      /* Upper Limit for Automatic PAUSE Frame : Retransmit count is unlimited */
+    ETHERCSMR      &= ~0xC000003F;      /* The result of checksum is not written back to the receive descriptor */
+    if ((link == FULL_TX) || (link == FULL_10M) || (link == NEGO_FAIL)) {
+        ETHERECMR0 |= 0x00000002;       /* Set to full-duplex mode */
+    } else {
+        ETHERECMR0 &= ~0x00000002;      /* Set to half-duplex mode */
+    }
+    if (!prm) {
+        ETHERECMR0     |=  0x00002000;      /* MCT = 1 */
+    }
+    else {
+        ETHERECMR0     &=  ~0x00002000;     /* MCT = 0 */
+    }
+
+    /* Interrupt-related */
+    if (p_recv_cb_fnc != NULL) {
+        ETHEREESR0     |=  0xFF7F009F;                     /* Clear all status (by writing 1) */
+        ETHEREESIPR0   |=  0x00040000;                     /* FR  Frame Reception (1) */
+        ETHERECSR0     |=  0x00000011;                     /* Clear all status (clear by writing 1) */
+        ETHERECSIPR0   &= ~0x00000011;                     /* PFROIP Disable, ICDIP Disable */
+        /*InterruptHandlerRegister(ETHERI_IRQn, INT_Ether);  /* Ethernet interrupt handler registration */
+        GIC_SetPriority(ETHERI_IRQn, Interrupt_priority);  /* Ethernet interrupt priority */
+        GIC_SetConfiguration(ETHERI_IRQn, 1);
+        GIC_EnableIRQ(ETHERI_IRQn);                        /* Enables the E-DMAC interrupt */
+    }
+
+    if (prm) {
+        ETHERECMR0     |=  0x00000001;  /* Promiscuous Mode */
+    }
+
+    ETHERECMR0     |=  0x00000060;      /* RE Enable, TE Enable */
+
+    /* Enable transmission/reception */
+    if ((start_stop == 1) && ((ETHEREDRRR0 & 0x00000001) == 0)) {
+        ETHEREDRRR0 |= 0x00000001;       /* RR */
+    }
+}
+
+static uint16_t phy_reg_read(uint16_t reg_addr) {
+    uint16_t data;
+
+    mii_preamble();
+    mii_cmd(reg_addr, PHY_READ);
+    mii_z();
+    mii_reg_read(&data);
+    mii_z();
+
+    return data;
+}
+
+static void phy_reg_write(uint16_t reg_addr, uint16_t data) {
+    mii_preamble();
+    mii_cmd(reg_addr, PHY_WRITE);
+    mii_write_1();
+    mii_write_0();
+    mii_reg_write(data);
+    mii_z();
+}
+
+static void mii_preamble(void) {
+    int32_t i = 32;
+
+    for (i = 32; i > 0; i--) {
+        /* 1 is output via the MII (Media Independent Interface) block. */
+        mii_write_1();
+    }
+}
+
+static void mii_cmd(uint16_t reg_addr, uint32_t option) {
+    int32_t  i;
+    uint16_t data = 0;
+
+    data |= (PHY_ST << 14);             /* ST code      */
+    data |= (option << 12);             /* OP code      */
+    data |= (PHY_ADDR << 7);            /* PHY Address  */
+    data |= (uint16_t)(reg_addr << 2);  /* Reg Address  */
+    for (i = 14; i > 0; i--) {
+        if ((data & 0x8000) == 0) {
+            mii_write_0();
+        } else {
+            mii_write_1();
+        }
+        data <<= 1;
+    }
+}
+
+static void mii_reg_read(uint16_t *data) {
+    int32_t  i;
+    uint16_t reg_data = 0;
+
+    /* Data are read in one bit at a time */
+    for (i = 16; i > 0; i--) {
+        set_ether_pir(PIR0_MDC_LOW);
+        set_ether_pir(PIR0_MDC_HIGH);
+        reg_data <<= 1;
+        reg_data |= (uint16_t)((ETHERPIR0 & PIR0_MDI) >> 3);  /* MDI read */
+        set_ether_pir(PIR0_MDC_HIGH);
+        set_ether_pir(PIR0_MDC_LOW);
+    }
+    *data = reg_data;
+}
+
+static void mii_reg_write(uint16_t data) {
+    int32_t i;
+
+    /* Data are written one bit at a time */
+    for (i = 16; i > 0; i--) {
+        if ((data & 0x8000) == 0) {
+            mii_write_0();
+        } else {
+            mii_write_1();
+        }
+        data <<= 1;
+    }
+}
+
+static void mii_z(void) {
+    set_ether_pir(PIR0_MDC_LOW);
+    set_ether_pir(PIR0_MDC_HIGH);
+    set_ether_pir(PIR0_MDC_HIGH);
+    set_ether_pir(PIR0_MDC_LOW);
+}
+
+static void mii_write_1(void) {
+    set_ether_pir(PIR0_MDO | PIR0_MMD);
+    set_ether_pir(PIR0_MDO | PIR0_MMD | PIR0_MDC);
+    set_ether_pir(PIR0_MDO | PIR0_MMD | PIR0_MDC);
+    set_ether_pir(PIR0_MDO | PIR0_MMD);
+}
+
+static void mii_write_0(void) {
+    set_ether_pir(PIR0_MMD);
+    set_ether_pir(PIR0_MMD | PIR0_MDC);
+    set_ether_pir(PIR0_MMD | PIR0_MDC);
+    set_ether_pir(PIR0_MMD);
+}
+
+static void set_ether_pir(uint32_t set_data) {
+    int32_t i;
+
+    for (i = MDC_WAIT; i > 0; i--) {
+        ETHERPIR0 = set_data;
+    }
+}
+
+static void wait_100us(int32_t wait_cnt) {
+    volatile int32_t j = LOOP_100us * wait_cnt;
+
+    while (--j) {
+        /* Do Nothing */
+    }
+}
+#endif /* DEVICE_ETHERNET */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/ethernetext_api.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/ethernetext_api.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/ethernetext_api.h	(revision 429)
@@ -0,0 +1,37 @@
+
+#ifndef ETHERNETEXT_H
+#define ETHERNETEXT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PHY link mode */
+#define NEGO_FAIL               (0)
+#define HALF_10M                (1)
+#define FULL_10M                (2)
+#define HALF_TX                 (3)
+#define FULL_TX                 (4)
+
+#define PROMISCUOUS_MODE        (0x80000000)
+
+typedef void (ethernetext_cb_fnc)(void);
+
+typedef struct tag_ethernet_cfg {
+    int                  int_priority;
+    ethernetext_cb_fnc   *recv_cb;
+    char                 *ether_mac;
+} ethernet_cfg_t;
+
+extern int ethernetext_init(ethernet_cfg_t *p_ethcfg);
+extern void ethernetext_start_stop(int32_t mode);
+extern int ethernetext_chk_link_mode(void);
+extern void ethernetext_set_link_mode(int32_t link);
+extern void ethernetext_add_multicast_group(const uint8_t *addr);
+extern void ethernetext_remove_multicast_group(const uint8_t *addr);
+extern void ethernetext_set_all_multicast(int all);
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/flash_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/flash_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/flash_api.c	(revision 429)
@@ -0,0 +1,749 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2018 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "flash_api.h"
+#include "mbed_critical.h"
+
+#if DEVICE_FLASH
+#include "iodefine.h"
+#include "spibsc_iobitmask.h"
+#include "spibsc.h"
+#include "mbed_drv_cfg.h"
+
+/* ---- serial flash command ---- */
+#define SFLASHCMD_SECTOR_ERASE       (0x20u)    /* SE     3-byte address(1bit)             */
+#define SFLASHCMD_PAGE_PROGRAM       (0x02u)    /* PP     3-byte address(1bit), data(1bit) */
+#define SFLASHCMD_READ_STATUS_REG    (0x05u)    /* RDSR                         data(1bit) */
+#define SFLASHCMD_WRITE_ENABLE       (0x06u)    /* WREN                                    */
+/* ---- serial flash register definitions ---- */
+#define STREG_BUSY_BIT               (0x01u)    /* SR.[0]BUSY Erase/Write In Progress (RO) */
+
+/* Definition of the base address for the MMU translation table */
+#if defined(__CC_ARM) || defined(__GNUC__)
+extern uint32_t Image$$TTB$$ZI$$Base;
+#define TTB         ((uint32_t)&Image$$TTB$$ZI$$Base)   /* using linker symbol */
+#elif defined(__ICCARM__)
+#pragma section="TTB"
+#define TTB         ((uint32_t)__section_begin("TTB"))
+#endif
+
+typedef struct {
+    uint32_t cdb;       /* bit-width : command */
+    uint32_t ocdb;      /* bit-width : optional command */
+    uint32_t adb;       /* bit-width : address */
+    uint32_t opdb;      /* bit-width : option data */
+    uint32_t spidb;     /* bit-width : data */
+
+    uint32_t cde;       /* Enable : command */
+    uint32_t ocde;      /* Enable : optional command */
+    uint32_t ade;       /* Enable : address */
+    uint32_t opde;      /* Enable : option data */
+    uint32_t spide;     /* Enable : data */
+
+    uint32_t sslkp;     /* SPBSSL level */
+    uint32_t spire;     /* Enable data read */
+    uint32_t spiwe;     /* Enable data write */
+
+    uint32_t dme;       /* Enable : dummy cycle */
+
+    uint32_t addre;     /* DDR enable : address  */
+    uint32_t opdre;     /* DDR enable : option data */
+    uint32_t spidre;    /* DDR enable : data */
+
+    uint8_t dmdb;       /* bit-width : dummy cycle */
+    uint8_t dmcyc;      /* number of dummy cycles */
+
+    uint8_t  cmd;       /* command */
+    uint8_t  ocmd;      /* optional command */
+    uint32_t addr;      /* address */
+    uint8_t  opd[4];    /* option data 3/2/1/0 */
+    uint32_t smrdr[2];  /* read data */
+    uint32_t smwdr[2];  /* write data */
+} st_spibsc_spimd_reg_t;
+
+/*  SPI Multi-I/O bus address space address definitions */
+#define SPIBSC_ADDR_START  (0x18000000uL)
+#define SPIBSC_ADDR_END    (0x1BFFFFFFuL)
+
+typedef struct {
+    uint32_t b0             : 1 ;       /* bit 0        : -         (0)                                   */
+    uint32_t b1             : 1 ;       /* bit 1        : -         (1)                                   */
+    uint32_t B              : 1 ;       /* bit 2        : B         Memory region attribute bit           */
+    uint32_t C              : 1 ;       /* bit 3        : C         Memory region attribute bit           */
+    uint32_t XN             : 1 ;       /* bit 4        : XN        Execute-never bit                     */
+    uint32_t Domain         : 4 ;       /* bit 8-5      : Domain    Domain field                          */
+    uint32_t b9             : 1 ;       /* bit 9        : IMP       IMPLEMENTATION DEFINED                */
+    uint32_t AP1_0          : 2 ;       /* bit 11-10    : AP[1:0]   Access permissions bits:bit1-0        */
+    uint32_t TEX            : 3 ;       /* bit 14-12    : TEX[2:0]  Memory region attribute bits          */
+    uint32_t AP2            : 1 ;       /* bit 15       : AP[2]     Access permissions bits:bit2          */
+    uint32_t S              : 1 ;       /* bit 16       : S         Shareable bit                         */
+    uint32_t nG             : 1 ;       /* bit 17       : nG        Not global bit                        */
+    uint32_t b18            : 1 ;       /* bit 18       : -         (0)                                   */
+    uint32_t NS             : 1 ;       /* bit 19       : NS        Non-secure bit                        */
+    uint32_t base_addr      : 12;       /* bit 31-20    : PA[31:20] PA(physical address) bits:bit31-20    */
+} mmu_ttbl_desc_section_t;
+
+static mmu_ttbl_desc_section_t desc_tbl[(SPIBSC_ADDR_END >> 20) - (SPIBSC_ADDR_START >> 20) + 1];
+static volatile struct st_spibsc*  SPIBSC = &SPIBSC0;
+static st_spibsc_spimd_reg_t spimd_reg;
+
+#if defined(__ICCARM__)
+#define RAM_CODE_SEC    __ramfunc
+#else
+#define RAM_CODE_SEC    __attribute__((section("RAM_CODE")))
+#endif
+
+/* Global function for optimization */
+RAM_CODE_SEC int32_t _sector_erase(uint32_t addr);
+RAM_CODE_SEC int32_t _page_program(uint32_t addr, const uint8_t * buf, int32_t size);
+
+static RAM_CODE_SEC int32_t write_enable(void);
+static RAM_CODE_SEC int32_t busy_wait(void);
+static RAM_CODE_SEC int32_t read_register(uint8_t cmd, uint8_t * status);
+static RAM_CODE_SEC int32_t data_send(uint32_t bit_width, uint32_t spbssl_level, const uint8_t * buf, int32_t size);
+static RAM_CODE_SEC void spi_mode(void);
+static RAM_CODE_SEC void ex_mode(void);
+static RAM_CODE_SEC void clear_spimd_reg(st_spibsc_spimd_reg_t * regset);
+static RAM_CODE_SEC int32_t spibsc_transfer(st_spibsc_spimd_reg_t * regset);
+static RAM_CODE_SEC uint32_t RegRead_32(volatile uint32_t * ioreg, uint32_t shift, uint32_t mask);
+static RAM_CODE_SEC void RegWwrite_32(volatile uint32_t * ioreg, uint32_t write_value, uint32_t shift, uint32_t mask);
+static RAM_CODE_SEC void change_mmu_ttbl_spibsc(uint32_t type);
+static RAM_CODE_SEC void spibsc_stop(void);
+static RAM_CODE_SEC void cache_control(void);
+
+int32_t flash_init(flash_t *obj)
+{
+    return 0;
+}
+
+int32_t flash_free(flash_t *obj)
+{
+    return 0;
+}
+
+int32_t flash_erase_sector(flash_t *obj, uint32_t address)
+{
+    int32_t ret;
+
+    core_util_critical_section_enter();
+    ret = _sector_erase(address - FLASH_BASE);
+    core_util_critical_section_exit();
+
+    return ret;
+}
+
+int32_t flash_program_page(flash_t *obj, uint32_t address, const uint8_t *data, uint32_t size)
+{
+    int32_t ret;
+
+    core_util_critical_section_enter();
+    ret = _page_program(address - FLASH_BASE, data, size);
+    core_util_critical_section_exit();
+
+    return ret;
+}
+
+uint32_t flash_get_sector_size(const flash_t *obj, uint32_t address)
+{
+    if ((address >= (FLASH_BASE + FLASH_SIZE)) || (address < FLASH_BASE)) {
+        return MBED_FLASH_INVALID_SIZE;
+    }
+
+    return FLASH_SECTOR_SIZE;
+}
+
+uint32_t flash_get_page_size(const flash_t *obj)
+{
+    return 1;
+}
+
+uint32_t flash_get_start_address(const flash_t *obj)
+{
+    return FLASH_BASE;
+}
+
+uint32_t flash_get_size(const flash_t *obj)
+{
+    return FLASH_SIZE;
+}
+
+int32_t _sector_erase(uint32_t addr)
+{
+    int32_t ret;
+
+    spi_mode();
+
+    /* ---- Write enable   ---- */
+    ret = write_enable();      /* WREN Command */
+    if (ret != 0) {
+        ex_mode();
+        return ret;
+    }
+
+    /* ---- spimd_reg init ---- */
+    clear_spimd_reg(&spimd_reg);
+
+    /* ---- command ---- */
+    spimd_reg.cde    = SPIBSC_OUTPUT_ENABLE;
+    spimd_reg.cdb    = SPIBSC_1BIT;
+    spimd_reg.cmd    = SFLASHCMD_SECTOR_ERASE;
+
+    /* ---- address ---- */
+    spimd_reg.ade    = SPIBSC_OUTPUT_ADDR_24;
+    spimd_reg.addre  = SPIBSC_SDR_TRANS;       /* SDR */
+    spimd_reg.adb    = SPIBSC_1BIT;
+    spimd_reg.addr   = addr;
+
+    ret = spibsc_transfer(&spimd_reg);
+    if (ret != 0) {
+        ex_mode();
+        return ret;
+    }
+
+    ret = busy_wait();
+
+    ex_mode();
+    return ret;
+}
+
+int32_t _page_program(uint32_t addr, const uint8_t * buf, int32_t size)
+{
+    int32_t ret;
+    int32_t program_size;
+    int32_t remainder;
+    int32_t idx = 0;
+
+    spi_mode();
+
+    while (size > 0) {
+        if (size > FLASH_PAGE_SIZE) {
+            program_size = FLASH_PAGE_SIZE;
+        } else {
+            program_size = size;
+        }
+        remainder = FLASH_PAGE_SIZE - (addr % FLASH_PAGE_SIZE);
+        if ((remainder != 0) && (program_size > remainder)) {
+            program_size = remainder;
+        }
+
+        /* ---- Write enable   ---- */
+        ret = write_enable();      /* WREN Command */
+        if (ret != 0) {
+            ex_mode();
+            return ret;
+        }
+
+        /* ----------- 1. Command, Address ---------------*/
+        /* ---- spimd_reg init ---- */
+        clear_spimd_reg(&spimd_reg);
+
+        /* ---- command ---- */
+        spimd_reg.cde    = SPIBSC_OUTPUT_ENABLE;
+        spimd_reg.cdb    = SPIBSC_1BIT;
+        spimd_reg.cmd    = SFLASHCMD_PAGE_PROGRAM;
+
+        /* ---- address ---- */
+        spimd_reg.ade    = SPIBSC_OUTPUT_ADDR_24;
+        spimd_reg.addre  = SPIBSC_SDR_TRANS;       /* SDR */
+        spimd_reg.adb    = SPIBSC_1BIT;
+        spimd_reg.addr   = addr;
+
+        /* ---- Others ---- */
+        spimd_reg.sslkp  = SPIBSC_SPISSL_KEEP;     /* SPBSSL level */
+
+        ret = spibsc_transfer(&spimd_reg);         /* Command,Address */
+        if (ret != 0) {
+            ex_mode();
+            return ret;
+        }
+
+        /* ----------- 2. Data ---------------*/
+        ret = data_send(SPIBSC_1BIT, SPIBSC_SPISSL_NEGATE, &buf[idx], program_size);
+        if (ret != 0) {
+            ex_mode();
+            return ret;
+        }
+
+        ret = busy_wait();
+        if (ret != 0) {
+            ex_mode();
+            return ret;
+        }
+
+        addr += program_size;
+        idx  += program_size;
+        size -= program_size;
+    }
+
+    ex_mode();
+    return ret;
+}
+
+static int32_t write_enable(void)
+{
+    int32_t ret;
+
+    /* ---- spimd_reg init ---- */
+    clear_spimd_reg(&spimd_reg);
+
+    /* ---- command ---- */
+    spimd_reg.cde    = SPIBSC_OUTPUT_ENABLE;
+    spimd_reg.cdb    = SPIBSC_1BIT;
+    spimd_reg.cmd    = SFLASHCMD_WRITE_ENABLE;
+
+    ret = spibsc_transfer(&spimd_reg);
+
+    return ret;
+}
+
+static int32_t busy_wait(void)
+{
+    int32_t ret;
+    uint8_t st_reg;
+
+    while (1) {
+        ret = read_register(SFLASHCMD_READ_STATUS_REG, &st_reg);
+        if (ret != 0) {
+            break;
+        }
+        if ((st_reg & STREG_BUSY_BIT) == 0) {
+            break;
+        }
+    }
+
+    return ret;
+}
+
+static int32_t read_register(uint8_t cmd, uint8_t * status)
+{
+    int32_t ret;
+
+    /* ---- spimd_reg init ---- */
+    clear_spimd_reg(&spimd_reg);
+
+    /* ---- command ---- */
+    spimd_reg.cde    = SPIBSC_OUTPUT_ENABLE;
+    spimd_reg.cdb    = SPIBSC_1BIT;
+    spimd_reg.cmd    = cmd;
+
+    /* ---- Others ---- */
+    spimd_reg.sslkp  = SPIBSC_SPISSL_NEGATE;   /* SPBSSL level */
+    spimd_reg.spire  = SPIBSC_SPIDATA_ENABLE;  /* read enable/disable */
+    spimd_reg.spiwe  = SPIBSC_SPIDATA_ENABLE;  /* write enable/disable */
+
+    /* ---- data ---- */
+    spimd_reg.spide  = SPIBSC_OUTPUT_SPID_8;   /* Enable(8bit) */
+    spimd_reg.spidre = SPIBSC_SDR_TRANS;       /* SDR */
+    spimd_reg.spidb  = SPIBSC_1BIT;
+    spimd_reg.smwdr[0] = 0x00;                 /* Output 0 in read status */
+    spimd_reg.smwdr[1] = 0x00;                 /* Output 0 in read status */
+
+    ret = spibsc_transfer(&spimd_reg);
+    if (ret == 0) {
+        *status = (uint8_t)(spimd_reg.smrdr[0]);   /* Data[7:0]  */
+    }
+
+    return ret;
+}
+
+static int32_t data_send(uint32_t bit_width, uint32_t spbssl_level, const uint8_t * buf, int32_t size)
+{
+    int32_t ret = 0;
+    int32_t unit;
+    uint8_t  *buf_b;
+    uint16_t *buf_s;
+    uint32_t *buf_l;
+
+    /* ---- spimd_reg init ---- */
+    clear_spimd_reg(&spimd_reg);
+
+    /* ---- Others ---- */
+    spimd_reg.sslkp  = SPIBSC_SPISSL_KEEP;     /* SPBSSL level */
+    spimd_reg.spiwe  = SPIBSC_SPIDATA_ENABLE;  /* write enable/disable */
+
+    /* ---- data ---- */
+    spimd_reg.spidb = bit_width;
+    spimd_reg.spidre= SPIBSC_SDR_TRANS;        /* SDR */
+
+    if (((uint32_t)size & 0x3)  == 0) {
+        spimd_reg.spide = SPIBSC_OUTPUT_SPID_32;  /* Enable(32bit) */
+        unit = 4;
+    } else if (((uint32_t)size & 0x1) == 0) {
+        spimd_reg.spide = SPIBSC_OUTPUT_SPID_16;  /* Enable(16bit) */
+        unit = 2;
+    } else {
+        spimd_reg.spide = SPIBSC_OUTPUT_SPID_8;   /* Enable(8bit) */
+        unit = 1;
+    }
+
+    while (size > 0) {
+        if (unit == 1) {
+            buf_b = (uint8_t *)buf;
+            spimd_reg.smwdr[0] = (uint32_t)(((uint32_t)*buf_b) & 0x000000FF);
+        } else if (unit == 2) {
+            buf_s = (uint16_t *)buf;
+            spimd_reg.smwdr[0] = (uint32_t)(((uint32_t)*buf_s) & 0x0000FFFF);
+        } else if (unit == 4) {
+            buf_l = (uint32_t *)buf;
+            spimd_reg.smwdr[0] = (uint32_t)(((uint32_t)(*buf_l)) & 0xfffffffful);
+        } else {
+            /* Do Nothing */
+        }
+
+        buf  += unit;
+        size -= unit;
+
+        if (size <= 0) {
+            spimd_reg.sslkp = spbssl_level;
+        }
+
+        ret = spibsc_transfer(&spimd_reg);    /* Data */
+        if (ret != 0) {
+            return ret;
+        }
+    }
+
+    return ret;
+}
+
+static void spi_mode(void)
+{
+    volatile uint32_t dummy_read_32;
+
+    if (RegRead_32(&SPIBSC->CMNCR, SPIBSC_CMNCR_MD_SHIFT, SPIBSC_CMNCR_MD) != SPIBSC_CMNCR_MD_SPI) {
+        /* ==== Change the MMU translation table SPI Multi-I/O bus space settings
+                for use in SPI operating mode ==== */
+        change_mmu_ttbl_spibsc(0);
+
+        /* ==== Cleaning and invalidation of cache ==== */
+        cache_control();
+
+        /* ==== Switch to SPI operating mode ==== */
+        spibsc_stop();
+
+        dummy_read_32 = SPIBSC->CMNCR; /* dummy read */
+        /* SPI Mode */
+        RegWwrite_32(&SPIBSC->CMNCR, SPIBSC_CMNCR_MD_SPI, SPIBSC_CMNCR_MD_SHIFT, SPIBSC_CMNCR_MD);
+        dummy_read_32 = SPIBSC->CMNCR; /* dummy read */
+
+    }
+    (void)dummy_read_32;
+}
+
+static void ex_mode(void)
+{
+    volatile uint32_t dummy_read_32;
+
+    if (RegRead_32(&SPIBSC->CMNCR, SPIBSC_CMNCR_MD_SHIFT, SPIBSC_CMNCR_MD) != SPIBSC_CMNCR_MD_EXTRD) {
+        /* ==== Switch to external address space read mode and clear SPIBSC read cache ==== */
+        spibsc_stop();
+
+        /* Flush SPIBSC's read cache */
+        RegWwrite_32(&SPIBSC->DRCR, SPIBSC_DRCR_RCF_EXE, SPIBSC_DRCR_RCF_SHIFT, SPIBSC_DRCR_RCF);
+        dummy_read_32 = SPIBSC->DRCR;  /* dummy read */
+
+        /* External address space read mode */
+        RegWwrite_32(&SPIBSC->CMNCR, SPIBSC_CMNCR_MD_EXTRD, SPIBSC_CMNCR_MD_SHIFT, SPIBSC_CMNCR_MD);
+        dummy_read_32 = SPIBSC->CMNCR; /* dummy read */
+
+        /* ==== Change the MMU translation table SPI Multi-I/O bus space settings
+                for use in external address space read mode ==== */
+        change_mmu_ttbl_spibsc(1);
+
+        /* ==== Cleaning and invalidation of cache ==== */
+        cache_control();
+    }
+    (void)dummy_read_32;
+}
+
+static void clear_spimd_reg(st_spibsc_spimd_reg_t * regset)
+{
+    /* ---- command ---- */
+    regset->cde    = SPIBSC_OUTPUT_DISABLE;
+    regset->cdb    = SPIBSC_1BIT;
+    regset->cmd    = 0x00;
+
+    /* ---- optional command ---- */
+    regset->ocde   = SPIBSC_OUTPUT_DISABLE;
+    regset->ocdb   = SPIBSC_1BIT;
+    regset->ocmd   = 0x00;
+
+    /* ---- address ---- */
+    regset->ade    = SPIBSC_OUTPUT_DISABLE;
+    regset->addre  = SPIBSC_SDR_TRANS;       /* SDR */
+    regset->adb    = SPIBSC_1BIT;
+    regset->addr   = 0x00000000;
+
+    /* ---- option data ---- */
+    regset->opde   = SPIBSC_OUTPUT_DISABLE;
+    regset->opdre  = SPIBSC_SDR_TRANS;       /* SDR */
+    regset->opdb   = SPIBSC_1BIT;
+    regset->opd[0] = 0x00;    /* OPD3 */
+    regset->opd[1] = 0x00;    /* OPD2 */
+    regset->opd[2] = 0x00;    /* OPD1 */
+    regset->opd[3] = 0x00;    /* OPD0 */
+
+    /* ---- dummy cycle ---- */
+    regset->dme    = SPIBSC_DUMMY_CYC_DISABLE;
+    regset->dmdb   = SPIBSC_1BIT;
+    regset->dmcyc  = SPIBSC_DUMMY_1CYC;
+
+    /* ---- data ---- */
+    regset->spide  = SPIBSC_OUTPUT_DISABLE;
+    regset->spidre = SPIBSC_SDR_TRANS;       /* SDR */
+    regset->spidb  = SPIBSC_1BIT;
+
+    /* ---- Others ---- */
+    regset->sslkp  = SPIBSC_SPISSL_NEGATE;   /* SPBSSL level */
+    regset->spire  = SPIBSC_SPIDATA_DISABLE; /* read enable/disable */
+    regset->spiwe  = SPIBSC_SPIDATA_DISABLE; /* write enable/disable */
+}
+
+static int32_t spibsc_transfer(st_spibsc_spimd_reg_t * regset)
+{
+    if (RegRead_32(&SPIBSC->CMNCR, SPIBSC_CMNCR_MD_SHIFT, SPIBSC_CMNCR_MD) != SPIBSC_CMNCR_MD_SPI) {
+        if (RegRead_32(&SPIBSC->CMNSR, SPIBSC_CMNSR_SSLF_SHIFT, SPIBSC_CMNSR_SSLF) != SPIBSC_SSL_NEGATE) {
+            return -1;
+        }
+        /* SPI Mode */
+        RegWwrite_32(&SPIBSC->CMNCR, SPIBSC_CMNCR_MD_SPI, SPIBSC_CMNCR_MD_SHIFT, SPIBSC_CMNCR_MD);
+    }
+
+    if (RegRead_32(&SPIBSC->CMNSR, SPIBSC_CMNSR_TEND_SHIFT, SPIBSC_CMNSR_TEND) != SPIBSC_TRANS_END) {
+        return -1;
+    }
+
+    /* ---- Command ---- */
+    /* Enable/Disable */
+    RegWwrite_32(&SPIBSC->SMENR, regset->cde, SPIBSC_SMENR_CDE_SHIFT, SPIBSC_SMENR_CDE);
+    if (regset->cde != SPIBSC_OUTPUT_DISABLE) {
+        /* Command */
+        RegWwrite_32(&SPIBSC->SMCMR, regset->cmd, SPIBSC_SMCMR_CMD_SHIFT, SPIBSC_SMCMR_CMD);
+        /* Single/Dual/Quad */
+        RegWwrite_32(&SPIBSC->SMENR, regset->cdb, SPIBSC_SMENR_CDB_SHIFT, SPIBSC_SMENR_CDB);
+    }
+
+    /* ---- Option Command ---- */
+    /* Enable/Disable */
+    RegWwrite_32(&SPIBSC->SMENR, regset->ocde, SPIBSC_SMENR_OCDE_SHIFT, SPIBSC_SMENR_OCDE);
+    if (regset->ocde != SPIBSC_OUTPUT_DISABLE) {
+        /* Option Command */
+        RegWwrite_32(&SPIBSC->SMCMR, regset->ocmd, SPIBSC_SMCMR_OCMD_SHIFT, SPIBSC_SMCMR_OCMD);
+        /* Single/Dual/Quad */
+        RegWwrite_32(&SPIBSC->SMENR, regset->ocdb, SPIBSC_SMENR_OCDB_SHIFT, SPIBSC_SMENR_OCDB);
+    }
+
+    /* ---- Address ---- */
+    /* Enable/Disable */
+    RegWwrite_32(&SPIBSC->SMENR, regset->ade, SPIBSC_SMENR_ADE_SHIFT, SPIBSC_SMENR_ADE);
+    if (regset->ade != SPIBSC_OUTPUT_DISABLE) {
+        /* Address */
+        RegWwrite_32(&SPIBSC->SMADR, regset->addr, SPIBSC_SMADR_ADR_SHIFT, SPIBSC_SMADR_ADR);
+        /* Single/Dual/Quad */
+        RegWwrite_32(&SPIBSC->SMENR, regset->adb, SPIBSC_SMENR_ADB_SHIFT, SPIBSC_SMENR_ADB);
+    }
+
+    /* ---- Option Data ---- */
+    /* Enable/Disable */
+    RegWwrite_32(&SPIBSC->SMENR, regset->opde, SPIBSC_SMENR_OPDE_SHIFT, SPIBSC_SMENR_OPDE);
+    if (regset->opde != SPIBSC_OUTPUT_DISABLE) {
+        /* Option Data */
+        RegWwrite_32(&SPIBSC->SMOPR, regset->opd[0], SPIBSC_SMOPR_OPD3_SHIFT, SPIBSC_SMOPR_OPD3);
+        RegWwrite_32(&SPIBSC->SMOPR, regset->opd[1], SPIBSC_SMOPR_OPD2_SHIFT, SPIBSC_SMOPR_OPD2);
+        RegWwrite_32(&SPIBSC->SMOPR, regset->opd[2], SPIBSC_SMOPR_OPD1_SHIFT, SPIBSC_SMOPR_OPD1);
+        RegWwrite_32(&SPIBSC->SMOPR, regset->opd[3], SPIBSC_SMOPR_OPD0_SHIFT, SPIBSC_SMOPR_OPD0);
+        /* Single/Dual/Quad */
+        RegWwrite_32(&SPIBSC->SMENR, regset->opdb, SPIBSC_SMENR_OPDB_SHIFT, SPIBSC_SMENR_OPDB);
+    }
+
+    /* ---- Dummy ---- */
+     /* Enable/Disable */
+     RegWwrite_32(&SPIBSC->SMENR, regset->dme, SPIBSC_SMENR_DME_SHIFT, SPIBSC_SMENR_DME);
+     if (regset->dme != SPIBSC_DUMMY_CYC_DISABLE) {
+         RegWwrite_32(&SPIBSC->SMDMCR, regset->dmdb, SPIBSC_SMDMCR_DMDB_SHIFT, SPIBSC_SMDMCR_DMDB);
+         /* Dummy Cycle */
+         RegWwrite_32(&SPIBSC->SMDMCR, regset->dmcyc, SPIBSC_SMDMCR_DMCYC_SHIFT, SPIBSC_SMDMCR_DMCYC);
+     }
+
+    /* ---- Data ---- */
+    /* Enable/Disable */
+    RegWwrite_32(&SPIBSC->SMENR, regset->spide, SPIBSC_SMENR_SPIDE_SHIFT, SPIBSC_SMENR_SPIDE);
+    if (regset->spide != SPIBSC_OUTPUT_DISABLE) {
+        if (SPIBSC_OUTPUT_SPID_8 == regset->spide) {
+            if (RegRead_32(&SPIBSC0.CMNCR, SPIBSC_CMNCR_BSZ_SHIFT, SPIBSC_CMNCR_BSZ) == SPIBSC_CMNCR_BSZ_SINGLE) {
+                SPIBSC->SMWDR0.UINT8[0] = (uint8_t)(regset->smwdr[0]);
+            } else {
+                SPIBSC->SMWDR0.UINT16[0] = (uint16_t)(regset->smwdr[0]);
+            }
+        } else if (regset->spide == SPIBSC_OUTPUT_SPID_16) {
+            if (RegRead_32(&SPIBSC0.CMNCR, SPIBSC_CMNCR_BSZ_SHIFT, SPIBSC_CMNCR_BSZ) == SPIBSC_CMNCR_BSZ_SINGLE) {
+                SPIBSC->SMWDR0.UINT16[0] = (uint16_t)(regset->smwdr[0]);
+            } else {
+                SPIBSC->SMWDR0.UINT32 = regset->smwdr[0];
+            }
+        } else if (regset->spide == SPIBSC_OUTPUT_SPID_32) {
+            if (RegRead_32(&SPIBSC0.CMNCR, SPIBSC_CMNCR_BSZ_SHIFT, SPIBSC_CMNCR_BSZ) == SPIBSC_CMNCR_BSZ_SINGLE) {
+                SPIBSC->SMWDR0.UINT32 = (uint32_t)(regset->smwdr[0]);
+            } else {
+                SPIBSC->SMWDR0.UINT32 = (uint32_t)(regset->smwdr[0]);
+                SPIBSC->SMWDR1.UINT32 = (uint32_t)(regset->smwdr[1]);  /* valid in two serial-flash */
+            }
+        } else {
+            /* none */
+        }
+
+        /* Single/Dual/Quad */
+        RegWwrite_32(&SPIBSC->SMENR, regset->spidb, SPIBSC_SMENR_SPIDB_SHIFT, SPIBSC_SMENR_SPIDB);
+    }
+
+    RegWwrite_32(&SPIBSC->SMCR, regset->sslkp, SPIBSC_SMCR_SSLKP_SHIFT, SPIBSC_SMCR_SSLKP);
+
+    if ((regset->spidb != SPIBSC_1BIT) && (regset->spide != SPIBSC_OUTPUT_DISABLE)) {
+        if ((regset->spire == SPIBSC_SPIDATA_ENABLE) && (regset->spiwe == SPIBSC_SPIDATA_ENABLE)) {
+            /* not set in same time */
+            return -1;
+        }
+    }
+
+    RegWwrite_32(&SPIBSC->SMCR, regset->spire, SPIBSC_SMCR_SPIRE_SHIFT, SPIBSC_SMCR_SPIRE);
+    RegWwrite_32(&SPIBSC->SMCR, regset->spiwe, SPIBSC_SMCR_SPIWE_SHIFT, SPIBSC_SMCR_SPIWE);
+
+    /* SDR Transmission/DDR Transmission Setting */
+    RegWwrite_32(&SPIBSC->SMDRENR, regset->addre, SPIBSC_SMDRENR_ADDRE_SHIFT, SPIBSC_SMDRENR_ADDRE);
+    RegWwrite_32(&SPIBSC->SMDRENR, regset->opdre, SPIBSC_SMDRENR_OPDRE_SHIFT, SPIBSC_SMDRENR_OPDRE);
+    RegWwrite_32(&SPIBSC->SMDRENR, regset->spidre, SPIBSC_SMDRENR_SPIDRE_SHIFT, SPIBSC_SMDRENR_SPIDRE);
+
+    /* execute after setting SPNDL bit */
+    RegWwrite_32(&SPIBSC->SMCR, SPIBSC_SPI_ENABLE, SPIBSC_SMCR_SPIE_SHIFT, SPIBSC_SMCR_SPIE);
+
+    /* wait for transfer-start */
+    while (RegRead_32(&SPIBSC->CMNSR, SPIBSC_CMNSR_TEND_SHIFT, SPIBSC_CMNSR_TEND) != SPIBSC_TRANS_END) {
+        /* wait for transfer-end */
+    }
+
+    if (SPIBSC_OUTPUT_SPID_8 == regset->spide) {
+        if (RegRead_32(&SPIBSC0.CMNCR, SPIBSC_CMNCR_BSZ_SHIFT, SPIBSC_CMNCR_BSZ) == SPIBSC_CMNCR_BSZ_SINGLE) {
+            regset->smrdr[0] = SPIBSC->SMRDR0.UINT8[0];
+        } else {
+            regset->smrdr[0] = SPIBSC->SMRDR0.UINT16[0];        /* valid in two serial-flash  */
+        }
+    } else if (regset->spide == SPIBSC_OUTPUT_SPID_16) {
+        if (RegRead_32(&SPIBSC0.CMNCR, SPIBSC_CMNCR_BSZ_SHIFT, SPIBSC_CMNCR_BSZ) == SPIBSC_CMNCR_BSZ_SINGLE) {
+            regset->smrdr[0] = SPIBSC->SMRDR0.UINT16[0];
+        } else {
+            regset->smrdr[0] = SPIBSC->SMRDR0.UINT32;           /* valid in two serial-flash  */
+        }
+    } else if (regset->spide == SPIBSC_OUTPUT_SPID_32) {
+        if (RegRead_32(&SPIBSC0.CMNCR, SPIBSC_CMNCR_BSZ_SHIFT, SPIBSC_CMNCR_BSZ) == SPIBSC_CMNCR_BSZ_SINGLE) {
+            regset->smrdr[0] = SPIBSC->SMRDR0.UINT32;
+        } else {
+            regset->smrdr[0] = SPIBSC->SMRDR0.UINT32;           /* valid in two serial-flash  */
+            regset->smrdr[1] = SPIBSC->SMRDR1.UINT32;
+        }
+    } else {
+        /* none */
+    }
+
+    return 0;
+}
+
+static uint32_t RegRead_32(volatile uint32_t * ioreg, uint32_t shift, uint32_t mask)
+{
+    uint32_t reg_value;
+
+    reg_value = *ioreg;                        /* Read from register            */
+    reg_value = (reg_value & mask) >> shift;   /* Clear other bit and Bit shift */
+
+    return reg_value;
+}
+
+static void RegWwrite_32(volatile uint32_t * ioreg, uint32_t write_value, uint32_t shift, uint32_t mask)
+{
+    uint32_t reg_value;
+
+    reg_value = *ioreg;                                         /* Read from register */
+    reg_value = (reg_value & (~mask)) | (write_value << shift); /* Modify value       */
+    *ioreg    = reg_value;                                      /* Write to register  */
+}
+
+static void change_mmu_ttbl_spibsc(uint32_t type)
+{
+    uint32_t index;               /* Loop variable: table index */
+    mmu_ttbl_desc_section_t desc; /* Loop variable: descriptor */
+    mmu_ttbl_desc_section_t * table = (mmu_ttbl_desc_section_t *)TTB;
+
+    /* ==== Modify SPI Multi-I/O bus space settings in the MMU translation table ==== */
+    for (index = (SPIBSC_ADDR_START >> 20); index <= (SPIBSC_ADDR_END >> 20); index++) {
+        /* Modify memory attribute descriptor */
+        if (type == 0) {         /* Spi */
+            desc = table[index];
+            desc_tbl[index - (SPIBSC_ADDR_START >> 20)] = desc;
+            desc.AP1_0 = 0x0u;   /* AP[2:0] = b'000 (No access) */
+            desc.AP2   = 0x0u;
+            desc.XN    = 0x1u;   /* XN = 1 (Execute never) */
+        } else {                 /* Xip */
+            desc = desc_tbl[index - (SPIBSC_ADDR_START >> 20)];
+        }
+        /* Write descriptor back to translation table */
+        table[index] = desc;
+    }
+}
+
+static void spibsc_stop(void)
+{
+    if (((SPIBSC->DRCR & SPIBSC_DRCR_RBE)  != 0) &&
+        ((SPIBSC->DRCR & SPIBSC_DRCR_SSLE) != 0)) {
+        RegWwrite_32(&SPIBSC->DRCR, 1, SPIBSC_DRCR_SSLN_SHIFT, SPIBSC_DRCR_SSLN);
+    }
+
+    while (RegRead_32(&SPIBSC->CMNSR, SPIBSC_CMNSR_SSLF_SHIFT, SPIBSC_CMNSR_SSLF) != SPIBSC_SSL_NEGATE) {
+        ;
+    }
+
+    while (RegRead_32(&SPIBSC->CMNSR, SPIBSC_CMNSR_TEND_SHIFT, SPIBSC_CMNSR_TEND) != SPIBSC_TRANS_END) {
+        ;
+    }
+}
+
+static void cache_control(void)
+{
+    unsigned int assoc;
+
+    /* ==== Cleaning and invalidation of the L1 data cache ==== */
+    L1C_CleanInvalidateDCacheAll();
+    __DSB();
+
+    /* ==== Cleaning and invalidation of the L2 cache ==== */
+    if (L2C_310->AUX_CNT & (1U << 16U)) {
+        assoc = 16U;
+    } else {
+        assoc =  8U;
+    }
+    L2C_310->CLEAN_INV_WAY = (1U << assoc) - 1U;
+    while (L2C_310->CLEAN_INV_WAY & ((1U << assoc) - 1U)); // poll invalidate
+    L2C_310->CACHE_SYNC = 0x0;
+
+    /* ==== Invalidate all TLB entries ==== */
+    __set_TLBIALL(0);
+    __DSB();     // ensure completion of the invalidation
+    __ISB();     // ensure instruction fetch path sees new state
+
+    /* ==== Invalidate the L1 instruction cache ==== */
+    __set_ICIALLU(0);
+    __DSB();     // ensure completion of the invalidation
+    __ISB();     // ensure instruction fetch path sees new I cache state
+}
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_addrdefine.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_addrdefine.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_addrdefine.h	(revision 429)
@@ -0,0 +1,22 @@
+#ifndef __GPIO_ADDRDEFINE__
+#define __GPIO_ADDRDEFINE__
+
+#define GPIO_BASE  ((long)0xFCFE3000uL) /* GPIO */
+
+#define PORT(n)    (volatile unsigned short *)(GPIO_BASE + 0x000 + ((n)*4))
+#define PSR(n)     (volatile unsigned  long *)(GPIO_BASE + 0x100 + ((n)*4))
+#define PPR(n)     (volatile unsigned short *)(GPIO_BASE + 0x200 + ((n)*4))
+#define PM(n)      (volatile unsigned short *)(GPIO_BASE + 0x300 + ((n)*4))
+#define PMC(n)     (volatile unsigned short *)(GPIO_BASE + 0x400 + ((n)*4))
+#define PFC(n)     (volatile unsigned short *)(GPIO_BASE + 0x500 + ((n)*4))
+#define PFCE(n)    (volatile unsigned short *)(GPIO_BASE + 0x600 + ((n)*4))
+#define PNOT(n)    (volatile unsigned short *)(GPIO_BASE + 0x700 + ((n)*4))
+#define PMSR(n)    (volatile unsigned  long *)(GPIO_BASE + 0x800 + ((n)*4))
+#define PMCSR(n)   (volatile unsigned  long *)(GPIO_BASE + 0x900 + ((n)*4))
+#define PFCAE(n)   (volatile unsigned short *)(GPIO_BASE + 0xa00 + ((n)*4))
+#define PIBC(n)    (volatile unsigned short *)(GPIO_BASE + 0x4000 +((n)*4))
+#define PBDC(n)    (volatile unsigned short *)(GPIO_BASE + 0x4100 +((n)*4))
+#define PIPC(n)    (volatile unsigned short *)(GPIO_BASE + 0x4200 +((n)*4))
+
+#endif/*__GPIO_ADDRDEFINE__*/
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_api.c	(revision 429)
@@ -0,0 +1,58 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "gpio_api.h"
+#include "pinmap.h"
+#include "gpio_addrdefine.h"
+#include "mbed_drv_cfg.h"
+
+
+uint32_t gpio_set(PinName pin) {
+    pin_function(pin, 0);
+    return (1 << PINNO(pin));
+}
+
+void gpio_init(gpio_t *obj, PinName pin) {
+    int group ;
+    obj->pin = pin;
+    if(pin == NC) return;
+    
+    obj->mask = gpio_set(pin);
+
+    group = PINGROUP(pin);
+    if (group > GPIO_GROUP_MAX) return;
+
+    obj->reg_set = (volatile uint32_t *) PSR(group);
+    obj->reg_in  = (volatile uint32_t *) PPR(group);
+    obj->reg_dir = (volatile uint32_t *)PMSR(group);
+    obj->reg_buf = (volatile uint32_t *)PIBC(group);
+}
+
+void gpio_mode(gpio_t *obj, PinMode mode) {
+/* Pull up and Pull down settings aren't supported because RZ/A1H doesn't have pull up/down for pins(signals). */
+}
+
+void gpio_dir(gpio_t *obj, PinDirection direction) {
+    switch (direction) {
+        case PIN_INPUT :
+            *obj->reg_dir = (obj->mask << 16) | obj->mask;
+            *obj->reg_buf |=  obj->mask;
+            break;
+        case PIN_OUTPUT:
+            *obj->reg_dir = (obj->mask << 16) | 0;
+            *obj->reg_buf &= ~obj->mask;
+            break;
+    }
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_irq_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_irq_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_irq_api.c	(revision 429)
@@ -0,0 +1,189 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <stddef.h>
+
+#include "gpio_irq_api.h"
+#include "iodefine.h"
+#include "PeripheralPins.h"
+#include "cmsis.h"
+#include "gpio_addrdefine.h"
+
+#define CHANNEL_NUM     8
+
+static void gpio_irq0(void);
+static void gpio_irq1(void);
+static void gpio_irq2(void);
+static void gpio_irq3(void);
+static void gpio_irq4(void);
+static void gpio_irq5(void);
+static void gpio_irq6(void);
+static void gpio_irq7(void);
+
+static gpio_irq_t *channel_obj[CHANNEL_NUM] = {NULL};
+static gpio_irq_handler irq_handler;
+static const int nIRQn_h = 32;
+extern PinName gpio_multi_guard;
+
+static const IRQHandler irq_tbl[CHANNEL_NUM] = {
+    &gpio_irq0,
+    &gpio_irq1,
+    &gpio_irq2,
+    &gpio_irq3,
+    &gpio_irq4,
+    &gpio_irq5,
+    &gpio_irq6,
+    &gpio_irq7,
+};
+
+static void handle_interrupt_in(int irq_num) {
+    uint16_t irqs;
+    uint16_t edge_req;
+    gpio_irq_t *obj;
+    gpio_irq_event irq_event;
+
+    irqs = INTCIRQRR;
+    if (irqs & (1 << irq_num)) {
+        obj = channel_obj[irq_num];
+        if (obj != NULL) {
+            edge_req = ((INTCICR1 >> (obj->ch * 2)) & 3);
+            if (edge_req == 1) {
+                irq_event = IRQ_FALL;
+            } else if (edge_req == 2) {
+                irq_event = IRQ_RISE;
+            } else {
+                uint32_t      mask    = (1 << (obj->pin & 0x0F));
+                __I  uint32_t *reg_in = (volatile uint32_t *) PPR((int)PINGROUP(obj->pin));
+
+                if ((*reg_in & mask) == 0) {
+                    irq_event = IRQ_FALL;
+                } else {
+                    irq_event = IRQ_RISE;
+                }
+	        }
+            irq_handler(obj->port, irq_event);
+        }
+        INTCIRQRR &= ~(1 << irq_num);
+    }
+}
+
+static void gpio_irq0(void) {
+    handle_interrupt_in(0);
+}
+
+static void gpio_irq1(void) {
+    handle_interrupt_in(1);
+}
+
+static void gpio_irq2(void) {
+    handle_interrupt_in(2);
+}
+
+static void gpio_irq3(void) {
+    handle_interrupt_in(3);
+}
+
+static void gpio_irq4(void) {
+    handle_interrupt_in(4);
+}
+
+static void gpio_irq5(void) {
+    handle_interrupt_in(5);
+}
+
+static void gpio_irq6(void) {
+    handle_interrupt_in(6);
+}
+
+static void gpio_irq7(void) {
+    handle_interrupt_in(7);
+}
+
+int gpio_irq_init(gpio_irq_t *obj, PinName pin, gpio_irq_handler handler, uint32_t id) {
+    int shift;
+    if (pin == NC) return -1;
+
+    obj->ch = pinmap_peripheral(pin, PinMap_IRQ);
+    obj->pin = (int)pin ;
+    obj->port = (int)id ;
+
+    shift = obj->ch*2;
+    channel_obj[obj->ch] = obj;
+    irq_handler = handler;
+    
+    pinmap_pinout(pin, PinMap_IRQ);
+    gpio_multi_guard = pin;           /* Set multi guard */
+
+    // INTC settings
+    InterruptHandlerRegister((IRQn_Type)(nIRQn_h+obj->ch), (void (*)(uint32_t))irq_tbl[obj->ch]);
+    INTCICR1 &= ~(0x3 << shift);
+    GIC_SetPriority((IRQn_Type)(nIRQn_h+obj->ch), 5);
+    GIC_SetConfiguration((IRQn_Type)(nIRQn_h + obj->ch), 1);
+    obj->int_enable = 1;
+    __enable_irq();
+
+    return 0;
+}
+
+void gpio_irq_free(gpio_irq_t *obj) {
+    channel_obj[obj->ch] = NULL;
+}
+
+void gpio_irq_set(gpio_irq_t *obj, gpio_irq_event event, uint32_t enable) {
+    int shift = obj->ch*2;
+    uint16_t val = event == IRQ_RISE ? 2 : 
+                   event == IRQ_FALL ? 1 : 0;
+    uint16_t work_icr_val;
+
+    /* check edge interrupt setting */
+    work_icr_val = INTCICR1;
+    if (enable == 1) {
+        /* Set interrupt serect */
+        work_icr_val |=  (val << shift);
+    } else {
+        /* Clear interrupt serect */
+        work_icr_val &= ~(val << shift);
+    }
+
+    if ((work_icr_val & (3 << shift)) == 0) {
+        /* No edge interrupt setting */
+        GIC_DisableIRQ((IRQn_Type)(nIRQn_h+obj->ch));
+        /* Clear Interrupt flags */
+        INTCIRQRR &= ~(1 << obj->ch);
+        INTCICR1  = work_icr_val;
+    } else if (obj->int_enable == 1) {
+        INTCICR1  = work_icr_val;
+        GIC_EnableIRQ((IRQn_Type)(nIRQn_h + obj->ch));
+    } else {
+        INTCICR1  = work_icr_val;
+    }
+}
+
+void gpio_irq_enable(gpio_irq_t *obj) {
+    int shift = obj->ch*2;
+    uint16_t work_icr_val = INTCICR1;
+
+    /* check edge interrupt setting */
+    if ((work_icr_val & (3 << shift)) != 0) {
+        GIC_EnableIRQ((IRQn_Type)(nIRQn_h + obj->ch));
+    }
+    obj->int_enable = 1;
+}
+
+void gpio_irq_disable(gpio_irq_t *obj) {
+    GIC_DisableIRQ((IRQn_Type)(nIRQn_h + obj->ch));
+    obj->int_enable = 0;
+}
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_object.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_object.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/gpio_object.h	(revision 429)
@@ -0,0 +1,51 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_GPIO_OBJECT_H
+#define MBED_GPIO_OBJECT_H
+
+#include "platform/mbed_assert.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+    PinName  pin;
+    uint32_t mask;
+
+    __IO uint32_t *reg_dir;
+    __IO uint32_t *reg_set;
+    __I  uint32_t *reg_in;
+    __IO uint32_t *reg_buf;
+} gpio_t;
+
+static inline void gpio_write(gpio_t *obj, int value) {
+    *obj->reg_set = (obj->mask << 16) | ((value != 0) ? obj->mask : 0);
+}
+
+static inline int gpio_read(gpio_t *obj) {
+    return ((*obj->reg_in & obj->mask) ? 1 : 0);
+}
+
+static inline int gpio_is_connected(const gpio_t *obj) {
+    return obj->pin != (PinName)NC;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/i2c_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/i2c_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/i2c_api.c	(revision 429)
@@ -0,0 +1,1137 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "mbed_assert.h"
+#include "dma_api.h"
+#include "i2c_api.h"
+#include "cmsis.h"
+#include "PeripheralPins.h"
+#include "r_typedefs.h"
+
+#include "iodefine.h"
+#include "RZ_A1_Init.h"
+
+volatile struct st_riic *RIIC[] = RIIC_ADDRESS_LIST;
+
+#define REG(N) \
+    RIIC[obj->i2c.i2c]->RIICn##N
+
+/* RIICnCR1 */
+#define CR1_RST   (1 << 6)
+#define CR1_ICE   (1 << 7)
+
+/* RIICnCR2 */
+#define CR2_ST    (1 << 1)
+#define CR2_RS    (1 << 2)
+#define CR2_SP    (1 << 3)
+#define CR2_TRS   (1 << 5)
+#define CR2_BBSY  (1 << 7)
+
+/* RIICnMR3 */
+#define MR3_ACKBT (1 << 3)
+#define MR3_ACKWP (1 << 4)
+#define MR3_WAIT  (1 << 6)
+
+/* RIICnSER */
+#define SER_SAR0E (1 << 0)
+
+/* RIICnSR1 */
+#define SR1_AAS0  (1 << 0)
+
+/* RIICnSR2 */
+#define SR2_START (1 << 2)
+#define SR2_STOP  (1 << 3)
+#define SR2_NACKF (1 << 4)
+#define SR2_RDRF  (1 << 5)
+#define SR2_TEND  (1 << 6)
+#define SR2_TDRE  (1 << 7)
+
+#define WAIT_TIMEOUT    (3600000)  /* Loop counter : Time-out is about 1s. By 3600000 loops, measured value is 969ms. */
+
+static inline int i2c_status(i2c_t *obj) {
+    return REG(SR2.UINT8[0]);
+}
+
+static void i2c_reg_reset(i2c_t *obj) {
+    /* full reset */
+    REG(CR1.UINT8[0]) &= ~CR1_ICE; // CR1.ICE off
+    REG(CR1.UINT8[0]) |=  CR1_RST; // CR1.IICRST on
+    REG(CR1.UINT8[0]) |=  CR1_ICE; // CR1.ICE on
+
+    REG(MR1.UINT8[0])  =  0x08;    // P_phi /x  9bit (including Ack)
+    REG(SER.UINT8[0])  =  0x00;    // no slave addr enabled
+
+    /* set frequency */
+    REG(MR1.UINT8[0]) |=  obj->i2c.pclk_bit;
+    REG(BRL.UINT8[0])  =  obj->i2c.width_low;
+    REG(BRH.UINT8[0])  =  obj->i2c.width_hi;
+
+    REG(MR2.UINT8[0])  =  0x07;
+    REG(MR3.UINT8[0])  =  0x00;
+
+    REG(FER.UINT8[0])  =  0x72;    // SCLE, NFE enabled, TMOT
+    REG(IER.UINT8[0])  =  0x00;    // no interrupt
+
+    REG(CR1.UINT32) &= ~CR1_RST;   // CR1.IICRST negate reset
+}
+
+static inline int i2c_wait_RDRF(i2c_t *obj) {
+    int timeout = 0;
+    
+    /* There is no timeout, but the upper limit value is set to avoid an infinite loop. */
+    while ((i2c_status(obj) & SR2_RDRF) == 0) {
+        timeout ++;
+        if (timeout >= WAIT_TIMEOUT) {
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+static int i2c_wait_TDRE(i2c_t *obj) {
+    int timeout = 0;
+
+    /* There is no timeout, but the upper limit value is set to avoid an infinite loop. */
+    while ((i2c_status(obj) & SR2_TDRE) == 0) {
+        timeout ++;
+        if (timeout >= WAIT_TIMEOUT) {
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+static int i2c_wait_TEND(i2c_t *obj) {
+    int timeout = 0;
+    
+    /* There is no timeout, but the upper limit value is set to avoid an infinite loop. */
+    while ((i2c_status(obj) & SR2_TEND) == 0) {
+        timeout ++;
+        if (timeout >= WAIT_TIMEOUT) {
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+
+static int i2c_wait_START(i2c_t *obj) {
+    int timeout = 0;
+    
+    /* There is no timeout, but the upper limit value is set to avoid an infinite loop. */
+    while ((i2c_status(obj) & SR2_START) == 0) {
+        timeout ++;
+        if (timeout >= WAIT_TIMEOUT) {
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+static int i2c_wait_STOP(i2c_t *obj) {
+    int timeout = 0;
+    
+    /* There is no timeout, but the upper limit value is set to avoid an infinite loop. */
+    while ((i2c_status(obj) & SR2_STOP) == 0) {
+        timeout ++;
+        if (timeout >= WAIT_TIMEOUT) {
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+static int i2c_set_STOP(i2c_t *obj) {
+    /* SR2.STOP = 0 */
+    REG(SR2.UINT32) &= ~SR2_STOP;
+    /* Stop condition */
+    REG(CR2.UINT32) |= CR2_SP;
+
+    return 0;
+}
+
+static void i2c_set_SR2_NACKF_STOP(i2c_t *obj) {
+    /* SR2.NACKF = 0 */
+    REG(SR2.UINT32) &= ~SR2_NACKF;
+    /* SR2.STOP = 0 */
+    REG(SR2.UINT32) &= ~SR2_STOP;
+}
+
+static void i2c_set_MR3_NACK(i2c_t *obj) {
+    /* send a NOT ACK */
+    REG(MR3.UINT32) |=  MR3_ACKWP;
+    REG(MR3.UINT32) |=  MR3_ACKBT;
+    REG(MR3.UINT32) &= ~MR3_ACKWP;
+}
+
+static void i2c_set_MR3_ACK(i2c_t *obj) {
+    /* send a ACK */
+    REG(MR3.UINT32) |=  MR3_ACKWP;
+    REG(MR3.UINT32) &= ~MR3_ACKBT;
+    REG(MR3.UINT32) &= ~MR3_ACKWP;
+}
+
+static inline void i2c_power_enable(i2c_t *obj) {
+    volatile uint8_t dummy;
+    switch ((int)obj->i2c.i2c) {
+        case I2C_0:
+            CPGSTBCR9 &= ~(0x80);
+            break;
+        case I2C_1:
+            CPGSTBCR9 &= ~(0x40);
+            break;
+        case I2C_2:
+            CPGSTBCR9 &= ~(0x20);
+            break;
+        case I2C_3:
+            CPGSTBCR9 &= ~(0x10);
+            break;
+    }
+    dummy = CPGSTBCR9;
+    (void)dummy;
+}
+
+void i2c_init(i2c_t *obj, PinName sda, PinName scl) {
+    /* determine the I2C to use */
+    I2CName i2c_sda = (I2CName)pinmap_peripheral(sda, PinMap_I2C_SDA);
+    I2CName i2c_scl = (I2CName)pinmap_peripheral(scl, PinMap_I2C_SCL);
+    obj->i2c.i2c = pinmap_merge(i2c_sda, i2c_scl);
+    MBED_ASSERT((int)obj->i2c.i2c != NC);
+
+    /* enable power */
+    i2c_power_enable(obj);
+
+    /* set default frequency at 100k */
+    i2c_frequency(obj, 100000);
+
+    pinmap_pinout(sda, PinMap_I2C_SDA);
+    pinmap_pinout(scl, PinMap_I2C_SCL);
+    
+    obj->i2c.last_stop_flag = 1;
+}
+
+inline int i2c_start(i2c_t *obj) {
+    int timeout = 0;
+
+    while ((REG(CR2.UINT32) & CR2_BBSY) != 0) {
+        timeout ++;
+        if (timeout >= obj->i2c.bbsy_wait_cnt) {
+            break;
+        }
+    }
+    /* Start Condition */
+    REG(CR2.UINT8[0]) |= CR2_ST;
+
+    return 0;
+}
+
+static inline int i2c_restart(i2c_t *obj) {
+    /* SR2.START = 0 */
+    REG(SR2.UINT32) &= ~SR2_START;
+    /* ReStart condition */
+    REG(CR2.UINT32) |= CR2_RS;
+
+    return 0;
+}
+
+inline int i2c_stop(i2c_t *obj) {
+    (void)i2c_set_STOP(obj);
+    (void)i2c_wait_STOP(obj);
+    i2c_set_SR2_NACKF_STOP(obj);
+    
+    return 0;
+}
+
+static void i2c_set_err_noslave(i2c_t *obj) {
+    (void)i2c_set_STOP(obj);
+    (void)i2c_wait_STOP(obj);
+    i2c_set_SR2_NACKF_STOP(obj);
+    obj->i2c.last_stop_flag = 1;
+}
+
+static inline int i2c_do_write(i2c_t *obj, int value) {
+    int timeout = 0;
+
+    /* There is no timeout, but the upper limit value is set to avoid an infinite loop. */
+    while ((i2c_status(obj) & SR2_TDRE) == 0) {
+        timeout ++;
+        if (timeout >= WAIT_TIMEOUT) {
+            return -1;
+        }
+    }
+    /* write the data */
+    REG(DRT.UINT32) = value;
+
+    return 0;
+}
+
+static inline int i2c_read_address_write(i2c_t *obj, int value) {
+    int status;
+    
+    status = i2c_wait_TDRE(obj);
+    if (status == 0) {
+        /* write the data */
+        REG(DRT.UINT32) = value;
+    }
+    
+    return status;
+
+}
+
+static inline int i2c_do_read(i2c_t *obj, int last) {
+    if (last == 2) {
+        /* this time is befor last byte read */
+        /* Set MR3 WAIT bit is 1 */;
+        REG(MR3.UINT32) |= MR3_WAIT;
+    } else if (last == 1) {
+        i2c_set_MR3_NACK(obj);
+    } else {
+        i2c_set_MR3_ACK(obj);
+    }
+
+    /* return the data */
+    return (REG(DRR.UINT32) & 0xFF);
+}
+
+void i2c_frequency(i2c_t *obj, int hz) {
+    float64_t pclk_val;
+    float64_t wait_utime;
+    volatile float64_t bps;
+    volatile float64_t L_time;         /* H Width period */
+    volatile float64_t H_time;         /* L Width period */
+    uint32_t tmp_L_width;
+    uint32_t tmp_H_width;
+    uint32_t remainder;
+    uint32_t wk_cks = 0;
+
+    /* set PCLK */
+    if (false == RZ_A1_IsClockMode0()) {
+        pclk_val = (float64_t)CM1_RENESAS_RZ_A1_P0_CLK;
+    } else {
+        pclk_val = (float64_t)CM0_RENESAS_RZ_A1_P0_CLK;
+    }
+
+    /* Min 10kHz, Max 400kHz */
+    if (hz < 10000) {
+        bps = 10000;
+    } else if (hz > 400000) {
+        bps = 400000;
+    } else {
+        bps = (float64_t)hz;
+    }
+
+    /* Calculation L width time */
+    L_time = (1 / (2 * bps));   /* Harf period of frequency */
+    H_time = L_time;
+
+    /* Check I2C mode of Speed */
+    if (bps > 100000) {
+        /* Fast-mode */
+        L_time -= 102E-9;    /* Falling time of SCL clock. */
+        H_time -= 138E-9;    /* Rising time of SCL clock. */
+        /* Check L wideth */
+        if (L_time < 1.3E-6) {
+            /* Wnen L width less than 1.3us */
+            /* Subtract Rise up and down time for SCL from H/L width */
+            L_time = 1.3E-6;
+            H_time = (1 / bps) - L_time - 138E-9 - 102E-9;
+        }
+    }
+
+    tmp_L_width   = (uint32_t)(L_time * pclk_val * 10);
+    tmp_L_width >>= 1;
+    wk_cks++;
+    while (tmp_L_width >= 341) {
+        tmp_L_width >>= 1;
+        wk_cks++;
+    }
+    remainder   = tmp_L_width % 10;
+    tmp_L_width = ((tmp_L_width + 9) / 10) - 3;       /* carry */
+
+    tmp_H_width   = (uint32_t)(H_time * pclk_val * 10);
+    tmp_H_width >>= wk_cks;
+    if (remainder == 0) {
+        tmp_H_width   = ((tmp_H_width + 9) / 10) - 3; /* carry */
+    } else {
+        remainder    += tmp_H_width % 10;
+        tmp_H_width   = (tmp_H_width / 10) - 3;
+        if (remainder > 10) {
+            tmp_H_width += 1;                         /* fine adjustment */
+        }
+    }
+    /* timeout of BBSY bit is minimum low width by frequency */
+    /* so timeout calculates "(low width) * 2" by frequency */
+    wait_utime = (L_time * 2) * 1000000;
+    /* 1 wait of BBSY bit is about 0.3us. if it's below 0.3us, wait count is set as 1. */
+    if (wait_utime <= 0.3) {
+        obj->i2c.bbsy_wait_cnt = 1;
+    } else {
+        obj->i2c.bbsy_wait_cnt = (int)(wait_utime / 0.3);
+    }
+
+
+    /* I2C Rate */
+    obj->i2c.pclk_bit  = (uint8_t)(0x10 * wk_cks);        /* P_phi / xx */
+    obj->i2c.width_low = (uint8_t)(tmp_L_width | 0x000000E0);
+    obj->i2c.width_hi  = (uint8_t)(tmp_H_width | 0x000000E0);
+
+    /* full reset */
+    i2c_reg_reset(obj);
+}
+
+int i2c_read(i2c_t *obj, int address, char *data, int length, int stop) {
+    int count = 0;
+    int status;
+    int value;
+
+    i2c_set_MR3_ACK(obj);
+    /* There is a STOP condition for last processing */
+    if (obj->i2c.last_stop_flag != 0) {
+        status = i2c_start(obj);
+        if (status != 0) {
+            i2c_set_err_noslave(obj);
+            return I2C_ERROR_BUS_BUSY;
+        }
+    }
+    obj->i2c.last_stop_flag = stop;
+    /*  Send Slave address */
+    status = i2c_read_address_write(obj, (address | 0x01));
+    if (status != 0) {
+        i2c_set_err_noslave(obj);
+        return I2C_ERROR_NO_SLAVE;
+    }
+    /* wait RDRF */
+    status = i2c_wait_RDRF(obj);
+    /* check ACK/NACK */
+    if ((status != 0) || ((REG(SR2.UINT32) & SR2_NACKF) != 0)) {
+        /* Slave sends NACK */
+        (void)i2c_set_STOP(obj);
+        /* dummy read */
+        value = REG(DRR.UINT32);
+        (void)i2c_wait_STOP(obj);
+        i2c_set_SR2_NACKF_STOP(obj);
+        obj->i2c.last_stop_flag = 1;
+        return I2C_ERROR_NO_SLAVE;
+    }
+    if (length != 0) {
+        /* Read in all except last byte */
+        if (length > 2) {
+            /* dummy read */
+            value = REG(DRR.UINT32);
+            for (count = 0; count < (length - 1); count++) {
+                /* wait for it to arrive */
+                status = i2c_wait_RDRF(obj);
+                if (status != 0) {
+                    i2c_set_err_noslave(obj);
+                    return I2C_ERROR_NO_SLAVE;
+                }
+                /* Recieve the data */
+                if (count == (length - 2)) {
+                    value = i2c_do_read(obj, 1);
+                } else if ((length >= 3) && (count == (length - 3))) {
+                    value = i2c_do_read(obj, 2);
+                } else {
+                    value = i2c_do_read(obj, 0);
+                }
+                data[count] = (char)value;
+            }
+        } else if (length == 2) {
+            /* Set MR3 WAIT bit is 1 */
+            REG(MR3.UINT32) |= MR3_WAIT;
+            /* dummy read */
+            value = REG(DRR.UINT32);
+            /* wait for it to arrive */
+            status = i2c_wait_RDRF(obj);
+            if (status != 0) {
+                i2c_set_err_noslave(obj);
+                return I2C_ERROR_NO_SLAVE;
+            }
+            i2c_set_MR3_NACK(obj);
+            data[count] = (char)REG(DRR.UINT32);
+            count++;
+        } else {
+            /* length == 1 */
+            /* Set MR3 WAIT bit is 1 */;
+            REG(MR3.UINT32) |=  MR3_WAIT;
+            i2c_set_MR3_NACK(obj);
+            /* dummy read */
+            value = REG(DRR.UINT32);
+        }
+        /* wait for it to arrive */
+        status = i2c_wait_RDRF(obj);
+        if (status != 0) {
+            i2c_set_err_noslave(obj);
+            return I2C_ERROR_NO_SLAVE;
+        }
+
+        /* If not repeated start, send stop. */
+        if (stop) {
+            (void)i2c_set_STOP(obj);
+            /* RIICnDRR read */
+            value = (REG(DRR.UINT32) & 0xFF);
+            data[count] = (char)value;
+            /* RIICnMR3.WAIT = 0 */
+            REG(MR3.UINT32) &= ~MR3_WAIT;
+            (void)i2c_wait_STOP(obj);
+            i2c_set_SR2_NACKF_STOP(obj);
+        } else {
+            (void)i2c_restart(obj);
+            /* RIICnDRR read */
+            value = (REG(DRR.UINT32) & 0xFF);
+            data[count] = (char)value;
+            /* RIICnMR3.WAIT = 0 */
+            REG(MR3.UINT32) &= ~MR3_WAIT;
+            (void)i2c_wait_START(obj);
+            /* SR2.START = 0 */
+            REG(SR2.UINT32) &= ~SR2_START;
+        }
+    } else {
+        /* If not repeated start, send stop. */
+        if (stop) {
+            (void)i2c_set_STOP(obj);
+            (void)i2c_wait_STOP(obj);
+            i2c_set_SR2_NACKF_STOP(obj);
+        } else {
+            (void)i2c_restart(obj);
+            (void)i2c_wait_START(obj);
+            /* SR2.START = 0 */
+            REG(SR2.UINT32) &= ~SR2_START;
+        }
+    }
+
+    return length;
+}
+
+int i2c_write(i2c_t *obj, int address, const char *data, int length, int stop) {
+    int cnt;
+    int status;
+
+    /* There is a STOP condition for last processing */
+    if (obj->i2c.last_stop_flag != 0) {
+        status = i2c_start(obj);
+        if (status != 0) {
+            i2c_set_err_noslave(obj);
+            return I2C_ERROR_BUS_BUSY;
+        }
+    }
+    obj->i2c.last_stop_flag = stop;
+    /*  Send Slave address */
+    status = i2c_do_write(obj, address);
+    if (status != 0) {
+        i2c_set_err_noslave(obj);
+        return I2C_ERROR_NO_SLAVE;
+    }
+    /* Wait send end */
+    status = i2c_wait_TEND(obj);
+    if ((status != 0) || ((REG(SR2.UINT32) & SR2_NACKF) != 0)) {
+        /* Slave sends NACK */
+        i2c_set_err_noslave(obj);
+        return I2C_ERROR_NO_SLAVE;
+    }
+    /* Send Write data */
+    for (cnt=0; cnt<length; cnt++) {
+        status = i2c_do_write(obj, data[cnt]);
+        if(status != 0) {
+            i2c_set_err_noslave(obj);
+            return cnt;
+        } else {
+            /* Wait send end */
+            status = i2c_wait_TEND(obj);
+            if ((status != 0) || ((REG(SR2.UINT32) & SR2_NACKF) != 0)) {
+                /* Slave sends NACK */
+                i2c_set_err_noslave(obj);
+                return I2C_ERROR_NO_SLAVE;
+            }
+        }
+    }
+    /* If not repeated start, send stop. */
+    if (stop) {
+        (void)i2c_set_STOP(obj);
+        (void)i2c_wait_STOP(obj);
+        i2c_set_SR2_NACKF_STOP(obj);
+    } else {
+        (void)i2c_restart(obj);
+        (void)i2c_wait_START(obj);
+        /* SR2.START = 0 */
+        REG(SR2.UINT32) &= ~SR2_START;
+
+    }
+    
+    return length;
+}
+
+void i2c_reset(i2c_t *obj) {
+    (void)i2c_set_STOP(obj);
+    (void)i2c_wait_STOP(obj);
+    i2c_set_SR2_NACKF_STOP(obj);
+}
+
+int i2c_byte_read(i2c_t *obj, int last) {
+    int status;
+    int data;
+
+    data = i2c_do_read(obj, last);
+    /* wait for it to arrive */
+    status = i2c_wait_RDRF(obj);
+    if (status != 0) {
+        i2c_set_SR2_NACKF_STOP(obj);
+        return I2C_ERROR_NO_SLAVE;
+    }
+    
+    return data;
+}
+
+int i2c_byte_write(i2c_t *obj, int data) {
+    int ack = 0;
+    int status;
+    int timeout = 0;
+    
+    status = i2c_do_write(obj, (data & 0xFF));
+    if (status != 0) {
+        i2c_set_SR2_NACKF_STOP(obj);
+    } else {
+        while (((i2c_status(obj) & SR2_RDRF) == 0) && ((i2c_status(obj) & SR2_TEND) == 0)) {
+            timeout++;
+            if (timeout >= WAIT_TIMEOUT) {
+                return ack;
+            }
+        }
+        /* check ACK/NACK */
+        if ((REG(SR2.UINT32) & SR2_NACKF) != 0) {
+            /* NACK */
+            i2c_set_SR2_NACKF_STOP(obj);
+        } else {
+            ack = 1;
+        }
+    }
+
+    return ack;
+}
+
+void i2c_slave_mode(i2c_t *obj, int enable_slave) {
+    if (enable_slave != 0) {
+        REG(SER.UINT32) |= SER_SAR0E;   // only slave addr 0 is enabled
+    } else {
+        REG(SER.UINT32) &= ~SER_SAR0E;  // no slave addr enabled
+    }
+}
+
+int i2c_slave_receive(i2c_t *obj) {
+    int status;
+    int retval;
+
+    status = (REG(SR1.UINT8[0]) & SR1_AAS0);
+    status |= (REG(CR2.UINT8[0]) & CR2_TRS) >> 4;
+
+    switch(status) {
+        case 0x01:
+            /* the master is writing to this slave */
+            retval = 3;
+            break;
+        case 0x02:
+            /* the master is writing to all slave  */
+            retval = 2;
+            break;
+        case 0x03:
+            /* the master has requested a read from this slave */
+            retval = 1;
+            break;
+        default :
+            /* no data */
+            retval = 0;
+            break;
+    }
+
+    return retval;
+}
+
+int i2c_slave_read(i2c_t *obj, char *data, int length) {
+    int timeout = 0;
+    int count;
+    int break_flg = 0;
+
+    if(length <= 0) {
+        return 0;
+    }
+    for (count = 0; ((count < (length + 1)) && (break_flg == 0)); count++) {
+        /* There is no timeout, but the upper limit value is set to avoid an infinite loop. */
+        while (((i2c_status(obj) & SR2_STOP) != 0) || ((i2c_status(obj) & SR2_RDRF) == 0)) {
+            if ((i2c_status(obj) & SR2_STOP) != 0) {
+                break_flg = 1;
+                break;
+            }
+            timeout ++;
+            if (timeout >= WAIT_TIMEOUT) {
+                return -1;
+            }
+        }
+        if (break_flg == 0) {
+            if (count == 0) {
+                /* dummy read */
+                (void)REG(DRR.UINT32);
+            } else {
+                data[count - 1] = (char)(REG(DRR.UINT32) & 0xFF);
+            }
+        }
+    }
+    if (break_flg == 0) {
+        (void)i2c_wait_STOP(obj);
+    } else {
+        if ((i2c_status(obj) & SR2_RDRF) != 0) {
+            if (count <= 1) {
+                /* fail safe */
+                /* dummy read */
+                (void)REG(DRR.UINT32);
+            } else {
+                data[count - 2] = (char)(REG(DRR.UINT32) & 0xFF);
+            }
+        }
+    }
+    /* SR2.STOP = 0 */
+    REG(SR2.UINT32) &= ~SR2_STOP;
+
+    return (count - 1);
+}
+
+int i2c_slave_write(i2c_t *obj, const char *data, int length) {
+    int count = 0;
+    int status = 0;
+
+    if(length <= 0) {
+        return 0;
+    }
+
+    while ((count < length) && (status == 0)) {
+        status = i2c_do_write(obj, data[count]);
+        if(status == 0) {
+            /* Wait send end */
+            status = i2c_wait_TEND(obj);
+            if ((status != 0) || ((count < (length - 1)) && ((REG(SR2.UINT32) & SR2_NACKF) != 0))) {
+                /* NACK */
+                break;
+            }
+        }
+        count++;
+    }
+    /* dummy read */
+    (void)REG(DRR.UINT32);
+    (void)i2c_wait_STOP(obj);
+    i2c_set_SR2_NACKF_STOP(obj);
+
+    return count;
+}
+
+void i2c_slave_address(i2c_t *obj, int idx, uint32_t address, uint32_t mask) {
+    REG(SAR0.UINT32) = (address & 0xfffffffe);
+}
+
+#if DEVICE_I2C_ASYNCH
+
+#define IRQ_NUM 4
+#define IRQ_TX 0
+#define IRQ_RX 1
+#define IRQ_ERR1 2
+#define IRQ_ERR2 3
+
+static void i2c_irqs_set(i2c_t *obj, uint32_t enable);
+
+static void i2c0_tx_irq(void);
+static void i2c1_tx_irq(void);
+static void i2c2_tx_irq(void);
+static void i2c3_tx_irq(void);
+static void i2c0_rx_irq(void);
+static void i2c1_rx_irq(void);
+static void i2c2_rx_irq(void);
+static void i2c3_rx_irq(void);
+static void i2c0_al_irq(void);
+static void i2c1_al_irq(void);
+static void i2c2_al_irq(void);
+static void i2c3_al_irq(void);
+static void i2c0_to_irq(void);
+static void i2c1_to_irq(void);
+static void i2c2_to_irq(void);
+static void i2c3_to_irq(void);
+
+static const IRQn_Type irq_set_tbl[RIIC_COUNT][IRQ_NUM] = {
+    {INTIICTEI0_IRQn, INTIICRI0_IRQn, INTIICALI0_IRQn, INTIICTMOI0_IRQn},
+    {INTIICTEI1_IRQn, INTIICRI1_IRQn, INTIICALI1_IRQn, INTIICTMOI1_IRQn},
+    {INTIICTEI2_IRQn, INTIICRI2_IRQn, INTIICALI2_IRQn, INTIICTMOI2_IRQn},
+    {INTIICTEI3_IRQn, INTIICRI3_IRQn, INTIICALI3_IRQn, INTIICTMOI3_IRQn},
+};
+
+static const IRQHandler hander_set_tbl[RIIC_COUNT][IRQ_NUM] = {
+    {i2c0_tx_irq, i2c0_rx_irq, i2c0_al_irq, i2c0_to_irq},
+    {i2c1_tx_irq, i2c1_rx_irq, i2c1_al_irq, i2c1_to_irq},
+    {i2c2_tx_irq, i2c2_rx_irq, i2c2_al_irq, i2c2_to_irq},
+    {i2c3_tx_irq, i2c3_rx_irq, i2c3_al_irq, i2c3_to_irq},
+};
+
+struct i2c_global_data_s {
+    i2c_t *async_obj;
+    uint32_t async_callback, event, shouldStop, address;
+};
+
+static struct i2c_global_data_s i2c_data[RIIC_COUNT];
+
+static void i2c_transfer_finished(i2c_t *obj)
+{
+    i2c_irqs_set(obj, 0);
+    uint32_t index = obj->i2c.i2c;
+    i2c_data[index].event = I2C_EVENT_TRANSFER_COMPLETE;
+    i2c_data[index].async_obj = NULL;
+    ((void (*)())i2c_data[index].async_callback)();
+}
+
+static void i2c_tx_irq(IRQn_Type irq_num, uint32_t index)
+{
+    i2c_t *obj = i2c_data[index].async_obj;
+    if ((REG(SR2.UINT32) & SR2_NACKF)) {
+        /* Slave sends NACK */
+        i2c_set_err_noslave(obj);
+        i2c_data[index].event = I2C_EVENT_ERROR | I2C_EVENT_TRANSFER_EARLY_NACK;
+        i2c_abort_asynch(obj);
+        ((void (*)())i2c_data[index].async_callback)();
+        return;
+    }
+    if (obj->tx_buff.pos == obj->tx_buff.length) {
+        /* All datas have tranferred */
+        
+        /* Clear TEND */
+        REG(SR2.UINT32) &= ~(SR2_TEND);
+        
+        /* If not repeated start, send stop. */
+        if (i2c_data[index].shouldStop && obj->rx_buff.length == 0) {
+            (void)i2c_set_STOP(obj);
+            (void)i2c_wait_STOP(obj);
+            i2c_set_SR2_NACKF_STOP(obj);
+            i2c_transfer_finished(obj);
+        } else {
+            (void)i2c_restart(obj);
+            (void)i2c_wait_START(obj);
+            /* SR2.START = 0 */
+            REG(SR2.UINT32) &= ~SR2_START;
+            if (obj->rx_buff.length) {
+                /* Ready to read */
+                i2c_set_MR3_ACK(obj);
+                
+                /* Disable INTRIICTEI */
+                REG(IER.UINT8[0]) &= ~(1 << 6);
+                
+                /*  Send Slave address */
+                if (i2c_read_address_write(obj, (i2c_data[index].address | 0x01)) != 0) {
+                    i2c_set_err_noslave(obj);
+                    i2c_data[index].event = I2C_EVENT_ERROR | I2C_EVENT_ERROR_NO_SLAVE;
+                    i2c_abort_asynch(obj);
+                    ((void (*)())i2c_data[index].async_callback)();
+                    return;
+                }
+            } else {
+                i2c_transfer_finished(obj);
+            }
+        }
+    } else {
+        /* Send next 1 byte */
+        if (i2c_do_write(obj, *(uint8_t *)obj->tx_buff.buffer) != 0) {
+            i2c_set_err_noslave(obj);
+            i2c_data[index].event = I2C_EVENT_ERROR | I2C_EVENT_ERROR_NO_SLAVE;
+            i2c_abort_asynch(obj);
+            ((void (*)())i2c_data[index].async_callback)();
+            return;
+        }
+        obj->tx_buff.buffer = (uint8_t *)obj->tx_buff.buffer + 1;
+        ++obj->tx_buff.pos;
+    }
+}
+
+static void i2c_rx_irq(IRQn_Type irq_num, uint32_t index)
+{
+    i2c_t *obj = i2c_data[index].async_obj;
+    if (obj->rx_buff.pos == SIZE_MAX) {
+        if ((REG(SR2.UINT32) & SR2_NACKF) != 0) {
+            /* Slave sends NACK */
+            (void)i2c_set_STOP(obj);
+            /* dummy read */
+            if (REG(DRR.UINT32)) {}
+            (void)i2c_wait_STOP(obj);
+            i2c_set_SR2_NACKF_STOP(obj);
+            obj->i2c.last_stop_flag = 1;
+            
+            i2c_data[index].event = I2C_EVENT_ERROR | I2C_EVENT_TRANSFER_EARLY_NACK;
+            i2c_abort_asynch(obj);
+            ((void (*)())i2c_data[index].async_callback)();
+            return;
+        }
+        if (obj->rx_buff.length == 1) {
+            /* length == 1 */
+            /* Set MR3 WAIT bit is 1 */;
+            REG(MR3.UINT32) |=  MR3_WAIT;
+            i2c_set_MR3_NACK(obj);
+        } else if (obj->rx_buff.length == 2) {
+            /* Set MR3 WAIT bit is 1 */
+            REG(MR3.UINT32) |= MR3_WAIT;
+        }
+        /* dummy read */
+        if (REG(DRR.UINT32)) {}
+        obj->rx_buff.pos = 0;
+        return;
+    }
+    if ((REG(SR2.UINT32) & SR2_NACKF) != 0) {
+        /* Slave sends NACK */
+        i2c_set_err_noslave(obj);
+        i2c_data[index].event = I2C_EVENT_ERROR | I2C_EVENT_TRANSFER_EARLY_NACK;
+        i2c_abort_asynch(obj);
+        ((void (*)())i2c_data[index].async_callback)();
+        return;
+    } else {
+        switch (obj->rx_buff.length - obj->rx_buff.pos) {
+            case 1:
+                /* Finished */
+                /* If not repeated start, send stop. */
+                if (i2c_data[index].shouldStop) {
+                    (void)i2c_set_STOP(obj);
+                    /* RIICnDRR read */
+                    *(uint8_t *)obj->rx_buff.buffer = REG(DRR.UINT32) & 0xFF;
+                    /* RIICnMR3.WAIT = 0 */
+                    REG(MR3.UINT32) &= ~MR3_WAIT;
+                    (void)i2c_wait_STOP(obj);
+                    i2c_set_SR2_NACKF_STOP(obj);
+                } else {
+                    (void)i2c_restart(obj);
+                    /* RIICnDRR read */
+                    *(uint8_t *)obj->rx_buff.buffer = REG(DRR.UINT32) & 0xFF;
+                    /* RIICnMR3.WAIT = 0 */
+                    REG(MR3.UINT32) &= ~MR3_WAIT;
+                    (void)i2c_wait_START(obj);
+                    /* SR2.START = 0 */
+                    REG(SR2.UINT32) &= ~SR2_START;
+                }
+                
+                i2c_transfer_finished(obj);
+                return;
+                
+            case 2:
+                i2c_set_MR3_NACK(obj);
+                break;
+                
+            case 3:
+                /* this time is befor last byte read */
+                /* Set MR3 WAIT bit is 1 */
+                REG(MR3.UINT32) |= MR3_WAIT;
+                break;
+                
+            default:
+                i2c_set_MR3_ACK(obj);
+                break;
+        }
+        *(uint8_t *)obj->rx_buff.buffer = REG(DRR.UINT32) & 0xFF;
+        obj->rx_buff.buffer = (uint8_t *)obj->rx_buff.buffer + 1;
+        ++obj->rx_buff.pos;
+    }
+}
+
+static void i2c_err_irq(IRQn_Type irq_num, uint32_t index)
+{
+    i2c_t *obj = i2c_data[index].async_obj;
+    i2c_abort_asynch(obj);
+    i2c_data[index].event = I2C_EVENT_ERROR;
+    ((void (*)())i2c_data[index].async_callback)();
+}
+
+/* TX handler */
+static void i2c0_tx_irq(void)
+{
+    i2c_tx_irq(INTIICTEI0_IRQn, 0);
+}
+
+static void i2c1_tx_irq(void)
+{
+    i2c_tx_irq(INTIICTEI1_IRQn, 1);
+}
+
+static void i2c2_tx_irq(void)
+{
+    i2c_tx_irq(INTIICTEI2_IRQn, 2);
+}
+
+static void i2c3_tx_irq(void)
+{
+    i2c_tx_irq(INTIICTEI3_IRQn, 3);
+}
+
+/* RX handler */
+static void i2c0_rx_irq(void)
+{
+    i2c_rx_irq(INTIICRI0_IRQn, 0);
+}
+
+static void i2c1_rx_irq(void)
+{
+    i2c_rx_irq(INTIICRI1_IRQn, 1);
+}
+
+static void i2c2_rx_irq(void)
+{
+    i2c_rx_irq(INTIICRI2_IRQn, 2);
+}
+
+static void i2c3_rx_irq(void)
+{
+    i2c_rx_irq(INTIICRI3_IRQn, 3);
+}
+
+/* Arbitration Lost handler */
+static void i2c0_al_irq(void)
+{
+    i2c_err_irq(INTIICALI0_IRQn, 0);
+}
+
+static void i2c1_al_irq(void)
+{
+    i2c_err_irq(INTIICALI1_IRQn, 1);
+}
+
+static void i2c2_al_irq(void)
+{
+    i2c_err_irq(INTIICALI2_IRQn, 2);
+}
+
+static void i2c3_al_irq(void)
+{
+    i2c_err_irq(INTIICALI3_IRQn, 3);
+}
+
+/* Timeout handler */
+static void i2c0_to_irq(void)
+{
+    i2c_err_irq(INTIICTMOI0_IRQn, 0);
+}
+
+static void i2c1_to_irq(void)
+{
+    i2c_err_irq(INTIICTMOI1_IRQn, 1);
+}
+
+static void i2c2_to_irq(void)
+{
+    i2c_err_irq(INTIICTMOI2_IRQn, 2);
+}
+
+static void i2c3_to_irq(void)
+{
+    i2c_err_irq(INTIICTMOI3_IRQn, 3);
+}
+
+static void i2c_irqs_set(i2c_t *obj, uint32_t enable)
+{
+    int i;
+    const IRQn_Type *irqTable = irq_set_tbl[obj->i2c.i2c];
+    const IRQHandler *handlerTable = hander_set_tbl[obj->i2c.i2c];
+    for (i = 0; i < IRQ_NUM; ++i) {
+        if (enable) {
+            InterruptHandlerRegister(irqTable[i], handlerTable[i]);
+            GIC_SetPriority(irqTable[i], 5);
+            if (i == 1) {
+                GIC_SetConfiguration(irqTable[i], 3);
+            } else {
+                GIC_SetConfiguration(irqTable[i], 1);
+            }
+            GIC_EnableIRQ(irqTable[i]);
+        } else {
+            GIC_DisableIRQ(irqTable[i]);
+        }
+    }
+    REG(IER.UINT8[0]) = enable ? 0x63 : 0x00;
+}
+
+/******************************************************************************
+ * ASYNCHRONOUS HAL
+ ******************************************************************************/
+
+void i2c_transfer_asynch(i2c_t *obj, const void *tx, size_t tx_length, void *rx, size_t rx_length, uint32_t address, uint32_t stop, uint32_t handler, uint32_t event, DMAUsage hint)
+{
+    MBED_ASSERT(obj);
+    MBED_ASSERT(tx ? tx_length : 1);
+    MBED_ASSERT(rx ? rx_length : 1);
+    MBED_ASSERT((REG(SER.UINT32) & SER_SAR0E) == 0); /* Slave mode */
+    
+    obj->tx_buff.buffer = (void *)tx;
+    obj->tx_buff.length = tx_length;
+    obj->tx_buff.pos = 0;
+    obj->tx_buff.width = 8;
+    obj->rx_buff.buffer = rx;
+    obj->rx_buff.length = rx_length;
+    obj->rx_buff.pos = SIZE_MAX;
+    obj->rx_buff.width = 8;
+    i2c_data[obj->i2c.i2c].async_obj = obj;
+    i2c_data[obj->i2c.i2c].async_callback = handler;
+    i2c_data[obj->i2c.i2c].event = 0;
+    i2c_data[obj->i2c.i2c].shouldStop = stop;
+    i2c_data[obj->i2c.i2c].address = address;
+    i2c_irqs_set(obj, 1);
+    
+    /* There is a STOP condition for last processing */
+    if (obj->i2c.last_stop_flag != 0) {
+        if (i2c_start(obj) != 0) {
+            i2c_set_err_noslave(obj);
+            i2c_data[obj->i2c.i2c].event = I2C_EVENT_ERROR | I2C_EVENT_ERROR_NO_SLAVE;
+            i2c_abort_asynch(obj);
+            ((void (*)())handler)();
+            return;
+        }
+    }
+    obj->i2c.last_stop_flag = stop;
+    
+    if (rx_length && tx_length == 0) {
+        /* Ready to read */
+        i2c_set_MR3_ACK(obj);
+        
+        /* Disable INTRIICTEI */
+        REG(IER.UINT8[0]) &= ~(1 << 6);
+        
+        address |= 0x01;
+    }
+    /* Send Slave address */
+    if (i2c_do_write(obj, address) != 0) {
+        i2c_set_err_noslave(obj);
+        i2c_data[obj->i2c.i2c].event = I2C_EVENT_ERROR | I2C_EVENT_ERROR_NO_SLAVE;
+        i2c_abort_asynch(obj);
+        ((void (*)())handler)();
+        return;
+    }
+}
+
+uint32_t i2c_irq_handler_asynch(i2c_t *obj)
+{
+    return i2c_data[obj->i2c.i2c].event;
+}
+
+uint8_t i2c_active(i2c_t *obj)
+{
+    return i2c_data[obj->i2c.i2c].async_obj != NULL;
+}
+
+void i2c_abort_asynch(i2c_t *obj)
+{
+    i2c_data[obj->i2c.i2c].async_obj = NULL;
+    i2c_irqs_set(obj, 0);
+    i2c_reg_reset(obj);
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/lp_ticker.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/lp_ticker.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/lp_ticker.c	(revision 429)
@@ -0,0 +1,125 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#if DEVICE_LPTICKER
+#include "lp_ticker_api.h"
+#include "mtu2_iodefine.h"
+#include "mtu2_iobitmask.h"
+#include "mbed_drv_cfg.h"
+#include "mtu2.h"
+
+#if (LP_TICKER_MTU2_CH == 2)
+ #define LP_TICKER_TIMER_IRQn (TGI2A_IRQn)
+ #define MTU2TCR              (MTU2TCR_2)
+ #define MTU2TCNT             (MTU2TCNT_2)
+ #define MTU2TIER             (MTU2TIER_2)
+ #define MTU2TGRA             (MTU2TGRA_2)
+ #define MTU2TSR              (MTU2TSR_2)
+ #define MTU2_TSTR_CST        MTU2_TSTR_CST2
+ #define MTU2_TCR_TPSC        (0x07)
+#elif (LP_TICKER_MTU2_CH == 3)
+ #define LP_TICKER_TIMER_IRQn (TGI3A_IRQn)
+ #define MTU2TCR              (MTU2TCR_3)
+ #define MTU2TCNT             (MTU2TCNT_3)
+ #define MTU2TIER             (MTU2TIER_3)
+ #define MTU2TGRA             (MTU2TGRA_3)
+ #define MTU2TSR              (MTU2TSR_3)
+ #define MTU2_TSTR_CST        MTU2_TSTR_CST3
+ #define MTU2_TCR_TPSC        (0x05)
+#elif (LP_TICKER_MTU2_CH == 4)
+ #define LP_TICKER_TIMER_IRQn (TGI4A_IRQn)
+ #define MTU2TCR              (MTU2TCR_4)
+ #define MTU2TCNT             (MTU2TCNT_4)
+ #define MTU2TIER             (MTU2TIER_4)
+ #define MTU2TGRA             (MTU2TGRA_4)
+ #define MTU2TSR              (MTU2TSR_4)
+ #define MTU2_TSTR_CST        MTU2_TSTR_CST4
+ #define MTU2_TCR_TPSC        (0x05)
+#else
+ #error "Invalid number : LP_TICKER_MTU2_CH (2-4)"
+#endif
+
+static int lp_ticker_inited = 0;
+
+void lp_ticker_init(void)
+{
+    GIC_DisableIRQ(LP_TICKER_TIMER_IRQn);
+    GIC_ClearPendingIRQ(LP_TICKER_TIMER_IRQn);
+
+    /* Power Control for Peripherals      */
+    mtu2_init();
+
+    if (lp_ticker_inited) return;
+    lp_ticker_inited = 1;
+
+    MTU2TCR   = MTU2_TCR_TPSC;
+    MTU2TSTR  |= MTU2_TSTR_CST;
+    MTU2TIER  |= MTU2_TIER_n_TGIEA;
+
+    // INTC settings
+    InterruptHandlerRegister(LP_TICKER_TIMER_IRQn, (void (*)(uint32_t))lp_ticker_irq_handler);
+    GIC_SetPriority(LP_TICKER_TIMER_IRQn, 5);
+    GIC_SetConfiguration(LP_TICKER_TIMER_IRQn, 3);
+}
+
+void lp_ticker_free(void)
+{
+    GIC_DisableIRQ(LP_TICKER_TIMER_IRQn);
+    GIC_ClearPendingIRQ(LP_TICKER_TIMER_IRQn);
+
+    MTU2TIER  &= ~MTU2_TIER_n_TGIEA;
+    lp_ticker_inited = 0;
+    mtu2_free();
+}
+
+uint32_t lp_ticker_read()
+{
+    return (uint32_t)MTU2TCNT;
+}
+
+void lp_ticker_set_interrupt(timestamp_t timestamp)
+{
+    MTU2TSR = (MTU2TSR & 0xFE);
+    MTU2TGRA = (uint16_t)timestamp;
+    GIC_EnableIRQ(LP_TICKER_TIMER_IRQn);
+}
+
+void lp_ticker_fire_interrupt(void)
+{
+    GIC_SetPendingIRQ(LP_TICKER_TIMER_IRQn);
+    GIC_EnableIRQ(LP_TICKER_TIMER_IRQn);
+}
+
+void lp_ticker_disable_interrupt(void)
+{
+    GIC_DisableIRQ(LP_TICKER_TIMER_IRQn);
+}
+
+void lp_ticker_clear_interrupt(void)
+{
+    MTU2TSR = (MTU2TSR & 0xFE);
+    GIC_ClearPendingIRQ(LP_TICKER_TIMER_IRQn);
+}
+
+const ticker_info_t* lp_ticker_get_info()
+{
+    static const ticker_info_t info = {
+        (uint32_t)((float)RENESAS_RZ_A1_P0_CLK / 1024.0f + 0.5f),
+        16
+    };
+    return &info;
+}
+
+#endif // DEVICE_LPTICKER
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/mtu2.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/mtu2.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/mtu2.c	(revision 429)
@@ -0,0 +1,43 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed_drv_cfg.h"
+
+#if (defined(FUMC_MTU2_PWM) || defined(DEVICE_LPTICKER))
+#include "mtu2.h"
+
+static int mtu2_used_cnt = 0;
+
+void mtu2_init(void)
+{
+    if (mtu2_used_cnt == 0) {
+        CPGSTBCR3 &= ~(CPG_STBCR3_BIT_MSTP33);
+    }
+    if (mtu2_used_cnt < 256) {
+        mtu2_used_cnt++;
+    }
+}
+
+void mtu2_free(void)
+{
+    if (mtu2_used_cnt > 0) {
+        mtu2_used_cnt--;
+    }
+    if (mtu2_used_cnt == 0) {
+        CPGSTBCR3 |= (CPG_STBCR3_BIT_MSTP33);
+    }
+}
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/mtu2.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/mtu2.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/mtu2.h	(revision 429)
@@ -0,0 +1,34 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MTU2_H
+#define MTU2_H
+
+#include "device.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void mtu2_init(void);
+void mtu2_free(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/objects.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/objects.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/objects.h	(revision 429)
@@ -0,0 +1,92 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_OBJECTS_H
+#define MBED_OBJECTS_H
+
+#include <stdint.h>
+#include "cmsis.h"
+#include "PortNames.h"
+#include "PeripheralNames.h"
+#include "PinNames.h"
+#include "gpio_object.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct i2c_s {
+    uint32_t i2c;
+    uint32_t dummy;
+    uint8_t  pclk_bit;
+    uint8_t  width_low;
+    uint8_t  width_hi;
+    int      bbsy_wait_cnt;
+    int      last_stop_flag;
+};
+
+struct spi_s {
+    struct st_rspi *spi;
+    uint32_t       bits;
+    int            index;
+};
+
+struct gpio_irq_s {
+    uint32_t port;
+    uint32_t pin;
+    uint32_t ch;
+    uint8_t  int_enable;
+};
+
+struct port_s {
+    __IO uint32_t *reg_dir;
+    __IO uint32_t *reg_out;
+    __I  uint32_t *reg_in;
+    __IO uint32_t *reg_buf;
+    PortName port;
+    uint32_t mask;
+};
+
+struct serial_s {
+    struct st_scif *uart;
+    int index;
+};
+
+struct pwmout_s {
+    uint32_t ch;
+    PWMName pwm;
+};
+
+struct analogin_s {
+    ADCName adc;
+};
+
+struct can_s {
+    uint32_t ch;
+};
+
+struct trng_s {
+    uint8_t dummy;
+};
+
+struct flash_s {
+    uint8_t dummy;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/pinmap.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/pinmap.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/pinmap.c	(revision 429)
@@ -0,0 +1,74 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "PeripheralPins.h"
+#include "mbed_error.h"
+#include "gpio_addrdefine.h"
+
+PinName gpio_multi_guard = (PinName)NC; /* If set pin name here, setting of the "pin" is just one time */
+
+void pin_function(PinName pin, int function) {
+    if (pin == (PinName)NC) return;
+    
+    int n = pin >> 4;
+    int bitmask = 1<<(pin  & 0xf);
+    const PinFunc * Pipc_0_func = PIPC_0_tbl;
+    int pipc_data = 1;
+    
+    if (gpio_multi_guard != pin) {
+        if (function == 0) {
+            // means GPIO mode
+            *PMC(n) &= ~bitmask;
+        } else {
+            // alt-function mode
+            --function;
+
+            if (function & (1 << 2)) { *PFCAE(n) |= bitmask;}else  { *PFCAE(n) &= ~bitmask;}
+            if (function & (1 << 1)) { *PFCE(n) |= bitmask;}else  { *PFCE(n) &= ~bitmask;}
+            if (function & (1 << 0)) { *PFC(n) |= bitmask;}else  { *PFC(n) &= ~bitmask;}
+
+            while (Pipc_0_func->pin != NC) {
+                if ((Pipc_0_func->pin == pin) && ((Pipc_0_func->function - 1) == function)) {
+                    pipc_data = 0;
+                    if (Pipc_0_func->pm == 0) {
+                        *PMSR(n) = (bitmask << 16) | 0;
+                    } else if (Pipc_0_func->pm == 1) {
+                        *PMSR(n) = (bitmask << 16) | bitmask;
+                    } else {
+                        // Do Nothing
+                    }
+                    break;
+                }
+                Pipc_0_func++;
+            }
+            if (pipc_data == 1) {
+            *PIPC(n) |= bitmask;
+            } else {
+                *PIPC(n) &= ~bitmask;
+            }
+
+            if (P1_0 <= pin && pin <= P1_7 && function == 0) {
+                *PBDC(n) |= bitmask;
+            }
+            *PMC(n) |= bitmask;
+        }
+    } else {
+        gpio_multi_guard = (PinName)NC;
+    }
+}
+
+void pin_mode(PinName pin, PinMode mode) {
+//    if (pin == (PinName)NC) { return; }
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/port_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/port_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/port_api.c	(revision 429)
@@ -0,0 +1,77 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "port_api.h"
+#include "pinmap.h"
+#include "gpio_api.h"
+#include "gpio_addrdefine.h"
+
+PinName port_pin(PortName port, int pin_n) {
+    return (PinName)((port*0x10)+pin_n);
+}
+
+void port_init(port_t *obj, PortName port, int mask, PinDirection dir) {
+    uint32_t i;
+
+    obj->port = port;
+    obj->mask = mask;
+    obj->reg_dir = (volatile uint32_t *)PMSR(port);
+    obj->reg_out = (volatile uint32_t *)PORT(port);
+    obj->reg_in  = (volatile uint32_t *)PPR(port);
+    obj->reg_buf = (volatile uint32_t *)PIBC(port);
+    // Do not use masking, because it prevents the use of the unmasked pins
+    // port_reg->FIOMASK = ~mask;
+    
+    // The function is set per pin: reuse gpio logic
+    for (i=0; i<32; i++) {
+        if (obj->mask & (1<<i)) {
+            gpio_set(port_pin(obj->port, i));
+        }
+    }
+
+    port_dir(obj, dir);
+}
+
+void port_mode(port_t *obj, PinMode mode) {
+    uint32_t i;
+    // The mode is set per pin: reuse pinmap logic
+    for (i=0; i<32; i++) {
+        if (obj->mask & (1<<i)) {
+            pin_mode(port_pin(obj->port, i), mode);
+        }
+    }
+}
+
+void port_dir(port_t *obj, PinDirection dir) {
+    switch (dir) {
+        case PIN_INPUT : *obj->reg_dir = (obj->mask << 16) | obj->mask;
+             *obj->reg_buf |=  obj->mask;
+        break;
+        case PIN_OUTPUT: *obj->reg_dir = (obj->mask << 16) | ~obj->mask;
+             *obj->reg_buf &= ~obj->mask;
+        break;
+        default:
+            // do nothing
+        break;
+    }
+}
+
+void port_write(port_t *obj, int value) {
+    *obj->reg_out = (obj->mask << 16) | (value & obj->mask);
+}
+
+int port_read(port_t *obj) {
+    return (*obj->reg_in & obj->mask);
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/pwmout_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/pwmout_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/pwmout_api.c	(revision 429)
@@ -0,0 +1,569 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "mbed_assert.h"
+#include "pwmout_api.h"
+#include "cmsis.h"
+#include "PeripheralPins.h"
+#include "RZ_A1_Init.h"
+#include "iodefine.h"
+#include "gpio_addrdefine.h"
+#include "mbed_drv_cfg.h"
+#include "mtu2.h"
+
+#define MTU2_PWM_OFFSET         0x20
+
+#ifdef FUNC_MOTOR_CTL_PWM
+typedef enum {
+    PWM1A  = 0,
+    PWM1B,
+    PWM1C,
+    PWM1D,
+    PWM1E,
+    PWM1F,
+    PWM1G,
+    PWM1H,
+    PWM2A  = 0x10,
+    PWM2B,
+    PWM2C,
+    PWM2D,
+    PWM2E,
+    PWM2F,
+    PWM2G,
+    PWM2H,
+} PWMType;
+
+static const PWMType PORT[] = {
+     PWM1A,          // PWM_PWM1A
+     PWM1B,          // PWM_PWM1B
+     PWM1C,          // PWM_PWM1C
+     PWM1D,          // PWM_PWM1D
+     PWM1E,          // PWM_PWM1E
+     PWM1F,          // PWM_PWM1F
+     PWM1G,          // PWM_PWM1G
+     PWM1H,          // PWM_PWM1H
+     PWM2A,          // PWM_PWM2A
+     PWM2B,          // PWM_PWM2B
+     PWM2C,          // PWM_PWM2C
+     PWM2D,          // PWM_PWM2D
+     PWM2E,          // PWM_PWM2E
+     PWM2F,          // PWM_PWM2F
+     PWM2G,          // PWM_PWM2G
+     PWM2H,          // PWM_PWM2H
+};
+
+static __IO uint16_t *PWM_MATCH[] = {
+    &PWMPWBFR_1A,    // PWM_PWM1A
+    &PWMPWBFR_1A,    // PWM_PWM1B
+    &PWMPWBFR_1C,    // PWM_PWM1C
+    &PWMPWBFR_1C,    // PWM_PWM1D
+    &PWMPWBFR_1E,    // PWM_PWM1E
+    &PWMPWBFR_1E,    // PWM_PWM1F
+    &PWMPWBFR_1G,    // PWM_PWM1G
+    &PWMPWBFR_1G,    // PWM_PWM1H
+    &PWMPWBFR_2A,    // PWM_PWM2A
+    &PWMPWBFR_2A,    // PWM_PWM2B
+    &PWMPWBFR_2C,    // PWM_PWM2C
+    &PWMPWBFR_2C,    // PWM_PWM2D
+    &PWMPWBFR_2E,    // PWM_PWM2E
+    &PWMPWBFR_2E,    // PWM_PWM2F
+    &PWMPWBFR_2G,    // PWM_PWM2G
+    &PWMPWBFR_2G,    // PWM_PWM2H
+};
+
+static uint16_t init_period_ch1 = 0;
+static uint16_t init_period_ch2 = 0;
+static int32_t  period_ch1 = 1;
+static int32_t  period_ch2 = 1;
+#endif
+
+#ifdef FUMC_MTU2_PWM
+#define MTU2_PWM_SIGNAL         2
+
+typedef enum {
+    TIOC0A  = 0,
+    TIOC0B,
+    TIOC0C,
+    TIOC0D,
+    TIOC1A = 0x10,
+    TIOC1B,
+    TIOC2A = 0x20,
+    TIOC2B,
+    TIOC3A = 0x30,
+    TIOC3B,
+    TIOC3C,
+    TIOC3D,
+    TIOC4A = 0x40,
+    TIOC4B,
+    TIOC4C,
+    TIOC4D,
+} MTU2_PWMType;
+
+static const MTU2_PWMType MTU2_PORT[] = {
+     TIOC0A,         // PWM_TIOC0A
+     TIOC0C,         // PWM_TIOC0C
+     TIOC1A,         // PWM_TIOC1A
+     TIOC2A,         // PWM_TIOC2A
+     TIOC3A,         // PWM_TIOC3A
+     TIOC3C,         // PWM_TIOC3C
+     TIOC4A,         // PWM_TIOC4A
+     TIOC4C,         // PWM_TIOC4C
+};
+
+static __IO uint16_t *MTU2_PWM_MATCH[][MTU2_PWM_SIGNAL] = {
+    { &MTU2TGRA_0, &MTU2TGRB_0 },       // PWM_TIOC0A
+    { &MTU2TGRC_0, &MTU2TGRD_0 },       // PWM_TIOC0C
+    { &MTU2TGRA_1, &MTU2TGRB_1 },       // PWM_TIOC1A
+    { &MTU2TGRA_2, &MTU2TGRB_2 },       // PWM_TIOC2A
+    { &MTU2TGRA_3, &MTU2TGRB_3 },       // PWM_TIOC3A
+    { &MTU2TGRC_3, &MTU2TGRD_3 },       // PWM_TIOC3C
+    { &MTU2TGRA_4, &MTU2TGRB_4 },       // PWM_TIOC4A
+    { &MTU2TGRC_4, &MTU2TGRD_4 },       // PWM_TIOC4C
+};
+
+static __IO uint8_t *TCR_MATCH[] = {
+    &MTU2TCR_0,
+    &MTU2TCR_1,
+    &MTU2TCR_2,
+    &MTU2TCR_3,
+    &MTU2TCR_4,
+};
+
+static __IO uint8_t *TIORH_MATCH[] = {
+    &MTU2TIORH_0,
+    &MTU2TIOR_1,
+    &MTU2TIOR_2,
+    &MTU2TIORH_3,
+    &MTU2TIORH_4,
+};
+
+static __IO uint8_t *TIORL_MATCH[] = {
+    &MTU2TIORL_0,
+    NULL,
+    NULL,
+    &MTU2TIORL_3,
+    &MTU2TIORL_4,
+};
+
+static __IO uint16_t *TGRA_MATCH[] = {
+    &MTU2TGRA_0,
+    &MTU2TGRA_1,
+    &MTU2TGRA_2,
+    &MTU2TGRA_3,
+    &MTU2TGRA_4,
+};
+
+static __IO uint16_t *TGRC_MATCH[] = {
+    &MTU2TGRC_0,
+    NULL,
+    NULL,
+    &MTU2TGRC_3,
+    &MTU2TGRC_4,
+};
+
+static __IO uint8_t *TMDR_MATCH[] = {
+    &MTU2TMDR_0,
+    &MTU2TMDR_1,
+    &MTU2TMDR_2,
+    &MTU2TMDR_3,
+    &MTU2TMDR_4,
+};
+
+static int MAX_PERIOD[] = {
+    125000,
+    503000,
+    2000000,
+    2000000,
+    2000000,
+};
+
+typedef enum {
+    MTU2_PULSE = 0,
+    MTU2_PERIOD
+} MTU2Signal;
+
+static uint16_t init_mtu2_period_ch[5] = {0};
+static int32_t  mtu2_period_ch[5] = {1, 1, 1, 1, 1};
+#endif
+
+void pwmout_init(pwmout_t* obj, PinName pin) {
+    // determine the channel
+    PWMName pwm = (PWMName)pinmap_peripheral(pin, PinMap_PWM);
+    MBED_ASSERT(pwm != (PWMName)NC);
+
+    if (pwm >= MTU2_PWM_OFFSET) {
+#ifdef FUMC_MTU2_PWM
+        /* PWM by MTU2 */
+        int tmp_pwm;
+        
+        // power on
+        mtu2_init();
+        
+        obj->pwm = pwm;
+        tmp_pwm = (int)(obj->pwm - MTU2_PWM_OFFSET);
+        if (((uint32_t)MTU2_PORT[tmp_pwm] & 0x00000040) == 0x00000040) {
+            obj->ch  = 4;
+            MTU2TOER |= 0x36;
+        } else if (((uint32_t)MTU2_PORT[tmp_pwm] & 0x00000030) == 0x00000030) {
+            obj->ch  = 3;
+            MTU2TOER |= 0x09;
+        } else if (((uint32_t)MTU2_PORT[tmp_pwm] & 0x00000020) == 0x00000020) {
+            obj->ch  = 2;
+        } else if (((uint32_t)MTU2_PORT[tmp_pwm] & 0x00000010) == 0x00000010) {
+            obj->ch  = 1;
+        } else {
+            obj->ch  = 0;
+        }
+        // Wire pinout
+        pinmap_pinout(pin, PinMap_PWM);
+
+        int bitmask = 1 << (pin  & 0xf);
+
+        *PMSR(PINGROUP(pin)) = (bitmask << 16) | 0;
+
+        // default duty 0.0f
+        pwmout_write(obj, 0);
+        if (init_mtu2_period_ch[obj->ch] == 0) {
+            // default period 1ms
+            pwmout_period_us(obj, 1000);
+            init_mtu2_period_ch[obj->ch] = 1;
+        }
+#endif
+    } else {
+#ifdef FUNC_MOTOR_CTL_PWM
+        /* PWM */
+        // power on
+        CPGSTBCR3 &= ~(CPG_STBCR3_BIT_MSTP30);
+
+        obj->pwm = pwm;
+        if (((uint32_t)PORT[obj->pwm] & 0x00000010) == 0x00000010) {
+            obj->ch  = 2;
+            PWMPWPR_2 = 0x00;
+        } else {
+            obj->ch  = 1;
+            PWMPWPR_1 = 0x00;
+        }
+
+        // Wire pinout
+        pinmap_pinout(pin, PinMap_PWM);
+
+        // default to 491us: standard for servos, and fine for e.g. brightness control
+        pwmout_write(obj, 0);
+        if ((obj->ch == 2) && (init_period_ch2 == 0)) {
+            pwmout_period_us(obj, 491);
+            init_period_ch2 = 1;
+        }
+        if ((obj->ch == 1) && (init_period_ch1 == 0)) {
+            pwmout_period_us(obj, 491);
+            init_period_ch1 = 1;
+        }
+#endif
+    }
+}
+
+void pwmout_free(pwmout_t* obj) {
+    pwmout_write(obj, 0);
+    mtu2_free();
+}
+
+void pwmout_write(pwmout_t* obj, float value) {
+    uint32_t wk_cycle;
+
+    if (obj->pwm >= MTU2_PWM_OFFSET) {
+#ifdef FUMC_MTU2_PWM
+        /* PWM by MTU2 */
+        int tmp_pwm;
+        
+        if (value < 0.0f) {
+            value = 0.0f;
+        } else if (value > 1.0f) {
+            value = 1.0f;
+        } else {
+            // Do Nothing
+        }
+        tmp_pwm = (int)(obj->pwm - MTU2_PWM_OFFSET);
+        wk_cycle = *MTU2_PWM_MATCH[tmp_pwm][MTU2_PERIOD] & 0xffff;
+        // set channel match to percentage
+        if (value == 1.0f) {
+            *MTU2_PWM_MATCH[tmp_pwm][MTU2_PULSE] = (uint16_t)(wk_cycle - 1);
+        } else {
+        *MTU2_PWM_MATCH[tmp_pwm][MTU2_PULSE] = (uint16_t)((float)wk_cycle * value);
+        }
+#endif
+    } else {
+#ifdef FUNC_MOTOR_CTL_PWM
+        uint16_t v;
+
+        /* PWM */
+        if (value < 0.0f) {
+            value = 0.0f;
+        } else if (value > 1.0f) {
+            value = 1.0f;
+        } else {
+            // Do Nothing
+        }
+
+        if (obj->ch == 2) {
+            wk_cycle = PWMPWCYR_2 & 0x03ff;
+        } else {
+            wk_cycle = PWMPWCYR_1 & 0x03ff;
+        }
+
+        // set channel match to percentage
+        v = (uint16_t)((float)wk_cycle * value);
+        *PWM_MATCH[obj->pwm] = (v | ((PORT[obj->pwm] & 1) << 12));
+#endif
+    }
+}
+
+float pwmout_read(pwmout_t* obj) {
+    uint32_t wk_cycle;
+    float value;
+
+    if (obj->pwm >= MTU2_PWM_OFFSET) {
+#ifdef FUMC_MTU2_PWM
+        /* PWM by MTU2 */
+        uint32_t wk_pulse;
+        int tmp_pwm;
+        
+        tmp_pwm = (int)(obj->pwm - MTU2_PWM_OFFSET);
+        wk_cycle = *MTU2_PWM_MATCH[tmp_pwm][MTU2_PERIOD] & 0xffff;
+        wk_pulse = *MTU2_PWM_MATCH[tmp_pwm][MTU2_PULSE] & 0xffff;
+        value = ((float)wk_pulse / (float)wk_cycle);
+#endif
+    } else {
+#ifdef FUNC_MOTOR_CTL_PWM
+        /* PWM */
+        if (obj->ch == 2) {
+            wk_cycle = PWMPWCYR_2 & 0x03ff;
+        } else {
+            wk_cycle = PWMPWCYR_1 & 0x03ff;
+        }
+        value = ((float)(*PWM_MATCH[obj->pwm] & 0x03ff) / (float)wk_cycle);
+#endif
+    }
+
+    return (value > 1.0f) ? (1.0f) : (value);
+}
+
+void pwmout_period(pwmout_t* obj, float seconds) {
+    pwmout_period_us(obj, seconds * 1000000.0f);
+}
+
+void pwmout_period_ms(pwmout_t* obj, int ms) {
+    pwmout_period_us(obj, ms * 1000);
+}
+
+#ifdef FUNC_MOTOR_CTL_PWM
+static void set_duty_again(__IO uint16_t *p_pwmpbfr, uint16_t last_cycle, uint16_t new_cycle){
+    uint16_t wk_pwmpbfr;
+    float    value;
+    uint16_t v;
+
+    wk_pwmpbfr = *p_pwmpbfr;
+    value      = ((float)(wk_pwmpbfr & 0x03ff) / (float)last_cycle);
+    v          = (uint16_t)((float)new_cycle * value);
+    *p_pwmpbfr = (v | (wk_pwmpbfr & 0x1000));
+}
+#endif
+
+#ifdef FUMC_MTU2_PWM
+static void set_mtu2_duty_again(__IO uint16_t *p_pwmpbfr, uint16_t last_cycle, uint16_t new_cycle){
+    uint16_t wk_pwmpbfr;
+    float    value;
+
+    wk_pwmpbfr = *p_pwmpbfr;
+    value      = ((float)(wk_pwmpbfr & 0xffff) / (float)last_cycle);
+    *p_pwmpbfr = (uint16_t)((float)new_cycle * value);
+}
+#endif
+
+// Set the PWM period, keeping the duty cycle the same.
+void pwmout_period_us(pwmout_t* obj, int us) {
+    uint32_t pclk_base;
+    uint32_t wk_cycle;
+    uint32_t wk_cks = 0;
+    uint16_t wk_last_cycle;
+
+    if (obj->pwm >= MTU2_PWM_OFFSET) {
+#ifdef FUMC_MTU2_PWM
+        uint64_t wk_cycle_mtu2;
+        int      max_us = 0;
+
+        /* PWM by MTU2 */
+        int tmp_pwm;
+        uint8_t tmp_tcr_up;
+        uint8_t tmp_tstr_sp;
+        uint8_t tmp_tstr_st;
+        
+        max_us = MAX_PERIOD[obj->ch];
+        if (us > max_us) {
+            us = max_us;
+        } else if (us < 1) {
+            us = 1;
+        } else {
+            // Do Nothing
+        }
+
+        if (RZ_A1_IsClockMode0() == false) {
+            pclk_base = (uint32_t)CM1_RENESAS_RZ_A1_P0_CLK;
+        } else {
+            pclk_base = (uint32_t)CM0_RENESAS_RZ_A1_P0_CLK;
+        }
+
+        wk_cycle_mtu2 = (uint64_t)pclk_base * us;
+        while (wk_cycle_mtu2 >= 65535000000) {
+            if ((obj->ch == 1) && (wk_cks == 3)) {
+                wk_cks+=2;
+            } else if ((obj->ch == 2) && (wk_cks == 3)) {
+                wk_cycle_mtu2 >>= 2;
+                wk_cks+=3;
+            }
+            wk_cycle_mtu2 >>= 2;
+            wk_cks++;
+        }
+        wk_cycle = (uint32_t)(wk_cycle_mtu2 / 1000000);
+        
+        tmp_pwm = (int)(obj->pwm - MTU2_PWM_OFFSET);
+        if (((uint8_t)MTU2_PORT[tmp_pwm] & 0x02) == 0x02) {
+            tmp_tcr_up = 0xC0;
+        } else {
+            tmp_tcr_up = 0x40;
+        }
+        if ((obj->ch == 4) || (obj->ch == 3)) {
+            tmp_tstr_sp = ~(0x38 | (1 << (obj->ch + 3)));
+            tmp_tstr_st = (1 << (obj->ch + 3));
+        } else {
+            tmp_tstr_sp = ~(0x38 | (1 << obj->ch));
+            tmp_tstr_st = (1 << obj->ch);
+        }
+        // Counter Stop
+        MTU2TSTR &= tmp_tstr_sp;
+        wk_last_cycle = *MTU2_PWM_MATCH[tmp_pwm][MTU2_PERIOD] & 0xffff;
+        *TCR_MATCH[obj->ch] = tmp_tcr_up | wk_cks;
+        *TIORH_MATCH[obj->ch] = 0x21;
+        if ((obj->ch == 0) || (obj->ch == 3) || (obj->ch == 4)) {
+            *TIORL_MATCH[obj->ch] = 0x21;
+        }
+        *MTU2_PWM_MATCH[tmp_pwm][MTU2_PERIOD] = (uint16_t)wk_cycle;     // Set period
+
+        // Set duty again(TGRA)
+        set_mtu2_duty_again(TGRA_MATCH[obj->ch], wk_last_cycle, wk_cycle);
+        if ((obj->ch == 0) || (obj->ch == 3) || (obj->ch == 4)) {
+            // Set duty again(TGRC)
+            set_mtu2_duty_again(TGRC_MATCH[obj->ch], wk_last_cycle, wk_cycle);
+        }
+        *TMDR_MATCH[obj->ch] = 0x02;                                    // PWM mode 1
+
+        // Counter Start
+        MTU2TSTR |= tmp_tstr_st;
+        // Save for future use
+        mtu2_period_ch[obj->ch] = us;
+#endif
+    } else {
+#ifdef FUNC_MOTOR_CTL_PWM
+        /* PWM */
+        if (us > 491) {
+            us = 491;
+        } else if (us < 1) {
+            us = 1;
+        } else {
+            // Do Nothing
+        }
+
+        if (RZ_A1_IsClockMode0() == false) {
+            pclk_base = (uint32_t)CM1_RENESAS_RZ_A1_P0_CLK / 10000;
+        } else {
+            pclk_base = (uint32_t)CM0_RENESAS_RZ_A1_P0_CLK / 10000;
+        }
+
+        wk_cycle = pclk_base * us;
+        while (wk_cycle >= 102350) {
+            wk_cycle >>= 1;
+            wk_cks++;
+        }
+        wk_cycle = (wk_cycle + 50) / 100;
+
+        if (obj->ch == 2) {
+            wk_last_cycle    = PWMPWCYR_2 & 0x03ff;
+            PWMPWCR_2        = 0xc0 | wk_cks;
+            PWMPWCYR_2       = (uint16_t)wk_cycle;
+
+            // Set duty again
+            set_duty_again(&PWMPWBFR_2A, wk_last_cycle, wk_cycle);
+            set_duty_again(&PWMPWBFR_2C, wk_last_cycle, wk_cycle);
+            set_duty_again(&PWMPWBFR_2E, wk_last_cycle, wk_cycle);
+            set_duty_again(&PWMPWBFR_2G, wk_last_cycle, wk_cycle);
+
+            // Counter Start
+            PWMPWCR_2 |= 0x08;
+
+            // Save for future use
+            period_ch2 = us;
+        } else {
+            wk_last_cycle    = PWMPWCYR_1 & 0x03ff;
+            PWMPWCR_1        = 0xc0 | wk_cks;
+            PWMPWCYR_1       = (uint16_t)wk_cycle;
+
+            // Set duty again
+            set_duty_again(&PWMPWBFR_1A, wk_last_cycle, wk_cycle);
+            set_duty_again(&PWMPWBFR_1C, wk_last_cycle, wk_cycle);
+            set_duty_again(&PWMPWBFR_1E, wk_last_cycle, wk_cycle);
+            set_duty_again(&PWMPWBFR_1G, wk_last_cycle, wk_cycle);
+
+            // Counter Start
+            PWMPWCR_1 |= 0x08;
+
+            // Save for future use
+            period_ch1 = us;
+        }
+#endif
+    }
+}
+
+void pwmout_pulsewidth(pwmout_t* obj, float seconds) {
+    pwmout_pulsewidth_us(obj, seconds * 1000000.0f);
+}
+
+void pwmout_pulsewidth_ms(pwmout_t* obj, int ms) {
+    pwmout_pulsewidth_us(obj, ms * 1000);
+}
+
+void pwmout_pulsewidth_us(pwmout_t* obj, int us) {
+    float value = 0;
+
+    if (obj->pwm >= MTU2_PWM_OFFSET) {
+#ifdef FUMC_MTU2_PWM
+        /* PWM by MTU2 */
+        if (mtu2_period_ch[obj->ch] != 0) {
+            value = (float)us / (float)mtu2_period_ch[obj->ch];
+        }
+#endif
+    } else {
+#ifdef FUNC_MOTOR_CTL_PWM
+        /* PWM */
+        if (obj->ch == 2) {
+            if (period_ch2 != 0) {
+                value = (float)us / (float)period_ch2;
+            }
+        } else {
+            if (period_ch1 != 0) {
+                value = (float)us / (float)period_ch1;
+            }
+        }
+#endif
+    }
+    pwmout_write(obj, value);
+}
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/rtc_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/rtc_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/rtc_api.c	(revision 429)
@@ -0,0 +1,365 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mbed_assert.h"
+#include "device.h"
+
+#if DEVICE_RTC
+
+#include "rtc_api.h"
+#include "iodefine.h"
+#include "mbed_drv_cfg.h"
+#include "mbed_mktime.h"
+
+#define RCR1_VAL_ON      (0x08u) // AIE = 1
+#define RCR1_VAL_OFF     (0x00u)
+#define RCR3_VAL         (0x00u)
+#define RCR5_VAL		 (0x00u)
+
+#ifdef USE_RTCX1_CLK
+#define RCR2_VAL_ALLSTOP (0x08u)
+#define RCR2_VAL_START   (0x09u) // START = 1
+#define RCR2_VAL_RESET   (0x0Au) // RESET = 1
+#define RCR5_VAL_RTCX1   (0x00u) // RCKSEL = clock rtc from RTCX1(32.768 kHz)
+#elif defined(USE_EXTAL_CLK)
+#define RCR2_VAL_ALLSTOP (0x00u)
+#define RCR2_VAL_START   (0x01u) // START = 1
+#define RCR2_VAL_RESET   (0x02u) // RESET = 1
+#define RCR5_VAL_EXTAL   (0x01u) // RCKSEL = clock rtc from EXTAL
+#define RFRH_VAL_13333   (0x8003u) // 13.3333MHz (= 64Hz * 0x32DCD) 
+#define RFRL_VAL_13333   (0x2DCDu) //
+#elif defined(USE_RTCX3_CLK)
+#define RCR2_VAL_ALLSTOP (0x08u)
+#define RCR2_VAL_START   (0x09u) // START = 1
+#define RCR2_VAL_RESET   (0x0Au) // RESET = 1
+#define RCR5_VAL_RTCX3	 (0x02u) // RCKSEL = clock rtc from RTCX3(4.000 MHz)
+#define RFRH_VAL_4000   (0x8000u) // 4.000MHz (= 64Hz * 0xF424)
+#define RFRL_VAL_4000   (0xF424u) //
+#else
+#error Select RTC clock input !
+#endif
+
+#define RFRH_VAL_MAX     (0x0007u) // MAX value (= 128Hz * 0x7FFFF)
+#define RFRL_VAL_MAX     (0xFFFFu) //
+
+#define MASK_00_03_POS   (0x000Fu)
+#define MASK_04_07_POS   (0x00F0u)
+#define MASK_08_11_POS   (0x0F00u)
+#define MASK_12_15_POS   (0xF000u)
+#define MASK_16_20_POS   (0x000F0000u)
+#define SHIFT_1_HBYTE    (4u)
+#define SHIFT_2_HBYTE    (8u)
+#define SHIFT_3_HBYTE    (12u)
+#define SHIFT_1BYTE      (8u)
+#define SHIFT_2BYTE      (16u)
+
+#define TIME_ERROR_VAL   (0u)
+
+static int rtc_dec8_to_hex(uint8_t dec_val, uint8_t offset, int *hex_val);
+static int rtc_dec16_to_hex(uint16_t dec_val, uint16_t offset, int *hex_val);
+static uint8_t rtc_hex8_to_dec(uint8_t hex_val);
+static uint16_t rtc_hex16_to_dec(uint16_t hex_val);
+
+
+/*
+ * Setup the RTC based on a time structure.
+ * The rtc_init function should be executed first.
+ * [in]
+ * None.
+ * [out]
+ * None.
+ */
+void rtc_init(void)
+{
+    volatile uint8_t dummy_read;
+
+    CPG.STBCR6 &= ~(CPG_STBCR6_BIT_MSTP60);
+
+    // Set control register
+    RTC.RCR2 = RCR2_VAL_ALLSTOP;
+    RTC.RCR1 = RCR1_VAL_ON;
+    RTC.RCR3 = RCR3_VAL;
+
+#ifdef USE_RTCX1_CLK
+    RTC.RCR5 = RCR5_VAL_RTCX1;
+    RTC.RFRH = 0;
+    RTC.RFRL = 0;
+#elif defined(USE_EXTAL_CLK)
+    RTC.RCR5 = RCR5_VAL_EXTAL;
+    RTC.RFRH = RFRH_VAL_13333;
+    RTC.RFRL = RFRL_VAL_13333;
+#else
+    RTC.RCR5 = RCR5_VAL_RTCX3;
+    RTC.RFRH = RFRH_VAL_4000;
+    RTC.RFRL = RFRL_VAL_4000;
+#endif
+    // Dummy read
+    dummy_read = RTC.RCR2;
+    dummy_read = RTC.RCR2;
+
+    RTC.RCR2 = RCR2_VAL_START; // SRART = 1
+
+    // Dummy read
+    dummy_read = RTC.RCR2;
+    dummy_read = RTC.RCR2;
+
+    (void)dummy_read;
+
+}
+
+
+/*
+ * Release the RTC based on a time structure.
+ * @note This function does not stop the RTC from counting 
+ * [in]
+ * None.
+ * [out]
+ * None.
+ */
+void rtc_free(void)
+{
+}
+
+
+/*
+ * Check the RTC has been enabled.
+ * Clock Control Register RTC.RCR1(bit3): 0 = Disabled, 1 = Enabled.
+ * [in]
+ * None.
+ * [out]
+ * 0:Disabled, 1:Enabled.
+ */
+int rtc_isenabled(void)
+{
+    int ret_val = 0;
+
+    if ((RTC.RCR1 & RCR1_VAL_ON) != 0) { // RTC ON ?
+        ret_val = 1;
+    }
+
+    return ret_val;
+}
+
+
+/*
+ * RTC read function.
+ * [in]
+ * None.
+ * [out]
+ * UNIX timestamp value.
+ */
+time_t rtc_read(void)
+{
+
+    struct tm timeinfo;
+    int    err = 0;
+    uint8_t tmp_regdata;
+    time_t t;
+
+    if (rtc_isenabled() != 0) {
+        RTC.RCR1 &= ~0x10u; // CIE = 0
+        do {
+            // before reading process
+            tmp_regdata  = RTC.RCR1;
+            tmp_regdata &= ~0x80u; // CF = 0
+            tmp_regdata |= 0x01u;  // AF = 1
+            RTC.RCR1 = tmp_regdata;
+
+            // Read RTC register
+            err  = rtc_dec8_to_hex(RTC.RSECCNT , 0    , &timeinfo.tm_sec);
+            err += rtc_dec8_to_hex(RTC.RMINCNT , 0    , &timeinfo.tm_min);
+            err += rtc_dec8_to_hex(RTC.RHRCNT  , 0    , &timeinfo.tm_hour);
+            err += rtc_dec8_to_hex(RTC.RDAYCNT , 0    , &timeinfo.tm_mday);
+            err += rtc_dec8_to_hex(RTC.RMONCNT , 1    , &timeinfo.tm_mon);
+            err += rtc_dec16_to_hex(RTC.RYRCNT , 1900 , &timeinfo.tm_year);
+        } while ((RTC.RCR1 & 0x80u) != 0);
+    } else {
+        err = 1;
+    }
+
+    if (err == 0) {
+        // Convert to timestamp
+        if (_rtc_maketime(&timeinfo, &t, RTC_FULL_LEAP_YEAR_SUPPORT) == false) {
+            return TIME_ERROR_VAL;
+        }
+    } else {
+        // Error
+        t = TIME_ERROR_VAL;
+    }
+
+    return t;
+}
+
+/*
+ * Dec(8bit) to Hex function for RTC.
+ * [in]
+ * dec_val:Decimal value (from 0x00 to 0x99).
+ * offset:Subtract offset from dec_val.
+ * hex_val:Pointer of output hexadecimal value.
+ * [out]
+ * 0:Success
+ * 1:Error
+ */
+static int rtc_dec8_to_hex(uint8_t dec_val, uint8_t offset, int *hex_val)
+{
+    int err = 0;
+    uint8_t ret_val;
+
+    if (hex_val != NULL) {
+        if (((dec_val & MASK_04_07_POS) >= (0x0A << SHIFT_1_HBYTE)) ||
+            ((dec_val & MASK_00_03_POS) >=  0x0A)) {
+            err = 1;
+        } else {
+            ret_val = ((dec_val & MASK_04_07_POS) >> SHIFT_1_HBYTE) * 10 +
+                       (dec_val & MASK_00_03_POS);
+            if (ret_val < offset) {
+                err = 1;
+            } else {
+                *hex_val = ret_val - offset;
+            }
+        }
+    } else {
+        err = 1;
+    }
+
+    return err;
+}
+
+/*
+ * Dec(16bit) to Hex function for RTC
+ * [in]
+ * dec_val:Decimal value (from 0x0000 to 0x9999).
+ * offset:Subtract offset from dec_val.
+ * hex_val:Pointer of output hexadecimal value.
+ * [out]
+ * 0:Success
+ * 1:Error
+ */
+static int rtc_dec16_to_hex(uint16_t dec_val, uint16_t offset, int *hex_val)
+{
+    int err = 0;
+    uint16_t ret_val;
+
+    if (hex_val != NULL) {
+        if (((dec_val & MASK_12_15_POS) >= (0x0A << SHIFT_3_HBYTE)) ||
+            ((dec_val & MASK_08_11_POS) >= (0x0A << SHIFT_2_HBYTE)) ||
+            ((dec_val & MASK_04_07_POS) >= (0x0A << SHIFT_1_HBYTE)) ||
+            ((dec_val & MASK_00_03_POS) >=  0x0A)) {
+            err = 1;
+            *hex_val = 0;
+        } else {
+            ret_val = (((dec_val & MASK_12_15_POS)) >> SHIFT_3_HBYTE) * 1000 +
+                      (((dec_val & MASK_08_11_POS)) >> SHIFT_2_HBYTE) * 100 +
+                      (((dec_val & MASK_04_07_POS)) >> SHIFT_1_HBYTE) * 10 +
+                        (dec_val & MASK_00_03_POS);
+            if (ret_val < offset) {
+                err = 1;
+            } else {
+                *hex_val = ret_val - offset;
+            }
+        }
+    } else {
+        err = 1;
+    }
+    return err;
+}
+
+/*
+ * RTC write function
+ * [in]
+ * t:UNIX timestamp value
+ * [out]
+ * None.
+ */
+void rtc_write(time_t t)
+{
+
+    struct tm timeinfo;
+    if (_rtc_localtime(t, &timeinfo, RTC_FULL_LEAP_YEAR_SUPPORT) == false) {
+        return;
+    }
+
+    volatile uint16_t dummy_read;
+
+    if (rtc_isenabled() != 0) {
+        RTC.RCR2    = RCR2_VAL_ALLSTOP;
+        dummy_read  = (uint16_t)RTC.RCR2;
+        dummy_read  = (uint16_t)RTC.RCR2;
+        RTC.RCR2    = RCR2_VAL_RESET; // RESET = 1
+        dummy_read  = (uint16_t)RTC.RCR2;
+        dummy_read  = (uint16_t)RTC.RCR2;
+
+        RTC.RSECCNT = rtc_hex8_to_dec(timeinfo.tm_sec);
+        RTC.RMINCNT = rtc_hex8_to_dec(timeinfo.tm_min);
+        RTC.RHRCNT  = rtc_hex8_to_dec(timeinfo.tm_hour);
+        RTC.RDAYCNT = rtc_hex8_to_dec(timeinfo.tm_mday);
+        RTC.RMONCNT = rtc_hex8_to_dec(timeinfo.tm_mon + 1);
+        RTC.RYRCNT  = rtc_hex16_to_dec(timeinfo.tm_year + 1900);
+        dummy_read  = (uint16_t)RTC.RYRCNT;
+        dummy_read  = (uint16_t)RTC.RYRCNT;
+
+        RTC.RCR2    = RCR2_VAL_START; // START = 1
+
+        dummy_read  = (uint16_t)RTC.RCR2;
+        dummy_read  = (uint16_t)RTC.RCR2;
+        (void)dummy_read;
+    }
+}
+
+/*
+ * HEX to Dec(8bit) function for RTC.
+ * [in]
+ * hex_val:Hexadecimal value.
+ * [out]
+ * decimal value:From 0x00 to 0x99.
+ */
+static uint8_t rtc_hex8_to_dec(uint8_t hex_val)
+{
+    uint32_t calc_data;
+
+    calc_data  = hex_val / 10 * 0x10;
+    calc_data += hex_val % 10;
+
+    if (calc_data > 0x99) {
+        calc_data = 0;
+    }
+
+    return (uint8_t)calc_data;
+}
+
+/*
+ * HEX to Dec(16bit) function for RTC.
+ * [in]
+ * hex_val:Hexadecimal value.
+ * [out]
+ * decimal value:From 0x0000 to 0x9999.
+ */
+static uint16_t rtc_hex16_to_dec(uint16_t hex_val)
+{
+    uint32_t calc_data;
+    calc_data  =   hex_val / 1000       * 0x1000;
+    calc_data += ((hex_val / 100) % 10) * 0x100;
+    calc_data += ((hex_val / 10)  % 10) * 0x10;
+    calc_data +=   hex_val        % 10;
+
+    if (calc_data > 0x9999) {
+        calc_data = 0;
+    }
+    return (uint16_t)calc_data;
+
+}
+
+#endif /* DEVICE_RTC */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/serial_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/serial_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/serial_api.c	(revision 429)
@@ -0,0 +1,773 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2015 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+// math.h required for floating point operations for baud rate calculation
+#include "mbed_assert.h"
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "serial_api.h"
+#include "cmsis.h"
+#include "PeripheralPins.h"
+#include "gpio_api.h"
+#include "RZ_A1_Init.h"
+
+#include "iodefine.h"
+#include "mbed_drv_cfg.h"
+#include "mbed_critical.h"
+
+/******************************************************************************
+ * INITIALIZATION
+ ******************************************************************************/
+#if defined(TARGET_RZA1H)
+#define UART_NUM    8
+#else
+#define UART_NUM    5
+#endif
+#define IRQ_NUM     4
+
+static void uart0_tx_irq(void);
+static void uart0_rx_irq(void);
+static void uart0_er_irq(void);
+static void uart1_tx_irq(void);
+static void uart1_rx_irq(void);
+static void uart1_er_irq(void);
+static void uart2_tx_irq(void);
+static void uart2_rx_irq(void);
+static void uart2_er_irq(void);
+static void uart3_tx_irq(void);
+static void uart3_rx_irq(void);
+static void uart3_er_irq(void);
+static void uart4_tx_irq(void);
+static void uart4_rx_irq(void);
+static void uart4_er_irq(void);
+#if defined(TARGET_RZA1H)
+static void uart5_tx_irq(void);
+static void uart5_rx_irq(void);
+static void uart5_er_irq(void);
+static void uart6_tx_irq(void);
+static void uart6_rx_irq(void);
+static void uart6_er_irq(void);
+static void uart7_tx_irq(void);
+static void uart7_rx_irq(void);
+static void uart7_er_irq(void);
+#endif
+
+static void serial_put_done(serial_t *obj);
+static uint8_t serial_available_buffer(serial_t *obj);
+static void serial_irq_err_set(serial_t *obj, uint32_t enable);
+
+static const struct st_scif *SCIF[] = SCIF_ADDRESS_LIST;
+//static uart_irq_handler irq_handler;
+
+int stdio_uart_inited = 0;
+serial_t stdio_uart;
+
+struct serial_global_data_s {
+    /*add*/uart_irq_handler irq_handler;
+    uint32_t serial_irq_id;
+    gpio_t sw_rts, sw_cts;
+    serial_t *tranferring_obj, *receiving_obj;
+    uint32_t async_tx_callback, async_rx_callback;
+    int event, wanted_rx_events;
+};
+
+static struct serial_global_data_s uart_data[UART_NUM];
+
+static const IRQn_Type irq_set_tbl[UART_NUM][IRQ_NUM] = {
+    {SCIFRXI0_IRQn, SCIFTXI0_IRQn, SCIFBRI0_IRQn, SCIFERI0_IRQn},
+    {SCIFRXI1_IRQn, SCIFTXI1_IRQn, SCIFBRI1_IRQn, SCIFERI1_IRQn},
+    {SCIFRXI2_IRQn, SCIFTXI2_IRQn, SCIFBRI2_IRQn, SCIFERI2_IRQn},
+    {SCIFRXI3_IRQn, SCIFTXI3_IRQn, SCIFBRI3_IRQn, SCIFERI3_IRQn},
+    {SCIFRXI4_IRQn, SCIFTXI4_IRQn, SCIFBRI4_IRQn, SCIFERI4_IRQn},
+#if defined(TARGET_RZA1H)
+    {SCIFRXI5_IRQn, SCIFTXI5_IRQn, SCIFBRI5_IRQn, SCIFERI5_IRQn},
+    {SCIFRXI6_IRQn, SCIFTXI6_IRQn, SCIFBRI6_IRQn, SCIFERI6_IRQn},
+    {SCIFRXI7_IRQn, SCIFTXI7_IRQn, SCIFBRI7_IRQn, SCIFERI7_IRQn},
+#endif
+};
+
+static const IRQHandler hander_set_tbl[UART_NUM][IRQ_NUM] = {
+    {uart0_rx_irq, uart0_tx_irq, uart0_er_irq, uart0_er_irq},
+    {uart1_rx_irq, uart1_tx_irq, uart1_er_irq, uart1_er_irq},
+    {uart2_rx_irq, uart2_tx_irq, uart2_er_irq, uart2_er_irq},
+    {uart3_rx_irq, uart3_tx_irq, uart3_er_irq, uart3_er_irq},
+    {uart4_rx_irq, uart4_tx_irq, uart4_er_irq, uart4_er_irq},
+#if defined(TARGET_RZA1H)
+    {uart5_rx_irq, uart5_tx_irq, uart5_er_irq, uart5_er_irq},
+    {uart6_rx_irq, uart6_tx_irq, uart6_er_irq, uart6_er_irq},
+    {uart7_rx_irq, uart7_tx_irq, uart7_er_irq, uart7_er_irq},
+#endif
+};
+
+static __IO uint16_t *SCSCR_MATCH[] = {
+    &SCSCR_0,
+    &SCSCR_1,
+    &SCSCR_2,
+    &SCSCR_3,
+    &SCSCR_4,
+#if defined(TARGET_RZA1H)
+    &SCSCR_5,
+    &SCSCR_6,
+    &SCSCR_7,
+#endif
+};
+
+static __IO uint16_t *SCFSR_MATCH[] = {
+    &SCFSR_0,
+    &SCFSR_1,
+    &SCFSR_2,
+    &SCFSR_3,
+    &SCFSR_4,
+#if defined(TARGET_RZA1H)
+    &SCFSR_5,
+    &SCFSR_6,
+    &SCFSR_7,
+#endif
+};
+
+
+void serial_init(serial_t *obj, PinName tx, PinName rx) {
+    volatile uint8_t dummy ;
+    int is_stdio_uart = 0;
+    // determine the UART to use
+    uint32_t uart_tx = pinmap_peripheral(tx, PinMap_UART_TX);
+    uint32_t uart_rx = pinmap_peripheral(rx, PinMap_UART_RX);
+    uint32_t uart = pinmap_merge(uart_tx, uart_rx);
+
+    MBED_ASSERT((int)uart != NC);
+
+    obj->serial.uart = (struct st_scif *)SCIF[uart];
+    // enable power
+    CPG.STBCR4 &= ~(1 << (7 - uart));
+    dummy = CPG.STBCR4;
+
+    /* ==== SCIF initial setting ==== */
+    /* ---- Serial control register (SCSCR) setting ---- */
+    /* B'00 : Internal CLK */
+    obj->serial.uart->SCSCR = 0x0000u;          /* SCIF transmitting and receiving operations stop */
+
+    /* ---- FIFO control register (SCFCR) setting ---- */
+    /* Transmit FIFO reset & Receive FIFO data register reset */
+    obj->serial.uart->SCFCR = 0x0006u;
+
+    /* ---- Serial status register (SCFSR) setting ---- */
+    dummy = obj->serial.uart->SCFSR;
+    obj->serial.uart->SCFSR = (dummy & 0xFF6Cu);         /* ER,BRK,DR bit clear */
+
+    /* ---- Line status register (SCLSR) setting ---- */
+    /* ORER bit clear */
+    obj->serial.uart->SCLSR = 0;
+
+    /* ---- Serial extension mode register (SCEMR) setting ----
+    b7 BGDM - Baud rate generator double-speed mode  : Normal mode
+    b0 ABCS - Base clock select in asynchronous mode : Base clock is 16 times the bit rate */
+    obj->serial.uart->SCEMR = 0x0000u;
+
+    /* ---- Bit rate register (SCBRR) setting ---- */
+    serial_baud  (obj, 9600);
+    serial_format(obj, 8, ParityNone, 1);
+
+    /* ---- FIFO control register (SCFCR) setting ---- */
+    obj->serial.uart->SCFCR = 0x0030u;
+
+    /* ---- Serial port register (SCSPTR) setting ----
+    b1 SPB2IO - Serial port break output : disabled
+    b0 SPB2DT - Serial port break data   : High-level */
+    obj->serial.uart->SCSPTR = 0x0003u;    // SPB2IO = 1, SPB2DT = 1
+
+    /* ---- Line status register (SCLSR) setting ----
+    b0 ORER - Overrun error detect : clear */
+
+    if (obj->serial.uart->SCLSR & 0x0001) {
+        obj->serial.uart->SCLSR = 0u;      // ORER clear
+    }
+
+    // pinout the chosen uart
+    pinmap_pinout(tx, PinMap_UART_TX);
+    pinmap_pinout(rx, PinMap_UART_RX);
+
+    obj->serial.index = uart;
+
+    uart_data[obj->serial.index].sw_rts.pin = NC;
+    uart_data[obj->serial.index].sw_cts.pin = NC;
+
+    /* ---- Serial control register (SCSCR) setting ---- */
+    /* Setting the TE and RE bits enables the TxD and RxD pins to be used. */
+    obj->serial.uart->SCSCR = 0x0070;
+
+    is_stdio_uart = (uart == STDIO_UART) ? (1) : (0);
+
+    if (is_stdio_uart) {
+        stdio_uart_inited = 1;
+        memcpy(&stdio_uart, obj, sizeof(serial_t));
+    }
+}
+
+void serial_free(serial_t *obj) {
+    uart_data[obj->serial.index].serial_irq_id = 0;
+}
+
+// serial_baud
+// set the baud rate, taking in to account the current SystemFrequency
+void serial_baud(serial_t *obj, int baudrate) {
+    uint32_t pclk_base;
+    uint32_t bgdm = 1;
+    uint32_t cks = 0;
+    uint32_t DL;
+
+    if (RZ_A1_IsClockMode0() == false) {
+        pclk_base = CM1_RENESAS_RZ_A1_P1_CLK;
+    } else {
+        pclk_base = CM0_RENESAS_RZ_A1_P1_CLK;
+    }
+
+    if (baudrate > (int)(pclk_base / 0x800)) {
+        obj->serial.uart->SCSMR &= ~0x0003;
+        obj->serial.uart->SCEMR = 0x0081;  // BGDM = 1, ABCS = 1
+        DL = (pclk_base + (4 * baudrate)) / (8 * baudrate);  // Rounding
+        if (DL > 0) {
+            DL--;
+        }
+        obj->serial.uart->SCBRR = (uint8_t)DL;
+    } else if (baudrate < (int)(pclk_base / 0x80000)) {
+        obj->serial.uart->SCSMR |= 0x0003;
+        obj->serial.uart->SCEMR = 0x0000;
+        obj->serial.uart->SCBRR = 0xFFu;
+    } else {
+        DL = (pclk_base + (8 * baudrate)) / (16 * baudrate);  // Rounding
+        while (DL > 256) {
+            DL >>= 1;
+            if (bgdm == 1) {
+                bgdm = 0;
+            } else {
+                bgdm = 1;
+                cks++;
+            }
+        }
+        obj->serial.uart->SCSMR = (obj->serial.uart->SCSMR & ~0x0003) | (uint8_t)cks;
+        obj->serial.uart->SCEMR = (uint8_t)(bgdm << 7);
+        obj->serial.uart->SCBRR = (uint8_t)(DL - 1);
+    }
+}
+
+void serial_format(serial_t *obj, int data_bits, SerialParity parity, int stop_bits) {
+    int parity_enable;
+    int parity_select;
+
+    MBED_ASSERT((stop_bits == 1) || (stop_bits == 2)); // 0: 1 stop bits, 1: 2 stop bits
+    MBED_ASSERT((data_bits > 4) && (data_bits < 9)); // 5: 5 data bits ... 3: 8 data bits
+    MBED_ASSERT((parity == ParityNone) || (parity == ParityOdd) || (parity == ParityEven) ||
+                (parity == ParityForced1) || (parity == ParityForced0));
+
+    stop_bits = (stop_bits == 1)? 0:
+                (stop_bits == 2)? 1:
+                0; // must not to be
+
+    data_bits = (data_bits == 8)? 0:
+                (data_bits == 7)? 1:
+                0; // must not to be
+
+    switch (parity) {
+    case ParityNone:
+        parity_enable = 0;
+        parity_select = 0;
+        break;
+    case ParityOdd:
+        parity_enable = 1;
+        parity_select = 1;
+        break;
+    case ParityEven:
+        parity_enable = 1;
+        parity_select = 0;
+        break;
+    case ParityForced1:
+    case ParityForced0:
+    default:
+        parity_enable = 0;
+        parity_select = 0;
+        break;
+    }
+
+    obj->serial.uart->SCSMR = data_bits   << 6
+                       | parity_enable    << 5
+                       | parity_select    << 4
+                       | stop_bits        << 3;
+}
+
+/******************************************************************************
+ * INTERRUPTS HANDLING
+ ******************************************************************************/
+
+static void uart_tx_irq(IRQn_Type irq_num, uint32_t index) {
+    __IO uint16_t *dmy_rd_scscr;
+    __IO uint16_t *dmy_rd_scfsr;
+    serial_t *obj;
+    int i;
+    
+    dmy_rd_scscr = SCSCR_MATCH[index];
+    *dmy_rd_scscr &= 0x007B;                    // Clear TIE and Write to bit15~8,2 is always 0
+    dmy_rd_scfsr = SCFSR_MATCH[index];
+    *dmy_rd_scfsr = (*dmy_rd_scfsr & ~0x0020);  // Set TEND
+    
+    obj = uart_data[index].tranferring_obj;
+    if (obj) {
+        i = obj->tx_buff.length - obj->tx_buff.pos;
+        if (0 < i) {
+            if (serial_available_buffer(obj) < i) {
+                i = serial_available_buffer(obj);
+            }
+            do {
+                uint8_t c = *(uint8_t *)obj->tx_buff.buffer;
+                obj->tx_buff.buffer = (uint8_t *)obj->tx_buff.buffer + 1;
+                ++obj->tx_buff.pos;
+                obj->serial.uart->SCFTDR = c;
+            } while (--i);
+            serial_put_done(obj);
+        } else {
+            uart_data[index].tranferring_obj = NULL;
+            uart_data[index].event = SERIAL_EVENT_TX_COMPLETE;
+            ((void (*)())uart_data[index].async_tx_callback)();
+        }
+    }
+
+    if (uart_data[index].irq_handler != NULL)
+        uart_data[index].irq_handler(uart_data[index].serial_irq_id, TxIrq);
+}
+
+static void uart_rx_irq(IRQn_Type irq_num, uint32_t index) {
+    __IO uint16_t *dmy_rd_scscr;
+    __IO uint16_t *dmy_rd_scfsr;
+    serial_t *obj;
+    int c;
+    
+    dmy_rd_scscr = SCSCR_MATCH[index];
+    *dmy_rd_scscr &= 0x00B3;                    // Clear RIE,REIE and Write to bit15~8,2 is always 0
+    dmy_rd_scfsr = SCFSR_MATCH[index];
+    *dmy_rd_scfsr = (*dmy_rd_scfsr & ~0x0003);  // Clear RDF,DR
+    
+    obj = uart_data[index].receiving_obj;
+    if (obj) {
+        if (obj->serial.uart->SCLSR & 1) {
+            if (uart_data[index].wanted_rx_events & SERIAL_EVENT_RX_OVERRUN_ERROR) {
+                serial_rx_abort_asynch(obj);
+                uart_data[index].event = SERIAL_EVENT_RX_OVERRUN_ERROR;
+                ((void (*)())uart_data[index].async_rx_callback)();
+            }
+            return;
+        }
+        c = serial_getc(obj);
+        if (c != -1) {
+            ((uint8_t *)obj->rx_buff.buffer)[obj->rx_buff.pos] = c;
+            ++obj->rx_buff.pos;
+            if (c == obj->char_match && ! obj->char_found) {
+                obj->char_found = 1;
+                if (obj->rx_buff.pos == obj->rx_buff.length) {
+                    if (uart_data[index].wanted_rx_events & SERIAL_EVENT_RX_COMPLETE) {
+                        uart_data[index].event = SERIAL_EVENT_RX_COMPLETE;
+                    }
+                }
+                if (uart_data[index].wanted_rx_events & SERIAL_EVENT_RX_CHARACTER_MATCH) {
+                    uart_data[index].event |= SERIAL_EVENT_RX_CHARACTER_MATCH;
+                }
+                if (uart_data[index].event) {
+                    uart_data[index].receiving_obj = NULL;
+                    ((void (*)())uart_data[index].async_rx_callback)();
+                }
+            } else if (obj->rx_buff.pos == obj->rx_buff.length) {
+                uart_data[index].receiving_obj = NULL;
+                if (uart_data[index].wanted_rx_events & SERIAL_EVENT_RX_COMPLETE) {
+                    uart_data[index].event = SERIAL_EVENT_RX_COMPLETE;
+                    ((void (*)())uart_data[index].async_rx_callback)();
+                }
+            }
+        } else {
+            serial_rx_abort_asynch(obj);
+            if (uart_data[index].wanted_rx_events & (SERIAL_EVENT_RX_PARITY_ERROR | SERIAL_EVENT_RX_FRAMING_ERROR)) {
+                uart_data[index].event = SERIAL_EVENT_RX_PARITY_ERROR | SERIAL_EVENT_RX_FRAMING_ERROR;
+                if (obj->serial.uart->SCFSR & 1 << 2) {
+                    uart_data[index].event = SERIAL_EVENT_RX_PARITY_ERROR;
+                } else if (obj->serial.uart->SCFSR & 1 << 3) {
+                    uart_data[index].event = SERIAL_EVENT_RX_FRAMING_ERROR;
+                }
+                ((void (*)())uart_data[index].async_rx_callback)();
+            }
+            return;
+        }
+    }
+
+    if (uart_data[index].irq_handler != NULL)
+        uart_data[index].irq_handler(uart_data[index].serial_irq_id, RxIrq);
+}
+
+static void uart_err_irq(IRQn_Type irq_num, uint32_t index) {
+    serial_t *obj = uart_data[index].receiving_obj;
+    int err_read;
+    
+    if (obj) {
+        serial_irq_err_set(obj, 0);
+        if (uart_data[index].wanted_rx_events & (SERIAL_EVENT_RX_PARITY_ERROR | SERIAL_EVENT_RX_FRAMING_ERROR)) {
+            uart_data[index].event = SERIAL_EVENT_RX_PARITY_ERROR | SERIAL_EVENT_RX_FRAMING_ERROR;
+            if (obj->serial.uart->SCFSR & 1 << 2) {
+                uart_data[index].event = SERIAL_EVENT_RX_PARITY_ERROR;
+            } else if (obj->serial.uart->SCFSR & 1 << 3) {
+                uart_data[index].event = SERIAL_EVENT_RX_FRAMING_ERROR;
+            }
+            ((void (*)())uart_data[index].async_rx_callback)();
+        }
+        serial_rx_abort_asynch(obj);
+        
+        core_util_critical_section_enter();
+        if (obj->serial.uart->SCFSR & 0x93) {
+            err_read = obj->serial.uart->SCFSR;
+            obj->serial.uart->SCFSR = (err_read & ~0x93);
+        }
+        if (obj->serial.uart->SCLSR & 1) {
+            obj->serial.uart->SCLSR = 0;
+        }
+        core_util_critical_section_exit();
+        }
+    }
+
+static void uart0_tx_irq(void)  {
+    uart_tx_irq(SCIFTXI0_IRQn, 0);
+}
+static void uart0_rx_irq(void)  {
+    uart_rx_irq(SCIFRXI0_IRQn, 0);
+}
+static void uart0_er_irq(void) {
+    uart_err_irq(SCIFERI0_IRQn, 0);
+}
+
+static void uart1_tx_irq(void) {
+    uart_tx_irq(SCIFTXI1_IRQn, 1);
+}
+static void uart1_rx_irq(void)  {
+    uart_rx_irq(SCIFRXI1_IRQn, 1);
+}
+static void uart1_er_irq(void) {
+    uart_err_irq(SCIFERI1_IRQn, 1);
+}
+
+static void uart2_tx_irq(void) {
+    uart_tx_irq(SCIFTXI2_IRQn, 2);
+}
+static void uart2_rx_irq(void)  {
+    uart_rx_irq(SCIFRXI2_IRQn, 2);
+}
+static void uart2_er_irq(void) {
+    uart_err_irq(SCIFERI2_IRQn, 2);
+}
+
+static void uart3_tx_irq(void) {
+    uart_tx_irq(SCIFTXI3_IRQn, 3);
+}
+static void uart3_rx_irq(void)  {
+    uart_rx_irq(SCIFRXI3_IRQn, 3);
+}
+static void uart3_er_irq(void) {
+    uart_err_irq(SCIFERI3_IRQn, 3);
+}
+
+static void uart4_tx_irq(void) {
+    uart_tx_irq(SCIFTXI4_IRQn, 4);
+}
+static void uart4_rx_irq(void)  {
+    uart_rx_irq(SCIFRXI4_IRQn, 4);
+}
+static void uart4_er_irq(void) {
+    uart_err_irq(SCIFERI4_IRQn, 4);
+}
+
+#if defined(TARGET_RZA1H)
+static void uart5_tx_irq(void) {
+    uart_tx_irq(SCIFTXI5_IRQn, 5);
+}
+static void uart5_rx_irq(void) {
+    uart_rx_irq(SCIFRXI5_IRQn, 5);
+}
+static void uart5_er_irq(void) {
+    uart_err_irq(SCIFERI5_IRQn, 5);
+}
+
+static void uart6_tx_irq(void) {
+    uart_tx_irq(SCIFTXI6_IRQn, 6);
+}
+static void uart6_rx_irq(void) {
+    uart_rx_irq(SCIFRXI6_IRQn, 6);
+}
+static void uart6_er_irq(void) {
+    uart_err_irq(SCIFERI6_IRQn, 6);
+}
+
+static void uart7_tx_irq(void) {
+    uart_tx_irq(SCIFTXI7_IRQn, 7);
+}
+static void uart7_rx_irq(void) {
+    uart_rx_irq(SCIFRXI7_IRQn, 7);
+}
+static void uart7_er_irq(void) {
+    uart_err_irq(SCIFERI7_IRQn, 7);
+}
+#endif
+
+void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id) {
+    uart_data[obj->serial.index].irq_handler = handler;
+    uart_data[obj->serial.index].serial_irq_id = id;
+}
+
+static void serial_irq_set_irq(IRQn_Type IRQn, IRQHandler handler, uint32_t enable)
+{
+    if (enable) {
+        InterruptHandlerRegister(IRQn, (void (*)(uint32_t))handler);
+        GIC_SetPriority(IRQn, 5);
+        GIC_EnableIRQ(IRQn);
+    } else {
+        GIC_DisableIRQ(IRQn);
+    }
+}
+
+static void serial_irq_err_set(serial_t *obj, uint32_t enable)
+{
+    serial_irq_set_irq(irq_set_tbl[obj->serial.index][2], hander_set_tbl[obj->serial.index][2], enable);
+    serial_irq_set_irq(irq_set_tbl[obj->serial.index][3], hander_set_tbl[obj->serial.index][3], enable);
+}
+
+void serial_irq_set(serial_t *obj, SerialIrq irq, uint32_t enable) {
+    IRQn_Type IRQn;
+    IRQHandler handler;
+
+    IRQn = irq_set_tbl[obj->serial.index][irq];
+    handler = hander_set_tbl[obj->serial.index][irq];
+
+    if ((obj->serial.index >= 0) && (obj->serial.index <= 7)) {
+        serial_irq_set_irq(IRQn, handler, enable);
+    }
+}
+
+/******************************************************************************
+ * READ/WRITE
+ ******************************************************************************/
+int serial_getc(serial_t *obj) {
+    uint16_t err_read;
+    int data;
+
+    core_util_critical_section_enter();
+    if (obj->serial.uart->SCFSR & 0x93) {
+        err_read = obj->serial.uart->SCFSR;
+        obj->serial.uart->SCFSR = (err_read & ~0x93);
+    }
+    obj->serial.uart->SCSCR |= 0x0040;     // Set RIE
+    core_util_critical_section_exit();
+
+    if (obj->serial.uart->SCLSR & 0x0001) {
+        obj->serial.uart->SCLSR = 0u;      // ORER clear
+    }
+
+    while (!serial_readable(obj));
+    data = obj->serial.uart->SCFRDR & 0xff;
+
+    core_util_critical_section_enter();
+    err_read = obj->serial.uart->SCFSR;
+    obj->serial.uart->SCFSR = (err_read & 0xfffD);     // Clear RDF
+    core_util_critical_section_exit();
+
+    if (err_read & 0x80) {
+        data = -1;  //err
+    }
+    return data;
+}
+
+void serial_putc(serial_t *obj, int c) {
+    while (!serial_writable(obj));
+    obj->serial.uart->SCFTDR = c;
+    serial_put_done(obj);
+}
+
+static void serial_put_done(serial_t *obj)
+{
+    volatile uint16_t dummy_read;
+    
+    core_util_critical_section_enter();
+    dummy_read = obj->serial.uart->SCFSR;
+    obj->serial.uart->SCFSR = (dummy_read & 0xff9f);  // Clear TEND/TDFE
+    obj->serial.uart->SCSCR |= 0x0080;     // Set TIE
+    core_util_critical_section_exit();
+    }
+
+int serial_readable(serial_t *obj) {
+    return ((obj->serial.uart->SCFSR & 0x02) != 0);  // RDF
+}
+
+int serial_writable(serial_t *obj) {
+    return ((obj->serial.uart->SCFSR & 0x20) != 0);  // TDFE
+}
+
+void serial_clear(serial_t *obj) {
+    core_util_critical_section_enter();
+
+    obj->serial.uart->SCFCR |=  0x0006u;       // TFRST = 1, RFRST = 1
+    obj->serial.uart->SCFCR &= ~0x0006u;       // TFRST = 0, RFRST = 0
+    obj->serial.uart->SCFSR &= ~0x0093u;       // ER, BRK, RDF, DR = 0
+
+    core_util_critical_section_exit();
+    }
+
+void serial_pinout_tx(PinName tx) {
+    pinmap_pinout(tx, PinMap_UART_TX);
+}
+
+void serial_break_set(serial_t *obj) {
+    core_util_critical_section_enter();
+    // TxD Output(L)
+    obj->serial.uart->SCSPTR &= ~0x0001u;  // SPB2DT = 0
+    obj->serial.uart->SCSCR &= ~0x0020u;   // TE = 0 (Output disable)
+    core_util_critical_section_exit();
+    }
+
+void serial_break_clear(serial_t *obj) {
+    core_util_critical_section_enter();
+    obj->serial.uart->SCSCR |= 0x0020u; // TE = 1 (Output enable)
+    obj->serial.uart->SCSPTR |= 0x0001u; // SPB2DT = 1
+    core_util_critical_section_exit();
+    }
+
+#if DEVICE_SERIAL_FC
+void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, PinName txflow) {
+    // determine the UART to use
+
+    if (type == FlowControlRTSCTS) {
+        core_util_critical_section_enter();
+        obj->serial.uart->SCFCR |= 0x0008u;   // CTS/RTS enable
+        core_util_critical_section_exit();
+        pinmap_pinout(rxflow, PinMap_UART_RTS);
+        pinmap_pinout(txflow, PinMap_UART_CTS);
+    } else {
+        core_util_critical_section_enter();
+        obj->serial.uart->SCFCR &= ~0x0008u; // CTS/RTS diable
+        core_util_critical_section_exit();
+    }
+}
+#endif
+
+static uint8_t serial_available_buffer(serial_t *obj)
+{
+    return 1;
+    /* Faster but unstable way */
+    /*
+     uint16_t ret = 16 - ((obj->serial.uart->SCFDR >> 8) & 0x1F);
+     while (ret == 0) {
+     ret = 16 - ((obj->serial.uart->SCFDR >> 8) & 0x1F);
+     }
+     MBED_ASSERT(0 < ret && ret <= 16);
+     return ret;
+     */
+}
+
+#if DEVICE_SERIAL_ASYNCH
+
+/******************************************************************************
+ * ASYNCHRONOUS HAL
+ ******************************************************************************/
+
+int serial_tx_asynch(serial_t *obj, const void *tx, size_t tx_length, uint8_t tx_width, uint32_t handler, uint32_t event, DMAUsage hint)
+{
+    int i;
+    buffer_t *buf = &obj->tx_buff;
+    struct serial_global_data_s *data = uart_data + obj->serial.index;
+    
+    if (tx_length == 0) {
+        return 0;
+    }
+    
+    buf->buffer = (void *)tx;
+    buf->length = tx_length * tx_width / 8;
+    buf->pos = 0;
+    buf->width = tx_width;
+    data->tranferring_obj = obj;
+    data->async_tx_callback = handler;
+    serial_irq_set(obj, TxIrq, 1);
+    
+    while (!serial_writable(obj));
+    i = buf->length;
+    if (serial_available_buffer(obj) < i) {
+        i = serial_available_buffer(obj);
+    }
+    do {
+        uint8_t c = *(uint8_t *)buf->buffer;
+        obj->tx_buff.buffer = (uint8_t *)obj->tx_buff.buffer + 1;
+        ++buf->pos;
+        obj->serial.uart->SCFTDR = c;
+    } while (--i);
+    serial_put_done(obj);
+    
+    return buf->length;
+}
+
+void serial_rx_asynch(serial_t *obj, void *rx, size_t rx_length, uint8_t rx_width, uint32_t handler, uint32_t event, uint8_t char_match, DMAUsage hint)
+{
+    buffer_t *buf = &obj->rx_buff;
+    struct serial_global_data_s *data = uart_data + obj->serial.index;
+    
+    if (rx_length == 0) {
+        return;
+    }
+    
+    buf->buffer = rx;
+    buf->length = rx_length * rx_width / 8;
+    buf->pos = 0;
+    buf->width = rx_width;
+    obj->char_match = char_match;
+    obj->char_found = 0;
+    data->receiving_obj = obj;
+    data->async_rx_callback = handler;
+    data->event = 0;
+    data->wanted_rx_events = event;
+    
+    serial_irq_set(obj, RxIrq, 1);
+    serial_irq_err_set(obj, 1);
+}
+
+uint8_t serial_tx_active(serial_t *obj)
+{
+    return uart_data[obj->serial.index].tranferring_obj != NULL;
+}
+
+uint8_t serial_rx_active(serial_t *obj)
+{
+    return uart_data[obj->serial.index].receiving_obj != NULL;
+}
+
+int serial_irq_handler_asynch(serial_t *obj)
+{
+    return uart_data[obj->serial.index].event;
+}
+
+void serial_tx_abort_asynch(serial_t *obj)
+{
+    uart_data[obj->serial.index].tranferring_obj = NULL;
+    obj->serial.uart->SCFCR |= 1 << 2;
+    obj->serial.uart->SCFCR &= ~(1 << 2);
+}
+
+void serial_rx_abort_asynch(serial_t *obj)
+{
+    uart_data[obj->serial.index].receiving_obj = NULL;
+    obj->serial.uart->SCFCR |= 1 << 1;
+    obj->serial.uart->SCFCR &= ~(1 << 1);
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/sleep.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/sleep.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/sleep.c	(revision 429)
@@ -0,0 +1,199 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2018 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "sleep_api.h"
+#include "cmsis.h"
+#include "mbed_interface.h"
+#include "mbed_critical.h"
+#include "iodefine.h"
+#include "cpg_iobitmask.h"
+
+#if DEVICE_SLEEP
+static volatile uint8_t wk_CPGSTBCR3;
+static volatile uint8_t wk_CPGSTBCR4;
+static volatile uint8_t wk_CPGSTBCR5;
+static volatile uint8_t wk_CPGSTBCR6;
+static volatile uint8_t wk_CPGSTBCR7;
+static volatile uint8_t wk_CPGSTBCR8;
+static volatile uint8_t wk_CPGSTBCR9;
+static volatile uint8_t wk_CPGSTBCR10;
+static volatile uint8_t wk_CPGSTBCR11;
+static volatile uint8_t wk_CPGSTBCR12;
+#if defined(TARGET_RZA1H)  || defined(TARGET_VK_RZ_A1H)
+static volatile uint8_t wk_CPGSTBCR13;
+#endif
+static volatile uint8_t wk_CPGSTBREQ1;
+static volatile uint8_t wk_CPGSTBREQ2;
+
+typedef struct {
+    volatile uint8_t * p_wk_stbcr;
+    volatile uint8_t * p_stbcr;
+    volatile uint8_t * p_stbreq;
+    volatile uint8_t * p_stback;
+    uint8_t mstp;
+    uint8_t stbrq;
+} module_stanby_t;
+
+static const module_stanby_t module_stanby[] = {
+    {&wk_CPGSTBCR6,  &CPGSTBCR6,  &CPGSTBREQ1, &CPGSTBACK1, CPG_STBCR6_MSTP61,   CPG_STBREQ1_STBRQ13}, /* JCU */
+    {&wk_CPGSTBCR6,  &CPGSTBCR6,  &CPGSTBREQ1, &CPGSTBACK1, CPG_STBCR6_MSTP66,   CPG_STBREQ1_STBRQ10}, /* CEU */
+    {&wk_CPGSTBCR6,  &CPGSTBCR8,  &CPGSTBREQ1, &CPGSTBACK1, CPG_STBCR8_MSTP82,   CPG_STBREQ1_STBRQ12}, /* EthernetAVB */
+    {&wk_CPGSTBCR7,  &CPGSTBCR7,  &CPGSTBREQ2, &CPGSTBACK2, CPG_STBCR7_MSTP74,   CPG_STBREQ2_STBRQ26}, /* Ethernet */
+    {&wk_CPGSTBCR8,  &CPGSTBCR8,  &CPGSTBREQ2, &CPGSTBACK2, CPG_STBCR8_MSTP83,   CPG_STBREQ2_STBRQ27}, /* MediaLB */
+    {&wk_CPGSTBCR9,  &CPGSTBCR9,  &CPGSTBREQ2, &CPGSTBACK2, CPG_STBCR9_MSTP91,   CPG_STBREQ2_STBRQ25}, /* VDC5_0 */
+#if defined(TARGET_RZA1H)  || defined(TARGET_VK_RZ_A1H)
+    {&wk_CPGSTBCR8,  &CPGSTBCR8,  &CPGSTBREQ2, &CPGSTBACK2, CPG_STBCR8_MSTP85,   CPG_STBREQ2_STBRQ21}, /* IMR-LSD */
+    {&wk_CPGSTBCR8,  &CPGSTBCR8,  &CPGSTBREQ2, &CPGSTBACK2, CPG_STBCR8_MSTP86,   CPG_STBREQ2_STBRQ22}, /* IMR-LS2_1 */
+    {&wk_CPGSTBCR8,  &CPGSTBCR8,  &CPGSTBREQ2, &CPGSTBACK2, CPG_STBCR8_MSTP87,   CPG_STBREQ2_STBRQ23}, /* IMR-LS2_0 */
+    {&wk_CPGSTBCR9,  &CPGSTBCR9,  &CPGSTBREQ2, &CPGSTBACK2, CPG_STBCR9_MSTP90,   CPG_STBREQ2_STBRQ24}, /* VDC5_1 */
+    {&wk_CPGSTBCR10, &CPGSTBCR10, &CPGSTBREQ2, &CPGSTBACK2, CPG_STBCR10_MSTP100, CPG_STBREQ2_STBRQ20}, /* OpenVG */
+#endif
+    {0, 0, 0, 0, 0}  /* None */
+};
+
+static void module_standby_in(void) {
+    volatile uint32_t cnt;
+    volatile uint8_t dummy_8;
+    const module_stanby_t * p_module = &module_stanby[0];
+
+    while (p_module->p_wk_stbcr != 0) {
+        if ((*p_module->p_wk_stbcr & p_module->mstp) == 0) {
+            *p_module->p_stbreq |= p_module->stbrq;
+            dummy_8             = *p_module->p_stbreq;
+            for (cnt = 0; cnt < 1000; cnt++) {      // wait time
+                if ((*p_module->p_stback & p_module->stbrq) != 0) {
+                    break;
+                }
+            }
+            *p_module->p_stbcr |= p_module->mstp;
+            dummy_8            = *p_module->p_stbcr;
+        }
+        p_module++;
+    }
+    (void)dummy_8;
+}
+
+static void module_standby_out(void) {
+    volatile uint32_t cnt;
+    volatile uint8_t dummy_8;
+    const module_stanby_t * p_module = &module_stanby[0];
+
+    while (p_module->p_wk_stbcr != 0) {
+        if ((*p_module->p_wk_stbcr & p_module->mstp) == 0) {
+            *p_module->p_stbreq &= ~(p_module->stbrq);
+            dummy_8             = *p_module->p_stbreq;
+            for (cnt = 0; cnt < 1000; cnt++) {
+                if ((*p_module->p_stback & p_module->stbrq) == 0) {
+                    break;
+                }
+            }
+        }
+        p_module++;
+    }
+    (void)dummy_8;
+}
+
+void hal_sleep(void) {
+    // Transition to Sleep Mode
+    __WFI();
+}
+
+void hal_deepsleep(void) {
+    volatile uint8_t dummy_8;
+
+    core_util_critical_section_enter();
+    /* For powerdown the peripheral module, save current standby control register values(just in case) */
+    wk_CPGSTBCR3  = CPGSTBCR3;
+    wk_CPGSTBCR4  = CPGSTBCR4;
+    wk_CPGSTBCR5  = CPGSTBCR5;
+    wk_CPGSTBCR6  = CPGSTBCR6;
+    wk_CPGSTBCR7  = CPGSTBCR7;
+    wk_CPGSTBCR8  = CPGSTBCR8;
+    wk_CPGSTBCR9  = CPGSTBCR9;
+    wk_CPGSTBCR10 = CPGSTBCR10;
+    wk_CPGSTBCR11 = CPGSTBCR11;
+    wk_CPGSTBCR12 = CPGSTBCR12;
+#if defined(TARGET_RZA1H)  || defined(TARGET_VK_RZ_A1H)
+    wk_CPGSTBCR13 = CPGSTBCR13;
+#endif
+
+    /* MTU2 (for low power ticker) */
+    CPGSTBCR3  |= ~(CPG_STBCR3_MSTP33);
+    dummy_8    = CPGSTBCR3;
+    CPGSTBCR4  = 0xFF;
+    dummy_8    = CPGSTBCR4;
+    CPGSTBCR5  = 0xFF;
+    dummy_8    = CPGSTBCR5;
+    /* Realtime Clock, JCU, CEU */
+    CPGSTBCR6  |= ~(CPG_STBCR6_MSTP60 | CPG_STBCR6_MSTP61 | CPG_STBCR6_MSTP66);
+    dummy_8    = CPGSTBCR6;
+    /* Video Decoder0, Video Decoder1, Ethernet */
+    CPGSTBCR7  |= ~(CPG_STBCR7_MSTP77 | CPG_STBCR7_MSTP76 | CPG_STBCR7_MSTP74);
+    dummy_8    = CPGSTBCR7;
+    /* EthernetAVB, MediaLB, IMR-LSD, IMR-LS2_1, IMR-LS2_0 */
+    CPGSTBCR8  |= ~(CPG_STBCR8_MSTP82 | CPG_STBCR8_MSTP83 | CPG_STBCR8_MSTP85 | CPG_STBCR8_MSTP86 | CPG_STBCR8_MSTP87);
+    dummy_8    = CPGSTBCR8;
+    /* VDC5_1, SPI Multi I/O Bus Controller0 */
+    CPGSTBCR9  |= ~(CPG_STBCR9_MSTP90 | CPG_STBCR9_MSTP93);
+    dummy_8    = CPGSTBCR9;
+    /* OpenVG */
+    CPGSTBCR10 |= ~(CPG_STBCR10_MSTP100);
+    dummy_8    = CPGSTBCR10;
+    CPGSTBCR11 = 0xFF;
+    dummy_8    = CPGSTBCR11;
+    CPGSTBCR12 = 0xFF;
+    dummy_8    = CPGSTBCR12;
+#if defined(TARGET_RZA1H)  || defined(TARGET_VK_RZ_A1H)
+    CPGSTBCR13 = 0xFF;
+    dummy_8    = CPGSTBCR13;
+#endif
+
+    module_standby_in();
+
+    // Transition to Sleep Mode
+    __WFI();
+
+    /* Revert standby control register values */
+    CPGSTBCR3  = wk_CPGSTBCR3;
+    dummy_8    = CPGSTBCR3;
+    CPGSTBCR4  = wk_CPGSTBCR4;
+    dummy_8    = CPGSTBCR4;
+    CPGSTBCR5  = wk_CPGSTBCR5;
+    dummy_8    = CPGSTBCR5;
+    CPGSTBCR6  = wk_CPGSTBCR6;
+    dummy_8    = CPGSTBCR6;
+    CPGSTBCR7  = wk_CPGSTBCR7;
+    dummy_8    = CPGSTBCR7;
+    CPGSTBCR8  = wk_CPGSTBCR8;
+    dummy_8    = CPGSTBCR8;
+    CPGSTBCR9  = wk_CPGSTBCR9;
+    dummy_8    = CPGSTBCR9;
+    CPGSTBCR10 = wk_CPGSTBCR10;
+    dummy_8    = CPGSTBCR10;
+    CPGSTBCR11 = wk_CPGSTBCR11;
+    dummy_8    = CPGSTBCR11;
+    CPGSTBCR12 = wk_CPGSTBCR12;
+    dummy_8    = CPGSTBCR12;
+#if defined(TARGET_RZA1H)  || defined(TARGET_VK_RZ_A1H)
+    CPGSTBCR13 = wk_CPGSTBCR13;
+    dummy_8    = CPGSTBCR13;
+#endif
+
+    module_standby_out();
+    core_util_critical_section_exit();
+
+    (void)dummy_8;
+}
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/spi_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/spi_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/spi_api.c	(revision 429)
@@ -0,0 +1,536 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "mbed_assert.h"
+#include <math.h>
+
+#include "spi_api.h"
+#include "cmsis.h"
+#include "PeripheralPins.h"
+#include "mbed_error.h"
+#include "RZ_A1_Init.h"
+#include "mbed_drv_cfg.h"
+
+static const struct st_rspi *RSPI[] = RSPI_ADDRESS_LIST;
+
+static inline void spi_disable(spi_t *obj);
+static inline void spi_enable(spi_t *obj);
+static inline int spi_readable(spi_t *obj);
+static inline void spi_write(spi_t *obj, int value);
+static inline int spi_read(spi_t *obj);
+
+void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel) {
+    // determine the SPI to use
+    volatile uint8_t dummy;
+    uint32_t spi_mosi = pinmap_peripheral(mosi, PinMap_SPI_MOSI);
+    uint32_t spi_miso = pinmap_peripheral(miso, PinMap_SPI_MISO);
+    uint32_t spi_sclk = pinmap_peripheral(sclk, PinMap_SPI_SCLK);
+    uint32_t spi_ssel = pinmap_peripheral(ssel, PinMap_SPI_SSEL);
+    uint32_t spi_data = pinmap_merge(spi_mosi, spi_miso);
+    uint32_t spi_cntl = pinmap_merge(spi_sclk, spi_ssel);
+    uint32_t spi      = pinmap_merge(spi_data, spi_cntl);
+    
+    MBED_ASSERT((int)spi != NC);
+    
+    obj->spi.spi = (struct st_rspi *)RSPI[spi];
+    obj->spi.index = spi;
+    
+    // enable power and clocking
+    CPGSTBCR10 &= ~(0x80 >> spi);
+    dummy = CPGSTBCR10;
+    (void)dummy;
+    
+    obj->spi.spi->SPCR   = 0x00;  // CTRL to 0
+    obj->spi.spi->SPSCR  = 0x00;  // no sequential operation
+    obj->spi.spi->SSLP   = 0x00;  // SSL 'L' active
+    obj->spi.spi->SPDCR  = 0x20;  // byte access
+    obj->spi.spi->SPCKD  = 0x00;  // SSL -> enable CLK delay : 1RSPCK
+    obj->spi.spi->SSLND  = 0x00;  // CLK end -> SSL neg delay : 1RSPCK
+    obj->spi.spi->SPND   = 0x00;  // delay between CMD : 1RSPCK + 2P1CLK
+    obj->spi.spi->SPPCR  = 0x20;  // MOSI Idle fixed value equals 0
+    obj->spi.spi->SPBFCR = 0xf0;  // and set trigger count: read 1, write 1
+    obj->spi.spi->SPBFCR = 0x30;  // and reset buffer
+    
+    // pin out the spi pins
+    pinmap_pinout(mosi, PinMap_SPI_MOSI);
+    pinmap_pinout(miso, PinMap_SPI_MISO);
+    pinmap_pinout(sclk, PinMap_SPI_SCLK);
+    if ((int)ssel != NC) {
+        pinmap_pinout(ssel, PinMap_SPI_SSEL);
+    }
+}
+
+void spi_free(spi_t *obj) {}
+
+void spi_format(spi_t *obj, int bits, int mode, int slave) {
+    int      DSS;      // DSS (data select size)
+    int      polarity  = (mode & 0x2) ? 1 : 0;
+    int      phase     = (mode & 0x1) ? 1 : 0;
+    uint16_t tmp       = 0;
+    uint16_t mask      = 0xf03;
+    uint16_t wk_spcmd0;
+    uint8_t  splw;
+    
+    switch (mode) {
+        case 0:
+        case 1:
+        case 2:
+        case 3:
+            // Do Nothing
+            break;
+        default:
+            error("SPI format error");
+            return;
+    }
+    
+    switch (bits) {
+        case 8:
+            DSS  = 0x7;
+            splw = 0x20;
+            break;
+        case 16:
+            DSS  = 0xf;
+            splw = 0x40;
+            break;
+        case 32:
+            DSS  = 0x2;
+            splw = 0x60;
+            break;
+        default:
+            error("SPI module don't support other than 8/16/32bits");
+            return;
+    }
+    tmp |= phase;
+    tmp |= (polarity << 1);
+    tmp |= (DSS << 8);
+    obj->spi.bits = bits;
+    
+    spi_disable(obj);
+    wk_spcmd0 = obj->spi.spi->SPCMD0;
+    wk_spcmd0 &= ~mask;
+    wk_spcmd0 |= (mask & tmp);
+    obj->spi.spi->SPCMD0 = wk_spcmd0;
+    obj->spi.spi->SPDCR   = splw;
+    if (slave) {
+        obj->spi.spi->SPCR &=~(1 << 3);  // MSTR to 0
+    } else {
+        obj->spi.spi->SPCR |= (1 << 3);  // MSTR to 1
+    }
+    spi_enable(obj);
+}
+
+void spi_frequency(spi_t *obj, int hz) {
+    uint32_t  pclk_base;
+    uint32_t  div;
+    uint32_t  brdv = 0;
+    uint32_t  hz_max;
+    uint32_t  hz_min;
+    uint16_t  mask = 0x000c;
+    uint16_t  wk_spcmd0;
+    
+    /* set PCLK */
+    if (RZ_A1_IsClockMode0() == false) {
+        pclk_base = CM1_RENESAS_RZ_A1_P1_CLK;
+    } else {
+        pclk_base = CM0_RENESAS_RZ_A1_P1_CLK;
+    }
+    
+    hz_min = pclk_base / 2 / 256 / 8;
+    hz_max = pclk_base / 2;
+    if (((uint32_t)hz < hz_min) || ((uint32_t)hz > hz_max)) {
+        error("Couldn't setup requested SPI frequency");
+        return;
+    }
+    
+    div = (pclk_base / hz / 2);
+    while (div > 256) {
+        div >>= 1;
+        brdv++;
+    }
+    div  -= 1;
+    brdv  = (brdv << 2);
+    
+    spi_disable(obj);
+    obj->spi.spi->SPBR = div;
+    wk_spcmd0 = obj->spi.spi->SPCMD0;
+    wk_spcmd0 &= ~mask;
+    wk_spcmd0 |= (mask & brdv);
+    obj->spi.spi->SPCMD0 = wk_spcmd0;
+    spi_enable(obj);
+}
+
+static inline void spi_disable(spi_t *obj) {
+    obj->spi.spi->SPCR &= ~(1 << 6);       // SPE to 0
+}
+
+static inline void spi_enable(spi_t *obj) {
+    obj->spi.spi->SPCR |=  (1 << 6);       // SPE to 1
+}
+
+static inline int spi_readable(spi_t *obj) {
+    return obj->spi.spi->SPSR & (1 << 7);  // SPRF
+}
+
+static inline int spi_tend(spi_t *obj) {
+    return obj->spi.spi->SPSR & (1 << 6);  // TEND
+}
+
+static inline void spi_write(spi_t *obj, int value) {
+    if (obj->spi.bits == 8) {
+        obj->spi.spi->SPDR.UINT8[0]  = (uint8_t)value;
+    } else if (obj->spi.bits == 16) {
+        obj->spi.spi->SPDR.UINT16[0] = (uint16_t)value;
+    } else {
+        obj->spi.spi->SPDR.UINT32    = (uint32_t)value;
+    }
+}
+
+static inline int spi_read(spi_t *obj) {
+    int read_data;
+    
+    if (obj->spi.bits == 8) {
+        read_data = obj->spi.spi->SPDR.UINT8[0];
+    } else if (obj->spi.bits == 16) {
+        read_data = obj->spi.spi->SPDR.UINT16[0];
+    } else {
+        read_data = obj->spi.spi->SPDR.UINT32;
+    }
+    
+    return read_data;
+}
+
+int spi_master_write(spi_t *obj, int value) {
+    spi_write(obj, value);
+    while(!spi_tend(obj));
+    return spi_read(obj);
+}
+
+int spi_master_block_write(spi_t *obj, const char *tx_buffer, int tx_length,
+                           char *rx_buffer, int rx_length, char write_fill) {
+    int total = (tx_length > rx_length) ? tx_length : rx_length;
+
+    for (int i = 0; i < total; i++) {
+        char out = (i < tx_length) ? tx_buffer[i] : write_fill;
+        char in = spi_master_write(obj, out);
+        if (i < rx_length) {
+            rx_buffer[i] = in;
+        }
+    }
+
+    return total;
+}
+
+int spi_slave_receive(spi_t *obj) {
+    return (spi_readable(obj) && !spi_busy(obj)) ? (1) : (0);
+}
+
+int spi_slave_read(spi_t *obj) {
+    return spi_read(obj);
+}
+
+void spi_slave_write(spi_t *obj, int value) {
+    spi_write(obj, value);
+}
+
+int spi_busy(spi_t *obj) {
+    return 0;
+}
+
+#if DEVICE_SPI_ASYNCH
+
+#define SPI_NUM         5
+#define IRQ_NUM         2
+
+static void spi_irqs_set(spi_t *obj, uint32_t enable);
+static void spi_async_write(spi_t *obj);
+static void spi_async_read(spi_t *obj);
+
+static void spi0_rx_irq(void);
+static void spi0_er_irq(void);
+static void spi1_rx_irq(void);
+static void spi1_er_irq(void);
+static void spi2_rx_irq(void);
+static void spi2_er_irq(void);
+static void spi3_rx_irq(void);
+static void spi3_er_irq(void);
+static void spi4_rx_irq(void);
+static void spi4_er_irq(void);
+
+static const IRQn_Type irq_set_tbl[SPI_NUM][IRQ_NUM] = {
+    {RSPISPRI0_IRQn, RSPISPEI0_IRQn},
+    {RSPISPRI1_IRQn, RSPISPEI1_IRQn},
+    {RSPISPRI2_IRQn, RSPISPEI2_IRQn},
+    {RSPISPRI3_IRQn, RSPISPEI3_IRQn},
+    {RSPISPRI4_IRQn, RSPISPEI4_IRQn},
+};
+
+static const IRQHandler hander_set_tbl[SPI_NUM][IRQ_NUM] = {
+    {spi0_rx_irq, spi0_er_irq},
+    {spi1_rx_irq, spi1_er_irq},
+    {spi2_rx_irq, spi2_er_irq},
+    {spi3_rx_irq, spi3_er_irq},
+    {spi4_rx_irq, spi4_er_irq},
+};
+
+struct spi_global_data_s {
+    spi_t *async_obj;
+    uint32_t async_callback, event, wanted_events;
+};
+
+static struct spi_global_data_s spi_data[SPI_NUM];
+
+static void spi_rx_irq(IRQn_Type irq_num, uint32_t index)
+{
+    spi_t *obj = spi_data[index].async_obj;
+    if (obj->rx_buff.buffer && obj->rx_buff.pos < obj->rx_buff.length) {
+        spi_async_read(obj);
+    } else {
+        if (obj->rx_buff.buffer && obj->tx_buff.buffer && obj->tx_buff.pos < obj->tx_buff.length) {
+            spi_data[obj->spi.index].event = SPI_EVENT_INTERNAL_TRANSFER_COMPLETE;
+            if (spi_data[obj->spi.index].wanted_events & SPI_EVENT_COMPLETE) {
+                spi_data[obj->spi.index].event |= SPI_EVENT_COMPLETE;
+            }
+            spi_irqs_set(obj, 0);
+            spi_data[obj->spi.index].async_obj = NULL;
+            ((void (*)())spi_data[obj->spi.index].async_callback)();
+            return;
+        }
+        spi_read(obj);
+    }
+    if (obj->tx_buff.buffer) {
+        if (obj->tx_buff.pos == obj->tx_buff.length) {
+            spi_data[obj->spi.index].event = SPI_EVENT_INTERNAL_TRANSFER_COMPLETE;
+            if (spi_data[obj->spi.index].wanted_events & SPI_EVENT_COMPLETE) {
+                spi_data[obj->spi.index].event |= SPI_EVENT_COMPLETE;
+            }
+            spi_irqs_set(obj, 0);
+            spi_data[obj->spi.index].async_obj = NULL;
+            ((void (*)())spi_data[obj->spi.index].async_callback)();
+        } else {
+            spi_async_write(obj);
+        }
+    } else {
+        if (obj->rx_buff.pos == obj->rx_buff.length) {
+            spi_data[obj->spi.index].event = SPI_EVENT_INTERNAL_TRANSFER_COMPLETE;
+            if (spi_data[obj->spi.index].wanted_events & SPI_EVENT_COMPLETE) {
+                spi_data[obj->spi.index].event |= SPI_EVENT_COMPLETE;
+            }
+            spi_irqs_set(obj, 0);
+            spi_data[obj->spi.index].async_obj = NULL;
+            ((void (*)())spi_data[obj->spi.index].async_callback)();
+        } else {
+            spi_async_write(obj);
+        }
+    }
+}
+
+static void spi_err_irq(IRQn_Type irq_num, uint32_t index)
+{
+    spi_t *obj = spi_data[index].async_obj;
+    spi_abort_asynch(obj);
+    spi_data[index].event = SPI_EVENT_ERROR;
+    if (spi_data[index].wanted_events & SPI_EVENT_ERROR) {
+        ((void (*)())spi_data[index].async_callback)();
+    }
+}
+
+static void spi0_rx_irq(void) {
+    spi_rx_irq(RSPISPRI0_IRQn, 0);
+}
+static void spi0_er_irq(void) {
+    spi_err_irq(RSPISPEI0_IRQn, 0);
+}
+static void spi1_rx_irq(void) {
+    spi_rx_irq(RSPISPRI1_IRQn, 1);
+}
+static void spi1_er_irq(void) {
+    spi_err_irq(RSPISPEI1_IRQn, 1);
+}
+static void spi2_rx_irq(void) {
+    spi_rx_irq(RSPISPRI2_IRQn, 2);
+}
+static void spi2_er_irq(void) {
+    spi_err_irq(RSPISPEI2_IRQn, 2);
+}
+static void spi3_rx_irq(void) {
+    spi_rx_irq(RSPISPRI3_IRQn, 3);
+}
+static void spi3_er_irq(void) {
+    spi_err_irq(RSPISPEI3_IRQn, 3);
+}
+static void spi4_rx_irq(void) {
+    spi_rx_irq(RSPISPRI4_IRQn, 4);
+}
+static void spi4_er_irq(void) {
+    spi_err_irq(RSPISPEI4_IRQn, 4);
+}
+
+static void spi_irqs_set(spi_t *obj, uint32_t enable)
+{
+    int i;
+    const IRQn_Type *irqTable = irq_set_tbl[obj->spi.index];
+    const IRQHandler *handlerTable = hander_set_tbl[obj->spi.index];
+    for (i = 0; i < IRQ_NUM; ++i) {
+        if (enable) {
+            InterruptHandlerRegister(irqTable[i], handlerTable[i]);
+            GIC_SetPriority(irqTable[i], 5);
+            GIC_SetConfiguration(irqTable[i], 1);
+            GIC_EnableIRQ(irqTable[i]);
+        } else {
+            GIC_DisableIRQ(irqTable[i]);
+        }
+    }
+    if (enable) {
+        obj->spi.spi->SPCR |= (1 << 4) | (1 << 7);
+    } else {
+        obj->spi.spi->SPCR &= ~((1 << 4) | (1 << 7));
+    }
+}
+
+static void spi_async_write(spi_t *obj)
+{
+    uint8_t **width8;
+    uint16_t **width16;
+    uint32_t **width32;
+    
+    if (obj->tx_buff.buffer) {
+        switch (obj->tx_buff.width) {
+            case 8:
+                width8 = (uint8_t **)&obj->tx_buff.buffer;
+                spi_write(obj, **width8);
+                ++*width8;
+                obj->tx_buff.pos += sizeof(uint8_t);
+                break;
+                
+            case 16:
+                width16 = (uint16_t **)&obj->tx_buff.buffer;
+                spi_write(obj, **width16);
+                ++*width16;
+                obj->tx_buff.pos += sizeof(uint16_t);
+                break;
+                
+            case 32:
+                width32 = (uint32_t **)&obj->tx_buff.buffer;
+                spi_write(obj, **width32);
+                ++*width32;
+                obj->tx_buff.pos += sizeof(uint32_t);
+                break;
+                
+            default:
+                MBED_ASSERT(0);
+                break;
+        }
+    } else {
+        spi_write(obj, SPI_FILL_WORD);
+    }
+}
+
+static void spi_async_read(spi_t *obj)
+{
+    uint8_t **width8;
+    uint16_t **width16;
+    uint32_t **width32;
+    
+    switch (obj->rx_buff.width) {
+        case 8:
+            width8 = (uint8_t **)&obj->rx_buff.buffer;
+            **width8 = spi_read(obj);
+            ++*width8;
+            obj->rx_buff.pos += sizeof(uint8_t);
+            break;
+            
+        case 16:
+            width16 = (uint16_t **)&obj->rx_buff.buffer;
+            **width16 = spi_read(obj);
+            ++*width16;
+            obj->rx_buff.pos += sizeof(uint16_t);
+            break;
+            
+        case 32:
+            width32 = (uint32_t **)&obj->rx_buff.buffer;
+            **width32 = spi_read(obj);
+            ++*width32;
+            obj->rx_buff.pos += sizeof(uint32_t);
+            break;
+            
+        default:
+            MBED_ASSERT(0);
+            break;
+    }
+}
+
+/******************************************************************************
+ * ASYNCHRONOUS HAL
+ ******************************************************************************/
+
+void spi_master_transfer(spi_t *obj, const void *tx, size_t tx_length, void *rx, size_t rx_length, uint8_t bit_width, uint32_t handler, uint32_t event, DMAUsage hint)
+{
+    int i;
+    MBED_ASSERT(obj);
+    MBED_ASSERT(tx || rx);
+    MBED_ASSERT(tx && ! rx ? tx_length : 1);
+    MBED_ASSERT(rx && ! tx ? rx_length : 1);
+    MBED_ASSERT(obj->spi.spi->SPCR & (1 << 3)); /* Slave mode */
+    MBED_ASSERT(bit_width == 8 || bit_width == 16 || bit_width == 32);
+    
+    if (tx_length) {
+        obj->tx_buff.buffer = (void *)tx;
+    } else {
+        obj->tx_buff.buffer = NULL;
+    }
+    obj->tx_buff.length = tx_length * bit_width / 8;
+    obj->tx_buff.pos = 0;
+    obj->tx_buff.width = bit_width;
+    if (rx_length) {
+        obj->rx_buff.buffer = rx;
+    } else {
+        obj->rx_buff.buffer = NULL;
+    }
+    obj->rx_buff.length = rx_length * bit_width / 8;
+    obj->rx_buff.pos = 0;
+    obj->rx_buff.width = bit_width;
+    for (i = 0; i < (int)obj->rx_buff.length; i++) {
+        ((uint8_t *)obj->rx_buff.buffer)[i] = SPI_FILL_WORD;
+    }
+    
+    spi_data[obj->spi.index].async_callback = handler;
+    spi_data[obj->spi.index].async_obj = obj;
+    spi_data[obj->spi.index].event = 0;
+    spi_data[obj->spi.index].wanted_events = event;
+    
+    spi_irqs_set(obj, 1);
+    
+    spi_async_write(obj);
+}
+
+uint32_t spi_irq_handler_asynch(spi_t *obj)
+{
+    return spi_data[obj->spi.index].event;
+}
+
+uint8_t spi_active(spi_t *obj)
+{
+    return spi_data[obj->spi.index].async_obj != NULL;
+}
+
+void spi_abort_asynch(spi_t *obj)
+{
+    spi_disable(obj);
+    spi_irqs_set(obj, 0);
+    spi_data[obj->spi.index].async_obj = NULL;
+    spi_enable(obj);
+}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/spibsc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/spibsc.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/spibsc.h	(revision 429)
@@ -0,0 +1,154 @@
+/*******************************************************************************
+* DISCLAIMER
+* This software is supplied by Renesas Electronics Corporation and is only
+* intended for use with Renesas products. No other uses are authorized. This
+* software is owned by Renesas Electronics Corporation and is protected under
+* all applicable laws, including copyright laws.
+* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
+* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
+* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
+* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
+* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
+* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
+* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
+* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+* Renesas reserves the right, without notice, to make changes to this software
+* and to discontinue the availability of this software. By using this software,
+* you agree to the additional terms and conditions found by accessing the
+* following link:
+* http://www.renesas.com/disclaimer
+*
+* Copyright (C) 2016 Renesas Electronics Corporation. All rights reserved.
+*******************************************************************************/
+/******************************************************************************
+* File Name    : spibsc.h
+* $Rev: 12 $
+* $Date:: 2016-05-19 17:26:37 +0900#$
+* Description  : 
+******************************************************************************/
+#ifndef _SPIBSC_H_
+#define _SPIBSC_H_
+
+/******************************************************************************
+Includes <System Includes> , "Project Includes"
+******************************************************************************/
+#include "iodefine.h"
+
+/******************************************************************************
+Macro definitions
+******************************************************************************/
+#define SPIBSC_CMNCR_MD_EXTRD       (0u)
+#define SPIBSC_CMNCR_MD_SPI         (1u)
+
+#define SPIBSC_OUTPUT_LOW           (0u)
+#define SPIBSC_OUTPUT_HIGH          (1u)
+#define SPIBSC_OUTPUT_LAST          (2u)
+#define SPIBSC_OUTPUT_HiZ           (3u)
+
+#define SPIBSC_CMNCR_CPHAT_EVEN     (0u)
+#define SPIBSC_CMNCR_CPHAT_ODD      (1u)
+
+#define SPIBSC_CMNCR_CPHAR_ODD      (0u)
+#define SPIBSC_CMNCR_CPHAR_EVEN     (1u)
+
+#define SPIBSC_CMNCR_SSLP_LOW       (0u)
+#define SPIBSC_CMNCR_SSLP_HIGH      (1u)
+
+#define SPIBSC_CMNCR_CPOL_LOW       (0u)
+#define SPIBSC_CMNCR_CPOL_HIGH      (1u)
+
+#define SPIBSC_CMNCR_BSZ_SINGLE     (0u)
+#define SPIBSC_CMNCR_BSZ_DUAL       (1u)
+
+#define SPIBSC_DELAY_1SPBCLK        (0u)
+#define SPIBSC_DELAY_2SPBCLK        (1u)
+#define SPIBSC_DELAY_3SPBCLK        (2u)
+#define SPIBSC_DELAY_4SPBCLK        (3u)
+#define SPIBSC_DELAY_5SPBCLK        (4u)
+#define SPIBSC_DELAY_6SPBCLK        (5u)
+#define SPIBSC_DELAY_7SPBCLK        (6u)
+#define SPIBSC_DELAY_8SPBCLK        (7u)
+
+
+#define SPIBSC_BURST_1              (0x00u)
+#define SPIBSC_BURST_2              (0x01u)
+#define SPIBSC_BURST_3              (0x02u)
+#define SPIBSC_BURST_4              (0x03u)
+#define SPIBSC_BURST_5              (0x04u)
+#define SPIBSC_BURST_6              (0x05u)
+#define SPIBSC_BURST_7              (0x06u)
+#define SPIBSC_BURST_8              (0x07u)
+#define SPIBSC_BURST_9              (0x08u)
+#define SPIBSC_BURST_10             (0x09u)
+#define SPIBSC_BURST_11             (0x0au)
+#define SPIBSC_BURST_12             (0x0bu)
+#define SPIBSC_BURST_13             (0x0cu)
+#define SPIBSC_BURST_14             (0x0du)
+#define SPIBSC_BURST_15             (0x0eu)
+#define SPIBSC_BURST_16             (0x0fu)
+
+#define SPIBSC_BURST_DISABLE        (0u)
+#define SPIBSC_BURST_ENABLE         (1u)
+
+#define SPIBSC_DRCR_RCF_EXE         (1u)
+
+#define SPIBSC_SSL_NEGATE           (0u)
+#define SPIBSC_TRANS_END            (1u)
+
+#define SPIBSC_1BIT                 (0u)
+#define SPIBSC_2BIT                 (1u)
+#define SPIBSC_4BIT                 (2u)
+
+#define SPIBSC_OUTPUT_DISABLE       (0u)
+#define SPIBSC_OUTPUT_ENABLE        (1u)
+#define SPIBSC_OUTPUT_ADDR_24       (0x07u)
+#define SPIBSC_OUTPUT_ADDR_32       (0x0fu)
+#define SPIBSC_OUTPUT_OPD_3         (0x08u)
+#define SPIBSC_OUTPUT_OPD_32        (0x0cu)
+#define SPIBSC_OUTPUT_OPD_321       (0x0eu)
+#define SPIBSC_OUTPUT_OPD_3210      (0x0fu)
+
+#define SPIBSC_OUTPUT_SPID_8        (0x08u)
+#define SPIBSC_OUTPUT_SPID_16       (0x0cu)
+#define SPIBSC_OUTPUT_SPID_32       (0x0fu)
+
+#define SPIBSC_SPISSL_NEGATE        (0u)
+#define SPIBSC_SPISSL_KEEP          (1u)
+
+#define SPIBSC_SPIDATA_DISABLE      (0u)
+#define SPIBSC_SPIDATA_ENABLE       (1u)
+
+#define SPIBSC_SPI_DISABLE          (0u)
+#define SPIBSC_SPI_ENABLE           (1u)
+
+
+/* Use for setting of the DME bit of "data read enable register"(DRENR) */
+#define SPIBSC_DUMMY_CYC_DISABLE    (0u)
+#define SPIBSC_DUMMY_CYC_ENABLE     (1u)
+
+/* Use for setting of the DMCYC [2:0] bit of "data read dummy cycle register"(DRDMCR) */
+#define SPIBSC_DUMMY_1CYC           (0u)
+#define SPIBSC_DUMMY_2CYC           (1u)
+#define SPIBSC_DUMMY_3CYC           (2u)
+#define SPIBSC_DUMMY_4CYC           (3u)
+#define SPIBSC_DUMMY_5CYC           (4u)
+#define SPIBSC_DUMMY_6CYC           (5u)
+#define SPIBSC_DUMMY_7CYC           (6u)
+#define SPIBSC_DUMMY_8CYC           (7u)
+
+/* Use for setting of "data read DDR enable register"(DRDRENR) */
+#define SPIBSC_SDR_TRANS            (0u)
+#define SPIBSC_DDR_TRANS            (1u)
+
+/* Use for setting the CKDLY regsiter */
+#define SPIBSC_CKDLY_DEFAULT        (0x0000A504uL)    /* Initial value */
+#define SPIBSC_CKDLY_TUNING         (0x0000A50AuL)    /* Shorten the data input setup time and extend the data hold time */
+
+/* Use for setting the SPODLY regsiter */
+#define SPIBSC_SPODLY_DEFAULT       (0xA5000000uL)    /* Initial value */
+#define SPIBSC_SPODLY_TUNING        (0xA5001111uL)    /* Delay the data output delay/hold/buffer-on/buffer-off time */
+
+#endif /* _SPIBSC_H_ */
+
+/* End of File */
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/trng_api.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/trng_api.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/trng_api.c	(revision 429)
@@ -0,0 +1,43 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2017 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if defined(DEVICE_TRNG)
+#include "trng_api.h"
+
+#if defined(TARGET_GR_LYCHEE) || defined(TARGET_RZA1H)
+
+extern void trng_init_esp32(void);
+extern void trng_free_esp32(void);
+extern int trng_get_bytes_esp32(uint8_t *output, size_t length, size_t *output_length);
+
+void trng_init(trng_t *obj)
+{
+    trng_init_esp32();
+}
+
+void trng_free(trng_t *obj)
+{
+    trng_free_esp32();
+}
+
+int trng_get_bytes(trng_t *obj, uint8_t *output, size_t length, size_t *output_length)
+{
+    return trng_get_bytes_esp32(output, length, output_length);
+}
+#else
+#error "There is no initialization processing."
+#endif
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/us_ticker.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/us_ticker.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/us_ticker.c	(revision 429)
@@ -0,0 +1,90 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2006-2013 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "us_ticker_api.h"
+#include "mbed_drv_cfg.h"
+
+#define SHIFT_NUM      5  /* P0/32 */
+
+static int us_ticker_inited = 0;
+
+void us_ticker_init(void)
+{
+    GIC_DisableIRQ(OSTMI1TINT_IRQn);
+    GIC_ClearPendingIRQ(OSTMI1TINT_IRQn);
+
+    /* Power Control for Peripherals      */
+    CPGSTBCR5 &= ~(CPG_STBCR5_BIT_MSTP50); /* enable OSTM1 clock */
+
+    if (us_ticker_inited) return;
+    us_ticker_inited = 1;
+
+    // timer settings
+    OSTM1TT   = 0x01;    /* Stop the counter and clears the OSTM1TE bit.     */
+    OSTM1CTL  = 0x02;    /* Free running timer mode. Interrupt disabled when star counter  */
+
+    OSTM1TS   = 0x1;     /* Start the counter and sets the OSTM0TE bit.     */
+
+    // INTC settings
+    InterruptHandlerRegister(OSTMI1TINT_IRQn, (void (*)(uint32_t))us_ticker_irq_handler);
+    GIC_SetPriority(OSTMI1TINT_IRQn, 5);
+    GIC_SetConfiguration(OSTMI1TINT_IRQn, 3);
+}
+
+void us_ticker_free(void)
+{
+    GIC_DisableIRQ(OSTMI1TINT_IRQn);
+    GIC_ClearPendingIRQ(OSTMI1TINT_IRQn);
+
+    /* Power Control for Peripherals      */
+    CPGSTBCR5 |= (CPG_STBCR5_BIT_MSTP50); /* disable OSTM1 clock */
+}
+
+uint32_t us_ticker_read()
+{
+    return (uint32_t)(OSTM1CNT >> SHIFT_NUM);
+}
+
+void us_ticker_set_interrupt(timestamp_t timestamp)
+{
+    OSTM1CMP = (uint32_t)(timestamp << SHIFT_NUM);
+    GIC_EnableIRQ(OSTMI1TINT_IRQn);
+}
+
+void us_ticker_fire_interrupt(void)
+{
+    GIC_SetPendingIRQ(OSTMI1TINT_IRQn);
+    GIC_EnableIRQ(OSTMI1TINT_IRQn);
+}
+
+void us_ticker_disable_interrupt(void)
+{
+    GIC_DisableIRQ(OSTMI1TINT_IRQn);
+}
+
+void us_ticker_clear_interrupt(void)
+{
+    GIC_ClearPendingIRQ(OSTMI1TINT_IRQn);
+}
+
+const ticker_info_t* us_ticker_get_info()
+{
+    static const ticker_info_t info = {
+        (uint32_t)((float)RENESAS_RZ_A1_P0_CLK / (float)(1 << SHIFT_NUM) + 0.5f),
+        (32 - SHIFT_NUM)
+    };
+    return &info;
+}
+
Index: EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/mbed_rtx.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/mbed_rtx.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/mbed/targets/TARGET_RENESAS/mbed_rtx.h	(revision 429)
@@ -0,0 +1,48 @@
+/* mbed Microcontroller Library
+ * Copyright (c) 2016 ARM Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MBED_MBED_RTX_H
+#define MBED_MBED_RTX_H
+
+#include <stdint.h>
+
+#if defined(TARGET_RZ_A1H) || defined(TARGET_VK_RZ_A1H) || defined(TARGET_GR_LYCHEE)
+
+#if defined(__CC_ARM)
+    extern char Image$$ARM_LIB_STACK$$Base[];
+    extern char Image$$ARM_LIB_STACK$$ZI$$Limit[];
+    extern char Image$$ARM_LIB_HEAP$$Base[];
+    #define ISR_STACK_START       ((unsigned char*)Image$$ARM_LIB_STACK$$Base)
+    #define ISR_STACK_SIZE        ((uint32_t)((uint32_t)Image$$ARM_LIB_STACK$$ZI$$Limit - (uint32_t)Image$$ARM_LIB_STACK$$Base))
+    #define INITIAL_SP            (Image$$ARM_LIB_STACK$$ZI$$Limit)
+    #define HEAP_START            ((unsigned char*)Image$$ARM_LIB_HEAP$$Base)
+    #define HEAP_SIZE             ((uint32_t)((uint32_t)ISR_STACK_START - (uint32_t)HEAP_START))
+#elif defined(__GNUC__)
+    extern uint32_t               __StackTop;
+    extern uint32_t               __StackLimit;
+    extern uint32_t               __end__;
+    #define ISR_STACK_START       ((unsigned char*)&__StackLimit)
+    #define ISR_STACK_SIZE        ((uint32_t)((uint32_t)&__StackTop - (uint32_t)&__StackLimit))
+    #define INITIAL_SP            (&__StackTop)
+    #define HEAP_START            ((unsigned char*)&__end__)
+    #define HEAP_SIZE             ((uint32_t)((uint32_t)ISR_STACK_START - (uint32_t)HEAP_START))
+#elif defined(__ICCARM__)
+    /* No region declarations needed */
+#else
+    #error "no toolchain defined"
+#endif
+#endif
+
+#endif  // MBED_MBED_RTX_H
Index: EcnlProtoTool/trunk/asp3_dcre/sample/Makefile
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/Makefile	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/Makefile	(revision 429)
@@ -6,5 +6,5 @@
 #  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
 #                              Toyohashi Univ. of Technology, JAPAN
-#  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+#  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -91,4 +91,9 @@
 
 #
+#  TECS関係ファイルのディレクトリの定義
+#
+TECSDIR = @(TECSDIR)
+
+#
 #  トレースログを取得するかどうかの定義
 #
@@ -119,7 +124,8 @@
 
 #
-#  依存関係ファイルを置くディレクトリの定義
-#
-DEPDIR = @(DEPDIR)
+#  中間オブジェクトファイルと依存関係ファイルを置くディレクトリの定義
+#
+OBJDIR = @(OBJDIR)
+DEPDIR = @(OBJDIR)
 
 #
@@ -149,4 +155,6 @@
 	-include $(TECSGENDIR)/Makefile.tecsgen
 endif
+
+TINETDIR = 
 
 #
@@ -191,5 +199,5 @@
 	APPL_COBJS := @(APPLOBJS)
 endif
-APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
+APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o mbed_stub.o
 APPL_CFLAGS := $(APPL_CFLAGS)
 ifdef APPLDIRS
@@ -197,36 +205,35 @@
 endif
 
-#
-#  ネットワークサービスの定義
-#
-
-NO_USE_TINET_LIBRARY = true
-
-#  ネットワークインタフェースの選択、何れか一つ選択する。
-
-NET_IF = ether
-
-#  イーサネット・ディバイスドライバの選択
-
-NET_DEV = if_mbed
-
-#  ネットワーク層の選択
-
-#SUPPORT_INET6 = true
-SUPPORT_INET4 = true
-
-#  API に組込む機能の選択
-
-#API_CFG_IP4MAPPED_ADDR = true
-
-#  トランスポート層の選択
-
-SUPPORT_TCP = true
-#SUPPORT_UDP = true
-
-#
-#  システムサービスの Makefile のインクルード
-#
-include $(SRCDIR)/tinet/Makefile.tinet
+ifdef TINETDIR
+	#
+	#  ネットワークサービスの定義
+	#
+	NO_USE_TINET_LIBRARY = true
+
+	#  ネットワークインタフェースの選択、何れか一つ選択する。
+	NET_IF = ether
+
+	#  イーサネット・ディバイスドライバの選択
+	NET_DEV = if_mbed
+
+	#  ネットワーク層の選択
+	#SUPPORT_INET6 = true
+	SUPPORT_INET4 = true
+
+	#  API に組込む機能の選択
+	#API_CFG_IP4MAPPED_ADDR = true
+
+	#  トランスポート層の選択
+	SUPPORT_TCP = true
+	#SUPPORT_UDP = true
+
+	# IGMPを有効に設定
+	#SUPPORT_IGMP = true
+
+	#
+	#  ネットワークサービスの Makefile のインクルード
+	#
+	include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
+endif
 
 #
@@ -236,15 +243,23 @@
 				$(SYSSVC_DIRS) $(SRCDIR)/syssvc
 SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
-SYSSVC_COBJS := $(INIT_TECS_COBJ) $(TECS_COBJS) $(SYSSVC_COBJS) \
-				@(SYSSVCOBJS) $(CXXRTS)
+SYSSVC_COBJS := $(SYSSVC_COBJS) $(TECS_COBJS) \
+				$(INIT_TECS_COBJ) $(CXXRTS)
 SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
 INCLUDES := $(INCLUDES) -I$(TECSGENDIR) -I$(SRCDIR)/tecs_kernel
 
 #
+#  トレースログ記録のサンプルコードに関する定義
+#
+ifdef ENABLE_TRACE
+	COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
+	SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
+endif
+
+#
 #  ターゲットファイル
 #
 .PHONY: all
 ifndef OMIT_TECS
-all: tecs
+all: tecs | $(DEPDIR)
 #	@$(MAKE) check
 	@$(MAKE) check $(OBJNAME).bin
@@ -261,13 +276,21 @@
 #  コンフィギュレータに関する定義
 #
-CFG_TABS := --api-table $(SRCDIR)/tinet/tcpip_api.def:tcpip \
+CFG_KERNEL := --kernel asp
+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 $(TINET_ROOT)/tcpip_sym.def \
 			--symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
+endif
 CFG_ASMOBJS := $(CFG_ASMOBJS)
 CFG_COBJS := kernel_cfg.o $(CFG_COBJS)
-CFG_OBJS := $(CFG_ASMOBJS) $(CFG_COBJS)
+CFG_CFLAGS := -DTOPPERS_CB_TYPE_ONLY $(CFG_CFLAGS)
+
 CFG2_OUT_SRCS := kernel_cfg.h kernel_cfg.c $(CFG2_OUT_SRCS)
-CFG_CFLAGS := -DTOPPERS_CB_TYPE_ONLY $(CFG_CFLAGS)
 
 #
@@ -300,7 +323,5 @@
 					$(foreach file,$(KERNEL_FCSRCS),$(file:.c=.o))
 endif
-ifdef OMIT_OFFSET_H
-	OFFSET_H =
-else
+ifdef TARGET_OFFSET_TRB
 	OFFSET_H = offset.h
 endif
@@ -318,5 +339,5 @@
 endif
 ifndef TARGET_TCPIP_TRB
-	TARGET_TCPIP_TRB := $(SRCDIR)/tinet/tinet.trb
+	TARGET_TCPIP_TRB := $(SRCDIR)/$(TINETDIR)/tinet.trb
 endif
 
@@ -330,9 +351,24 @@
 
 #
+#  中間オブジェクトファイルを置くディレクトリの処理
+#
+APPL_ASMOBJS   := $(addprefix $(OBJDIR)/, $(APPL_ASMOBJS))
+APPL_CXXOBJS   := $(addprefix $(OBJDIR)/, $(APPL_CXXOBJS))
+APPL_COBJS     := $(addprefix $(OBJDIR)/, $(APPL_COBJS))
+SYSSVC_ASMOBJS := $(addprefix $(OBJDIR)/, $(SYSSVC_ASMOBJS))
+SYSSVC_COBJS   := $(addprefix $(OBJDIR)/, $(SYSSVC_COBJS))
+KERNEL_ASMOBJS := $(addprefix $(OBJDIR)/, $(KERNEL_ASMOBJS))
+KERNEL_COBJS   := $(addprefix $(OBJDIR)/, $(KERNEL_COBJS))
+KERNEL_LCOBJS  := $(addprefix $(OBJDIR)/, $(KERNEL_LCOBJS))
+CFG_ASMOBJS    := $(addprefix $(OBJDIR)/, $(CFG_ASMOBJS))
+CFG_COBJS      := $(addprefix $(OBJDIR)/, $(CFG_COBJS))
+
+#
 #  コンパイルのための変数の定義
 #
+APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
+SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS)
 KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
-SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS)
-APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
+CFG_OBJS = $(CFG_ASMOBJS) $(CFG_COBJS)
 ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
 											$(END_OBJS) $(HIDDEN_OBJS)
@@ -368,5 +404,5 @@
 tecs $(TECSGEN_SRCS) $(TECS_HEADERS): $(TECSGEN_TIMESTAMP) ;
 $(TECSGEN_TIMESTAMP): $(APPL_CDL) $(TECS_IMPORTS)
-	$(TECSGEN) $< -R $(INCLUDES) --cpp "$(TECS_CPP)" -g $(TECSGENDIR)
+	$(TECSGEN) $< -R $(INCLUDES) --cpp "$(subst ", \", $(TECS_CPP))" -g $(TECSGENDIR)
 
 #
@@ -375,10 +411,10 @@
 cfg1_out.c cfg1_out.db: cfg1_out.timestamp ;
 cfg1_out.timestamp: $(APPL_CFG) $(TECSGEN_TIMESTAMP)
-	$(CFG) --pass 1 --kernel asp $(INCLUDES) $(CFG_TABS) \
+	$(CFG) --pass 1 $(CFG_KERNEL) $(INCLUDES) $(CFG_TABS) \
 						-M $(DEPDIR)/cfg1_out_c.d $(TARGET_KERNEL_CFG) $<
 
-$(CFG1_OUT): $(START_OBJS) cfg1_out.o $(CFG_DMY) $(END_OBJS) $(HIDDEN_OBJS)
+$(CFG1_OUT): $(START_OBJS) $(OBJDIR)/cfg1_out.o $(CFG_DMY) $(END_OBJS) $(HIDDEN_OBJS)
 	$(LINK) $(CFLAGS) $(LDFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
-						$(START_OBJS) cfg1_out.o $(CFG_DMY) $(END_OBJS)
+						$(START_OBJS) $(OBJDIR)/cfg1_out.o $(CFG_DMY) $(LIBS) $(END_OBJS)
 
 cfg1_out.syms: $(CFG1_OUT)
@@ -390,5 +426,5 @@
 $(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) -T $(TARGET_TCPIP_TRB):tcpip -T $(TARGET_KERNEL_TRB):kernel
+	$(CFG) --pass 2 $(CFG_KERNEL) $(INCLUDES) $(CFG_TRB)
 
 #
@@ -397,5 +433,5 @@
 $(OFFSET_H): offset.timestamp ;
 offset.timestamp: cfg1_out.db cfg1_out.syms cfg1_out.srec
-	$(CFG) --pass 2 -O --kernel asp $(INCLUDES) -T $(TARGET_OFFSET_TRB) \
+	$(CFG) --pass 2 -O $(CFG_KERNEL) $(INCLUDES) -T $(TARGET_OFFSET_TRB) \
 				--rom-symbol cfg1_out.syms --rom-image cfg1_out.srec
 
@@ -409,7 +445,15 @@
 
 #
+#  並列makeのための依存関係の定義
+#
+$(APPL_OBJS) $(SYSSVC_OBJS): | kernel_cfg.timestamp
+$(APPL_ASMOBJS) $(SYSSVC_ASMOBJS) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
+														| offset.timestamp
+
+#
 #  特別な依存関係の定義
 #
-tBannerMain.o: $(filter-out tBannerMain.o,$(ALL_OBJS)) $(LIBS_DEP)
+$(OBJDIR)/@(BANNEROBJ): $(filter-out $(OBJDIR)/@(BANNEROBJ),$(ALL_OBJS)) \
+																$(LIBS_DEP)
 
 #
@@ -417,7 +461,13 @@
 #
 $(OBJFILE): $(ALL_OBJS) $(LIBS_DEP)
-	$(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) \
+	$(LINK) $(CFLAGS) $(LDFLAGS) $(OBJ_LDFLAGS) -o $(OBJFILE) -Wl,-Map=$(OBJNAME).map,--cref \
 			$(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
 			$(ALL_LIBS) $(END_OBJS)
+
+#
+#  依存関係フォルダの作成
+#
+$(DEPDIR):
+	mkdir $@
 
 #
@@ -445,5 +495,5 @@
 check: check.timestamp ;
 check.timestamp: cfg2_out.db $(OBJNAME).syms $(OBJNAME).srec
-	$(CFG) --pass 3 --kernel asp -O $(INCLUDES) -T $(TARGET_CHECK_TRB) \
+	$(CFG) --pass 3 $(CFG_KERNEL) -O $(INCLUDES) -T $(TARGET_CHECK_TRB) \
 				--rom-symbol $(OBJNAME).syms --rom-image $(OBJNAME).srec
 	@echo "configuration check passed"
@@ -454,5 +504,5 @@
 .PHONY: clean
 clean:
-	rm -f \#* *~ *.o $(DEPDIR)/*.d $(CLEAN_FILES) check.timestamp
+	rm -f \#* *~ $(OBJDIR)/*.o $(DEPDIR)/*.d $(CLEAN_FILES) check.timestamp
 	rm -f $(OBJFILE) $(OBJNAME).syms $(OBJNAME).srec $(OBJNAME).bin
 	rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS) cfg2_out.db
@@ -468,5 +518,5 @@
 cleankernel:
 	rm -f $(OFFSET_H) $(KERNEL_LIB_OBJS)
-	rm -f $(KERNEL_LIB_OBJS:%.o=$(DEPDIR)/%.d)
+	rm -f $(KERNEL_LIB_OBJS:$(OBJDIR)/%.o=$(DEPDIR)/%.d)
 
 .PHONY: realclean
@@ -480,15 +530,15 @@
 #  のみを付けてコンパイルする．
 #
-ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
+ALL_CFG_COBJS = $(CFG_COBJS) $(OBJDIR)/cfg1_out.o
 ALL_CFG_ASMOBJS = $(CFG_ASMOBJS)
 
-$(ALL_CFG_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
-
-$(ALL_CFG_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(CFG_CFLAGS) $<
-
-$(ALL_CFG_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
+$(ALL_CFG_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
 
 #
@@ -541,64 +591,64 @@
 #  コンパイルルールの定義
 #
-$(KERNEL_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_LCOBJS): %.o:
-	$(CC) -DTOPPERS_$(*F) -o $@ -c -MD -MP -MF $(DEPDIR)/$*.d \
+$(KERNEL_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_LCOBJS): $(OBJDIR)/%.o:
+	$(CC) -c -o $@ -DTOPPERS_$(*F) -MD -MP -MF $(DEPDIR)/$*.d \
 									$(CFLAGS) $(KERNEL_CFLAGS) $<
 
-$(KERNEL_LCOBJS:.o=.s): %.s:
-	$(CC) -DTOPPERS_$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(SYSSVC_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(SYSSVC_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(SYSSVC_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(APPL_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_CXXOBJS): %.o: %.cpp
-	$(CXX) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_CXXOBJS:.o=.s): %.s: %.cpp
-	$(CXX) -S $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+$(KERNEL_LCOBJS:$(OBJDIR)/%.o=%.s): %.s:
+	$(CC) -S -o $@ -DTOPPERS_$(*F) $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(SYSSVC_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(APPL_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS): $(OBJDIR)/%.o: %.cpp
+	$(CXX) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS:$(OBJDIR)/%.o=%.s): %.s: %.cpp
+	$(CXX) -S -o $@ $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
 
 #
 #  デフォルトコンパイルルールを上書き
 #
-%.o: %.c
+$(OBJDIR)/%.o: %.c
 	@echo "*** Default compile rules should not be used."
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
 
 %.s: %.c
 	@echo "*** Default compile rules should not be used."
-	$(CC) -S $(CFLAGS) $<
-
-%.o: %.cpp
+	$(CC) -S -o $@ $(CFLAGS) $<
+
+$(OBJDIR)/%.o: %.cpp
 	@echo "*** Default compile rules should not be used."
-	$(CXX) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CXX) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
 
 %.s: %.cpp
 	@echo "*** Default compile rules should not be used."
-	$(CXX) -S $(CFLAGS) $<
-
-%.o: %.S
+	$(CXX) -S -o $@ $(CFLAGS) $<
+
+$(OBJDIR)/%.o: %.S
 	@echo "*** Default compile rules should not be used."
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -48,23 +48,28 @@
  *  プログラムの概要:
  *
- *  ユーザインタフェースを受け持つメインタスク（タスクID: MAIN_TASK，優
- *  先度: MAIN_PRIORITY）と，3つの並行実行されるタスク（タスクID:
- *  TASK1～TASK3，初期優先度: MID_PRIORITY）で構成される．また，起動周
- *  期が2秒の周期ハンドラ（周期ハンドラID: CYCHDR1）を用いる．
- *
- *  並行実行されるタスクは，task_loop回空ループを実行する度に，タスクが
- *  実行中であることをあらわすメッセージを表示する．空ループを実行する
- *  のは，空ループなしでメッセージを出力すると，多量のメッセージが出力
- *  され，プログラムの動作が確認しずらくなるためである．また，低速なシ
+ *  ユーザインタフェースを受け持つメインタスク（MAIN_TASK）と，3つの並
+ *  行実行されるタスク（TASK1～TASK3），例外処理タスク（EXC_TASK）の5
+ *  つのタスクを用いる．これらの他に，システムログタスクが動作する．ま
+ *  た，周期ハンドラ，アラームハンドラ，割込みサービスルーチン，CPU例
+ *  外ハンドラをそれぞれ1つ用いる．
+ *
+ *  並行実行されるタスクは，task_loop回のループを実行する度に，タスク
+ *  が実行中であることをあらわすメッセージを表示する．ループを実行する
+ *  のは，プログラムの動作を確認しやすくするためである．また，低速なシ
  *  リアルポートを用いてメッセージを出力する場合に，すべてのメッセージ
  *  が出力できるように，メッセージの量を制限するという理由もある．
  *
- *  周期ハンドラは，三つの優先度（HIGH_PRIORITY，MID_PRIORITY，
- *  LOW_PRIORITY）のレディキューを回転させる．プログラムの起動直後は，
- *  周期ハンドラは停止状態になっている．
- *
- *  メインタスクは，シリアルI/Oポートからの文字入力を行い（文字入力を
- *  待っている間は，並行実行されるタスクが実行されている），入力された
- *  文字に対応した処理を実行する．入力された文字と処理の関係は次の通り．
+ *  周期ハンドラ，アラームハンドラ，割込みサービスルーチンは，3つの優
+ *  先度（HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY）のレディキューを
+ *  回転させる．周期ハンドラは，プログラムの起動直後は停止状態になって
+ *  いる．
+ *
+ *  CPU例外ハンドラは，CPU例外からの復帰が可能な場合には，例外処理タス
+ *  クを起動する．例外処理タスクは，CPU例外を起こしたタスクに対して，
+ *  終了要求を行う．
+ *
+ *  メインタスクは，シリアルポートからの文字入力を行い（文字入力を待っ
+ *  ている間は，並行実行されるタスクが実行されている），入力された文字
+ *  に対応した処理を実行する．入力された文字と処理の関係は次の通り．
  *  Control-Cまたは'Q'が入力されると，プログラムを終了する．
  *
@@ -97,12 +102,11 @@
  *  'b' : アラームハンドラを5秒後に起動するよう動作開始させる．
  *  'B' : アラームハンドラを動作停止させる．
- *  'z' : 対象タスクにCPU例外を発生させる（タスクを終了させる）．
- *  'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる（プログラムを
- *        終了する）．
+ *  'z' : 対象タスクにCPU例外を発生させる（ターゲットによっては復帰可能）．
+ *  'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる（復帰不可能）．
  *  '@' : タスク3をacre_tskにより生成する．
  *  '!' : 対象タスクをdel_tskにより削除する．
  *  '$' : アラームハンドラをacre_almにより生成する．
  *  '#' : アラームハンドラをdel_almにより削除する．
- *  'V' : fch_hrtで高分解能タイマを2回読む．
+ *  'V' : 短いループを挟んで，fch_hrtで高分解能タイマを2回読む．
  *  'v' : 発行したシステムコールを表示する（デフォルト）．
  *  'q' : 発行したシステムコールを表示しない．
@@ -116,5 +120,4 @@
 #include "kernel_cfg.h"
 #include "sample1.h"
-/*#include "sample1n.h"*/
 
 /*
@@ -132,4 +135,22 @@
 
 /*
+ *  プロセッサ時間の消費
+ *
+ *  ループによりプロセッサ時間を消費する．最適化ができないように，ルー
+ *  プ内でvolatile変数を読み込む．
+ */
+static volatile long_t	volatile_var;
+
+static void
+consume_time(ulong_t ctime)
+{
+	ulong_t		i;
+
+	for (i = 0; i < ctime; i++) {
+		(void) volatile_var;
+	}
+}
+
+/*
  *  並行実行されるタスクへのメッセージ領域
  */
@@ -144,7 +165,7 @@
  *  並行実行されるタスク
  */
-void task(intptr_t exinf)
-{
-	volatile ulong_t	i;
+void
+task(intptr_t exinf)
+{
 	int_t		n = 0;
 	int_t		tskno = (int_t) exinf;
@@ -155,5 +176,5 @@
 		syslog(LOG_NOTICE, "task%d is running (%03d).   %s",
 										tskno, ++n, graph[tskno-1]);
-		for (i = 0; i < task_loop; i++);
+		consume_time(task_loop);
 		c = message[tskno-1];
 		message[tskno-1] = 0;
@@ -202,9 +223,13 @@
 
 /*
- *  割込みハンドラ
+ *  割込みサービスルーチン
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
  */
 #ifdef INTNO1
 
-void intno1_isr(intptr_t exinf)
+void
+intno1_isr(intptr_t exinf)
 {
 	intno1_clear();
@@ -235,5 +260,5 @@
 					"sns_dpn() is not true in CPU exception handler.");
 	}
-	syslog(LOG_INFO, "sns_loc = %d sns_dsp = %d xsns_dpn = %d",
+	syslog(LOG_INFO, "sns_loc = %d, sns_dsp = %d, xsns_dpn = %d",
 								sns_loc(), sns_dsp(), xsns_dpn(p_excinf));
 
@@ -244,13 +269,6 @@
 	}
 
-#ifdef PREPARE_RETURN_CPUEXC
-	PREPARE_RETURN_CPUEXC;
 	SVC_PERROR(get_tid(&cpuexc_tskid));
 	SVC_PERROR(act_tsk(EXC_TASK));
-#else /* PREPARE_RETURN_CPUEXC */
-	syslog(LOG_NOTICE, "Sample program ends with exception.");
-	SVC_PERROR(ext_ker());
-	assert(0);
-#endif /* PREPARE_RETURN_CPUEXC */
 }
 
@@ -263,5 +281,6 @@
  *  を回転させる．
  */
-void cyclic_handler(intptr_t exinf)
+void
+cyclic_handler(intptr_t exinf)
 {
 	SVC_PERROR(rot_rdq(HIGH_PRIORITY));
@@ -276,5 +295,6 @@
  *  を回転させる．
  */
-void alarm_handler(intptr_t exinf)
+void
+alarm_handler(intptr_t exinf)
 {
 	SVC_PERROR(rot_rdq(HIGH_PRIORITY));
@@ -286,5 +306,6 @@
  *  例外処理タスク
  */
-void exc_task(intptr_t exinf)
+void
+exc_task(intptr_t exinf)
 {
 	SVC_PERROR(ras_ter(cpuexc_tskid));
@@ -294,5 +315,6 @@
  *  メインタスク
  */
-void main_task(intptr_t exinf)
+void
+main_task(intptr_t exinf)
 {
 	char	c;
@@ -302,5 +324,4 @@
 	PRI		tskpri;
 #ifndef TASK_LOOP
-	volatile ulong_t	i;
 	SYSTIM	stime1, stime2;
 #endif /* TASK_LOOP */
@@ -332,27 +353,26 @@
  	 *  ループ回数の設定
 	 *
-	 *  並行実行されるタスク内での空ループの回数（task_loop）は，空ルー
-	 *  プの実行時間が約0.4秒になるように設定する．この設定のために，
-	 *  LOOP_REF回の空ループの実行時間を，その前後でget_timを呼ぶことで
-	 *  測定し，その測定結果から空ループの実行時間が0.4秒になるループ回
-	 *  数を求め，task_loopに設定する．
+	 *  並行実行されるタスク内でのループの回数（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を適
-	 *  切な値に定義するのが望ましい．
+	 *  LOOP_REFは，デフォルトでは1,000,000に設定しているが，想定した
+	 *  より遅いプロセッサでは，サンプルプログラムの実行開始に時間がか
+	 *  かりすぎるという問題を生じる．逆に想定したより速いプロセッサで
+	 *  は，LOOP_REF回のループの実行時間が短くなり，task_loopに設定す
+	 *  る値の誤差が大きくなるという問題がある．そこで，そのようなター
+	 *  ゲットでは，target_test.hで，LOOP_REFを適切な値に定義すること
+	 *  とする．
 	 *
 	 *  また，task_loopの値を固定したい場合には，その値をTASK_LOOPにマ
-	 *  クロ定義する．TASK_LOOPがマクロ定義されている場合，上記の測定を
-	 *  行わずに，TASK_LOOPに定義された値を空ループの回数とする．
+	 *  クロ定義する．TASK_LOOPがマクロ定義されている場合，上記の測定
+	 *  を行わずに，TASK_LOOPに定義された値をループの回数とする．
 	 *
-	 * ターゲットによっては，空ループの実行時間の1回目の測定で，本来よ
-	 * りも長めになるものがある．このようなターゲットでは，MEASURE_TWICE
-	 * をマクロ定義することで，1回目の測定結果を捨てて，2回目の測定結果
-	 * を使う．
+	 *  ターゲットによっては，ループの実行時間の1回目の測定で，本来より
+	 *  も長めになるものがある．このようなターゲットでは，MEASURE_TWICE
+	 *  をマクロ定義することで，1回目の測定結果を捨てて，2回目の測定結
+	 *  果を使う．
 	 */
 #ifdef TASK_LOOP
@@ -361,13 +381,11 @@
 
 #ifdef MEASURE_TWICE
-	task_loop = LOOP_REF;
 	SVC_PERROR(get_tim(&stime1));
-	for (i = 0; i < task_loop; i++);
+	consume_time(LOOP_REF);
 	SVC_PERROR(get_tim(&stime2));
 #endif /* MEASURE_TWICE */
 
-	task_loop = LOOP_REF;
 	SVC_PERROR(get_tim(&stime1));
-	for (i = 0; i < task_loop; i++);
+	consume_time(LOOP_REF);
 	SVC_PERROR(get_tim(&stime2));
 	task_loop = LOOP_REF * 400LU / (ulong_t)(stime2 - stime1) * 1000LU;
@@ -477,17 +495,17 @@
 			break;
 		case 'c':
-			syslog(LOG_INFO, "#sta_cyc(1)");
+			syslog(LOG_INFO, "#sta_cyc(CYCHDR1)");
 			SVC_PERROR(sta_cyc(CYCHDR1));
 			break;
 		case 'C':
-			syslog(LOG_INFO, "#stp_cyc(1)");
+			syslog(LOG_INFO, "#stp_cyc(CYCHDR1)");
 			SVC_PERROR(stp_cyc(CYCHDR1));
 			break;
 		case 'b':
-			syslog(LOG_INFO, "#sta_alm(1, 5000000)");
+			syslog(LOG_INFO, "#sta_alm(ALMHDR1, 5000000)");
 			SVC_PERROR(sta_alm(ALMHDR1, 5000000));
 			break;
 		case 'B':
-			syslog(LOG_INFO, "#stp_alm(1)");
+			syslog(LOG_INFO, "#stp_alm(ALMHDR1)");
 			SVC_PERROR(stp_alm(ALMHDR1));
 			break;
@@ -499,7 +517,10 @@
 			ctsk.stksz = STACK_SIZE;
 			ctsk.stk = NULL;
-			SVC_PERROR(TASK3 = acre_tsk(&ctsk));
-			syslog(LOG_NOTICE, "task3 is created with tskid = %d.",
+			SVC_PERROR(ercd = acre_tsk(&ctsk));
+			if (ercd >= 0) {
+				TASK3 = ercd;
+				syslog(LOG_NOTICE, "task3 is created with tskid = %d.",
 														(int_t) TASK3);
+			}
 			break;
 		case '!':
@@ -512,10 +533,13 @@
 			calm.nfyinfo.nfy.handler.exinf = (intptr_t) 0;
 			calm.nfyinfo.nfy.handler.tmehdr = (TMEHDR) alarm_handler;
-			SVC_PERROR(ALMHDR1 = acre_alm(&calm));
-			syslog(LOG_NOTICE, "alarm handler is created with almid = %d.",
+			SVC_PERROR(ercd = acre_alm(&calm));
+			if (ercd >= 0) {
+				ALMHDR1 = ercd;
+				syslog(LOG_NOTICE, "alarm handler is created with almid = %d.",
 														(int_t) ALMHDR1);
+			}
 			break;
 		case '#':
-			syslog(LOG_INFO, "#del_alm(1)");
+			syslog(LOG_INFO, "#del_alm(ALMHDR1)");
 			SVC_PERROR(del_alm(ALMHDR1));
 			break;
@@ -523,7 +547,8 @@
 		case 'V':
 			hrtcnt1 = fch_hrt();
+			consume_time(1000LU);
 			hrtcnt2 = fch_hrt();
 			syslog(LOG_NOTICE, "hrtcnt1 = %tu, hrtcnt2 = %tu",
-										hrtcnt1, hrtcnt2);
+								(uint32_t) hrtcnt1, (uint32_t) hrtcnt2);
 			break;
 
@@ -552,5 +577,10 @@
 #endif /* BIT_KERNEL */
 
+		case '\003':
+		case 'Q':
+			break;
+
 		default:
+			syslog(LOG_INFO, "Unknown command: '%c'.", c);
 			break;
 		}
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cdl	(revision 429)
@@ -30,5 +30,29 @@
 
 /*
- *  システムログ機能の組上げ記述
+ *		システムログ機能のアダプタの組上げ記述
+ *
+ *  システムログ機能のアダプタは，C言語で記述されたコードから，TECSベー
+ *  スのシステムログ機能を呼び出すためのセルである．システムログ機能の
+ *  サービスコール（syslog，syslog_0～syslog_5，t_perrorを含む）を呼び
+ *  出さない場合には，以下のセルの組上げ記述を削除してよい．
+ */
+cell tSysLogAdapter SysLogAdapter {
+	cSysLog = SysLog.eSysLog;
+};
+
+/*
+ *		シリアルインタフェースドライバのアダプタの組上げ記述
+ *
+ *  シリアルインタフェースドライバのアダプタは，C言語で記述されたコー
+ *  ドから，TECSベースのシリアルインタフェースドライバを呼び出すための
+ *  セルである．シリアルインタフェースドライバのサービスコールを呼び出
+ *  さない場合には，以下のセルの組上げ記述を削除してよい．
+ */
+cell tSerialAdapter SerialAdapter {
+	cSerialPort[0] = SerialPort1.eSerialPort;
+};
+
+/*
+ *		システムログ機能の組上げ記述
  *
  *  システムログ機能を外す場合には，以下のセルの組上げ記述を削除し，コ
@@ -49,17 +73,5 @@
 
 /*
- *  C言語で記述されたアプリケーションから，TECSベースのシステムログ機能
- *  を呼び出すためのアダプタの組上げ記述
- *
- *  システムログ機能のサービスコール（syslog関数とsyslog_0関数～syslog_5
- *  関数以外のもの）ルをC言語で記述されたアプリケーションから呼び出さな
- *  い場合には，以下のセルの組上げ記述を削除すればよい．
- */
-cell tSysLogAdapter SysLogAdapter {
-	cSysLog = SysLog.eSysLog;
-};
-
-/*
- *  シリアルインタフェースドライバの組上げ記述
+ *		シリアルインタフェースドライバの組上げ記述
  *
  *  シリアルインタフェースドライバを外す場合には，以下のセルの組上げ記
@@ -78,17 +90,5 @@
 
 /*
- *  C言語で記述されたアプリケーションから，TECSベースのシリアルインタ
- *  フェースドライバを呼び出すためのアダプタの組上げ記述
- *
- *  シリアルインタフェースドライバのサービスコールをC言語で記述されたア
- *  プリケーションから呼び出さない場合には，以下のセルの組上げ記述を削
- *  除すればよい．
- */
-cell tSerialAdapter SerialAdapter {
-	cSerialPort[0] = SerialPort1.eSerialPort;
-};
-
-/*
- *  システムログタスクの組上げ記述
+ *		システムログタスクの組上げ記述
  *
  *  システムログタスクを外す場合には，以下のセルの組上げ記述を削除すれ
@@ -111,5 +111,5 @@
 
 /*
- *  カーネル起動メッセージ出力の組上げ記述
+ *		カーネル起動メッセージ出力の組上げ記述
  *
  *  カーネル起動メッセージの出力を外す場合には，以下のセルの組上げ記述
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1.cfg	(revision 429)
@@ -21,3 +21,3 @@
 DEF_EXC(CPUEXC1, { TA_NULL, cpuexc_handler });
 #endif /* CPUEXC1 */
-DEF_KMM({ KMM_SIZE, NULL });
+DEF_MPK({ MPK_SIZE, NULL });
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
@@ -57,5 +57,5 @@
 
 #define EXC_PRIORITY	1		/* 例外処理タスクの優先度 */
-#define MAIN_PRIORITY	6		/* メインタスクの優先度 */
+#define MAIN_PRIORITY	5		/* メインタスクの優先度 */
 								/* HIGH_PRIORITYより高くすること */
 
@@ -76,7 +76,7 @@
 #endif /* STACK_SIZE */
 
-#ifndef KMM_SIZE
-#define	KMM_SIZE		(STACK_SIZE * 16)	/* カーネルが割り付ける   */
-#endif /* KMM_SIZE */						/*     メモリ領域のサイズ */
+#ifndef MPK_SIZE					/* カーネルメモリプール領域のサイズ */
+#define	MPK_SIZE		(STACK_SIZE * 16)
+#endif /* MPK_SIZE */
 
 #ifndef LOOP_REF
Index: EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.h	(revision 429)
@@ -62,5 +62,5 @@
 
 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();
+static 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();
 
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.c	(revision 429)
@@ -3,8 +3,8 @@
  *      Toyohashi Open Platform for Embedded Real-Time Systems/
  *      Advanced Standard Profile Kernel
- *
+ * 
  *  Copyright (C) 2015-2016 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -42,29 +42,34 @@
 
 /* 
- *  サンプルプログラム(1)の本体
- *
- *  ASPカーネルの基本的な動作を確認するためのサンプルプログラム．
+ *  サンプルプログラム(2)の本体
+ *
+ *  ASPカーネルの基本的な動作を確認するためのサンプルプログラム（TECS版）．
  *
  *  プログラムの概要:
  *
- *  ユーザインタフェースを受け持つメインタスク（タスクID: MAIN_TASK，優
- *  先度: MAIN_PRIORITY）と，3つの並行実行されるタスク（タスクID:
- *  TASK1～TASK3，初期優先度: MID_PRIORITY）で構成される．また，起動周
- *  期が2秒の周期ハンドラ（周期ハンドラID: CYCHDR1）を用いる．
- *
- *  並行実行されるタスクは，task_loop回空ループを実行する度に，タスクが
- *  実行中であることをあらわすメッセージを表示する．空ループを実行する
- *  のは，空ループなしでメッセージを出力すると，多量のメッセージが出力
- *  され，プログラムの動作が確認しずらくなるためである．また，低速なシ
+ *  ユーザインタフェースを受け持つメインタスク（MainTask）と，3つの並
+ *  行実行されるタスク（Task1～Task3），例外処理タスク（ExceptionTask）
+ *  の5つのタスクを用いる．これらの他に，システムログタスクが動作する．
+ *  また，周期ハンドラ，アラームハンドラ，割込みサービスルーチン，CPU
+ *  例外ハンドラをそれぞれ1つ用いる．
+ *
+ *  並行実行されるタスクは，task_loop回のループを実行する度に，タスク
+ *  が実行中であることをあらわすメッセージを表示する．ループを実行する
+ *  のは，プログラムの動作を確認しやすくするためである．また，低速なシ
  *  リアルポートを用いてメッセージを出力する場合に，すべてのメッセージ
  *  が出力できるように，メッセージの量を制限するという理由もある．
  *
- *  周期ハンドラは，三つの優先度（HIGH_PRIORITY，MID_PRIORITY，
- *  LOW_PRIORITY）のレディキューを回転させる．プログラムの起動直後は，
- *  周期ハンドラは停止状態になっている．
- *
- *  メインタスクは，シリアルI/Oポートからの文字入力を行い（文字入力を
- *  待っている間は，並列実行されるタスクが実行されている），入力された
- *  文字に対応した処理を実行する．入力された文字と処理の関係は次の通り．
+ *  周期ハンドラ，アラームハンドラ，割込みサービスルーチンは，3つの優
+ *  先度（HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY）のレディキューを
+ *  回転させる．周期ハンドラは，プログラムの起動直後は停止状態になって
+ *  いる．
+ *
+ *  CPU例外ハンドラは，CPU例外からの復帰が可能な場合には，例外処理タス
+ *  クを起動する．例外処理タスクは，CPU例外を起こしたタスクに対して，
+ *  終了要求を行う．
+ *
+ *  メインタスクは，シリアルポートからの文字入力を行い（文字入力を待っ
+ *  ている間は，並行実行されるタスクが実行されている），入力された文字
+ *  に対応した処理を実行する．入力された文字と処理の関係は次の通り．
  *  Control-Cまたは'Q'が入力されると，プログラムを終了する．
  *
@@ -97,105 +102,11 @@
  *  'b' : アラームハンドラを5秒後に起動するよう動作開始させる．
  *  'B' : アラームハンドラを動作停止させる．
- *  'z' : 対象タスクにCPU例外を発生させる（タスクを終了させる）．
- *  'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる（プログラムを
- *        終了する）．
- *  'V' : fetchHighResolutionTimerで高分解能タイマを2回読む．
+ *  'z' : 対象タスクにCPU例外を発生させる（ターゲットによっては復帰可能）．
+ *  'Z' : 対象タスクにCPUロック状態でCPU例外を発生させる（復帰不可能）．
+ *  'V' : 短いループを挟んで，fetchHighResolutionTimerで高分解能タイマを
+ *        2回読む．
  *  'v' : 発行したシステムコールを表示する（デフォルト）．
  *  'q' : 発行したシステムコールを表示しない．
- * 呼び口関数 #_TCPF_#
- * require port: signature:sKernel context:task
- *   ER             getExtendedInformation( intptr_t* p_exinf );
- *   ER             sleep( );
- *   ER             sleepTimeout( TMO timeout );
- *   ER             delay( RELTIM delayTime );
- *   ER             exit( );
- *   ER             disableTerminate( );
- *   ER             enableTerminate( );
- *   bool_t         senseTerminate( );
- *   ER             setTime( SYSTIM systemTime );
- *   ER             getTime( SYSTIM* p_systemTime );
- *   ER             adjustTime( int32_t adjustTime );
- *   HRTCNT         fetchHighResolutionTimer( );
- *   ER             rotateReadyQueue( PRI taskPriority );
- *   ER             getTaskId( ID* p_taskId );
- *   ER             getLoad( PRI taskPriority, uint_t* p_load );
- *   ER             getNthTask( PRI taskPriority, uint_t nth, ID* p_taskID );
- *   ER             lockCpu( );
- *   ER             unlockCpu( );
- *   ER             disableDispatch( );
- *   ER             enableDispatch( );
- *   bool_t         senseContext( );
- *   bool_t         senseLock( );
- *   bool_t         senseDispatch( );
- *   bool_t         senseDispatchPendingState( );
- *   bool_t         senseKernel( );
- *   ER             exitKernel( );
- *   ER             changeInterruptPriorityMask( PRI interruptPriority );
- *   ER             getInterruptPriorityMask( PRI* p_interruptPriority );
- * require port: signature:siKernel context:non-task
- *   HRTCNT         ciKernel_fetchHighResolutionTimer( );
- *   ER             ciKernel_rotateReadyQueue( PRI taskPriority );
- *   ER             ciKernel_getTaskId( ID* p_taskId );
- *   ER             ciKernel_lockCpu( );
- *   ER             ciKernel_unlockCpu( );
- *   bool_t         ciKernel_senseContext( );
- *   bool_t         ciKernel_senseLock( );
- *   bool_t         ciKernel_senseDispatch( );
- *   bool_t         ciKernel_senseDispatchPendingState( );
- *   bool_t         ciKernel_senseKernel( );
- *   ER             ciKernel_exitKernel( );
- *   bool_t         ciKernel_exceptionSenseDispatchPendingState( const void* p_exceptionInformation );
- * call port: cTask signature: sTask context:task
- *   ER             cTask_activate( subscript );
- *   ER_UINT        cTask_cancelActivate( subscript );
- *   ER             cTask_getTaskState( subscript, STAT* p_tskstat );
- *   ER             cTask_changePriority( subscript, PRI priority );
- *   ER             cTask_getPriority( subscript, PRI* p_priority );
- *   ER             cTask_refer( subscript, T_RTSK* pk_taskStatus );
- *   ER             cTask_wakeup( subscript );
- *   ER_UINT        cTask_cancelWakeup( subscript );
- *   ER             cTask_releaseWait( subscript );
- *   ER             cTask_suspend( subscript );
- *   ER             cTask_resume( subscript );
- *   ER             cTask_raiseTerminate( subscript );
- *   ER             cTask_terminate( subscript );
- *       subscript:  0...(NCP_cTask-1)
- * call port: cExceptionTask signature: sTask context:task
- *   ER             cExceptionTask_activate( );
- *   ER_UINT        cExceptionTask_cancelActivate( );
- *   ER             cExceptionTask_getTaskState( STAT* p_tskstat );
- *   ER             cExceptionTask_changePriority( PRI priority );
- *   ER             cExceptionTask_getPriority( PRI* p_priority );
- *   ER             cExceptionTask_refer( T_RTSK* pk_taskStatus );
- *   ER             cExceptionTask_wakeup( );
- *   ER_UINT        cExceptionTask_cancelWakeup( );
- *   ER             cExceptionTask_releaseWait( );
- *   ER             cExceptionTask_suspend( );
- *   ER             cExceptionTask_resume( );
- *   ER             cExceptionTask_raiseTerminate( );
- *   ER             cExceptionTask_terminate( );
- * call port: cCyclic signature: sCyclic context:task
- *   ER             cCyclic_start( );
- *   ER             cCyclic_stop( );
- *   ER             cCyclic_refer( T_RCYC* pk_cyclicHandlerStatus );
- * call port: cAlarm signature: sAlarm context:task
- *   ER             cAlarm_start( RELTIM alarmTime );
- *   ER             cAlarm_stop( );
- *   ER             cAlarm_refer( T_RALM* pk_alarmStatus );
- * call port: cSerialPort signature: sSerialPort context:task optional:true
- *   bool_t     is_cSerialPort_joined()                     check if joined
- *   ER             cSerialPort_open( );
- *   ER             cSerialPort_close( );
- *   ER_UINT        cSerialPort_read( char* buffer, uint_t length );
- *   ER_UINT        cSerialPort_write( const char* buffer, uint_t length );
- *   ER             cSerialPort_control( uint_t ioControl );
- *   ER             cSerialPort_refer( T_SERIAL_RPOR* pk_rpor );
- * call port: cSysLog signature: sSysLog context:task
- *   ER             cSysLog_write( uint_t priority, const SYSLOG* p_syslog );
- *   ER_UINT        cSysLog_read( SYSLOG* p_syslog );
- *   ER             cSysLog_mask( uint_t logMask, uint_t lowMask );
- *   ER             cSysLog_refer( T_SYSLOG_RLOG* pk_rlog );
- *   ER             cSysLog_flush( );
- * #[</PREAMBLE>]# */  
+ */
 
 #include "tSample2_tecsgen.h"
@@ -220,4 +131,22 @@
 
 /*
+ *  プロセッサ時間の消費
+ *
+ *  ループによりプロセッサ時間を消費する．最適化ができないように，ルー
+ *  プ内でvolatile変数を読み込む．
+ */
+static volatile long_t	volatile_var;
+
+static void
+consume_time(ulong_t ctime)
+{
+	ulong_t		i;
+
+	for (i = 0; i < ctime; i++) {
+		(void) volatile_var;
+	}
+}
+
+/*
  *  並行実行されるタスクへのメッセージ領域
  */
@@ -232,7 +161,7 @@
  *  並行実行されるタスク
  */
-void eSampleTask_main(int_t subscript)
-{
-	volatile ulong_t	i;
+void
+eSampleTask_main(int_t subscript)
+{
 	int_t		n = 0;
 	int_t		tskno = subscript + 1; 
@@ -243,5 +172,5 @@
 		syslog(LOG_NOTICE, "task%d is running (%03d).   %s",
 										tskno, ++n, graph[tskno-1]);
-		for (i = 0; i < task_loop; i++);
+		consume_time(task_loop);
 		c = message[tskno-1];
 		message[tskno-1] = 0;
@@ -290,7 +219,25 @@
 
 /*
+ *  割込みサービスルーチン
+ *
+ *  HIGH_PRIORITY，MID_PRIORITY，LOW_PRIORITY の各優先度のレディキュー
+ *  を回転させる．
+ */
+#ifdef INTNO1
+
+void
+eiISR_main(void)
+{
+	intno1_clear();
+	SVC_PERROR(ciKernel_rotateReadyQueue(HIGH_PRIORITY));
+	SVC_PERROR(ciKernel_rotateReadyQueue(MID_PRIORITY));
+	SVC_PERROR(ciKernel_rotateReadyQueue(LOW_PRIORITY));
+}
+
+#endif /* INTNO1 */
+
+/*
  *  CPU例外ハンドラ
  */
-
 ID	cpuexc_tskid;		/* CPU例外を起こしたタスクのID */
 
@@ -298,34 +245,29 @@
 
 void
-cpuexc_handler(void *p_excinf)
+eiCpuExceptionHandler_main(const void *p_excinf)
 {
 	
 	syslog(LOG_NOTICE, "CPU exception handler (p_excinf = %08p).", p_excinf);
 	if (ciKernel_senseContext() != true) {
-		syslog(LOG_WARNING,
-					"ciKernel_senseContext() is not true in CPU exception handler.");
+		syslog(LOG_WARNING, "ciKernel_senseContext() is not true"
+											" in CPU exception handler.");
 	}
 	if (ciKernel_senseDispatchPendingState() != true) {
-		syslog(LOG_WARNING,
-					"ciKernel_senseDispatchPendingState() is not true in CPU exception handler.");
-	}
-	syslog(LOG_INFO, "ciKernel_senseLock() = %d ciKernel_senseDispatch() = %d ciKernel_exceptionSenseDispatchPendingState() = %d",
-		   ciKernel_senseLock(), ciKernel_senseDispatch(), ciKernel_exceptionSenseDispatchPendingState(p_excinf));
+		syslog(LOG_WARNING, "ciKernel_senseDispatchPendingState() is not true"
+											" in CPU exception handler.");
+	}
+	syslog(LOG_INFO, "ciKernel_senseLock() = %d, ciKernel_senseDispatch() = %d",
+						ciKernel_senseLock(), ciKernel_senseDispatch());
+	syslog(LOG_INFO, "ciKernel_exceptionSenseDispatchPendingState() = %d",
+						ciKernel_exceptionSenseDispatchPendingState(p_excinf));
 
 	if (ciKernel_exceptionSenseDispatchPendingState(p_excinf)) {
 		syslog(LOG_NOTICE, "Sample program ends with exception.");
-		SVC_PERROR(ciKernel_senseKernel());
+		SVC_PERROR(ciKernel_exitKernel());
 		assert(0);
 	}
 
-#ifdef PREPARE_RETURN_CPUEXC
-	PREPARE_RETURN_CPUEXC;
 	SVC_PERROR(ciKernel_getTaskId(&cpuexc_tskid));
 	cExceptionTask_activate();
-#else /* PREPARE_RETURN_CPUEXC */
-	syslog(LOG_NOTICE, "Sample program ends with exception.");
-	SVC_PERROR(ciKernel_exitKernel());
-	assert(0);
-#endif /* PREPARE_RETURN_CPUEXC */
 }
 
@@ -338,11 +280,6 @@
  *  を回転させる．
  */
-/* #[<ENTRY_FUNC>]# eiCyclicHandler_main
- * name:         eiCyclicHandler_main
- * global_name:  tSample2_eiCyclicHandler_main
- * oneway:       
- * #[/ENTRY_FUNC>]# */
-void
-eiCyclicHandler_main()
+void
+eiCyclicHandler_main(void)
 {
 	SVC_PERROR(ciKernel_rotateReadyQueue(HIGH_PRIORITY));
@@ -357,11 +294,6 @@
  *  を回転させる．
  */
-/* #[<ENTRY_FUNC>]# eiAlarmHandler_main
- * name:         eiAlarmHandler_main
- * global_name:  tSample2_eiAlarmHandler_main
- * oneway:       
- * #[/ENTRY_FUNC>]# */
-void
-eiAlarmHandler_main()
+void
+eiAlarmHandler_main(void)
 {
 	SVC_PERROR(ciKernel_rotateReadyQueue(HIGH_PRIORITY));
@@ -369,45 +301,30 @@
 	SVC_PERROR(ciKernel_rotateReadyQueue(LOW_PRIORITY));
 }
+
 /*
  *  例外処理タスク
  */
-/* #[<ENTRY_FUNC>]# eExceptionTask_main
- * name:         eExceptionTask_main
- * global_name:  tSample2_eExceptionTask_main
- * oneway:       
- * #[/ENTRY_FUNC>]# */
-void eExceptionTask_main()
+void
+eExceptionTask_main(void)
 {
 	SVC_PERROR(ras_ter(cpuexc_tskid));
 }
+
 /*
  *  メインタスク
  */
-/* 属性の設定 *//* #[<ENTRY_FUNC>]# eMainTask_main
- * name:         eMainTask_main
- * global_name:  tSample2_eMainTask_main
- * oneway:       
- * #[/ENTRY_FUNC>]# */
-void
-eMainTask_main()
+void
+eMainTask_main(void)
 {
 	char	c;
-	volatile ulong_t	i;
-	ulong_t j;
 	int_t	tskno = 1;
 	ER_UINT	ercd;
 	PRI		tskpri;
+#ifndef TASK_LOOP
 	SYSTIM	stime1, stime2;
+#endif /* TASK_LOOP */
 	HRTCNT	hrtcnt1, hrtcnt2;
 
-	if (is_cSerialPort_joined()) {
-		SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_ERROR)));
-	} else {
-		/*
-		 *  シリアル出力ができない場合、ログメッセージを全て
-		 *  低レベル出力により出力する。
-		 */
-		SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_DEBUG)));
-	}
+	SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_EMERG)));
 	syslog(LOG_NOTICE, "Sample program starts.");
 
@@ -419,40 +336,36 @@
 	 *  ない．
 	 */
-
-	if (is_cSerialPort_joined()) {
-		ercd = cSerialPort_open();
-		if (ercd < 0 && MERCD(ercd) != E_OBJ) {
-			syslog(LOG_ERROR, "%s (%d) reported by `cSerialPort_open'.",
-										itron_strerror(ercd), SERCD(ercd));
-		}
-		SVC_PERROR(cSerialPort_control(IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV));
-	}
+	ercd = cSerialPort_open();
+	if (ercd < 0 && MERCD(ercd) != E_OBJ) {
+		syslog(LOG_ERROR, "%s (%d) reported by `cSerialPort_open'.",
+									itron_strerror(ercd), SERCD(ercd));
+	}
+	SVC_PERROR(cSerialPort_control(IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV));
 
 	/*
  	 *  ループ回数の設定
 	 *
-	 *  並行実行されるタスク内での空ループの回数（task_loop）は，空ルー
-	 *  プの実行時間が約0.4秒になるように設定する．この設定のために，
-	 *  LOOP_REF回の空ループの実行時間を，その前後でget_timを呼ぶことで
-	 *  測定し，その測定結果から空ループの実行時間が0.4秒になるループ回
-	 *  数を求め，task_loopに設定する．
+	 *  並行実行されるタスク内でのループの回数（task_loop）は，ループ
+	 *  の実行時間が約0.4秒になるように設定する．この設定のために，
+	 *  LOOP_REF回のループの実行時間を，その前後でgetTimeを呼ぶことで
+	 *  測定し，その測定結果から空ループの実行時間が0.4秒になるループ
+	 *  回数を求め，task_loopに設定する．
 	 *
-	 *  LOOP_REFは，デフォルトでは1,000,000に設定しているが，想定したよ
-	 *  り遅いプロセッサでは，サンプルプログラムの実行開始に時間がかか
-	 *  りすぎるという問題を生じる．逆に想定したより速いプロセッサでは，
-	 *  LOOP_REF回の空ループの実行時間が短くなり，task_loopに設定する値
-	 *  の誤差が大きくなるという問題がある．
-	 *
-	 *  そこで，そのようなターゲットでは，target_test.hで，LOOP_REFを適
-	 *  切な値に定義するのが望ましい．
+	 *  LOOP_REFは，デフォルトでは1,000,000に設定しているが，想定した
+	 *  より遅いプロセッサでは，サンプルプログラムの実行開始に時間がか
+	 *  かりすぎるという問題を生じる．逆に想定したより速いプロセッサで
+	 *  は，LOOP_REF回のループの実行時間が短くなり，task_loopに設定す
+	 *  る値の誤差が大きくなるという問題がある．そこで，そのようなター
+	 *  ゲットでは，target_test.hで，LOOP_REFを適切な値に定義すること
+	 *  とする．
 	 *
 	 *  また，task_loopの値を固定したい場合には，その値をTASK_LOOPにマ
-	 *  クロ定義する．TASK_LOOPがマクロ定義されている場合，上記の測定を
-	 *  行わずに，TASK_LOOPに定義された値を空ループの回数とする．
+	 *  クロ定義する．TASK_LOOPがマクロ定義されている場合，上記の測定
+	 *  を行わずに，TASK_LOOPに定義された値をループの回数とする．
 	 *
-	 * ターゲットによっては，空ループの実行時間の1回目の測定で，本来よ
-	 * りも長めになるものがある．このようなターゲットでは，MEASURE_TWICE
-	 * をマクロ定義することで，1回目の測定結果を捨てて，2回目の測定結果
-	 * を使う．
+	 *  ターゲットによっては，ループの実行時間の1回目の測定で，本来より
+	 *  も長めになるものがある．このようなターゲットでは，MEASURE_TWICE
+	 *  をマクロ定義することで，1回目の測定結果を捨てて，2回目の測定結
+	 *  果を使う．
 	 */
 #ifdef TASK_LOOP
@@ -461,14 +374,12 @@
 
 #ifdef MEASURE_TWICE
-	task_loop = LOOP_REF;
-	SVC_PERROR(get_tim(&stime1));
-	for (i = 0; i < task_loop; i++);
-	SVC_PERROR(get_tim(&stime2));
+	SVC_PERROR(getTime(&stime1));
+	consume_time(LOOP_REF);
+	SVC_PERROR(getTime(&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));
+	SVC_PERROR(getTime(&stime1));
+	consume_time(LOOP_REF);
+	SVC_PERROR(getTime(&stime2));
 	task_loop = LOOP_REF * 400LU / (ulong_t)(stime2 - stime1) * 1000LU;
 
@@ -478,166 +389,152 @@
  	 *  タスクの起動
 	 */
-
-	SVC_PERROR(cTask_activate( 1 ));
-	SVC_PERROR(cTask_activate( 2 ));
-	SVC_PERROR(cTask_activate( 3 ));
+	SVC_PERROR(cTask_activate(1));
+	SVC_PERROR(cTask_activate(2));
+	SVC_PERROR(cTask_activate(3));
 
 	/*
  	 *  メインループ
 	 */
-	if (is_cSerialPort_joined()) {
-		do {
-			SVC_PERROR(cSerialPort_read(&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;
-				break;
-			case '2':
-				tskno = 2;
-				break;
-			case '3':
-				tskno = 3;
-				break;
-			case 'a':
-				syslog(LOG_INFO, "#cTask_activate(%d)", tskno);
-				SVC_PERROR(cTask_activate(tskno));
-				break;
-			case 'A':
-				syslog(LOG_INFO, "#cTask_cancelActivate(%d)", tskno);
-				SVC_PERROR(cTask_cancelActivate(tskno));
-
-				if (ercd >= 0) {
-					syslog(LOG_NOTICE, "cTask_cancelActivate(%d) returns %d", tskno, ercd);
-				}
-				break;
-			case 't':
-				syslog(LOG_INFO, "#cTask_terminate(%d)", tskno);
-				SVC_PERROR(cTask_terminate(tskno));
-				break;
-			case '>':
-				syslog(LOG_INFO, "#cTask_changePriority(%d, HIGH_PRIORITY)", tskno);
-				SVC_PERROR(cTask_changePriority(tskno, HIGH_PRIORITY));
-				break;
-			case '=':
-				syslog(LOG_INFO, "#cTask_changePriority(%d, MID_PRIORITY)", tskno);
-				SVC_PERROR(cTask_changePriority(tskno, MID_PRIORITY));
-				break;
-			case '<':
-				syslog(LOG_INFO, "#(cTask_changePriority(%d, LOW_PRIORITY)", tskno);
-				SVC_PERROR(cTask_changePriority(tskno, LOW_PRIORITY));
-				break;
-			case 'G':
-				syslog(LOG_INFO, "#cTask_getPriority(%d, &tskpri)", tskno);
-				SVC_PERROR(ercd = cTask_getPriority(tskno, &tskpri));
-				if (ercd >= 0) {
-					syslog(LOG_NOTICE, "priority of task %d is %d", tskno, tskpri);
-				}
-				break;
-			case 'w':
-				syslog(LOG_INFO, "#cTask_wakeup(%d)", tskno);
-				SVC_PERROR(cTask_wakeup(tskno));
-				break;
-			case 'W':
-				syslog(LOG_INFO, "#cTask_cancelWakeup(%d)", tskno);
-				SVC_PERROR(ercd = cTask_cancelWakeup(tskno));
-				if (ercd >= 0) {
-					syslog(LOG_NOTICE, "cTask_cancelWakeup(%d) returns %d", tskno, ercd);
-				}
-				break;
-			case 'l':
-				syslog(LOG_INFO, "#cTask_releaseWait(%d)", tskno);
-				SVC_PERROR(cTask_releaseWait(tskno));
-				break;
-			case 'u':
-				syslog(LOG_INFO, "#cTask_suspend(%d)", tskno);
-				SVC_PERROR(cTask_suspend(tskno));
-				break;
-			case 'm':
-				syslog(LOG_INFO, "#cTask_resume(%d)", tskno);
-				SVC_PERROR(cTask_resume(tskno));
-				break;
-			case 'x':
-				syslog(LOG_INFO, "#cTask_raiseTerminate(%d)", tskno);
-				SVC_PERROR(cTask_raiseTerminate(tskno));
-				break;
-			case 'X':
-				syslog(LOG_INFO, "#cTask_raiseTerminate(%d)", tskno);
-				SVC_PERROR(cTask_raiseTerminate(tskno));
-				break;
-			case 'r':
-				syslog(LOG_INFO, "#rotateReadyQueue(three priorities)");
-				SVC_PERROR(rotateReadyQueue(HIGH_PRIORITY));
-				SVC_PERROR(rotateReadyQueue(MID_PRIORITY));
-				SVC_PERROR(rotateReadyQueue(LOW_PRIORITY));
-				break;
-			case 'c':
-				syslog(LOG_INFO, "#cCyclic_start(1)");
-				SVC_PERROR(cCyclic_start());
-				break;
-			case 'C':
-				syslog(LOG_INFO, "#cCyclic_stop(1)");
-				SVC_PERROR(cCyclic_stop());
-				break;
-			case 'b':
-				syslog(LOG_INFO, "#cAlarm_start(1, 5000000)");
-				SVC_PERROR(cAlarm_start(5000000));
-				break;
-			case 'B':
-				syslog(LOG_INFO, "#cAlarm_stop()(1)");
-				SVC_PERROR(cAlarm_stop());
-				break;
-			case 'V':
-				hrtcnt1 = fetchHighResolutionTimer();
-				hrtcnt2 = fetchHighResolutionTimer();
-				syslog(LOG_NOTICE, "hrtcnt1 = %tu, hrtcnt2 = %tu",
-											hrtcnt1, hrtcnt2);
-				break;
-			case 'v':
-				SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_INFO),
-											LOG_UPTO(LOG_EMERG)));
-				break;
-			case 'q':
-				SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_NOTICE),
-											LOG_UPTO(LOG_EMERG)));
-				break;
-#ifdef BIT_KERNEL
-			case ' ':
-				SVC_PERROR(lockCpu());
-				{
-					extern ER	bit_kernel(void);
-
-					SVC_PERROR(ercd = bit_kernel());
-					if (ercd >= 0) {
-						syslog(LOG_NOTICE, "bit_kernel passed.");
-					}
-				}
-				SVC_PERROR(unlockCpu());
-				break;
-#endif /* BIT_KERNEL */
-
-			default:
-				break;
+	do {
+		SVC_PERROR(cSerialPort_read(&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;
+			break;
+		case '2':
+			tskno = 2;
+			break;
+		case '3':
+			tskno = 3;
+			break;
+		case 'a':
+			syslog(LOG_INFO, "#cTask_activate(%d)", tskno);
+			SVC_PERROR(cTask_activate(tskno));
+			break;
+		case 'A':
+			syslog(LOG_INFO, "#cTask_cancelActivate(%d)", tskno);
+			SVC_PERROR(ercd = cTask_cancelActivate(tskno));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "cTask_cancelActivate(%d) returns %d",
+															tskno, ercd);
 			}
-		} while (c != '\003' && c != 'Q');
-	} else {
-		syslog(LOG_NOTICE, "cSerialPort of tSample2 is not joined.");
-		syslog(LOG_NOTICE, "Sample program will halt after 40 seconds.");
-		for (j = 0; j < 100; j++) {
-			for (i = 0; i < task_loop; i++);
+			break;
+		case 't':
+			syslog(LOG_INFO, "#cTask_terminate(%d)", tskno);
+			SVC_PERROR(cTask_terminate(tskno));
+			break;
+		case '>':
+			syslog(LOG_INFO, "#cTask_changePriority(%d, HIGH_PRIORITY)", tskno);
+			SVC_PERROR(cTask_changePriority(tskno, HIGH_PRIORITY));
+			break;
+		case '=':
+			syslog(LOG_INFO, "#cTask_changePriority(%d, MID_PRIORITY)", tskno);
+			SVC_PERROR(cTask_changePriority(tskno, MID_PRIORITY));
+			break;
+		case '<':
+			syslog(LOG_INFO, "#(cTask_changePriority(%d, LOW_PRIORITY)", tskno);
+			SVC_PERROR(cTask_changePriority(tskno, LOW_PRIORITY));
+			break;
+		case 'G':
+			syslog(LOG_INFO, "#cTask_getPriority(%d, &tskpri)", tskno);
+			SVC_PERROR(ercd = cTask_getPriority(tskno, &tskpri));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "priority of task %d is %d", tskno, tskpri);
+			}
+			break;
+		case 'w':
+			syslog(LOG_INFO, "#cTask_wakeup(%d)", tskno);
+			SVC_PERROR(cTask_wakeup(tskno));
+			break;
+		case 'W':
+			syslog(LOG_INFO, "#cTask_cancelWakeup(%d)", tskno);
+			SVC_PERROR(ercd = cTask_cancelWakeup(tskno));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "cTask_cancelWakeup(%d) returns %d",
+															tskno, ercd);
+			}
+			break;
+		case 'l':
+			syslog(LOG_INFO, "#cTask_releaseWait(%d)", tskno);
+			SVC_PERROR(cTask_releaseWait(tskno));
+			break;
+		case 'u':
+			syslog(LOG_INFO, "#cTask_suspend(%d)", tskno);
+			SVC_PERROR(cTask_suspend(tskno));
+			break;
+		case 'm':
+			syslog(LOG_INFO, "#cTask_resume(%d)", tskno);
+			SVC_PERROR(cTask_resume(tskno));
+			break;
+		case 'x':
+			syslog(LOG_INFO, "#cTask_raiseTerminate(%d)", tskno);
+			SVC_PERROR(cTask_raiseTerminate(tskno));
+			break;
+		case 'X':
+			syslog(LOG_INFO, "#cTask_raiseTerminate(%d)", tskno);
+			SVC_PERROR(cTask_raiseTerminate(tskno));
+			break;
+		case 'r':
+			syslog(LOG_INFO, "#rotateReadyQueue(three priorities)");
+			SVC_PERROR(rotateReadyQueue(HIGH_PRIORITY));
+			SVC_PERROR(rotateReadyQueue(MID_PRIORITY));
+			SVC_PERROR(rotateReadyQueue(LOW_PRIORITY));
+			break;
+		case 'c':
+			syslog(LOG_INFO, "#cCyclic_start()");
+			SVC_PERROR(cCyclic_start());
+			break;
+		case 'C':
+			syslog(LOG_INFO, "#cCyclic_stop()");
+			SVC_PERROR(cCyclic_stop());
+			break;
+		case 'b':
+			syslog(LOG_INFO, "#cAlarm_start(5000000)");
+			SVC_PERROR(cAlarm_start(5000000));
+			break;
+		case 'B':
+			syslog(LOG_INFO, "#cAlarm_stop()");
+			SVC_PERROR(cAlarm_stop());
+			break;
+
+		case 'V':
+			hrtcnt1 = fetchHighResolutionTimer();
+			consume_time(1000LU);
+			hrtcnt2 = fetchHighResolutionTimer();
+			syslog(LOG_NOTICE, "hrtcnt1 = %tu, hrtcnt2 = %tu",
+								(uint32_t) hrtcnt1, (uint32_t) hrtcnt2);
+			break;
+
+		case 'v':
+			SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_INFO),
+										LOG_UPTO(LOG_EMERG)));
+			break;
+		case 'q':
+			SVC_PERROR(cSysLog_mask(LOG_UPTO(LOG_NOTICE),
+										LOG_UPTO(LOG_EMERG)));
+			break;
+
+		case '\003':
+		case 'Q':
+			break;
+
+		default:
+			syslog(LOG_INFO, "Unknown command: '%c'.", c);
+			break;
 		}
-	}
+	} while (c != '\003' && c != 'Q');
 
 	syslog(LOG_NOTICE, "Sample program ends.");
-	SVC_PERROR(ciKernel_exitKernel());
+	SVC_PERROR(exitKernel());
 	assert(0);
 }
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cdl	(revision 429)
@@ -4,8 +4,9 @@
  *  $Id$
  */
+
 /*
  *  カーネルオブジェクトの定義
  */
-import("kernel.cdl");
+import(<kernel.cdl>);
 
 /*
@@ -14,4 +15,5 @@
 import("syssvc/tSerialPort.cdl");
 import("syssvc/tSysLog.cdl");
+import("syssvc/tSysLogAdapter.cdl");
 import("syssvc/tLogTask.cdl");
 import("syssvc/tBanner.cdl");
@@ -23,4 +25,9 @@
 
 /*
+ *  サンプルプログラムのC言語ヘッダファイルの取り込み
+ */
+import_C("tSample2.h");
+
+/*
  *  「セルの組上げ記述」とは，"cell"で始まる行から，それに対応する"};"
  *  の行までのことを言う．
@@ -28,5 +35,17 @@
 
 /*
- *  システムログ機能の組上げ記述
+ *		システムログ機能のアダプタの組上げ記述
+ *
+ *  システムログ機能のアダプタは，C言語で記述されたコードから，TECSベー
+ *  スのシステムログ機能を呼び出すためのセルである．システムログ機能の
+ *  サービスコール（syslog，syslog_0～syslog_5，t_perrorを含む）を呼び
+ *  出さない場合には，以下のセルの組上げ記述を削除してよい．
+ */
+cell tSysLogAdapter SysLogAdapter {
+	cSysLog = SysLog.eSysLog;
+};
+
+/*
+ *		システムログ機能の組上げ記述
  *
  *  システムログ機能を外す場合には，以下のセルの組上げ記述を削除し，コ
@@ -42,5 +61,4 @@
 	initLowMask = C_EXP("LOG_UPTO(LOG_EMERG)");
 									   	/* 低レベル出力すべき重要度 */
-
 	/* 低レベル出力との結合 */
 	cPutLog = PutLogTarget.ePutLog;
@@ -48,5 +66,5 @@
 
 /*
- *  シリアルインタフェースドライバの組上げ記述
+ *		シリアルインタフェースドライバの組上げ記述
  *
  *  シリアルインタフェースドライバを外す場合には，以下のセルの組上げ記
@@ -65,5 +83,5 @@
 
 /*
- *  システムログタスクの組上げ記述
+ *		システムログタスクの組上げ記述
  *
  *  システムログタスクを外す場合には，以下のセルの組上げ記述を削除すれ
@@ -86,5 +104,5 @@
 
 /*
- *  カーネル起動メッセージ出力の組上げ記述
+ *		カーネル起動メッセージ出力の組上げ記述
  *
  *  カーネル起動メッセージの出力を外す場合には，以下のセルの組上げ記述
@@ -98,5 +116,5 @@
 
 /*
- *  サンプルプログラムの定義
+ *		サンプルプログラムのセルタイプの定義
  */
 [singleton]
@@ -111,5 +129,5 @@
 	call sAlarm         cAlarm;
 
-	[optional] call sSerialPort	cSerialPort;/* シリアルドライバとの接続 */
+	call sSerialPort	cSerialPort;	/* シリアルドライバとの接続 */
 	call sSysLog		cSysLog;		/* システムログ機能との接続 */
 	
@@ -118,16 +136,18 @@
 	entry sTaskBody		eExceptionTask;	/* 例外処理タスク */
 	
-	entry siHandlerBody eiCyclicHandler;/* 周期ハンドラ*/
-	entry siHandlerBody eiAlarmHandler; /* アラームハンドラ */
-};
-
-/*
- *  組み上げ記述
- */
-
-/* Sample2のプロトタイプ宣言 */
-cell tSample2 Sample2;
-
-cell tKernel ASPKernel{
+	entry siHandlerBody eiCyclicHandler;	/* 周期ハンドラ*/
+	entry siHandlerBody eiAlarmHandler;		/* アラームハンドラ */
+
+	entry siHandlerBody	eiISR;				/* 割込みサービスルーチン */
+
+	entry siCpuExceptionHandlerBody	eiCpuExceptionHandler;
+											/* CPU例外ハンドラ */
+};
+
+/*
+ *		組み上げ記述
+ */
+
+cell tKernel ASPKernel {
 };
 
@@ -181,13 +201,36 @@
 
 cell tAlarmHandler AlarmHandler {
+	/* 呼び口の結合 */
 	ciHandlerBody = Sample2.eiAlarmHandler;
 };
 
+cell tInterruptRequest InterruptRequest {
+	/* 属性の設定 */
+	interruptNumber = C_EXP("INTNO1");
+	attribute = C_EXP("INTNO1_INTATR");
+	interruptPriority = C_EXP("INTNO1_INTPRI");
+};
+
+cell tISR InterruptServiceRoutine {
+	/* 呼び口の結合 */
+	ciISRBody = Sample2.eiISR;
+	/* 属性の設定 */
+	attribute = C_EXP("TA_NULL");
+	interruptNumber = C_EXP("INTNO1");
+};
+
+cell tCpuExceptionHandler CpuExceptionHandler {
+	/* 呼び口の結合 */
+	ciCpuExceptionHandlerBody = Sample2.eiCpuExceptionHandler;
+	/* 属性の設定 */
+	cpuExceptionHandlerNumber = C_EXP("CPUEXC1");
+};
+
 cell tSample2 Sample2 {
 	/* 呼び口の結合 */
-	cTask[ 0 ] = MainTask.eTask;
-	cTask[ 1 ] = Task1.eTask;
-	cTask[ 2 ] = Task2.eTask;
-	cTask[ 3 ] = Task3.eTask;
+	cTask[0] = MainTask.eTask;
+	cTask[1] = Task1.eTask;
+	cTask[2] = Task2.eTask;
+	cTask[3] = Task3.eTask;
 
 	cExceptionTask = ExceptionTask.eTask;
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.cfg	(revision 429)
@@ -4,9 +4,3 @@
  *  $Id$
  */
-INCLUDE("gen/tecsgen.cfg");
-
-#include "tSample2.h"
-
-#ifdef CPUEXC1
-DEF_EXC(CPUEXC1, { TA_NULL, cpuexc_handler });
-#endif /* CPUEXC1 */
+INCLUDE("tecsgen.cfg");
Index: EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/sample/tSample2.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2007 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  *
@@ -55,5 +55,5 @@
 
 #define EXC_PRIORITY	1		/* 例外処理タスクの優先度 */
-#define MAIN_PRIORITY	6		/* メインタスクの優先度 */
+#define MAIN_PRIORITY	5		/* メインタスクの優先度 */
 								/* HIGH_PRIORITYより高くすること */
 
@@ -75,13 +75,10 @@
 
 /*
- *  関数のプロトタイプ宣言
+ *  必要な定義のチェック
  */
-#ifndef TOPPERS_MACRO_ONLY
-
-//extern void	task(intptr_t exinf);
-extern void	main_task(intptr_t exinf);
-extern void	cyclic_handler(intptr_t exinf);
-extern void	alarm_handler(intptr_t exinf);
-extern void	cpuexc_handler(void *p_excinf);
-
-#endif /* TOPPERS_MACRO_ONLY */
+#ifndef INTNO1
+#error INTNO1 is necessary for this sample program.
+#endif /* INTNO1 */
+#ifndef CPUEXC1
+#error CPUEXC1 is necessary for this sample program.
+#endif /* CPUEXC1 */
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/histogram.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/histogram.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/histogram.h	(revision 429)
@@ -3,5 +3,5 @@
  *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -54,20 +54,20 @@
  *  実行時間分布計測の初期化
  */
-extern void	init_hist(ID histid);
+extern ER	init_hist(ID histid);
 
 /*
  *  実行時間計測の開始
  */
-extern void	begin_measure(ID histid);
+extern ER	begin_measure(ID histid);
 
 /*
  *  実行時間計測の終了
  */
-extern void	end_measure(ID histid);
+extern ER	end_measure(ID histid);
 
 /*
  *  実行時間分布計測の表示
  */
-extern void	print_hist(ID histid);
+extern ER	print_hist(ID histid);
 
 #ifdef __cplusplus
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/serial.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/serial.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/serial.h	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
@@ -48,9 +47,9 @@
 #define TOPPERS_SERIAL_H
 
-#include <kernel.h>
-
 #ifdef __cplusplus
 extern "C" {
 #endif
+
+#include <kernel.h>
 
 /*
@@ -62,4 +61,16 @@
 } T_SERIAL_RPOR;
 
+#ifdef TOPPERS_OMIT_TECS
+/*
+ *  シリアルインタフェースドライバの初期化ルーチン
+ */
+extern void		serial_initialize(intptr_t exinf) throw();
+
+/*
+ *  シリアルインタフェースドライバからの未送信文字の取出し
+ */
+extern bool_t	serial_get_chr(ID portid, char *p_c) throw();
+#endif
+
 /*
  *  シリアルインタフェースドライバのサービスコール
@@ -67,8 +78,13 @@
 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_trea_dat(ID portid, char *buf, uint_t len, TMO tmout) 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();
+
+Inline ER_UINT	serial_rea_dat(ID portid, char *buf, uint_t len)
+{
+	return serial_trea_dat(portid, buf, len, TMO_FEVR);
+}
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/siofd.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/siofd.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/siofd.c	(revision 429)
@@ -0,0 +1,110 @@
+/*
+ *  TOPPERS PROJECT Home Network Working Group Software
+ * 
+ *  Copyright (C) 2019 Cores Co., Ltd. Japan
+ * 
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	シリアルインタフェースドライバのファイルディスクリプタ実装部
+ */
+
+#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <termios.h>
+#include "target_serial.h"
+#include "siofd.h"
+#include "serial_api.h"
+
+extern serial_t log_serial;
+
+__attribute__((weak))
+int siofd_open(const char *path, int flags, ...)
+{
+	return -1;
+}
+
+__attribute__((weak))
+int siofd_close(int fd)
+{
+	return -1;
+}
+
+__attribute__((weak))
+ssize_t siofd_read(int fd, void *data, size_t len)
+{
+	char *pos, *end;
+
+	if (fd != STDIN_FILENO)
+		return -1;
+
+	for (pos = (char *)data, *end = &pos[len]; pos < end; pos++) {
+		*pos = serial_getc(&log_serial);
+	}
+
+	return pos - (char *)data;
+}
+
+__attribute__((weak))
+ssize_t siofd_write(int fd, const void *data, size_t len)
+{
+	const char *pos, *end;
+
+	if (fd != STDOUT_FILENO)
+		return -1;
+
+	for (pos = (const char *)data, end = &pos[len]; pos < end; pos++) {
+		serial_putc(&log_serial, *pos);
+	}
+
+	return pos - (char *)data;
+}
+
+__attribute__((weak))
+int siofd_tcsetattr(int fd, int act, const struct termios *tio)
+{
+	return 0;
+}
+
+__attribute__((weak))
+int siofd_tcgetattr(int fd, struct termios *tio)
+{
+	return 0;
+}
+
+__attribute__((weak))
+int siofd_fcntl(int fd, int cmd, ...)
+{
+	return 0;
+}
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/siofd.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/siofd.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/siofd.h	(revision 429)
@@ -0,0 +1,55 @@
+/*
+ *  TOPPERS PROJECT Home Network Working Group Software
+ * 
+ *  Copyright (C) 2019 Cores Co., Ltd. Japan
+ * 
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	シリアルインタフェースドライバのファイルディスクリプタ実装部
+ */
+
+int siofd_open(const char *path, int flags, ...);
+
+int siofd_close(int fd);
+
+ssize_t siofd_read(int fd, void *data, size_t len);
+
+ssize_t siofd_write(int fd, const void *data, size_t len);
+
+int siofd_tcsetattr(int fd, int act, const struct termios *tio);
+
+int siofd_tcgetattr(int fd, struct termios *tio);
+
+int siofd_fcntl(int fd, int cmd, ...);
+
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/syslog.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/syslog.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/syslog.h	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
@@ -55,4 +54,34 @@
 #include <t_syslog.h>
 
+#ifdef TOPPERS_OMIT_TECS
+/*
+ *  ログバッファのサイズ
+ */
+#ifndef TCNT_SYSLOG_BUFFER
+#define TCNT_SYSLOG_BUFFER	32		/* ログバッファのサイズ */
+#endif /* TCNT_SYSLOG_BUFFER */
+
+/*
+ *  システムログ機能の初期化
+ */
+extern void	syslog_initialize(intptr_t exinf) throw();
+#endif
+
+/*
+ *  ログ情報の重要度のビットマップを作るためのマクロ
+ */
+#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;
+
 /*
  *  ログ情報の出力
@@ -68,15 +97,15 @@
  *  出力すべきログ情報の重要度の設定
  */
-extern ER	syslog_msk_log(uint_t logmask, uint_t lowmask) throw();
+extern ER		syslog_msk_log(uint_t logmask, uint_t lowmask) throw();
 
 /*
  *  ログバッファの状態参照
  */
-extern ER	syslog_ref_log(T_SYSLOG_RLOG *pk_rlog) throw();
+extern ER		syslog_ref_log(T_SYSLOG_RLOG *pk_rlog) throw();
 
 /*
  *  低レベル出力によるすべてのログ情報の出力
  */
-extern ER	syslog_fls_log(void) throw();
+extern ER		syslog_fls_log(void) throw();
 
 #ifdef __cplusplus
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tBanner.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tBanner.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tBanner.cdl	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2016 by Embedded and Real-Time Systems Laboratory
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tBannerMain.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tBannerMain.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tBannerMain.c	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
  *                              Toyohashi Univ. of Technology, JAPAN
- *  Copyright (C) 2004-2017 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -56,5 +56,5 @@
 "Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory\n"
 "                            Toyohashi Univ. of Technology, JAPAN\n"
-"Copyright (C) 2004-2017 by Embedded and Real-Time Systems Laboratory\n"
+"Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory\n"
 "            Graduate School of Information Science, Nagoya Univ., JAPAN\n"
 "%s";
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tBuiltInTestAdaptor.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tBuiltInTestAdaptor.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tBuiltInTestAdaptor.c	(revision 429)
@@ -0,0 +1,59 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 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$
+ */
+
+/*
+ *		自己診断サービスのディスクリプタを取得するサービス
+ */
+
+#include "tBuiltInTestAdaptor_tecsgen.h"
+#include <kernel.h>
+#include <t_syslog.h>
+#include <t_stdlib.h>
+
+/*
+ *  自己診断サービスのディスクリプタの取得
+ */
+ER
+eGetBuiltInTestDescriptor_getDescriptor(Descriptor(sBuiltInTest) *p_desc,
+																	int_t i)
+{
+	*p_desc = cBuiltInTest_refer_to_descriptor(i);
+	return(E_OK);
+}
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.c	(revision 429)
@@ -3,5 +3,5 @@
  *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -43,12 +43,10 @@
 
 #include "tHistogram_tecsgen.h"
-#define syslog_write	cSysLog_write
 #include <t_syslog.h>
-#include <log_output.h>
 
 /* 
  *  実行時間分布計測の初期化（受け口関数）
  */
-void
+ER
 eHistogram_initialize(CELLIDX idx)
 {
@@ -61,4 +59,5 @@
 	VAR_over = 0U;
 	VAR_under = 0U;
+	return(E_OK);
 }
 
@@ -66,5 +65,5 @@
  *  実行時間計測の開始（受け口関数）
  */
-void
+ER
 eHistogram_beginMeasure(CELLIDX idx)
 {
@@ -73,4 +72,5 @@
 	HIST_BM_HOOK();
 	HIST_GET_TIM(&VAR_begin_time);
+	return(E_OK);
 }
 
@@ -78,5 +78,5 @@
  *  実行時間計測の終了（受け口関数）
  */
-void
+ER
 eHistogram_endMeasure(CELLIDX idx)
 {
@@ -103,4 +103,5 @@
 		VAR_under++;
 	}
+	return(E_OK);
 }
 
@@ -108,5 +109,5 @@
  *  実行時間分布計測の表示（受け口関数）
  */
-void
+ER
 eHistogram_print(CELLIDX idx)
 {
@@ -125,3 +126,4 @@
 		syslog_1(LOG_NOTICE, "> INT_MAX : %d", VAR_under);
 	}
+	return(E_OK);
 }
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogram.cdl	(revision 429)
@@ -3,5 +3,5 @@
  *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2016-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -51,20 +51,20 @@
 	 *  実行時間分布計測の初期化
    	 */
-	void	initialize(void);
+	ER	initialize(void);
 
 	/*
 	 *  実行時間計測の開始
 	 */
-	void	beginMeasure(void);
+	ER	beginMeasure(void);
 
 	/*
 	 *  実行時間計測の終了
 	 */
-	void	endMeasure(void);
+	ER	endMeasure(void);
 
 	/*
 	 *  実行時間分布計測の表示
 	 */
-	void	print(void);
+	ER	print(void);
 };
 
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tHistogramAdapter.c	(revision 429)
@@ -1,8 +1,7 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2016-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -48,11 +47,23 @@
 
 /*
+ *  実行時間分布計測IDの範囲の判定
+ */
+#define VALID_HISTID(histid)	(1 <= histid && histid <= N_CP_cHistogram)
+
+/*
  *  実行時間分布計測の初期化（サービスコール）
  */
-void
+ER
 init_hist(ID histid)
 {
-	assert(1 <= histid && histid <= N_CP_cHistogram);
-	return(cHistogram_initialize(histid - 1));
+	ER		ercd;
+
+	if (!VALID_HISTID(histid)) {
+		ercd = E_ID;
+	}
+	else {
+		ercd = cHistogram_initialize(histid - 1);
+	}
+	return(ercd);
 }
 
@@ -60,9 +71,16 @@
  *  実行時間計測の開始
  */
-void
+ER
 begin_measure(ID histid)
 {
-	assert(1 <= histid && histid <= N_CP_cHistogram);
-	return(cHistogram_beginMeasure(histid - 1));
+	ER		ercd;
+
+	if (!VALID_HISTID(histid)) {
+		ercd = E_ID;
+	}
+	else {
+		ercd = cHistogram_beginMeasure(histid - 1);
+	}
+	return(ercd);
 }
 
@@ -70,9 +88,16 @@
  *  実行時間計測の終了
  */
-void
+ER
 end_measure(ID histid)
 {
-	assert(1 <= histid && histid <= N_CP_cHistogram);
-	return(cHistogram_endMeasure(histid - 1));
+	ER		ercd;
+
+	if (!VALID_HISTID(histid)) {
+		ercd = E_ID;
+	}
+	else {
+		ercd = cHistogram_endMeasure(histid - 1);
+	}
+	return(ercd);
 }
 
@@ -80,8 +105,15 @@
  *  実行時間分布計測の表示
  */
-void
+ER
 print_hist(ID histid)
 {
-	assert(1 <= histid && histid <= N_CP_cHistogram);
-	return(cHistogram_print(histid - 1));
+	ER		ercd;
+
+	if (!VALID_HISTID(histid)) {
+		ercd = E_ID;
+	}
+	else {
+		ercd = cHistogram_print(histid - 1);
+	}
+	return(ercd);
 }
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTask.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTask.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTask.cdl	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2015 by Ushio Laboratory
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTaskMain.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTaskMain.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tLogTaskMain.c	(revision 429)
@@ -1,10 +1,9 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  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-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -82,5 +81,5 @@
 	}
 	else {
-		for (;;) {
+		while (true) {
 			if (cSysLog_refer(&rlog) < 0) {
 				ercd = E_SYS;
@@ -113,5 +112,5 @@
 			rercd = dly_tsk(ATTR_flushWait);
 			if (rercd < 0) {
-				ercd = (rercd == E_RLWAI) ? rercd : E_SYS;
+				ercd = (MERCD(rercd) == E_RLWAI) ? rercd : E_SYS;
 				goto error_exit;
 			}
@@ -130,5 +129,4 @@
 {
 	SYSLOG	syslog;
-	uint_t	lost;
 	ER_UINT	rercd;
 
@@ -136,19 +134,12 @@
 	syslog_0(LOG_NOTICE, "System logging task is started.");
 
-	for (;;) {
-		lost = 0U;
+	while (true) {
 		while ((rercd = cSysLog_read(&syslog)) >= 0) {
-			lost += (uint_t) rercd;
-			if (lost > 0U) {
-				syslog_lostmsg(lost, logtask_putc);
-				lost = 0U;
+			if (((uint_t) rercd) > 0U) {
+				syslog_lostmsg((uint_t) rercd, logtask_putc);
 			}
 			syslog_print(&syslog, logtask_putc);
-			logtask_putc('\n');
 		}
-		if (lost > 0U) {
-			syslog_lostmsg(lost, logtask_putc);
-		}
-		dly_tsk(ATTR_interval);
+		(void) dly_tsk(ATTR_interval);
 	}
 }
@@ -189,8 +180,5 @@
 			syslog_lostmsg((uint_t) rercd, target_fput_log);
 		}
-		if (syslog.logtype >= LOG_TYPE_COMMENT) {
-			syslog_print(&syslog, target_fput_log);
-			target_fput_log('\n');
-		}
+		syslog_print(&syslog, target_fput_log);
 	}
 }
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tPutLogSIOPort.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tPutLogSIOPort.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tPutLogSIOPort.c	(revision 429)
@@ -0,0 +1,70 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2018 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$
+ */
+
+/*
+ *		SIOドライバによるシステムログの低レベル出力
+ */
+
+#include "tPutLogSIOPort_tecsgen.h"
+
+/*
+ *  システムログの低レベル出力のための初期化
+ *
+ *  初期化ルーチンを呼び出すより前に初期化するために，カーネルのターゲッ
+ *  ト依存部から直接呼び出すための関数．
+ */
+void
+tPutLogSIOPort_initialize(void)
+{
+	cSIOPort_open();
+}
+
+/*
+ *  システムログの低レベル出力のための文字出力（受け口関数）
+ *
+ *  SIOポートに文字が送信できるまでポーリングする．
+ */
+void
+ePutLog_putChar(char c)
+{
+	if(c == '\n'){
+		while (!cSIOPort_putChar('\r')) ;
+	}
+	while (!cSIOPort_putChar(c)) ;
+}
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tPutLogSIOPort.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tPutLogSIOPort.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tPutLogSIOPort.cdl	(revision 429)
@@ -0,0 +1,54 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2015 by Ushio Laboratory
+ *              Graduate School of Engineering Science, Osaka Univ., JAPAN
+ *  Copyright (C) 2015-2018 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$
+ */
+
+/*
+ *		SIOドライバによるシステムログの低レベル出力のコンポーネント記述
+ *		ファイル
+ */
+
+/*
+ *  システムログの低レベル出力のセルタイプ
+ */
+[singleton]
+celltype tPutLogSIOPort {
+	entry	sPutLog		ePutLog;
+	call	sSIOPort	cSIOPort;
+};
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialAdapter.c	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
@@ -83,5 +82,5 @@
  */
 ER_UINT
-serial_rea_dat(ID portid, char *buf, uint_t len)
+serial_trea_dat(ID portid, char *buf, uint_t len, TMO tmout)
 {
 	if (sns_dpn()) {				/* コンテキストのチェック */
@@ -92,5 +91,5 @@
 	}
 
-	return(cSerialPort_read(portid - 1, buf, len));
+	return(cSerialPort_read(portid - 1, buf, len, tmout));
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPort.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPort.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPort.cdl	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2015 by Ushio Laboratory
@@ -57,5 +56,5 @@
 	ER		open(void);
 	ER		close(void);
-	ER_UINT	read([out,size_is(length)] char *buffer, [in] uint_t length);
+	ER_UINT	read([out,size_is(length)] char *buffer, [in] uint_t length, [in] TMO tmout);
 	ER_UINT	write([in,size_is(length)] const char *buffer, [in] uint_t length);
 	ER		control([in] uint_t ioControl);
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPortMain.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPortMain.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSerialPortMain.c	(revision 429)
@@ -1,10 +1,9 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  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) 2006-2015 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -242,10 +241,10 @@
 
 /*
- *  シリアルポートへの文字送信
+ *  SIOポートへの文字送信
  *
- *  p_cellcbで指定されるSIOポートに対して，文字cを送信する．文字を送信
- *  レジスタにいれた場合にはtrueを返す．そうでない場合には，送信レジス
- *  タが空いたことを通知するコールバック関数を許可し，falseを返す．この
- *  関数は，CPUロック状態で呼び出される．
+ *  p_cellcbで指定されるシリアルポートに対応するSIOポートに対して，文
+ *  字cを送信する．文字を送信レジスタにいれた場合にはtrueを返す．そう
+ *  でない場合には，送信レジスタが空いたことを通知するコールバック関数
+ *  を許可し，falseを返す．この関数は，CPUロック状態で呼び出される．
  */
 Inline bool_t
@@ -268,5 +267,6 @@
 {
 	bool_t	buffer_full;
-	ER		ercd, rercd;
+	ER_BOOL	ercd;
+	ER		rercd;
 
 	/*
@@ -359,9 +359,9 @@
  *  シリアルポートからの1文字受信
  */
-static bool_t
+static ER_BOOL
 serialPort_readChar(CELLCB *p_cellcb, char *p_c)
 {
 	bool_t	buffer_empty;
-	ER		ercd;
+	ER_BOOL	ercd;
 
 	SVC(loc_cpu(), gen_ercd_sys(p_cellcb));
@@ -397,5 +397,5 @@
  */
 ER_UINT
-eSerialPort_read(CELLIDX idx, char *buffer, uint_t length)
+eSerialPort_read(CELLIDX idx, char *buffer, uint_t length, TMO tmout)
 {
 	CELLCB	*p_cellcb;
@@ -423,6 +423,12 @@
 	while (reacnt < length) {
 		if (buffer_empty) {
-			SVC(rercd = cReceiveSemaphore_wait(),
-										gen_ercd_wait(rercd, p_cellcb));
+			rercd = cReceiveSemaphore_waitTimeout(tmout);
+			if (rercd == E_TMOUT)
+				return E_TMOUT;
+			if (rercd < 0) {
+				gen_ercd_wait(rercd, p_cellcb);
+				ercd = rercd;
+				goto error_exit;
+			}
 		}
 		SVC(rercd = serialPort_readChar(p_cellcb, &c), rercd);
@@ -519,5 +525,5 @@
 	if (VAR_receiveFlowControl != '\0') {
 		/*
-		 *  START/STOP を送信する．
+		 *  START/STOPを送信する．
 		 */
 		(void) cSIOPort_putChar(VAR_receiveFlowControl);
@@ -569,5 +575,5 @@
 		 */
 		VAR_sendStopped = false;
-		if (VAR_sendCount > 0U) {
+		while (VAR_sendCount > 0U) {
 			c = VAR_sendBuffer[VAR_sendReadPointer];
 			if (serialPort_sendChar(p_cellcb, c)) {
@@ -580,4 +586,7 @@
 				VAR_sendCount--;
 			}
+			else {
+				break;
+			}
 		}
 	}
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.c	(revision 429)
@@ -1,10 +1,9 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  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-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -50,4 +49,15 @@
 #include <t_syslog.h>
 #include <log_output.h>
+
+/*
+ *  トレースログに関する設定
+ */
+#ifdef TOPPERS_ENABLE_TRACE
+#include "arch/tracelog/trace_log.h"
+#endif /* TOPPERS_ENABLE_TRACE */
+
+/*
+ *  ターゲット依存情報の定義
+ */
 #include "target_syssvc.h"
 
@@ -126,5 +136,4 @@
 	if ((VAR_lowMask & LOG_MASK(priority)) != 0U) {
 		syslog_print(p_syslog, low_putchar);
-		low_putchar('\n');
 	}
 
@@ -212,14 +221,11 @@
 
 	while ((rercd = eSysLog_read(&logbuf)) >= 0) {
-		if (rercd > 0) {
+		if (((uint_t) rercd) > 0U) {
 			syslog_lostmsg((uint_t) rercd, low_putchar);
 		}
-		if (logbuf.logtype >= LOG_TYPE_COMMENT) {
-			syslog_print(&logbuf, low_putchar);
-			low_putchar('\n');
-		}
-	}
-
-	SIL_UNL_INT();
-	return(E_OK);
-}
+		syslog_print(&logbuf, low_putchar);
+	}
+
+	SIL_UNL_INT();
+	return(E_OK);
+}
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLog.cdl	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2015 by Ushio Laboratory
@@ -46,7 +45,7 @@
 
 /*
- *  システムログ出力に関する定義
+ *  システムログ機能に関する定義
  */
-import_C("t_syslog.h");
+import_C("syssvc/syslog.h");
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tSysLogAdapter.c	(revision 429)
@@ -1,6 +1,5 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
  *  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.c	(revision 429)
@@ -1,8 +1,7 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2016-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -52,18 +51,10 @@
  *  テストプログラムの開始（受け口関数）
  */
-void
+ER
 eTestService_start(const char *progname)
 {
 	syslog_1(LOG_NOTICE, "Test program: %s", progname);
 	VAR_check_count = 0U;
-}
-
-/*
- *	自己診断関数の設定
- */
-void
-eTestService_setBuiltInTest(Descriptor(sBuiltInTest) desc)
-{
-	cBuiltInTest_set_descriptor(desc);
+	return(E_OK);
 }
 
@@ -87,5 +78,5 @@
  *	チェックポイント（受け口関数）
  */
-void
+ER
 eTestService_checkPoint(uint_t count)
 {
@@ -133,4 +124,5 @@
 	 */
 	SIL_UNL_INT();
+	return(E_OK);
 }
 
@@ -138,5 +130,5 @@
  *	完了チェックポイント（受け口関数）
  */
-void
+ER
 eTestService_finishPoint(uint_t count)
 {
@@ -146,4 +138,5 @@
 	}
 	test_finish();
+	return(E_OK);
 }
 
@@ -151,5 +144,5 @@
  *	条件チェックのエラー処理（受け口関数）
  */
-void
+ER
 eTestService_assertError(const char *expr, const char *file, int_t line)
 {
@@ -157,15 +150,5 @@
 												expr, file, line);
 	test_finish();
-}
-
-/*
- *	エラーコードチェックのエラー処理（受け口関数）
- */
-void
-eTestService_serviceError(ER ercd, const char *file, int_t line)
-{
-	syslog_3(LOG_ERROR, "## Unexpected error %s detected at %s:%u.\007",
-										itron_strerror(ercd), file, line);
-	test_finish();
+	return(E_OK);
 }
 
@@ -174,4 +157,16 @@
  */
 ER
+eTestService_serviceError(ER ercd, const char *file, int_t line)
+{
+	syslog_3(LOG_ERROR, "## Unexpected error %s detected at %s:%u.\007",
+										itron_strerror(ercd), file, line);
+	test_finish();
+	return(E_OK);
+}
+
+/*
+ *	割込み優先度マスクの取得（受け口関数）
+ */
+ER
 eTestService_getInterruptPriorityMask(PRI *p_ipm)
 {
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestService.cdl	(revision 429)
@@ -1,8 +1,7 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2016-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -46,4 +45,5 @@
  *  自己診断サービスのシグニチャ
  */
+[callback]
 signature sBuiltInTest {
 	ER		builtInTest(void);
@@ -52,8 +52,4 @@
 /*
  *  テストプログラム用サービスのシグニチャ
- *
- *  setBuiltInTestは，TECSの中では動的結合を使って実現すべきであるが，
- *  C言語のアプリケーションから呼び出しやすくするために，TECSの作法違
- *  反のコードとなっている．
  *
  *  getInterruptPriorityMaskは，そのままカーネルを呼び出すだけの関数で
@@ -64,11 +60,10 @@
  */
 signature sTestService {
-	void	start([in, string] const char *progname);
-	void	setBuiltInTest([in] Descriptor(sBuiltInTest) desc);
-	void	checkPoint([in] uint_t count);
-	void	finishPoint([in] uint_t count);
-	void	assertError([in, string] const char *expr,
+	ER		start([in, string] const char *progname);
+	ER		checkPoint([in] uint_t count);
+	ER		finishPoint([in] uint_t count);
+	ER		assertError([in, string] const char *expr,
 							[in, string] const char *file, [in] int_t line);
-	void	serviceError([in] ER ercd,
+	ER		serviceError([in] ER ercd,
 							[in, string] const char *file, [in] int_t line);
 	ER		getInterruptPriorityMask([out] PRI *p_ipm);
@@ -80,7 +75,7 @@
 [singleton, active]
 celltype tTestService {
-	entry		sTestService	eTestService;
-	[dynamic, optional] call	sBuiltInTest	cBuiltInTest;
-	call		sSysLog			cSysLog;
+	entry				sTestService	eTestService;
+	call				sSysLog			cSysLog;
+	[optional] call		sBuiltInTest	cBuiltInTest;
 
 	var {
@@ -88,19 +83,2 @@
 	};
 };
-
-/*
- *  自己診断サービスのディスクリプタを取得するシグニチャ
- */
-signature sGetBuiltInTestDescriptor {
-	ER		getDescriptor([out] Descriptor(sBuiltInTest) *p_desc,
-														[in] int_t i);
-};
-
-/*
- *  自己診断サービスのディスクリプタを取得するセルタイプ
- */
-[singleton, active]
-celltype tBuiltInTestAdaptor {
-	[ref_desc] call	sBuiltInTest				cBuiltInTest[];
-	entry			sGetBuiltInTestDescriptor	eGetBuiltInTestDescriptor;
-};
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestServiceAdapter.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestServiceAdapter.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestServiceAdapter.c	(revision 429)
@@ -0,0 +1,99 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2017-2018 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 "tTestServiceAdapter_tecsgen.h"
+#include "test_svc.h"
+
+/*
+ *  テストプログラムの開始
+ */
+void
+test_start(const char *progname)
+{
+	(void) cTestService_start(progname);
+}
+
+/*
+ *	チェックポイント
+ */
+void
+check_point(uint_t count)
+{
+	(void) cTestService_checkPoint(count);
+}
+
+/*
+ *	完了チェックポイント
+ */
+void
+check_finish(uint_t count)
+{
+	(void) cTestService_finishPoint(count);
+}
+
+/*
+ *	条件チェック
+ */
+void
+check_assert_error(const char *expr, const char *file, int_t line)
+{
+	(void) cTestService_assertError(expr, file, line);
+}
+
+/*
+ *	エラーコードチェック
+ */
+void
+check_ercd_error(ER ercd, const char *file, int_t line)
+{
+	(void) cTestService_serviceError(ercd, file, line);
+}
+
+/*
+ *	割込み優先度マスクの取得
+ */
+ER
+get_interrupt_priority_mask(PRI *p_ipm)
+{
+	return(cTestService_getInterruptPriorityMask(p_ipm));
+}
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestServiceAdapter.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestServiceAdapter.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/tTestServiceAdapter.cdl	(revision 429)
@@ -0,0 +1,10 @@
+/*
+ *		C言語で記述されたアプリケーションから，TECSベースのテストプログ
+ *		ラム用サービスを呼び出すためのアダプタ用セルタイプの定義
+ *
+ *  $Id$
+ */
+[singleton, active]
+celltype tTestServiceAdapter {
+	call	sTestService	cTestService;
+};
Index: EcnlProtoTool/trunk/asp3_dcre/syssvc/test_svc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/syssvc/test_svc.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/syssvc/test_svc.h	(revision 429)
@@ -1,8 +1,7 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
  * 
- *  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2005-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -54,66 +53,16 @@
 
 /*
- *  TECSで記述されたテストプログラム用のサービスを直接呼び出すための定義
- *
- *  C言語で記述されたアプリケーションから，TECSで記述されたテストプログ
- *  ラム用のサービスを呼び出すためには，アダプタを用いるのが正当な方法
- *  であるが，テストプログラム用のサービスがシングルトンであることを利
- *  用して直接呼び出す．
+ *  テストプログラム用サービスのサービスコール
  */
-extern void	tTestService_eTestService_start(const char* progname);
-extern void	tTestService_eTestService_setBuiltInTest(void *desc);
-extern void	tTestService_eTestService_checkPoint(uint_t count);
-extern void	tTestService_eTestService_finishPoint(uint_t count);
-extern void	tTestService_eTestService_assertError(const char* expr,
-											const char* file, int_t line);
-extern void	tTestService_eTestService_serviceError(ER ercd,
-											const char* file, int_t line);
-extern ER	tTestService_eTestService_getInterruptPriorityMask(PRI* p_ipm);
-
-/*
- *  テストプログラムの開始
- */
-Inline void
-test_start(const char *progname)
-{
-	tTestService_eTestService_start(progname);
-}
-
-/*
- *	自己診断関数の設定
- */
-Inline void
-set_bit_service(void *bit_service)
-{
-	tTestService_eTestService_setBuiltInTest(bit_service);
-}
-
-/*
- *	チェックポイント
- */
-Inline void
-check_point(uint_t count)
-{
-	tTestService_eTestService_checkPoint(count);
-}
-
-/*
- *	完了チェックポイント
- */
-Inline void
-check_finish(uint_t count)
-{
-	tTestService_eTestService_finishPoint(count);
-}
+extern void	test_start(const char *progname);
+extern void	check_point(uint_t count);
+extern void	check_finish(uint_t count);
+extern void	check_assert_error(const char *expr, const char *file, int_t line);
+extern void	check_ercd_error(ER ercd, const char *file, int_t line);
+extern ER	get_interrupt_priority_mask(PRI *p_ipm);
 
 /*
  *	条件チェック
  */
-Inline void
-check_assert_error(const char *expr, const char *file, int_t line)
-{
-	tTestService_eTestService_assertError(expr, file, line);
-}
-
 #define check_assert(exp) \
 	((void)(!(exp) ? (check_assert_error(#exp, __FILE__, __LINE__), 0) : 0))
@@ -122,10 +71,4 @@
  *	エラーコードチェック
  */
-Inline void
-check_ercd_error(ER ercd, const char *file, int_t line)
-{
-	tTestService_eTestService_serviceError(ercd, file, line);
-}
-
 #define check_ercd(ercd, expected_ercd) \
 	((void)((ercd) != (expected_ercd) ? \
@@ -146,11 +89,11 @@
  *	割込み優先度マスクのチェック
  */
-#define check_ipm(ipm) do {												\
-	PRI		intpri;														\
-	ER		ercd;														\
-																		\
-	ercd = tTestService_eTestService_getInterruptPriorityMask(&intpri);	\
-	check_ercd(ercd, E_OK);												\
-	check_assert(intpri == ipm);										\
+#define check_ipm(ipm) do {							\
+	PRI		intpri;									\
+	ER		ercd;									\
+													\
+	ercd = get_interrupt_priority_mask(&intpri);	\
+	check_ercd(ercd, E_OK);							\
+	check_assert(intpri == ipm);					\
 } while (false);
 
@@ -159,31 +102,3 @@
 #endif
 
-/*
- *  TECSで記述された自己診断サービスを直接呼び出すための定義
- *
- *  C言語で記述されたアプリケーションから，TECSで記述された自己診断サー
- *  ビスを呼び出すためには，アダプタを用いるのが正当な方法であるが，自
- *  己診断サービスがシングルトンであることを利用して直接呼び出す．
- */
-extern ER	tBuiltInTestAdaptor_eGetBuiltInTestDescriptor_getDescriptor
-												(void **p_desc, int_t i);
-
-Inline void *
-get_bit_kernel(void)
-{
-	void	*desc;
-
-	tBuiltInTestAdaptor_eGetBuiltInTestDescriptor_getDescriptor(&desc, 0);
-	return(desc);
-}
-
-Inline void *
-get_bit_mutex(void)
-{
-	void	*desc;
-
-	tBuiltInTestAdaptor_eGetBuiltInTestDescriptor_getDescriptor(&desc, 1);
-	return(desc);
-}
-
 #endif /* TOPPERS_TEST_SVC_H */
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.target
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.target	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.target	(revision 429)
@@ -2,5 +2,5 @@
 #		Makefile のターゲット依存部（GR-PEACH用）
 #
-#  $Id$
+#  $Id: Makefile.target 732 2016-04-03 03:08:05Z ertl-hiro $
 # 
 
@@ -31,7 +31,13 @@
 
 #
-#  MPCoreの種類の定義
+#  FPUサポートとコーリングコンベンション
 #
-MPCORE_TYPE = CA9
+#  FPUを使用する場合は，USE_ARM_FPUをマクロ定義し，使用するコーリング
+#  コンベンションに応じて，-mfloat-abi=softfpまたは-mfloat-abi=hardオ
+#  プションをつける．
+#
+#CDEFS := $(CDEFS) -DUSE_ARM_FPU
+#COPTS := $(COPTS) -mfloat-abi=softfp
+COPTS := $(COPTS) -mfloat-abi=hard
 
 #
@@ -46,5 +52,5 @@
 #
 KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR)
-KERNEL_COBJS := $(KERNEL_COBJS) target_kernel_impl.o core_pl310.o
+KERNEL_COBJS := $(KERNEL_COBJS) target_kernel_impl.o
 KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) target_support.o
 
@@ -55,5 +61,5 @@
 	CDEFS := $(CDEFS) -DTOPPERS_EXECUTE_ON_ROM
 	#LDSCRIPT = $(TARGETDIR)/gr_peach_rom.ld
-	LDSCRIPT = $(SRCDIR)/mbed/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H/TOOLCHAIN_GCC_ARM/RZA1H.ld
+	LDSCRIPT = $(SRCDIR)/mbed/targets/TARGET_RENESAS/TARGET_RZA1XX/TARGET_RZ_A1H/device/TOOLCHAIN_GCC_ARM/RZA1H.ld
 else
 	CDEFS := $(CDEFS) -DTOPPERS_EXECUTE_ON_RAM
@@ -62,19 +68,5 @@
 
 #
-#  GNU開発環境のターゲットアーキテクチャの定義
+#  チップ依存部
 #
-GCC_TARGET = arm-none-eabi
-#GCC_TARGET = arm-atollic-eabi
-
-#
-#  トレースログ記録のサンプルコードに関する定義
-#
-ifeq ($(ENABLE_TRACE),true)
-	COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
-	SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
-endif
-
-#
-#  チップ依存部のインクルード
-#
-include $(SRCDIR)/arch/arm_gcc/rza1/Makefile.chip
+include $(SRCDIR)/arch/$(CORE)_$(TOOL)/$(CHIP)/Makefile.chip
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.tinet
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.tinet	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/Makefile.tinet	(revision 429)
@@ -29,5 +29,5 @@
 #   接的または間接的に生じたいかなる損害に関しても，その責任を負わない．
 #  
-#   @(#) $Id$
+#   @(#) $Id: Makefile.tinet,v 1.6 2012/07/18 04:17:01 abe Exp abe $
 #
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/cfg_dmy.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/cfg_dmy.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/cfg_dmy.c	(revision 429)
@@ -1,5 +1,6 @@
 #include "MBRZA1H.h"
+#include <stdlib.h>
 
-IRQHandler _kernel_inh_table[Renesas_RZ_A1_IRQ_MAX+1];
+IRQHandler _kernel_inh_table[RZ_A1_IRQ_MAX+1];
 uint32_t _kernel_excpt_nest_count = 0;
 
@@ -23,4 +24,5 @@
 {
 }
+
 void _kernel_irq_handler()
 {
@@ -30,2 +32,24 @@
 {
 }
+
+void __libc_init_array()
+{
+}
+
+void *memset(void *dst, int c, size_t size)
+{
+	return NULL;
+}
+
+void *memcpy(void *dst, void * src, size_t size)
+{
+	return NULL;
+}
+
+int main()
+{
+}
+
+void exit(int exitcd)
+{
+}
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach.h	(revision 429)
@@ -1,10 +1,9 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
- *
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
  *  Copyright (C) 2011-2016 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -29,5 +28,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -35,5 +34,6 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
+ *  $Id$
  */
 
@@ -58,4 +58,9 @@
 
 /*
+ *  ボーレート設定
+ */
+#define UART_BAUDRATE		115200
+
+/*
  *  LEDの点灯／消灯
  */
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_ram.ld
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_ram.ld	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_ram.ld	(revision 429)
@@ -1,7 +1,7 @@
 /*
- *  $Id$
+ *  $Id: gr_peach_ram.ld 720 2016-04-01 22:16:17Z ertl-hiro $
  */
 
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm","elf32-littlearm") 
+OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") 
 OUTPUT_ARCH(arm)
 ENTRY(start);
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_rom.ld
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_rom.ld	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gr_peach_rom.ld	(revision 429)
@@ -1,7 +1,7 @@
 /*
- *  $Id$
+ *  $Id: gr_peach_rom.ld 720 2016-04-01 22:16:17Z ertl-hiro $
  */
 
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm","elf32-littlearm") 
+OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") 
 OUTPUT_ARCH(arm)
 ENTRY(start);
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeach.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeach.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeach.cdl	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2015 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -47,13 +47,13 @@
 
 /*
- *  GR-PEACHとRZ/A1に関する定義
+ *  GR-PEACHのハードウェア資源の定義
  */
 import_C("gr_peach.h");
-import_C("rza1.h");
-
-/*
- *  FIFO内蔵シリアルコミュニケーションインタフェース用 簡易SIOドライバ
- */
-import("tSCIF.cdl");
+import_C("device.h");
+
+/*
+ *  シリアルインタフェースドライバのチップ依存部（RZ/A1用）
+ */
+import("tMbedSerial.cdl");
 
 /*
@@ -73,10 +73,4 @@
 	call			sSIOPort	cSIOPort;
 	[inline] entry	siSIOCBR	eiSIOCBR;
-
-	/*
-	 *  割込み要求ライン操作のための結合
-	 */
-	call	sInterruptRequest	cRxInterruptRequest;
-	call	sInterruptRequest	cTxInterruptRequest;
 };
 
@@ -85,5 +79,4 @@
  *  ト）のセルタイプ
  */
-[active]
 composite tSIOPortGRPeach {
 	/*
@@ -97,9 +90,6 @@
 	 */
 	attr {
-		uintptr_t	baseAddress;				/* ベースアドレス */
-		INTNO		rxInterruptNumber;			/* 受信割込み番号 */
-		INTNO		txInterruptNumber;			/* 送信割込み番号 */
-		PRI			isrPriority = 1;			/* ISR優先度 */
-		PRI			interruptPriority = -4;		/* 割込み優先度 */
+		int32_t tx;								/* 送信Pin */
+		int32_t rx;								/* 受信Pin */
 		uint32_t	baudRate = 115200;			/* ボーレートの設定値 */
 	};
@@ -108,6 +98,7 @@
 	 *  SIOドライバ
 	 */
-	cell tSCIF SCIF {
-		baseAddress = composite.baseAddress;
+	cell tMbedSerial MbedSerial {
+		tx          = composite.tx;
+		rx          = composite.rx;
 		baudRate    = composite.baudRate;
 		ciSIOCBR    = SIOPortMain.eiSIOCBR;
@@ -119,35 +110,7 @@
 	cell tSIOPortGRPeachMain SIOPortMain {
 		ciSIOCBR            => composite.ciSIOCBR;
-		cSIOPort            = SCIF.eSIOPort;
-		cRxInterruptRequest = RxInterruptRequest.eInterruptRequest;
-		cTxInterruptRequest = TxInterruptRequest.eInterruptRequest;
+		cSIOPort            = MbedSerial.eSIOPort;
 	};
 	composite.eSIOPort => SIOPortMain.eSIOPort;
-
-	/*
-	 *  SIOの受信割込みサービスルーチンと割込み要求ライン
-	 */
-	cell tISR RxISRInstance {
-		interruptNumber = composite.rxInterruptNumber;
-		isrPriority     = composite.isrPriority;
-		ciISRBody       = SCIF.eiRxISR;
-	};
-	cell tInterruptRequest RxInterruptRequest {
-		interruptNumber   = composite.rxInterruptNumber;
-		interruptPriority = composite.interruptPriority;
-	};
-
-	/*
-	 *  SIOの受信割込みサービスルーチンと割込み要求ライン
-	 */
-	cell tISR TxISRInstance {
-		interruptNumber = composite.txInterruptNumber;
-		isrPriority     = composite.isrPriority;
-		ciISRBody       = SCIF.eiTxISR;
-	};
-	cell tInterruptRequest TxInterruptRequest {
-		interruptNumber   = composite.txInterruptNumber;
-		interruptPriority = composite.interruptPriority;
-	};
 };
 
@@ -157,13 +120,12 @@
  *  サンプルプログラムが使うポートが，SIOPortTarget1に固定されているた
  *  め，ポート1とポート3を入れ換えている．具体的には，SIOPortTarget1は
- *  SCIFのチャネル2（チャネル番号は0から始まるので，ポート3のこと）に，
- *  SIOPortTarget3はSCIFのチャネル0につながっている．
+ *  MbedSerialのチャネル2（チャネル番号は0から始まるので，ポート3のこと）に，
+ *  SIOPortTarget3はMbedSerialのチャネル0につながっている．
  */
 [prototype]
 cell tSIOPortGRPeach SIOPortTarget1 {
 	/* 属性の設定 */
-	baseAddress       = C_EXP("SCIF2_BASE");
-	rxInterruptNumber = C_EXP("INTNO_SCIF2_RXI");
-	txInterruptNumber = C_EXP("INTNO_SCIF2_TXI");
+	tx = C_EXP("P6_3");
+	rx = C_EXP("P6_2");
 };
 
@@ -171,7 +133,6 @@
 cell tSIOPortGRPeach SIOPortTarget2 {
 	/* 属性の設定 */
-	baseAddress       = C_EXP("SCIF1_BASE");
-	rxInterruptNumber = C_EXP("INTNO_SCIF1_RXI");
-	txInterruptNumber = C_EXP("INTNO_SCIF1_TXI");
+	tx = C_EXP("P2_5");
+	rx = C_EXP("P2_6");
 };
 
@@ -179,7 +140,6 @@
 cell tSIOPortGRPeach SIOPortTarget3 {
 	/* 属性の設定 */
-	baseAddress       = C_EXP("SCIF0_BASE");
-	rxInterruptNumber = C_EXP("INTNO_SCIF0_RXI");
-	txInterruptNumber = C_EXP("INTNO_SCIF0_TXI");
+	tx = C_EXP("P4_12");
+	rx = C_EXP("P4_13");
 };
 
@@ -187,7 +147,6 @@
 cell tSIOPortGRPeach SIOPortTarget4 {
 	/* 属性の設定 */
-	baseAddress       = C_EXP("SCIF3_BASE");
-	rxInterruptNumber = C_EXP("INTNO_SCIF3_RXI");
-	txInterruptNumber = C_EXP("INTNO_SCIF3_TXI");
+	tx = C_EXP("P2_14");
+	rx = C_EXP("P2_15");
 };
 
@@ -195,7 +154,6 @@
 cell tSIOPortGRPeach SIOPortTarget5 {
 	/* 属性の設定 */
-	baseAddress       = C_EXP("SCIF4_BASE");
-	rxInterruptNumber = C_EXP("INTNO_SCIF4_RXI");
-	txInterruptNumber = C_EXP("INTNO_SCIF4_TXI");
+	tx = C_EXP("P4_14");
+	rx = C_EXP("P4_15");
 };
 
@@ -203,7 +161,6 @@
 cell tSIOPortGRPeach SIOPortTarget6 {
 	/* 属性の設定 */
-	baseAddress       = C_EXP("SCIF5_BASE");
-	rxInterruptNumber = C_EXP("INTNO_SCIF5_RXI");
-	txInterruptNumber = C_EXP("INTNO_SCIF5_TXI");
+	tx = C_EXP("P5_3");
+	rx = C_EXP("P5_4");
 };
 
@@ -211,7 +168,6 @@
 cell tSIOPortGRPeach SIOPortTarget7 {
 	/* 属性の設定 */
-	baseAddress       = C_EXP("SCIF6_BASE");
-	rxInterruptNumber = C_EXP("INTNO_SCIF6_RXI");
-	txInterruptNumber = C_EXP("INTNO_SCIF6_TXI");
+	tx = C_EXP("P8_8");
+	rx = C_EXP("P8_9");
 };
 
@@ -219,6 +175,54 @@
 cell tSIOPortGRPeach SIOPortTarget8 {
 	/* 属性の設定 */
-	baseAddress       = C_EXP("SCIF7_BASE");
-	rxInterruptNumber = C_EXP("INTNO_SCIF7_RXI");
-	txInterruptNumber = C_EXP("INTNO_SCIF7_TXI");
-};
+	tx = C_EXP("P5_0");
+	rx = C_EXP("P5_1");
+};
+
+[prototype]
+cell tSIOPortGRPeach SIOPortTarget9 {
+	/* 属性の設定 */
+	tx = C_EXP("P8_14");
+	rx = C_EXP("P8_15");
+};
+
+[prototype]
+cell tSIOPortGRPeach SIOPortTarget10 {
+	/* 属性の設定 */
+	tx = C_EXP("P8_13");
+	rx = C_EXP("P8_11");
+};
+
+[prototype]
+cell tSIOPortGRPeach SIOPortTarget11 {
+	/* 属性の設定 */
+	tx = C_EXP("P11_10");
+	rx = C_EXP("P11_11");
+};
+
+[prototype]
+cell tSIOPortGRPeach SIOPortTarget12 {
+	/* 属性の設定 */
+	tx = C_EXP("P6_6");
+	rx = C_EXP("P6_7");
+};
+
+[prototype]
+cell tSIOPortGRPeach SIOPortTarget13 {
+	/* 属性の設定 */
+	tx = C_EXP("P5_6");
+	rx = C_EXP("P5_7");
+};
+
+[prototype]
+cell tSIOPortGRPeach SIOPortTarget14 {
+	/* 属性の設定 */
+	tx = C_EXP("P11_1");
+	rx = C_EXP("P11_2");
+};
+
+[prototype]
+cell tSIOPortGRPeach SIOPortTarget15 {
+	/* 属性の設定 */
+	tx = C_EXP("P7_4");
+	rx = C_EXP("P7_5");
+};
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeachMain_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeachMain_inline.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tSIOPortGRPeachMain_inline.h	(revision 429)
@@ -57,10 +57,4 @@
 	 */
 	cSIOPort_open();
-
-	/*
-	 *  SIOの割込みマスクを解除する．
-	 */
-	cRxInterruptRequest_enable();
-	cTxInterruptRequest_enable();
 }
 
@@ -77,10 +71,4 @@
 	 */
 	cSIOPort_close();
-
-	/*
-	 *  SIOの割込みをマスクする．
-	 */
-	cRxInterruptRequest_disable();
-	cTxInterruptRequest_disable();
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target.cdl	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2015 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -42,4 +42,8 @@
 
 /*
+ *		コンポーネント記述ファイルのターゲット依存部（GR-PEACH用）
+ */
+
+/*
  *  タスクのスタックサイズのデフォルト
  */
@@ -60,5 +64,5 @@
  *  ターゲット依存のセルタイプの定義
  */
-import("tPutLogGRPeach.cdl");
+import("syssvc/tPutLogSIOPort.cdl");
 import("tSIOPortGRPeach.cdl");
 
@@ -72,5 +76,5 @@
  *  低レベル出力の組み上げ記述
  */
-cell tPutLogGRPeach PutLogTarget {
+cell tPutLogSIOPort PutLogTarget {
 	/* SIOドライバとの結合 */
 	cSIOPort = SIOPortTarget1.eSIOPort;
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_check.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_check.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_check.trb	(revision 429)
@@ -1,5 +1,7 @@
 # -*- coding: utf-8 -*-
 #
-#		パス3の生成スクリプトのターゲット依存部（GR-PEACH用）
+#		パス3の生成スクリプトのターゲット依存部
+#
+#  $Id: target_check.trb 1071 2018-11-25 01:27:37Z ertl-hiro $
 #
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.cfg	(revision 429)
@@ -4,3 +4,3 @@
  *  $Id$
  */
-INCLUDE("target_timer.cfg")
+INCLUDE("target_timer.cfg");
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.h	(revision 429)
@@ -1,42 +1,2 @@
-/*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
- *
- *  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$
- */
-
 /*
  *		kernel.hのターゲット依存部（GR-PEACH用）
@@ -45,8 +5,33 @@
  *  から直接インクルードすることはない．このファイルをインクルードする
  *  前に，t_stddef.hがインクルードされるので，それに依存してもよい．
+ * 
+ *  $Id$
  */
 
 #ifndef TOPPERS_TARGET_KERNEL_H
 #define TOPPERS_TARGET_KERNEL_H
+
+/*
+ *  高分解能タイマのタイマ周期
+ *
+ *  2^32 / 33.33…を丸めた値とする．
+ */
+#define TCYC_HRTCNT		128849019U
+
+/*
+ *  高分解能タイマのカウント値の進み幅
+ */
+#define TSTEP_HRTCNT	1U
+
+/*
+ *  オーバランハンドラの残りプロセッサ時間に指定できる最大値
+ *
+ *  この値をOSタイマへの設定値に変換してタイマに設定した後，タイマの現
+ *  在値を読み出してμ秒単位に変換できる値としている．タイマの現在値を
+ *  μ秒単位に変換する時に34を加えるため，以下の条件を満たす最大の値と
+ *  する．
+ *		(TMAX_OVRTIM * 33 + TMAX_OVRTIM / 3 + 1) + 34 < 2^32
+ */
+#define TMAX_OVRTIM		128849017U
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel.trb	(revision 429)
@@ -1,5 +1,7 @@
 # -*- coding: utf-8 -*-
 #
-#		パス2の生成スクリプトのターゲット依存部（GR-PEACH用）
+#		パス2の生成スクリプトのターゲット依存部
+#
+#  $Id: target_kernel.trb 1071 2018-11-25 01:27:37Z ertl-hiro $
 #
 
@@ -7,3 +9,3 @@
 #  生成スクリプトのチップ依存部
 #
-IncludeTrb("chip_kernel.trb")
+IncludeTrb("chip_kernel.trb");
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.c	(revision 429)
@@ -3,8 +3,8 @@
  *      Toyohashi Open Platform for Embedded Real-Time Systems/
  *      Advanced Standard Profile Kernel
- *
- *  Copyright (C) 2007-2016 by Embedded and Real-Time Systems Laboratory
+ * 
+ *  Copyright (C) 2007-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -29,5 +29,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -35,5 +35,5 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
  *  $Id$
  */
@@ -48,6 +48,13 @@
 #include "rza1.h"
 #include "scif.h"
-#include "core_pl310.h"
-#include "us_ticker_api.h"
+
+/*
+ * C++のグローバルコンストラクタ呼び出し
+ */
+void __libc_init_array()
+{
+	/* グローバルコンストラクタでOS APIを呼び出す場合は、
+	   タスクが起動してから行う */
+}
 
 /*
@@ -63,14 +70,14 @@
  *  MMUへの設定属性（第1レベルディスクリプタ）
  */
-#define MMU_ATTR_RAM	(ARM_MMU_DSCR1_SHARED|ARMV6_MMU_DSCR1_APX0 \
-							|ARM_MMU_DSCR1_TEX001|ARM_MMU_DSCR1_AP11 \
-							|ARM_MMU_DSCR1_CB11)
-#define MMU_ATTR_IODEV	(ARM_MMU_DSCR1_SHARED|ARMV6_MMU_DSCR1_APX0 \
-							|ARM_MMU_DSCR1_TEX000|ARM_MMU_DSCR1_AP11 \
-							|ARM_MMU_DSCR1_CB01|ARMV6_MMU_DSCR1_NOEXEC)
+#define MMU_ATTR_RAM	(ARM_MMU_DSCR1_SHARED|ARM_MMU_DSCR1_TEX001 \
+							|ARMV6_MMU_DSCR1_AP011|ARM_MMU_DSCR1_CB11)
+#define MMU_ATTR_IODEV	(ARM_MMU_DSCR1_SHARED|ARM_MMU_DSCR1_TEX000 \
+							|ARMV6_MMU_DSCR1_AP011|ARM_MMU_DSCR1_CB01 \
+							|ARMV6_MMU_DSCR1_NOEXEC)
+
 /*
  *  MMUの設定情報（メモリエリアの情報）
  */
-ARM_MMU_CONFIG arm_memory_area[] = {
+const ARM_MMU_CONFIG arm_memory_area[] = {
 	{ SPI_ADDR, SPI_ADDR, SPI_SIZE, MMU_ATTR_RAM },
 	{ SRAM_ADDR, SRAM_ADDR, SRAM_SIZE, MMU_ATTR_RAM },
@@ -206,7 +213,7 @@
  *  システムログの低レベル出力のための初期化
  *
- *  セルタイプtPutLogGRPeach内に実装されている関数を直接呼び出す．
- */
-extern void	tPutLogGRPeach_initialize(void);
+ *  セルタイプtPutLogSIOPort内に実装されている関数を直接呼び出す．
+ */
+extern void	tPutLogSIOPort_initialize(void);
 
 /*
@@ -244,9 +251,4 @@
 
 	/*
-	 *  L2キャッシュコントローラ（PL310）の初期化
-	 */
-	/*pl310_initialize(0x0U, ~0x0U);*/
-
-	/*
 	 *  LEDを青色に点灯させる
 	 */
@@ -254,8 +256,8 @@
 
 	/*
-	 *  低レベル出力用にSIOを初期化
+	 *  SIOを初期化
 	 */
 #ifndef TOPPERS_OMIT_TECS
-	tPutLogGRPeach_initialize();
+	tPutLogSIOPort_initialize();
 #endif /* TOPPERS_OMIT_TECS */
 }
@@ -268,4 +270,15 @@
 {
 	static int first = 1;
+	extern void    software_term_hook(void);
+	void (*volatile fp)(void) = software_term_hook;
+
+	/*
+	 *  software_term_hookへのポインタを，一旦volatile指定のあるfpに代
+	 *  入してから使うのは，0との比較が最適化で削除されないようにするた
+	 *  めである．
+	 */
+	if (fp != 0) {
+		(*fp)();
+	}
 
 	/*
@@ -293,52 +306,2 @@
 	rza1_config_port(RZA1_PORT_P(6), led, set);
 }
-
-void us_ticker_init(void)
-{
-}
-
-uint32_t us_ticker_read()
-{
-	ER ret;
-	SYSTIM now;
-
-	ret = get_tim(&now);
-	if(ret != E_OK)
-		return 0;
-
-	return now;
-}
-
-void us_ticker_set_interrupt(timestamp_t timestamp)
-{
-	Asm("bkpt #0");
-}
-
-void us_ticker_disable_interrupt(void)
-{
-}
-
-void us_ticker_clear_interrupt(void)
-{
-}
-
-void wait(float s)
-{
-	wait_us(s * 1000000.0f);
-}
-
-void wait_ms(int ms)
-{
-	wait_us(ms * 1000);
-}
-
-void wait_us(int us)
-{
-	ER ret;
-
-	ret = dly_tsk(us);
-	if (ret == E_CTX){
-		uint32_t start = us_ticker_read();
-		while ((us_ticker_read() - start) < (uint32_t)us);
-	}
-}
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_kernel_impl.h	(revision 429)
@@ -3,10 +3,10 @@
  *      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-2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -31,5 +31,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -37,5 +37,5 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
  *  $Id$
  */
@@ -57,20 +57,8 @@
 
 /*
- *  トレースログに関する設定
- */
-#ifdef TOPPERS_ENABLE_TRACE
-#include "arch/tracelog/trace_log.h"
-#endif /* TOPPERS_ENABLE_TRACE */
-
-/*
- *  デフォルトの非タスクコンテキスト用のスタック領域の定義
- */
-#define DEFAULT_ISTKSZ  0x2000U		/* 8KB */
-
-/*
  *  微少時間待ちのための定義（本来はSILのターゲット依存部）
  */
-#define SIL_DLY_TIM1    352
-#define SIL_DLY_TIM2    200
+#define SIL_DLY_TIM1	110
+#define SIL_DLY_TIM2	72
 
 /*
@@ -84,5 +72,5 @@
  *  ターゲットシステム依存の初期化
  */
-extern void target_initialize(void);
+extern void	target_initialize(void);
 
 /*
@@ -91,5 +79,5 @@
  *  システムを終了する時に使う．
  */
-extern void target_exit(void) NoReturn;
+extern void	target_exit(void) NoReturn;
 
 #endif /* TOPPERS_MACRO_ONLY */
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_rename.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_rename.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_rename.def	(revision 429)
@@ -1,13 +1,7 @@
 # target_kernel_impl.c
+arm_tnum_memory_area
+arm_memory_area
 target_initialize
 target_exit
 
-# tTraceLog.c
-log_dsp_enter
-log_dsp_leave
-log_inh_enter
-log_inh_leave
-log_exc_enter
-log_exc_leave
-
 INCLUDE "chip"
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_rename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_rename.h	(revision 429)
@@ -7,16 +7,8 @@
  *  target_kernel_impl.c
  */
+#define arm_tnum_memory_area		_kernel_arm_tnum_memory_area
+#define arm_memory_area				_kernel_arm_memory_area
 #define target_initialize			_kernel_target_initialize
 #define target_exit					_kernel_target_exit
-
-/*
- *  tTraceLog.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
 
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_sil.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_sil.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_sil.h	(revision 429)
@@ -1,47 +1,10 @@
 /*
- *  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$
- */
-
-/*
- *		sil.hのチップ依存部（GR-PEACH用）
+ *		sil.hのターゲット依存部（GR-PEACH用）
  *
  *  このヘッダファイルは，sil.hからインクルードされる．他のファイルから
  *  直接インクルードすることはない．このファイルをインクルードする前に，
  *  t_stddef.hがインクルードされるので，それに依存してもよい．
+ * 
+ *  $Id$
  */
 
@@ -57,7 +20,5 @@
  *  コアで共通な定義（チップ依存部は飛ばす）
  */
-#ifndef TECSGEN
 #include "core_sil.h"
-#endif /* TECSGEN */
 
 #endif /* TOPPERS_TARGET_SIL_H */
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_stddef.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_stddef.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_stddef.h	(revision 429)
@@ -1,41 +1,2 @@
-/*
- *  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$
- */
-
 /*
  *		t_stddef.hのターゲット依存部（GR-PEACH用）
@@ -44,4 +5,6 @@
  *  イルからは直接インクルードすることはない．他のヘッダファイルに先立っ
  *  て処理されるため，他のヘッダファイルに依存してはならない．
+ * 
+ *  $Id$
  */
 
@@ -56,15 +19,5 @@
 
 /*
- *  開発環境で共通な定義
- */
-#ifndef TOPPERS_MACRO_ONLY
-#include <stdint.h>
-#endif /* TOPPERS_MACRO_ONLY */
-
-#define TOPPERS_STDFLOAT_TYPE1
-#include "tool_stddef.h"
-
-/*
- *  チッブ依存で共通な定義
+ *  チッブで共通な定義
  */
 #include "chip_stddef.h"
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_support.S
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_support.S	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_support.S	(revision 429)
@@ -51,5 +51,5 @@
 #define CAST(type, val)		(val)		/* 型キャストを行うマクロ */
 #include "kernel_impl.h"
-#include "core_pl310.h"
+#include "pl310.h"
 #include "core_asm.inc"
 
@@ -71,5 +71,5 @@
 	ldrb	r0, [r2]		/* ダミーリード */
 
-	/* 
+	/*
 	 *  クロック関係の初期化
 	 *
@@ -103,5 +103,5 @@
 
 #ifdef TOPPERS_RZA1H
-	/* 
+	/*
 	 *  画像処理クロックを「×2/3」に（266.67MHz）
 	 */
@@ -115,5 +115,5 @@
 #endif /* TOPPERS_RZA1H */
 
-	/* 
+	/*
 	 *  ソフトウェアスタンバイ復帰中でなくなるまで待つ
 	 */
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_syssvc.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_syssvc.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_syssvc.h	(revision 429)
@@ -1,63 +1,14 @@
 /*
- *  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-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$
- */
-
-/*
- *		システムサービスのターゲット依存部（GR-PEACH用）
+ *		システムサービスのターゲット依存部
  *
  *  システムサービスのターゲット依存部のヘッダファイル．システムサービ
  *  スのターゲット依存の設定は，できる限りコンポーネント記述ファイルで
  *  記述し，このファイルに記述するものは最小限とする．
+ * 
+ *  $Id$
  */
 
 #ifndef TOPPERS_TARGET_SYSSVC_H
 #define TOPPERS_TARGET_SYSSVC_H
-
-#include "gr_peach.h"
-
-/*
- *  トレースログに関する設定
- */
-#ifdef TOPPERS_ENABLE_TRACE
-#include "arch/tracelog/trace_log.h"
-#endif /* TOPPERS_ENABLE_TRACE */
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_test.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_test.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_test.h	(revision 429)
@@ -3,8 +3,8 @@
  *      Toyohashi Open Platform for Embedded Real-Time Systems/
  *      Advanced Standard Profile Kernel
- *
+ * 
  *  Copyright (C) 2007-2016 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
- *
+ * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
@@ -29,5 +29,5 @@
  *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
  *      免責すること．
- *
+ * 
  *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
  *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
@@ -35,5 +35,5 @@
  *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
  *  の責任を負わない．
- *
+ * 
  *  $Id$
  */
@@ -49,9 +49,9 @@
 
 /*
- *  サンプルプログラムで使用する割込みに関する定義
+ *  サンプルプログラム／テストプログラムで使用する割込みに関する定義
  */
 #define INTNO1				INTNO_IRQ5
 #define INTNO1_INTATR		TA_ENAINT|TA_NEGEDGE
-#define INTNO1_INTPRI		-15
+#define INTNO1_INTPRI		(-15)
 #define intno1_clear()		rza1_clear_irq(INTNO_IRQ5)
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.cfg	(revision 429)
@@ -5,9 +5,8 @@
  */
 
-#include "gr_peach.h"
 #include "target_timer.h"
 
 /*
- *  チップ依存部（RZ/A1用）
+ *  チップ依存部
  */
 INCLUDE("chip_timer.cfg");
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_timer.h	(revision 429)
@@ -1,44 +1,6 @@
 /*
- *  TOPPERS/ASP Kernel
- *      Toyohashi Open Platform for Embedded Real-Time Systems/
- *      Advanced Standard Profile Kernel
- *
- *  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$
- */
-
-/*
- *		タイマドライバ（GR-PEACH用）
  */
 
@@ -47,5 +9,5 @@
 
 /*
- *  チップで共通な定義（RZ/A1用）
+ *  チップで共通な定義
  */
 #include "chip_timer.h"
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_unrename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_unrename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_unrename.h	(revision 429)
@@ -8,16 +8,8 @@
  *  target_kernel_impl.c
  */
+#undef arm_tnum_memory_area
+#undef arm_memory_area
 #undef target_initialize
 #undef target_exit
-
-/*
- *  tTraceLog.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
 
 
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_user.txt
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_user.txt	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_user.txt	(revision 429)
@@ -3,6 +3,6 @@
 		GR-PEACH依存部 ユーザーズマニュアル
 
-		対応バージョン: Release 3.1
-		最終更新: 2016年4月2日
+		対応バージョン: Release 3.5.0
+		最終更新: 2019年10月6日
 
 このドキュメントは，TOPPERS/ASP3カーネルのGR-PEACHターゲット依存部を使
@@ -14,8 +14,8 @@
      Advanced Standard Profile Kernel
 
- Copyright (C) 2008-2016 by Embedded and Real-Time Systems Laboratory
+ Copyright (C) 2008-2019 by Embedded and Real-Time Systems Laboratory
              Graduate School of Information Science, Nagoya Univ., JAPAN
  
- 上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
+ 上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
@@ -46,5 +46,5 @@
  の責任を負わない．
  
- $Id: target_user.txt 1145 2017-02-06 04:26:43Z coas-nagasima $
+ $Id: target_user.txt 1280 2019-10-06 01:47:52Z ertl-hiro $
 ----------------------------------------------------------------------
 
@@ -57,4 +57,23 @@
 
 ○目次
+
+１．GR-PEACHターゲット依存部の概要
+	1.1 対応するターゲットシステムとターゲット略称
+	1.2 ターゲット依存部の構成
+	1.3 依存している個別パッケージのバージョン番号
+	1.4 開発環境／デバッグ環境と動作確認条件
+	1.5 メモリマップ
+２．ターゲット定義事項の規定
+３．ドライバ関連の情報
+	3.1 タイマドライバ
+	3.2 シリアルインタフェースドライバ
+	3.3 システムログの低レベル出力
+４．システム構築手順と実行手順
+	4.1 ROM実行の場合の構築手順と実行手順
+	4.2 RAM実行の場合の構築手順と実行手順
+	4.3 ドライバのインストール
+５．リファレンス
+	5.1 ディレクトリ構成・ファイル構成
+	5.2 バージョン履歴
 
 
@@ -98,39 +117,40 @@
 		arm_gcc/doc/		ARM依存部に関するドキュメント
 		gcc/				GCC開発環境依存部
-		tracelog/			トレースログ記録のサンプルコード
 
 1.3 依存している個別パッケージのバージョン番号
 
-GR-PEACHターゲット依存部（バージョン 3.1.0）の個別パッケージが依存して
+GR-PEACHターゲット依存部（バージョン 3.4.0）の個別パッケージが依存して
 いる個別パッケージと，動作確認を行ったバージョンは次の通り．
 
 	個別パッケージの名称	バージョン	個別パッケージファイル名
 	------------------------------------------------------------------
-	ターゲット非依存部		3.1.0		asp3-3.1.0.tar.gz
+	ターゲット非依存部		3.4.0		asp3-3.4.0.tar.gz
 
 1.4 開発環境／デバッグ環境と動作確認条件
 
-開発環境として，以下のURLからプリビルド版をダウンロードすることができる
-GCC ARM Embeddedを用いている．
-
-	https://launchpad.net/gcc-arm-embedded/
+開発環境として，以下のURLからプリビルド版をダウンロードすることができ
+るGNU ARM Embedded Toolchainを用いている（Cortex-MとCortex-R向けの開発
+環境であるが，Cortex-A向けにも使用できる）．
+
+	https://developer.arm.com/open-source/gnu-toolchain/gnu-rm
 
 動作確認を行ったバージョンは次の通り．
 
-	gcc: version 4.8.3 20140228
-	binutils（objcopy，objdump）：2.23.2.20140228
-
-デバッグ環境として，オンボードのCMSIS-DAPから，OpenOCDを経由して，GDBを
-用いる環境で動作確認を行っている．動作確認を行ったデバッグ環境のバージョ
-ンは次の通り．
+	gcc: 7.3.1 20180622
+	binutils（objcopy，objdump）：2.30.0.20180329
+
+デバッグ環境として，オンボードのCMSIS-DAPから，OpenOCDを経由して，GDB
+を用いる環境で動作確認を行っている．動作確認を行ったデバッグ環境のバー
+ジョンは次の通り．
 
 	gdb: 7.6.0.20140228-cvs
 	openocd: 0.10.0-dev-00287-g85cec24
 
-古いバージョンのOpenOCDでは正しく動作しないことが報告されているため，注
-意が必要である．
-
-GUIベースの開発環境／デバッグ環境として，Atollic TrueStudioを用いること
-ができる．
+新しいgdb（8.1.0.20180315-git）を使用したところ，OpenOCDとうまく接続で
+きなかったため，やや古いgdbを使用している．また，異なるバージョンの
+OpenOCDでは正しく動作しないことが報告されているため，注意が必要である．
+
+GUIベースの開発環境／デバッグ環境として，Atollic TrueSTUDIOを用いるこ
+とができる．
 
 1.5 メモリマップ
@@ -143,10 +163,11 @@
 	0xe8000000 - 0xffffffff：I/O領域（384MB），予約領域を含む
 
-内蔵SRAM領域の先頭の16KBは，ブートローダを置くために使用する．
+シリアルフラッシュメモリの先頭の16KBは，ブートローダを置くために使用す
+る．
 
 RAM実行の場合は，以下のメモリマップを想定している．
 
-	0x20000000 - 0x200fffff：内蔵SRAM（1MB）… ROM領域として使用
-	0x20100000 - 0x209fffff：内蔵SRAM（9MB）
+	0x20000000 - 0x200fffff：ROMとみなす内蔵SRAM領域（1MB）
+	0x20100000 - 0x209fffff：RAMとみなす内蔵SRAM領域（9MB）
 	0x3fe00000 - 0x3fffffff：I/O領域（2MB），予約領域を含む
 	0xe8000000 - 0xffffffff：I/O領域（384MB），予約領域を含む
@@ -156,5 +177,5 @@
 
 メモリマップを変更する場合には，target_kernel_impl.cとgr_peach_rom.ld
-（または，pr_peach_ram.kd）を修正する必要がある．
+（または，pr_peach_ram.ld）を修正する必要がある．
 
 
@@ -164,5 +185,5 @@
 装されている．ARMコア依存部およびRZ/A1チップ依存部におけるターゲット定
 義事項の規定については，「ARM依存部 ユーザーズマニュアル」を参照するこ
-と．それらの規定以外に，GR-PEACHターゲット定義の事項はない．
+と．
 
 
@@ -180,10 +201,13 @@
 コミュニケーションインタフェースをサポートしている．
 
-USB経由でホストと接続できるポートは，SCIFのチャネル2（チャネル番号は0か
-ら始まるので，ポート3に相当）である．一方，sample1.cdlでは，ログタスク
-およびサンプルプログラムが使うポートがポート1となっているため，ポート1
-とポート3を入れ換えている．すなわち，シリアルインタフェースドライバのポー
-ト1がSCIFのチャネル2，ポート2がチャネル1，ポート3がチャネル0，ポート4が
-チャネル3，…に対応している．
+GR-PEACHでUSB経由でホストと接続できるポートは，SCIFのチャネル2（チャネ
+ル番号は0から始まるので，ポート3に相当）である．一方，サンプルプログラ
+ム（sample1.cdl）では，ログタスクおよびサンプルプログラムが使うポート
+がポート1となっているため，ポート1とポート3を入れ換えている．すなわち，
+シリアルインタフェースドライバのポート1がSCIFのチャネル2，ポート2がチャ
+ネル1，ポート3がチャネル0，ポート4がチャネル3，…に対応している．この
+対応を変更するには，tSIOPortGRPeach.cdlを修正する必要がある．
+
+各ポートは，以下の通りに設定している．
 
 	ボーレート：115200bps
@@ -191,7 +215,7 @@
 	パリティ：なし
 	ストップビット：1ビット
-	フロー制御：なし
-
-この対応を変更するには，tSIOPortGRPeach.cdlを修正する必要がある．
+
+この設定は，RZ/A1チップ依存部で行っているが，tSIOPortGRPeach.cdlを修正
+することで変更することができる．
 
 3.3 システムログの低レベル出力
@@ -292,10 +316,6 @@
 		renesas_rza1h_swd.cfg	OpenOCDの起動スクリプト
 		sf_boot.c				ブートローダ（ROM実行用）
-		tPutLogGRPeach.c		システムログの低レベル出力
-		tPutLogGRPeach.cdl		システムログの低レベル出力のコンポーネント記述
 		tSIOPortGRPeach.cdl		シリアルインタフェースドライバのターゲット
 								依存部（GR-PEACH用）のコンポーネント記述
-		tSIOPortGRPeachMain_inline.h	シリアルインタフェースドライバの
-								ターゲット依存部（GR-PEACH用）
 		target.cdl				コンポーネント記述ファイルのターゲット依存部
 		target_cfg1_out.h		cfg1_out.cのリンクに必要なスタブの定義
@@ -322,4 +342,8 @@
 
 	2016年5月15日	Release	3.1.0		最初の一般公開
+	2017年7月21日	Release	3.2.0
+	2018年4月19日	Release	3.3.0
+	2019年3月20日	Release	3.4.0
+	2019年10月6日	Release	3.5.0
 
 以上
Index: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h	(revision 429)
@@ -182,9 +182,21 @@
 #define NUM_IF_MBED_RXBUF		NUM_OF_RX_DESCRIPTOR	/* 受信バッファ数			*/
 
-#define TMO_IF_MBED_GET_NET_BUF	1000	/* [ms]、受信用 net_buf 獲得タイムアウト	*/
+#define TMO_IF_MBED_GET_NET_BUF	1000	/* [us]、受信用 net_buf 獲得タイムアウト	*/
 					/* [s]、 送信タイムアウト			*/
 #define TMO_IF_MBED_XMIT		(2*IF_TIMER_HZ)
 
 /*#define IF_MBED_CFG_ACCEPT_ALL		 マルチキャスト、エラーフレームも受信するときはコメントを外す。*/
+
+/*
+ *  Bluetooth USB PAN に関する定義
+ */
+
+#define NUM_IF_BTUSB_TXBUF		2	/* 送信バッファ数			*/
+#define NUM_IF_BTUSB_RXBUF		2	/* 受信バッファ数			*/
+#define IF_BTUSB_BUF_PAGE_SIZE	1518	/* バッファサイズ */
+
+#define TMO_IF_BTUSB_GET_NET_BUF	1000	/* [us]、受信用 net_buf 獲得タイムアウト	*/
+					/* [s]、 送信タイムアウト			*/
+#define TMO_IF_BTUSB_XMIT		(2*IF_TIMER_HZ)
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/kernel.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/kernel.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/kernel.cdl	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2015,2016 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -299,5 +299,5 @@
 	ER 		sendForce([in] intptr_t data);
 	ER 		receive([out] intptr_t *p_data);
-	ER 		receivePolling([out] intptr_t *p_Data);
+	ER 		receivePolling([out] intptr_t *p_data);
 	ER 		receiveTimeout([out] intptr_t *p_data, [in] TMO timeout);
 	ER 		initialize(void);
@@ -397,5 +397,5 @@
 	ER		unlock(void);
 	ER		initialize(void);
-	ER		refer([out] T_RSEM *pk_mutexStatus);
+	ER		refer([out] T_RMTX *pk_mutexStatus);
 };
 
@@ -501,5 +501,5 @@
 
 	attr {
-		ID				id = C_EXP("ALMID_$id$");
+		ID				id = C_EXP("CYCID_$id$");
 		[omit] ATR		attribute = C_EXP("TA_NULL");
 		[omit] bool_t	ignoreErrors = false;
@@ -536,5 +536,5 @@
 
 /*
- *  周期通知にユーザーハンドラを指定するための複合セルタイプ
+ *  周期通知にタイムイベントハンドラを指定するための複合セルタイプ
  */
 [active]
@@ -544,5 +544,5 @@
 
 	attr {
-		ID				id = C_EXP("ALMID_$id$");
+		ID				id = C_EXP("CYCID_$id$");
 		[omit] ATR		attribute = C_EXP("TA_NULL");
 		[omit] RELTIM	cycleTime;
@@ -630,5 +630,5 @@
 
 /*
- *  アラーム通知にユーザーハンドラを指定するための複合セルタイプ
+ *  アラーム通知にタイムイベントハンドラを指定するための複合セルタイプ
  */
 [active]
@@ -663,4 +663,7 @@
 	ER		disable(void);
 	ER		enable(void);
+	ER		clear(void);
+	ER		raise(void);
+	ER_BOOL	probe(void);
 };
 
@@ -715,15 +718,34 @@
 
 	attr {
-		INHNO			interruptHandlerNumber;
-		[omit] ATR		attribute = C_EXP("TA_NULL");
-	};
-
-	factory {
-		write("tecsgen.cfg",
-				"DEF_INH(%s, { %s, tInterruptHandler_start });", attribute);
+		[omit] INHNO	interruptHandlerNumber;
+		[omit] ATR		attribute = C_EXP("TA_NULL");
+	};
+
+	factory {
+		write("tecsgen.cfg", "DEF_INH(%s, { %s, $id$_start });",
+									interruptHandlerNumber, attribute);
+		write("$ct$_tecsgen.h",
+				"#ifndef TOPPERS_MACRO_ONLY\n"
+				"extern void $id$_start(void);\n"
+				"#endif /* TOPPERS_MACRO_ONLY */\n");
+		write("$ct$.c",
+				"void $id$_start()\n"
+				"{\n"
+				"    CELLCB *p_cellcb = $cbp$;\n"
+				"    ciInterruptHandlerBody_main();\n"
+				"}\n");
 	};
 	FACTORY {
 		write("tecsgen.cfg", "#include \"$ct$_tecsgen.h\"");
-	};
+		write("$ct$.c", "#include \"$ct$_tecsgen.h\"");
+	};
+};
+
+/*
+ *  CPU例外ハンドラ本体のシグニチャ
+ */
+[context("non-task")]
+signature siCpuExceptionHandlerBody {
+	void	main([in] const void *p_excinf);
 };
 
@@ -733,17 +755,28 @@
 [active]
 celltype tCpuExceptionHandler {
-	call	siHandlerBody	ciCpuExceptionHandlerBody;
-
-	attr {
-		EXCNO			cpuExceptionHandlerNumber;
-		[omit] ATR		attribute = C_EXP("TA_NULL");
-	};
-
-	factory {
-		write("tecsgen.cfg",
-				"DEF_EXC(%s, { %s, tCpuExceptionHandler_start });", attribute);
+	call	siCpuExceptionHandlerBody	ciCpuExceptionHandlerBody;
+
+	attr {
+		[omit] EXCNO	cpuExceptionHandlerNumber;
+		[omit] ATR		attribute = C_EXP("TA_NULL");
+	};
+
+	factory {
+		write("tecsgen.cfg", "DEF_EXC(%s, { %s, $id$_start });",
+									cpuExceptionHandlerNumber, attribute);
+		write("$ct$_tecsgen.h",
+				"#ifndef TOPPERS_MACRO_ONLY\n"
+				"extern void $id$_start(void *p_excinf);\n"
+				"#endif /* TOPPERS_MACRO_ONLY */\n");
+		write("$ct$.c",
+				"void $id$_start(void *p_excinf)\n"
+				"{\n"
+				"    CELLCB *p_cellcb = $cbp$;\n"
+				"    ciCpuExceptionHandlerBody_main(p_excinf);\n"
+				"}\n");
 	};
 	FACTORY {
 		write("tecsgen.cfg", "#include \"$ct$_tecsgen.h\"");
+		write("$ct$.c", "#include \"$ct$_tecsgen.h\"");
 	};
 };
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier_inline.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tAlarmNotifier_inline.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2015 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2018 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -81,5 +81,5 @@
 {
 	CELLCB	*p_cellcb = GET_CELLCB(idx);
-	return(ista_alm(ATTR_id, alarmTime));
+	return(sta_alm(ATTR_id, alarmTime));
 }
 
@@ -91,5 +91,5 @@
 {
 	CELLCB	*p_cellcb = GET_CELLCB(idx);
-	return(istp_alm(ATTR_id));
+	return(stp_alm(ATTR_id));
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tFixedSizeMemoryPool_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tFixedSizeMemoryPool_inline.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tFixedSizeMemoryPool_inline.h	(revision 429)
@@ -51,5 +51,5 @@
 {
 	CELLCB	*p_cellcb = GET_CELLCB(idx);
-	return(get_mpf( ATTR_id, p_block));
+	return(get_mpf(ATTR_id, p_block));
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInitializeRoutine.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInitializeRoutine.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInitializeRoutine.c	(revision 429)
@@ -46,5 +46,6 @@
  *  初期化ルーチン本体の呼出し
  */
-void  tInitializeRoutine_start(intptr_t exinf)
+void
+tInitializeRoutine_start(intptr_t exinf)
 {
 	CELLCB	*p_cellcb = (CELLCB *) exinf;
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptRequest_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptRequest_inline.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tInterruptRequest_inline.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2015 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2017 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -64,3 +64,33 @@
 }
 
+/*
+ *  割込み要求のクリア
+ */
+Inline ER
+eInterruptRequest_clear(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	return(clr_int(ATTR_interruptNumber));
+}
+
+/*
+ *  割込みの要求
+ */
+Inline ER
+eInterruptRequest_raise(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	return(ras_int(ATTR_interruptNumber));
+}
+
+/*
+ *  割込み要求のチェック
+ */
+Inline ER_BOOL
+eInterruptRequest_probe(CELLIDX idx)
+{
+	CELLCB	*p_cellcb = GET_CELLCB(idx);
+	return(prb_int(ATTR_interruptNumber));
+}
+
 #endif /* TOPPERS_TINTERRUPTREQUEST_INLINE_H */
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tKernel_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tKernel_inline.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tKernel_inline.h	(revision 429)
@@ -185,6 +185,7 @@
 eKernel_getNthTask(PRI taskPriority, uint_t nth, ID* p_taskID)
 {
-	return (get_nth(taskPriority, nth, p_taskID));
-}
+	return(get_nth(taskPriority, nth, p_taskID));
+}
+
 /*
  *  CPUロック状態への遷移
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tMutex_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tMutex_inline.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tMutex_inline.h	(revision 429)
@@ -71,5 +71,5 @@
 {
 	CELLCB	*p_cellcb = GET_CELLCB(idx);
-	return(ploc_mtx(ATTR_id, timeout));
+	return(tloc_mtx(ATTR_id, timeout));
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask_inline.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTask_inline.h	(revision 429)
@@ -6,5 +6,5 @@
  *  Copyright (C) 2015 by Ushio Laboratory
  *              Graduate School of Engineering Science, Osaka Univ., JAPAN
- *  Copyright (C) 2015 by Embedded and Real-Time Systems Laboratory
+ *  Copyright (C) 2015-2019 by Embedded and Real-Time Systems Laboratory
  *              Graduate School of Information Science, Nagoya Univ., JAPAN
  * 
@@ -191,5 +191,5 @@
 {
 	CELLCB	*p_cellcb= GET_CELLCB(idx);
-	return(iwup_tsk(ATTR_id));
+	return(wup_tsk(ATTR_id));
 }
 
@@ -201,5 +201,5 @@
 {
 	CELLCB	*p_cellcb = GET_CELLCB(idx);
-	return(irel_wai(ATTR_id));
+	return(rel_wai(ATTR_id));
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTerminateRoutine.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTerminateRoutine.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tTerminateRoutine.c	(revision 429)
@@ -46,6 +46,6 @@
  *  終了処理ルーチン本体の呼出し
  */
-
-void  tTerminateRoutine_start(intptr_t exinf)
+void
+tTerminateRoutine_start(intptr_t exinf)
 {
 	CELLCB	*p_cellcb = (CELLCB *) exinf;
Index: EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tecs_kernel.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tecs_kernel.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecs_kernel/tecs_kernel.h	(revision 429)
@@ -47,11 +47,7 @@
 #include <kernel.h>
 
-extern void	tTask_start(intptr_t exinf);
-
-extern void tTimeEventHandler_start(intptr_t exinf);
+extern void tTask_start(intptr_t exinf);
 
 extern void tISR_start(intptr_t exinf);
-extern void tInterruptHandler_start(void);
-extern void tCpuExceptionHandler_start(void *p_excinf);
 
 extern void tInitializeRoutine_start(intptr_t exinf);
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/MANIFEST_for_asp3
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/MANIFEST_for_asp3	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/MANIFEST_for_asp3	(revision 429)
@@ -25,5 +25,8 @@
 tecslib/core/tecs_lang.rb
 tecslib/core/tecsgen.rb
+tecslib/core/tecsinfo.rb
+tecslib/core/tool_info.rb
 tecslib/core/types.rb
+tecslib/core/unjoin_plugin.rb
 tecslib/core/value.rb
 
@@ -36,7 +39,9 @@
 tecslib/plugin/CellPlugin.rb
 tecslib/plugin/CelltypePlugin.rb
+tecslib/plugin/CompositePlugin.rb
 tecslib/plugin/DomainPlugin.rb
 tecslib/plugin/Mruby2CBridgePlugin.rb
 tecslib/plugin/MrubyBridgePlugin.rb
+tecslib/plugin/MultiPlugin.rb
 tecslib/plugin/NotifierPlugin.rb
 tecslib/plugin/RPCPlugin.rb
@@ -97,2 +102,5 @@
 tecs/rpc/tTDR_inline.h
 tecs/rpc/tecs_rpc.h
+tecs/rpc/tMessageBufferCEP.cdl
+tecs/rpc/tMessageBufferCEP_inline.h
+tecs/rpc/tMessageBufferChannel.cdl
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/MANIFEST_tecsgen_body
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/MANIFEST_tecsgen_body	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/MANIFEST_tecsgen_body	(revision 429)
@@ -2,11 +2,120 @@
 
 Makefile
-
+tecscde
+tecscde.rb
 tecsgen
 tecsgen.rb
+tecsgen_rcov.rb
 tecsmerge
 tecsmerge.rb
-tecslib/version.rb
-
+cdelib/Makefile
+cdelib/cell_plugin_dialog.rb
+cdelib/cell_plugin_dialog_ui_definition.rb
+cdelib/palette.rb
+cdelib/saveload.rb
+cdelib/tcontrol.rb
+cdelib/tmodel.rb
+cdelib/tview.rb
+cdelib/version.rb
+tecs/TECSInfo/TECSInfo.cdl
+tecs/TECSInfo/TECSInfoAccessor.cdl
+tecs/TECSInfo/nTECSInfo_tArrayTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tBoolTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tCallInfo.c
+tecs/TECSInfo/nTECSInfo_tCellInfo.c
+tecs/TECSInfo/nTECSInfo_tCelltypeInfo.c
+tecs/TECSInfo/nTECSInfo_tDefinedTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tDescriptorTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tEntryInfo.c
+tecs/TECSInfo/nTECSInfo_tFloatTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tFunctionInfo.c
+tecs/TECSInfo/nTECSInfo_tIntTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tNamespaceInfo.c
+tecs/TECSInfo/nTECSInfo_tParamInfo.c
+tecs/TECSInfo/nTECSInfo_tPtrTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tRawEntryDescriptorInfo.c
+tecs/TECSInfo/nTECSInfo_tRegionInfo.c
+tecs/TECSInfo/nTECSInfo_tSignatureInfo.c
+tecs/TECSInfo/nTECSInfo_tStructTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tTECSInfoAccessor.c
+tecs/TECSInfo/nTECSInfo_tTECSInfoSub.c
+tecs/TECSInfo/nTECSInfo_tTECSInfo_inline.h
+tecs/TECSInfo/nTECSInfo_tTypeInfo.c
+tecs/TECSInfo/nTECSInfo_tVarDeclInfo.c
+tecs/TECSInfo/nTECSInfo_tVoidTypeInfo.c
+tecs/TECSInfo/tTECSInfoAccessor.c
+tecs/TLSFMalloc/README-TLSF.txt
+tecs/TLSFMalloc/tTLSFMalloc.cdl
+tecs/TLSFMalloc/tTLSFMalloc_inline.h
+tecs/mruby/README-mruby.txt
+tecs/mruby/TECSPointer.h
+tecs/mruby/TECSStruct.h
+tecs/mruby/mruby.cdl
+tecs/mruby/mrubyBridge.txt
+tecs/mruby/mrubyInitializer.cdl
+tecs/mruby/mrubyPointers.cdl
+tecs/mruby/mrubyTECSPointer.txt
+tecs/mruby/mrubyTECSStruct.txt
+tecs/mruby/mrubyVMs.cdl
+tecs/mruby/nMruby_tBoolPointer.c
+tecs/mruby/nMruby_tCharPointer.c
+tecs/mruby/nMruby_tDouble64Pointer.c
+tecs/mruby/nMruby_tFloat32Pointer.c
+tecs/mruby/nMruby_tInt16Pointer.c
+tecs/mruby/nMruby_tInt32Pointer.c
+tecs/mruby/nMruby_tInt64Pointer.c
+tecs/mruby/nMruby_tInt8Pointer.c
+tecs/mruby/nMruby_tIntPointer.c
+tecs/mruby/nMruby_tLongPointer.c
+tecs/mruby/nMruby_tMruby.c
+tecs/mruby/nMruby_tMrubyCyclicTaskBody.c
+tecs/mruby/nMruby_tMrubyProc.c
+tecs/mruby/nMruby_tMrubyTaskBody.c
+tecs/mruby/nMruby_tMrubyVM.c
+tecs/mruby/nMruby_tSCharPointer.c
+tecs/mruby/nMruby_tShortPointer.c
+tecs/mruby/nMruby_tTECSInitializer.c
+tecs/mruby/nMruby_tUCharPointer.c
+tecs/mruby/nMruby_tUInt16Pointer.c
+tecs/mruby/nMruby_tUInt32Pointer.c
+tecs/mruby/nMruby_tUInt64Pointer.c
+tecs/mruby/nMruby_tUInt8Pointer.c
+tecs/mruby/nMruby_tUIntPointer.c
+tecs/mruby/nMruby_tULongPointer.c
+tecs/mruby/nMruby_tUShortPointer.c
+tecs/mruby/sMruby.cdl
+tecs/mruby/tMruby.cdl
+tecs/mruby/tecs_mruby.h
+tecs/posix/posix.cdl
+tecs/rpc/PPAllocator.cdl
+tecs/rpc/RPCTask.cdl
+tecs/rpc/TDR.cdl
+tecs/rpc/rpc.cdl
+tecs/rpc/rpc_string.h
+tecs/rpc/sChannel.cdl
+tecs/rpc/sRPCErrorHandler.cdl
+tecs/rpc/tDataqueueAdaptor_inline.h
+tecs/rpc/tDataqueueOWChannel.cdl
+tecs/rpc/tMessageBufferCEP.cdl
+tecs/rpc/tMessageBufferCEP_inline.h
+tecs/rpc/tMessageBufferChannel.cdl
+tecs/rpc/tNBOTDR_inline.h
+tecs/rpc/tPPAllocator.c
+tecs/rpc/tRPCDedicatedTaskMain.c
+tecs/rpc/tRPCDedicatedTaskMainWithOpener.c
+tecs/rpc/tRPCSharedChannelMan.c
+tecs/rpc/tRPCSharedTaskMain.c
+tecs/rpc/tRPCSharedTaskMainWithOpener.c
+tecs/rpc/tSocketChannel.cdl
+tecs/rpc/tSocketClient.c
+tecs/rpc/tSocketServer.c
+tecs/rpc/tTDR_inline.h
+tecs/rpc/tTINETChannel.cdl
+tecs/rpc/tTINETClient.c
+tecs/rpc/tTINETServer.c
+tecs/rpc/tecs_rpc.h
+tecs/sMalloc.cdl
+tecs/tecs.h
+tecs/tecs.xsd
 tecslib/core/C_parser.tab.rb
 tecslib/core/C_parser.y.rb
@@ -26,12 +135,13 @@
 tecslib/core/tecs_lang.rb
 tecslib/core/tecsgen.rb
+tecslib/core/tecsinfo.rb
+tecslib/core/tool_info.rb
 tecslib/core/types.rb
+tecslib/core/unjoin_plugin.rb
 tecslib/core/value.rb
-
 tecslib/messages/messages_console_en_US.rb
 tecslib/messages/messages_console_ja_JP.rb
 tecslib/messages/messages_file_en_US.rb
 tecslib/messages/messages_file_ja_JP.rb
-
 tecslib/plugin/ATK1AlarmPlugin.rb
 tecslib/plugin/ATK1DelayTaskPlugin.rb
@@ -44,4 +154,5 @@
 tecslib/plugin/CellPlugin.rb
 tecslib/plugin/CelltypePlugin.rb
+tecslib/plugin/CompositePlugin.rb
 tecslib/plugin/DomainPlugin.rb
 tecslib/plugin/HRP2AlarmHandlerPlugin.rb
@@ -61,14 +172,30 @@
 tecslib/plugin/HRP2SemaphorePlugin.rb
 tecslib/plugin/HRP2TaskPlugin.rb
+tecslib/plugin/HRPHandlerPlugin.rb
+tecslib/plugin/HRPKernelObjectManager.rb
+tecslib/plugin/HRPKernelObjectPlugin.rb
+tecslib/plugin/HRPObjectPlugin.rb
+tecslib/plugin/HRPPlugin.rb
+tecslib/plugin/HRPRPCPlugin.rb
+tecslib/plugin/HRPSVCPlugin.rb
+tecslib/plugin/HRPTaskPlugin.rb
 tecslib/plugin/Mruby2CBridgePlugin.rb
+tecslib/plugin/MrubyBridgeCellPlugin.rb
+tecslib/plugin/MrubyBridgeCelltypePlugin.rb
+tecslib/plugin/MrubyBridgeCompositePlugin.rb
 tecslib/plugin/MrubyBridgePlugin.rb
+tecslib/plugin/MrubyBridgeSignaturePlugin.rb
+tecslib/plugin/MultiPlugin.rb
 tecslib/plugin/NotifierPlugin.rb
 tecslib/plugin/OpaqueMarshalerPlugin.rb
 tecslib/plugin/OpaqueRPCPlugin.rb
 tecslib/plugin/RPCPlugin.rb
+tecslib/plugin/RepeatCellPlugin.rb
+tecslib/plugin/RepeatJoinPlugin.rb
 tecslib/plugin/SharedOpaqueRPCPlugin.rb
 tecslib/plugin/SharedRPCPlugin.rb
 tecslib/plugin/SignaturePlugin.rb
 tecslib/plugin/TECS2CBridgePlugin.rb
+tecslib/plugin/TECSInfoPlugin.rb
 tecslib/plugin/ThroughPlugin.rb
 tecslib/plugin/TracePlugin.rb
@@ -77,62 +204,4 @@
 tecslib/plugin/lib/GenParamCopy.rb
 tecslib/plugin/lib/GenTransparentMarshaler.rb
-
-tecs/mruby/TECSPointer.h
-tecs/mruby/TECSStruct.h
-tecs/mruby/mruby.cdl
-tecs/mruby/mrubyInitializer.cdl
-tecs/mruby/mrubyPointers.cdl
-tecs/mruby/mrubyVMs.cdl
-tecs/mruby/nMruby_tBoolPointer.c
-tecs/mruby/nMruby_tCharPointer.c
-tecs/mruby/nMruby_tDouble64Pointer.c
-tecs/mruby/nMruby_tFloat32Pointer.c
-tecs/mruby/nMruby_tInt16Pointer.c
-tecs/mruby/nMruby_tInt32Pointer.c
-tecs/mruby/nMruby_tInt64Pointer.c
-tecs/mruby/nMruby_tInt8Pointer.c
-tecs/mruby/nMruby_tIntPointer.c
-tecs/mruby/nMruby_tLongPointer.c
-tecs/mruby/nMruby_tMruby.c
-tecs/mruby/nMruby_tMrubyProc.c
-tecs/mruby/nMruby_tMrubyProc_1_0.c
-tecs/mruby/nMruby_tSCharPointer.c
-tecs/mruby/nMruby_tShortPointer.c
-tecs/mruby/nMruby_tTECSInitializer.c
-tecs/mruby/nMruby_tUCharPointer.c
-tecs/mruby/nMruby_tUInt16Pointer.c
-tecs/mruby/nMruby_tUInt32Pointer.c
-tecs/mruby/nMruby_tUInt64Pointer.c
-tecs/mruby/nMruby_tUInt8Pointer.c
-tecs/mruby/nMruby_tUIntPointer.c
-tecs/mruby/nMruby_tULongPointer.c
-tecs/mruby/nMruby_tUShortPointer.c
-tecs/mruby/tMruby.cdl
-tecs/mruby/tecs_mruby.h
-tecs/posix/posix.cdl
-tecs/rpc/PPAllocator.cdl
-tecs/rpc/RPCTask.cdl
-tecs/rpc/TDR.cdl
-tecs/rpc/rpc.cdl
-tecs/rpc/rpc_string.h
-tecs/rpc/sChannel.cdl
-tecs/rpc/sRPCErrorHandler.cdl
-tecs/rpc/tDataqueueAdaptor_inline.h
-tecs/rpc/tDataqueueOWChannel.cdl
-tecs/rpc/tNBOTDR_inline.h
-tecs/rpc/tPPAllocator.c
-tecs/rpc/tRPCDedicatedTaskMain.c
-tecs/rpc/tRPCDedicatedTaskMainWithOpener.c
-tecs/rpc/tRPCSharedChannelMan.c
-tecs/rpc/tRPCSharedTaskMain.c
-tecs/rpc/tRPCSharedTaskMainWithOpener.c
-tecs/rpc/tSocketChannel.cdl
-tecs/rpc/tSocketClient.c
-tecs/rpc/tSocketServer.c
-tecs/rpc/tTDR_inline.h
-tecs/rpc/tTINETChannel.cdl
-tecs/rpc/tTINETClient.c
-tecs/rpc/tTINETServer.c
-tecs/rpc/tecs_rpc.h
-tecs/tecs.h
-tecs/tecs.xsd
+tecslib/plugin/lib/MrubyBridgeCelltypePluginModule.rb
+tecslib/version.rb
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/Makefile
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/Makefile	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/Makefile	(revision 429)
@@ -34,5 +34,5 @@
 #   の責任を負わない．
 #  
-#   $Id$
+#   $Id: Makefile 2640 2017-06-03 11:27:12Z okuma-top $
 #++
 
@@ -76,5 +76,4 @@
 C_TAB = $(LIB_PATH)/C_parser.tab.rb
 EXERB_EXE = tecsgen.exe
-EXERB_EXY = tecsgen.exy
 
 all: generator
@@ -105,23 +104,8 @@
 	racc -v -g -o $(GEN_TAB_DEB) $(BNF)	# yydebug を有効にする
 
-# exerb : $(EXERB_EXE)
-exerb :
-	@echo "!!! please build using ActiveScriptRuby !!!"
-	exit 1
-
-# $(EXERB_EXE) : $(EXERB_EXY) $(GEN_SRC) $(PLUGIN_SRC)
-#	exerb  $(EXERB_EXY)
-# tecsgen.exy.ini から tecsgen.exy を生成するのは util/release.sh により行われる
-# MANIFEST に記載のバージョン番号が、tecsgen.exy.ini の文字列置換により、埋め込まれる
-
-exerb_check : $(EXERB_EXE)
-
-$(EXERB_EXE) : $(EXERB_EXY) $(GEN_SRC) $(PLUGIN_SRC)
-	@echo "### Need make_tecsgen_exerb on ActiveScriptRuby to update tecsgen.exerb ###"
-
 print_error :	# エラーメッセージを拾い出す
 	grep -e "Generator\.error" -e cdl_error $(LIB_PATH)/*.rb \
 		| grep -v bnf.tab.rb \
-		| sed -e "s/\s*Generator\.error(/  /" -e "s/\s*cdl_error(//" -e "s/).*$$//"
+		| sed -e "s/\s*Generator\.error(//" -e "s/\s*cdl_error[0-9]*(//" -e "s/).*$$//"
 
 print_error2 :	# エラーメッセージを拾い出す
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/in_exerb.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/in_exerb.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/in_exerb.rb	(revision 429)
@@ -35,5 +35,5 @@
 #   の責任を負わない．
 #  
-#   $Id$
+#   $Id: in_exerb.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
 #++
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/TECSInfo.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/TECSInfo.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/TECSInfo.cdl	(revision 429)
@@ -0,0 +1,618 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+import_C( "t_stddef.h" );
+
+/* Constants of Kinds */
+const int8_t TECSTypeKind_BoolType    = 1;
+const int8_t TECSTypeKind_IntType     = 2;
+const int8_t TECSTypeKind_FloatType   = 3;
+const int8_t TECSTypeKind_PtrType     = 4;
+const int8_t TECSTypeKind_ArrayType   = 5;
+const int8_t TECSTypeKind_DefinedType = 6;
+const int8_t TECSTypeKind_StructType  = 7;
+const int8_t TECSTypeKind_EnumType    = 8;
+const int8_t TECSTypeKind_VoidType    = 9;
+const int8_t TECSTypeKind_DescriptorType = 10;
+
+/* Parameter Direction */
+const int8_t PARAM_DIR_IN         = 1;
+const int8_t PARAM_DIR_OUT        = 2;
+const int8_t PARAM_DIR_INOUT      = 3;
+const int8_t PARAM_DIR_SEND       = 4;
+const int8_t PARAM_DIR_RECEIVE    = 5;
+
+/* VarDecl declType */
+const int8_t DECLTYPE_STMEMBER    = 1;  /* Struct Member */
+const int8_t DECLTYPE_ATTR        = 2;
+const int8_t DECLTYPE_VAR         = 3;
+
+/* VarDecl place info */
+const int8_t VARDECL_PLACE_STRUCT = 1;
+const int8_t VARDECL_PLACE_NON    = 2;
+const int8_t VARDECL_PLACE_CB     = 3;
+const int8_t VARDECL_PLACE_INIB   = 4;
+
+/* CallInfo place info */
+const int8_t CALL_PLACE_NON       = 1;
+const int8_t CALL_PLACE_INIB_DES  = 2;
+const int8_t CALL_PLACE_CB_DES    = 3;
+const int8_t CALL_PLACE_INIB_IDX  = 4;
+const int8_t CALL_PLACE_CB_IDX    = 5;
+
+namespace nTECSInfo {
+
+    /*******   SIGNATURES   *******/
+
+    /* Type Information of attr, var, param, return */
+    signature sTypeInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1] = NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        uint32_t   getSize(void);    // size of the value in bytes
+        int8_t     getKind(void);    // see Constants of Kinds
+        uint32_t   getNType(void);
+           // kind == ARRAY の場合サイズ、POINTER, TYPEDEF の場合1、それ以外は0
+        ER     getTypeInfo( [out]Descriptor(sTypeInfo) *desc );
+           // kind == POINTER, TYPEDEF の場合、desc に有効な値を返す
+        uint32_t   getNMember(void);
+           // STRUCT の場合メンバー数
+        ER     getMemberInfo( [in]uint32_t ith, [out]Descriptor(sVarDeclInfo) *desc );
+           // kind == STRUCT の場合、desc に有効な値を返す
+           // ith はメンバーの添数 0<=ith<*num
+           // ith が範囲外の場合 E_NORES を返す
+//        void   getSignatureInfo( [out]Descriptor(sSignatureInfo) *desc );
+//           // kind == DESCRIPTOR の場合、desc に有効な値を返す
+    };
+
+    /* ATTR, VAR, struct member Information */
+    signature sVarDeclInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1] = NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        void       getLocationInfo(  [out]uint32_t *offset,
+                                     [out]int8_t   *place );            // VARDECL_PLACE_*
+        void       getTypeInfo( [out]Descriptor( sTypeInfo ) *desc );
+        void       getSizeIsExpr( [out,string(max_len)]char_t *expr_str, [in]int32_t max_len );
+          // size_is 計算式を文字列で返す. size_is 未指定の場合 *expr_str = NULL が返される
+        ER         getSizeIs( [out]uint32_t *size, [in]const void *p_cb);
+          // p_cb を与えると、size を返す (size_is 指定がない場合，E_NOSPT を返す)
+    };
+
+    /* PARAM Information */
+    signature sParamInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1] = NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        ER         getTypeInfo( [out]Descriptor(sTypeInfo) *desc);
+        ER         getDir( [out]int8_t *dir );
+    };
+
+    /* FUNCTION Information */
+    signature sFunctionInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1] = NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        void       getReturnTypeInfo( [out]Descriptor( sTypeInfo ) *desc );
+        uint32_t   getNParam(void);
+        ER         getParamInfo( [in]uint32_t ith, [out]Descriptor(sParamInfo) *param );
+           // 0 <= ith < *num
+           // ith が範囲外の場合 E_NORES を返す
+    };
+
+    /* SIGNATURE Information */
+    signature sSignatureInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1] = NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        uint32_t   getNFunction(void);
+        ER         getFunctionInfo( [in]uint32_t ith, [out]Descriptor( sFunctionInfo ) *desc );
+           // 0 <= ith < *num
+           // ith が範囲外の場合 E_NORES を返す
+    };
+
+    /* CALL Information */
+    signature sCallInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1]= NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        void       getSignatureInfo( [out]Descriptor( sSignatureInfo ) *desc );
+        uint32_t   getArraySize(void);
+        void       getSpecifierInfo( [out]bool_t   *b_optional,
+                                     [out]bool_t   *b_dynamic,
+                                     [out]bool_t   *b_ref_desc,
+                                     [out]bool_t   *b_omit );
+        void       getInternalInfo(  [out]bool_t   *b_allocator_port,
+                                     [out]bool_t   *b_require_port );
+        void       getLocationInfo(  [out]uint32_t *offset,             // CALL_PLACE_*
+                                     [out]int8_t   *place );            // CALL_PLACE_*
+        void       getOptimizeInfo(  [out]bool_t   *b_VMT_useless,      // VMT (関数テーブル) 不要最適化 (関数直接呼出し)
+                                     [out]bool_t   *b_skelton_useless,  // スケルトン関数不要 (
+                                     [out]bool_t   *b_cell_unique );    // 単一のセル
+    };
+
+    /* ENTRY Information */
+    signature sEntryInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1]=NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        void       getSignatureInfo( [out]Descriptor( sSignatureInfo ) *desc );
+        uint32_t   getArraySize(void);
+        bool_t     isInline(void);
+    };
+
+    /* CELLTYPE Information */
+    signature sCelltypeInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1]=NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        uint32_t   getNAttr(void);
+        ER         getAttrInfo( [in]uint32_t ith, [out]Descriptor(sVarDeclInfo)*desc );
+        uint32_t   getNVar(void);
+        ER         getVarInfo( [in]uint32_t ith,  [out]Descriptor(sVarDeclInfo)*desc );
+           // ith が範囲外の場合 E_NORES を返す
+        uint32_t   getNCall(void);
+        ER         getCallInfo( [in]uint32_t ith, [out]Descriptor(sCallInfo)*desc );
+           // ith が範囲外の場合 E_NORES を返す
+        uint32_t   getNEntry(void);
+        ER         getEntryInfo( [in]uint32_t ith, [out]Descriptor(sEntryInfo)*desc );
+           // ith が範囲外の場合 E_NORES を返す
+        bool_t     isSingleton(void);
+        bool_t     isIDX_is_ID(void);
+        uint32_t   sizeOfCB(void);
+        uint32_t   sizeOfINIB(void);
+    };
+
+    /* CELL Information */
+    [deviate]
+    signature sCellInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1]=NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        uint32_t   getNRawEntryDescriptorInfo( void );
+        ER         getRawEntryDescriptorInfo( [in]int_t index, [out]Descriptor(sRawEntryDescriptorInfo) *desc );
+           // index は、受け口を指定 (CelltypeInfo の cEntryInfo の序数に一致する)
+        void       getCelltypeInfo( [out]Descriptor( sCelltypeInfo ) *desc );
+        void       getCBP( [out]void **cbp );      // out: 逸脱
+        void       getINIBP( [out]void **inibp );  // out: 逸脱
+    };
+
+    [deviate]
+    signature sRawEntryDescriptorInfo {
+        uint16_t   getNRawEntryDescriptorInfo( void );         // 受け口配列の場合、要素数を返す。非配列の場合 1。
+        ER         getRawDescriptor( [in]int_t ith, [out]void **rawDesc );
+                        // ith が配列範囲外の場合、E_NOEXS を返す
+    };
+
+    /* NAMESPACE Information */
+    signature sNamespaceInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1]=NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        uint32_t   getNNamespace(void);
+        ER         getNamespaceInfo( [in]uint32_t ith, [out]Descriptor(sNamespaceInfo) *des );
+           // ith が範囲外の場合 E_NORES を返す
+        uint32_t   getNSignature(void);
+        ER         getSignatureInfo( [in]uint32_t ith, [out]Descriptor(sSignatureInfo) *des );
+           // ith が範囲外の場合 E_NORES を返す
+        uint32_t   getNCelltype(void);
+        ER     getCelltypeInfo( [in]uint32_t ith,  [out]Descriptor(sCelltypeInfo) *des );
+           // ith が範囲外の場合 E_NORES を返す
+    };
+
+    /* REGION Information */
+    signature sRegionInfo {
+        ER         getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
+           // 長さが max_len を超えた場合は E_NOMEM を返す.
+           // (max_len-1) 文字コピーする。name[max_len-1]=NULL
+        uint16_t   getNameLength(void);
+           //  終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
+        uint32_t   getNCell(void);
+        ER         getCellInfo( [in]uint32_t ith,    [out]Descriptor(sCellInfo) *des );
+           // ith が範囲外の場合 E_NORES を返す
+        uint32_t   getNRegion(void);
+        ER         getRegionInfo( [in]uint32_t ith,  [out]Descriptor(sRegionInfo) *des );
+           // ith が範囲外の場合 E_NORES を返す
+    };
+
+    /* TECS Information */
+    signature sTECSInfo {
+        ER     findNamespace([in,string]const char_t *namespace_path, [out]Descriptor( sNamespaceInfo )*nsDesc);
+        ER     findRegion(   [in,string]const char_t *namespace_path, [out]Descriptor( sRegionInfo )*regionDesc);
+        ER     findSignature([in,string]const char_t *namespace_path, [out]Descriptor( sSignatureInfo )*signatureDesc);
+        ER     findCelltype( [in,string]const char_t *namespace_path, [out]Descriptor( sCelltypeInfo )*celltypeDesc);
+        ER     findCell(     [in,string]const char_t *namespace_path, [out]Descriptor( sCellInfo )*cellDesc);
+        ER     findRawEntryDescriptor(
+                             [in,string]const char_t *namespace_path,
+                             [in]             int_t  ith,
+                             [out]Descriptor( sRawEntryDescriptorInfo )*rawEntryDescDesc,
+                             [out]Descriptor( sEntryInfo )*entryDesc);
+        ER     findRawEntryDescriptor_unsafe(           // このメソッドは、非配列の場合のみしようできる
+                             [in,string]const char_t *namespace_path,
+                             [out]void **rawDesc );
+    };
+
+    /*******   CELLTYPES   *******/
+
+    /*
+     * tTECSInfo セルタイプのセルは、ユーザーが設置する．
+     *
+     * このセルから、tTECSInfoSub への結合は、プラグインにより自動的に
+     * 行われるため、ユーザーは、このセルを設置するだけでよい．
+     * (プロトタイプを用いていないのは、このセルを任意のリージョンに置
+     * くことを想定してのもの)
+     */
+    [singleton,
+     generate( TECSInfoPlugin, "" )]
+    celltype tTECSInfo {
+        [inline]
+            entry sTECSInfo eTECSInfo;
+        call  sTECSInfo cTECSInfo;
+        FACTORY{
+            write( "global_tecsgen.h", "#define setRawEntryDescriptor( callDesc, callPortSignature, rawEntryDesc )   (callDesc).vdes = (struct tag_ ## callPortSignature ## _VDES *) rawEntryDesc" );
+        };
+    };
+
+    /*
+     * tTECSInfoSub セルタイプのセルは、プラグインにより自動生成される．
+     * プラグインは、生成を行う前にエラーが発生している場合、セルを生成しない．
+     * (TECSInfoSub セルが未定義のエラーも出ることになる。不完全な状態
+     * で生成しようとすると、Ruby 例外を発生する可能性があるため、生成
+     * しない)
+     */
+    [singleton]
+    celltype tTECSInfoSub {
+        entry sTECSInfo eTECSInfo;
+        [ref_desc]
+            call sNamespaceInfo cNamespaceInfo;   // root namespace
+        [ref_desc]
+            call sRegionInfo    cRegionInfo;      // root region
+        // 内部処理用の呼び口 (何度も使いまわすので、使う直前に(再)設定すること）
+        [dynamic,optional]
+            call sNamespaceInfo cNamespaceInfoTemp;
+        [dynamic,optional]
+            call sRegionInfo    cRegionInfoTemp;
+        [dynamic,optional]
+            call sSignatureInfo cSignatureInfoTemp;
+        [dynamic,optional]
+            call sCelltypeInfo  cCelltypeInfoTemp;
+        [dynamic,optional]
+            call sCellInfo      cCellInfoTemp;
+        [dynamic,optional]
+            call sEntryInfo     cEntryInfoTemp;
+        [dynamic,optional]
+            call sRawEntryDescriptorInfo cRawEntryDescriptorInfoTemp;
+
+        attr {
+            int32_t name_len = 256;
+            int32_t path_len = 1024;
+        };
+        var {
+            [size_is(name_len)]
+                char_t  *name1;
+            [size_is(name_len)]
+                char_t  *name2;
+            [size_is(path_len)]
+                char_t  *path;
+        };
+    };
+
+    celltype tNamespaceInfo {
+        attr {
+            char *name;
+        };
+
+        entry sNamespaceInfo eNamespaceInfo;
+        [ref_desc,optional]
+            call  sSignatureInfo cSignatureInfo[];
+        [ref_desc,optional]
+            call  sCelltypeInfo  cCelltypeInfo[];
+        [ref_desc,optional]
+            call  sNamespaceInfo cNamespaceInfo[];
+    };
+
+    /* SIGNATURE information */
+    celltype tSignatureInfo{
+        attr {
+            char *name;
+        };
+
+        entry sSignatureInfo   eSignatureInfo;
+        [ref_desc,optional]
+            call sFunctionInfo cFunctionInfo[];
+    };
+    celltype tFunctionInfo {
+        attr {
+            char_t *name;
+            bool_t  bOneway;
+        };
+        entry sFunctionInfo eFunctionInfo;
+        [ref_desc,optional]
+            call sParamInfo cParamInfo[];
+        [ref_desc]
+            call sTypeInfo  cReturnTypeInfo;
+    };
+    celltype tParamInfo {
+        attr {
+            char_t *name;
+            int8_t dir;
+            char_t *sizeIsExpr;
+            char_t *countIsExpr;
+            char_t *stringExpr;
+        };
+        entry sParamInfo eParamInfo;
+        [ref_desc]
+            call sTypeInfo cTypeInfo;
+    };
+
+    /* CELLTYPE information */
+    celltype tCelltypeInfo{
+        attr {
+            char_t   *name;
+            bool_t   b_singleton;
+            bool_t   b_IDX_is_ID_act;
+            uint32_t sizeOfCB;         // size in bytes, 0 if not exist
+            uint32_t sizeOfINIB;       // size in bytes, 0 if not exist
+            uint32_t n_cellInLinkUnit; // CellInLinkUnit == 0 の時 セルタイプコードは、リンクされていない
+            uint32_t n_cellInSystem;   // すべてのリンクユニットを含めたセルの個数．
+                                       // この数が 0になるものは、CelltypeInfo は省略される．
+        };
+        [ref_desc,optional]
+            call  sEntryInfo   cEntryInfo[];
+        [ref_desc,optional]
+            call  sCallInfo    cCallInfo[];
+        [ref_desc,optional]
+            call  sVarDeclInfo cAttrInfo[];
+        [ref_desc,optional]
+            call  sVarDeclInfo cVarInfo[];
+
+        entry sCelltypeInfo    eCelltypeInfo;
+    };
+    celltype tCallInfo {
+        attr {
+            char_t   *name;
+            uint32_t offset;
+            uint32_t array_size;
+            bool_t   b_optional;
+            bool_t   b_omit;
+            bool_t   b_dynamic;
+            bool_t   b_ref_desc;
+            bool_t   b_allocator_port;
+            bool_t   b_require_port;
+            int8_t   place;
+            bool_t   b_VMT_useless;        // VMT (関数テーブル) 不要最適化 (関数直接呼出し)
+            bool_t   b_skelton_useless;    // スケルトン関数不要 (
+            bool_t   b_cell_unique;        // 単一のセル
+        };
+        entry sCallInfo eCallInfo;
+        [ref_desc]
+            call sSignatureInfo cSignatureInfo;
+        FACTORY {
+            write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
+        };
+    };
+    celltype tEntryInfo {
+        attr {
+            char_t *name;
+            bool_t b_inline;
+            uint32_t array_size;
+        };
+        entry sEntryInfo eEntryInfo;
+        [ref_desc]
+            call sSignatureInfo cSignatureInfo;
+        FACTORY {
+            write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
+        };
+    };
+    /* Variable Declarator (attr, var, struct member) */
+    celltype tVarDeclInfo {
+        attr {
+            char_t   *name;
+            char_t   *sizeIsExpr;
+            int8_t   declType;        /* valid when attr, var */
+            int8_t   place;
+            uint32_t offset;
+        };
+        entry sVarDeclInfo eVarDeclInfo;
+        [ref_desc]
+            call sTypeInfo cTypeInfo;
+    };
+
+    /* REGION & CELL information */
+    celltype tRegionInfo {
+        attr {
+            char *name;
+        };
+
+        entry sRegionInfo eRegionInfo;
+        [ref_desc,optional]
+            call  sCellInfo   cCellInfo[];
+        [ref_desc,optional]
+            call  sRegionInfo cRegionInfo[];
+    };
+    celltype tCellInfo {
+        attr {
+            char_t *name;
+            void   *cbp;
+            void   *inibp;
+        };
+        [ref_desc]
+            call  sCelltypeInfo cCelltypeInfo;
+        [ref_desc,optional]
+            call  sRawEntryDescriptorInfo cRawEntryDescriptor[];
+        entry sCellInfo eCellInfo;
+    };
+    celltype tRawEntryDescriptorInfo {
+        attr {
+            int_t size;   // 非配列の場合 0
+            [size_is(size)]
+                void  **rawEntryDescriptor;
+        };
+        entry sRawEntryDescriptorInfo eRawEntryDescriptor;
+        // [ref_desc]
+        //    call  sEntryInfo             cEntryInfo;
+    };
+
+    /* celltypes of TYPEs */
+    celltype tVoidTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+    };
+    celltype tBoolTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+    };
+    celltype tIntTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+    };
+    celltype tFloatTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+    };
+    celltype tStructTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+        [ref_desc]
+            call sVarDeclInfo cVarDeclInfo[];
+    };
+    celltype tPtrTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+        [ref_desc]
+            call sTypeInfo cTypeInfo;
+        FACTORY {
+            write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
+        };
+    };
+    celltype tArrayTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+        [ref_desc]
+            call sTypeInfo cTypeInfo;
+        FACTORY {
+            write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
+        };
+    };
+    celltype tDefinedTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+        [ref_desc]
+            call sTypeInfo cTypeInfo;
+    };
+    celltype tDescriptorTypeInfo {
+        attr {
+            char_t   *name;
+            int8_t   typeKind;
+            uint32_t size;     /* bytes */
+            bool_t   b_const;
+            bool_t   b_volatile;
+        };
+        entry sTypeInfo eTypeInfo;
+        [ref_desc]
+            call sSignatureInfo cSignatureInfo;
+        FACTORY {
+            write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
+        };
+    };
+};
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/TECSInfoAccessor.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/TECSInfoAccessor.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/TECSInfoAccessor.cdl	(revision 429)
@@ -0,0 +1,164 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+// mruby からアクセスできるようなシグニチャにした、アクセス用セルタイプの定義
+// つまり、シグニチャから Descriptor 型をなくし、名前を指定して動的結合させるセルタイプを用意する
+
+import( <TECSInfo.cdl> );
+
+//namespace nTECSInfo {
+    signature sAccessor{
+        ER   selectNamespaceInfoByName( [in,string]const char_t *namespacePath );
+        ER   selectCelltypeInfoByName(  [in,string]const char_t *namespacePath );
+        ER   selectSignatureInfoByName( [in,string]const char_t *namespacePath );
+        ER   selectRegionInfoByName(    [in,string]const char_t *regionPath );
+        ER   selectCellInfoByName(      [in,string]const char_t *cellPath );
+
+        // namespace
+        ER   getSelectedNamespaceInfo( [out,string(max_len)]char_t *name, [in]int_t max_len, [out]int_t *num_namespace, [out]int_t *num_celltype, [out]int_t *num_signature );
+        ER   selectCelltypeInfo( [in]int_t ith );
+        ER   selectSignatureInfo( [in]int_t ith );
+
+        // celltype
+        ER   getSelectedCelltypeInfo( [out,string(max_len)]char_t *name, [in]int_t max_len,
+                                      [out]int_t *num_attr, [out]int_t *num_var, [out]int_t *num_call, [out]int_t *num_entry );
+        ER   selectCallInfo( [in]int_t ith );
+        ER   selectEntryInfo( [in]int_t ith );
+        ER   selectAttrInfo( [in]int_t ith );
+        ER   selectVarInfo( [in]int_t ith );
+
+        // attr
+        ER   getSelectedAttrInfo( [out,string(max_len)]char_t *name, [in]int_t max_len );
+        ER   getSizeIsExprOfAttr( [out,string(max_len)]char_t *expr_str, [in]int32_t max_len );
+        ER   selectTypeInfoOfAttr(void);
+
+        // var
+        ER   getSelectedVarInfo( [out,string(max_len)]char_t *name, [in]int_t max_len );
+        ER   getSizeIsExprOfVar( [out,string(max_len)]char_t *expr_str, [in]int32_t max_len );
+        ER   selectTypeInfoOfVar(void);
+
+        // call
+        ER   getSelectedCallInfo( [out,string(max_len)]char_t *name, [in]int_t max_len, [out]int_t *array_size );
+        ER   selectSignatureOfCall(void);
+        ER   getSelectedCallSpecifierInfo( [out]bool_t   *b_optional,  [out]bool_t   *b_dynamic,
+                                           [out]bool_t   *b_ref_desc,  [out]bool_t   *b_omit );
+        ER   getSelectedCallInternalInfo(  [out]bool_t   *b_allocator_port, [out]bool_t   *b_require_port );
+        ER   getSelectedCallLocationInfo(  [out]uint32_t *offset,             // offset in CALL_PLACE_*
+                                           [out]int8_t   *place );            // CALL_PLACE_*
+        ER   getSelectedCallOptimizeInfo(  [out]bool_t   *b_VMT_useless,      // VMT (関数テーブル) 不要最適化 (関数直接呼出し)
+                                           [out]bool_t   *b_skelton_useless,  // スケルトン関数不要 (
+                                           [out]bool_t   *b_cell_unique );    // 単一のセル
+
+        // entry
+        ER   getSelectedEntryInfo( [out,string(max_len)]char_t *name, [in]int_t max_len, [out]int_t *array_size );
+        ER   selectSignatureOfEntry(void);
+        ER   getSelectedEntryInlineInfo([out]bool_t *b_inline);
+
+        // signature
+        ER   getSelectedSignatureInfo( [out,string(max_len)]char_t *name, [in]int_t max_len, [out]int_t *num_function );
+        ER   selectFunctionInfoByIndex( [in]int_t ith );
+
+        // function
+        ER   getSelectedFunctionInfo( [out,string(max_len)]char_t *name, [in]int_t max_len, [out]int_t *num_args );
+        ER   selectTypeInfoOfReturn(void);
+
+        // parameter of function
+        ER   getSelectedParamInfo( [out,string(max_len)]char_t *name, [in]int_t max_len, [out]int8_t *dir );
+        ER   selectParamInfo( [in]int_t ith );
+        ER   selectTypeInfoOfParam(void);
+
+        // type of function return and parameter, celltype attr and var
+        ER   getSelectedTypeInfo( [out,string(max_len)]char_t *name, [in]int_t max_len, [out]int8_t *kind );
+        ER   selectTypeInfoOfType(void);
+
+        // region
+        ER   getSelectedRegionInfo( [out,string(max_len)]char_t *name, [in]int_t max_len, [out]int_t *num_cell );
+        ER   selectCellInfo( [in]int_t ith );
+
+        // cell
+        ER   getSelectedCellInfo( [out,string(max_len)]char_t *name, [in]int_t max_len);
+        ER   selectCelltypeInfoOfCell(void); // 選択中セルのセルタイプを選択 (セルタイプの関数を使用できる)
+        ER   getAttrValueInStr([out,string(max_len)]char_t *buf, [in]int_t max_len);  // 事前に、セル、セルタイプ、属性を選択しておくこと．cTypeInfo が変更される
+        ER   getAttrSizeIsValue(void);       // 事前に、セル、セルタイプ、属性を選択しておくこと．cTypeInfo が変更される
+        ER   getVarValueInStr([out,string(max_len)]char_t *buf, [in]int_t max_len);   // 事前に、セル、セルタイプ、変数を選択しておくこと．cTypeInfo が変更される
+        ER   getVarSizeIsValue(void);        // 事前に、セル、セルタイプ、変数を選択しておくこと．cTypeInfo が変更される
+    };
+
+    celltype tTECSInfoAccessor {
+
+        entry sAccessor eSelector;
+
+        call  nTECSInfo::sTECSInfo cTECSInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sNamespaceInfo cNSInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sCelltypeInfo  cCelltypeInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sSignatureInfo cSignatureInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sFunctionInfo  cFunctionInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sParamInfo     cParamInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sCallInfo      cCallInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sEntryInfo     cEntryInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sVarDeclInfo   cAttrInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sVarDeclInfo   cVarInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sTypeInfo      cTypeInfo;
+
+        [dynamic,optional]
+            call  nTECSInfo::sRegionInfo    cRegionInfo;
+        [dynamic,optional]
+            call  nTECSInfo::sCellInfo      cCellInfo;
+
+        attr{
+            int16_t NAME_LEN = 256;
+        };
+        var{
+            [size_is(NAME_LEN)]
+                char_t  *name;
+            [size_is(NAME_LEN)]
+                char_t  *name2;
+            int8_t      *selectedCbp;
+            int8_t      *selectedInibp;
+        };
+    };
+//};
+
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tArrayTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tArrayTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tArrayTypeInfo.c	(revision 429)
@@ -0,0 +1,253 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTypeInfo signature: nTECSInfo_sTypeInfo context:task
+ *   ER             cTypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cTypeInfo_getNameLength( );
+ *   uint32_t       cTypeInfo_getSize( );
+ *   int8_t         cTypeInfo_getKind( );
+ *   uint32_t       cTypeInfo_getNType( );
+ *   ER             cTypeInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cTypeInfo_getNMember( );
+ *   ER             cTypeInfo_getMemberInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tArrayTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tArrayTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tArrayTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tArrayTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return ATTR_size;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tArrayTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return TECSTypeKind_ArrayType;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tArrayTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return ATTR_size / cTypeInfo_getSize();  /* 配列要素数 = サイズ / 要素サイズ */
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tArrayTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+  ER      ercd = E_OK;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  *desc = cTypeInfo_refer_to_descriptor();
+  return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tArrayTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tArrayTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tBoolTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tBoolTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tBoolTypeInfo.c	(revision 429)
@@ -0,0 +1,237 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tBoolTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tBoolTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tBoolTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tBoolTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return ATTR_size;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tBoolTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return TECSTypeKind_ArrayType;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tBoolTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return 0;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tBoolTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return E_NOEXS;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tBoolTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tBoolTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCallInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCallInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCallInfo.c	(revision 429)
@@ -0,0 +1,260 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * offset           uint32_t         ATTR_offset     
+ * array_size       uint32_t         ATTR_array_size 
+ * b_optional       bool_t           ATTR_b_optional 
+ * b_omit           bool_t           ATTR_b_omit     
+ * b_dynamic        bool_t           ATTR_b_dynamic  
+ * b_ref_desc       bool_t           ATTR_b_ref_desc 
+ * b_allocator_port bool_t           ATTR_b_allocator_port
+ * b_require_port   bool_t           ATTR_b_require_port
+ * place            int8_t           ATTR_place      
+ * b_VMT_useless    bool_t           ATTR_b_VMT_useless
+ * b_skelton_useless bool_t           ATTR_b_skelton_useless
+ * b_cell_unique    bool_t           ATTR_b_cell_unique
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cSignatureInfo signature: nTECSInfo_sSignatureInfo context:task
+ *   ER             cSignatureInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cSignatureInfo_getNameLength( );
+ *   uint32_t       cSignatureInfo_getNFunction( );
+ *   ER             cSignatureInfo_getFunctionInfo( uint32_t ith, Descriptor( nTECSInfo_sFunctionInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sSignatureInfo ) cSignatureInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sSignatureInfo ) cSignatureInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tCallInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eCallInfo
+ * entry port: eCallInfo
+ * signature:  nTECSInfo_sCallInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eCallInfo_getName
+ * name:         eCallInfo_getName
+ * global_name:  nTECSInfo_tCallInfo_eCallInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eCallInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eCallInfo_getNameLength
+ * name:         eCallInfo_getNameLength
+ * global_name:  nTECSInfo_tCallInfo_eCallInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eCallInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eCallInfo_getSignatureInfo
+ * name:         eCallInfo_getSignatureInfo
+ * global_name:  nTECSInfo_tCallInfo_eCallInfo_getSignatureInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eCallInfo_getSignatureInfo(CELLIDX idx, Descriptor( nTECSInfo_sSignatureInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *desc = cSignatureInfo_refer_to_descriptor();
+}
+
+/* #[<ENTRY_FUNC>]# eCallInfo_getArraySize
+ * name:         eCallInfo_getArraySize
+ * global_name:  nTECSInfo_tCallInfo_eCallInfo_getArraySize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eCallInfo_getArraySize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return ATTR_array_size;
+}
+
+/* #[<ENTRY_FUNC>]# eCallInfo_getSpecifierInfo
+ * name:         eCallInfo_getSpecifierInfo
+ * global_name:  nTECSInfo_tCallInfo_eCallInfo_getSpecifierInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eCallInfo_getSpecifierInfo(CELLIDX idx, bool_t* b_optional, bool_t* b_dynamic, bool_t* b_ref_desc, bool_t* b_omit)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  *b_optional = ATTR_b_optional;
+  *b_dynamic  = ATTR_b_dynamic;
+  *b_ref_desc = ATTR_b_ref_desc;
+  *b_omit     = ATTR_b_omit;
+}
+
+/* #[<ENTRY_FUNC>]# eCallInfo_getInternalInfo
+ * name:         eCallInfo_getInternalInfo
+ * global_name:  nTECSInfo_tCallInfo_eCallInfo_getInternalInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eCallInfo_getInternalInfo(CELLIDX idx, bool_t* b_allocator_port, bool_t* b_require_port)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  *b_allocator_port = ATTR_b_allocator_port;
+  *b_require_port   = ATTR_b_require_port;
+}
+
+/* #[<ENTRY_FUNC>]# eCallInfo_getLocationInfo
+ * name:         eCallInfo_getLocationInfo
+ * global_name:  nTECSInfo_tCallInfo_eCallInfo_getLocationInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eCallInfo_getLocationInfo(CELLIDX idx, uint32_t* offset, int8_t* place)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  *offset = ATTR_offset;
+  *place  = ATTR_place;
+}
+
+/* #[<ENTRY_FUNC>]# eCallInfo_getOptimizeInfo
+ * name:         eCallInfo_getOptimizeInfo
+ * global_name:  nTECSInfo_tCallInfo_eCallInfo_getOptimizeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eCallInfo_getOptimizeInfo(CELLIDX idx, bool_t* b_VMT_useless, bool_t* b_skelton_useless, bool_t* b_cell_unique)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  *b_VMT_useless     = ATTR_b_VMT_useless;
+  *b_skelton_useless = ATTR_b_skelton_useless;
+  *b_cell_unique     = ATTR_b_cell_unique;
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCellInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCellInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCellInfo.c	(revision 429)
@@ -0,0 +1,251 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * cbp              void*            ATTR_cbp        
+ * inibp            void*            ATTR_inibp      
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cCelltypeInfo signature: nTECSInfo_sCelltypeInfo context:task
+ *   ER             cCelltypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cCelltypeInfo_getNameLength( );
+ *   uint32_t       cCelltypeInfo_getNAttr( );
+ *   ER             cCelltypeInfo_getAttrInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNVar( );
+ *   ER             cCelltypeInfo_getVarInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNCall( );
+ *   ER             cCelltypeInfo_getCallInfo( uint32_t ith, Descriptor( nTECSInfo_sCallInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNEntry( );
+ *   ER             cCelltypeInfo_getEntryInfo( uint32_t ith, Descriptor( nTECSInfo_sEntryInfo )* desc );
+ *   bool_t         cCelltypeInfo_isSingleton( );
+ *   bool_t         cCelltypeInfo_isIDX_is_ID( );
+ *   uint32_t       cCelltypeInfo_sizeOfCB( );
+ *   uint32_t       cCelltypeInfo_sizeOfINIB( );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sCelltypeInfo ) cCelltypeInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sCelltypeInfo ) cCelltypeInfo_ref_desc()      (same as above; abbreviated version);
+ * call port: cRawEntryDescriptor signature: nTECSInfo_sRawEntryDescriptorInfo context:task optional:true
+ *   bool_t     is_cRawEntryDescriptor_joined(int subscript)        check if joined
+ *   uint16_t       cRawEntryDescriptor_getNRawEntryDescriptorInfo( subscript );
+ *   ER             cRawEntryDescriptor_getRawDescriptor( subscript, const char_t* signatureName, int_t ith, void** rawDesc );
+ *       subscript:  0...(NCP_cRawEntryDescriptor-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sRawEntryDescriptorInfo ) cRawEntryDescriptor_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sRawEntryDescriptorInfo ) cRawEntryDescriptor_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tCellInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eCellInfo
+ * entry port: eCellInfo
+ * signature:  nTECSInfo_sCellInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eCellInfo_getName
+ * name:         eCellInfo_getName
+ * global_name:  nTECSInfo_tCellInfo_eCellInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eCellInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eCellInfo_getNameLength
+ * name:         eCellInfo_getNameLength
+ * global_name:  nTECSInfo_tCellInfo_eCellInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eCellInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eCellInfo_getNRawEntryDescriptorInfo
+ * name:         eCellInfo_getNRawEntryDescriptorInfo
+ * global_name:  nTECSInfo_tCellInfo_eCellInfo_getNRawEntryDescriptorInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eCellInfo_getNRawEntryDescriptorInfo(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return NCP_cRawEntryDescriptor;
+}
+
+/* #[<ENTRY_FUNC>]# eCellInfo_getRawEntryDescriptorInfo
+ * name:         eCellInfo_getRawEntryDescriptorInfo
+ * global_name:  nTECSInfo_tCellInfo_eCellInfo_getRawEntryDescriptorInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eCellInfo_getRawEntryDescriptorInfo(CELLIDX idx, int_t index, Descriptor( nTECSInfo_sRawEntryDescriptorInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+  ER      ercd = E_OK;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( 0 <= index && index < NCP_cRawEntryDescriptor ){
+      if( is_cRawEntryDescriptor_joined( index ) )
+          *desc = cRawEntryDescriptor_refer_to_descriptor( index );
+      else
+          ercd = E_NOEXS;
+  }
+  else
+      ercd = E_ID;
+
+  return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eCellInfo_getCelltypeInfo
+ * name:         eCellInfo_getCelltypeInfo
+ * global_name:  nTECSInfo_tCellInfo_eCellInfo_getCelltypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eCellInfo_getCelltypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sCelltypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *desc = cCelltypeInfo_refer_to_descriptor();
+}
+
+/* #[<ENTRY_FUNC>]# eCellInfo_getCBP
+ * name:         eCellInfo_getCBP
+ * global_name:  nTECSInfo_tCellInfo_eCellInfo_getCBP
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eCellInfo_getCBP(CELLIDX idx, void** cbp)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *cbp = ATTR_cbp;
+}
+
+/* #[<ENTRY_FUNC>]# eCellInfo_getINIBP
+ * name:         eCellInfo_getINIBP
+ * global_name:  nTECSInfo_tCellInfo_eCellInfo_getINIBP
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eCellInfo_getINIBP(CELLIDX idx, void** inibp)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *inibp = ATTR_inibp;
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCelltypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCelltypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tCelltypeInfo.c	(revision 429)
@@ -0,0 +1,446 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * b_singleton      bool_t           ATTR_b_singleton
+ * b_IDX_is_ID_act  bool_t           ATTR_b_IDX_is_ID_act
+ * sizeOfCB         uint32_t         ATTR_sizeOfCB   
+ * sizeOfINIB       uint32_t         ATTR_sizeOfINIB 
+ * n_cellInLinkUnit uint32_t         ATTR_n_cellInLinkUnit
+ * n_cellInSystem   uint32_t         ATTR_n_cellInSystem
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cEntryInfo signature: nTECSInfo_sEntryInfo context:task optional:true
+ *   bool_t     is_cEntryInfo_joined(int subscript)        check if joined
+ *   ER             cEntryInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cEntryInfo_getNameLength( subscript );
+ *   void           cEntryInfo_getSignatureInfo( subscript, Descriptor( nTECSInfo_sSignatureInfo )* desc );
+ *   uint32_t       cEntryInfo_getArraySize( subscript );
+ *   bool_t         cEntryInfo_isInline( subscript );
+ *       subscript:  0...(NCP_cEntryInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sEntryInfo ) cEntryInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sEntryInfo ) cEntryInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ * call port: cCallInfo signature: nTECSInfo_sCallInfo context:task optional:true
+ *   bool_t     is_cCallInfo_joined(int subscript)        check if joined
+ *   ER             cCallInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cCallInfo_getNameLength( subscript );
+ *   void           cCallInfo_getSignatureInfo( subscript, Descriptor( nTECSInfo_sSignatureInfo )* desc );
+ *   uint32_t       cCallInfo_getArraySize( subscript );
+ *   void           cCallInfo_getSpecifierInfo( subscript, bool_t* b_optional, bool_t* b_dynamic, bool_t* b_ref_desc, bool_t* b_omit );
+ *   void           cCallInfo_getInternalInfo( subscript, bool_t* b_allocator_port, bool_t* b_require_port );
+ *   void           cCallInfo_getLocationInfo( subscript, uint32_t* offset, int8_t* place );
+ *   void           cCallInfo_getOptimizeInfo( subscript, bool_t* b_VMT_useless, bool_t* b_skelton_useless, bool_t* b_cell_unique );
+ *       subscript:  0...(NCP_cCallInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sCallInfo ) cCallInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sCallInfo ) cCallInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ * call port: cAttrInfo signature: nTECSInfo_sVarDeclInfo context:task optional:true
+ *   bool_t     is_cAttrInfo_joined(int subscript)        check if joined
+ *   ER             cAttrInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cAttrInfo_getNameLength( subscript );
+ *   uint32_t       cAttrInfo_getOffset( subscript );
+ *   void           cAttrInfo_getTypeInfo( subscript, Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   void           cAttrInfo_getSizeIsExpr( subscript, char_t* expr_str, int32_t max_len );
+ *   ER             cAttrInfo_getSizeIs( subscript, uint32_t* size, const void* p_cb );
+ *       subscript:  0...(NCP_cAttrInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sVarDeclInfo ) cAttrInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sVarDeclInfo ) cAttrInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ * call port: cVarInfo signature: nTECSInfo_sVarDeclInfo context:task optional:true
+ *   bool_t     is_cVarInfo_joined(int subscript)        check if joined
+ *   ER             cVarInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cVarInfo_getNameLength( subscript );
+ *   uint32_t       cVarInfo_getOffset( subscript );
+ *   void           cVarInfo_getTypeInfo( subscript, Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   void           cVarInfo_getSizeIsExpr( subscript, char_t* expr_str, int32_t max_len );
+ *   ER             cVarInfo_getSizeIs( subscript, uint32_t* size, const void* p_cb );
+ *       subscript:  0...(NCP_cVarInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sVarDeclInfo ) cVarInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sVarDeclInfo ) cVarInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tCelltypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eCelltypeInfo
+ * entry port: eCelltypeInfo
+ * signature:  nTECSInfo_sCelltypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getName
+ * name:         eCelltypeInfo_getName
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eCelltypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+    ER		ercd = E_OK;
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        return(E_ID);
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    name[ max_len - 1 ] = '\0';
+    strncpy( name, ATTR_name, max_len );
+    if( name[ max_len - 1 ] ){
+        name[ max_len - 1 ] = '\0';
+        ercd = E_NOMEM;
+    }
+
+    return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getNameLength
+ * name:         eCelltypeInfo_getNameLength
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eCelltypeInfo_getNameLength(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getNAttr
+ * name:         eCelltypeInfo_getNAttr
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getNAttr
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eCelltypeInfo_getNAttr(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    return NCP_cAttrInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getAttrInfo
+ * name:         eCelltypeInfo_getAttrInfo
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getAttrInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eCelltypeInfo_getAttrInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+    CELLCB	*p_cellcb;
+    ER      ercd = E_OK;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    if( 0 <= ith && ith < NCP_cAttrInfo ){
+        if( is_cAttrInfo_joined( ith ) )
+            *desc = cAttrInfo_refer_to_descriptor( ith );
+        else
+            ercd = E_NOEXS;
+    }
+    else
+        ercd = E_ID;
+    return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getNVar
+ * name:         eCelltypeInfo_getNVar
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getNVar
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eCelltypeInfo_getNVar(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    return NCP_cVarInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getVarInfo
+ * name:         eCelltypeInfo_getVarInfo
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getVarInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eCelltypeInfo_getVarInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+    CELLCB	*p_cellcb;
+    ER      ercd = E_OK;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    if( 0 <= ith &&  ith < NCP_cVarInfo ){
+        if( is_cVarInfo_joined( ith ) )
+            *desc = cVarInfo_refer_to_descriptor( ith );
+        else
+            ercd = E_NOEXS;
+    }
+    else
+        ercd = E_ID;
+    return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getNCall
+ * name:         eCelltypeInfo_getNCall
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getNCall
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eCelltypeInfo_getNCall(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    return NCP_cCallInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getCallInfo
+ * name:         eCelltypeInfo_getCallInfo
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getCallInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eCelltypeInfo_getCallInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sCallInfo )* desc)
+{
+    CELLCB	*p_cellcb;
+    ER      ercd = E_OK;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    if( 0 <= ith && ith < NCP_cCallInfo ){
+        if( is_cCallInfo_joined( ith ) )
+            *desc = cCallInfo_refer_to_descriptor( ith );
+        else
+            ercd = E_NOEXS;
+    }
+    else
+        ercd = E_ID;
+
+    return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getNEntry
+ * name:         eCelltypeInfo_getNEntry
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getNEntry
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eCelltypeInfo_getNEntry(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    return NCP_cEntryInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_getEntryInfo
+ * name:         eCelltypeInfo_getEntryInfo
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_getEntryInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eCelltypeInfo_getEntryInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sEntryInfo )* desc)
+{
+    CELLCB	*p_cellcb;
+    ER      ercd = E_OK;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    if( 0 <= ith && ith < NCP_cEntryInfo ){
+        if( is_cEntryInfo_joined( ith ) )
+            *desc = cEntryInfo_refer_to_descriptor( ith );
+        else
+            ercd = E_NOEXS;
+    }
+    else
+        ercd = E_ID;
+
+    return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_isSingleton
+ * name:         eCelltypeInfo_isSingleton
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_isSingleton
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+bool_t
+eCelltypeInfo_isSingleton(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    return ATTR_b_singleton;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_isIDX_is_ID
+ * name:         eCelltypeInfo_isIDX_is_ID
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_isIDX_is_ID
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+bool_t
+eCelltypeInfo_isIDX_is_ID(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* Write error processing code here */
+    } /* end if VALID_IDX(idx) */
+
+    /* Put statements here #_TEFB_# */
+    return ATTR_b_IDX_is_ID_act;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_sizeOfCB
+ * name:         eCelltypeInfo_sizeOfCB
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_sizeOfCB
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eCelltypeInfo_sizeOfCB(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* エラー処理コードをここに記述します */
+    } /* end if VALID_IDX(idx) */
+
+    /* ここに処理本体を記述します #_TEFB_# */
+    return ATTR_sizeOfCB;
+}
+
+/* #[<ENTRY_FUNC>]# eCelltypeInfo_sizeOfINIB
+ * name:         eCelltypeInfo_sizeOfINIB
+ * global_name:  nTECSInfo_tCelltypeInfo_eCelltypeInfo_sizeOfINIB
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eCelltypeInfo_sizeOfINIB(CELLIDX idx)
+{
+    CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+        p_cellcb = GET_CELLCB(idx);
+    }
+    else {
+        /* エラー処理コードをここに記述します */
+    } /* end if VALID_IDX(idx) */
+
+    /* ここに処理本体を記述します #_TEFB_# */
+    return ATTR_sizeOfINIB;
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tDefinedTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tDefinedTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tDefinedTypeInfo.c	(revision 429)
@@ -0,0 +1,255 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTypeInfo signature: nTECSInfo_sTypeInfo context:task
+ *   ER             cTypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cTypeInfo_getNameLength( );
+ *   uint32_t       cTypeInfo_getSize( );
+ *   int8_t         cTypeInfo_getKind( );
+ *   uint32_t       cTypeInfo_getNType( );
+ *   ER             cTypeInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cTypeInfo_getNMember( );
+ *   ER             cTypeInfo_getMemberInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tDefinedTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tDefinedTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tDefinedTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tDefinedTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return cTypeInfo_getSize();
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tDefinedTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return TECSTypeKind_DefinedType;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tDefinedTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tDefinedTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  /*
+   * ith == 0 is valid, others are invalid.
+   * but this function always returns valid value
+   */
+  *desc = cTypeInfo_refer_to_descriptor();
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tDefinedTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tDefinedTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tDescriptorTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tDescriptorTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tDescriptorTypeInfo.c	(revision 429)
@@ -0,0 +1,247 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cSignatureInfo signature: nTECSInfo_sSignatureInfo context:task
+ *   ER             cSignatureInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cSignatureInfo_getNameLength( );
+ *   uint32_t       cSignatureInfo_getNFunction( );
+ *   ER             cSignatureInfo_getFunctionInfo( uint32_t ith, Descriptor( nTECSInfo_sFunctionInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sSignatureInfo ) cSignatureInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sSignatureInfo ) cSignatureInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tDescriptorTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tDescriptorTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tDescriptorTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tDescriptorTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return ATTR_size;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tDescriptorTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return TECSTypeKind_DescriptorType;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tDescriptorTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return 0;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tDescriptorTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return E_NOEXS;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tDescriptorTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tDescriptorTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tEntryInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tEntryInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tEntryInfo.c	(revision 429)
@@ -0,0 +1,183 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * b_inline         bool_t           ATTR_b_inline   
+ * array_size       uint32_t         ATTR_array_size 
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cSignatureInfo signature: nTECSInfo_sSignatureInfo context:task
+ *   ER             cSignatureInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cSignatureInfo_getNameLength( );
+ *   uint32_t       cSignatureInfo_getNFunction( );
+ *   ER             cSignatureInfo_getFunctionInfo( uint32_t ith, Descriptor( nTECSInfo_sFunctionInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sSignatureInfo ) cSignatureInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sSignatureInfo ) cSignatureInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tEntryInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eEntryInfo
+ * entry port: eEntryInfo
+ * signature:  nTECSInfo_sEntryInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eEntryInfo_getName
+ * name:         eEntryInfo_getName
+ * global_name:  nTECSInfo_tEntryInfo_eEntryInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eEntryInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eEntryInfo_getNameLength
+ * name:         eEntryInfo_getNameLength
+ * global_name:  nTECSInfo_tEntryInfo_eEntryInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eEntryInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eEntryInfo_getSignatureInfo
+ * name:         eEntryInfo_getSignatureInfo
+ * global_name:  nTECSInfo_tEntryInfo_eEntryInfo_getSignatureInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eEntryInfo_getSignatureInfo(CELLIDX idx, Descriptor( nTECSInfo_sSignatureInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *desc = cSignatureInfo_refer_to_descriptor();
+}
+
+/* #[<ENTRY_FUNC>]# eEntryInfo_getArraySize
+ * name:         eEntryInfo_getArraySize
+ * global_name:  nTECSInfo_tEntryInfo_eEntryInfo_getArraySize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eEntryInfo_getArraySize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return ATTR_array_size;
+}
+
+/* #[<ENTRY_FUNC>]# eEntryInfo_isInline
+ * name:         eEntryInfo_isInline
+ * global_name:  nTECSInfo_tEntryInfo_eEntryInfo_isInline
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+bool_t
+eEntryInfo_isInline(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return ATTR_b_inline;
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tFloatTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tFloatTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tFloatTypeInfo.c	(revision 429)
@@ -0,0 +1,237 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tFloatTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tFloatTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tFloatTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tFloatTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return ATTR_size;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tFloatTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return TECSTypeKind_FloatType;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tFloatTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return 0;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tFloatTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return E_NOEXS;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tFloatTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tFloatTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tFunctionInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tFunctionInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tFunctionInfo.c	(revision 429)
@@ -0,0 +1,200 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * bOneway          bool_t           ATTR_bOneway    
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cParamInfo signature: nTECSInfo_sParamInfo context:task optional:true
+ *   bool_t     is_cParamInfo_joined(int subscript)        check if joined
+ *   ER             cParamInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cParamInfo_getNameLength( subscript );
+ *   ER             cParamInfo_getTypeInfo( subscript, Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *       subscript:  0...(NCP_cParamInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sParamInfo ) cParamInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sParamInfo ) cParamInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ * call port: cReturnTypeInfo signature: nTECSInfo_sTypeInfo context:task
+ *   ER             cReturnTypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cReturnTypeInfo_getNameLength( );
+ *   uint32_t       cReturnTypeInfo_getSize( );
+ *   int8_t         cReturnTypeInfo_getKind( );
+ *   uint32_t       cReturnTypeInfo_getNType( );
+ *   ER             cReturnTypeInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cReturnTypeInfo_getNMember( );
+ *   ER             cReturnTypeInfo_getMemberInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sTypeInfo ) cReturnTypeInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sTypeInfo ) cReturnTypeInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tFunctionInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eFunctionInfo
+ * entry port: eFunctionInfo
+ * signature:  nTECSInfo_sFunctionInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eFunctionInfo_getName
+ * name:         eFunctionInfo_getName
+ * global_name:  nTECSInfo_tFunctionInfo_eFunctionInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eFunctionInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eFunctionInfo_getNameLength
+ * name:         eFunctionInfo_getNameLength
+ * global_name:  nTECSInfo_tFunctionInfo_eFunctionInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eFunctionInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eFunctionInfo_getReturnTypeInfo
+ * name:         eFunctionInfo_getReturnTypeInfo
+ * global_name:  nTECSInfo_tFunctionInfo_eFunctionInfo_getReturnTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eFunctionInfo_getReturnTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *desc = cReturnTypeInfo_refer_to_descriptor();
+}
+
+/* #[<ENTRY_FUNC>]# eFunctionInfo_getNParam
+ * name:         eFunctionInfo_getNParam
+ * global_name:  nTECSInfo_tFunctionInfo_eFunctionInfo_getNParam
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eFunctionInfo_getNParam(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return NCP_cParamInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eFunctionInfo_getParamInfo
+ * name:         eFunctionInfo_getParamInfo
+ * global_name:  nTECSInfo_tFunctionInfo_eFunctionInfo_getParamInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eFunctionInfo_getParamInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sParamInfo )* param)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  if( ith >= NCP_cParamInfo )
+      ercd = E_NOEXS;
+  else
+      *param = cParamInfo_refer_to_descriptor( ith );
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tIntTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tIntTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tIntTypeInfo.c	(revision 429)
@@ -0,0 +1,237 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tIntTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tIntTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tIntTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tIntTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return ATTR_size;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tIntTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return TECSTypeKind_IntType;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tIntTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return 0;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tIntTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return E_NOEXS;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tIntTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tIntTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tNamespaceInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tNamespaceInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tNamespaceInfo.c	(revision 429)
@@ -0,0 +1,277 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char*            ATTR_name       
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cSignatureInfo signature: nTECSInfo_sSignatureInfo context:task optional:true
+ *   bool_t     is_cSignatureInfo_joined(int subscript)        check if joined
+ *   ER             cSignatureInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cSignatureInfo_getNameLength( subscript );
+ *   uint32_t       cSignatureInfo_getNFunction( subscript );
+ *   ER             cSignatureInfo_getFunctionInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sFunctionInfo )* desc );
+ *       subscript:  0...(NCP_cSignatureInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sSignatureInfo ) cSignatureInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sSignatureInfo ) cSignatureInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ * call port: cCelltypeInfo signature: nTECSInfo_sCelltypeInfo context:task optional:true
+ *   bool_t     is_cCelltypeInfo_joined(int subscript)        check if joined
+ *   ER             cCelltypeInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cCelltypeInfo_getNameLength( subscript );
+ *   uint32_t       cCelltypeInfo_getNAttr( subscript );
+ *   ER             cCelltypeInfo_getAttrInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNVar( subscript );
+ *   ER             cCelltypeInfo_getVarInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNCall( subscript );
+ *   ER             cCelltypeInfo_getCallInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sCallInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNEntry( subscript );
+ *   ER             cCelltypeInfo_getEntryInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sEntryInfo )* desc );
+ *   bool_t         cCelltypeInfo_isSingleton( subscript );
+ *   bool_t         cCelltypeInfo_isIDX_is_ID( subscript );
+ *   uint32_t       cCelltypeInfo_sizeOfCB( subscript );
+ *   uint32_t       cCelltypeInfo_sizeOfINIB( subscript );
+ *       subscript:  0...(NCP_cCelltypeInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sCelltypeInfo ) cCelltypeInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sCelltypeInfo ) cCelltypeInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ * call port: cNamespaceInfo signature: nTECSInfo_sNamespaceInfo context:task optional:true
+ *   bool_t     is_cNamespaceInfo_joined(int subscript)        check if joined
+ *   ER             cNamespaceInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cNamespaceInfo_getNameLength( subscript );
+ *   uint32_t       cNamespaceInfo_getNNamespace( subscript );
+ *   ER             cNamespaceInfo_getNamespaceInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sNamespaceInfo )* des );
+ *   uint32_t       cNamespaceInfo_getNSignature( subscript );
+ *   ER             cNamespaceInfo_getSignatureInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sSignatureInfo )* des );
+ *   uint32_t       cNamespaceInfo_getNCelltype( subscript );
+ *   ER             cNamespaceInfo_getCelltypeInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sCelltypeInfo )* des );
+ *       subscript:  0...(NCP_cNamespaceInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sNamespaceInfo ) cNamespaceInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sNamespaceInfo ) cNamespaceInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tNamespaceInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eNamespaceInfo
+ * entry port: eNamespaceInfo
+ * signature:  nTECSInfo_sNamespaceInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eNamespaceInfo_getName
+ * name:         eNamespaceInfo_getName
+ * global_name:  nTECSInfo_tNamespaceInfo_eNamespaceInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eNamespaceInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eNamespaceInfo_getNameLength
+ * name:         eNamespaceInfo_getNameLength
+ * global_name:  nTECSInfo_tNamespaceInfo_eNamespaceInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eNamespaceInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eNamespaceInfo_getNNamespace
+ * name:         eNamespaceInfo_getNNamespace
+ * global_name:  nTECSInfo_tNamespaceInfo_eNamespaceInfo_getNNamespace
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eNamespaceInfo_getNNamespace(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return NCP_cNamespaceInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eNamespaceInfo_getNamespaceInfo
+ * name:         eNamespaceInfo_getNamespaceInfo
+ * global_name:  nTECSInfo_tNamespaceInfo_eNamespaceInfo_getNamespaceInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eNamespaceInfo_getNamespaceInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sNamespaceInfo )* des)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *des = cNamespaceInfo_refer_to_descriptor( ith );
+}
+
+/* #[<ENTRY_FUNC>]# eNamespaceInfo_getNSignature
+ * name:         eNamespaceInfo_getNSignature
+ * global_name:  nTECSInfo_tNamespaceInfo_eNamespaceInfo_getNSignature
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eNamespaceInfo_getNSignature(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return NCP_cSignatureInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eNamespaceInfo_getSignatureInfo
+ * name:         eNamespaceInfo_getSignatureInfo
+ * global_name:  nTECSInfo_tNamespaceInfo_eNamespaceInfo_getSignatureInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eNamespaceInfo_getSignatureInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sSignatureInfo )* des)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	*des = cSignatureInfo_refer_to_descriptor( ith );
+}
+
+/* #[<ENTRY_FUNC>]# eNamespaceInfo_getNCelltype
+ * name:         eNamespaceInfo_getNCelltype
+ * global_name:  nTECSInfo_tNamespaceInfo_eNamespaceInfo_getNCelltype
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eNamespaceInfo_getNCelltype(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return NCP_cCelltypeInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eNamespaceInfo_getCelltypeInfo
+ * name:         eNamespaceInfo_getCelltypeInfo
+ * global_name:  nTECSInfo_tNamespaceInfo_eNamespaceInfo_getCelltypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eNamespaceInfo_getCelltypeInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sCelltypeInfo )* des)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	*des = cCelltypeInfo_refer_to_descriptor( ith );
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tParamInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tParamInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tParamInfo.c	(revision 429)
@@ -0,0 +1,174 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * dir              int8_t           ATTR_dir        
+ * sizeIsExpr       char_t*          ATTR_sizeIsExpr 
+ * countIsExpr      char_t*          ATTR_countIsExpr
+ * stringExpr       char_t*          ATTR_stringExpr 
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTypeInfo signature: nTECSInfo_sTypeInfo context:task
+ *   ER             cTypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cTypeInfo_getNameLength( );
+ *   uint32_t       cTypeInfo_getSize( );
+ *   int8_t         cTypeInfo_getKind( );
+ *   uint32_t       cTypeInfo_getNType( );
+ *   ER             cTypeInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cTypeInfo_getNMember( );
+ *   ER             cTypeInfo_getMemberInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tParamInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eParamInfo
+ * entry port: eParamInfo
+ * signature:  nTECSInfo_sParamInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eParamInfo_getName
+ * name:         eParamInfo_getName
+ * global_name:  nTECSInfo_tParamInfo_eParamInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eParamInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eParamInfo_getNameLength
+ * name:         eParamInfo_getNameLength
+ * global_name:  nTECSInfo_tParamInfo_eParamInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eParamInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eParamInfo_getTypeInfo
+ * name:         eParamInfo_getTypeInfo
+ * global_name:  nTECSInfo_tParamInfo_eParamInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eParamInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *desc = cTypeInfo_refer_to_descriptor();
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eParamInfo_getDir
+ * name:         eParamInfo_getDir
+ * global_name:  nTECSInfo_tParamInfo_eParamInfo_getDir
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eParamInfo_getDir(CELLIDX idx, int8_t *dir)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *dir = ATTR_dir;
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tPtrTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tPtrTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tPtrTypeInfo.c	(revision 429)
@@ -0,0 +1,251 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTypeInfo signature: nTECSInfo_sTypeInfo context:task
+ *   ER             cTypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cTypeInfo_getNameLength( );
+ *   uint32_t       cTypeInfo_getSize( );
+ *   int8_t         cTypeInfo_getKind( );
+ *   uint32_t       cTypeInfo_getNType( );
+ *   ER             cTypeInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cTypeInfo_getNMember( );
+ *   ER             cTypeInfo_getMemberInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tPtrTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tPtrTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tPtrTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tPtrTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return ATTR_size;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tPtrTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return TECSTypeKind_PtrType;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tPtrTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tPtrTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  *desc = cTypeInfo_refer_to_descriptor();
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tPtrTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tPtrTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tRawEntryDescriptorInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tRawEntryDescriptorInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tRawEntryDescriptorInfo.c	(revision 429)
@@ -0,0 +1,75 @@
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * size             int_t            ATTR_size       
+ * rawEntryDescriptor void**           ATTR_rawEntryDescriptor
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include "nTECSInfo_tRawEntryDescriptorInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eRawEntryDescriptor
+ * entry port: eRawEntryDescriptor
+ * signature:  nTECSInfo_sRawEntryDescriptorInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eRawEntryDescriptor_getNRawEntryDescriptorInfo
+ * name:         eRawEntryDescriptor_getNRawEntryDescriptorInfo
+ * global_name:  nTECSInfo_tRawEntryDescriptorInfo_eRawEntryDescriptor_getNRawEntryDescriptorInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eRawEntryDescriptor_getNRawEntryDescriptorInfo(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eRawEntryDescriptor_getRawDescriptor
+ * name:         eRawEntryDescriptor_getRawDescriptor
+ * global_name:  nTECSInfo_tRawEntryDescriptorInfo_eRawEntryDescriptor_getRawDescriptor
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eRawEntryDescriptor_getRawDescriptor(CELLIDX idx, int_t ith, void** rawDesc)
+{
+	CELLCB	*p_cellcb;
+  ER      ercd = E_OK;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( 0 <= ith && ith < ATTR_size ){
+      *rawDesc = ATTR_rawEntryDescriptor[ ith ];
+  }
+  else {
+      ercd = E_ID;
+  }
+  return ercd;
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tRegionInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tRegionInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tRegionInfo.c	(revision 429)
@@ -0,0 +1,216 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char*            ATTR_name       
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cCellInfo signature: nTECSInfo_sCellInfo context:task optional:true
+ *   bool_t     is_cCellInfo_joined(int subscript)        check if joined
+ *   ER             cCellInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cCellInfo_getNameLength( subscript );
+ *   void           cCellInfo_getCelltypeInfo( subscript, Descriptor( nTECSInfo_sCelltypeInfo )* desc );
+ *   void           cCellInfo_getCBP( subscript, void** cbp );
+ *   void           cCellInfo_getINIBP( subscript, void** inibp );
+ *       subscript:  0...(NCP_cCellInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sCellInfo ) cCellInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sCellInfo ) cCellInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ * call port: cRegionInfo signature: nTECSInfo_sRegionInfo context:task optional:true
+ *   bool_t     is_cRegionInfo_joined(int subscript)        check if joined
+ *   ER             cRegionInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cRegionInfo_getNameLength( subscript );
+ *   uint32_t       cRegionInfo_getNCell( subscript );
+ *   ER             cRegionInfo_getCellInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sCellInfo )* des );
+ *   uint32_t       cRegionInfo_getNRegion( subscript );
+ *   ER             cRegionInfo_getRegionInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sRegionInfo )* des );
+ *       subscript:  0...(NCP_cRegionInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sRegionInfo ) cRegionInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sRegionInfo ) cRegionInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tRegionInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eRegionInfo
+ * entry port: eRegionInfo
+ * signature:  nTECSInfo_sRegionInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eRegionInfo_getName
+ * name:         eRegionInfo_getName
+ * global_name:  nTECSInfo_tRegionInfo_eRegionInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eRegionInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eRegionInfo_getNameLength
+ * name:         eRegionInfo_getNameLength
+ * global_name:  nTECSInfo_tRegionInfo_eRegionInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eRegionInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eRegionInfo_getNCell
+ * name:         eRegionInfo_getNCell
+ * global_name:  nTECSInfo_tRegionInfo_eRegionInfo_getNCell
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eRegionInfo_getNCell(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return NCP_cCellInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eRegionInfo_getCellInfo
+ * name:         eRegionInfo_getCellInfo
+ * global_name:  nTECSInfo_tRegionInfo_eRegionInfo_getCellInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eRegionInfo_getCellInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sCellInfo )* des)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *des = cCellInfo_refer_to_descriptor( ith );
+}
+
+/* #[<ENTRY_FUNC>]# eRegionInfo_getNRegion
+ * name:         eRegionInfo_getNRegion
+ * global_name:  nTECSInfo_tRegionInfo_eRegionInfo_getNRegion
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eRegionInfo_getNRegion(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return NCP_cRegionInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eRegionInfo_getRegionInfo
+ * name:         eRegionInfo_getRegionInfo
+ * global_name:  nTECSInfo_tRegionInfo_eRegionInfo_getRegionInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eRegionInfo_getRegionInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sRegionInfo )* des)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *des = cRegionInfo_refer_to_descriptor( ith );
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tSignatureInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tSignatureInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tSignatureInfo.c	(revision 429)
@@ -0,0 +1,165 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char*            ATTR_name       
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cFunctionInfo signature: nTECSInfo_sFunctionInfo context:task optional:true
+ *   bool_t     is_cFunctionInfo_joined(int subscript)        check if joined
+ *   ER             cFunctionInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cFunctionInfo_getNameLength( subscript );
+ *   void           cFunctionInfo_getReturnTypeInfo( subscript, Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cFunctionInfo_getNParam( subscript );
+ *   ER             cFunctionInfo_getParamInfo( subscript, uint32_t ith, Descriptor( nTECSInfo_sParamInfo )* param );
+ *       subscript:  0...(NCP_cFunctionInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sFunctionInfo ) cFunctionInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sFunctionInfo ) cFunctionInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tSignatureInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eSignatureInfo
+ * entry port: eSignatureInfo
+ * signature:  nTECSInfo_sSignatureInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eSignatureInfo_getName
+ * name:         eSignatureInfo_getName
+ * global_name:  nTECSInfo_tSignatureInfo_eSignatureInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSignatureInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSignatureInfo_getNameLength
+ * name:         eSignatureInfo_getNameLength
+ * global_name:  nTECSInfo_tSignatureInfo_eSignatureInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eSignatureInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+      /* 終端文字 (NULL) を含む */
+}
+
+/* #[<ENTRY_FUNC>]# eSignatureInfo_getNFunction
+ * name:         eSignatureInfo_getNFunction
+ * global_name:  nTECSInfo_tSignatureInfo_eSignatureInfo_getNFunction
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eSignatureInfo_getNFunction(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return NCP_cFunctionInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eSignatureInfo_getFunctionInfo
+ * name:         eSignatureInfo_getFunctionInfo
+ * global_name:  nTECSInfo_tSignatureInfo_eSignatureInfo_getFunctionInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSignatureInfo_getFunctionInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sFunctionInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  *desc = cFunctionInfo_ref_desc( ith );
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tStructTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tStructTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tStructTypeInfo.c	(revision 429)
@@ -0,0 +1,255 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cVarDeclInfo signature: nTECSInfo_sVarDeclInfo context:task
+ *   ER             cVarDeclInfo_getName( subscript, char_t* name, int_t max_len );
+ *   uint16_t       cVarDeclInfo_getNameLength( subscript );
+ *   uint32_t       cVarDeclInfo_getOffset( subscript );
+ *   void           cVarDeclInfo_getTypeInfo( subscript, Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   void           cVarDeclInfo_getSizeIsExpr( subscript, char_t* expr_str, int32_t max_len );
+ *   ER             cVarDeclInfo_getSizeIs( subscript, uint32_t* size, const void* p_cb );
+ *       subscript:  0...(NCP_cVarDeclInfo-1)
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sVarDeclInfo ) cVarDeclInfo_refer_to_descriptor( int_t subscript );
+ *      Descriptor( nTECSInfo_sVarDeclInfo ) cVarDeclInfo_ref_desc( int_t subscript )      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tStructTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tStructTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tStructTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+      /* 終端文字 (NULL) を含む */
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tStructTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return ATTR_size;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tStructTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return TECSTypeKind_StructType;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tStructTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return NCP_cVarDeclInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tStructTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  // *desc = cTypeInfo_refer_to_descriptor( ith );
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tStructTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return NCP_cVarDeclInfo;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tStructTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( ith >= NCP_cVarDeclInfo )
+      ercd = E_NOEXS;
+  else
+      *desc = cVarDeclInfo_refer_to_descriptor( ith );
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfoAccessor.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfoAccessor.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfoAccessor.c	(revision 429)
@@ -0,0 +1,1130 @@
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * NAME_LEN         int16_t          ATTR_NAME_LEN   
+ * name             char_t*          VAR_name        
+ * name2            char_t*          VAR_name2       
+ * selectedCbp      int8_t*          VAR_selectedCbp 
+ * selectedInibp    int8_t*          VAR_selectedInibp
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTECSInfo signature: nTECSInfo_sTECSInfo context:task
+ *   ER             cTECSInfo_findNamespace( const char_t* namespace_path, Descriptor( nTECSInfo_sNamespaceInfo )* NSdesc );
+ *   ER             cTECSInfo_findRegion( const char_t* namespace_path, Descriptor( nTECSInfo_sRegionInfo )* RGNdesc );
+ *   ER             cTECSInfo_findSignature( const char_t* namespace_path, Descriptor( nTECSInfo_sSignatureInfo )* SIGdesc );
+ *   ER             cTECSInfo_findCelltype( const char_t* namespace_path, Descriptor( nTECSInfo_sCelltypeInfo )* CTdesc );
+ *   ER             cTECSInfo_findCell( const char_t* namespace_path, Descriptor( nTECSInfo_sCellInfo )* CELLdesc );
+ * call port: cNSInfo signature: nTECSInfo_sNamespaceInfo context:task optional:true
+ *   bool_t     is_cNSInfo_joined()                     check if joined
+ *   ER             cNSInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cNSInfo_getNameLength( );
+ *   uint32_t       cNSInfo_getNNamespace( );
+ *   ER             cNSInfo_getNamespaceInfo( uint32_t ith, Descriptor( nTECSInfo_sNamespaceInfo )* des );
+ *   uint32_t       cNSInfo_getNSignature( );
+ *   ER             cNSInfo_getSignatureInfo( uint32_t ith, Descriptor( nTECSInfo_sSignatureInfo )* des );
+ *   uint32_t       cNSInfo_getNCelltype( );
+ *   ER             cNSInfo_getCelltypeInfo( uint32_t ith, Descriptor( nTECSInfo_sCelltypeInfo )* des );
+ *   [dynamic, optional]
+ *      void           cNSInfo_set_descriptor( Descriptor( nTECSInfo_sNamespaceInfo ) desc );
+ *      void           cNSInfo_unjoin(  );
+ * call port: cCelltypeInfo signature: nTECSInfo_sCelltypeInfo context:task optional:true
+ *   bool_t     is_cCelltypeInfo_joined()                     check if joined
+ *   ER             cCelltypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cCelltypeInfo_getNameLength( );
+ *   uint32_t       cCelltypeInfo_getNAttr( );
+ *   ER             cCelltypeInfo_getAttrInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNVar( );
+ *   ER             cCelltypeInfo_getVarInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNCall( );
+ *   ER             cCelltypeInfo_getCallInfo( uint32_t ith, Descriptor( nTECSInfo_sCallInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNEntry( );
+ *   ER             cCelltypeInfo_getEntryInfo( uint32_t ith, Descriptor( nTECSInfo_sEntryInfo )* desc );
+ *   bool_t         cCelltypeInfo_isSingleton( );
+ *   bool_t         cCelltypeInfo_isIDX_is_ID( );
+ *   uint32_t       cCelltypeInfo_sizeOfCB( );
+ *   uint32_t       cCelltypeInfo_sizeOfINIB( );
+ *   [dynamic, optional]
+ *      void           cCelltypeInfo_set_descriptor( Descriptor( nTECSInfo_sCelltypeInfo ) desc );
+ *      void           cCelltypeInfo_unjoin(  );
+ * call port: cAttrInfo signature: nTECSInfo_sVarDeclInfo context:task optional:true
+ *   bool_t     is_cAttrInfo_joined()                     check if joined
+ *   ER             cAttrInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cAttrInfo_getNameLength( );
+ *   uint32_t       cAttrInfo_getOffset( );
+ *   void           cAttrInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   void           cAttrInfo_getSizeIsExpr( char_t* expr_str, int32_t max_len );
+ *   ER             cAttrInfo_getSizeIs( uint32_t* size, const void* p_cb );
+ *   [dynamic, optional]
+ *      void           cAttrInfo_set_descriptor( Descriptor( nTECSInfo_sVarDeclInfo ) desc );
+ *      void           cAttrInfo_unjoin(  );
+ * call port: cVarInfo signature: nTECSInfo_sVarDeclInfo context:task optional:true
+ *   bool_t     is_cVarInfo_joined()                     check if joined
+ *   ER             cVarInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cVarInfo_getNameLength( );
+ *   uint32_t       cVarInfo_getOffset( );
+ *   void           cVarInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   void           cVarInfo_getSizeIsExpr( char_t* expr_str, int32_t max_len );
+ *   ER             cVarInfo_getSizeIs( uint32_t* size, const void* p_cb );
+ *   [dynamic, optional]
+ *      void           cVarInfo_set_descriptor( Descriptor( nTECSInfo_sVarDeclInfo ) desc );
+ *      void           cVarInfo_unjoin(  );
+ * call port: cTypeInfo signature: nTECSInfo_sTypeInfo context:task optional:true
+ *   bool_t     is_cTypeInfo_joined()                     check if joined
+ *   ER             cTypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cTypeInfo_getNameLength( );
+ *   uint32_t       cTypeInfo_getSize( );
+ *   int8_t         cTypeInfo_getKind( );
+ *   uint32_t       cTypeInfo_getNType( );
+ *   ER             cTypeInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cTypeInfo_getNMember( );
+ *   ER             cTypeInfo_getMemberInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   [dynamic, optional]
+ *      void           cTypeInfo_set_descriptor( Descriptor( nTECSInfo_sTypeInfo ) desc );
+ *      void           cTypeInfo_unjoin(  );
+ * call port: cRegionInfo signature: nTECSInfo_sRegionInfo context:task optional:true
+ *   bool_t     is_cRegionInfo_joined()                     check if joined
+ *   ER             cRegionInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cRegionInfo_getNameLength( );
+ *   uint32_t       cRegionInfo_getNCell( );
+ *   ER             cRegionInfo_getCellInfo( uint32_t ith, Descriptor( nTECSInfo_sCellInfo )* des );
+ *   uint32_t       cRegionInfo_getNRegion( );
+ *   ER             cRegionInfo_getRegionInfo( uint32_t ith, Descriptor( nTECSInfo_sRegionInfo )* des );
+ *   [dynamic, optional]
+ *      void           cRegionInfo_set_descriptor( Descriptor( nTECSInfo_sRegionInfo ) desc );
+ *      void           cRegionInfo_unjoin(  );
+ * call port: cCellInfo signature: nTECSInfo_sCellInfo context:task optional:true
+ *   bool_t     is_cCellInfo_joined()                     check if joined
+ *   ER             cCellInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cCellInfo_getNameLength( );
+ *   void           cCellInfo_getCelltypeInfo( Descriptor( nTECSInfo_sCelltypeInfo )* desc );
+ *   void           cCellInfo_getCBP( void** cbp );
+ *   void           cCellInfo_getINIBP( void** inibp );
+ *   [dynamic, optional]
+ *      void           cCellInfo_set_descriptor( Descriptor( nTECSInfo_sCellInfo ) desc );
+ *      void           cCellInfo_unjoin(  );
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tTECSInfoAccessor_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eSelector
+ * entry port: eSelector
+ * signature:  nTECSInfo_sAccessor
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eSelector_selectNamespaceInfoByName
+ * name:         eSelector_selectNamespaceInfoByName
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectNamespaceInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectNamespaceInfoByName(CELLIDX idx, const char_t* namespacePath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sNamespaceInfo ) NSdesc;
+    if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+  /* ここに処理本体を記述します #_TEFB_# */
+  ercd = cTECSInfo_findNamespace( namespacePath, &NSdesc );
+  if( ercd == E_OK ){
+      cNSInfo_set_descriptor( NSdesc );
+  }
+  else{
+      cNSInfo_unjoin();
+  }
+
+  return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCelltypeInfoByName
+ * name:         eSelector_selectCelltypeInfoByName
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectCelltypeInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCelltypeInfoByName(CELLIDX idx, const char_t* namespacePath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sCelltypeInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  ercd = cTECSInfo_findCelltype( namespacePath, &desc );
+  if( ercd == E_OK ){
+      cCelltypeInfo_set_descriptor( desc );
+  }
+  else{
+      cCelltypeInfo_unjoin();
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectSignatureInfoByName
+ * name:         eSelector_selectSignatureInfoByName
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectSignatureInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectSignatureInfoByName(CELLIDX idx, const char_t* namespacePath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectRegionInfoByName
+ * name:         eSelector_selectRegionInfoByName
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectRegionInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectRegionInfoByName(CELLIDX idx, const char_t* regionPath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCellInfoByName
+ * name:         eSelector_selectCellInfoByName
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectCellInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCellInfoByName(CELLIDX idx, const char_t* cellPath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedNamespaceInfo
+ * name:         eSelector_getSelectedNamespaceInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedNamespaceInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedNamespaceInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_celltype, int_t* num_signature)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCelltypeInfo
+ * name:         eSelector_selectCelltypeInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectCelltypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCelltypeInfo(CELLIDX idx, int_t i)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectSignatureInfo
+ * name:         eSelector_selectSignatureInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectSignatureInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectSignatureInfo(CELLIDX idx, int_t i)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCelltypeInfo
+ * name:         eSelector_getSelectedCelltypeInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedCelltypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCelltypeInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_attr, int_t* num_var, int_t* num_call, int_t* num_entry)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCallInfo
+ * name:         eSelector_selectCallInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectCallInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCallInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectEntryInfo
+ * name:         eSelector_selectEntryInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectEntryInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectEntryInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectAttrInfo
+ * name:         eSelector_selectAttrInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectAttrInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectAttrInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectVarInfo
+ * name:         eSelector_selectVarInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectVarInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectVarInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedAttrInfo
+ * name:         eSelector_getSelectedAttrInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedAttrInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedAttrInfo(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSizeIsExprOfAttr
+ * name:         eSelector_getSizeIsExprOfAttr
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSizeIsExprOfAttr
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eSelector_getSizeIsExprOfAttr(CELLIDX idx, char_t* expr_str, int32_t max_len)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfAttr
+ * name:         eSelector_selectTypeInfoOfAttr
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectTypeInfoOfAttr
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfAttr(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedVarInfo
+ * name:         eSelector_getSelectedVarInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedVarInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedVarInfo(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSizeIsExprOfVar
+ * name:         eSelector_getSizeIsExprOfVar
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSizeIsExprOfVar
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eSelector_getSizeIsExprOfVar(CELLIDX idx, char_t* expr_str, int32_t max_len)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfVar
+ * name:         eSelector_selectTypeInfoOfVar
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectTypeInfoOfVar
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfVar(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallInfo
+ * name:         eSelector_getSelectedCallInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedCallInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* array_size)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectSignatureOfCall
+ * name:         eSelector_selectSignatureOfCall
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectSignatureOfCall
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectSignatureOfCall(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallSpecifierInfo
+ * name:         eSelector_getSelectedCallSpecifierInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedCallSpecifierInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallSpecifierInfo(CELLIDX idx, bool_t* b_optional, bool_t* b_dynamic, bool_t* b_ref_desc, bool_t* b_omit)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallInternalInfo
+ * name:         eSelector_getSelectedCallInternalInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedCallInternalInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallInternalInfo(CELLIDX idx, bool_t* b_allocator_port, bool_t* b_require_port)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallLocationInfo
+ * name:         eSelector_getSelectedCallLocationInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedCallLocationInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallLocationInfo(CELLIDX idx, uint32_t* offset, int8_t* place)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallOptimizeInfo
+ * name:         eSelector_getSelectedCallOptimizeInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedCallOptimizeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallOptimizeInfo(CELLIDX idx, bool_t* b_VMT_useless, bool_t* b_skelton_useless, bool_t* b_cell_unique)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedEntryInfo
+ * name:         eSelector_getSelectedEntryInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedEntryInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedEntryInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* array_size)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectSignatureOfEntry
+ * name:         eSelector_selectSignatureOfEntry
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectSignatureOfEntry
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectSignatureOfEntry(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedEntryInlineInfo
+ * name:         eSelector_getSelectedEntryInlineInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedEntryInlineInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedEntryInlineInfo(CELLIDX idx, bool_t* b_inline)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedSignatureInfo
+ * name:         eSelector_getSelectedSignatureInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedSignatureInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedSignatureInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_function)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selecFunctionInfoByIndex
+ * name:         eSelector_selecFunctionInfoByIndex
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selecFunctionInfoByIndex
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selecFunctionInfoByIndex(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedFunctionInfo
+ * name:         eSelector_getSelectedFunctionInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedFunctionInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedFunctionInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_args)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfReturn
+ * name:         eSelector_selectTypeInfoOfReturn
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectTypeInfoOfReturn
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfReturn(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedParamInfo
+ * name:         eSelector_getSelectedParamInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedParamInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedParamInfo(CELLIDX idx, char_t* name, int_t max_len, int8_t* dir)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectParamInfo
+ * name:         eSelector_selectParamInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectParamInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectParamInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfParam
+ * name:         eSelector_selectTypeInfoOfParam
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectTypeInfoOfParam
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfParam(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedTypeInfo
+ * name:         eSelector_getSelectedTypeInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedTypeInfo(CELLIDX idx, char_t* name, int_t max_len, int8_t* kind)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfType
+ * name:         eSelector_selectTypeInfoOfType
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectTypeInfoOfType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfType(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedRegionInfo
+ * name:         eSelector_getSelectedRegionInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelectedRegionInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedRegionInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_cell)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCellInfo
+ * name:         eSelector_selectCellInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectCellInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCellInfo(CELLIDX idx, int_t i)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelecteCellInfo
+ * name:         eSelector_getSelecteCellInfo
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getSelecteCellInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelecteCellInfo(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCelltypeInfoOfCell
+ * name:         eSelector_selectCelltypeInfoOfCell
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_selectCelltypeInfoOfCell
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCelltypeInfoOfCell(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getAttrValue
+ * name:         eSelector_getAttrValue
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getAttrValue
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getAttrValue(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getAttrSizeIsValue
+ * name:         eSelector_getAttrSizeIsValue
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getAttrSizeIsValue
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getAttrSizeIsValue(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getVarValue
+ * name:         eSelector_getVarValue
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getVarValue
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getVarValue(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getVarSizeIsValue
+ * name:         eSelector_getVarSizeIsValue
+ * global_name:  nTECSInfo_tTECSInfoAccessor_eSelector_getVarSizeIsValue
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getVarSizeIsValue(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfoSub.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfoSub.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfoSub.c	(revision 429)
@@ -0,0 +1,526 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name_len         int32_t          ATTR_name_len   
+ * path_len         int32_t          ATTR_path_len   
+ * name1            char_t*          VAR_name1       
+ * name2            char_t*          VAR_name2       
+ * path             char_t*          VAR_path        
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cNamespaceInfo signature: nTECSInfo_sNamespaceInfo context:task
+ *   ER             cNamespaceInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cNamespaceInfo_getNameLength( );
+ *   uint32_t       cNamespaceInfo_getNNamespace( );
+ *   ER             cNamespaceInfo_getNamespaceInfo( uint32_t ith, Descriptor( nTECSInfo_sNamespaceInfo )* des );
+ *   uint32_t       cNamespaceInfo_getNSignature( );
+ *   ER             cNamespaceInfo_getSignatureInfo( uint32_t ith, Descriptor( nTECSInfo_sSignatureInfo )* des );
+ *   uint32_t       cNamespaceInfo_getNCelltype( );
+ *   ER             cNamespaceInfo_getCelltypeInfo( uint32_t ith, Descriptor( nTECSInfo_sCelltypeInfo )* des );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sNamespaceInfo ) cNamespaceInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sNamespaceInfo ) cNamespaceInfo_ref_desc()      (same as above; abbreviated version);
+ * call port: cRegionInfo signature: nTECSInfo_sRegionInfo context:task
+ *   ER             cRegionInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cRegionInfo_getNameLength( );
+ *   uint32_t       cRegionInfo_getNCell( );
+ *   ER             cRegionInfo_getCellInfo( uint32_t ith, Descriptor( nTECSInfo_sCellInfo )* des );
+ *   uint32_t       cRegionInfo_getNRegion( );
+ *   ER             cRegionInfo_getRegionInfo( uint32_t ith, Descriptor( nTECSInfo_sRegionInfo )* des );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sRegionInfo ) cRegionInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sRegionInfo ) cRegionInfo_ref_desc()      (same as above; abbreviated version);
+ * call port: cNamespaceInfoTemp signature: nTECSInfo_sNamespaceInfo context:task optional:true
+ *   bool_t     is_cNamespaceInfoTemp_joined()                     check if joined
+ *   ER             cNamespaceInfoTemp_getName( char_t* name, int_t max_len );
+ *   uint16_t       cNamespaceInfoTemp_getNameLength( );
+ *   uint32_t       cNamespaceInfoTemp_getNNamespace( );
+ *   ER             cNamespaceInfoTemp_getNamespaceInfo( uint32_t ith, Descriptor( nTECSInfo_sNamespaceInfo )* des );
+ *   uint32_t       cNamespaceInfoTemp_getNSignature( );
+ *   ER             cNamespaceInfoTemp_getSignatureInfo( uint32_t ith, Descriptor( nTECSInfo_sSignatureInfo )* des );
+ *   uint32_t       cNamespaceInfoTemp_getNCelltype( );
+ *   ER             cNamespaceInfoTemp_getCelltypeInfo( uint32_t ith, Descriptor( nTECSInfo_sCelltypeInfo )* des );
+ *   [dynamic, optional]
+ *      void           cNamespaceInfoTemp_set_descriptor( Descriptor( nTECSInfo_sNamespaceInfo ) desc );
+ *      void           cNamespaceInfoTemp_unjoin(  );
+ * call port: cRegionInfoTemp signature: nTECSInfo_sRegionInfo context:task optional:true
+ *   bool_t     is_cRegionInfoTemp_joined()                     check if joined
+ *   ER             cRegionInfoTemp_getName( char_t* name, int_t max_len );
+ *   uint16_t       cRegionInfoTemp_getNameLength( );
+ *   uint32_t       cRegionInfoTemp_getNCell( );
+ *   ER             cRegionInfoTemp_getCellInfo( uint32_t ith, Descriptor( nTECSInfo_sCellInfo )* des );
+ *   uint32_t       cRegionInfoTemp_getNRegion( );
+ *   ER             cRegionInfoTemp_getRegionInfo( uint32_t ith, Descriptor( nTECSInfo_sRegionInfo )* des );
+ *   [dynamic, optional]
+ *      void           cRegionInfoTemp_set_descriptor( Descriptor( nTECSInfo_sRegionInfo ) desc );
+ *      void           cRegionInfoTemp_unjoin(  );
+ * call port: cCelltypeInfoTemp signature: nTECSInfo_sCelltypeInfo context:task optional:true
+ *   bool_t     is_cCelltypeInfoTemp_joined()                     check if joined
+ *   ER             cCelltypeInfoTemp_getName( char_t* name, int_t max_len );
+ *   uint16_t       cCelltypeInfoTemp_getNameLength( );
+ *   uint32_t       cCelltypeInfoTemp_getNAttr( );
+ *   ER             cCelltypeInfoTemp_getAttrInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfoTemp_getNVar( );
+ *   ER             cCelltypeInfoTemp_getVarInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfoTemp_getNCall( );
+ *   ER             cCelltypeInfoTemp_getCallInfo( uint32_t ith, Descriptor( nTECSInfo_sCallInfo )* desc );
+ *   uint32_t       cCelltypeInfoTemp_getNEntry( );
+ *   ER             cCelltypeInfoTemp_getEntryInfo( uint32_t ith, Descriptor( nTECSInfo_sEntryInfo )* desc );
+ *   bool_t         cCelltypeInfoTemp_isSingleton( );
+ *   bool_t         cCelltypeInfoTemp_isIDX_is_ID( );
+ *   uint32_t       cCelltypeInfoTemp_sizeOfCB( );
+ *   uint32_t       cCelltypeInfoTemp_sizeOfINIB( );
+ *   [dynamic, optional]
+ *      void           cCelltypeInfoTemp_set_descriptor( Descriptor( nTECSInfo_sCelltypeInfo ) desc );
+ *      void           cCelltypeInfoTemp_unjoin(  );
+ * call port: cCellInfoTemp signature: nTECSInfo_sCellInfo context:task optional:true
+ *   bool_t     is_cCellInfoTemp_joined()                     check if joined
+ *   ER             cCellInfoTemp_getName( char_t* name, int_t max_len );
+ *   uint16_t       cCellInfoTemp_getNameLength( );
+ *   uint32_t       cCellInfoTemp_getNRawEntryDescriptorInfo( );
+ *   ER             cCellInfoTemp_getRawEntryDescriptorInfo( int_t index, Descriptor( nTECSInfo_sRawEntryDescriptorInfo )* desc );
+ *   void           cCellInfoTemp_getCelltypeInfo( Descriptor( nTECSInfo_sCelltypeInfo )* desc );
+ *   void           cCellInfoTemp_getCBP( void** cbp );
+ *   void           cCellInfoTemp_getINIBP( void** inibp );
+ *   [dynamic, optional]
+ *      void           cCellInfoTemp_set_descriptor( Descriptor( nTECSInfo_sCellInfo ) desc );
+ *      void           cCellInfoTemp_unjoin(  );
+ * call port: cEntryInfoTemp signature: nTECSInfo_sEntryInfo context:task optional:true
+ *   bool_t     is_cEntryInfoTemp_joined()                     check if joined
+ *   ER             cEntryInfoTemp_getName( char_t* name, int_t max_len );
+ *   uint16_t       cEntryInfoTemp_getNameLength( );
+ *   void           cEntryInfoTemp_getSignatureInfo( Descriptor( nTECSInfo_sSignatureInfo )* desc );
+ *   uint32_t       cEntryInfoTemp_getArraySize( );
+ *   bool_t         cEntryInfoTemp_isInline( );
+ *   [dynamic, optional]
+ *      void           cEntryInfoTemp_set_descriptor( Descriptor( nTECSInfo_sEntryInfo ) desc );
+ *      void           cEntryInfoTemp_unjoin(  );
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tTECSInfoSub_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+static ER
+separate_basename( const char_t **namespace_path, char_t **basename );
+
+
+/*
+ * VAR_name1 … 引数として渡されたものをコピーする。ただし、途中の '::' を '\0' に書き換えることはある。
+ * VAR_name2 … 都度上書きして使用する
+ */
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTECSInfo
+ * entry port: eTECSInfo
+ * signature:  nTECSInfo_sTECSInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findNamespace
+ * name:         eTECSInfo_findNamespace
+ * global_name:  nTECSInfo_tTECSInfoSub_eTECSInfo_findNamespace
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTECSInfo_findNamespace(const char_t* namespace_path, Descriptor( nTECSInfo_sNamespaceInfo )* nsDesc)
+{
+    const char_t  *p = namespace_path;
+    char_t  *p2;
+    Descriptor( nTECSInfo_sNamespaceInfo ) desc, desc2;
+    int     i;
+    int     n;
+
+    if( p[ 0 ] == ':' && p[ 1 ] == ':' ){
+        p += 2;
+    }
+    desc = cNamespaceInfo_refer_to_descriptor(); // root name space
+    while( *p != '\0' ){
+        p2 = VAR_name1;
+        for( i = 0; i < ATTR_name_len; i++ ){
+            if( *p == '\0' ||  *p == ':' ){
+                *p2 = '\0';
+                break;
+            }
+            *p2++ = *p++;
+        }
+        if( i == ATTR_name_len )
+            return E_NORES;
+
+        desc2 = desc;
+        cNamespaceInfoTemp_set_descriptor( desc2 );
+        n = cNamespaceInfoTemp_getNNamespace( );
+        for( i = 0; i < n; i++ ){
+            cNamespaceInfoTemp_set_descriptor( desc2 );
+            cNamespaceInfoTemp_getNamespaceInfo( i, &desc );
+            cNamespaceInfoTemp_set_descriptor( desc );
+            cNamespaceInfoTemp_getName( VAR_name2, ATTR_name_len );
+            if( strcmp( VAR_name1, VAR_name2 ) == 0 )
+                break;
+        }
+        if( i == n )
+            return E_NOID;
+
+        if( p[ 0 ] == ':' ){
+            if( p[ 1 ] == ':' )
+                p += 2;
+            else
+                return E_OBJ;
+        }
+    }
+    *nsDesc = desc;
+    return E_OK;
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findRegion
+ * name:         eTECSInfo_findRegion
+ * global_name:  nTECSInfo_tTECSInfoSub_eTECSInfo_findRegion
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTECSInfo_findRegion(const char_t* namespace_path, Descriptor( nTECSInfo_sRegionInfo )* regionDesc)
+{
+    const char_t  *p = namespace_path;
+    char_t  *p2;
+    Descriptor( nTECSInfo_sRegionInfo ) desc, desc2;
+    int     i;
+    int     n;
+
+    if( p[ 0 ] == ':' && p[ 1 ] == ':' ){
+        p += 2;
+    }
+    desc = cRegionInfo_refer_to_descriptor();
+    while( *p != '\0' ){
+        p2 = VAR_name1;
+        for( i = 0; i < ATTR_name_len; i++ ){
+            if( *p == '\0' ||  *p == ':' ){
+                *p2 = '\0';
+                break;
+            }
+            *p2++ = *p++;
+        }
+        if( i == ATTR_name_len )
+            return E_NORES;
+
+        desc2 = desc;
+        cRegionInfoTemp_set_descriptor( desc2 );
+        n = cRegionInfoTemp_getNRegion( );
+        for( i = 0; i < n; i++ ){
+            // syslog_3( LOG_NOTICE, "tTECSInfo.eTECSInfo.findRegion 2 %s i=%d n=%d", VAR_name1, i, n );
+            cRegionInfoTemp_set_descriptor( desc2 );
+            cRegionInfoTemp_getRegionInfo( i, &desc );
+            cRegionInfoTemp_set_descriptor( desc );
+            cRegionInfoTemp_getName( VAR_name2, ATTR_name_len );
+            if( strcmp( VAR_name1, VAR_name2 ) == 0 )
+                break;
+        }
+        if( i == n )
+            return E_NOID;
+
+        if( p[ 0 ] == ':' ){
+            if( p[ 1 ] == ':' )
+                p += 2;
+            else
+                return E_OBJ;
+        }
+    }
+    *regionDesc = desc;
+    return E_OK;
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findSignature
+ * name:         eTECSInfo_findSignature
+ * global_name:  nTECSInfo_tTECSInfoSub_eTECSInfo_findSignature
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTECSInfo_findSignature(const char_t* namespace_path, Descriptor( nTECSInfo_sSignatureInfo )* signatureDesc)
+{
+    Descriptor( nTECSInfo_sNamespaceInfo ) nsDesc;
+    Descriptor( nTECSInfo_sSignatureInfo ) desc;
+    ER        ercd;
+    char_t    *pname;
+    int       i, n;
+
+    ercd = separate_basename( &namespace_path, &pname );
+    if( ercd != E_OK )
+        return ercd;
+
+    ercd = eTECSInfo_findNamespace( namespace_path, &nsDesc);
+    if( ercd != E_OK )
+        return ercd;
+
+    // syslog_0( LOG_NOTICE, "tTECSInfo.eTECSInfo.findCell 4" );
+    cNamespaceInfoTemp_set_descriptor( nsDesc );
+    n = cNamespaceInfoTemp_getNSignature( );
+    for( i = 0; i < n; i++ ){
+        cNamespaceInfoTemp_getSignatureInfo( i, &desc );
+        cSignatureInfoTemp_set_descriptor( desc );
+        cSignatureInfoTemp_getName( VAR_name1, ATTR_name_len );
+        if( strcmp( pname, VAR_name1 ) == 0 )
+            break;
+    }
+    // syslog_0( LOG_NOTICE, "tTECSInfo.eTECSInfo.findCell 5" );
+    if( i == n )
+        return E_NOEXS;
+
+    *signatureDesc = desc;
+    return E_OK;
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findCelltype
+ * name:         eTECSInfo_findCelltype
+ * global_name:  nTECSInfo_tTECSInfoSub_eTECSInfo_findCelltype
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTECSInfo_findCelltype(const char_t* namespace_path, Descriptor( nTECSInfo_sCelltypeInfo )* celltypeDesc)
+{
+  return E_NOSPT;
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findCell
+ * name:         eTECSInfo_findCell
+ * global_name:  nTECSInfo_tTECSInfoSub_eTECSInfo_findCell
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTECSInfo_findCell(const char_t* namespace_path, Descriptor( nTECSInfo_sCellInfo )* cellDesc)
+{
+    char_t  *p, *pname;
+    Descriptor( nTECSInfo_sRegionInfo ) RegionDesc;
+    Descriptor( nTECSInfo_sCellInfo )   desc;
+    int     i, n, len;
+    ER      ercd;
+
+#if 0
+    // syslog_0( LOG_NOTICE, "tTECSInfo.eTECSInfo.findCell 1" );
+    len = strnlen( namespace_path, ATTR_path_len );
+    if( len >= ATTR_path_len ){
+        return E_NOMEM;
+    }
+    if( VAR_path != namespace_path )     // findRawEntryDescriptorInfo から呼ばれた時、VAR_path に入っているのでコピー不要
+        strcpy( VAR_path, namespace_path );
+    p = &VAR_path[ len - 1 ];
+    while( p > VAR_path ){
+        if( *p == ':' )
+            break;
+        p--;
+    }
+    if( *p == ':' ){
+        p--;
+        if( p < VAR_path || *p != ':' )
+            return E_PAR;    // :: ではなく、: であった
+        if( p == VAR_path ){
+            namespace_path = "::";
+        }
+        else{
+            *p = '\0';
+            namespace_path = VAR_path;
+        }
+        pname = &p[2];
+    }
+    else{
+        namespace_path = "::";
+        pname = VAR_path;
+    }
+#endif
+    ercd = separate_basename( &namespace_path, &pname );
+    if( ercd != E_OK )
+        return ercd;
+
+    // syslog_2( LOG_NOTICE, "tTECSInfo.eTECSInfo.findCell 2 %s %s", namespace_path, pname );
+    
+    // syslog_0( LOG_NOTICE, "tTECSInfo.eTECSInfo.findCell 3" );
+    ercd = eTECSInfo_findRegion( namespace_path, &RegionDesc);
+    if( ercd != E_OK )
+        return ercd;
+
+    // syslog_0( LOG_NOTICE, "tTECSInfo.eTECSInfo.findCell 4" );
+    cRegionInfoTemp_set_descriptor( RegionDesc );
+    n = cRegionInfoTemp_getNCell( );
+    for( i = 0; i < n; i++ ){
+        cRegionInfoTemp_getCellInfo( i, &desc );
+        cCellInfoTemp_set_descriptor( desc );
+        cCellInfoTemp_getName( VAR_name1, ATTR_name_len );
+        if( strcmp( pname, VAR_name1 ) == 0 )
+            break;
+    }
+    // syslog_0( LOG_NOTICE, "tTECSInfo.eTECSInfo.findCell 5" );
+    if( i == n )
+        return E_NOEXS;
+
+    *cellDesc = desc;
+    return E_OK;
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findRawEntryDescriptor
+ * name:         eTECSInfo_findRawEntryDescriptor
+ * global_name:  nTECSInfo_tTECSInfoSub_eTECSInfo_findRawEntryDescriptor
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTECSInfo_findRawEntryDescriptor(const char_t* namespace_path, int_t ith, Descriptor( nTECSInfo_sRawEntryDescriptorInfo )* rawEntryDescDesc, Descriptor( nTECSInfo_sEntryInfo )* entryDesc)
+{
+    int_t  len;
+    Descriptor( nTECSInfo_sCelltypeInfo )  celltypeDesc;
+    Descriptor( nTECSInfo_sCellInfo )      cellDesc;
+    Descriptor( nTECSInfo_sEntryInfo )     entDesc;
+    char_t *p;
+    int_t  i, n;
+    ER     ercd;
+
+    len = strnlen( namespace_path, ATTR_path_len );
+    if( len >= ATTR_path_len ){
+        return E_NOMEM;
+    }
+    strcpy( VAR_path, namespace_path );
+    p = &VAR_path[len-1];
+    while( *p != '.' && p != &VAR_path[0] )
+        p--;
+    if( *p != '.' )
+        return E_PAR;    // '.' が見つからない
+    *p = '\0';
+    ercd = eTECSInfo_findCell( VAR_path, &cellDesc);
+    if( ercd != E_OK )
+        return ercd;
+    cCellInfoTemp_set_descriptor( cellDesc );
+    cCellInfoTemp_getCelltypeInfo( &celltypeDesc  );
+    cCelltypeInfoTemp_set_descriptor( celltypeDesc );
+    n = cCelltypeInfoTemp_getNEntry();
+    p += 1;
+    //syslog_1( LOG_NOTICE, "tTECSInfo.eTECSInfo.findRawEntryDescriptor 4 n_entry=%d", n );
+    // dly_tsk( 10000 );
+    for( i = 0; i < n; i++ ){
+        ercd = cCelltypeInfoTemp_getEntryInfo( i, &entDesc ); // エラーはみない
+        //syslog_2( LOG_NOTICE, "tTECSInfo.eTECSInfo.findRawEntryDescriptor 5 ercd=%d entDesc=%x", ercd, entDesc.vdes );
+        cEntryInfoTemp_set_descriptor( entDesc );
+        ercd = cEntryInfoTemp_getName( VAR_name1, ATTR_name_len );
+        //dly_tsk( 5 );
+        //syslog_4( LOG_NOTICE, "tTECSInfo.eTECSInfo.findRawEntryDescriptor 6 ercd=%d entDesc=%x nm=%s p=%s", ercd, entDesc.vdes, VAR_name1, p );
+        //dly_tsk( 5 );
+        if( ercd != E_OK )
+            return ercd;
+        if( strcmp( VAR_name1, p ) == 0 )
+            break;
+    }
+    if( i != n ){
+        cCellInfoTemp_getRawEntryDescriptorInfo( ith, rawEntryDescDesc );
+        *entryDesc = entDesc;
+    }
+    else{
+        ercd = E_NOEXS;
+    }
+    return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findRawEntryDescriptor_unsafe
+ * name:         eTECSInfo_findRawEntryDescriptor_unsafe
+ * global_name:  nTECSInfo_tTECSInfoSub_eTECSInfo_findRawEntryDescriptor_unsafe
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTECSInfo_findRawEntryDescriptor_unsafe(const char_t* namespace_path, void** rawDesc)
+{
+    ER   ercd;
+    Descriptor( nTECSInfo_sRawEntryDescriptorInfo ) rawEntryDescDesc;
+    Descriptor( nTECSInfo_sEntryInfo ) entryDesc;
+    ercd = eTECSInfo_findRawEntryDescriptor(namespace_path, 0, &rawEntryDescDesc, &entryDesc);
+    if( ercd != E_OK )
+        return ercd;
+    cRawEntryDescriptorInfoTemp_set_descriptor( rawEntryDescDesc );
+    ercd = cRawEntryDescriptorInfoTemp_getRawDescriptor( 0, rawDesc );
+    return ercd;
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
+
+/*
+ * namespace_path を VAR_path へコピーし、ディレクトリパス部とオブジェクト名部に分割する
+ * namespace_path  "::namespace::subnamespace::object_name"
+ * VAR_path        "::namespace::subnamespace\0:object_name"   一番右の '::' を '\0:' に置き換える
+ * basename        "object_name" へのポインタを返す
+ */
+static ER
+separate_basename( const char_t **namespace_path, char_t **basename )
+{
+    int     i, len;
+    char_t  *p;
+    static const char_t *root_namespacepath = "::";
+
+    len = strnlen( *namespace_path, ATTR_path_len );
+    if( len >= ATTR_path_len ){
+        return E_NOMEM;
+    }
+    if( VAR_path != *namespace_path )     // findRawEntryDescriptorInfo から呼ばれた時、VAR_path に入っているのでコピー不要
+        strcpy( VAR_path, *namespace_path );
+    p = &VAR_path[ len - 1 ];
+    while( p > VAR_path ){
+        if( *p == ':' )
+            break;
+        p--;
+    }
+    if( *p == ':' ){
+        p--;
+        if( p < VAR_path || *p != ':' )
+            return E_PAR;    // :: ではなく、: であった
+        if( p == VAR_path ){
+            *namespace_path = root_namespacepath;
+        }
+        else{
+            *p = '\0';
+            *namespace_path = VAR_path;
+        }
+        *basename = &p[2];
+    }
+    else{
+        *namespace_path = root_namespacepath;
+        *basename = VAR_path;
+    }
+    return  E_OK;
+}
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfo_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfo_inline.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTECSInfo_inline.h	(revision 429)
@@ -0,0 +1,149 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef nTECSInfo_tTECSInfo__INLINE_H
+#define nTECSInfo_tTECSInfo__INLINE_H
+
+/*
+ * This file was automatically generated by tecsgen.
+ * Move and rename like below before editing,
+ *   gen/tTECSInfo_inline_template.h => src/tTECSInfo_inline.h
+ * to avoid to be overwritten by tecsgen.
+ */
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTECSInfo signature: nTECSInfo_sTECSInfo context:task
+ *   ER             cTECSInfo_findNamespace( const char_t* namespace_path, Descriptor( nTECSInfo_sNamespaceInfo )* nsDesc );
+ *   ER             cTECSInfo_findRegion( const char_t* namespace_path, Descriptor( nTECSInfo_sRegionInfo )* regionDesc );
+ *   ER             cTECSInfo_findSignature( const char_t* namespace_path, Descriptor( nTECSInfo_sSignatureInfo )* signatureDesc );
+ *   ER             cTECSInfo_findCelltype( const char_t* namespace_path, Descriptor( nTECSInfo_sCelltypeInfo )* celltypeDesc );
+ *   ER             cTECSInfo_findCell( const char_t* namespace_path, Descriptor( nTECSInfo_sCellInfo )* cellDesc );
+ *   ER             cTECSInfo_findRawEntryDescriptor( const char_t* namespace_path, Descriptor( nTECSInfo_sRawEntryDescriptorInfo )* rawEntryDescDesc, Descriptor( nTECSInfo_sEntryInfo )* entryDesc );
+ *   ER             cTECSInfo_findRawEntryDescriptor_unsafe( const char_t* namespace_path, void** rawDesc );
+ *
+ * #[</PREAMBLE>]# */
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTECSInfo
+ * entry port: eTECSInfo
+ * signature:  nTECSInfo_sTECSInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findNamespace
+ * name:         eTECSInfo_findNamespace
+ * global_name:  nTECSInfo_tTECSInfo_eTECSInfo_findNamespace
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eTECSInfo_findNamespace(const char_t* namespace_path, Descriptor( nTECSInfo_sNamespaceInfo )* nsDesc)
+{
+    return cTECSInfo_findNamespace( namespace_path, nsDesc );
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findRegion
+ * name:         eTECSInfo_findRegion
+ * global_name:  nTECSInfo_tTECSInfo_eTECSInfo_findRegion
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eTECSInfo_findRegion(const char_t* namespace_path, Descriptor( nTECSInfo_sRegionInfo )* regionDesc)
+{
+    return cTECSInfo_findRegion( namespace_path, regionDesc );
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findSignature
+ * name:         eTECSInfo_findSignature
+ * global_name:  nTECSInfo_tTECSInfo_eTECSInfo_findSignature
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eTECSInfo_findSignature(const char_t* namespace_path, Descriptor( nTECSInfo_sSignatureInfo )* signatureDesc)
+{
+    return cTECSInfo_findSignature( namespace_path, signatureDesc );
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findCelltype
+ * name:         eTECSInfo_findCelltype
+ * global_name:  nTECSInfo_tTECSInfo_eTECSInfo_findCelltype
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eTECSInfo_findCelltype(const char_t* namespace_path, Descriptor( nTECSInfo_sCelltypeInfo )* celltypeDesc)
+{
+  return cTECSInfo_findCelltype( namespace_path, celltypeDesc );
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findCell
+ * name:         eTECSInfo_findCell
+ * global_name:  nTECSInfo_tTECSInfo_eTECSInfo_findCell
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eTECSInfo_findCell(const char_t* namespace_path, Descriptor( nTECSInfo_sCellInfo )* cellDesc)
+{
+  return cTECSInfo_findCell( namespace_path, cellDesc );
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findRawEntryDescriptor
+ * name:         eTECSInfo_findRawEntryDescriptor
+ * global_name:  nTECSInfo_tTECSInfo_eTECSInfo_findRawEntryDescriptor
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eTECSInfo_findRawEntryDescriptor(const char_t* namespace_path, int_t ith, Descriptor( nTECSInfo_sRawEntryDescriptorInfo )* rawEntryDescDesc, Descriptor( nTECSInfo_sEntryInfo )* entryDesc)
+{
+    return cTECSInfo_findRawEntryDescriptor(namespace_path, ith, rawEntryDescDesc, entryDesc);
+}
+
+/* #[<ENTRY_FUNC>]# eTECSInfo_findRawEntryDescriptor_unsafe
+ * name:         eTECSInfo_findRawEntryDescriptor_unsafe
+ * global_name:  nTECSInfo_tTECSInfo_eTECSInfo_findRawEntryDescriptor_unsafe
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eTECSInfo_findRawEntryDescriptor_unsafe(const char_t* namespace_path, void** rawDesc)
+{
+    return cTECSInfo_findRawEntryDescriptor_unsafe(namespace_path, rawDesc);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
+
+#endif /* nTECSInfo_tTECSInfo_INLINEH */
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tTypeInfo.c	(revision 429)
@@ -0,0 +1,202 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * bitSize          int32_t          ATTR_bitSize    
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTypeInfo signature: nTECSInfo_sTypeInfo context:task optional:true
+ *   bool_t     is_cTypeInfo_joined()                     check if joined
+ *   ER             cTypeInfo_getName( char_t* name, int_t max_len );
+ *   void           cTypeInfo_getNameLength( uint16_t* len );
+ *   void           cTypeInfo_getSize( uint32_t* size );
+ *   void           cTypeInfo_getKind( int8_t* kind );
+ *   void           cTypeInfo_getNType( int32_t* num );
+ *   void           cTypeInfo_getTypeInfo( int32_t ith, Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eTypeInfo_getNameLength(CELLIDX idx, uint16_t* len)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eTypeInfo_getSize(CELLIDX idx, uint32_t* size)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eTypeInfo_getKind(CELLIDX idx, int8_t* kind)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eTypeInfo_getNType(CELLIDX idx, int32_t* num)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eTypeInfo_getTypeInfo(CELLIDX idx, int32_t ith, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tVarDeclInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tVarDeclInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tVarDeclInfo.c	(revision 429)
@@ -0,0 +1,213 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * sizeIsExpr       char_t*          ATTR_sizeIsExpr 
+ * declType         int8_t           ATTR_declType   
+ * place            int8_t           ATTR_place      
+ * offset           uint32_t         ATTR_offset     
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTypeInfo signature: nTECSInfo_sTypeInfo context:task
+ *   ER             cTypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cTypeInfo_getNameLength( );
+ *   uint32_t       cTypeInfo_getSize( );
+ *   int8_t         cTypeInfo_getKind( );
+ *   uint32_t       cTypeInfo_getNType( );
+ *   ER             cTypeInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cTypeInfo_getNMember( );
+ *   ER             cTypeInfo_getMemberInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   [ref_desc]
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_refer_to_descriptor();
+ *      Descriptor( nTECSInfo_sTypeInfo ) cTypeInfo_ref_desc()      (same as above; abbreviated version);
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tVarDeclInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eVarDeclInfo
+ * entry port: eVarDeclInfo
+ * signature:  nTECSInfo_sVarDeclInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eVarDeclInfo_getName
+ * name:         eVarDeclInfo_getName
+ * global_name:  nTECSInfo_tVarDeclInfo_eVarDeclInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eVarDeclInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eVarDeclInfo_getNameLength
+ * name:         eVarDeclInfo_getNameLength
+ * global_name:  nTECSInfo_tVarDeclInfo_eVarDeclInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eVarDeclInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eVarDeclInfo_getLocationInfo
+ * name:         eVarDeclInfo_getLocationInfo
+ * global_name:  nTECSInfo_tVarDeclInfo_eVarDeclInfo_getLocationInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eVarDeclInfo_getLocationInfo(CELLIDX idx, uint32_t* offset, int8_t* place)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  *offset = ATTR_offset;
+  *place  = ATTR_place;
+}
+
+/* #[<ENTRY_FUNC>]# eVarDeclInfo_getTypeInfo
+ * name:         eVarDeclInfo_getTypeInfo
+ * global_name:  nTECSInfo_tVarDeclInfo_eVarDeclInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eVarDeclInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  *desc = cTypeInfo_refer_to_descriptor();
+}
+
+/* #[<ENTRY_FUNC>]# eVarDeclInfo_getSizeIsExpr
+ * name:         eVarDeclInfo_getSizeIsExpr
+ * global_name:  nTECSInfo_tVarDeclInfo_eVarDeclInfo_getSizeIsExpr
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eVarDeclInfo_getSizeIsExpr(CELLIDX idx, char_t* expr_str, int32_t max_len)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  strncpy( expr_str, ATTR_sizeIsExpr, max_len - 1 );
+  expr_str[ max_len - 1 ] = '\0';
+}
+
+/* #[<ENTRY_FUNC>]# eVarDeclInfo_getSizeIs
+ * name:         eVarDeclInfo_getSizeIs
+ * global_name:  nTECSInfo_tVarDeclInfo_eVarDeclInfo_getSizeIs
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eVarDeclInfo_getSizeIs(CELLIDX idx, uint32_t* size, const void* p_cb)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  ercd = E_NOSPT;
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tVoidTypeInfo.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tVoidTypeInfo.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/nTECSInfo_tVoidTypeInfo.c	(revision 429)
@@ -0,0 +1,237 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * name             char_t*          ATTR_name       
+ * typeKind         int8_t           ATTR_typeKind   
+ * size             uint32_t         ATTR_size       
+ * b_const          bool_t           ATTR_b_const    
+ * b_volatile       bool_t           ATTR_b_volatile 
+ *
+ * #[</PREAMBLE>]# */
+
+/* Put prototype declaration and/or variale definition here #_PAC_# */
+#include <string.h>
+#include "nTECSInfo_tVoidTypeInfo_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* entry port function #_TEPF_# */
+/* #[<ENTRY_PORT>]# eTypeInfo
+ * entry port: eTypeInfo
+ * signature:  nTECSInfo_sTypeInfo
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getName
+ * name:         eTypeInfo_getName
+ * global_name:  nTECSInfo_tVoidTypeInfo_eTypeInfo_getName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getName(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	name[ max_len - 1 ] = '\0';
+	strncpy( name, ATTR_name, max_len );
+  if( name[ max_len - 1 ] ){
+      name[ max_len - 1 ] = '\0';
+      ercd = E_NOMEM;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNameLength
+ * name:         eTypeInfo_getNameLength
+ * global_name:  nTECSInfo_tVoidTypeInfo_eTypeInfo_getNameLength
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint16_t
+eTypeInfo_getNameLength(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+	return strlen( ATTR_name ) + 1;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getSize
+ * name:         eTypeInfo_getSize
+ * global_name:  nTECSInfo_tVoidTypeInfo_eTypeInfo_getSize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getSize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return ATTR_size;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getKind
+ * name:         eTypeInfo_getKind
+ * global_name:  nTECSInfo_tVoidTypeInfo_eTypeInfo_getKind
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int8_t
+eTypeInfo_getKind(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return ATTR_typeKind;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNType
+ * name:         eTypeInfo_getNType
+ * global_name:  nTECSInfo_tVoidTypeInfo_eTypeInfo_getNType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNType(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return 0;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getTypeInfo
+ * name:         eTypeInfo_getTypeInfo
+ * global_name:  nTECSInfo_tVoidTypeInfo_eTypeInfo_getTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getTypeInfo(CELLIDX idx, Descriptor( nTECSInfo_sTypeInfo )* desc)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* Write error processing code here */
+	} /* end if VALID_IDX(idx) */
+
+	/* Put statements here #_TEFB_# */
+  return E_NOEXS;
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getNMember
+ * name:         eTypeInfo_getNMember
+ * global_name:  nTECSInfo_tVoidTypeInfo_eTypeInfo_getNMember
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+uint32_t
+eTypeInfo_getNMember(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+}
+
+/* #[<ENTRY_FUNC>]# eTypeInfo_getMemberInfo
+ * name:         eTypeInfo_getMemberInfo
+ * global_name:  nTECSInfo_tVoidTypeInfo_eTypeInfo_getMemberInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eTypeInfo_getMemberInfo(CELLIDX idx, uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/tTECSInfoAccessor.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/tTECSInfoAccessor.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/tTECSInfoAccessor.c	(revision 429)
@@ -0,0 +1,1613 @@
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * NAME_LEN         int16_t          ATTR_NAME_LEN   
+ * name             char_t*          VAR_name        
+ * name2            char_t*          VAR_name2       
+ * selectedCbp      int8_t*          VAR_selectedCbp 
+ * selectedInibp    int8_t*          VAR_selectedInibp
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cTECSInfo signature: nTECSInfo_sTECSInfo context:task
+ *   ER             cTECSInfo_findNamespace( const char_t* namespace_path, Descriptor( nTECSInfo_sNamespaceInfo )* NSdesc );
+ *   ER             cTECSInfo_findRegion( const char_t* namespace_path, Descriptor( nTECSInfo_sRegionInfo )* RGNdesc );
+ *   ER             cTECSInfo_findSignature( const char_t* namespace_path, Descriptor( nTECSInfo_sSignatureInfo )* SIGdesc );
+ *   ER             cTECSInfo_findCelltype( const char_t* namespace_path, Descriptor( nTECSInfo_sCelltypeInfo )* CTdesc );
+ *   ER             cTECSInfo_findCell( const char_t* namespace_path, Descriptor( nTECSInfo_sCellInfo )* CELLdesc );
+ * call port: cNSInfo signature: nTECSInfo_sNamespaceInfo context:task optional:true
+ *   bool_t     is_cNSInfo_joined()                     check if joined
+ *   ER             cNSInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cNSInfo_getNameLength( );
+ *   uint32_t       cNSInfo_getNNamespace( );
+ *   ER             cNSInfo_getNamespaceInfo( uint32_t ith, Descriptor( nTECSInfo_sNamespaceInfo )* des );
+ *   uint32_t       cNSInfo_getNSignature( );
+ *   ER             cNSInfo_getSignatureInfo( uint32_t ith, Descriptor( nTECSInfo_sSignatureInfo )* des );
+ *   uint32_t       cNSInfo_getNCelltype( );
+ *   ER             cNSInfo_getCelltypeInfo( uint32_t ith, Descriptor( nTECSInfo_sCelltypeInfo )* des );
+ *   [dynamic, optional]
+ *      void           cNSInfo_set_descriptor( Descriptor( nTECSInfo_sNamespaceInfo ) desc );
+ *      void           cNSInfo_unjoin(  );
+ * call port: cCelltypeInfo signature: nTECSInfo_sCelltypeInfo context:task optional:true
+ *   bool_t     is_cCelltypeInfo_joined()                     check if joined
+ *   ER             cCelltypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cCelltypeInfo_getNameLength( );
+ *   uint32_t       cCelltypeInfo_getNAttr( );
+ *   ER             cCelltypeInfo_getAttrInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNVar( );
+ *   ER             cCelltypeInfo_getVarInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNCall( );
+ *   ER             cCelltypeInfo_getCallInfo( uint32_t ith, Descriptor( nTECSInfo_sCallInfo )* desc );
+ *   uint32_t       cCelltypeInfo_getNEntry( );
+ *   ER             cCelltypeInfo_getEntryInfo( uint32_t ith, Descriptor( nTECSInfo_sEntryInfo )* desc );
+ *   bool_t         cCelltypeInfo_isSingleton( );
+ *   bool_t         cCelltypeInfo_isIDX_is_ID( );
+ *   uint32_t       cCelltypeInfo_sizeOfCB( );
+ *   uint32_t       cCelltypeInfo_sizeOfINIB( );
+ *   [dynamic, optional]
+ *      void           cCelltypeInfo_set_descriptor( Descriptor( nTECSInfo_sCelltypeInfo ) desc );
+ *      void           cCelltypeInfo_unjoin(  );
+ * call port: cSignatureInfo signature: nTECSInfo_sSignatureInfo context:task optional:true
+ *   bool_t     is_cSignatureInfo_joined()                     check if joined
+ *   ER             cSignatureInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cSignatureInfo_getNameLength( );
+ *   uint32_t       cSignatureInfo_getNFunction( );
+ *   ER             cSignatureInfo_getFunctionInfo( uint32_t ith, Descriptor( nTECSInfo_sFunctionInfo )* desc );
+ *   [dynamic, optional]
+ *      void           cSignatureInfo_set_descriptor( Descriptor( nTECSInfo_sSignatureInfo ) desc );
+ *      void           cSignatureInfo_unjoin(  );
+ * call port: cFunctionInfo signature: nTECSInfo_sFunctionInfo context:task optional:true
+ *   bool_t     is_cFunctionInfo_joined()                     check if joined
+ *   ER             cFunctionInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cFunctionInfo_getNameLength( );
+ *   void           cFunctionInfo_getReturnTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cFunctionInfo_getNParam( );
+ *   ER             cFunctionInfo_getParamInfo( uint32_t ith, Descriptor( nTECSInfo_sParamInfo )* param );
+ *   [dynamic, optional]
+ *      void           cFunctionInfo_set_descriptor( Descriptor( nTECSInfo_sFunctionInfo ) desc );
+ *      void           cFunctionInfo_unjoin(  );
+ * call port: cParamInfo signature: nTECSInfo_sParamInfo context:task optional:true
+ *   bool_t     is_cParamInfo_joined()                     check if joined
+ *   ER             cParamInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cParamInfo_getNameLength( );
+ *   ER             cParamInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   ER             cParamInfo_getDir( int8_t* dir );
+ *   [dynamic, optional]
+ *      void           cParamInfo_set_descriptor( Descriptor( nTECSInfo_sParamInfo ) desc );
+ *      void           cParamInfo_unjoin(  );
+ * call port: cCallInfo signature: nTECSInfo_sCallInfo context:task optional:true
+ *   bool_t     is_cCallInfo_joined()                     check if joined
+ *   ER             cCallInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cCallInfo_getNameLength( );
+ *   void           cCallInfo_getSignatureInfo( Descriptor( nTECSInfo_sSignatureInfo )* desc );
+ *   uint32_t       cCallInfo_getArraySize( );
+ *   void           cCallInfo_getSpecifierInfo( bool_t* b_optional, bool_t* b_dynamic, bool_t* b_ref_desc, bool_t* b_omit );
+ *   void           cCallInfo_getInternalInfo( bool_t* b_allocator_port, bool_t* b_require_port );
+ *   void           cCallInfo_getLocationInfo( uint32_t* offset, int8_t* place );
+ *   void           cCallInfo_getOptimizeInfo( bool_t* b_VMT_useless, bool_t* b_skelton_useless, bool_t* b_cell_unique );
+ *   [dynamic, optional]
+ *      void           cCallInfo_set_descriptor( Descriptor( nTECSInfo_sCallInfo ) desc );
+ *      void           cCallInfo_unjoin(  );
+ * call port: cEntryInfo signature: nTECSInfo_sEntryInfo context:task optional:true
+ *   bool_t     is_cEntryInfo_joined()                     check if joined
+ *   ER             cEntryInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cEntryInfo_getNameLength( );
+ *   void           cEntryInfo_getSignatureInfo( Descriptor( nTECSInfo_sSignatureInfo )* desc );
+ *   uint32_t       cEntryInfo_getArraySize( );
+ *   bool_t         cEntryInfo_isInline( );
+ *   [dynamic, optional]
+ *      void           cEntryInfo_set_descriptor( Descriptor( nTECSInfo_sEntryInfo ) desc );
+ *      void           cEntryInfo_unjoin(  );
+ * call port: cAttrInfo signature: nTECSInfo_sVarDeclInfo context:task optional:true
+ *   bool_t     is_cAttrInfo_joined()                     check if joined
+ *   ER             cAttrInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cAttrInfo_getNameLength( );
+ *   void           cAttrInfo_getLocationInfo( uint32_t* offset, int8_t* place );
+ *   void           cAttrInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   void           cAttrInfo_getSizeIsExpr( char_t* expr_str, int32_t max_len );
+ *   ER             cAttrInfo_getSizeIs( uint32_t* size, const void* p_cb );
+ *   [dynamic, optional]
+ *      void           cAttrInfo_set_descriptor( Descriptor( nTECSInfo_sVarDeclInfo ) desc );
+ *      void           cAttrInfo_unjoin(  );
+ * call port: cVarInfo signature: nTECSInfo_sVarDeclInfo context:task optional:true
+ *   bool_t     is_cVarInfo_joined()                     check if joined
+ *   ER             cVarInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cVarInfo_getNameLength( );
+ *   void           cVarInfo_getLocationInfo( uint32_t* offset, int8_t* place );
+ *   void           cVarInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   void           cVarInfo_getSizeIsExpr( char_t* expr_str, int32_t max_len );
+ *   ER             cVarInfo_getSizeIs( uint32_t* size, const void* p_cb );
+ *   [dynamic, optional]
+ *      void           cVarInfo_set_descriptor( Descriptor( nTECSInfo_sVarDeclInfo ) desc );
+ *      void           cVarInfo_unjoin(  );
+ * call port: cTypeInfo signature: nTECSInfo_sTypeInfo context:task optional:true
+ *   bool_t     is_cTypeInfo_joined()                     check if joined
+ *   ER             cTypeInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cTypeInfo_getNameLength( );
+ *   uint32_t       cTypeInfo_getSize( );
+ *   int8_t         cTypeInfo_getKind( );
+ *   uint32_t       cTypeInfo_getNType( );
+ *   ER             cTypeInfo_getTypeInfo( Descriptor( nTECSInfo_sTypeInfo )* desc );
+ *   uint32_t       cTypeInfo_getNMember( );
+ *   ER             cTypeInfo_getMemberInfo( uint32_t ith, Descriptor( nTECSInfo_sVarDeclInfo )* desc );
+ *   [dynamic, optional]
+ *      void           cTypeInfo_set_descriptor( Descriptor( nTECSInfo_sTypeInfo ) desc );
+ *      void           cTypeInfo_unjoin(  );
+ * call port: cRegionInfo signature: nTECSInfo_sRegionInfo context:task optional:true
+ *   bool_t     is_cRegionInfo_joined()                     check if joined
+ *   ER             cRegionInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cRegionInfo_getNameLength( );
+ *   uint32_t       cRegionInfo_getNCell( );
+ *   ER             cRegionInfo_getCellInfo( uint32_t ith, Descriptor( nTECSInfo_sCellInfo )* des );
+ *   uint32_t       cRegionInfo_getNRegion( );
+ *   ER             cRegionInfo_getRegionInfo( uint32_t ith, Descriptor( nTECSInfo_sRegionInfo )* des );
+ *   [dynamic, optional]
+ *      void           cRegionInfo_set_descriptor( Descriptor( nTECSInfo_sRegionInfo ) desc );
+ *      void           cRegionInfo_unjoin(  );
+ * call port: cCellInfo signature: nTECSInfo_sCellInfo context:task optional:true
+ *   bool_t     is_cCellInfo_joined()                     check if joined
+ *   ER             cCellInfo_getName( char_t* name, int_t max_len );
+ *   uint16_t       cCellInfo_getNameLength( );
+ *   void           cCellInfo_getCelltypeInfo( Descriptor( nTECSInfo_sCelltypeInfo )* desc );
+ *   void           cCellInfo_getCBP( void** cbp );
+ *   void           cCellInfo_getINIBP( void** inibp );
+ *   [dynamic, optional]
+ *      void           cCellInfo_set_descriptor( Descriptor( nTECSInfo_sCellInfo ) desc );
+ *      void           cCellInfo_unjoin(  );
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include "tTECSInfoAccessor_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+static void
+getSelectedTypeValue( CELLCB *p_cellcb, void *ptr, char_t *buf, int_t max_len );
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eSelector
+ * entry port: eSelector
+ * signature:  sAccessor
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eSelector_selectNamespaceInfoByName
+ * name:         eSelector_selectNamespaceInfoByName
+ * global_name:  tTECSInfoAccessor_eSelector_selectNamespaceInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectNamespaceInfoByName(CELLIDX idx, const char_t* namespacePath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sNamespaceInfo ) NSdesc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  ercd = cTECSInfo_findNamespace( namespacePath, &NSdesc );
+  if( ercd == E_OK ){
+      cNSInfo_set_descriptor( NSdesc );
+  }
+  else {
+      cNSInfo_unjoin(  );
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCelltypeInfoByName
+ * name:         eSelector_selectCelltypeInfoByName
+ * global_name:  tTECSInfoAccessor_eSelector_selectCelltypeInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCelltypeInfoByName(CELLIDX idx, const char_t* namespacePath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sCelltypeInfo ) CTdesc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  ercd = cTECSInfo_findCelltype( namespacePath, &CTdesc );
+  if( ercd == E_OK ){
+      cCelltypeInfo_set_descriptor( CTdesc );
+  }
+  else {
+      cCelltypeInfo_unjoin(  );
+  }
+  
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectSignatureInfoByName
+ * name:         eSelector_selectSignatureInfoByName
+ * global_name:  tTECSInfoAccessor_eSelector_selectSignatureInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectSignatureInfoByName(CELLIDX idx, const char_t* namespacePath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sSignatureInfo ) SIGdesc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  ercd = cTECSInfo_findSignature( namespacePath, &SIGdesc );
+  if( ercd == E_OK ){
+      cSignatureInfo_set_descriptor( SIGdesc );
+  }
+  else {
+      cSignatureInfo_unjoin(  );
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectRegionInfoByName
+ * name:         eSelector_selectRegionInfoByName
+ * global_name:  tTECSInfoAccessor_eSelector_selectRegionInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectRegionInfoByName(CELLIDX idx, const char_t* regionPath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sRegionInfo ) RGNdesc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  ercd = cTECSInfo_findRegion( regionPath, &RGNdesc );
+  if( ercd == E_OK ){
+      cRegionInfo_set_descriptor( RGNdesc );
+  }
+  else {
+      cRegionInfo_unjoin(  );
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCellInfoByName
+ * name:         eSelector_selectCellInfoByName
+ * global_name:  tTECSInfoAccessor_eSelector_selectCellInfoByName
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCellInfoByName(CELLIDX idx, const char_t* cellPath)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sCellInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  ercd = cTECSInfo_findCell( cellPath, &desc );
+  if( ercd == E_OK ){
+      cCellInfo_set_descriptor( desc );
+  }
+  else {
+      cCellInfo_unjoin(  );
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedNamespaceInfo
+ * name:         eSelector_getSelectedNamespaceInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedNamespaceInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedNamespaceInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_namespace, int_t* num_celltype, int_t* num_signature)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cNSInfo_joined() ){
+      cNSInfo_getName( name, max_len );
+      *num_namespace = cNSInfo_getNNamespace( );
+      *num_signature = cNSInfo_getNSignature( );
+      *num_celltype  = cNSInfo_getNCelltype( );
+  }
+  else {
+      ercd = E_OBJ;      // cNSInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCelltypeInfo
+ * name:         eSelector_selectCelltypeInfo
+ * global_name:  tTECSInfoAccessor_eSelector_selectCelltypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCelltypeInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sCelltypeInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  cCelltypeInfo_unjoin(  );
+  if( is_cNSInfo_joined() ){
+      if( 0 <= ith && ith < cNSInfo_getNCelltype() ){
+          cNSInfo_getCelltypeInfo( ith, &desc );
+          cCelltypeInfo_set_descriptor( desc );
+      }
+      else{
+          ercd = E_PAR;  // index out of range
+      }
+  }
+  else{
+      ercd = E_OBJ;      // cNSInfo not joined
+  }
+
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectSignatureInfo
+ * name:         eSelector_selectSignatureInfo
+ * global_name:  tTECSInfoAccessor_eSelector_selectSignatureInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectSignatureInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sSignatureInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  cSignatureInfo_unjoin(  );
+  if( is_cNSInfo_joined() ){
+      if( 0 <= ith && ith < cNSInfo_getNSignature( ) ){
+          cNSInfo_getSignatureInfo( ith, &desc );
+          cSignatureInfo_set_descriptor( desc );
+      }
+      else{
+          ercd = E_PAR;  // index out of range
+      }
+  }
+  else{
+      ercd = E_OBJ;      // cNSInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCelltypeInfo
+ * name:         eSelector_getSelectedCelltypeInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedCelltypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCelltypeInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_attr, int_t* num_var, int_t* num_call, int_t* num_entry)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCelltypeInfo_joined() ){
+      cCelltypeInfo_getName( name, max_len );
+      *num_attr  = cCelltypeInfo_getNAttr( );
+      *num_var   = cCelltypeInfo_getNVar( );
+      *num_call  = cCelltypeInfo_getNCall( );
+      *num_entry = cCelltypeInfo_getNEntry( );
+  }
+  else {
+      ercd = E_OBJ;      // cCelltypeInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCallInfo
+ * name:         eSelector_selectCallInfo
+ * global_name:  tTECSInfoAccessor_eSelector_selectCallInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCallInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sCallInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  cCallInfo_unjoin(  );
+  if( is_cCelltypeInfo_joined() ){
+      if( 0 <= ith && ith < cCelltypeInfo_getNCall( ) ){
+          cCelltypeInfo_getCallInfo( ith, &desc );
+          cCallInfo_set_descriptor( desc );
+      }
+      else{
+          ercd = E_PAR;  // index out of range
+      }
+  }
+  else{
+      ercd = E_OBJ;      // cCelltypeInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectEntryInfo
+ * name:         eSelector_selectEntryInfo
+ * global_name:  tTECSInfoAccessor_eSelector_selectEntryInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectEntryInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sEntryInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  cEntryInfo_unjoin(  );
+  if( is_cCelltypeInfo_joined() ){
+      if( 0 <= ith && ith < cCelltypeInfo_getNEntry( ) ){
+          cCelltypeInfo_getEntryInfo( ith, &desc );
+          cEntryInfo_set_descriptor( desc );
+      }
+      else{
+          ercd = E_PAR;  // index out of range
+      }
+  }
+  else{
+      ercd = E_OBJ;      // cCelltypeInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectAttrInfo
+ * name:         eSelector_selectAttrInfo
+ * global_name:  tTECSInfoAccessor_eSelector_selectAttrInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectAttrInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sVarDeclInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  cAttrInfo_unjoin(  );
+  if( is_cCelltypeInfo_joined() ){
+      if( 0 <= ith && ith < cCelltypeInfo_getNAttr( ) ){
+          cCelltypeInfo_getAttrInfo( ith, &desc );
+          cAttrInfo_set_descriptor( desc );
+      }
+      else{
+          ercd = E_PAR;  // index out of range
+      }
+  }
+  else{
+      ercd = E_OBJ;      // cCelltypeInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectVarInfo
+ * name:         eSelector_selectVarInfo
+ * global_name:  tTECSInfoAccessor_eSelector_selectVarInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectVarInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sVarDeclInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  cVarInfo_unjoin(  );
+  if( is_cCelltypeInfo_joined() ){
+      if( 0 <= ith && ith < cCelltypeInfo_getNVar( ) ){
+          cCelltypeInfo_getVarInfo( ith, &desc );
+          cVarInfo_set_descriptor( desc );
+      }
+      else{
+          ercd = E_PAR;  // index out of range
+      }
+  }
+  else{
+      ercd = E_OBJ;      // cCelltypeInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedAttrInfo
+ * name:         eSelector_getSelectedAttrInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedAttrInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedAttrInfo(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cAttrInfo_joined() ){
+      cAttrInfo_getName( name, max_len );
+  }
+  else{
+      ercd = E_OBJ;      // cAttrInfo not joined
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSizeIsExprOfAttr
+ * name:         eSelector_getSizeIsExprOfAttr
+ * global_name:  tTECSInfoAccessor_eSelector_getSizeIsExprOfAttr
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSizeIsExprOfAttr(CELLIDX idx, char_t* expr_str, int32_t max_len)
+{
+	CELLCB	*p_cellcb;
+  ER     ercd = E_OK;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cAttrInfo_joined() ){
+      cAttrInfo_getSizeIsExpr( expr_str, max_len );
+  }
+  else{
+      ercd = E_OBJ;      // cAttrInfo not joined
+  }
+  return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfAttr
+ * name:         eSelector_selectTypeInfoOfAttr
+ * global_name:  tTECSInfoAccessor_eSelector_selectTypeInfoOfAttr
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfAttr(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sTypeInfo ) desc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cAttrInfo_joined() ){
+      cAttrInfo_getTypeInfo( &desc );
+      cTypeInfo_set_descriptor( desc );
+  }
+  else{
+      ercd = E_OBJ;      // cAttrInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedVarInfo
+ * name:         eSelector_getSelectedVarInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedVarInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedVarInfo(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cVarInfo_joined() ){
+      cVarInfo_getName( name, max_len );
+  }
+  else{
+      ercd = E_OBJ;      // cVarInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSizeIsExprOfVar
+ * name:         eSelector_getSizeIsExprOfVar
+ * global_name:  tTECSInfoAccessor_eSelector_getSizeIsExprOfVar
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSizeIsExprOfVar(CELLIDX idx, char_t* expr_str, int32_t max_len)
+{
+	CELLCB	*p_cellcb;
+  ER     ercd = E_OK;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  printf( "eSelector_getSizeIsExprOfVar not supported\n" );
+
+  return ercd;
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfVar
+ * name:         eSelector_selectTypeInfoOfVar
+ * global_name:  tTECSInfoAccessor_eSelector_selectTypeInfoOfVar
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfVar(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sTypeInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cVarInfo_joined() ){
+      cVarInfo_getTypeInfo( &desc );
+      cTypeInfo_set_descriptor( desc );
+  }
+  else{
+      ercd = E_OBJ;      // cVarInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallInfo
+ * name:         eSelector_getSelectedCallInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedCallInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* array_size)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+    if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCallInfo_joined() ){
+      cCallInfo_getName( name, max_len );
+      *array_size = cCallInfo_getArraySize();
+  }
+  else{
+      ercd = E_OBJ;      // cCallInfo not joined
+  }
+  return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectSignatureOfCall
+ * name:         eSelector_selectSignatureOfCall
+ * global_name:  tTECSInfoAccessor_eSelector_selectSignatureOfCall
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectSignatureOfCall(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sSignatureInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCallInfo_joined() ){
+      cCallInfo_getSignatureInfo( &desc );
+      cSignatureInfo_set_descriptor( desc );
+  }
+  else {
+      ercd = E_OBJ;      // cCallInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallSpecifierInfo
+ * name:         eSelector_getSelectedCallSpecifierInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedCallSpecifierInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallSpecifierInfo(CELLIDX idx, bool_t* b_optional, bool_t* b_dynamic, bool_t* b_ref_desc, bool_t* b_omit)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCallInfo_joined() ){
+      cCallInfo_getSpecifierInfo( b_optional, b_dynamic, b_ref_desc, b_omit );
+  }
+  else {
+      ercd = E_OBJ;      // cCallInfo not joined
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallInternalInfo
+ * name:         eSelector_getSelectedCallInternalInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedCallInternalInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallInternalInfo(CELLIDX idx, bool_t* b_allocator_port, bool_t* b_require_port)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCallInfo_joined() ){
+      cCallInfo_getInternalInfo( b_allocator_port, b_require_port );
+  }
+  else {
+      ercd = E_OBJ;      // cCallInfo not joined
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallLocationInfo
+ * name:         eSelector_getSelectedCallLocationInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedCallLocationInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallLocationInfo(CELLIDX idx, uint32_t* offset, int8_t* place)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCallInfo_joined() ){
+      cCallInfo_getLocationInfo( offset, place );
+  }
+  else {
+      ercd = E_OBJ;      // cCallInfo not joined
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCallOptimizeInfo
+ * name:         eSelector_getSelectedCallOptimizeInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedCallOptimizeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCallOptimizeInfo(CELLIDX idx, bool_t* b_VMT_useless, bool_t* b_skelton_useless, bool_t* b_cell_unique)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCallInfo_joined() ){
+      cCallInfo_getOptimizeInfo( b_VMT_useless, b_skelton_useless, b_cell_unique );
+  }
+  else {
+      ercd = E_OBJ;      // cCallInfo not joined
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedEntryInfo
+ * name:         eSelector_getSelectedEntryInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedEntryInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedEntryInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* array_size)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cEntryInfo_joined() ){
+      cEntryInfo_getName( name, max_len );
+      *array_size = cEntryInfo_getArraySize();
+  }
+  else{
+      ercd = E_OBJ;      // cEntryInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectSignatureOfEntry
+ * name:         eSelector_selectSignatureOfEntry
+ * global_name:  tTECSInfoAccessor_eSelector_selectSignatureOfEntry
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectSignatureOfEntry(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sSignatureInfo ) desc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cEntryInfo_joined() ){
+      cEntryInfo_getSignatureInfo( &desc );
+      cSignatureInfo_set_descriptor( desc );
+  }
+  else {
+      ercd = E_OBJ;      // cEntryInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedEntryInlineInfo
+ * name:         eSelector_getSelectedEntryInlineInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedEntryInlineInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedEntryInlineInfo(CELLIDX idx, bool_t* b_inline)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cEntryInfo_joined() ){
+      *b_inline = cEntryInfo_isInline( );
+  }
+  else {
+      ercd = E_OBJ;      // cEntryInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedSignatureInfo
+ * name:         eSelector_getSelectedSignatureInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedSignatureInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedSignatureInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_function)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cSignatureInfo_joined() ){
+      cSignatureInfo_getName( name, max_len );
+      *num_function = cSignatureInfo_getNFunction( );
+  }
+  else {
+      ercd = E_OBJ;      // cSignatureInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectFunctionInfoByIndex
+ * name:         eSelector_selectFunctionInfoByIndex
+ * global_name:  tTECSInfoAccessor_eSelector_selectFunctionInfoByIndex
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectFunctionInfoByIndex(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sFunctionInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cSignatureInfo_joined() ){
+      if( 0 <= ith && ith < cSignatureInfo_getNFunction( ) ){
+          cSignatureInfo_getFunctionInfo( ith, &desc );
+          cFunctionInfo_set_descriptor( desc );
+      }
+      else {
+      }
+  }
+  else {
+      ercd = E_OBJ;      // cSignatureInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedFunctionInfo
+ * name:         eSelector_getSelectedFunctionInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedFunctionInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedFunctionInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_args)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cFunctionInfo_joined() ){
+      cFunctionInfo_getName( name, max_len );
+      *num_args = cFunctionInfo_getNParam( );
+  }
+  else {
+      ercd = E_OBJ;      // cFunctionInfo not joined
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfReturn
+ * name:         eSelector_selectTypeInfoOfReturn
+ * global_name:  tTECSInfoAccessor_eSelector_selectTypeInfoOfReturn
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfReturn(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sTypeInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cFunctionInfo_joined() ){
+      cFunctionInfo_getReturnTypeInfo( &desc );
+      cTypeInfo_set_descriptor( desc );
+  }
+  else {
+      ercd = E_OBJ;      // cFunctionInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedParamInfo
+ * name:         eSelector_getSelectedParamInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedParamInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedParamInfo(CELLIDX idx, char_t* name, int_t max_len, int8_t* dir)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cParamInfo_joined() ){
+      cParamInfo_getName( name, max_len );
+      cParamInfo_getDir( dir );
+  }
+  else {
+      ercd = E_OBJ;      // cParamInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectParamInfo
+ * name:         eSelector_selectParamInfo
+ * global_name:  tTECSInfoAccessor_eSelector_selectParamInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectParamInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sParamInfo ) desc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cFunctionInfo_joined() ){
+      if( 0 <= ith && ith < cFunctionInfo_getNParam() ){
+          cFunctionInfo_getParamInfo( ith, &desc );
+          cParamInfo_set_descriptor( desc );
+      }
+      else{
+          ercd = E_PAR;  // index out of range
+      }
+  }
+  else {
+      ercd = E_OBJ;      // cFunctionInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfParam
+ * name:         eSelector_selectTypeInfoOfParam
+ * global_name:  tTECSInfoAccessor_eSelector_selectTypeInfoOfParam
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfParam(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sTypeInfo ) desc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cParamInfo_joined() ){
+      cParamInfo_getTypeInfo( &desc );
+      cTypeInfo_set_descriptor( desc );
+  }
+  else {
+      ercd = E_OBJ;      // cFunctionInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedTypeInfo
+ * name:         eSelector_getSelectedTypeInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedTypeInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedTypeInfo(CELLIDX idx, char_t* name, int_t max_len, int8_t* kind)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cTypeInfo_joined() ){
+      cTypeInfo_getName( name, max_len );
+      *kind = cTypeInfo_getKind( );
+  }
+  else {
+      ercd = E_OBJ;      // cTypeInfo not joined
+  }
+  return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectTypeInfoOfType
+ * name:         eSelector_selectTypeInfoOfType
+ * global_name:  tTECSInfoAccessor_eSelector_selectTypeInfoOfType
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectTypeInfoOfType(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sTypeInfo ) desc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cTypeInfo_joined() ){
+      cTypeInfo_getTypeInfo( &desc );
+      cTypeInfo_set_descriptor( desc );
+  }
+  else {
+      ercd = E_OBJ;      // cTypeInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedRegionInfo
+ * name:         eSelector_getSelectedRegionInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedRegionInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedRegionInfo(CELLIDX idx, char_t* name, int_t max_len, int_t* num_cell)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cRegionInfo_joined() ){
+      cRegionInfo_getName( name, max_len );
+      *num_cell = cRegionInfo_getNCell();
+  }
+  else {
+      ercd = E_OBJ;      // cNSInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCellInfo
+ * name:         eSelector_selectCellInfo
+ * global_name:  tTECSInfoAccessor_eSelector_selectCellInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCellInfo(CELLIDX idx, int_t ith)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sCellInfo ) desc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cRegionInfo_joined() ){
+      if( 0 <= ith && ith < cRegionInfo_getNCell() ){
+          cRegionInfo_getCellInfo( ith, &desc );
+          cCellInfo_set_descriptor( desc );
+      }
+      else {
+          ercd = E_PAR;
+      }
+  }
+  else {
+      ercd = E_OBJ;      // cNSInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getSelectedCellInfo
+ * name:         eSelector_getSelectedCellInfo
+ * global_name:  tTECSInfoAccessor_eSelector_getSelectedCellInfo
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getSelectedCellInfo(CELLIDX idx, char_t* name, int_t max_len)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCellInfo_joined() ){
+      cCellInfo_getName( name, max_len );
+  }
+  else {
+      ercd = E_OBJ;      // cNSInfo not joined
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_selectCelltypeInfoOfCell
+ * name:         eSelector_selectCelltypeInfoOfCell
+ * global_name:  tTECSInfoAccessor_eSelector_selectCelltypeInfoOfCell
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_selectCelltypeInfoOfCell(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+  Descriptor( nTECSInfo_sCelltypeInfo ) desc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCellInfo_joined() ){
+      cCellInfo_getCelltypeInfo( &desc );
+      cCelltypeInfo_set_descriptor( desc );
+  }
+  else {
+      ercd = E_OBJ;      // cNSInfo not joined
+  }
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getAttrValueInStr
+ * name:         eSelector_getAttrValueInStr
+ * global_name:  tTECSInfoAccessor_eSelector_getAttrValueInStr
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getAttrValueInStr(CELLIDX idx, char_t* buf, int_t max_len)
+{
+	ER		  ercd = E_OK;
+	CELLCB	*p_cellcb;
+  uint32_t offset;
+  void     *base, *ptr;
+  int8_t   place;
+
+  Descriptor( nTECSInfo_sCelltypeInfo ) CTdesc;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( is_cCellInfo_joined() && is_cAttrInfo_joined() ){
+      cCellInfo_getCelltypeInfo( &CTdesc );
+      cCelltypeInfo_set_descriptor( CTdesc );
+      printf( "eSelector_getAttrValueInStr not supported\n" );
+      cAttrInfo_getLocationInfo( &offset, &place );
+      switch( place ){
+      case VARDECL_PLACE_CB:
+          cCellInfo_getCBP( &base );
+          break;
+      case VARDECL_PLACE_INIB:
+          cCellInfo_getINIBP( &base );
+          break;
+      default:
+          base = (void *)0;
+      };
+      if( base ){
+          ptr = base + offset;
+          eSelector_selectTypeInfoOfAttr(idx);
+          getSelectedTypeValue( p_cellcb, ptr, buf, max_len );
+      }
+      else {
+          strncpy( buf, "(OMITTED)", max_len );
+      }
+  }
+  else{
+      ercd = E_OBJ;
+  }
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getAttrSizeIsValue
+ * name:         eSelector_getAttrSizeIsValue
+ * global_name:  tTECSInfoAccessor_eSelector_getAttrSizeIsValue
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getAttrSizeIsValue(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  printf( "eSelector_getAttrSizeIsValue not supported\n" );
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getVarValueInStr
+ * name:         eSelector_getVarValueInStr
+ * global_name:  tTECSInfoAccessor_eSelector_getVarValueInStr
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getVarValueInStr(CELLIDX idx, char_t* buf, int_t max_len)
+{
+	ER        ercd = E_OK;
+	CELLCB    *p_cellcb;
+  int8_t    place;
+  void      *base, *ptr;
+  uint32_t  offset;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  cVarInfo_getLocationInfo( &offset, &place );
+  switch( place ){
+  case VARDECL_PLACE_CB:
+      cCellInfo_getCBP( &base );
+      break;
+  case VARDECL_PLACE_INIB:
+      cCellInfo_getINIBP( &base );
+      break;
+  default:
+      base = (void *)0;
+  };
+  if( base ){
+      ptr = base + offset;
+      eSelector_selectTypeInfoOfVar(idx);
+      getSelectedTypeValue( p_cellcb, ptr, buf, max_len );
+  }
+  else {
+      strncpy( buf, "(OMITTED)", max_len );
+  }
+  printf( "eSelector_getVarValueInStr not supported\n" );
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eSelector_getVarSizeIsValue
+ * name:         eSelector_getVarSizeIsValue
+ * global_name:  tTECSInfoAccessor_eSelector_getVarSizeIsValue
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+ER
+eSelector_getVarSizeIsValue(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  printf( "eSelector_getVarSizeIsValue not supported\n" );
+
+	return(ercd);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
+
+static void
+getSelectedTypeValue( CELLCB *p_cellcb, void *ptr, char_t *buf, int_t max_len )
+{
+    switch( cTypeInfo_getKind() ){
+    case TECSTypeKind_BoolType:
+        snprintf( buf, max_len, "%d", *(bool_t *)ptr );
+        break;
+    case TECSTypeKind_IntType:
+        switch( cTypeInfo_getSize() ){
+        case 8:
+            snprintf( buf, max_len, "%d", *(int8_t *)ptr );
+            break;
+        case 16:
+            snprintf( buf, max_len, "%d", *(int16_t *)ptr );
+            break;
+        case 32:
+            snprintf( buf, max_len, "%d", *(int32_t *)ptr );
+            break;
+        case 64:
+            snprintf( buf, max_len, "%lld", *(int64_t *)ptr );
+            break;
+        default:
+            snprintf( buf, max_len, "unknown int size(%d)", cTypeInfo_getSize() );
+        };
+    case TECSTypeKind_FloatType:
+        switch( cTypeInfo_getSize() ){
+        case 32:
+            snprintf( buf, max_len, "%g", *(float32_t *)ptr );
+            break;
+        case 64:
+            snprintf( buf, max_len, "%g", *(double64_t *)ptr );
+            break;
+        default:
+            snprintf( buf, max_len, "unknown double size(%d)", cTypeInfo_getSize() );
+        };
+    case TECSTypeKind_PtrType:
+        snprintf( buf, max_len, "%X", *(double64_t *)ptr );
+        break;
+    case TECSTypeKind_ArrayType:        break;
+    case TECSTypeKind_DefinedType:      break;
+    case TECSTypeKind_StructType:       break;
+    case TECSTypeKind_EnumType:         break;
+    case TECSTypeKind_VoidType:         break;
+    case TECSTypeKind_DescriptorType:   break;
+    default:                            break;
+    };
+}
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/README-TLSF.txt
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/README-TLSF.txt	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/README-TLSF.txt	(revision 429)
@@ -0,0 +1,23 @@
+TLSF Malloc アロケータ
+                                          2017.4.15
+                                          大山
+1.概要
+
+TLSF は効率よく、フラグメントが起きにくいアロケータです。 OS 非依存に
+実装されているため、組込みシステムへの応用に適しています。この実装では
+排他制御を行っていません。複数のタスクで共用するには、排他制御を行う必
+要があります。
+
+2. 実装について
+
+1) TLSF アロケータの本体は、TECS ジェネレータパッケージには含まれていません。
+以下に公開されている TLSF を入手する必要があります。
+これは GPL/LGPL ライセンスで公開されています。
+  http://www.gii.upv.es/tlsf/main/docs
+
+2) TLSF には、別に実装され MIT ライセンスで公開されているものもあります。
+API が若干異なるため、tTLSFMalloc_inline.h を少し修正する必要があります。
+  https://github.com/mattconte/tlsf
+
+3) ETロボコン用パッケージ
+mruby-on-ev3rt+tecs_package (ev3rt) には、1) の TLSF が含まれています。
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/tTLSFMalloc.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/tTLSFMalloc.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/tTLSFMalloc.cdl	(revision 429)
@@ -0,0 +1,56 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+import( <sMalloc.cdl> );
+
+celltype tTLSFMalloc {
+    [inline]
+        entry  sMalloc  eMalloc;
+    attr {
+        /* memory pool size in bytes */
+        size_t  memoryPoolSize;
+    };
+    var {
+        /*
+         * メモリプール
+         *
+         * size_is の引数に関する補足説明
+         *  pool の型が uint64_t のため sizeof uint64_t (8) で割っている
+         *  memoryPoolSize が 8 の倍数でない場合、メモリ領域が不足しないよう +7 を加算してから除する
+         */
+        [size_is( (memoryPoolSize+7) / 8 )]
+            uint64_t   *pool;
+    };
+};
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/tTLSFMalloc_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/tTLSFMalloc_inline.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/tTLSFMalloc_inline.h	(revision 429)
@@ -0,0 +1,152 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef tTLSFMalloc__INLINE_H
+#define tTLSFMalloc__INLINE_H
+
+#include "tlsf.h"
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * memoryPoolSize   size_t           ATTR_memoryPoolSize
+ * pool             uint64_t*        VAR_pool        
+ *
+ * #[</PREAMBLE>]# */
+
+/* #[<ENTRY_PORT>]# eMalloc
+ * entry port: eMalloc
+ * signature:  sMalloc
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eMalloc_initializeMemoryPool
+ * name:         eMalloc_initializeMemoryPool
+ * global_name:  tTLSFMalloc_eMalloc_initializeMemoryPool
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline int
+eMalloc_initializeMemoryPool(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+	} /* end if VALID_IDX(idx) */
+
+  return init_memory_pool(ATTR_memoryPoolSize, VAR_pool);
+}
+
+/* #[<ENTRY_FUNC>]# eMalloc_calloc
+ * name:         eMalloc_calloc
+ * global_name:  tTLSFMalloc_eMalloc_calloc
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline void*
+eMalloc_calloc(CELLIDX idx, size_t nelem, size_t elem_size)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+	} /* end if VALID_IDX(idx) */
+
+  return calloc_ex( nelem, elem_size, VAR_pool);
+}
+
+/* #[<ENTRY_FUNC>]# eMalloc_malloc
+ * name:         eMalloc_malloc
+ * global_name:  tTLSFMalloc_eMalloc_malloc
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline void*
+eMalloc_malloc(CELLIDX idx, size_t size)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+	} /* end if VALID_IDX(idx) */
+
+  return malloc_ex(size, VAR_pool);
+
+}
+
+/* #[<ENTRY_FUNC>]# eMalloc_realloc
+ * name:         eMalloc_realloc
+ * global_name:  tTLSFMalloc_eMalloc_realloc
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline void*
+eMalloc_realloc(CELLIDX idx, const void* ptr, size_t new_size)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+	} /* end if VALID_IDX(idx) */
+
+  return realloc_ex((void *)ptr, new_size, VAR_pool);
+}
+
+/* #[<ENTRY_FUNC>]# eMalloc_free
+ * name:         eMalloc_free
+ * global_name:  tTLSFMalloc_eMalloc_free
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline void
+eMalloc_free(CELLIDX idx, const void* ptr)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+	} /* end if VALID_IDX(idx) */
+
+  return free_ex((void *)ptr, VAR_pool);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
+
+#endif /* tTLSFMalloc_INLINEH */
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSPointer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSPointer.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSPointer.h	(revision 429)
@@ -102,6 +102,6 @@
 	{																	\
 		if( sizeof( type ) > sizeof( mrb_int ) ){						\
-			if( val >= (((type)1) << (sizeof(mrb_int)*8-1))				\
-				|| val < -(((type)1) << (sizeof(mrb_int)*8-1)) )		\
+			if( val > TYPE ## _MAX				\
+				|| val < TYPE ## _MIN )		\
 				/* '=' unecessary for negative value	*/				\
 				/* ignore warning on int32_t */							\
@@ -126,5 +126,5 @@
 	{																	\
 		if( sizeof( type ) > sizeof( mrb_int ) ){						\
-			if( val >= (((type)1) << (sizeof(mrb_int)*8)))				\
+      if( val > TYPE ## _MAX )                        \
 				/* '=' unecessary for negative value	*/				\
 				/* ignore warning on int32_t */							\
@@ -148,11 +148,11 @@
 VALCHECK_MRB_INT( Int16, INT16, int16_t )
 VALCHECK_UINT( UInt8, UINT8, uint8_t )
-#define	VALCHECK_MRB_UInt8
+#define	VALCHECK_MRB_UInt8(mrb,val)
 VALCHECK_UINT( UInt16, UINT16, uint16_t )
-#define	VALCHECK_MRB_UInt16
+#define	VALCHECK_MRB_UInt16(mrb,val)
 VALCHECK_INT( Int32, INT32, int32_t )
-#define VALCHECK_MRB_Int32
+#define VALCHECK_MRB_Int32(mrb,val)
 VALCHECK_UINT( UInt32, UINT32, uint32_t )
-#define VALCHECK_MRB_UInt32
+#define VALCHECK_MRB_UInt32(mrb,val)
 
 VALCHECK_INT( Int64, INT64, int64_t )
@@ -163,6 +163,6 @@
 VALCHECK_MRB_UINT( UInt64, UINT64, uint64_t )
 #else
-#define VALCHECK_MRB_Int64      // 範囲チェックが無意味であるため、警告が出るのを回避する
-#define VALCHECK_MRB_UInt64      // 範囲チェックが無意味であるため、警告が出るのを回避する
+#define VALCHECK_MRB_Int64(mrb,val)      // 範囲チェックが無意味であるため、警告が出るのを回避する
+#define VALCHECK_MRB_UInt64(mrb,val)      // 範囲チェックが無意味であるため、警告が出るのを回避する
 #endif
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSStruct.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSStruct.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSStruct.h	(revision 429)
@@ -105,6 +105,4 @@
 	Struct_ ## TAG ## _initialize( mrb_state *mrb, mrb_value self)		\
 	{																	\
-		mrb_int	length;													\
-		struct  TAG *structBody;										\
 																		\
 		DATA_TYPE( self ) = &Struct ## TAG ## Body_mrb_data_type;		\
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mruby.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mruby.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mruby.cdl	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 import_C( "tecs_mruby.h" );
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyInitializer.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyInitializer.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyInitializer.cdl	(revision 429)
@@ -1,2 +1,36 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
 
 namespace nMruby{
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyPointers.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyPointers.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyPointers.cdl	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 // Pointer celltypes
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyVMs.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyVMs.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyVMs.cdl	(revision 429)
@@ -1,6 +1,42 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 import( <posix.cdl> );
 
 /*
- * tools/mruby/mruby.c から cInit_initializeBridge( mrb ) を呼び出すように変更したもの
+ * POSIX 環境用の VM
+ * mrbgems の mrbgems/mruby-bin-mruby/tools/mruby/mruby.c を参考に作成したもの
  */
 namespace nMruby{
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tBoolPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tBoolPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tBoolPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tCharPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tCharPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tCharPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tDouble64Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tDouble64Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tDouble64Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tFloat32Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tFloat32Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tFloat32Pointer.c	(revision 429)
@@ -1,2 +1,38 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt16Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt16Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt16Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt32Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt32Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt32Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt64Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt64Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt64Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2012 by Ubiquitous Computing and Networking Laboratory
+ *                Ritsumeikan Univ., JAPAN
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt8Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt8Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tInt8Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tIntPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tIntPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tIntPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tLongPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tLongPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tLongPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMruby.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMruby.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMruby.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyCyclicTaskBody.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyCyclicTaskBody.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyCyclicTaskBody.c	(revision 429)
@@ -0,0 +1,90 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cMrubyVM signature: nMruby_sMrubyVM context:task
+ *   bool_t         cMrubyVM_initialize( );
+ *   bool_t         cMrubyVM_run( );
+ *   void           cMrubyVM_funcall( const char_t* name );
+ *   void           cMrubyVM_finalize( );
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include "nMruby_tMrubyCyclicTaskBody_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eMrubyBody
+ * entry port: eMrubyBody
+ * signature:  sTaskBody
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eMrubyBody_main
+ * name:         eMrubyBody_main
+ * global_name:  nMruby_tMrubyCyclicTaskBody_eMrubyBody_main
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eMrubyBody_main(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( ! VAR_b_init ){
+      cMrubyVM_initialize( );
+      VAR_b_init = true;
+  }
+  cMrubyVM_run( );
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyProc.c	(revision 429)
@@ -1,15 +1,43 @@
 /*
- * This file comes from mruby. (renamed from tools/mruby/mruby.c)
- * This file is distributed under ruby's license. (not under TOPPERS license)
- *   see https://github.com/mruby/mruby
- * A little modification is done to to call initializer registering TECS components.
+ *   Copyright (C) 2008-2017 by TOPPERS Project
  *
- * このファイルは、mruby のものです。
- * mruby のライセンスのもとで、配布されます。(TOPPERS ライセンスではありません)
- *  参照：  https://github.com/mruby/mruby
- * TECS コンポーネントを登録する初期化子を呼ぶため、少しの修正がなされています。
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
  */
 
-#include "nMruby_tMrubyProc_tecsgen.h"
+/*
+ * 以前の nMruby_tMrubyProc.c は、mruby の本体に含まれていた 
+ *    mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
+ * をベースに TECS のコードを足していたが、TOPPERS ライセンスと異なるため
+ * 新たに書き下ろした。（小さなコードのため、概ね似たようなものになるが。
+ */
 
 #include <stdio.h>
@@ -17,4 +45,5 @@
 #include <string.h>
 #include "mruby.h"
+#include "mruby/string.h"
 #include "mruby/array.h"
 #include "mruby/compile.h"
@@ -22,243 +51,121 @@
 #include "mruby/variable.h"
 
-#ifndef ENABLE_STDIO
-static void
-p(mrb_state *mrb, mrb_value obj)
-{
-  obj = mrb_funcall(mrb, obj, "inspect", 0);
-  fwrite(RSTRING_PTR(obj), RSTRING_LEN(obj), 1, stdout);
-  putc('\n', stdout);
-}
-#else
-#define p(mrb,obj) mrb_p(mrb,obj)
+/* #[<PREAMBLE>]#
+ * Don't edit the comments between #[<...>]# and #[</...>]#
+ * These comment are used by tecsmerege when merging.
+ *
+ * attr access macro #_CAAM_#
+ * mrb              mrb_state*       VAR_mrb         
+ *
+ * call port function #_TCPF_#
+ * call port: cInit signature: nMruby_sInitializeBridge context:task optional:true
+ *   bool_t     is_cInit_joined()                     check if joined
+ *   void           cInit_initializeBridge( const mrb_state* mrb );
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include "nMruby_tMrubyProc_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
 #endif
 
-void mrb_show_version(mrb_state *);
-void mrb_show_copyright(mrb_state *);
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eMain
+ * entry port: eMain
+ * signature:  nPosix_sMain
+ * context:    task
+ * #[</ENTRY_PORT>]# */
 
-struct _args {
-  FILE *rfp;
-  char* cmdline;
-  mrb_bool fname        : 1;
-  mrb_bool mrbfile      : 1;
-  mrb_bool check_syntax : 1;
-  mrb_bool verbose      : 1;
-  int argc;
-  char** argv;
-};
+/* #[<ENTRY_FUNC>]# eMain_main
+ * name:         eMain_main
+ * global_name:  nMruby_tMrubyProc_eMain_main
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+int
+eMain_main(CELLIDX idx, int argc, const char** argv)
+{
+	CELLCB	*p_cellcb;
+  mrb_state *mrb;
+  mrbc_context* context;
+  if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+      return -1;
+	} /* end if VALID_IDX(idx) */
 
-static void
-usage(const char *name)
-{
-  static const char *const usage_msg[] = {
-  "switches:",
-  "-b           load and execute RiteBinary (mrb) file",
-  "-c           check syntax only",
-  "-e 'command' one line of script",
-  "-v           print version number, then run in verbose mode",
-  "--verbose    run in verbose mode",
-  "--version    print the version",
-  "--copyright  print the copyright",
-  NULL
-  };
-  const char *const *p = usage_msg;
+	/* ここに処理本体を記述します #_TEFB_# */
+  if (argc != 2) {
+      printf("usage: %s script.rb\n", argv[0]);
+      goto error_return;
+  }
+  mrb = mrb_open();
+  if( mrb == 0 ){
+      printf("%s: mrb_open() failed\n", argv[0]);
+      goto error_return;
+  }
+  context = mrbc_context_new(mrb);
+  if (context == 0) {
+      printf("%s: mrbc_context_new() failed\n", argv[0]);
+      goto error_close;
+  }
 
-  printf("Usage: %s [switches] programfile\n", name);
-  while (*p)
-    printf("  %s\n", *p++);
+  /*--------   ARGV   ----------*/
+  {
+      mrb_value ARGV = mrb_ary_new_capa(mrb, argc);
+      int  i;
+      for (i = 0; i < argc; i++) {
+          mrb_ary_push(mrb, ARGV, mrb_str_new_cstr(mrb, argv[i]));
+      }
+      mrb_define_global_const(mrb, "ARGV", ARGV);
+  }
+  /*--------   $0   ----------*/
+  {
+      mrb_sym zero_sym = mrb_intern_lit(mrb, "$0");
+      mrbc_filename(mrb, context, argv[0]);
+      mrb_gv_set(mrb, zero_sym, mrb_str_new_cstr(mrb, argv[0]));
+  }
+
+  /* ------- register TECS bridge classes -------*/
+  if (is_cInit_joined()) {
+      cInit_initializeBridge(mrb);
+  }
+
+  /*--------  load .rb file -------*/
+  {
+      FILE *file = fopen(argv[1], "r");
+      if (file == NULL) {
+          printf("file not found: %s\n", argv[1]);
+          goto error_free;
+      }
+
+      mrb_value val = mrb_load_file_cxt(mrb, file, context);
+      if (mrb->exc) {
+          if(! mrb_undef_p(val)){
+              mrb_print_error(mrb);
+          }
+      }
+  }
+
+  /*---------- success case --------*/
+  mrbc_context_free(mrb, context);
+  mrb_close( mrb );
+  return 0;
+
+  /*---------- error case ----------*/
+error_free:
+  mrbc_context_free(mrb, context);
+error_close:
+  mrb_close( mrb );
+error_return:
+
+  return -1;
 }
 
-static int
-parse_args(mrb_state *mrb, int argc, char **argv, struct _args *args)
-{
-  char **origargv = argv;
-  static const struct _args args_zero = { 0 };
-
-  *args = args_zero;
-
-  for (argc--,argv++; argc > 0; argc--,argv++) {
-    char *item;
-    if (argv[0][0] != '-') break;
-
-    if (strlen(*argv) <= 1) {
-      argc--; argv++;
-      args->rfp = stdin;
-      break;
-    }
-
-    item = argv[0] + 1;
-    switch (*item++) {
-    case 'b':
-      args->mrbfile = TRUE;
-      break;
-    case 'c':
-      args->check_syntax = TRUE;
-      break;
-    case 'e':
-      if (item[0]) {
-        goto append_cmdline;
-      }
-      else if (argc > 1) {
-        argc--; argv++;
-        item = argv[0];
-append_cmdline:
-        if (!args->cmdline) {
-          size_t buflen;
-          char *buf;
-
-          buflen = strlen(item) + 1;
-          buf = (char *)mrb_malloc(mrb, buflen);
-          memcpy(buf, item, buflen);
-          args->cmdline = buf;
-        }
-        else {
-          size_t cmdlinelen;
-          size_t itemlen;
-
-          cmdlinelen = strlen(args->cmdline);
-          itemlen = strlen(item);
-          args->cmdline =
-            (char *)mrb_realloc(mrb, args->cmdline, cmdlinelen + itemlen + 2);
-          args->cmdline[cmdlinelen] = '\n';
-          memcpy(args->cmdline + cmdlinelen + 1, item, itemlen + 1);
-        }
-      }
-      else {
-        printf("%s: No code specified for -e\n", *origargv);
-        return EXIT_SUCCESS;
-      }
-      break;
-    case 'v':
-      if (!args->verbose) mrb_show_version(mrb);
-      args->verbose = TRUE;
-      break;
-    case '-':
-      if (strcmp((*argv) + 2, "version") == 0) {
-        mrb_show_version(mrb);
-        exit(EXIT_SUCCESS);
-      }
-      else if (strcmp((*argv) + 2, "verbose") == 0) {
-        args->verbose = TRUE;
-        break;
-      }
-      else if (strcmp((*argv) + 2, "copyright") == 0) {
-        mrb_show_copyright(mrb);
-        exit(EXIT_SUCCESS);
-      }
-    default:
-      return EXIT_FAILURE;
-    }
-  }
-
-  if (args->rfp == NULL && args->cmdline == NULL) {
-    if (*argv == NULL) args->rfp = stdin;
-    else {
-      args->rfp = fopen(argv[0], args->mrbfile ? "rb" : "r");
-      if (args->rfp == NULL) {
-        printf("%s: Cannot open program file. (%s)\n", *origargv, *argv);
-        return EXIT_FAILURE;
-      }
-      args->fname = TRUE;
-      args->cmdline = argv[0];
-      argc--; argv++;
-    }
-  }
-  args->argv = (char **)mrb_realloc(mrb, args->argv, sizeof(char*) * (argc + 1));
-  memcpy(args->argv, argv, (argc+1) * sizeof(char*));
-  args->argc = argc;
-
-  return EXIT_SUCCESS;
-}
-
-static void
-cleanup(mrb_state *mrb, struct _args *args)
-{
-  if (args->rfp && args->rfp != stdin)
-    fclose(args->rfp);
-  if (args->cmdline && !args->fname)
-    mrb_free(mrb, args->cmdline);
-  if (args->argv)
-    mrb_free(mrb, args->argv);
-  mrb_close(mrb);
-}
-
-int
-// main(int argc, char **argv)
-eMain_main( CELLIDX idx, int argc, const char **argv)
-
-{
-  CELLCB   *p_cellcb = GET_CELLCB( idx );
-  mrb_state *mrb = mrb_open();
-  int n = -1;
-  int i;
-  struct _args args;
-  mrb_value ARGV;
-  mrbc_context *c;
-  mrb_value v;
-  mrb_sym zero_sym;
-
-  cInit_initializeBridge( mrb );    // TECS
-
-
-  if (mrb == NULL) {
-    fputs("Invalid mrb_state, exiting mruby\n", stderr);
-    return EXIT_FAILURE;
-  }
-
-  n = parse_args(mrb, argc, (char **)argv, &args);
-  if (n == EXIT_FAILURE || (args.cmdline == NULL && args.rfp == NULL)) {
-    cleanup(mrb, &args);
-    usage(argv[0]);
-    return n;
-  }
-
-  ARGV = mrb_ary_new_capa(mrb, args.argc);
-  for (i = 0; i < args.argc; i++) {
-    mrb_ary_push(mrb, ARGV, mrb_str_new_cstr(mrb, args.argv[i]));
-  }
-  mrb_define_global_const(mrb, "ARGV", ARGV);
-
-  c = mrbc_context_new(mrb);
-  if (args.verbose)
-    c->dump_result = TRUE;
-  if (args.check_syntax)
-    c->no_exec = TRUE;
-
-  /* Set $0 */
-  zero_sym = mrb_intern_lit(mrb, "$0");
-  if (args.rfp) {
-    char *cmdline;
-    cmdline = args.cmdline ? args.cmdline : "-";
-    mrbc_filename(mrb, c, cmdline);
-    mrb_gv_set(mrb, zero_sym, mrb_str_new_cstr(mrb, cmdline));
-  }
-  else {
-    mrbc_filename(mrb, c, "-e");
-    mrb_gv_set(mrb, zero_sym, mrb_str_new_lit(mrb, "-e"));
-  }
-
-  /* Load program */
-  if (args.mrbfile) {
-    v = mrb_load_irep_file_cxt(mrb, args.rfp, c);
-  }
-  else if (args.rfp) {
-    v = mrb_load_file_cxt(mrb, args.rfp, c);
-  }
-  else {
-    v = mrb_load_string_cxt(mrb, args.cmdline, c);
-  }
-
-  mrbc_context_free(mrb, c);
-  if (mrb->exc) {
-    if (!mrb_undef_p(v)) {
-      mrb_print_error(mrb);
-    }
-    n = -1;
-  }
-  else if (args.check_syntax) {
-    printf("Syntax OK\n");
-  }
-  cleanup(mrb, &args);
-
-  return n == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
-}
+/* #[<POSTAMBLE>]#
+ *   Put non-entry functions below.
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyTaskBody.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyTaskBody.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyTaskBody.c	(revision 429)
@@ -0,0 +1,88 @@
+/*
+ *   Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cMrubyVM signature: nMruby_sMrubyVM context:task
+ *   bool_t         cMrubyVM_initialize( );
+ *   bool_t         cMrubyVM_run( );
+ *   void           cMrubyVM_finalize( );
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include "nMruby_tMrubyTaskBody_tecsgen.h"
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eMrubyBody
+ * entry port: eMrubyBody
+ * signature:  sTaskBody
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eMrubyBody_main
+ * name:         eMrubyBody_main
+ * global_name:  nMruby_tMrubyTaskBody_eMrubyBody_main
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eMrubyBody_main(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( cMrubyVM_initialize( ) ){
+    cMrubyVM_run( );
+    cMrubyVM_finalize( );
+  }
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyVM.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyVM.c	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tMrubyVM.c	(revision 429)
@@ -0,0 +1,236 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 属性アクセスマクロ #_CAAM_#
+ * irep             uint8_t*         ATTR_irep       
+ * var_irep         mrb_irep*        VAR_var_irep    
+ * mrb              mrb_state*       VAR_mrb         
+ * rproc            struct RProc*    VAR_rproc       
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cInit signature: nMruby_sInitializeBridge context:task optional:true
+ *   bool_t     is_cInit_joined()                     check if joined
+ *   void           cInit_initializeBridge( const mrb_state* mrb );
+ * call port: cMalloc signature: sMalloc context:task
+ *   int            cMalloc_initializeMemoryPool( );
+ *   void*          cMalloc_calloc( size_t nelem, size_t elem_size );
+ *   void*          cMalloc_malloc( size_t size );
+ *   void*          cMalloc_realloc( const void* ptr, size_t new_size );
+ *   void           cMalloc_free( const void* ptr );
+ *
+ * #[</PREAMBLE>]# */
+
+/* プロトタイプ宣言や変数の定義をここに書きます #_PAC_# */
+#include "nMruby_tMrubyVM_tecsgen.h"
+#include <string.h>
+
+#include <mruby.h>
+#include <mruby/proc.h>
+#include <mruby/data.h>
+#include <mruby/compile.h>
+#include "t_syslog.h"
+
+MRB_API mrb_state* mrb_open_TECS( CELLCB *p_cellcb);
+
+#ifndef E_OK
+#define	E_OK	0		/* success */
+#define	E_ID	(-18)	/* illegal ID */
+#endif
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eMrubyVM
+ * entry port: eMrubyVM
+ * signature:  nMruby_sMrubyVM
+ * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eMrubyVM_initialize
+ * name:         eMrubyVM_initialize
+ * global_name:  nMruby_tMrubyVM_eMrubyVM_initialize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+bool_t
+eMrubyVM_initialize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+    return false;
+	} /* end if VALID_IDX(idx) */
+
+  cMalloc_initializeMemoryPool();
+	/* ここに処理本体を記述します #_TEFB_# */
+  /* new interpreter instance */
+  //VAR_mrb = mrb_open();
+  VAR_mrb = mrb_open_TECS(p_cellcb);
+  if (VAR_mrb == NULL) {
+    syslog(LOG_EMERG, "Invalid mrb_state, exiting test driver");
+//    cSerialPort_write("Invalid mrb_state, exiting test driver\n", 39);
+    return false;
+  }
+
+  if(is_cInit_joined()){
+    // TECS Bridge
+    cInit_initializeBridge( VAR_mrb );
+  }
+  VAR_var_irep = mrb_read_irep(VAR_mrb, ATTR_irep);
+  VAR_rproc = mrb_proc_new(VAR_mrb, VAR_var_irep);
+  return true;
+}
+
+/* #[<ENTRY_FUNC>]# eMrubyVM_run
+ * name:         eMrubyVM_run
+ * global_name:  nMruby_tMrubyVM_eMrubyVM_run
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+bool_t
+eMrubyVM_run(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  mrb_run(VAR_mrb, VAR_rproc, mrb_top_self(VAR_mrb));
+  if (VAR_mrb->exc) {
+    mrb_p(VAR_mrb, mrb_obj_value(VAR_mrb->exc));
+    return false;
+  }
+  return true;
+}
+
+/* #[<ENTRY_FUNC>]# eMrubyVM_funcall
+ * name:         eMrubyVM_funcall
+ * global_name:  nMruby_tMrubyVM_eMrubyVM_funcall
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eMrubyVM_funcall(CELLIDX idx, const char_t* name)
+{
+	CELLCB	*p_cellcb;
+  mrb_int  argc;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  argc = 0;
+  (void)mrb_funcall(VAR_mrb, mrb_top_self(VAR_mrb), name, argc );
+}
+
+/* #[<ENTRY_FUNC>]# eMrubyVM_finalize
+ * name:         eMrubyVM_finalize
+ * global_name:  nMruby_tMrubyVM_eMrubyVM_finalize
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+void
+eMrubyVM_finalize(CELLIDX idx)
+{
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		/* エラー処理コードをここに記述します */
+	} /* end if VALID_IDX(idx) */
+
+	/* ここに処理本体を記述します #_TEFB_# */
+	syslog(LOG_EMERG, "end of mruby program");
+  mrb_close(VAR_mrb);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
+
+#include "tlsf.h"
+void*
+mrb_TECS_allocf(mrb_state *mrb, void *p, size_t size, void *ud)
+{
+	CELLCB	*p_cellcb= (CELLCB *)ud;
+  if (size == 0) {
+      cMalloc_free(p);
+      //tlsf_free(p);
+      return NULL;
+  }
+  else if (p){
+      //return tlsf_realloc(p,size);
+      return cMalloc_realloc(p, size);
+  }
+  else {
+      //return tlsf_malloc(size);
+      return cMalloc_malloc(size);
+  }
+}
+
+// p_cellcb は VM のもの
+// VM セルタイプに、呼び口 call sMalloc cMalloc; を設ける
+// mrb_TECS_allocf を参照
+MRB_API mrb_state*
+mrb_open_TECS( CELLCB *p_cellcb)
+{
+    return mrb_open_allocf(mrb_TECS_allocf, (void *)p_cellcb);
+};
+
+/*** ダミー関数 ***/
+#ifndef EV3_SOUND
+void _write(){}
+void _close(){}
+void _lseek(){}
+void _read(){}
+//void _fstat(){}
+//void _isatty(){}
+#endif
+
+//void _exit(){}
+//void _getpid(){}
+//void _kill(){}
+void _gettimeofday(){}
+void _fini(){}
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tSCharPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tSCharPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tSCharPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tShortPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tShortPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tShortPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tTECSInitializer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tTECSInitializer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tTECSInitializer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUCharPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUCharPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUCharPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt16Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt16Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt16Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt32Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt32Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt32Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt64Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt64Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt64Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt8Pointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt8Pointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUInt8Pointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUIntPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUIntPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUIntPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tULongPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tULongPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tULongPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUShortPointer.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUShortPointer.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/nMruby_tUShortPointer.c	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 /* #[<PREAMBLE>]#
  * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/sMruby.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/sMruby.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/sMruby.cdl	(revision 429)
@@ -0,0 +1,67 @@
+/*
+ *  Copyright (C) 2012 by Ubiquitous Computing and Networking Laboratory
+ *                Ritsumeikan Univ., JAPAN
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+namespace nMruby{
+  signature sMrubyVM {
+    /*
+     * 初期化する (以下まで完了する)
+     *   mrb_open
+     *   VM_TECSInitializer  (TECS ブリッジの初期化)
+     *   mrb_read_irep       (バイトコードの登録)
+     */
+    bool_t initialize(void);
+
+    /*
+     * 実行する
+     * RETURN
+     *   true  未処置の例外がない
+     *   false 未処置の例外がある
+     *  initialize が false を返した場合、run, finalize を呼び出してはならない
+     */
+    bool_t run(void);
+
+    /*
+     * 関数を呼びだす
+     */
+    void funcall( [in,string]const char_t *name );
+
+    /*
+     * 終期化する
+     *  run が false を返した場合でも呼びだすこと
+     */
+    void finalize(void);
+
+  };
+};
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tMruby.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tMruby.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tMruby.cdl	(revision 429)
@@ -1,3 +1,2 @@
-
 /*
  *  Copyright (C) 2012 by Ubiquitous Computing and Networking Laboratory
@@ -38,17 +37,30 @@
 
 import(<mruby.cdl>);
+import(<sMruby.cdl>);
+import(<tTLSFMalloc.cdl>);
 
 namespace nMruby{
-  celltype tMruby{
-    entry sTaskBody eMrubyBody;
+
+/*** mruby VM ***/
+  celltype tMrubyVM{
+    entry sMrubyVM eMrubyVM;
     attr{
       [omit]char_t *mrubyFile;
-      char_t *irep=C_EXP("&$cell_global$_irep");
+      const uint8_t *irep=C_EXP("$cell_global$_irep");
     };
-    
-    /* write関数の接続先 */
-//    [optional] 	call sSerialPort cSerialPort;
+    var{
+      mrb_irep      *var_irep;
+      mrb_state     *mrb;
+      struct RProc  *rproc;
+    };
+
+    /* MrubyBridgePlugin の生成する VM_TECSInitializeer.eInitialize へ結合する */
     [optional]  call sInitializeBridge cInit;
-    
+    /*
+     * アロケータ 
+     *  他と共有しないのであれば、このアロケータは排他制御される必要はない
+     */
+    call sMalloc cMalloc;
+
     FACTORY{
       write("Makefile.tecsgen", "clean_mrb_c :");
@@ -61,6 +73,76 @@
       write("Makefile.tecsgen", "TECS_COBJS := $(TECS_COBJS) $cell_global$_mrb.o");
       write("Makefile.tecsgen", "MRB_C := $(MRB_C) $cell_global$_mrb.c");
-      write("$ct_global$_factory.h","extern const char_t *$cell_global$_irep;");
+      write("$ct_global$_factory.h","extern const uint8_t $cell_global$_irep[];");
     };
   };
+
+/*** Standard Task Versoin  ***/
+  /*
+   * tMruby　の eMrubyBody.main が、繰り返し起床されることは想定されていません。
+   */
+  celltype tMrubyTaskBody{
+    entry sTaskBody eMrubyBody;
+    call  sMrubyVM  cMrubyVM;
+  };
+  composite tMruby{
+    entry sTaskBody eMrubyBody;
+    [optional]  call sInitializeBridge cInit;
+    attr{
+      [omit]char_t *mrubyFile;
+      size_t memoryPoolSize = 1024 * 1024;    /** 1MB default **/
+      /* note: this requires enough memory */
+      /* please pay attention to memory layout */
+    };
+
+    /** **/
+    cell tMrubyVM MrubyVM{
+      mrubyFile = composite.mrubyFile;
+      cInit => composite.cInit;
+      cMalloc = TLSFMalloc.eMalloc;
+    };
+    cell tMrubyTaskBody MrubyTaskBody {
+      cMrubyVM = MrubyVM.eMrubyVM;
+    };
+    cell tTLSFMalloc TLSFMalloc {
+      memoryPoolSize = composite.memoryPoolSize;
+    };
+    composite.eMrubyBody => MrubyTaskBody.eMrubyBody;
+  };
+
+/*** Cyclic Task Versoin  ***/
+  /*
+   * tMrubyCyclic の eMrubyBody.main が繰り返し呼び出されることが想定されています。
+   * この実装では mrb_close は呼び出されません (終了は、突然電源が切れることを想定)
+   */
+  celltype tMrubyCyclicTaskBody{
+    entry sTaskBody eMrubyBody;
+    call  sMrubyVM  cMrubyVM;
+    var {
+        bool_t  b_init;
+    };
+  };
+  composite tMrubyCyclic{
+    entry sTaskBody eMrubyBody;
+    [optional]  call sInitializeBridge cInit;
+    attr{
+      [omit]char_t *mrubyFile;
+      size_t memoryPoolSize = 1024 * 1024;    /** 1MB default **/
+      /* note: this requires enough memory */
+      /* please pay attention to memory layout */
+    };
+
+    /** **/
+    cell tMrubyVM MrubyVM{
+      mrubyFile = composite.mrubyFile;
+      cInit => composite.cInit;
+      cMalloc = TLSFMalloc.eMalloc;
+    };
+    cell tMrubyCyclicTaskBody MrubyTaskBody {
+      cMrubyVM = MrubyVM.eMrubyVM;
+    };
+    cell tTLSFMalloc TLSFMalloc {
+      memoryPoolSize = composite.memoryPoolSize;
+    };
+    composite.eMrubyBody => MrubyTaskBody.eMrubyBody;
+  };
 };
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tecs_mruby.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tecs_mruby.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/mruby/tecs_mruby.h	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2019 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 #ifndef tecs_mruby_h__
 #define tecs_mruby_h__
@@ -9,37 +44,33 @@
 #include "mruby/data.h"
 #include "mruby/string.h"
+#include "mruby/irep.h"
+#include "mruby/dump.h"
+#include "mruby/proc.h"
 
 #include "TECSPointer.h"
 #include "TECSStruct.h"
 
-#if  ! defined( MRUBY_RELEASE_MAJOR ) || MRUBY_RELEASE_MAJOR == 1 && MRUBY_RELEASE_MINOR < 2
-#ifndef MRB_ARGS_REQ
-#define MRB_ARGS_REQ(n)     ARGS_REQ(n)
-#define MRB_ARGS_OPT(n)     ARGS_OPT(n)
-#define MRB_ARGS_ARG(n1,n2) ARGS_ARG(n1,n2)
-#define MRB_ARGS_REST()     ARGS_REST()
-#define MRB_ARGS_POST(n)    ARGS_POST(n)
-#define MRB_ARGS_KEY(n1,n2) ARGS_KEY(n1,n2)
-#define MRB_ARGS_BLOCK()    ARGS_BLOCK()
-#define MRB_ARGS_ANY()      ARGS_ANY()
-#define MRB_ARGS_NONE()     ARGS_NONE()
-#endif /* MRB_ARGS_REQ */
-#endif
 
-#if  ! defined( MRUBY_RELEASE_MAJOR )
-#define mrb_float_value( mrb, val )  mrb_float_value( val )
-#endif
-
-#else
+#else /* TECSGEN */
 
 /*
- * fake tecsgen because tecsgen cannot accept actual mruby.h in case of below.
+ * fake definition because tecsgen cannot accept actual mruby.h in case of below.
  *   types:   long long, long long int
  *   special keyword __attribute__(x), __extension__
  */
 typedef int mrb_state;
-struct  RClass {int dummy;};
+typedef int mrb_irep;
+typedef int mrb_context;
+struct  RClass {uint32_t gcnext;};  // actual definition: struct RBasic *gcnext
+struct  RProc  {uint32_t gcnext;};  // actual definition: struct RBasic *gcnext
 
 typedef int CELLCB;
+
+#define GET_SET_BOOL( Type, type )
+#define GET_SET_CHAR( Type, type )
+#define GET_SET_INT( Type, type )
+#define GET_SET_FLOAT( Type, type )
+#define POINTER_CLASS( Type, type )
+#define CHECK_AND_GET_POINTER( Type, type )
 
 #endif /* TECSGEN */
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/posix/posix.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/posix/posix.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/posix/posix.cdl	(revision 429)
@@ -1,2 +1,37 @@
+/*
+ *  Copyright (C) 2008-2017 by TOPPERS Project
+ *
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ *
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ *
+ *  @(#) $Id$
+ */
+
 
 namespace nPosix {
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl	(revision 429)
@@ -68,9 +68,4 @@
 	ER	sendSOP( [in]bool_t b_client );     /* StartOfPacket magic を送信 */
 	ER	receiveSOP( [in]bool_t b_client );  /* StartOfPacket magic を受信 */
-						 /* b_client: クライアント側なら true, サーバー側なら false */
-
-	/* マジックコードの送受信 */
-	//	ER	sendSHSOP( [in]bool_t b_client );     /* StartOfPacket magic を送信 */
-	//	ER	receiveSHSOP( [in]bool_t b_client );  /* StartOfPacket magic を受信 */
 						 /* b_client: クライアント側なら true, サーバー側なら false */
 
@@ -150,5 +145,5 @@
 };
 
-// Straight Order TECS Data Representation (Straight means no endian-conversion is done)
+// Straight Byte Order TECS Data Representation (Data are always sent in native endian)
 celltype tTDR {
 	call	sChannel	cChannel;
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sChannel.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sChannel.cdl	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/sChannel.cdl	(revision 429)
@@ -58,2 +58,10 @@
 };
 
+/*
+ * size に uint16_t ではなく int16_t を用いるのは、下位層が ER_INT を返す場合を想定したもの．
+ *
+ * sChannel は TECS RPC の TDR の下位層である通信チャンネルとのインタフェースである．
+ * 通信チャンネルは、高水準 I/O のように、バッファリングされることを想定する．
+ * TDR からは、int8_t, int16_t, int32_t, int64_t, (int128_t), float32_t, double64_t bool_t, char_t のような基本型(無符号を含む)が渡される。
+ * 配列や構造体の場合であっても要素ごとに渡される。
+ */
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferCEP.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferCEP.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferCEP.cdl	(revision 429)
@@ -0,0 +1,67 @@
+/*
+ *  TECS Generator
+ *      Generator for TOPPERS Embedded Component System
+ *  
+ *   Copyright (C) 2008-2013 by TOPPERS Project
+ *--
+ *   上記著作権者は，以下の(1)(4)の条件を満たす場合に限り，本ソフトウェ
+ *   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *       スコード中に含まれていること．
+ *   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *       の無保証規定を掲載すること．
+ *   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *       と．
+ *     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *         作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *         報告すること．
+ *   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *       免責すること．
+ *  
+ *   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *   の責任を負わない．
+ *  
+ *   $Id$
+ */
+
+const uint16_t DEFAULT_MESSAGE_BUFFER_SIZE = 64;
+
+celltype tMessageBufferCEP {
+    [inline]
+        entry sChannel eChannel;
+    call  sMessageBuffer cMessageBuffer0;   /* Client(send) --> Server(receive) */
+    call  sMessageBuffer cMessageBuffer1;   /* Server(send) --> Client(receive) */
+
+    attr {
+        uint16_t  buf_size = DEFAULT_MESSAGE_BUFFER_SIZE;
+        /* この値は maxMessageSize に合わせる。小さいと、バッファオーバーランになる */
+    };
+    var {
+        /*
+         * OpaqueMarshalerPlugin の生成するマーシャラは、受信したいサイズ以上の領域を確保しない．
+         * 一方、tMessageBuffer は、最大 maxMessageSize 読み出しうる．
+         * 受信する側は、必ず maxMessageSize を用意しておく必要がある．
+         * このため、いったんバッファへ受け取ってコピーする必要がある．
+         */
+        [size_is(buf_size)]
+            int8_t *read_buf;
+        uint16_t   read_count;
+        uint16_t   n_read_buf_filled;
+
+        [size_is(buf_size)]
+            int8_t *write_buf;
+        uint16_t   write_count;
+    };
+};
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferCEP_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferCEP_inline.h	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferCEP_inline.h	(revision 429)
@@ -0,0 +1,203 @@
+#ifndef tMessageBufferCEP__INLINE_H
+#define tMessageBufferCEP__INLINE_H
+
+/* #[<PREAMBLE>]#
+ * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください
+ * tecsmerge によるマージに使用されます
+ *
+ * 呼び口関数 #_TCPF_#
+ * call port: cMessageBuffer0 signature: sMessageBuffer context:task
+ *   ER             cMessageBuffer0_send( const uint8_t* message, uint32_t size );
+ *   ER             cMessageBuffer0_sendPolling( const uint8_t* message, uint32_t size );
+ *   ER             cMessageBuffer0_sendTimeout( const uint8_t* message, uint32_t size, TMO timeout );
+ *   ER_UINT        cMessageBuffer0_receive( uint8_t* message );
+ *   ER_UINT        cMessageBuffer0_receivePolling( uint8_t* message );
+ *   ER_UINT        cMessageBuffer0_receiveTimeout( uint8_t* message, TMO timeout );
+ *   ER             cMessageBuffer0_initialize( );
+ *   ER             cMessageBuffer0_refer( T_RMBF* pk_messageBufferStatus );
+ * call port: cMessageBuffer1 signature: sMessageBuffer context:task
+ *   ER             cMessageBuffer1_send( const uint8_t* message, uint32_t size );
+ *   ER             cMessageBuffer1_sendPolling( const uint8_t* message, uint32_t size );
+ *   ER             cMessageBuffer1_sendTimeout( const uint8_t* message, uint32_t size, TMO timeout );
+ *   ER_UINT        cMessageBuffer1_receive( uint8_t* message );
+ *   ER_UINT        cMessageBuffer1_receivePolling( uint8_t* message );
+ *   ER_UINT        cMessageBuffer1_receiveTimeout( uint8_t* message, TMO timeout );
+ *   ER             cMessageBuffer1_initialize( );
+ *   ER             cMessageBuffer1_refer( T_RMBF* pk_messageBufferStatus );
+ *
+ * #[</PREAMBLE>]# */
+
+/* 受け口関数 #_TEPF_# */
+/* #[<ENTRY_PORT>]# eChannel
+ * entry port: eChannel
+ * signature:  sChannel
+2 * context:    task
+ * #[</ENTRY_PORT>]# */
+
+/* #[<ENTRY_FUNC>]# eChannel_send
+ * name:         eChannel_send
+ * global_name:  tMessageBufferCEP_eChannel_send
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eChannel_send(CELLIDX idx, const int8_t* buf, int16_t size, TMO tmo)
+{
+	ER		ercd = E_OK;
+  int16_t write_count;
+    CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( size < 0 )
+      return E_PAR;
+  else if( size == 0 )
+      return E_OK;
+
+  write_count = 0;
+  while( write_count < size ){
+      VAR_write_buf[ VAR_write_count++ ] = buf[ write_count++ ];
+      if( VAR_write_count >= ATTR_buf_size ){
+          ercd = eChannel_flush( idx, tmo);
+          if( ercd != E_OK ){
+              break;
+          }
+      }
+  }
+
+  // syslog( LOG_INFO, "eChannel_send ercd=%d", ercd );
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eChannel_flush
+ * name:         eChannel_flush
+ * global_name:  tMessageBufferCEP_eChannel_flush
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eChannel_flush(CELLIDX idx, TMO tmo)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  /* flush しなくても、いつも送られる */
+  if( VAR_write_count > 0 ){
+      ercd = cMessageBuffer0_sendTimeout( (const uint8_t *)VAR_write_buf, VAR_write_count, tmo );
+  }
+  // syslog( LOG_INFO, "eChannel_flush ercd=%d count=%d", ercd, VAR_write_count );
+  VAR_write_count = 0;
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eChannel_receive
+ * name:         eChannel_receive
+ * global_name:  tMessageBufferCEP_eChannel_receive
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER_UINT
+eChannel_receive(CELLIDX idx, int8_t* buf, int16_t size, TMO tmo)
+{
+	ER		   ercd = E_OK;
+	CELLCB	 *p_cellcb;
+  int16_t  count = 0;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  if( size == 0 )
+      return 0;
+
+  while( count < size ){
+      if( VAR_n_read_buf_filled == 0 ){
+          ercd = cMessageBuffer1_receiveTimeout( (uint8_t *)VAR_read_buf, tmo );
+          if( ercd < 0  )
+              break;
+          VAR_n_read_buf_filled = ercd;
+      }
+      while( count < size && VAR_read_count < VAR_n_read_buf_filled ){
+          buf[ count ] = VAR_read_buf[ VAR_read_count ];
+          count++;
+          VAR_read_count++;
+      }
+      if( VAR_read_count >= VAR_n_read_buf_filled ){
+          VAR_n_read_buf_filled = 0;
+          VAR_read_count = 0;
+      }
+      ercd = count;
+  }
+  // syslog( LOG_INFO, "eChannel_receive ercd=%d", ercd );
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eChannel_end_receive
+ * name:         eChannel_end_receive
+ * global_name:  tMessageBufferCEP_eChannel_end_receive
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eChannel_end_receive(CELLIDX idx)
+{
+	ER		ercd = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
+
+	/* ここに処理本体を記述します #_TEFB_# */
+
+	return(ercd);
+}
+
+/* #[<ENTRY_FUNC>]# eChannel_reset
+ * name:         eChannel_reset
+ * global_name:  tMessageBufferCEP_eChannel_reset
+ * oneway:       false
+ * #[</ENTRY_FUNC>]# */
+Inline ER
+eChannel_reset(CELLIDX idx)
+{
+  ER		ercd0 = E_OK, ercd1 = E_OK;
+	CELLCB	*p_cellcb;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
+
+	/* ここに処理本体を記述します #_TEFB_# */
+  ercd0 = cMessageBuffer0_initialize( );
+  ercd1 = cMessageBuffer1_initialize( );
+
+	return(ercd1 != E_OK ? ercd1 : ercd0);
+}
+
+/* #[<POSTAMBLE>]#
+ *   これより下に非受け口関数を書きます
+ * #[</POSTAMBLE>]#*/
+
+#endif /* tMessageBufferCEP_INLINEH */
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferChannel.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferChannel.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tMessageBufferChannel.cdl	(revision 429)
@@ -0,0 +1,73 @@
+/*
+ *  TECS Generator
+ *      Generator for TOPPERS Embedded Component System
+ *  
+ *   Copyright (C) 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$
+ */
+
+composite tMessagebufferChannel {
+    //entry sTDR       eTDR;
+    entry sEventflag eEventflag;
+    entry sSemaphore eSemaphore;
+    entry sMessageBuffer eMessageBuffer;
+
+    attr {
+        // Queue のデフォルトのサイズ
+        uint32_t	bufferSize = 256;
+    };
+
+    cell  tMessageBuffer Messagebuffer{
+        maxMessageSize = 128;
+        bufferSize = composite.bufferSize;
+    };
+    cell  tEventflag Eventflag{
+        flagPattern = 0;
+    };
+    cell tSemaphore Semaphore{
+        attribute = C_EXP("TA_NULL");
+        initialCount = 0;
+    };
+
+    //cell  tTDR TDR {
+    //	cChannel = MessagebufferAdaptor.eChannel;
+    //};
+
+    //composite.eTDR       => TDR.eTDR;
+    composite.eEventflag => Eventflag.eEventflag;
+    composite.eSemaphore => Semaphore.eSemaphore;
+    composite.eMessageBuffer => Messagebuffer.eMessageBuffer;
+
+};
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h	(revision 429)
@@ -75,4 +75,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	syslog( LOG_INFO, "TDR: resetting channel" );
@@ -102,4 +103,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -151,4 +153,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -157,5 +160,5 @@
 #endif
 
-    if( b_client )
+  if( b_client )
 		p_sopMagic = &SOP_MAGIC2;
 	else
@@ -198,4 +201,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -234,4 +238,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -267,4 +272,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -287,4 +293,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -307,4 +314,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -327,4 +335,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -347,4 +356,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -368,4 +378,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -390,4 +401,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -412,4 +424,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -434,4 +447,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -456,4 +470,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -477,4 +492,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -497,4 +513,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -517,4 +534,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -537,4 +555,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -557,4 +576,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -578,4 +598,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -600,4 +621,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -622,4 +644,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -644,4 +667,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -666,4 +690,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -688,4 +713,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -705,11 +731,12 @@
 	ER		ercd = E_OK;
 	CELLCB	*p_cellcb;
-	uint8_t	val;
-	if (VALID_IDX(idx)) {
-		p_cellcb = GET_CELLCB(idx);
-	}
-	else {
-		return(E_ID);
-	} /* end if VALID_IDX(idx) */
+	uint8_t	val = 0;
+	if (VALID_IDX(idx)) {
+		p_cellcb = GET_CELLCB(idx);
+	}
+	else {
+		return(E_ID);
+	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -737,4 +764,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -757,4 +785,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -778,4 +807,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -800,4 +830,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -821,4 +852,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -863,4 +895,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -883,4 +916,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -903,4 +937,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -923,4 +958,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -944,4 +980,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -966,4 +1003,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -988,4 +1026,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1010,4 +1049,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1031,4 +1071,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1051,4 +1092,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1071,4 +1113,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1091,4 +1134,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1112,4 +1156,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1134,4 +1179,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1156,4 +1202,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1178,4 +1225,5 @@
 		return(E_ID);
 	} /* end if VALID_IDX(idx) */
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1199,4 +1247,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
@@ -1220,4 +1269,5 @@
 		return(E_ID);
 	}
+  (void)p_cellcb;   // to avoid unused warning
 
 	/* ここに処理本体を記述します #_TEFB_# */
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/sMalloc.cdl
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/sMalloc.cdl	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecs/sMalloc.cdl	(revision 429)
@@ -0,0 +1,46 @@
+/*
+ *  Copyright (C) 2012 by Ubiquitous Computing and Networking Laboratory
+ *                Ritsumeikan Univ., JAPAN
+ *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+ *  ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+ *  変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+ *  (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+ *      権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+ *      スコード中に含まれていること．
+ *  (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+ *      用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+ *      者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+ *      の無保証規定を掲載すること．
+ *  (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+ *      用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+ *      と．
+ *    (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+ *        作権表示，この利用条件および下記の無保証規定を掲載すること．
+ *    (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+ *        報告すること．
+ *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+ *      害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+ *      また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+ *      由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+ *      免責すること．
+ * 
+ *  本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+ *  よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+ *  に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+ *  アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+ *  の責任を負わない．
+ * 
+ *  @(#) $Id$
+ */
+
+import_C( "t_stddef.h" );
+
+[deviate]
+signature sMalloc {
+    int    initializeMemoryPool(void);
+    void   *calloc( [in]size_t nelem, [in]size_t elem_size );
+    void   *malloc( [in]size_t size );
+    void   *realloc( [in]const void *ptr, [in]size_t new_size );
+    void   free( [in]const void *ptr );
+};
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen	(revision 429)
@@ -7,5 +7,5 @@
 #
 #   ä¸è¨èä½æ¨©è
-ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
 #   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
 #   å¤ã»åé
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen.rb	(revision 429)
@@ -5,5 +5,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2016 by TOPPERS Project
+#   Copyright (C) 2008-2019 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -54,5 +54,5 @@
 #  Authors list is in i-ro-ha order.
 #Version::   see version.rb
-$Copyright = "Copyright(c) 2008-2016, TOPPERS project. All rights reserved."
+$Copyright = "Copyright(c) 2008-2019, TOPPERS project. All rights reserved."
 $License   = "TOPPERS License"
 
@@ -223,5 +223,7 @@
     analyze_option addtional_option_parser
     load_modules
-    setup
+    if ! $TECSFLOW then
+      setup
+    end
         
     dbgPrint  "tecspath: #{$tecsgen_base_path}, __FILE__=#{__FILE__}\n"
@@ -284,5 +286,6 @@
     ARGV.each { |a| $arguments += " " + a }
 
-    $unopt     = false     # bool:   disable optimizing
+    $unopt     = false     # bool:   disable optimizing both call and entry port
+    $unopt_entry= false    # bool:   disable optimizing entry port
     $gen_base  = "gen"     # string: folder path to place generated files
     $gen       = $gen_base # string: folder path to place generated files
@@ -385,4 +388,7 @@
         $unopt = true
       }
+      parser.on('--unoptimize-entry', 'unoptimize entry port') {
+        $unopt_entry = true
+      }
       parser.on('-c', '--cpp=cpp_cmd', 'C pre-processor command used import_C (default: gcc -E -DTECSGEN), you can also specify by environment variable TECS_CPP' ){
         |arg|
@@ -465,5 +471,5 @@
     }
 
-    if ARGV.empty? && ! $print_version && ! $unit_test
+    if ARGV.empty? && ! $print_version && ! $unit_test && ! $TECSFLOW
       ARGV.options{|parser|
         puts parser.help
@@ -482,5 +488,7 @@
     # このファイルを誤って読み込むと、異なるバージョン名を表示してしまう
     require_tecsgen_lib 'tecslib/version.rb'
-    if ! $no_banner || $print_version
+    if $title then
+      STDERR << "#{$title} version #{$tool_version} (tecsgen version #{$version})  #{$Copyright}\n"
+    elsif ! $no_banner || $print_version
       STDERR << "tecsgen  version #{$version}  #{$Copyright}\n"
     end
@@ -488,5 +496,5 @@
       STDERR << "ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]\n"
     end
-    if $print_version && ARGV.empty?
+    if $print_version && ARGV.empty? && ! $TECSFLOW
       exit
     end
@@ -514,10 +522,14 @@
     require_tecsgen_lib 'tecslib/core/generate.rb'
     require_tecsgen_lib 'tecslib/core/gen_xml.rb'
-#    require_tecsgen_lib 'tecslib/core/tool_info.rb'
+    require_tecsgen_lib 'tecslib/core/tool_info.rb'
+    require_tecsgen_lib 'tecslib/core/tecsinfo.rb'
+    require_tecsgen_lib 'tecslib/core/unjoin_plugin.rb'
     require_tecsgen_lib 'tecslib/plugin/CelltypePlugin.rb'
+    require_tecsgen_lib 'tecslib/plugin/CompositePlugin.rb'
     require_tecsgen_lib 'tecslib/plugin/CellPlugin.rb'
     require_tecsgen_lib 'tecslib/plugin/SignaturePlugin.rb'
     require_tecsgen_lib 'tecslib/plugin/ThroughPlugin.rb'
     require_tecsgen_lib 'tecslib/plugin/DomainPlugin.rb'
+    require_tecsgen_lib 'tecslib/plugin/MultiPlugin.rb'
 
     # C 言語パーサ
@@ -596,5 +608,5 @@
 #  クラス変数のリセットを確実に行う必要がある
 
-if $TECSCDE != true then
+if $TECSCDE != true && $TECSFLOW != true then
   begin
     TECSGEN.init
@@ -602,4 +614,5 @@
     tecsgen.run1
     tecsgen.run2
+    tecsgen.dump_tecsgen_rbdmp
   rescue => evar
     print_exception( evar )
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen_rcov.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen_rcov.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsgen_rcov.rb	(revision 429)
@@ -44,6 +44,9 @@
 # Usage: tecsgen_rcov.rb [options] CDL-file.cdl
 #
+
+$:.unshift(File.dirname(__FILE__))
+
 require 'simplecov'
-SimpleCov.command_name "tecsgen#{$$}"
+SimpleCov.command_name "tecsgen#{Time.now.to_f}"
 SimpleCov.root File.dirname( File.expand_path __FILE__ )
 SimpleCov.at_exit do
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.tab.rb	(revision 429)
@@ -1,5 +1,5 @@
 #
 # DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.4.12
+# This file is automatically generated by Racc 1.4.9
 # from Racc grammer file "".
 #
@@ -8,282 +8,300 @@
 class C_parser < Racc::Parser
 
-module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 715)
-
-  RESERVED = {
-    # keyword
-    'typedef' => :TYPEDEF,
-    'struct' => :STRUCT,
-    'union' => :UNION,
-    'sizeof' => :SIZEOF,
-    'throw' => :THROW,
-
-    # specifier
-    # types
-    'void'    => :VOID,
-    'char'    => :CHAR,
-    'short'   => :SHORT,
-
-    'volatile'=> :VOLATILE,
-    'const'   => :CONST,
-    'extern'   => :EXTERN,
-
-    'long'    => :LONG,
-    'float'   => :FLOAT,
-    'double'  => :DOUBLE,
-    'signed'  => :SIGNED,
-    'unsigned'=> :UNSIGNED,
-
-    'int'     => :INT,
-    'enum'    => :ENUM,
-
-    'if'      => :IF,
-    'else'    => :ELSE,
-    'while'   => :WHILE,
-    'do'      => :DO,
-    'for'     => :FOR,
-    'case'    => :CASE,
-    'default' => :DEFAULT,
-    'goto'    => :GOTO,
-    'continue' => :CONTINUE,
-    'break'   => :BREAK,
-    'return'  => :RETURN,
-    '__inline__'  => :__INLINE__,
-    'inline'  => :INLINE,
-    '__inline'  => :__INLINE,
-    'Inline'  => :CINLINE,        # inline starting with Capital letter
-    'static'  => :STATIC,
-    'register' => :REGISTER,
-    'auto'    => :AUTO,
-    '__extension__'    => :EXTENSION,
-
-  }
-
-  @@generator_nest = -1
-  @@generator_stack = []
-  @@current_locale = []
-
-  def finalize
-
-    # mikan Namespace.pop
-    Celltype.pop
-    Cell.pop
-    CompositeCelltype.pop
-    Region.pop
-
-  end
-
-  def set_plugin( plugin )
-    @plugin = plugin
-  end
-
-  def self.get_plugin
-    @@generator_stack[@@generator_nest].get_plugin
-  end
-
-  def get_plugin
-    @plugin
-  end
-
-  def parse(files)
-
-    # mikan Namespace.push
-    Celltype.push
-    Cell.push
-    CompositeCelltype.push
-    Region.push
-
-    @@generator_nest += 1
-    @@generator_stack[@@generator_nest] = self
-    @b_no_type_name = false
-
-   begin
-
-    @q = []
-    comment = false
-
-    # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
-    TECS_LANG::set_kcode_binary
-
-    # 800U, 0xffLL など (整数リテラルに共通の修飾子)
-    integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
-
-    files.each {|file|
-      lineno = 1
-     begin
-#2.0       IO.foreach(file) {|line|
-       TECSIO.foreach(file) {|line|
-        col = 1
-        line.rstrip!
-
-        until line.empty?
-
-          if comment
-            case line
-            # コメント終了
-            when /\A\*\//
-              comment = false
-            when /\A./
-              ;
-            end
-          else
-            case line
-            # 空白、プリプロセスディレクティブ
-            when /\A\s+/
-              ;
-            # 識別子
-            when /\A[a-zA-Z_]\w*/
-              word = $&
-              @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
-            # 16 進数定数
-            when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
-              @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
-            # 8 進数定数
-            when /\A0[0-7]+#{integer_qualifier}/
-              @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
-            # 浮動小数定数
-            when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
-              @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
-            # 整数定数
-            when /\A\d+#{integer_qualifier}/
-            # when /\A\d+/
-              @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
-            # 文字
-            when /\A'(?:[^'\\]|\\.)'/
-              @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
-            # 文字列
-#              "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
-#            when /\A"(?:[^"\\]+|\\.)*"/
-            when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
-              @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
-            # 行コメント
-            when /\A\/\/.*$/
-              # 読み飛ばすだけ
-            # コメント開始
-            when /\A\/\*/
-              comment = true
-            when /\A>>=/, /\A<<=/, /\A>>/,  /\A<</
-              @q << [$&, Token.new($&, file, lineno, col)]
-            when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
-              @q << [$&, Token.new($&, file, lineno, col)]
-            when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
-              @q << [$&, Token.new($&, file, lineno, col)]
-            when /\A./
-              @q << [$&, Token.new($&, file, lineno, col)]
-            else
-              raise
-            end
-          end
-
-          line = $'
-          col += $&.length
-        end
-
-        lineno += 1
-      }
-
-     rescue => evar
-       Generator.error( "B1002 while open or reading \'$1\'" , file )
-       print_exception( evar )
-     end
-    }
-
-    # 終了の印
-    @q << nil
-
-    @yydebug = true
-    do_parse
-
-   ensure
-    @@generator_nest -= 1
-    TECS_LANG::reset_kcode
-   end
-
-  end
-
-
-  def next_token
-    token = @q.shift
-
-    if token then
-      @@current_locale[@@generator_nest] = token[1].locale
-
-      case token[1].val
-      when ";", ":", ",", "(", ")", "{", "}"
-        set_no_type_name false
-      when ".", "->"
-        set_no_type_name true
-      end
-
-      # TYPE_NAME トークンへ置き換え
-      if @b_no_type_name == false
-        if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
-          token[0] = :TYPE_NAME
-        end
-      end
-
-      if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 
-        locale = @@current_locale[@@generator_nest]
-        if token then
-          print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
-        else
-          print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
-        end
-      end
-    end
-
-    token
-  end
-
-  def on_error(t, v, vstack)
-    if v == "$" then
-     Generator.error( "B1003 Unexpected EOF"  )
-    else
-     Generator.error( "B1004 syntax error near \'$1\'" , v.val )
-    end
-
-  end
-
-  def self.current_locale
-    @@current_locale[ @@generator_nest ]
-  end
-
-  @@n_error = 0
-  @@n_warning = 0
-
-  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
-  def self.error( msg )
-    @@n_error += 1
-    locale = @@current_locale[ @@generator_nest ]
-
-    if locale then
-      Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
-    else
-      Console.puts "error: #{msg}"
-    end
-  end
-
-  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でウォーニング発生は不適切）
-  def self.warning( msg )
-    @@n_warning += 1
-    locale = @@current_locale[ @@generator_nest ]
-    Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
-  end
-
-  def self.get_n_error
-    @@n_error
-  end
-
-  def self.get_n_warning
-    @@n_warning
-  end
-
-  def self.get_nest
-    @@generator_nest
-  end
-
-  def set_no_type_name b_no_type_name
-    # print "b_no_type_name=#{b_no_type_name}\n"
-    @b_no_type_name = b_no_type_name
-  end
+module_eval(<<'...end C_parser.y.rb/module_eval...', 'C_parser.y.rb', 784)
+
+	RESERVED = {
+		# keyword
+		'typedef' => :TYPEDEF,
+		'struct' => :STRUCT,
+		'union' => :UNION,
+		'sizeof' => :SIZEOF,
+		'throw' => :THROW,
+
+		# specifier
+		# types
+		'void'    => :VOID,
+		'char'    => :CHAR,
+		'short'   => :SHORT,
+
+		'volatile'=> :VOLATILE,
+		'restrict'=> :RESTRICT,
+		'const'   => :CONST,
+		'extern'   => :EXTERN,
+
+		'long'    => :LONG,
+		'float'   => :FLOAT,
+		'double'  => :DOUBLE,
+		'signed'  => :SIGNED,
+		'unsigned'=> :UNSIGNED,
+
+		'int'     => :INT,
+		'enum'    => :ENUM,
+
+		'if'      => :IF,
+		'else'    => :ELSE,
+		'while'   => :WHILE,
+		'do'      => :DO,
+		'for'     => :FOR,
+		'switch'  => :SWITCH,
+		'case'    => :CASE,
+		'default' => :DEFAULT,
+		'goto'    => :GOTO,
+		'continue' => :CONTINUE,
+		'break'   => :BREAK,
+		'return'  => :RETURN,
+		'__inline__'  => :__INLINE__,
+		'inline'  => :INLINE,
+		'__inline'  => :__INLINE,
+		'Inline'  => :CINLINE,        # inline starting with Capital letter
+		'static'  => :STATIC,
+		'register' => :REGISTER,
+		'auto'    => :AUTO,
+		'__extension__'    => :EXTENSION,
+		'__asm__' => :_ASM,
+		'asm' =>     :_ASM
+
+	}
+
+	@@generator_nest = -1
+	@@generator_stack = []
+	@@current_locale = []
+
+	def finalize
+
+		# mikan Namespace.pop
+		Celltype.pop
+		Cell.pop
+		CompositeCelltype.pop
+		Region.pop
+
+	end
+
+	def set_plugin( plugin )
+		@plugin = plugin
+	end
+
+	def self.get_plugin
+		@@generator_stack[@@generator_nest].get_plugin
+	end
+
+	def get_plugin
+		@plugin
+	end
+
+	def parse(files)
+
+		# mikan Namespace.push
+		Celltype.push
+		Cell.push
+		CompositeCelltype.push
+		Region.push
+
+		@@generator_nest += 1
+		@@generator_stack[@@generator_nest] = self
+		@b_no_type_name = false
+
+	begin
+
+		@q = []
+		comment = false
+#		b_asm   = false
+
+		# euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
+		TECS_LANG::set_kcode_binary
+
+		# 800U, 0xffLL など (整数リテラルに共通の修飾子)
+		integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
+
+		files.each {|file|
+			lineno = 1
+		begin
+#2.0		IO.foreach(file) {|line|
+			TECSIO.foreach(file) {|line|
+			col = 1
+			line.rstrip!
+
+			until line.empty?
+
+				if comment
+					case line
+					# コメント終了
+					when /\A\*\//
+						comment = false
+					when /\A./
+						;
+					end
+				else
+					case line
+					# 空白、プリプロセスディレクティブ
+					when /\A\s+/
+						;
+					# 識別子
+					when /\A[a-zA-Z_]\w*/
+						word = $&
+						@q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
+					# 16 進数定数
+					when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
+						@q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
+					# 8 進数定数
+					when /\A0[0-7]+#{integer_qualifier}/
+						@q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
+					# 浮動小数定数
+					when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
+						@q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
+					# 整数定数
+					when /\A\d+#{integer_qualifier}/
+					# when /\A\d+/
+						@q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
+					# 文字
+					when /\A'(?:[^'\\]|\\.)'/
+						@q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
+					# 文字列
+#					"#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
+#					when /\A"(?:[^"\\]+|\\.)*"/
+					when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
+						@q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
+					# 行コメント
+					when /\A\/\/.*$/
+						# 読み飛ばすだけ
+					# コメント開始
+					when /\A\/\*/
+						comment = true
+					when /\A>>=/, /\A<<=/, /\A>>/,  /\A<</
+						@q << [$&, Token.new($&, file, lineno, col)]
+					when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
+						@q << [$&, Token.new($&, file, lineno, col)]
+					when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
+						@q << [$&, Token.new($&, file, lineno, col)]
+					when /\A\|\|/, /\A\&\&/
+						@q << [$&, Token.new($&, file, lineno, col)]
+					when /\A./
+						@q << [$&, Token.new($&, file, lineno, col)]
+					else
+						raise
+					end
+				end
+
+				line = $'
+				col += $&.length
+			end
+
+			lineno += 1
+		}
+
+		rescue => evar
+			Generator.error( "B1002 while open or reading \'$1\'" , file )
+			print_exception( evar )
+		end
+	}
+
+	# 終了の印
+	@q << nil
+
+	@yydebug = true
+	do_parse
+
+		ensure
+			@@generator_nest -= 1
+			TECS_LANG::reset_kcode
+		end
+
+	end
+
+
+	def next_token
+		token = @q.shift
+
+		if token then
+			@@current_locale[@@generator_nest] = token[1].locale
+
+			case token[1].val
+			when ";", ":", ",", "(", ")", "{", "}"
+			set_no_type_name false
+			when ".", "->"
+			set_no_type_name true
+			end
+
+			# TYPE_NAME トークンへ置き換え
+			if @b_no_type_name == false
+				if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
+					token[0] = :TYPE_NAME
+					locale = @@current_locale[@@generator_nest]
+#print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}: type_name'\n" )
+				end
+			end
+
+			if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 
+				locale = @@current_locale[@@generator_nest]
+				if token then
+					print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
+				else
+					print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
+				end
+			end
+		end
+
+		token
+	end
+
+	def on_error(t, v, vstack)
+		if v == "$" then
+			Generator.error( "B1003 Unexpected EOF"  )
+		else
+			Generator.error( "B1004 syntax error near \'$1\'" , v.val )
+		end
+
+	end
+
+	def self.current_locale
+		@@current_locale[ @@generator_nest ]
+	end
+
+	@@n_error = 0
+	@@n_warning = 0
+	@@n_info = 0
+
+	# このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
+	def self.error( msg )
+		@@n_error += 1
+		locale = @@current_locale[ @@generator_nest ]
+
+		if locale then
+			Console.puts "#{locale[0]}:#{locale[1]}: error: #{msg}"
+		else
+			Console.puts "error: #{msg}"
+		end
+	end
+
+	# このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でウォーニング発生は不適切）
+	def self.warning( msg )
+		@@n_warning += 1
+		locale = @@current_locale[ @@generator_nest ]
+		Console.puts "#{locale[0]}:#{locale[1]}: warning: #{msg}"
+	end
+
+	# このメソッドは構文解析、意味解析からのみ呼出し可
+	def self.info( msg )
+		@@n_info += 1
+		locale = @@current_locale[ @@generator_nest ]
+		Console.puts "#{locale[0]}:#{locale[1]}: info: #{msg}"
+	end
+
+	def self.get_n_error
+		@@n_error
+	end
+
+	def self.get_n_warning
+		@@n_warning
+	end
+
+	def self.get_nest
+		@@generator_nest
+	end
+
+	def set_no_type_name b_no_type_name
+		locale = @@current_locale[ @@generator_nest ]
+#print "b_no_type_name=#{b_no_type_name} #{locale[0]}: line #{locale[1]}\n"
+		@b_no_type_name = b_no_type_name
+	end
 
 ...end C_parser.y.rb/module_eval...
@@ -291,128 +309,145 @@
 
 clist = [
-'104,105,106,107,108,110,68,111,66,179,300,141,53,116,117,206,115,118',
-'119,120,121,122,123,104,105,106,107,108,110,168,111,203,204,207,141',
-'74,116,117,168,115,118,119,120,121,122,123,303,208,67,299,65,26,27,104',
-'105,106,107,108,110,73,111,26,27,75,141,348,116,117,167,115,118,119',
-'120,121,122,123,77,265,195,196,160,304,305,306,307,308,309,310,311,312',
-'313,262,351,142,8,9,10,11,15,16,17,18,19,20,21,22,53,192,23,25,26,27',
-'193,194,343,261,142,104,105,106,107,108,110,344,111,172,340,151,141',
-'272,116,117,251,115,118,119,120,121,122,123,104,105,106,107,108,110',
-'142,111,355,171,339,141,81,116,117,80,115,118,119,120,121,122,123,104',
-'105,106,107,108,110,52,111,195,196,3,141,51,116,117,359,115,118,119',
-'120,121,122,123,104,105,106,107,108,110,373,111,96,335,361,141,334,116',
-'117,344,115,118,119,120,121,122,123,79,142,247,335,272,251,334,251,51',
-'104,105,106,107,108,110,81,111,53,80,362,234,363,116,117,142,115,118',
-'119,120,121,122,123,247,52,364,251,197,198,51,51,197,198,79,197,198',
-'53,53,142,228,365,8,9,10,11,15,16,17,18,19,20,21,22,77,192,23,25,26',
-'27,193,194,142,229,95,230,231,232,233,87,235,236,238,239,240,241,192',
-'199,200,201,202,193,194,197,198,370,37,38,39,40,41,42,43,44,142,104',
-'105,106,107,108,110,86,111,203,204,85,141,375,116,117,376,115,118,119',
-'120,121,122,123,104,105,106,107,108,110,377,111,195,196,378,141,379',
-'116,117,380,115,118,119,120,121,122,123,104,105,106,107,108,110,382',
-'111,383,35,384,141,63,116,117,60,115,118,119,120,121,122,123,104,105',
-'106,107,108,110,389,111,209,210,390,141,391,116,117,392,115,118,119',
-'120,121,122,123,59,142,394,34,396,8,9,10,11,15,16,17,18,19,20,21,22',
-'52,278,23,25,26,27,51,142,36,52,52,52,35,53,52,51,51,51,197,198,51,45',
-'53,53,53,277,275,53,269,268,142,267,37,38,39,40,41,42,43,44,181,95,182',
-'254,183,184,185,199,200,201,202,253,34,142,8,9,10,11,15,16,17,18,19',
-'20,21,22,245,244,23,25,26,27,243,30,36,104,105,106,107,108,110,214,111',
-'213,208,207,141,206,116,117,205,115,118,119,120,121,122,123,37,38,39',
-'40,41,42,43,44,301,104,105,106,107,108,110,314,111,315,317,318,234,319',
-'116,117,321,115,118,119,120,121,122,123,52,52,52,322,52,323,51,51,51',
-'324,51,327,174,53,53,53,228,53,8,9,10,11,15,16,17,18,19,20,21,22,77',
-'173,23,25,26,27,75,95,142,229,169,230,231,232,233,161,235,236,238,239',
-'240,241,199,200,201,202,346,347,205,,,,37,38,39,40,41,42,43,44,142,104',
-'105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
-',,104,105,106,107,108,110,,111,,,,234,,116,117,,115,118,119,120,121',
-'122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11,15,16,17,18,19,20,21,22,77,,23',
-'25,26,27,,,,229,,230,231,232,233,142,235,236,238,239,240,241,,,,,,,',
-',,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,,,,234,',
-'116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11',
-'15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,,230,231,232,233,,235',
-'236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105,106',
-'107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104,105',
-'106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104',
-'105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
-'104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122',
-'123,,142,,,,,,,,104,105,106,107,108,110,,111,,,,141,,116,117,142,115',
-'118,119,120,121,122,123,104,105,106,107,108,110,,111,,366,,141,,116',
-'117,142,115,118,119,120,121,122,123,,,,,,,,104,105,106,107,108,110,',
-'111,142,,,234,,116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,',
-'228,142,8,9,10,11,15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,142',
-'230,231,232,233,,235,236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42',
-'43,44,142,104,105,106,107,108,110,,111,,,,234,,116,117,,115,118,119',
-'120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9,10,11,15,16,17,18,19,20,21',
-'22,77,,23,25,26,27,,,,229,,230,231,232,233,,235,236,238,239,240,241',
-',,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,',
-',,234,,116,117,,115,118,119,120,121,122,123,,,,,,,,,,,,,,,,,228,,8,9',
-'10,11,15,16,17,18,19,20,21,22,77,,23,25,26,27,,,,229,,230,231,232,233',
-',235,236,238,239,240,241,,,,,,,,,,,37,38,39,40,41,42,43,44,142,104,105',
-'106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,104',
-'105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
-'104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122',
-'123,104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121',
-'122,123,,142,,,,,,139,,,,,,140,104,105,106,107,108,110,,111,,145,142',
-'141,,116,117,,115,118,119,120,121,122,123,104,105,106,107,108,110,,111',
-',,142,141,,116,117,,115,118,119,120,121,122,123,104,105,106,107,108',
-'110,,111,,,142,141,,116,117,,115,118,119,120,121,122,123,104,105,106',
-'107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123,,142,',
-',,,,,,104,105,106,107,108,110,,111,,,,141,,116,117,142,115,118,119,120',
-'121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,142,115,118',
-'119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,142',
-'115,118,119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116',
-'117,,115,118,119,120,121,122,123,,142,,,,,,139,349,,,,,140,104,105,106',
-'107,108,110,,111,,,142,141,,116,117,,115,118,119,120,121,122,123,104',
-'105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120,121,122',
-'123,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120',
-'121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,,115,118,119',
-'120,121,122,123,,142,,,,,,,,104,105,106,107,108,110,,111,,,,141,,116',
-'117,142,115,118,119,120,121,122,123,104,105,106,107,108,110,,111,,,',
-'141,,116,117,142,115,118,119,120,121,122,123,104,105,106,107,108,110',
-',111,,,,141,,116,117,142,115,118,119,120,121,122,123,,,,,,,,,,104,105',
-'106,107,108,110,,111,,,,234,,116,117,142,115,118,119,120,121,122,123',
-',,,,,,,,,,,,,,,142,228,,8,9,10,11,15,16,17,18,19,20,21,22,77,237,23',
-'25,26,27,,,142,229,,230,231,232,233,,235,236,238,239,240,241,,,,,,,',
-',,,37,38,39,40,41,42,43,44,142,104,105,106,107,108,110,,111,,336,,141',
-',116,117,,115,118,119,120,121,122,123,104,105,106,107,108,110,,111,',
-',,141,,116,117,,115,118,119,120,121,122,123,8,9,10,11,15,16,17,18,19',
-'20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26',
-'27,,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118,119,120',
-'121,122,123,104,105,106,107,108,110,,111,,,142,141,,116,117,,115,118',
-'119,120,121,122,123,104,105,106,107,108,110,,111,,,,141,,116,117,,115',
-'118,119,120,121,122,123,104,105,106,107,108,187,,111,,,,141,,116,117',
-',115,118,119,120,121,122,123,,142,,,,,,,,104,105,106,107,108,189,,111',
-',,,141,,116,117,142,115,118,119,120,121,122,123,104,105,106,107,108',
-'189,,111,,,,141,,116,117,142,115,118,119,120,121,122,123,104,105,106',
-'107,108,110,,111,,,,141,,116,117,142,115,118,119,120,121,122,123,104',
-'105,106,107,108,110,,111,,,,141,,116,117,,115,118,119,120,121,122,123',
-',142,,,,,,139,,,,,,140,272,332,326,251,104,105,106,107,108,110,142,111',
-',53,,141,,116,117,,115,118,119,120,121,122,123,,,,,,,142,,,8,9,10,11',
-'15,16,17,18,19,20,21,22,,,23,25,26,27,,,142,104,105,106,107,108,110',
-',111,,,,234,,116,117,,115,118,119,120,121,122,123,37,38,39,40,41,42',
-'43,44,,,,,,,,,228,142,8,9,10,11,15,16,17,18,19,20,21,22,77,,23,25,26',
-'27,,,,229,,230,231,232,233,,235,236,238,239,240,241,368,,,,,,,,,,37',
-'38,39,40,41,42,43,44,142,247,332,,251,,,51,,,,,,,53,,,8,9,10,11,15,16',
-'17,18,19,20,21,22,,,23,25,26,27,,,8,9,10,11,15,16,17,18,19,20,21,22',
-',,23,25,26,27,147,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,328,,,,37,38',
-'39,40,41,42,43,44,,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,8',
-'9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41',
-'42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19',
-'20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,338,23,25',
-'26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,,,37,38,39,40,41,42,43',
-'44,8,9,10,11,15,16,17,18,19,20,21,22,,162,23,25,26,27,8,9,10,11,15,16',
-'17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,',
-',,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22,,,23',
-'25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37',
-'38,39,40,41,42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15',
-'16,17,18,19,20,21,22,,255,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21',
-'22,,,23,25,26,27,,,,,,,,,37,38,39,40,41,42,43,44,,,,,,,,,,,37,38,39',
-'40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22,,260,23,25,26,27,8',
-'9,10,11,15,16,17,18,19,20,21,22,,,23,25,26,27,,,,,,,,,37,38,39,40,41',
-'42,43,44,,,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19',
-'20,21,22,,,23,25,26,27,8,9,10,11,15,16,17,18,19,20,21,22,,,23,25,26',
-'27,,,,,,,,,37,38,39,40,41,42,43,44,8,9,10,11,15,16,17,18,19,20,21,22',
-',,23,25,26,27' ]
-        racc_action_table = arr = ::Array.new(2877, nil)
+'111,112,113,114,115,117,294,118,56,298,55,163,54,123,124,82,54,262,122',
+'125,126,127,128,129,130,111,112,113,114,115,117,217,118,271,391,101',
+'163,91,123,124,82,271,271,122,125,126,127,128,129,130,56,70,171,72,82',
+'69,397,71,80,32,33,34,224,309,271,223,216,226,84,227,228,229,84,392',
+'101,325,272,171,298,312,80,164,165,172,393,173,174,175,176,177,178,179',
+'180,149,181,101,218,79,308,369,388,32,33,34,265,266,164,165,172,73,173',
+'174,175,176,177,178,179,180,149,181,111,112,113,114,115,117,384,118',
+'32,33,34,163,78,123,124,82,440,402,122,125,126,127,128,129,130,55,219',
+'271,271,383,101,54,332,248,325,387,55,298,249,250,56,382,54,111,112',
+'113,114,115,117,56,118,56,171,331,163,395,123,124,82,276,210,122,125',
+'126,127,128,129,130,420,55,378,210,248,377,396,54,330,249,250,393,92',
+'164,165,172,56,173,174,175,176,177,178,179,180,149,181,171,9,10,11,12',
+'13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,355,356',
+'213,164,165,172,204,173,174,175,176,177,178,179,180,149,181,111,112',
+'113,114,115,117,404,118,93,378,203,163,377,123,124,82,193,271,122,125',
+'126,127,128,129,130,111,112,113,114,115,117,290,118,101,86,55,163,85',
+'123,124,82,54,291,122,125,126,127,128,129,130,56,357,171,13,14,15,16',
+'17,18,19,20,21,22,26,28,30,31,32,33,34,248,86,322,438,85,249,250,171',
+'434,435,370,164,165,172,271,173,174,175,176,177,178,179,180,149,181',
+'259,260,261,321,255,256,257,258,315,316,262,164,165,172,271,173,174',
+'175,176,177,178,179,180,149,181,111,112,113,114,115,117,403,118,317',
+'318,263,163,264,123,124,82,320,271,122,125,126,127,128,129,130,13,14',
+'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,437,111,112,113,114,115',
+'117,360,118,400,171,271,163,368,123,124,82,166,103,122,125,126,127,128',
+'129,130,102,55,255,256,257,258,310,54,255,256,257,258,405,164,165,172',
+'56,173,174,175,176,177,178,179,180,149,181,171,9,10,11,12,13,14,15,16',
+'17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,259,260,301,164,165',
+'172,300,173,174,175,176,177,178,179,180,149,181,111,112,113,114,115',
+'117,408,118,253,254,292,163,409,123,124,82,253,254,122,125,126,127,128',
+'129,130,111,112,113,114,115,117,410,118,253,254,55,163,289,123,124,82',
+'54,288,122,125,126,127,128,129,130,56,415,171,13,14,15,16,17,18,19,20',
+'21,22,26,28,30,31,32,33,34,253,254,253,254,251,252,261,171,211,212,285',
+'164,165,172,284,173,174,175,176,177,178,179,180,149,181,237,238,239',
+'240,241,242,243,244,245,246,247,164,165,172,283,173,174,175,176,177',
+'178,179,180,149,181,111,112,113,114,115,117,282,118,251,252,389,163',
+'389,123,124,82,251,252,122,125,126,127,128,129,130,111,112,113,114,115',
+'117,101,118,67,82,55,163,64,123,124,82,54,63,122,125,126,127,128,129',
+'130,56,55,171,55,55,294,280,54,298,54,54,54,279,430,431,432,56,433,56',
+'56,56,365,436,278,263,275,264,171,273,270,48,164,165,172,444,173,174',
+'175,176,177,178,179,180,149,181,269,3,,,,,,,,,,164,165,172,,173,174',
+'175,176,177,178,179,180,149,181,111,112,113,114,115,117,,118,,,,163',
+',123,124,82,,,122,125,126,127,128,129,130,111,112,113,114,115,117,,118',
+',,,148,,123,124,,,,122,125,126,127,128,129,130,,,171,111,112,113,114',
+'115,117,,118,,,,148,,123,124,,,,122,125,126,127,128,129,130,,,,164,165',
+'172,,173,174,175,176,177,178,179,180,149,181,,,,,,,111,112,113,114,115',
+'117,,118,,411,,148,,123,124,,,149,122,125,126,127,128,129,130,,,,111',
+'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
+'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
+'128,129,130,,,171,,,,,,,,,,,,,149,,111,112,113,114,115,117,,118,,,171',
+'148,,123,124,,,,122,125,126,127,128,129,130,,149,,,,,,,,111,112,113',
+'114,115,117,,118,,,,148,,123,124,146,398,149,122,125,126,127,128,129',
+'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
+'128,129,130,111,112,113,114,115,117,,118,,149,,148,,123,124,389,,,122',
+'125,126,127,128,129,130,,,,147,,,111,112,113,114,115,117,,118,,,,148',
+'149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,',
+'118,,379,,148,149,123,124,,,,122,125,126,127,128,129,130,,,,,,,,,,,',
+',149,,,,,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126',
+'127,128,129,130,,149,,,,,,,,,,,,,,,,,,,,,,,,,149,171,9,10,11,12,13,14',
+'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,111,112,113',
+'114,115,117,,118,,,,148,,123,124,149,,,122,125,126,127,128,129,130,111',
+'112,113,114,115,117,,118,,,,148,,123,124,146,,,122,125,126,127,128,129',
+'130,111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127',
+'128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122',
+'125,126,127,128,129,130,,,147,,,111,112,113,114,115,117,,118,,,,148',
+'149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,',
+'118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113,114',
+'115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,111,112',
+'113,114,115,117,,118,,,,148,,123,124,146,,149,122,125,126,127,128,129',
+'130,111,112,113,114,115,117,427,118,,,,148,,123,124,,,149,122,125,126',
+'127,128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149',
+'122,125,126,127,128,129,130,,,147,,,111,112,113,114,115,117,,118,,185',
+',148,149,123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115',
+'117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112',
+'113,114,115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130',
+'111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128',
+'129,130,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126',
+'127,128,129,130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149',
+'122,125,126,127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123',
+'124,,,149,122,125,126,127,128,129,130,111,112,113,114,115,117,,118,',
+',,148,,123,124,,,149,122,125,126,127,128,129,130,,111,112,113,114,115',
+'117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113',
+'114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111',
+'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
+'130,,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126',
+'127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123,124,,,149,122',
+'125,126,127,128,129,130,111,112,113,114,115,117,,118,,,,148,,123,124',
+',,149,122,125,126,127,128,129,130,,111,112,113,114,115,117,,118,,,,148',
+',123,124,,,149,122,125,126,127,128,129,130,111,112,113,114,115,117,',
+'118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113,114',
+'115,117,,118,,,,148,,123,124,146,,149,122,125,126,127,128,129,130,,111',
+'112,113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129',
+'130,,,,,,,,,,,,,,,,,,149,,,,,,,,,,147,,,111,112,113,114,115,117,,118',
+',,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113,114,115',
+'117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,,,,,,13',
+'14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114,115',
+'117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,,111,112',
+'113,114,115,231,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130',
+'111,112,113,114,115,233,,118,,,,148,,123,124,,,,122,125,126,127,128',
+'129,130,111,112,113,114,115,233,,118,,,,148,,123,124,,,149,122,125,126',
+'127,128,129,130,,,,,,,,,,,,,111,112,113,114,115,117,149,118,,,,148,',
+'123,124,,,,122,125,126,127,128,129,130,111,112,113,114,115,117,149,118',
+',,,148,,123,124,,,,122,125,126,127,128,129,130,,,,,,,149,13,14,15,16',
+'17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114,115,117,,118',
+',,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112,113,114,115',
+'117,327,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,,,,,,',
+',13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,,,111,112,113,114',
+'115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130,111,112',
+'113,114,115,117,,118,,,,148,,123,124,,,149,122,125,126,127,128,129,130',
+'111,112,113,114,115,117,,118,,,,148,,123,124,,,,122,125,126,127,128',
+'129,130,,111,112,113,114,115,117,429,118,,,,148,,123,124,,,149,122,125',
+'126,127,128,129,130,,287,,,,111,112,113,114,115,117,,118,,,,148,149',
+'123,124,146,442,,122,125,126,127,128,129,130,111,112,113,114,115,117',
+',118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,,111,112,113',
+'114,115,117,,118,,,,148,149,123,124,,,,122,125,126,127,128,129,130,',
+',147,,,,,,,,,,,,,,46,149,,,,,,,,,,,,,,,,,,,,,,,,,149,,,46,,,,,,,,,,',
+',,,,,,,,,,,,149,45,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30',
+'31,32,33,34,35,36,37,38,,,47,45,9,10,11,12,13,14,15,16,17,18,19,20,21',
+'22,26,28,30,31,32,33,34,35,36,37,38,,41,47,294,375,,298,,,54,,,,,,,',
+',56,,,,,,,,,,325,375,,298,,,,,,,,,,,,56,,,,,,,,9,10,11,12,13,14,15,16',
+'17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14',
+'15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,188,,,,,192',
+',,,,,,,,,,,,,,,,,,,413,,,,,,,,,,,,,,,,,,,,,,9,10,11,12,13,14,15,16,17',
+'18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15',
+'16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,371,9,10,11,12',
+'13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,,,,,',
+'205,,,,,,,,,,,,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31',
+'32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28',
+'30,31,32,33,34,35,36,37,38,307,,,,,,,,,,,,,,,,,,,,,,,,,381,,,,,,,,,',
+',,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36',
+'37,38,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34',
+'35,36,37,38,302,9,10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31',
+'32,33,34,35,36,37,38,,,,,,,,,,,,9,10,11,12,13,14,15,16,17,18,19,20,21',
+'22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17,18,19',
+'20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15,16,17',
+'18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13,14,15',
+'16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11,12,13',
+'14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9,10,11',
+'12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37,38,9',
+'10,11,12,13,14,15,16,17,18,19,20,21,22,26,28,30,31,32,33,34,35,36,37',
+'38' ]
+        racc_action_table = arr = ::Array.new(3198, nil)
         idx = 0
         clist.each do |str|
@@ -424,133 +459,147 @@
 
 clist = [
-'208,208,208,208,208,208,24,208,23,112,211,208,53,208,208,295,208,208',
-'208,208,208,208,208,209,209,209,209,209,209,93,209,130,130,296,209,46',
-'209,209,170,209,209,209,209,209,209,209,215,297,24,211,23,53,53,187',
-'187,187,187,187,187,46,187,112,112,48,187,298,187,187,93,187,187,187',
-'187,187,187,187,48,170,285,285,88,215,215,215,215,215,215,215,215,215',
-'215,164,301,208,187,187,187,187,187,187,187,187,187,187,187,187,83,283',
-'187,187,187,187,283,283,273,164,209,392,392,392,392,392,392,273,392',
-'99,257,82,392,271,392,392,271,392,392,392,392,392,392,392,179,179,179',
-'179,179,179,187,179,316,99,257,179,50,179,179,50,179,179,179,179,179',
-'179,179,192,192,192,192,192,192,49,192,286,286,1,192,49,192,192,320',
-'192,192,192,192,192,192,192,193,193,193,193,193,193,345,193,68,250,322',
-'193,250,193,193,345,193,193,193,193,193,193,193,49,392,246,330,178,246',
-'330,178,246,390,390,390,390,390,390,78,390,178,78,325,390,328,390,390',
-'179,390,390,390,390,390,390,390,150,158,331,150,287,287,150,158,288',
-'288,246,289,289,150,158,192,390,333,390,390,390,390,390,390,390,390',
-'390,390,390,390,390,284,390,390,390,390,284,284,193,390,67,390,390,390',
-'390,64,390,390,390,390,390,390,126,129,129,129,129,126,126,290,290,337',
-'390,390,390,390,390,390,390,390,390,379,379,379,379,379,379,62,379,293',
-'293,61,379,352,379,379,353,379,379,379,379,379,379,379,378,378,378,378',
-'378,378,354,378,127,127,355,378,356,378,378,357,378,378,378,378,378',
-'378,378,194,194,194,194,194,194,363,194,367,30,369,194,22,194,194,14',
-'194,194,194,194,194,194,194,195,195,195,195,195,195,380,195,135,135',
-'385,195,387,195,195,388,195,195,195,195,195,195,195,12,379,391,30,395',
-'30,30,30,30,30,30,30,30,30,30,30,30,92,183,30,30,30,30,92,378,30,262',
-'74,4,2,92,72,262,74,4,128,128,72,3,262,74,4,182,180,72,176,175,194,173',
-'30,30,30,30,30,30,30,30,113,168,113,155,113,113,113,291,291,291,291',
-'154,2,195,2,2,2,2,2,2,2,2,2,2,2,2,148,146,2,2,2,2,144,2,2,196,196,196',
-'196,196,196,142,196,140,134,133,196,132,196,196,131,196,196,196,196',
-'196,196,196,2,2,2,2,2,2,2,2,213,377,377,377,377,377,377,229,377,230',
-'232,233,377,234,377,377,236,377,377,377,377,377,377,377,340,216,172',
-'238,52,239,340,216,172,240,52,242,109,340,216,172,377,52,377,377,377',
-'377,377,377,377,377,377,377,377,377,377,103,377,377,377,377,102,96,196',
-'377,95,377,377,377,377,89,377,377,377,377,377,377,292,292,292,292,276',
-'279,294,,,,377,377,377,377,377,377,377,377,377,169,169,169,169,169,169',
-',169,,,,169,,169,169,,169,169,169,169,169,169,169,,,376,376,376,376',
-'376,376,,376,,,,376,,376,376,,376,376,376,376,376,376,376,,,,,,,,,,',
-',,,,,,376,,376,376,376,376,376,376,376,376,376,376,376,376,376,,376',
-'376,376,376,,,,376,,376,376,376,376,169,376,376,376,376,376,376,,,,',
-',,,,,,376,376,376,376,376,376,376,376,376,359,359,359,359,359,359,,359',
-',,,359,,359,359,,359,359,359,359,359,359,359,,,,,,,,,,,,,,,,,359,,359',
-'359,359,359,359,359,359,359,359,359,359,359,359,,359,359,359,359,,,',
-'359,,359,359,359,359,,359,359,359,359,359,359,,,,,,,,,,,359,359,359',
-'359,359,359,359,359,359,197,197,197,197,197,197,,197,,,,197,,197,197',
-',197,197,197,197,197,197,197,348,348,348,348,348,348,,348,,,,348,,348',
-'348,,348,348,348,348,348,348,348,344,344,344,344,344,344,,344,,,,344',
-',344,344,,344,344,344,344,344,344,344,189,189,189,189,189,189,,189,',
-',,189,,189,189,,189,189,189,189,189,189,189,,197,,,,,,,,198,198,198',
-'198,198,198,,198,,,,198,,198,198,348,198,198,198,198,198,198,198,334',
-'334,334,334,334,334,,334,,334,,334,,334,334,344,334,334,334,334,334',
-'334,334,,,,,,,,321,321,321,321,321,321,,321,189,,,321,,321,321,,321',
-'321,321,321,321,321,321,,,,,,,,,,,,,,,,,321,198,321,321,321,321,321',
-'321,321,321,321,321,321,321,321,,321,321,321,321,,,,321,334,321,321',
-'321,321,,321,321,321,321,321,321,,,,,,,,,,,321,321,321,321,321,321,321',
-'321,321,319,319,319,319,319,319,,319,,,,319,,319,319,,319,319,319,319',
-'319,319,319,,,,,,,,,,,,,,,,,319,,319,319,319,319,319,319,319,319,319',
-'319,319,319,319,,319,319,319,319,,,,319,,319,319,319,319,,319,319,319',
-'319,319,319,,,,,,,,,,,319,319,319,319,319,319,319,319,319,396,396,396',
-'396,396,396,,396,,,,396,,396,396,,396,396,396,396,396,396,396,,,,,,',
-',,,,,,,,,,396,,396,396,396,396,396,396,396,396,396,396,396,396,396,',
-'396,396,396,396,,,,396,,396,396,396,396,,396,396,396,396,396,396,,,',
-',,,,,,,396,396,396,396,396,396,396,396,396,318,318,318,318,318,318,',
-'318,,,,318,,318,318,,318,318,318,318,318,318,318,317,317,317,317,317',
-'317,,317,,,,317,,317,317,,317,317,317,317,317,317,317,75,75,75,75,75',
-'75,,75,,,,75,,75,75,,75,75,75,75,75,75,75,315,315,315,315,315,315,,315',
-',,,315,,315,315,,315,315,315,315,315,315,315,,318,,,,,,75,,,,,,75,80',
-'80,80,80,80,80,,80,,80,317,80,,80,80,,80,80,80,80,80,80,80,181,181,181',
-'181,181,181,,181,,,75,181,,181,181,,181,181,181,181,181,181,181,314',
-'314,314,314,314,314,,314,,,315,314,,314,314,,314,314,314,314,314,314',
-'314,302,302,302,302,302,302,,302,,,,302,,302,302,,302,302,302,302,302',
-'302,302,,80,,,,,,,,199,199,199,199,199,199,,199,,,,199,,199,199,181',
-'199,199,199,199,199,199,199,200,200,200,200,200,200,,200,,,,200,,200',
-'200,314,200,200,200,200,200,200,200,300,300,300,300,300,300,,300,,,',
-'300,,300,300,302,300,300,300,300,300,300,300,275,275,275,275,275,275',
-',275,,,,275,,275,275,,275,275,275,275,275,275,275,,199,,,,,,300,300',
-',,,,300,201,201,201,201,201,201,,201,,,200,201,,201,201,,201,201,201',
-'201,201,201,201,207,207,207,207,207,207,,207,,,300,207,,207,207,,207',
-'207,207,207,207,207,207,210,210,210,210,210,210,,210,,,275,210,,210',
-'210,,210,210,210,210,210,210,210,202,202,202,202,202,202,,202,,,,202',
-',202,202,,202,202,202,202,202,202,202,,201,,,,,,,,269,269,269,269,269',
-'269,,269,,,,269,,269,269,207,269,269,269,269,269,269,269,203,203,203',
-'203,203,203,,203,,,,203,,203,203,210,203,203,203,203,203,203,203,204',
-'204,204,204,204,204,,204,,,,204,,204,204,202,204,204,204,204,204,204',
-'204,,,,,,,,,,143,143,143,143,143,143,,143,,,,143,,143,143,269,143,143',
-'143,143,143,143,143,,,,,,,,,,,,,,,,203,143,,143,143,143,143,143,143',
-'143,143,143,143,143,143,143,143,143,143,143,143,,,204,143,,143,143,143',
-'143,,143,143,143,143,143,143,,,,,,,,,,,143,143,143,143,143,143,143,143',
-'143,251,251,251,251,251,251,,251,,251,,251,,251,251,,251,251,251,251',
-'251,251,251,110,110,110,110,110,110,,110,,,,110,,110,110,,110,110,110',
-'110,110,110,110,70,70,70,70,70,70,70,70,70,70,70,70,,,70,70,70,70,110',
-'110,110,110,110,110,110,110,110,110,110,110,,,110,110,110,110,,205,205',
-'205,205,205,205,,205,,,251,205,,205,205,,205,205,205,205,205,205,205',
-'206,206,206,206,206,206,,206,,,110,206,,206,206,,206,206,206,206,206',
-'206,206,114,114,114,114,114,114,,114,,,,114,,114,114,,114,114,114,114',
-'114,114,114,115,115,115,115,115,115,,115,,,,115,,115,115,,115,115,115',
-'115,115,115,115,,205,,,,,,,,116,116,116,116,116,116,,116,,,,116,,116',
-'116,206,116,116,116,116,116,116,116,117,117,117,117,117,117,,117,,,',
-'117,,117,117,114,117,117,117,117,117,117,117,139,139,139,139,139,139',
-',139,,,,139,,139,139,115,139,139,139,139,139,139,139,241,241,241,241',
-'241,241,,241,,,,241,,241,241,,241,241,241,241,241,241,241,,116,,,,,',
-'139,,,,,,139,272,272,241,272,235,235,235,235,235,235,117,235,,272,,235',
-',235,235,,235,235,235,235,235,235,235,,,,,,,139,,,272,272,272,272,272',
-'272,272,272,272,272,272,272,,,272,272,272,272,,,241,231,231,231,231',
-'231,231,,231,,,,231,,231,231,,231,231,231,231,231,231,231,272,272,272',
-'272,272,272,272,272,,,,,,,,,231,235,231,231,231,231,231,231,231,231',
-'231,231,231,231,231,,231,231,231,231,,,,231,,231,231,231,231,,231,231',
-'231,231,231,231,335,,,,,,,,,,231,231,231,231,231,231,231,231,231,247',
-'247,,247,,,247,,,,,,,247,,,335,335,335,335,335,335,335,335,335,335,335',
-'335,,,335,335,335,335,,,247,247,247,247,247,247,247,247,247,247,247',
-'247,,,247,247,247,247,81,,,,,,335,335,335,335,335,335,335,335,,,,,,',
-',,245,,,,247,247,247,247,247,247,247,247,,81,81,81,81,81,81,81,81,81',
-'81,81,81,,,81,81,81,81,245,245,245,245,245,245,245,245,245,245,245,245',
-',,245,245,245,245,,,,,,,,,81,81,81,81,81,81,81,81,,,,,,,,,,,245,245',
-'245,245,245,245,245,245,5,5,5,5,5,5,5,5,5,5,5,5,,,5,5,5,5,252,252,252',
-'252,252,252,252,252,252,252,252,252,,252,252,252,252,252,,,,,,,,,5,5',
-'5,5,5,5,5,5,,,,,,,,,,,252,252,252,252,252,252,252,252,90,90,90,90,90',
-'90,90,90,90,90,90,90,,90,90,90,90,90,153,153,153,153,153,153,153,153',
-'153,153,153,153,,,153,153,153,153,,,,,,,,,90,90,90,90,90,90,90,90,,',
-',,,,,,,,153,153,153,153,153,153,153,153,87,87,87,87,87,87,87,87,87,87',
-'87,87,,,87,87,87,87,86,86,86,86,86,86,86,86,86,86,86,86,,,86,86,86,86',
-',,,,,,,,87,87,87,87,87,87,87,87,,,,,,,,,,,86,86,86,86,86,86,86,86,156',
-'156,156,156,156,156,156,156,156,156,156,156,,156,156,156,156,156,65',
-'65,65,65,65,65,65,65,65,65,65,65,,,65,65,65,65,,,,,,,,,156,156,156,156',
-'156,156,156,156,,,,,,,,,,,65,65,65,65,65,65,65,65,159,159,159,159,159',
-'159,159,159,159,159,159,159,,159,159,159,159,159,7,7,7,7,7,7,7,7,7,7',
-'7,7,,,7,7,7,7,,,,,,,,,159,159,159,159,159,159,159,159,,,,,,,,,,,7,7',
-'7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,,,6,6,6,6,36,36,36,36,36,36,36,36',
-'36,36,36,36,,,36,36,36,36,,,,,,,,,6,6,6,6,6,6,6,6,71,71,71,71,71,71',
-'71,71,71,71,71,71,,,71,71,71,71' ]
-        racc_action_check = arr = ::Array.new(2877, nil)
+'440,440,440,440,440,440,293,440,56,293,52,440,293,440,440,440,52,139',
+'440,440,440,440,440,440,440,438,438,438,438,438,438,106,438,354,326',
+'103,438,65,438,438,438,151,326,438,438,438,438,438,438,438,88,29,440',
+'31,51,29,354,31,109,56,56,56,120,207,286,120,106,120,293,120,120,120',
+'52,328,212,324,151,438,324,212,51,440,440,440,328,440,440,440,440,440',
+'440,440,440,440,440,318,110,49,207,286,318,88,88,88,142,142,438,438',
+'438,31,438,438,438,438,438,438,438,438,438,438,436,436,436,436,436,436',
+'304,436,120,120,120,436,49,436,436,436,428,362,436,436,436,436,436,436',
+'436,98,116,428,362,304,316,98,227,340,222,316,309,222,340,340,98,304',
+'309,167,167,167,167,167,167,222,167,309,436,226,167,333,167,167,167',
+'167,98,167,167,167,167,167,167,167,394,4,297,309,339,297,334,4,225,339',
+'339,394,66,436,436,436,4,436,436,436,436,436,436,436,436,436,436,167',
+'167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167,167',
+'167,167,167,167,167,167,167,167,267,267,101,167,167,167,95,167,167,167',
+'167,167,167,167,167,167,167,429,429,429,429,429,429,364,429,68,373,94',
+'429,373,429,429,429,87,364,429,429,429,429,429,429,429,427,427,427,427',
+'427,427,187,427,71,83,217,427,83,427,427,427,217,187,427,427,427,427',
+'427,427,427,217,269,429,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75',
+'75,75,133,53,221,426,53,133,133,427,418,418,291,429,429,429,426,429',
+'429,429,429,429,429,429,429,429,429,137,137,350,220,136,136,136,136',
+'214,214,351,427,427,427,220,427,427,427,427,427,427,427,427,427,427',
+'175,175,175,175,175,175,363,175,215,215,352,175,353,175,175,175,218',
+'363,175,175,175,175,175,175,175,76,76,76,76,76,76,76,76,76,76,76,76',
+'76,76,76,76,76,425,82,82,82,82,82,82,274,82,357,175,425,82,283,82,82',
+'82,82,73,82,82,82,82,82,82,82,72,201,347,347,347,347,209,201,348,348',
+'348,348,365,175,175,175,201,175,175,175,175,175,175,175,175,175,175',
+'82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82',
+'82,82,82,349,349,198,82,82,82,197,82,82,82,82,82,82,82,82,82,82,273',
+'273,273,273,273,273,371,273,135,135,189,273,374,273,273,273,346,346',
+'273,273,273,273,273,273,273,404,404,404,404,404,404,376,404,345,345',
+'79,404,186,404,404,404,79,184,404,404,404,404,404,404,404,79,380,273',
+'47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,344,344,343,343,342',
+'342,138,404,99,99,179,273,273,273,178,273,273,273,273,273,273,273,273',
+'273,273,131,131,131,131,131,131,131,131,131,131,131,404,404,404,177',
+'404,404,404,404,404,404,404,404,404,404,402,402,402,402,402,402,176',
+'402,341,341,395,402,396,402,402,402,134,134,402,402,402,402,402,402',
+'402,275,275,275,275,275,275,102,275,27,403,77,275,25,275,275,275,77',
+'23,275,275,275,275,275,275,275,77,55,402,152,384,191,174,55,191,152',
+'384,191,173,408,412,414,55,416,152,384,191,281,422,172,140,165,141,275',
+'163,149,3,402,402,402,437,402,402,402,402,402,402,402,402,402,402,147',
+'1,,,,,,,,,,275,275,275,,275,275,275,275,275,275,275,275,275,275,360',
+'360,360,360,360,360,,360,,,,360,,360,360,360,,,360,360,360,360,360,360',
+'360,249,249,249,249,249,249,,249,,,,249,,249,249,,,,249,249,249,249',
+'249,249,249,,,360,383,383,383,383,383,383,,383,,,,383,,383,383,,,,383',
+'383,383,383,383,383,383,,,,360,360,360,,360,360,360,360,360,360,360',
+'360,360,360,,,,,,,377,377,377,377,377,377,,377,,377,,377,,377,377,,',
+'249,377,377,377,377,377,377,377,,,,367,367,367,367,367,367,,367,,,,367',
+',367,367,,,383,367,367,367,367,367,367,367,366,366,366,366,366,366,',
+'366,,,,366,,366,366,,,,366,366,366,366,366,366,366,,,367,,,,,,,,,,,',
+',377,,393,393,393,393,393,393,,393,,,366,393,,393,393,,,,393,393,393',
+'393,393,393,393,,367,,,,,,,,356,356,356,356,356,356,,356,,,,356,,356',
+'356,356,356,366,356,356,356,356,356,356,356,330,330,330,330,330,330',
+',330,,,,330,,330,330,,,,330,330,330,330,330,330,330,322,322,322,322',
+'322,322,,322,,393,,322,,322,322,322,,,322,322,322,322,322,322,322,,',
+',356,,,310,310,310,310,310,310,,310,,,,310,356,310,310,,,,310,310,310',
+'310,310,310,310,298,298,298,298,298,298,,298,,298,,298,330,298,298,',
+',,298,298,298,298,298,298,298,,,,,,,,,,,,,322,,,,,282,282,282,282,282',
+'282,,282,,,,282,,282,282,,,,282,282,282,282,282,282,282,,310,,,,,,,',
+',,,,,,,,,,,,,,,,,298,282,282,282,282,282,282,282,282,282,282,282,282',
+'282,282,282,282,282,282,282,282,282,282,282,282,282,282,280,280,280',
+'280,280,280,,280,,,,280,,280,280,282,,,280,280,280,280,280,280,280,146',
+'146,146,146,146,146,,146,,,,146,,146,146,146,,,146,146,146,146,146,146',
+'146,278,278,278,278,278,278,,278,,,,278,,278,278,,,,278,278,278,278',
+'278,278,278,,397,397,397,397,397,397,,397,,,,397,,397,397,,,280,397',
+'397,397,397,397,397,397,,,146,,,405,405,405,405,405,405,,405,,,,405',
+'146,405,405,,,,405,405,405,405,405,405,405,271,271,271,271,271,271,',
+'271,,,,271,278,271,271,,,,271,271,271,271,271,271,271,,266,266,266,266',
+'266,266,,266,,,,266,397,266,266,,,,266,266,266,266,266,266,266,80,80',
+'80,80,80,80,,80,,,,80,,80,80,80,,405,80,80,80,80,80,80,80,406,406,406',
+'406,406,406,406,406,,,,406,,406,406,,,271,406,406,406,406,406,406,406',
+',265,265,265,265,265,265,,265,,,,265,,265,265,,,266,265,265,265,265',
+'265,265,265,,,80,,,85,85,85,85,85,85,,85,,85,,85,80,85,85,,,,85,85,85',
+'85,85,85,85,264,264,264,264,264,264,,264,,,,264,406,264,264,,,,264,264',
+'264,264,264,264,264,,263,263,263,263,263,263,,263,,,,263,265,263,263',
+',,,263,263,263,263,263,263,263,262,262,262,262,262,262,,262,,,,262,',
+'262,262,,,85,262,262,262,262,262,262,262,261,261,261,261,261,261,,261',
+',,,261,,261,261,,,264,261,261,261,261,261,261,261,,260,260,260,260,260',
+'260,,260,,,,260,,260,260,,,263,260,260,260,260,260,260,260,259,259,259',
+'259,259,259,,259,,,,259,,259,259,,,262,259,259,259,259,259,259,259,258',
+'258,258,258,258,258,,258,,,,258,,258,258,,,261,258,258,258,258,258,258',
+'258,,257,257,257,257,257,257,,257,,,,257,,257,257,,,260,257,257,257',
+'257,257,257,257,256,256,256,256,256,256,,256,,,,256,,256,256,,,259,256',
+'256,256,256,256,256,256,255,255,255,255,255,255,,255,,,,255,,255,255',
+',,258,255,255,255,255,255,255,255,,254,254,254,254,254,254,,254,,,,254',
+',254,254,,,257,254,254,254,254,254,254,254,253,253,253,253,253,253,',
+'253,,,,253,,253,253,,,256,253,253,253,253,253,253,253,252,252,252,252',
+'252,252,,252,,,,252,,252,252,,,255,252,252,252,252,252,252,252,,251',
+'251,251,251,251,251,,251,,,,251,,251,251,,,254,251,251,251,251,251,251',
+'251,250,250,250,250,250,250,,250,,,,250,,250,250,,,253,250,250,250,250',
+'250,250,250,389,389,389,389,389,389,,389,,,,389,,389,389,389,,252,389',
+'389,389,389,389,389,389,,248,248,248,248,248,248,,248,,,,248,,248,248',
+',,251,248,248,248,248,248,248,248,,,,,,,,,,,,,,,,,,250,,,,,,,,,,389',
+',,117,117,117,117,117,117,,117,,,,117,389,117,117,,,,117,117,117,117',
+'117,117,117,,236,236,236,236,236,236,,236,,,,236,248,236,236,,,,236',
+'236,236,236,236,236,236,,,,,,,117,117,117,117,117,117,117,117,117,117',
+'117,117,117,117,117,117,117,,,121,121,121,121,121,121,,121,,,,121,,121',
+'121,,,117,121,121,121,121,121,121,121,,122,122,122,122,122,122,,122',
+',,,122,,122,122,,,236,122,122,122,122,122,122,122,123,123,123,123,123',
+'123,,123,,,,123,,123,123,,,,123,123,123,123,123,123,123,124,124,124',
+'124,124,124,,124,,,,124,,124,124,,,121,124,124,124,124,124,124,124,',
+',,,,,,,,,,,233,233,233,233,233,233,122,233,,,,233,,233,233,,,,233,233',
+'233,233,233,233,233,223,223,223,223,223,223,123,223,,,,223,,223,223',
+',,,223,223,223,223,223,223,223,,,,,,,124,233,233,233,233,233,233,233',
+'233,233,233,233,233,233,233,233,233,233,,,231,231,231,231,231,231,,231',
+',,,231,,231,231,,,233,231,231,231,231,231,231,231,224,224,224,224,224',
+'224,224,224,,,,224,,224,224,,,223,224,224,224,224,224,224,224,,,,,,',
+',231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231,231',
+',,213,213,213,213,213,213,,213,,,,213,,213,213,,,231,213,213,213,213',
+'213,213,213,210,210,210,210,210,210,,210,,,,210,,210,210,,,224,210,210',
+'210,210,210,210,210,180,180,180,180,180,180,,180,,,,180,,180,180,,,',
+'180,180,180,180,180,180,180,,407,407,407,407,407,407,407,407,,,,407',
+',407,407,,,213,407,407,407,407,407,407,407,,180,,,,435,435,435,435,435',
+'435,,435,,,,435,210,435,435,435,435,,435,435,435,435,435,435,435,164',
+'164,164,164,164,164,,164,,,,164,180,164,164,,,,164,164,164,164,164,164',
+'164,,279,279,279,279,279,279,,279,,,,279,407,279,279,,,,279,279,279',
+'279,279,279,279,,,435,,,,,,,,,,,,,,41,435,,,,,,,,,,,,,,,,,,,,,,,,,164',
+',,2,,,,,,,,,,,,,,,,,,,,,,,279,41,41,41,41,41,41,41,41,41,41,41,41,41',
+'41,41,41,41,41,41,41,41,41,41,41,41,41,,,41,2,2,2,2,2,2,2,2,2,2,2,2',
+'2,2,2,2,2,2,2,2,2,2,2,2,2,2,,2,2,294,294,,294,,,294,,,,,,,,,294,,,,',
+',,,,,325,325,,325,,,,,,,,,,,,325,,,,,,,,294,294,294,294,294,294,294',
+'294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294',
+'294,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325,325',
+'325,325,325,325,325,325,325,325,325,86,,,,,86,,,,,,,,,,,,,,,,,,,,378',
+',,,,,,,,,,,,,,,,,,,,,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86',
+'86,86,86,86,86,86,86,86,86,378,378,378,378,378,378,378,378,378,378,378',
+'378,378,378,378,378,378,378,378,378,378,378,378,378,378,292,7,7,7,7',
+'7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,,,,,,96,,,,,,,,,,,,292,292',
+'292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292,292',
+'292,292,292,292,292,292,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96',
+'96,96,96,96,96,96,96,96,96,96,202,,,,,,,,,,,,,,,,,,,,,,,,,299,,,,,,',
+',,,,,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202',
+'202,202,202,202,202,202,202,202,202,299,299,299,299,299,299,299,299',
+'299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299',
+'199,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92',
+'92,92,92,,,,,,,,,,,,199,199,199,199,199,199,199,199,199,199,199,199',
+'199,199,199,199,199,199,199,199,199,199,199,199,199,8,8,8,8,8,8,8,8',
+'8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,196,196,196,196,196,196,196,196,196',
+'196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,6,6',
+'6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5',
+'5,5,5,5,5,5,5,5,5,5,5,5,5,5,93,93,93,93,93,93,93,93,93,93,93,93,93,93',
+'93,93,93,93,93,93,93,93,93,93,93,69,69,69,69,69,69,69,69,69,69,69,69',
+'69,69,69,69,69,69,69,69,69,69,69,69,69' ]
+        racc_action_check = arr = ::Array.new(3198, nil)
         idx = 0
         clist.each do |str|
@@ -562,425 +611,475 @@
 
 racc_action_pointer = [
-   nil,   173,   432,   442,   425,  2414,  2764,  2712,   nil,   nil,
-   nil,   nil,   363,   nil,   332,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   357,    -5,    -7,   nil,   nil,   nil,   nil,   nil,
-   366,   nil,   nil,   nil,   nil,   nil,  2782,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    18,   nil,    21,   162,
-   145,   nil,   548,    -8,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   267,   263,   nil,   231,  2642,   nil,   268,   139,   nil,
-  1860,  2816,   428,   nil,   424,  1315,   nil,   nil,   217,   nil,
-  1375,  2344,   119,    86,   nil,   nil,  2572,  2554,    39,   555,
-  2484,   nil,   414,    12,   nil,   549,   575,   nil,   nil,   108,
-   nil,   nil,   545,   487,   nil,   nil,   nil,   nil,   nil,   554,
-  1878,   nil,     2,   451,  1984,  2007,  2039,  2062,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   273,   322,   412,   265,
-    -2,   492,   473,   470,   468,   351,   nil,   nil,   nil,  2085,
-   497,   nil,   489,  1761,   482,   nil,   480,   nil,   470,   nil,
-   234,   nil,   nil,  2502,   431,   423,  2624,   nil,   235,  2694,
-   nil,   nil,   nil,   nil,    74,   nil,   nil,   nil,   449,   620,
-    21,   nil,   546,   439,   nil,   442,   441,   nil,   206,   138,
-   440,  1398,   433,   409,   nil,   nil,   nil,    51,   nil,   902,
-   nil,   nil,   161,   184,   356,   379,   494,   833,   934,  1476,
-  1499,  1582,  1651,  1706,  1729,  1938,  1961,  1605,    -2,    21,
-  1628,    -7,   nil,   518,   nil,     4,   545,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   527,
-   529,  2202,   530,   531,   500,  2149,   503,   nil,   541,   515,
-   519,  2108,   521,   nil,   nil,  2362,   204,  2291,   nil,   nil,
-   188,  1855,  2432,   nil,   nil,   nil,   nil,   109,   nil,   nil,
-   nil,   nil,   423,   nil,   nil,   nil,   nil,   nil,   nil,  1683,
-   nil,   122,  2140,   106,   nil,  1545,   596,   nil,   nil,   600,
-   nil,   nil,   nil,    87,   252,    57,   150,   218,   222,   225,
-   273,   439,   574,   287,   590,   -20,    -3,    10,    25,   nil,
-  1522,    84,  1444,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,  1421,  1338,    82,  1292,  1269,  1081,
-   138,   987,   155,   nil,   nil,   187,   nil,   nil,   218,   nil,
-   205,   235,   nil,   250,   957,  2271,   nil,   291,   nil,   nil,
-   544,   nil,   nil,   nil,   879,   184,   nil,   nil,   856,   nil,
-   nil,   nil,   283,   319,   333,   338,   306,   342,   nil,   739,
-   nil,   nil,   nil,   352,   nil,   nil,   nil,   355,   nil,   360,
-   nil,   nil,   nil,   nil,   nil,   nil,   645,   526,   333,   310,
-   317,   nil,   nil,   nil,   nil,   326,   nil,   385,   355,   nil,
-   216,   365,   115,   nil,   nil,   400,  1175,   nil ]
+   nil,   732,  2528,   716,   182,  3068,  3043,  2752,  2993,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   624,   nil,   619,   nil,   656,   nil,    38,
+   nil,    40,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,  2499,   nil,   nil,   nil,   nil,   nil,   510,   nil,    78,
+   nil,    37,     3,   322,   nil,   680,   -14,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    20,   183,   nil,   249,  3118,
+   nil,   278,   429,   421,   nil,   252,   344,   664,   nil,   544,
+  1392,   nil,   419,   285,   nil,  1473,  2701,   266,    28,   nil,
+   nil,   nil,  2932,  3093,   214,   193,  2819,   nil,   138,   576,
+   nil,   200,   654,    22,   nil,   nil,    12,   nil,   nil,    15,
+     1,   nil,   nil,   nil,   nil,   nil,   137,  1959,   nil,   nil,
+    55,  2035,  2061,  2086,  2111,   nil,   nil,   nil,   nil,   nil,
+   nil,   568,   nil,   306,   629,   495,   326,   318,   571,   -20,
+   672,   673,    64,   nil,   nil,   nil,  1235,   724,   nil,   702,
+   nil,    22,   682,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   672,  2431,   669,   nil,   161,   nil,   nil,
+   nil,   nil,   702,   691,   685,   376,   635,   612,   546,   542,
+  2350,   nil,   nil,   nil,   547,   nil,   545,   281,   nil,   507,
+   nil,   684,   nil,   nil,   nil,   nil,  3018,   451,   447,  2968,
+   nil,   440,  2881,   nil,   nil,   nil,   nil,    44,   nil,   410,
+  2325,   nil,    61,  2300,   343,   368,   nil,   286,   381,   nil,
+   348,   322,   147,  2173,  2249,   189,   160,   139,   nil,   nil,
+   nil,  2224,   nil,  2148,   nil,   nil,  1985,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1904,   779,
+  1853,  1828,  1802,  1777,  1752,  1726,  1701,  1676,  1650,  1625,
+  1600,  1574,  1549,  1524,  1498,  1443,  1367,   223,   nil,   300,
+   nil,  1341,   nil,   514,   385,   659,   nil,   nil,  1260,  2457,
+  1210,   619,  1132,   379,   nil,   nil,    45,   nil,   nil,   nil,
+   nil,   325,  2794,    -1,  2604,   nil,   nil,   183,  1090,  2906,
+   nil,   nil,   nil,   nil,   107,   nil,   nil,   nil,   nil,   149,
+  1065,   nil,   nil,   nil,   nil,   nil,   137,   nil,    82,   nil,
+   nil,   nil,  1034,   nil,    68,  2629,    23,   nil,    65,   nil,
+  1009,   nil,   nil,   167,   186,   nil,   nil,   nil,   nil,   170,
+   131,   621,   567,   559,   557,   520,   503,   417,   423,   464,
+   334,   326,   350,   351,    14,   nil,   984,   421,   nil,   nil,
+   754,   nil,   129,   376,   256,   451,   908,   883,   nil,   nil,
+   nil,   510,   nil,   260,   520,   nil,   539,   855,  2726,   nil,
+   556,   nil,   nil,   807,   683,   nil,   nil,   nil,   nil,  1878,
+   nil,   nil,   nil,   950,   180,   629,   631,  1286,   nil,   nil,
+   nil,   nil,   634,   653,   539,  1316,  1417,  2376,   687,   nil,
+   nil,   nil,   689,   nil,   693,   nil,   649,   nil,   318,   nil,
+   nil,   nil,   622,   nil,   nil,   412,   323,   281,   128,   256,
+   nil,   nil,   nil,   nil,   nil,  2406,   118,   666,    23,   nil,
+    -2,   nil,   nil,   nil,   nil,   nil,   nil ]
 
 racc_action_default = [
-  -174,  -241,    -1,  -241,  -241,   -70,   -71,   -72,   -80,   -81,
-   -82,   -83,   -84,   -85,   -86,   -87,   -88,   -89,   -90,   -91,
-   -92,   -93,   -96,  -241,  -241,  -127,  -132,  -133,  -175,  -176,
-  -241,  -178,  -179,  -182,  -183,  -184,  -241,  -230,  -231,  -232,
-  -233,  -234,  -235,  -236,  -237,   398,  -241,   -76,   -78,  -241,
-  -135,  -137,  -241,  -143,   -73,   -84,   -86,   -74,   -75,  -181,
-  -180,   -98,  -241,  -101,  -114,  -241,  -117,  -241,  -126,  -177,
-  -105,  -107,  -241,   -69,  -241,  -241,  -188,  -189,  -134,  -136,
-  -241,  -241,  -241,  -144,  -145,   -94,  -241,  -241,   -84,   -85,
-  -241,  -115,  -241,  -241,  -128,  -130,  -241,  -106,  -108,  -241,
-  -186,   -77,   -78,    -2,    -3,    -4,    -5,    -6,    -7,    -8,
-  -241,   -10,   -12,   -23,  -241,  -241,  -241,  -241,   -29,   -30,
-   -31,   -32,   -33,   -34,   -35,   -37,   -41,   -44,   -47,   -52,
-   -55,   -57,   -59,   -61,   -63,   -65,   -68,   -79,  -168,  -241,
-  -241,  -238,  -241,  -241,  -241,  -140,  -241,  -142,  -147,  -149,
-  -153,  -138,  -146,  -241,   -84,   -85,  -241,   -99,  -241,  -241,
-  -120,  -119,  -113,  -116,  -241,  -121,  -123,  -124,  -241,  -241,
-  -241,  -185,  -241,  -241,   -11,  -241,  -241,   -67,  -154,   -20,
-  -241,  -241,  -241,  -241,   -18,   -19,   -24,  -241,   -25,  -241,
-   -27,   -28,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,
-  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,  -241,
-  -241,  -241,  -172,  -241,  -239,   -35,  -241,  -190,  -191,  -192,
-  -193,  -194,  -195,  -196,  -197,  -198,  -199,  -200,  -201,  -241,
-  -241,  -241,  -241,  -241,  -238,  -241,  -241,  -211,  -241,  -241,
-  -241,  -241,  -241,  -139,  -141,  -241,  -156,  -241,  -151,  -152,
-  -157,  -241,  -241,  -104,  -103,   -97,  -100,  -241,  -109,  -111,
-  -112,  -118,  -241,  -129,  -131,  -125,  -187,  -240,    -9,  -241,
-  -155,  -156,  -241,  -241,   -21,   -20,  -241,   -16,   -17,  -241,
-   -38,   -39,   -40,   -42,   -43,   -45,   -46,   -48,   -49,   -50,
-   -51,   -53,   -54,   -56,   -58,   -60,   -62,   -64,  -241,  -169,
-  -241,  -241,  -241,  -219,  -220,  -221,  -222,  -223,  -224,  -225,
-  -226,  -227,  -228,  -229,  -241,  -241,  -241,  -241,  -241,  -241,
-  -241,  -241,  -241,  -213,  -214,  -241,  -216,  -217,  -241,  -150,
-  -158,  -241,  -164,  -241,  -241,  -241,  -160,  -241,   -95,  -102,
-  -241,  -122,   -36,   -13,  -241,  -241,   -15,   -26,  -241,  -170,
-  -173,  -171,  -241,  -241,  -241,  -241,  -241,  -241,  -208,  -241,
-  -210,  -212,  -215,  -241,  -159,  -165,  -162,  -241,  -166,  -241,
-  -161,  -110,   -22,   -14,   -66,  -218,  -241,  -241,  -241,  -241,
-  -241,  -209,  -148,  -163,  -167,  -202,  -204,  -241,  -241,  -207,
-  -241,  -241,  -241,  -203,  -205,  -241,  -241,  -206 ]
+  -215,  -269,    -1,  -269,  -269,   -86,   -88,   -90,   -92,   -98,
+   -99,  -100,  -101,  -102,  -103,  -104,  -105,  -106,  -107,  -108,
+  -109,  -110,  -111,  -112,  -113,  -114,  -115,  -118,  -121,  -269,
+  -139,  -269,  -163,  -164,  -165,  -166,  -167,  -168,  -169,  -216,
+  -217,  -269,  -219,  -220,  -223,  -224,  -225,  -269,   447,  -269,
+   -94,   -96,  -269,  -171,  -173,  -269,  -180,   -87,  -112,  -114,
+   -89,   -91,   -93,  -222,  -221,  -120,  -269,  -124,  -138,  -269,
+  -142,  -269,  -155,  -158,  -218,  -130,  -132,  -269,   -85,  -269,
+  -269,  -229,  -269,  -170,  -172,  -269,  -269,  -269,  -181,  -182,
+  -184,  -116,  -269,  -269,  -112,  -113,  -269,  -140,  -269,  -269,
+  -159,  -161,  -269,  -269,  -129,  -131,  -269,  -227,   -95,   -96,
+    -2,    -3,    -4,    -5,    -6,    -7,    -8,  -269,   -10,   -12,
+   -25,  -269,  -269,  -269,  -269,   -31,   -32,   -33,   -34,   -35,
+   -36,   -37,   -39,   -43,   -46,   -49,   -54,   -57,   -59,   -61,
+   -63,   -65,   -67,   -69,   -97,  -209,  -269,  -269,  -265,  -269,
+   -82,  -269,  -269,  -230,  -231,  -232,  -233,  -234,  -235,  -236,
+  -237,  -238,  -239,  -265,  -269,  -269,  -243,  -269,  -245,  -247,
+  -248,  -249,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
+  -269,  -268,   -37,   -84,  -269,  -176,  -269,  -269,  -179,  -186,
+  -188,  -192,  -193,  -174,  -183,  -185,  -269,  -112,  -113,  -269,
+  -122,  -269,  -269,  -145,  -144,  -137,  -141,  -269,  -146,  -148,
+  -269,  -151,  -269,  -269,  -269,  -269,  -226,  -269,  -269,   -11,
+  -269,  -269,  -195,  -269,  -269,  -269,  -269,  -269,   -19,   -20,
+   -26,  -269,   -27,  -269,   -29,   -30,  -269,   -71,   -72,   -73,
+   -74,   -75,   -76,   -77,   -78,   -79,   -80,   -81,  -269,  -269,
+  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,
+  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -213,  -269,
+  -266,  -269,  -250,  -269,  -269,  -269,  -244,  -246,  -269,  -269,
+  -269,  -269,  -269,  -269,  -261,  -262,  -269,  -263,  -175,  -177,
+  -178,  -269,  -269,  -197,  -269,  -190,  -191,  -198,  -269,  -269,
+  -128,  -127,  -119,  -123,  -269,  -133,  -135,  -136,  -143,  -269,
+  -269,  -149,  -153,  -160,  -162,  -152,  -269,  -156,  -269,  -228,
+  -267,    -9,  -269,  -196,  -197,  -269,  -269,   -14,  -269,   -23,
+  -269,   -17,   -18,  -269,  -269,   -70,   -40,   -41,   -42,   -44,
+   -45,   -47,   -48,   -50,   -51,   -52,   -53,   -55,   -56,   -58,
+   -60,   -62,   -64,   -66,  -269,  -210,  -269,  -269,   -83,  -240,
+  -269,  -242,  -269,  -269,  -269,  -269,  -269,  -269,  -260,  -264,
+  -194,  -269,  -189,  -199,  -269,  -205,  -269,  -269,  -269,  -201,
+  -269,  -117,  -125,  -269,  -269,  -147,  -150,  -154,  -157,  -269,
+   -38,   -13,   -15,  -269,  -269,   -28,  -269,  -269,  -211,  -214,
+  -212,  -241,  -269,  -269,  -269,  -269,  -269,  -269,  -269,  -200,
+  -206,  -203,  -269,  -207,  -269,  -202,  -269,  -134,  -269,   -24,
+   -16,   -68,  -251,  -253,  -254,  -269,  -269,  -269,  -269,  -269,
+  -187,  -204,  -208,  -126,   -21,  -269,  -269,  -269,  -269,  -256,
+  -269,  -258,   -22,  -252,  -255,  -257,  -259 ]
 
 racc_goto_table = [
-    48,     4,   144,   146,    54,    57,    58,   217,    84,    12,
-   136,   137,    78,   175,   258,   136,   273,   165,   188,   190,
-   191,   186,    72,    89,   256,    93,   176,   163,    70,     4,
-    33,   156,   249,    29,   283,   284,   302,    12,   152,    14,
-   330,     2,    71,   293,   155,    89,   215,    90,    89,   287,
-   288,   289,   290,   294,   170,   295,    97,    98,    33,    83,
-   270,    69,    70,    70,    92,   330,   296,    14,   100,   159,
-   102,   297,    88,   101,   136,   212,    71,    71,   285,   286,
-   150,    61,   274,   153,   276,   158,    92,    62,   166,    92,
-   175,   264,   175,   154,    88,   316,   163,    88,   252,   280,
-   281,   282,    70,   279,   136,   246,   291,   292,   257,    64,
-   164,   155,   345,   298,   155,   263,    71,    89,   180,   329,
-   256,   211,    28,    99,    76,   143,     1,   nil,   nil,   nil,
-   nil,   nil,   nil,   271,   215,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   325,   nil,   248,   nil,   nil,   nil,
-   nil,   nil,   158,   nil,   259,   158,   nil,   320,    92,   nil,
-   154,   nil,   nil,   154,   nil,   nil,    88,   nil,   266,   nil,
-   136,   nil,   nil,   337,   nil,   nil,   342,   nil,   274,    70,
-   nil,   nil,   nil,   358,   nil,   360,   136,   341,   nil,   nil,
-   nil,   nil,   nil,    71,   nil,   nil,   371,   nil,   nil,   nil,
-   nil,   nil,   246,   nil,   nil,   352,   nil,   nil,   nil,    78,
-   155,   nil,   102,   nil,   nil,   nil,   nil,   353,   354,   nil,
-   356,   357,   215,   381,   215,   nil,   nil,   271,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   136,   350,   nil,   nil,   nil,
-   385,   386,   nil,   nil,   150,   nil,   150,   372,   nil,   nil,
-   nil,   158,   nil,   nil,   393,   nil,   367,   369,   166,   154,
-   397,   nil,   215,   nil,   nil,   nil,   nil,   nil,   nil,   136,
-   nil,   150,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   215,
-   215,   387,   388,   374,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   215,   nil,   395,   nil,   nil,   nil,   215,
+    51,   144,   145,    81,   183,   182,   184,   281,   186,    23,
+   267,    95,   208,    83,   206,   305,   303,   313,   328,   169,
+    25,     4,   199,   230,    57,    60,    61,    62,    75,    89,
+    40,    99,   168,   221,   198,    95,   296,    77,    95,   220,
+   373,   182,   232,   234,   235,    65,    96,   207,    23,    76,
+   304,   366,   343,   344,   345,   346,    75,    75,    90,    25,
+     4,   194,   214,   215,    66,   104,   105,   323,   145,    74,
+   202,   373,   196,   107,    68,   109,    94,    76,    76,   347,
+   348,   339,   340,   183,   182,   274,   341,   342,    98,   108,
+   195,   236,   187,    88,   209,   372,   353,   352,    75,   197,
+    94,   152,   286,    94,   169,   359,    39,   361,   351,   106,
+   350,   201,    98,   349,     2,    98,   303,   277,   167,    76,
+   206,   313,   225,   313,   394,     1,   299,   nil,   nil,   183,
+   182,   311,   183,   182,   314,   406,   407,   nil,   198,   nil,
+   nil,   198,   nil,   nil,    95,   326,   329,   333,   109,   334,
+   336,   337,   338,   220,   nil,   220,   nil,   nil,   335,   nil,
+   nil,   nil,   nil,   nil,   293,   nil,   nil,   nil,   182,   182,
+   182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
+   182,   182,   182,   182,   182,   182,   152,   295,   354,   nil,
+   nil,   nil,   401,   358,   nil,   324,   nil,   306,   417,   nil,
+   362,   363,   364,   197,   nil,   nil,   197,   nil,   nil,    94,
+   nil,   nil,    75,   319,    75,   201,   nil,   nil,   201,   367,
+   380,    98,   nil,   385,   390,   nil,   nil,   nil,   nil,   183,
+   182,   386,   nil,    76,   422,    76,   424,   nil,   nil,   nil,
+   nil,   198,   182,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   329,   418,    83,   nil,   nil,   nil,   nil,   439,
+   nil,   441,   nil,   nil,   nil,   nil,   nil,   293,   443,   nil,
+   445,   nil,   446,   nil,   nil,   nil,   nil,   399,   145,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   324,   412,
+   414,   152,   183,   182,   416,   209,   197,   nil,   nil,   nil,
+   nil,   145,   nil,   nil,   nil,   419,   421,   182,   201,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   425,   426,   428,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   150,   nil,   259 ]
-
-racc_goto_check = [
-    32,    27,    25,    55,    27,    27,    27,    68,    53,    34,
-    24,    33,    54,     6,    44,    24,     8,    49,    10,    10,
-    10,    12,    43,    35,    41,    51,    13,    47,    30,    27,
-    26,    38,    58,    62,    14,    14,    77,    34,    53,    36,
-    59,     2,     9,    18,    35,    35,    10,    46,    35,    16,
-    16,    16,    16,    19,    51,    20,    43,    43,    26,     9,
-    58,    62,    30,    30,    27,    59,    21,    36,    32,    46,
-    32,    22,    34,    31,    24,    33,     9,     9,    15,    15,
-    27,    37,     6,    39,     6,    27,    27,    40,    32,    27,
-     6,    25,     6,    34,    34,    68,    47,    34,    38,    12,
-    12,    12,    30,    13,    24,    53,    17,    17,    42,    45,
-    48,    35,     8,     6,    35,    52,     9,    35,     9,    57,
-    41,    60,    61,    65,    66,    67,     1,   nil,   nil,   nil,
-   nil,   nil,   nil,    53,    10,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,     6,   nil,    32,   nil,   nil,   nil,
-   nil,   nil,    27,   nil,    32,    27,   nil,    25,    27,   nil,
-    34,   nil,   nil,    34,   nil,   nil,    34,   nil,    32,   nil,
-    24,   nil,   nil,    25,   nil,   nil,    12,   nil,     6,    30,
-   nil,   nil,   nil,    68,   nil,    68,    24,    49,   nil,   nil,
-   nil,   nil,   nil,     9,   nil,   nil,    44,   nil,   nil,   nil,
-   nil,   nil,    53,   nil,   nil,     6,   nil,   nil,   nil,    54,
-    35,   nil,    32,   nil,   nil,   nil,   nil,     6,     6,   nil,
-     6,     6,    10,    68,    10,   nil,   nil,    53,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,    24,    33,   nil,   nil,   nil,
-    68,    68,   nil,   nil,    27,   nil,    27,     6,   nil,   nil,
-   nil,    27,   nil,   nil,    68,   nil,    25,    55,    32,    34,
-    68,   nil,    10,   nil,   nil,   nil,   nil,   nil,   nil,    24,
-   nil,    27,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    10,
-    10,     6,     6,    24,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    10,   nil,     6,   nil,   nil,   nil,    10,
+   nil,   nil,   nil,   nil,   nil,   423,   399,   145,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   306 ]
+
+racc_goto_check = [
+    36,    37,    12,    72,    26,    13,    28,    73,    60,    38,
+    11,    39,    55,    59,    53,    49,    46,    57,     8,    29,
+    40,    30,    43,    15,    30,    30,    30,    30,    33,    58,
+    68,    56,    84,    10,    39,    39,    65,    48,    39,     6,
+    66,    13,    13,    13,    13,    42,    52,    54,    38,     9,
+    47,    75,    18,    18,    18,    18,    33,    33,     9,    40,
+    30,    58,    56,    56,    45,    48,    48,    65,    12,    68,
+    52,    66,    44,    36,    51,    36,    38,     9,     9,    19,
+    19,    16,    16,    26,    13,    28,    17,    17,    30,    35,
+     9,    27,    61,    62,    36,    64,    24,    23,    33,    38,
+    38,    30,     6,    38,    29,    73,    67,    73,    22,    71,
+    21,    30,    30,    20,     2,    30,    46,    84,    83,     9,
+    53,    57,     9,    57,     8,     1,    43,   nil,   nil,    26,
+    13,    28,    26,    13,    28,    75,    75,   nil,    39,   nil,
+   nil,    39,   nil,   nil,    39,     6,    12,    10,    36,    10,
+    15,    15,    15,     6,   nil,     6,   nil,   nil,    12,   nil,
+   nil,   nil,   nil,   nil,    58,   nil,   nil,   nil,    13,    13,
+    13,    13,    13,    13,    13,    13,    13,    13,    13,    13,
+    13,    13,    13,    13,    13,    13,    30,    36,     6,   nil,
+   nil,   nil,    73,    12,   nil,    58,   nil,    36,    49,   nil,
+     6,     6,     6,    38,   nil,   nil,    38,   nil,   nil,    38,
+   nil,   nil,    33,    36,    33,    30,   nil,   nil,    30,    29,
+    12,    30,   nil,    55,    15,   nil,   nil,   nil,   nil,    26,
+    13,    28,   nil,     9,    73,     9,    73,   nil,   nil,   nil,
+   nil,    39,    13,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,    12,    11,    59,   nil,   nil,   nil,   nil,    73,
+   nil,    73,   nil,   nil,   nil,   nil,   nil,    58,    73,   nil,
+    73,   nil,    73,   nil,   nil,   nil,   nil,    37,    12,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    27,   nil,    32 ]
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    58,    12,
+    60,    30,    26,    13,    28,    36,    38,   nil,   nil,   nil,
+   nil,    12,   nil,   nil,   nil,    12,    26,    13,    30,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,     6,     6,     6,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,    72,    37,    12,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+    36 ]
 
 racc_goto_pointer = [
-   nil,   126,    41,   nil,   nil,   nil,   -97,   nil,  -163,     6,
-   -97,   nil,   -93,   -84,  -161,  -119,  -150,   -97,  -162,  -153,
-  -152,  -142,  -138,   nil,   -65,   -78,    28,    -1,   nil,   nil,
-    -8,    -1,    -4,   -64,     7,   -42,    37,    59,   -55,    -2,
-    65,  -132,   -50,   -14,  -144,    86,   -18,   -63,    18,   -75,
-   nil,   -42,   -53,   -45,   -37,   -78,   nil,  -126,  -118,  -206,
-   -18,   120,    31,   nil,   nil,    51,    76,    48,  -136,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,  -179 ]
+   nil,   125,   114,   nil,   nil,   nil,   -78,   nil,  -206,     2,
+   -84,  -136,   -78,   -80,   nil,   -98,  -170,  -167,  -203,  -180,
+  -148,  -152,  -155,  -167,  -169,   nil,   -81,   -40,   -79,   -63,
+    19,   nil,   nil,   -19,   nil,    10,    -4,   -79,     7,   -58,
+    18,   nil,    18,   -70,   -19,    37,  -183,  -151,   -10,  -186,
+   nil,    45,   -23,   -82,   -51,   -86,   -40,  -195,   -27,   -39,
+   -78,     6,    37,   nil,  -197,  -155,  -253,   104,    28,   nil,
+   nil,    32,   -48,  -168,   nil,  -231,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    36,   -50 ]
 
 racc_goto_default = [
-   nil,   nil,   nil,   112,   103,   109,   242,   113,   nil,     7,
-   124,   114,   125,   nil,   126,   127,   128,   129,   130,   131,
-   132,   133,   134,   135,   177,   138,   218,   216,    46,     5,
-     6,    47,    82,   nil,    55,    13,    56,   nil,   nil,   nil,
-   nil,   157,   nil,   178,   nil,   nil,   nil,    91,   nil,   nil,
-    24,   nil,    94,    49,    50,   333,   148,   149,   331,   250,
-   nil,   nil,   nil,    31,    32,   nil,   225,   nil,   nil,   219,
-   220,   221,   222,   223,   224,   226,   227,   nil ]
+   nil,   nil,   nil,   119,   110,   116,   151,   120,   nil,     7,
+   nil,   nil,   150,   131,   121,   132,   133,   134,   135,   136,
+   137,   138,   139,   140,   141,   142,   143,   nil,   nil,    44,
+   191,    49,     5,     6,     8,    50,    87,   268,    58,    24,
+    59,    27,   nil,   nil,   nil,   nil,   200,   nil,   222,   nil,
+    29,   nil,   nil,    97,   nil,   nil,   nil,   100,    52,    53,
+   376,   nil,   nil,   189,   190,   374,   297,   nil,   nil,    42,
+    43,   nil,   154,   170,   153,   155,   156,   157,   158,   159,
+   160,   161,   162,   nil,   nil ]
 
 racc_reduce_table = [
   0, 0, :racc_error,
-  1, 97, :_reduce_none,
-  1, 99, :_reduce_2,
-  1, 99, :_reduce_3,
-  1, 99, :_reduce_4,
-  1, 99, :_reduce_5,
-  1, 99, :_reduce_6,
-  1, 99, :_reduce_7,
-  1, 99, :_reduce_8,
-  3, 99, :_reduce_9,
-  1, 101, :_reduce_10,
-  2, 101, :_reduce_11,
-  1, 103, :_reduce_none,
-  4, 103, :_reduce_none,
-  5, 103, :_reduce_none,
-  4, 103, :_reduce_15,
-  3, 103, :_reduce_16,
-  3, 103, :_reduce_17,
-  2, 103, :_reduce_18,
-  2, 103, :_reduce_19,
-  0, 104, :_reduce_none,
+  1, 98, :_reduce_none,
+  1, 100, :_reduce_2,
+  1, 100, :_reduce_3,
+  1, 100, :_reduce_4,
+  1, 100, :_reduce_5,
+  1, 100, :_reduce_6,
+  1, 100, :_reduce_7,
+  1, 100, :_reduce_8,
+  3, 100, :_reduce_9,
+  1, 102, :_reduce_10,
+  2, 102, :_reduce_11,
   1, 104, :_reduce_none,
+  4, 104, :_reduce_13,
   3, 104, :_reduce_none,
-  1, 106, :_reduce_none,
-  2, 106, :_reduce_24,
-  2, 106, :_reduce_25,
-  4, 106, :_reduce_26,
-  2, 106, :_reduce_27,
-  2, 106, :_reduce_28,
-  1, 107, :_reduce_29,
-  1, 107, :_reduce_30,
-  1, 107, :_reduce_31,
-  1, 107, :_reduce_32,
-  1, 107, :_reduce_33,
-  1, 107, :_reduce_34,
-  1, 108, :_reduce_none,
-  4, 108, :_reduce_36,
+  4, 104, :_reduce_none,
+  5, 104, :_reduce_none,
+  3, 104, :_reduce_17,
+  3, 104, :_reduce_18,
+  2, 104, :_reduce_19,
+  2, 104, :_reduce_20,
+  6, 104, :_reduce_none,
+  7, 104, :_reduce_none,
+  1, 105, :_reduce_none,
+  3, 105, :_reduce_none,
   1, 110, :_reduce_none,
-  3, 110, :_reduce_38,
-  3, 110, :_reduce_39,
-  3, 110, :_reduce_40,
-  1, 111, :_reduce_none,
-  3, 111, :_reduce_42,
-  3, 111, :_reduce_43,
+  2, 110, :_reduce_26,
+  2, 110, :_reduce_27,
+  4, 110, :_reduce_28,
+  2, 110, :_reduce_29,
+  2, 110, :_reduce_30,
+  1, 111, :_reduce_31,
+  1, 111, :_reduce_32,
+  1, 111, :_reduce_33,
+  1, 111, :_reduce_34,
+  1, 111, :_reduce_35,
+  1, 111, :_reduce_36,
   1, 112, :_reduce_none,
-  3, 112, :_reduce_45,
-  3, 112, :_reduce_46,
+  4, 112, :_reduce_38,
   1, 113, :_reduce_none,
-  3, 113, :_reduce_48,
-  3, 113, :_reduce_49,
-  3, 113, :_reduce_50,
-  3, 113, :_reduce_51,
+  3, 113, :_reduce_40,
+  3, 113, :_reduce_41,
+  3, 113, :_reduce_42,
   1, 114, :_reduce_none,
-  3, 114, :_reduce_53,
-  3, 114, :_reduce_54,
+  3, 114, :_reduce_44,
+  3, 114, :_reduce_45,
   1, 115, :_reduce_none,
-  3, 115, :_reduce_56,
+  3, 115, :_reduce_47,
+  3, 115, :_reduce_48,
   1, 116, :_reduce_none,
-  3, 116, :_reduce_58,
+  3, 116, :_reduce_50,
+  3, 116, :_reduce_51,
+  3, 116, :_reduce_52,
+  3, 116, :_reduce_53,
   1, 117, :_reduce_none,
-  3, 117, :_reduce_60,
+  3, 117, :_reduce_55,
+  3, 117, :_reduce_56,
   1, 118, :_reduce_none,
-  3, 118, :_reduce_62,
+  3, 118, :_reduce_58,
   1, 119, :_reduce_none,
-  3, 119, :_reduce_64,
+  3, 119, :_reduce_60,
   1, 120, :_reduce_none,
-  5, 120, :_reduce_66,
-  1, 102, :_reduce_67,
-  1, 121, :_reduce_68,
-  3, 122, :_reduce_none,
-  1, 123, :_reduce_70,
+  3, 120, :_reduce_62,
+  1, 121, :_reduce_none,
+  3, 121, :_reduce_64,
+  1, 122, :_reduce_none,
+  3, 122, :_reduce_66,
   1, 123, :_reduce_none,
-  1, 123, :_reduce_72,
-  2, 123, :_reduce_73,
-  2, 123, :_reduce_74,
-  2, 123, :_reduce_75,
-  1, 124, :_reduce_76,
-  3, 124, :_reduce_77,
+  5, 123, :_reduce_68,
+  1, 109, :_reduce_none,
+  3, 109, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 124, :_reduce_none,
+  1, 103, :_reduce_82,
+  3, 103, :_reduce_83,
+  1, 125, :_reduce_84,
+  3, 126, :_reduce_none,
+  1, 127, :_reduce_86,
+  2, 127, :_reduce_87,
   1, 127, :_reduce_none,
-  3, 127, :_reduce_79,
-  1, 126, :_reduce_80,
-  1, 126, :_reduce_81,
-  1, 126, :_reduce_82,
-  1, 126, :_reduce_83,
-  1, 126, :_reduce_84,
-  1, 126, :_reduce_85,
-  1, 126, :_reduce_86,
-  1, 126, :_reduce_87,
-  1, 126, :_reduce_88,
-  1, 126, :_reduce_89,
-  1, 126, :_reduce_90,
-  1, 126, :_reduce_91,
-  1, 126, :_reduce_92,
-  1, 126, :_reduce_93,
-  0, 135, :_reduce_94,
-  6, 130, :_reduce_95,
-  0, 136, :_reduce_96,
-  5, 130, :_reduce_97,
-  2, 130, :_reduce_98,
-  1, 134, :_reduce_none,
-  2, 134, :_reduce_none,
-  1, 133, :_reduce_101,
-  3, 137, :_reduce_102,
-  2, 137, :_reduce_none,
-  2, 137, :_reduce_none,
-  1, 139, :_reduce_none,
-  2, 139, :_reduce_106,
-  1, 139, :_reduce_107,
-  2, 139, :_reduce_108,
-  1, 138, :_reduce_109,
-  3, 138, :_reduce_110,
+  2, 127, :_reduce_89,
+  1, 127, :_reduce_90,
+  2, 127, :_reduce_91,
+  1, 127, :_reduce_none,
+  2, 127, :_reduce_none,
+  1, 128, :_reduce_94,
+  3, 128, :_reduce_95,
+  1, 132, :_reduce_none,
+  3, 132, :_reduce_97,
+  1, 129, :_reduce_none,
+  1, 129, :_reduce_none,
+  1, 129, :_reduce_none,
+  1, 129, :_reduce_none,
+  1, 130, :_reduce_102,
+  1, 130, :_reduce_103,
+  1, 130, :_reduce_104,
+  1, 130, :_reduce_105,
+  1, 130, :_reduce_106,
+  1, 130, :_reduce_107,
+  1, 130, :_reduce_108,
+  1, 130, :_reduce_109,
+  1, 130, :_reduce_110,
+  1, 130, :_reduce_111,
+  1, 130, :_reduce_112,
+  1, 130, :_reduce_113,
+  1, 130, :_reduce_114,
+  1, 130, :_reduce_115,
+  0, 141, :_reduce_116,
+  6, 135, :_reduce_117,
+  0, 142, :_reduce_118,
+  5, 135, :_reduce_119,
+  2, 135, :_reduce_120,
+  1, 138, :_reduce_121,
   1, 140, :_reduce_none,
-  5, 131, :_reduce_none,
-  4, 131, :_reduce_none,
-  2, 131, :_reduce_none,
-  1, 142, :_reduce_none,
-  2, 142, :_reduce_none,
-  1, 141, :_reduce_none,
-  3, 143, :_reduce_none,
+  2, 140, :_reduce_none,
+  1, 139, :_reduce_124,
+  3, 143, :_reduce_125,
+  5, 143, :_reduce_126,
   2, 143, :_reduce_none,
   2, 143, :_reduce_none,
-  1, 144, :_reduce_none,
-  3, 144, :_reduce_none,
+  2, 145, :_reduce_129,
   1, 145, :_reduce_none,
-  4, 132, :_reduce_none,
-  5, 132, :_reduce_none,
-  2, 132, :_reduce_none,
-  1, 146, :_reduce_127,
-  1, 147, :_reduce_none,
-  3, 147, :_reduce_none,
+  2, 145, :_reduce_131,
+  1, 145, :_reduce_132,
+  1, 144, :_reduce_133,
+  3, 144, :_reduce_134,
+  1, 146, :_reduce_none,
+  5, 136, :_reduce_none,
+  4, 136, :_reduce_none,
+  2, 136, :_reduce_none,
+  1, 147, :_reduce_139,
+  1, 149, :_reduce_none,
+  2, 149, :_reduce_none,
   1, 148, :_reduce_none,
-  3, 148, :_reduce_none,
-  1, 105, :_reduce_132,
-  1, 105, :_reduce_133,
-  2, 128, :_reduce_134,
-  1, 128, :_reduce_none,
-  2, 128, :_reduce_136,
-  1, 150, :_reduce_137,
-  3, 150, :_reduce_138,
-  4, 150, :_reduce_139,
-  3, 150, :_reduce_140,
-  4, 150, :_reduce_141,
-  3, 150, :_reduce_142,
-  1, 149, :_reduce_143,
-  2, 149, :_reduce_144,
-  2, 149, :_reduce_145,
-  3, 149, :_reduce_146,
+  3, 150, :_reduce_none,
+  2, 150, :_reduce_none,
+  2, 150, :_reduce_none,
   1, 151, :_reduce_none,
-  5, 151, :_reduce_none,
+  3, 151, :_reduce_none,
   1, 152, :_reduce_none,
+  2, 152, :_reduce_none,
   3, 152, :_reduce_none,
-  2, 153, :_reduce_none,
-  2, 153, :_reduce_none,
+  4, 137, :_reduce_none,
+  5, 137, :_reduce_none,
+  5, 137, :_reduce_none,
+  6, 137, :_reduce_none,
+  2, 137, :_reduce_none,
+  5, 137, :_reduce_none,
+  6, 137, :_reduce_none,
+  2, 137, :_reduce_none,
   1, 153, :_reduce_none,
-  1, 109, :_reduce_none,
-  2, 109, :_reduce_none,
+  3, 153, :_reduce_none,
   1, 154, :_reduce_none,
-  1, 154, :_reduce_none,
-  2, 154, :_reduce_none,
-  3, 155, :_reduce_none,
-  2, 155, :_reduce_none,
-  3, 155, :_reduce_none,
-  3, 155, :_reduce_none,
-  4, 155, :_reduce_none,
-  2, 155, :_reduce_164,
-  3, 155, :_reduce_none,
-  3, 155, :_reduce_166,
-  4, 155, :_reduce_none,
-  1, 129, :_reduce_168,
-  3, 129, :_reduce_169,
-  4, 129, :_reduce_170,
-  4, 129, :_reduce_171,
-  1, 156, :_reduce_172,
-  3, 156, :_reduce_173,
-  0, 98, :_reduce_none,
-  2, 98, :_reduce_none,
+  3, 154, :_reduce_none,
+  1, 106, :_reduce_163,
+  1, 106, :_reduce_none,
+  1, 106, :_reduce_165,
+  1, 131, :_reduce_none,
+  1, 131, :_reduce_none,
+  1, 131, :_reduce_none,
+  1, 131, :_reduce_none,
+  2, 133, :_reduce_170,
+  1, 133, :_reduce_none,
+  2, 133, :_reduce_172,
+  1, 156, :_reduce_173,
+  3, 156, :_reduce_174,
+  4, 156, :_reduce_175,
+  3, 156, :_reduce_176,
+  4, 156, :_reduce_177,
+  4, 156, :_reduce_none,
+  3, 156, :_reduce_179,
+  1, 155, :_reduce_180,
+  2, 155, :_reduce_181,
+  2, 155, :_reduce_182,
+  3, 155, :_reduce_183,
+  1, 159, :_reduce_none,
+  2, 159, :_reduce_none,
   1, 157, :_reduce_none,
-  2, 157, :_reduce_none,
+  5, 157, :_reduce_none,
+  1, 160, :_reduce_none,
+  3, 160, :_reduce_none,
+  2, 161, :_reduce_none,
+  2, 161, :_reduce_none,
+  1, 161, :_reduce_none,
   1, 158, :_reduce_none,
-  1, 158, :_reduce_none,
-  2, 158, :_reduce_none,
-  2, 158, :_reduce_none,
-  1, 158, :_reduce_none,
-  1, 158, :_reduce_none,
-  1, 158, :_reduce_none,
-  4, 159, :_reduce_185,
-  1, 161, :_reduce_186,
-  3, 161, :_reduce_187,
-  3, 160, :_reduce_none,
-  0, 163, :_reduce_none,
+  3, 158, :_reduce_none,
+  1, 107, :_reduce_none,
+  2, 107, :_reduce_none,
+  1, 162, :_reduce_none,
+  1, 162, :_reduce_none,
+  2, 162, :_reduce_none,
+  3, 163, :_reduce_none,
   2, 163, :_reduce_none,
+  3, 163, :_reduce_none,
+  3, 163, :_reduce_none,
+  4, 163, :_reduce_none,
+  2, 163, :_reduce_205,
+  3, 163, :_reduce_none,
+  3, 163, :_reduce_207,
+  4, 163, :_reduce_none,
+  1, 134, :_reduce_209,
+  3, 134, :_reduce_210,
+  4, 134, :_reduce_211,
+  4, 134, :_reduce_212,
+  1, 108, :_reduce_213,
+  3, 108, :_reduce_214,
+  0, 99, :_reduce_none,
+  2, 99, :_reduce_none,
   1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  1, 164, :_reduce_none,
-  5, 165, :_reduce_none,
-  7, 165, :_reduce_none,
-  5, 166, :_reduce_none,
-  7, 167, :_reduce_none,
-  9, 168, :_reduce_none,
-  5, 169, :_reduce_none,
-  3, 170, :_reduce_none,
-  4, 170, :_reduce_none,
-  3, 170, :_reduce_none,
-  3, 162, :_reduce_none,
+  2, 164, :_reduce_none,
+  1, 165, :_reduce_none,
+  1, 165, :_reduce_none,
+  2, 165, :_reduce_none,
+  2, 165, :_reduce_none,
+  1, 165, :_reduce_none,
+  1, 165, :_reduce_none,
+  1, 165, :_reduce_none,
+  4, 166, :_reduce_226,
+  1, 168, :_reduce_227,
+  3, 168, :_reduce_228,
+  3, 167, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
+  1, 170, :_reduce_none,
   3, 171, :_reduce_none,
-  2, 171, :_reduce_none,
-  2, 171, :_reduce_none,
+  4, 171, :_reduce_none,
   3, 171, :_reduce_none,
-  2, 171, :_reduce_none,
+  2, 169, :_reduce_none,
+  3, 169, :_reduce_none,
+  1, 180, :_reduce_none,
+  2, 180, :_reduce_none,
+  1, 181, :_reduce_none,
+  1, 181, :_reduce_none,
+  1, 172, :_reduce_none,
   2, 172, :_reduce_none,
-  4, 172, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 173, :_reduce_none,
-  1, 125, :_reduce_none,
-  1, 125, :_reduce_none,
-  1, 125, :_reduce_none,
-  1, 125, :_reduce_none,
-  1, 125, :_reduce_none,
-  1, 125, :_reduce_none,
-  1, 125, :_reduce_none,
-  1, 125, :_reduce_none,
-  1, 100, :_reduce_238,
-  2, 100, :_reduce_239,
-  3, 100, :_reduce_240 ]
-
-racc_reduce_n = 241
-
-racc_shift_n = 398
+  5, 173, :_reduce_none,
+  7, 173, :_reduce_none,
+  5, 177, :_reduce_none,
+  5, 174, :_reduce_none,
+  7, 175, :_reduce_none,
+  6, 176, :_reduce_none,
+  7, 176, :_reduce_none,
+  6, 176, :_reduce_none,
+  7, 176, :_reduce_none,
+  3, 178, :_reduce_none,
+  2, 178, :_reduce_none,
+  2, 178, :_reduce_none,
+  2, 178, :_reduce_none,
+  3, 178, :_reduce_none,
+  1, 101, :_reduce_265,
+  2, 101, :_reduce_266,
+  3, 101, :_reduce_267,
+  1, 179, :_reduce_268 ]
+
+racc_reduce_n = 269
+
+racc_shift_n = 447
 
 racc_token_table = {
@@ -1002,85 +1101,86 @@
   "++" => 15,
   "--" => 16,
-  "," => 17,
-  :SIZEOF => 18,
-  "&" => 19,
-  "*" => 20,
-  "+" => 21,
-  "-" => 22,
-  "~" => 23,
-  "!" => 24,
-  "/" => 25,
-  "%" => 26,
-  "<<" => 27,
-  ">>" => 28,
-  "<" => 29,
-  ">" => 30,
-  "<=" => 31,
-  ">=" => 32,
-  "==" => 33,
-  "!=" => 34,
-  "^" => 35,
-  "|" => 36,
-  "&&" => 37,
-  "||" => 38,
-  "?" => 39,
-  ":" => 40,
-  ";" => 41,
-  "=" => 42,
-  :VOID => 43,
-  :FLOAT => 44,
-  :DOUBLE => 45,
-  :BOOL => 46,
-  :TYPE_NAME => 47,
-  :CHAR => 48,
-  :SHORT => 49,
-  :INT => 50,
-  :LONG => 51,
-  :SIGNED => 52,
-  :UNSIGNED => 53,
-  :STRUCT => 54,
-  "{" => 55,
-  "}" => 56,
-  :UNION => 57,
-  :ENUM => 58,
-  :CONST => 59,
-  :VOLATILE => 60,
-  :C_EXP => 61,
-  :EXTENSION => 62,
-  :TYPEDEF => 63,
-  :IF => 64,
-  :ELSE => 65,
-  :WHILE => 66,
-  :DO => 67,
-  :FOR => 68,
-  :SWITCH => 69,
-  :infunc_statment => 70,
-  :CASE => 71,
-  :DEFAULT => 72,
-  :GOTO => 73,
-  :CONTINUE => 74,
-  :BREAK => 75,
-  :RETURN => 76,
-  "+=" => 77,
-  "-=" => 78,
-  "*=" => 79,
-  "/=" => 80,
-  "%=" => 81,
-  "<<=" => 82,
-  ">>=" => 83,
-  "&=" => 84,
-  "|=" => 85,
-  "^=" => 86,
-  :__INLINE__ => 87,
-  :INLINE => 88,
-  :__INLINE => 89,
-  :CINLINE => 90,
-  :EXTERN => 91,
-  :STATIC => 92,
-  :AUTO => 93,
-  :REGISTER => 94,
-  "::" => 95 }
-
-racc_nt_base = 96
+  "{" => 17,
+  "}" => 18,
+  "," => 19,
+  :SIZEOF => 20,
+  "&" => 21,
+  "*" => 22,
+  "+" => 23,
+  "-" => 24,
+  "~" => 25,
+  "!" => 26,
+  "/" => 27,
+  "%" => 28,
+  "<<" => 29,
+  ">>" => 30,
+  "<" => 31,
+  ">" => 32,
+  "<=" => 33,
+  ">=" => 34,
+  "==" => 35,
+  "!=" => 36,
+  "^" => 37,
+  "|" => 38,
+  "&&" => 39,
+  "||" => 40,
+  "?" => 41,
+  ":" => 42,
+  "=" => 43,
+  "+=" => 44,
+  "-=" => 45,
+  "*=" => 46,
+  "/=" => 47,
+  "%=" => 48,
+  "<<=" => 49,
+  ">>=" => 50,
+  "&=" => 51,
+  "|=" => 52,
+  "^=" => 53,
+  ";" => 54,
+  :EXTERN => 55,
+  :STATIC => 56,
+  :AUTO => 57,
+  :REGISTER => 58,
+  :VOID => 59,
+  :CHAR => 60,
+  :SHORT => 61,
+  :INT => 62,
+  :LONG => 63,
+  :FLOAT => 64,
+  :DOUBLE => 65,
+  :SIGNED => 66,
+  :UNSIGNED => 67,
+  :BOOL => 68,
+  :TYPE_NAME => 69,
+  :STRUCT => 70,
+  :UNION => 71,
+  :ENUM => 72,
+  :CONST => 73,
+  :RESTRICT => 74,
+  :VOLATILE => 75,
+  :__INLINE__ => 76,
+  :INLINE => 77,
+  :__INLINE => 78,
+  :CINLINE => 79,
+  :C_EXP => 80,
+  :EXTENSION => 81,
+  :TYPEDEF => 82,
+  :CASE => 83,
+  :DEFAULT => 84,
+  :IF => 85,
+  :ELSE => 86,
+  :SWITCH => 87,
+  :WHILE => 88,
+  :DO => 89,
+  :FOR => 90,
+  :GOTO => 91,
+  :CONTINUE => 92,
+  :BREAK => 93,
+  :RETURN => 94,
+  "::" => 95,
+  :_ASM => 96 }
+
+racc_nt_base = 97
 
 racc_use_result_var = true
@@ -1120,4 +1220,6 @@
   "\"++\"",
   "\"--\"",
+  "\"{\"",
+  "\"}\"",
   "\",\"",
   "SIZEOF",
@@ -1144,40 +1246,5 @@
   "\"?\"",
   "\":\"",
-  "\";\"",
   "\"=\"",
-  "VOID",
-  "FLOAT",
-  "DOUBLE",
-  "BOOL",
-  "TYPE_NAME",
-  "CHAR",
-  "SHORT",
-  "INT",
-  "LONG",
-  "SIGNED",
-  "UNSIGNED",
-  "STRUCT",
-  "\"{\"",
-  "\"}\"",
-  "UNION",
-  "ENUM",
-  "CONST",
-  "VOLATILE",
-  "C_EXP",
-  "EXTENSION",
-  "TYPEDEF",
-  "IF",
-  "ELSE",
-  "WHILE",
-  "DO",
-  "FOR",
-  "SWITCH",
-  "infunc_statment",
-  "CASE",
-  "DEFAULT",
-  "GOTO",
-  "CONTINUE",
-  "BREAK",
-  "RETURN",
   "\"+=\"",
   "\"-=\"",
@@ -1190,13 +1257,47 @@
   "\"|=\"",
   "\"^=\"",
+  "\";\"",
+  "EXTERN",
+  "STATIC",
+  "AUTO",
+  "REGISTER",
+  "VOID",
+  "CHAR",
+  "SHORT",
+  "INT",
+  "LONG",
+  "FLOAT",
+  "DOUBLE",
+  "SIGNED",
+  "UNSIGNED",
+  "BOOL",
+  "TYPE_NAME",
+  "STRUCT",
+  "UNION",
+  "ENUM",
+  "CONST",
+  "RESTRICT",
+  "VOLATILE",
   "__INLINE__",
   "INLINE",
   "__INLINE",
   "CINLINE",
-  "EXTERN",
-  "STATIC",
-  "AUTO",
-  "REGISTER",
+  "C_EXP",
+  "EXTENSION",
+  "TYPEDEF",
+  "CASE",
+  "DEFAULT",
+  "IF",
+  "ELSE",
+  "SWITCH",
+  "WHILE",
+  "DO",
+  "FOR",
+  "GOTO",
+  "CONTINUE",
+  "BREAK",
+  "RETURN",
   "\"::\"",
+  "_ASM",
   "$start",
   "all",
@@ -1207,10 +1308,12 @@
   "expression",
   "postfix_expression",
-  "argument_list",
+  "argument_expression_list",
   "type_qualifier",
+  "type_name",
+  "initializer_list",
+  "assignment_expression",
   "unary_expression",
   "unary_operator",
   "cast_expression",
-  "type_name",
   "multiplicative_expression",
   "additive_expression",
@@ -1224,10 +1327,12 @@
   "logical_or_expression",
   "conditional_expression",
+  "assignment_operator",
   "constant_expression",
   "declaration",
   "declaration_specifiers",
   "init_declarator_list",
-  "storage_class",
+  "storage_class_specifier",
   "type_specifier",
+  "function_specifier",
   "init_declarator",
   "declarator",
@@ -1236,4 +1341,5 @@
   "union_specifier",
   "enum_specifier",
+  "struct_term",
   "struct_tag",
   "struct_declaration_list",
@@ -1242,6 +1348,7 @@
   "struct_declaration",
   "struct_declarator_list",
-  "type_specifier_qualifier_list",
+  "specifier_qualifier_list",
   "struct_declarator",
+  "union_term",
   "union_tag",
   "union_declaration_list",
@@ -1249,5 +1356,4 @@
   "union_declarator_list",
   "union_declarator",
-  "enum_type",
   "enumerator_list",
   "enumerator",
@@ -1255,17 +1361,19 @@
   "direct_declarator",
   "parameter_type_list",
+  "identifier_list",
+  "type_qualifier_list",
   "parameter_list",
   "parameter_declaration",
   "abstract_declarator",
   "direct_abstract_declarator",
-  "initializer_list",
   "extension_statement",
-  "statement",
+  "cdl_statement",
   "typedef",
   "func_def",
   "declarator_list",
-  "compoundstatement",
-  "infunc_statement_list",
-  "infunc_statement",
+  "compound_statement",
+  "statement",
+  "labeled_statement",
+  "expression_statement",
   "ifstatement",
   "whilestatement",
@@ -1273,8 +1381,8 @@
   "forstatement",
   "switchstatement",
-  "labelstatement",
-  "gotostatement",
-  "expressionstatement",
-  "assignment_operator" ]
+  "jump_statement",
+  "asm_statement",
+  "block_item_list",
+  "block_item" ]
 
 Racc_debug_parser = false
@@ -1286,5 +1394,5 @@
 # reduce 1 omitted
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 52)
+module_eval(<<'.,.,', 'C_parser.y.rb', 57)
   def _reduce_2(val, _values, result)
      result = [ :IDENTIFIER, val[0] ] 
@@ -1293,5 +1401,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 60)
+module_eval(<<'.,.,', 'C_parser.y.rb', 65)
   def _reduce_3(val, _values, result)
      result = [ :INTEGER_CONSTANT, val[0] ] 
@@ -1300,5 +1408,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 62)
+module_eval(<<'.,.,', 'C_parser.y.rb', 67)
   def _reduce_4(val, _values, result)
      result = [ :FLOATING_CONSTANT, val[0] ] 
@@ -1307,5 +1415,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 64)
+module_eval(<<'.,.,', 'C_parser.y.rb', 69)
   def _reduce_5(val, _values, result)
      result = [ :OCTAL_CONSTANT, val[0] ] 
@@ -1314,5 +1422,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 66)
+module_eval(<<'.,.,', 'C_parser.y.rb', 71)
   def _reduce_6(val, _values, result)
      result = [ :HEX_CONSTANT, val[0] ] 
@@ -1321,5 +1429,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 68)
+module_eval(<<'.,.,', 'C_parser.y.rb', 73)
   def _reduce_7(val, _values, result)
      result = [ :CHARACTER_LITERAL, val[0] ] 
@@ -1328,5 +1436,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 70)
+module_eval(<<'.,.,', 'C_parser.y.rb', 75)
   def _reduce_8(val, _values, result)
      result = [ :STRING_LITERAL_LIST, val[0] ] 
@@ -1335,5 +1443,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 72)
+module_eval(<<'.,.,', 'C_parser.y.rb', 77)
   def _reduce_9(val, _values, result)
      result = [ :PARENTHESES, val[1].get_elements ] 
@@ -1342,5 +1450,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 76)
+module_eval(<<'.,.,', 'C_parser.y.rb', 81)
   def _reduce_10(val, _values, result)
      result = [val[0]] 
@@ -1349,5 +1457,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 78)
+module_eval(<<'.,.,', 'C_parser.y.rb', 83)
   def _reduce_11(val, _values, result)
      result << val[1] 
@@ -1358,17 +1466,19 @@
 # reduce 12 omitted
 
-# reduce 13 omitted
+module_eval(<<'.,.,', 'C_parser.y.rb', 89)
+  def _reduce_13(val, _values, result)
+     result = [ :OP_SUBSC, val[0], val[2] ] 
+    result
+  end
+.,.,
 
 # reduce 14 omitted
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 86)
-  def _reduce_15(val, _values, result)
-     result = [ :OP_SUBSC, val[0], val[2] ] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 88)
-  def _reduce_16(val, _values, result)
+# reduce 15 omitted
+
+# reduce 16 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 94)
+  def _reduce_17(val, _values, result)
      result = [ :OP_DOT, val[0], val[2] ] 
     result
@@ -1376,6 +1486,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 90)
-  def _reduce_17(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 96)
+  def _reduce_18(val, _values, result)
      result = [ :OP_REF, val[0], val[2] ] 
     result
@@ -1383,12 +1493,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 91)
-  def _reduce_18(val, _values, result)
-     result = val[0] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 92)
+module_eval(<<'.,.,', 'C_parser.y.rb', 97)
   def _reduce_19(val, _values, result)
      result = val[0] 
@@ -1397,5 +1500,10 @@
 .,.,
 
-# reduce 20 omitted
+module_eval(<<'.,.,', 'C_parser.y.rb', 98)
+  def _reduce_20(val, _values, result)
+     result = val[0] 
+    result
+  end
+.,.,
 
 # reduce 21 omitted
@@ -1405,6 +1513,10 @@
 # reduce 23 omitted
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 104)
-  def _reduce_24(val, _values, result)
+# reduce 24 omitted
+
+# reduce 25 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 111)
+  def _reduce_26(val, _values, result)
      result = [ val[0], val[1] ] 
     result
@@ -1412,6 +1524,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 106)
-  def _reduce_25(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 113)
+  def _reduce_27(val, _values, result)
      result = [ :OP_SIZEOF_EXPR, val[1] ] 
     result
@@ -1419,6 +1531,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 108)
-  def _reduce_26(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 115)
+  def _reduce_28(val, _values, result)
      result = [ :OP_SIZEOF_TYPE, val[1] ] 
     result
@@ -1426,6 +1538,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 109)
-  def _reduce_27(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 116)
+  def _reduce_29(val, _values, result)
      result = val[1] 
     result
@@ -1433,6 +1545,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 110)
-  def _reduce_28(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 117)
+  def _reduce_30(val, _values, result)
      result = val[1] 
     result
@@ -1440,6 +1552,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 113)
-  def _reduce_29(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 120)
+  def _reduce_31(val, _values, result)
      result = :OP_U_AMP 
     result
@@ -1447,6 +1559,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 114)
-  def _reduce_30(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 121)
+  def _reduce_32(val, _values, result)
      result = :OP_U_ASTER 
     result
@@ -1454,6 +1566,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 115)
-  def _reduce_31(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 122)
+  def _reduce_33(val, _values, result)
      result = :OP_U_PLUS 
     result
@@ -1461,6 +1573,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 116)
-  def _reduce_32(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 123)
+  def _reduce_34(val, _values, result)
      result = :OP_U_MINUS 
     result
@@ -1468,6 +1580,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 117)
-  def _reduce_33(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 124)
+  def _reduce_35(val, _values, result)
      result = :OP_U_TILDE 
     result
@@ -1475,6 +1587,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 118)
-  def _reduce_34(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 125)
+  def _reduce_36(val, _values, result)
      result = :OP_U_EXCLAM 
     result
@@ -1482,8 +1594,8 @@
 .,.,
 
-# reduce 35 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 123)
-  def _reduce_36(val, _values, result)
+# reduce 37 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 130)
+  def _reduce_38(val, _values, result)
       result = [ :CAST, val[1], val[3] ] 
     result
@@ -1491,8 +1603,8 @@
 .,.,
 
-# reduce 37 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 128)
-  def _reduce_38(val, _values, result)
+# reduce 39 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 135)
+  def _reduce_40(val, _values, result)
      result = [ :OP_MULT, val[0], val[2] ]  
     result
@@ -1500,6 +1612,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 130)
-  def _reduce_39(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 137)
+  def _reduce_41(val, _values, result)
      result = [ :OP_DIV, val[0], val[2] ]  
     result
@@ -1507,6 +1619,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 132)
-  def _reduce_40(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 139)
+  def _reduce_42(val, _values, result)
      result = [ :OP_REMAIN, val[0], val[2] ]  
     result
@@ -1514,8 +1626,8 @@
 .,.,
 
-# reduce 41 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 137)
-  def _reduce_42(val, _values, result)
+# reduce 43 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 144)
+  def _reduce_44(val, _values, result)
      result = [ :OP_ADD, val[0], val[2] ]  
     result
@@ -1523,6 +1635,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 139)
-  def _reduce_43(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 146)
+  def _reduce_45(val, _values, result)
      result = [ :OP_SUB, val[0], val[2] ]  
     result
@@ -1530,8 +1642,8 @@
 .,.,
 
-# reduce 44 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 144)
-  def _reduce_45(val, _values, result)
+# reduce 46 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 151)
+  def _reduce_47(val, _values, result)
      result = [ :OP_LSFT, val[0], val[2] ]  
     result
@@ -1539,6 +1651,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 146)
-  def _reduce_46(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 153)
+  def _reduce_48(val, _values, result)
      result = [ :OP_RSFT, val[0], val[2] ]  
     result
@@ -1546,8 +1658,8 @@
 .,.,
 
-# reduce 47 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 151)
-  def _reduce_48(val, _values, result)
+# reduce 49 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 158)
+  def _reduce_50(val, _values, result)
      result = [ :OP_LT, val[0], val[2] ]  
     result
@@ -1555,6 +1667,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 153)
-  def _reduce_49(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 160)
+  def _reduce_51(val, _values, result)
      result = [ :OP_GT, val[0], val[2] ]  
     result
@@ -1562,6 +1674,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 155)
-  def _reduce_50(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 162)
+  def _reduce_52(val, _values, result)
      result = [ :OP_LE, val[0], val[2] ]  
     result
@@ -1569,6 +1681,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 157)
-  def _reduce_51(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 164)
+  def _reduce_53(val, _values, result)
      result = [ :OP_GE, val[0], val[2] ]  
     result
@@ -1576,8 +1688,8 @@
 .,.,
 
-# reduce 52 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 162)
-  def _reduce_53(val, _values, result)
+# reduce 54 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 169)
+  def _reduce_55(val, _values, result)
      result = [ :OP_EQ, val[0], val[2] ]  
     result
@@ -1585,6 +1697,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 164)
-  def _reduce_54(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 171)
+  def _reduce_56(val, _values, result)
      result = [ :OP_NE, val[0], val[2] ]  
     result
@@ -1592,8 +1704,8 @@
 .,.,
 
-# reduce 55 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 169)
-  def _reduce_56(val, _values, result)
+# reduce 57 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 176)
+  def _reduce_58(val, _values, result)
      result = [ :OP_AND, val[0], val[2] ]  
     result
@@ -1601,8 +1713,8 @@
 .,.,
 
-# reduce 57 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 174)
-  def _reduce_58(val, _values, result)
+# reduce 59 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 181)
+  def _reduce_60(val, _values, result)
      result = [ :OP_EOR, val[0], val[2] ]  
     result
@@ -1610,8 +1722,8 @@
 .,.,
 
-# reduce 59 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 179)
-  def _reduce_60(val, _values, result)
+# reduce 61 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 186)
+  def _reduce_62(val, _values, result)
      result = [ :OP_OR, val[0], val[2] ]  
     result
@@ -1619,8 +1731,8 @@
 .,.,
 
-# reduce 61 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 184)
-  def _reduce_62(val, _values, result)
+# reduce 63 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 191)
+  def _reduce_64(val, _values, result)
      result = [ :OP_LAND, val[0], val[2] ]  
     result
@@ -1628,8 +1740,8 @@
 .,.,
 
-# reduce 63 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 189)
-  def _reduce_64(val, _values, result)
+# reduce 65 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 196)
+  def _reduce_66(val, _values, result)
      result = [ :OP_LOR, val[0], val[2] ]  
     result
@@ -1637,8 +1749,8 @@
 .,.,
 
-# reduce 65 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 194)
-  def _reduce_66(val, _values, result)
+# reduce 67 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 201)
+  def _reduce_68(val, _values, result)
      result = [ :OP_CEX, val[0], val[2].get_elements, val[4] ]  
     result
@@ -1646,6 +1758,32 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 201)
-  def _reduce_67(val, _values, result)
+# reduce 69 omitted
+
+# reduce 70 omitted
+
+# reduce 71 omitted
+
+# reduce 72 omitted
+
+# reduce 73 omitted
+
+# reduce 74 omitted
+
+# reduce 75 omitted
+
+# reduce 76 omitted
+
+# reduce 77 omitted
+
+# reduce 78 omitted
+
+# reduce 79 omitted
+
+# reduce 80 omitted
+
+# reduce 81 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 223)
+  def _reduce_82(val, _values, result)
     			result = Expression.new( val[0] )
 			# result.print
@@ -1655,6 +1793,14 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 208)
-  def _reduce_68(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 228)
+  def _reduce_83(val, _values, result)
+    			result = Expression.new( val[2] )    # ',' の後ろを採用
+		
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 234)
+  def _reduce_84(val, _values, result)
     			result = Expression.new( val[0] )
 			# result.print
@@ -1671,8 +1817,8 @@
 .,.,
 
-# reduce 69 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 237)
-  def _reduce_70(val, _values, result)
+# reduce 85 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 261)
+  def _reduce_86(val, _values, result)
     			result = CIntType.new( -3 )    # storage class は無視
 		
@@ -1681,8 +1827,24 @@
 .,.,
 
-# reduce 71 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 242)
-  def _reduce_72(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 265)
+  def _reduce_87(val, _values, result)
+    			result = val[1]                # storage class は無視
+		
+    result
+  end
+.,.,
+
+# reduce 88 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 270)
+  def _reduce_89(val, _values, result)
+    			result = val[1].merge val[0]
+		
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 274)
+  def _reduce_90(val, _values, result)
     			result = CIntType.new( -3 )
 			result.set_qualifier val[0]
@@ -1692,31 +1854,19 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 247)
-  def _reduce_73(val, _values, result)
-    			result = val[1]                # storage class は無視
-		
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 251)
-  def _reduce_74(val, _values, result)
-    			result = val[1].merge val[0]
-		
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 255)
-  def _reduce_75(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 279)
+  def _reduce_91(val, _values, result)
     			val[1].set_qualifier val[0]
-                        result = val[1]
-		
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 262)
-  def _reduce_76(val, _values, result)
+						result = val[1]
+		
+    result
+  end
+.,.,
+
+# reduce 92 omitted
+
+# reduce 93 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 287)
+  def _reduce_94(val, _values, result)
      result = [val[0]] 
     result
@@ -1724,6 +1874,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 264)
-  def _reduce_77(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 289)
+  def _reduce_95(val, _values, result)
      result << val[2] 
     result
@@ -1731,8 +1881,8 @@
 .,.,
 
-# reduce 78 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 269)
-  def _reduce_79(val, _values, result)
+# reduce 96 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 294)
+  def _reduce_97(val, _values, result)
      val[0].set_initializer( val[2] ) 
     result
@@ -1740,6 +1890,14 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 272)
-  def _reduce_80(val, _values, result)
+# reduce 98 omitted
+
+# reduce 99 omitted
+
+# reduce 100 omitted
+
+# reduce 101 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 304)
+  def _reduce_102(val, _values, result)
      set_no_type_name true; result = CVoidType.new 
     result
@@ -1747,6 +1905,34 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 273)
-  def _reduce_81(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 306)
+  def _reduce_103(val, _values, result)
+     set_no_type_name true; result = CIntType.new(-11 ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 308)
+  def _reduce_104(val, _values, result)
+     set_no_type_name true; result = CIntType.new( -2 ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 310)
+  def _reduce_105(val, _values, result)
+     set_no_type_name true; result = CIntType.new( -3 ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 312)
+  def _reduce_106(val, _values, result)
+     set_no_type_name true; result = CIntType.new( -4 ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 314)
+  def _reduce_107(val, _values, result)
      set_no_type_name true; result = CFloatType.new(-32) 
     result
@@ -1754,6 +1940,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 274)
-  def _reduce_82(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 316)
+  def _reduce_108(val, _values, result)
      set_no_type_name true; result = CFloatType.new(-64) 
     result
@@ -1761,69 +1947,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 275)
-  def _reduce_83(val, _values, result)
-     set_no_type_name true; result = CBoolType.new 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 276)
-  def _reduce_84(val, _values, result)
-     set_no_type_name true; result = val[0] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 277)
-  def _reduce_85(val, _values, result)
-     set_no_type_name true; result = CVoidType.new 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 278)
-  def _reduce_86(val, _values, result)
-     set_no_type_name true; result = CVoidType.new 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 279)
-  def _reduce_87(val, _values, result)
-     set_no_type_name true; result = CDefinedType.new( val[0].val ) 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 281)
-  def _reduce_88(val, _values, result)
-     set_no_type_name true; result = CIntType.new(-11 ) 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 282)
-  def _reduce_89(val, _values, result)
-     set_no_type_name true; result = CIntType.new( -2 ) 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 283)
-  def _reduce_90(val, _values, result)
-     set_no_type_name true; result = CIntType.new( -3 ) 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 284)
-  def _reduce_91(val, _values, result)
-     set_no_type_name true; result = CIntType.new( -4 ) 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 287)
-  def _reduce_92(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 319)
+  def _reduce_109(val, _values, result)
     			set_no_type_name true
 			result = CIntType.new( -3 )
@@ -1834,6 +1957,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 293)
-  def _reduce_93(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 325)
+  def _reduce_110(val, _values, result)
     			set_no_type_name true
 			result = CIntType.new( -3 )
@@ -1844,6 +1967,41 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 301)
-  def _reduce_94(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 330)
+  def _reduce_111(val, _values, result)
+     set_no_type_name true; result = CBoolType.new 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 332)
+  def _reduce_112(val, _values, result)
+     set_no_type_name true; result = val[0] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 334)
+  def _reduce_113(val, _values, result)
+     set_no_type_name true; result = CVoidType.new 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 336)
+  def _reduce_114(val, _values, result)
+     set_no_type_name true; result = CVoidType.new 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 338)
+  def _reduce_115(val, _values, result)
+     set_no_type_name true; result = CDefinedType.new( val[0].val ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 344)
+  def _reduce_116(val, _values, result)
      StructType.set_define( true )  
     result
@@ -1851,6 +2009,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 304)
-  def _reduce_95(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 347)
+  def _reduce_117(val, _values, result)
     			StructType.end_of_parse
 			result = val[1]
@@ -1860,6 +2018,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 309)
-  def _reduce_96(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 353)
+  def _reduce_118(val, _values, result)
     			result = CStructType.new()
 			StructType.set_define( true )
@@ -1869,6 +2027,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 314)
-  def _reduce_97(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 358)
+  def _reduce_119(val, _values, result)
     			StructType.end_of_parse
 			result = val[1]
@@ -1878,6 +2036,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 319)
-  def _reduce_98(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 364)
+  def _reduce_120(val, _values, result)
     			StructType.set_define( false )
 			StructType.end_of_parse
@@ -1888,10 +2046,17 @@
 .,.,
 
-# reduce 99 omitted
-
-# reduce 100 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 331)
-  def _reduce_101(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 370)
+  def _reduce_121(val, _values, result)
+     set_no_type_name true 
+    result
+  end
+.,.,
+
+# reduce 122 omitted
+
+# reduce 123 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 379)
+  def _reduce_124(val, _values, result)
     			result = CStructType.new( val[0].val )
 			set_no_type_name true
@@ -1901,6 +2066,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 340)
-  def _reduce_102(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 388)
+  def _reduce_125(val, _values, result)
     			val[1].each { |i|	# i: Decl
 				i.set_type( val[0] )
@@ -1915,12 +2080,24 @@
 .,.,
 
-# reduce 103 omitted
-
-# reduce 104 omitted
-
-# reduce 105 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 359)
-  def _reduce_106(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 399)
+  def _reduce_126(val, _values, result)
+    			val[1].each { |i|	# i: Decl
+				i.set_type( val[0] )
+				i.set_kind( :MEMBER )
+				i.check
+				CStructType.new_member( i )
+			}
+			result = val[1]
+		
+    result
+  end
+.,.,
+
+# reduce 127 omitted
+
+# reduce 128 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 417)
+  def _reduce_129(val, _values, result)
     			result = val[1].merge val[0]
 		
@@ -1929,6 +2106,17 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 363)
-  def _reduce_107(val, _values, result)
+# reduce 130 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 422)
+  def _reduce_131(val, _values, result)
+    			val[1].set_qualifier val[0]
+						result = val[1]
+		
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 427)
+  def _reduce_132(val, _values, result)
     			result = CIntType.new( -3 )
 			result.set_qualifier val[0]
@@ -1938,15 +2126,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 368)
-  def _reduce_108(val, _values, result)
-    			val[1].set_qualifier val[0]
-                        result = val[1]
-		
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 374)
-  def _reduce_109(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 433)
+  def _reduce_133(val, _values, result)
      result = [ val[0] ] 
     result
@@ -1954,6 +2133,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 376)
-  def _reduce_110(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 435)
+  def _reduce_134(val, _values, result)
      result << val[2] 
     result
@@ -1961,53 +2140,67 @@
 .,.,
 
-# reduce 111 omitted
-
-# reduce 112 omitted
-
-# reduce 113 omitted
-
-# reduce 114 omitted
-
-# reduce 115 omitted
-
-# reduce 116 omitted
-
-# reduce 117 omitted
-
-# reduce 118 omitted
-
-# reduce 119 omitted
-
-# reduce 120 omitted
-
-# reduce 121 omitted
-
-# reduce 122 omitted
-
-# reduce 123 omitted
-
-# reduce 124 omitted
-
-# reduce 125 omitted
-
-# reduce 126 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 418)
-  def _reduce_127(val, _values, result)
-     result = CEnumType.new( -1 ) 
-    result
-  end
-.,.,
-
-# reduce 128 omitted
-
-# reduce 129 omitted
-
-# reduce 130 omitted
-
-# reduce 131 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 434)
-  def _reduce_132(val, _values, result)
+# reduce 135 omitted
+
+# reduce 136 omitted
+
+# reduce 137 omitted
+
+# reduce 138 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 452)
+  def _reduce_139(val, _values, result)
+     set_no_type_name true 
+    result
+  end
+.,.,
+
+# reduce 140 omitted
+
+# reduce 141 omitted
+
+# reduce 142 omitted
+
+# reduce 143 omitted
+
+# reduce 144 omitted
+
+# reduce 145 omitted
+
+# reduce 146 omitted
+
+# reduce 147 omitted
+
+# reduce 148 omitted
+
+# reduce 149 omitted
+
+# reduce 150 omitted
+
+# reduce 151 omitted
+
+# reduce 152 omitted
+
+# reduce 153 omitted
+
+# reduce 154 omitted
+
+# reduce 155 omitted
+
+# reduce 156 omitted
+
+# reduce 157 omitted
+
+# reduce 158 omitted
+
+# reduce 159 omitted
+
+# reduce 160 omitted
+
+# reduce 161 omitted
+
+# reduce 162 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 495)
+  def _reduce_163(val, _values, result)
      result = :CONST 
     result
@@ -2015,6 +2208,8 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 435)
-  def _reduce_133(val, _values, result)
+# reduce 164 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 498)
+  def _reduce_165(val, _values, result)
      result = :VOLATILE 
     result
@@ -2022,6 +2217,14 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 440)
-  def _reduce_134(val, _values, result)
+# reduce 166 omitted
+
+# reduce 167 omitted
+
+# reduce 168 omitted
+
+# reduce 169 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 509)
+  def _reduce_170(val, _values, result)
     			val[1].set_type( val[0] )
 			result = val[1]
@@ -2031,8 +2234,8 @@
 .,.,
 
-# reduce 135 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 446)
-  def _reduce_136(val, _values, result)
+# reduce 171 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 515)
+  def _reduce_172(val, _values, result)
     			result = Decl.new( val[1].val )
 			result.set_type( val[0] )
@@ -2042,6 +2245,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 452)
-  def _reduce_137(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 521)
+  def _reduce_173(val, _values, result)
      result = Decl.new( val[0].val ) 
     result
@@ -2049,6 +2252,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 454)
-  def _reduce_138(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 523)
+  def _reduce_174(val, _values, result)
      result = val[1] 
     result
@@ -2056,6 +2259,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 457)
-  def _reduce_139(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 526)
+  def _reduce_175(val, _values, result)
     			val[0].set_type( CArrayType.new( val[2] ) )
 			result = val[0]
@@ -2065,6 +2268,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 462)
-  def _reduce_140(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 531)
+  def _reduce_176(val, _values, result)
     			val[0].set_type( CArrayType.new )
 			result = val[0]
@@ -2074,6 +2277,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 467)
-  def _reduce_141(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 536)
+  def _reduce_177(val, _values, result)
     		# 	Generator.warning( "W6001 need 'void' for no parameter"  )
 			val[0].set_type( CFuncType.new )
@@ -2084,6 +2287,8 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 475)
-  def _reduce_142(val, _values, result)
+# reduce 178 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 543)
+  def _reduce_179(val, _values, result)
     		# 	Generator.warning( "W6002 need 'void' for no parameter"  )
 			val[0].set_type( CFuncType.new )
@@ -2094,6 +2299,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 482)
-  def _reduce_143(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 550)
+  def _reduce_180(val, _values, result)
      result = CPtrType.new 
     result
@@ -2101,6 +2306,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 485)
-  def _reduce_144(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 553)
+  def _reduce_181(val, _values, result)
     			result = CPtrType.new
 			result.set_qualifier( val[1] )
@@ -2110,6 +2315,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 490)
-  def _reduce_145(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 558)
+  def _reduce_182(val, _values, result)
     			val[1].set_type(CPtrType.new)
 			result = val[1]
@@ -2119,6 +2324,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 495)
-  def _reduce_146(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 563)
+  def _reduce_183(val, _values, result)
     			ptrtype = CPtrType.new
 			ptrtype.set_qualifier( val[1] )
@@ -2130,40 +2335,48 @@
 .,.,
 
-# reduce 147 omitted
-
-# reduce 148 omitted
-
-# reduce 149 omitted
-
-# reduce 150 omitted
-
-# reduce 151 omitted
-
-# reduce 152 omitted
-
-# reduce 153 omitted
-
-# reduce 154 omitted
-
-# reduce 155 omitted
-
-# reduce 156 omitted
-
-# reduce 157 omitted
-
-# reduce 158 omitted
-
-# reduce 159 omitted
-
-# reduce 160 omitted
-
-# reduce 161 omitted
-
-# reduce 162 omitted
-
-# reduce 163 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 559)
-  def _reduce_164(val, _values, result)
+# reduce 184 omitted
+
+# reduce 185 omitted
+
+# reduce 186 omitted
+
+# reduce 187 omitted
+
+# reduce 188 omitted
+
+# reduce 189 omitted
+
+# reduce 190 omitted
+
+# reduce 191 omitted
+
+# reduce 192 omitted
+
+# reduce 193 omitted
+
+# reduce 194 omitted
+
+# reduce 195 omitted
+
+# reduce 196 omitted
+
+# reduce 197 omitted
+
+# reduce 198 omitted
+
+# reduce 199 omitted
+
+# reduce 200 omitted
+
+# reduce 201 omitted
+
+# reduce 202 omitted
+
+# reduce 203 omitted
+
+# reduce 204 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 630)
+  def _reduce_205(val, _values, result)
     			Generator.warning( "W6003 need 'void' for no parameter"  )
 		
@@ -2172,8 +2385,8 @@
 .,.,
 
-# reduce 165 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 564)
-  def _reduce_166(val, _values, result)
+# reduce 206 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 635)
+  def _reduce_207(val, _values, result)
     			Generator.warning( "W6004 need 'void' for no parameter"  )
 		
@@ -2182,8 +2395,8 @@
 .,.,
 
-# reduce 167 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 571)
-  def _reduce_168(val, _values, result)
+# reduce 208 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 642)
+  def _reduce_209(val, _values, result)
      result = val[0] 
     result
@@ -2191,6 +2404,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 573)
-  def _reduce_169(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 644)
+  def _reduce_210(val, _values, result)
      result = val[1] 
     result
@@ -2198,6 +2411,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 575)
-  def _reduce_170(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 646)
+  def _reduce_211(val, _values, result)
      result = val[1] 
     result
@@ -2205,6 +2418,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 577)
-  def _reduce_171(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 648)
+  def _reduce_212(val, _values, result)
      result = C_EXP.new( val[2] ) 
     result
@@ -2212,6 +2425,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 582)
-  def _reduce_172(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 653)
+  def _reduce_213(val, _values, result)
     			result = [ val[0] ]
 		
@@ -2220,6 +2433,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 586)
-  def _reduce_173(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 657)
+  def _reduce_214(val, _values, result)
     			val[0] << val[2]
 			result = val[0]
@@ -2229,28 +2442,28 @@
 .,.,
 
-# reduce 174 omitted
-
-# reduce 175 omitted
-
-# reduce 176 omitted
-
-# reduce 177 omitted
-
-# reduce 178 omitted
-
-# reduce 179 omitted
-
-# reduce 180 omitted
-
-# reduce 181 omitted
-
-# reduce 182 omitted
-
-# reduce 183 omitted
-
-# reduce 184 omitted
-
-module_eval(<<'.,.,', 'C_parser.y.rb', 614)
-  def _reduce_185(val, _values, result)
+# reduce 215 omitted
+
+# reduce 216 omitted
+
+# reduce 217 omitted
+
+# reduce 218 omitted
+
+# reduce 219 omitted
+
+# reduce 220 omitted
+
+# reduce 221 omitted
+
+# reduce 222 omitted
+
+# reduce 223 omitted
+
+# reduce 224 omitted
+
+# reduce 225 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 685)
+  def _reduce_226(val, _values, result)
     			val[2].each{ |i|
 			   i.set_kind( :TYPEDEF )
@@ -2263,6 +2476,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 623)
-  def _reduce_186(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 694)
+  def _reduce_227(val, _values, result)
      result = [ val[0] ] 
     result
@@ -2270,6 +2483,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 625)
-  def _reduce_187(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 696)
+  def _reduce_228(val, _values, result)
      result << val[2] 
     result
@@ -2277,86 +2490,4 @@
 .,.,
 
-# reduce 188 omitted
-
-# reduce 189 omitted
-
-# reduce 190 omitted
-
-# reduce 191 omitted
-
-# reduce 192 omitted
-
-# reduce 193 omitted
-
-# reduce 194 omitted
-
-# reduce 195 omitted
-
-# reduce 196 omitted
-
-# reduce 197 omitted
-
-# reduce 198 omitted
-
-# reduce 199 omitted
-
-# reduce 200 omitted
-
-# reduce 201 omitted
-
-# reduce 202 omitted
-
-# reduce 203 omitted
-
-# reduce 204 omitted
-
-# reduce 205 omitted
-
-# reduce 206 omitted
-
-# reduce 207 omitted
-
-# reduce 208 omitted
-
-# reduce 209 omitted
-
-# reduce 210 omitted
-
-# reduce 211 omitted
-
-# reduce 212 omitted
-
-# reduce 213 omitted
-
-# reduce 214 omitted
-
-# reduce 215 omitted
-
-# reduce 216 omitted
-
-# reduce 217 omitted
-
-# reduce 218 omitted
-
-# reduce 219 omitted
-
-# reduce 220 omitted
-
-# reduce 221 omitted
-
-# reduce 222 omitted
-
-# reduce 223 omitted
-
-# reduce 224 omitted
-
-# reduce 225 omitted
-
-# reduce 226 omitted
-
-# reduce 227 omitted
-
-# reduce 228 omitted
-
 # reduce 229 omitted
 
@@ -2377,6 +2508,60 @@
 # reduce 237 omitted
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 706)
-  def _reduce_238(val, _values, result)
+# reduce 238 omitted
+
+# reduce 239 omitted
+
+# reduce 240 omitted
+
+# reduce 241 omitted
+
+# reduce 242 omitted
+
+# reduce 243 omitted
+
+# reduce 244 omitted
+
+# reduce 245 omitted
+
+# reduce 246 omitted
+
+# reduce 247 omitted
+
+# reduce 248 omitted
+
+# reduce 249 omitted
+
+# reduce 250 omitted
+
+# reduce 251 omitted
+
+# reduce 252 omitted
+
+# reduce 253 omitted
+
+# reduce 254 omitted
+
+# reduce 255 omitted
+
+# reduce 256 omitted
+
+# reduce 257 omitted
+
+# reduce 258 omitted
+
+# reduce 259 omitted
+
+# reduce 260 omitted
+
+# reduce 261 omitted
+
+# reduce 262 omitted
+
+# reduce 263 omitted
+
+# reduce 264 omitted
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 761)
+  def _reduce_265(val, _values, result)
      result = NamespacePath.new( val[0].val, false ) 
     result
@@ -2384,6 +2569,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 707)
-  def _reduce_239(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 762)
+  def _reduce_266(val, _values, result)
      result = NamespacePath.new( val[1].val, true ) 
     result
@@ -2391,7 +2576,24 @@
 .,.,
 
-module_eval(<<'.,.,', 'C_parser.y.rb', 709)
-  def _reduce_240(val, _values, result)
+module_eval(<<'.,.,', 'C_parser.y.rb', 764)
+  def _reduce_267(val, _values, result)
      result = val[0].append!( val[2].val ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'C_parser.y.rb', 768)
+  def _reduce_268(val, _values, result)
+    		while true
+			# ';' が表れるまで、トークンを読み飛ばす。
+			# gcc の構文拡張に対応すべきだが、単純な実装として、';' まで読み飛ばす。
+			# トークン単位で読み飛ばしているので、文字列やコメント内の ';' は対象にならない。
+			token = next_token
+			if token[1].val == ";"
+				break
+			end
+			# p "skip: #{token[1].val}" 
+		end
+		
     result
   end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.y.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.y.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/C_parser.y.rb	(revision 429)
@@ -4,7 +4,7 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2018 by TOPPERS Project
 #--
-#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   上記著作権者は，以下の(1)〜(4)の条件を満たす場合に限り，本ソフトウェ
 #   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
 #   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
@@ -35,5 +35,5 @@
 #   の責任を負わない．
 #  
-#   $Id$
+#   $Id: C_parser.y.rb 2810 2018-03-11 13:20:03Z okuma-top $
 #++
 
@@ -48,7 +48,12 @@
 # argument_expression_list(関数引数), assignment_expression(代入)がない
 # 式の result は、すべて配列で第一要素が識別シンボル、第二要素以下が引数
+#
+# 2019/3/28 長島 下記のC99の構文に近づくよう変更
+#（読めないヘッダーファイルがあったため）
+# http://www.quut.com/c/ANSI-C-grammar-y-1999.html
+# 元々のコメントと合わなくなっています
 
 primary_expression
-        : namespace_identifier
+		: namespace_identifier
 		{ result = [ :IDENTIFIER, val[0] ] }     #1ok
 #        : IDENTIFIER	# mikan namespace への対応
@@ -58,53 +63,55 @@
 #        | FALSE
 #		{ result = [ :BOOL_CONSTANT, false ] }
-        | INTEGER_CONSTANT
+		| INTEGER_CONSTANT
 		{ result = [ :INTEGER_CONSTANT, val[0] ] }
-        | FLOATING_CONSTANT
+		| FLOATING_CONSTANT
 		{ result = [ :FLOATING_CONSTANT, val[0] ] }
-        | OCTAL_CONSTANT
+		| OCTAL_CONSTANT
 		{ result = [ :OCTAL_CONSTANT, val[0] ] }
-        | HEX_CONSTANT
+		| HEX_CONSTANT
 		{ result = [ :HEX_CONSTANT, val[0] ] }
-        | CHARACTER_LITERAL
+		| CHARACTER_LITERAL
 		{ result = [ :CHARACTER_LITERAL, val[0] ] }
-        | string_literal_list
+		| string_literal_list
 		{ result = [ :STRING_LITERAL_LIST, val[0] ] }
-        | '(' expression ')'
+		| '(' expression ')'
 		{ result = [ :PARENTHESES, val[1].get_elements ] }
 
 string_literal_list
-        : STRING_LITERAL
+		: STRING_LITERAL
 		{ result = [val[0]] }
-        | string_literal_list STRING_LITERAL
+		| string_literal_list STRING_LITERAL
 		{ result << val[1] }
 
 # 関数呼び出しと後置インクリメント、デクリメント演算子がない
 postfix_expression
-        : primary_expression
-        | primary_expression '(' argument_list ')'
-        | primary_expression type_qualifier '(' argument_list ')'    # intended __asm volatile ( "   MNEMONIC  OPERAND" );
-        | postfix_expression '[' expression ']'
+		: primary_expression
+		| postfix_expression '[' expression ']'
 		{ result = [ :OP_SUBSC, val[0], val[2] ] }
-        | postfix_expression '.' IDENTIFIER
+		| postfix_expression '(' ')'
+		| postfix_expression '(' argument_expression_list ')'
+		| postfix_expression type_qualifier '(' argument_expression_list ')'    # intended __asm volatile ( "   MNEMONIC  OPERAND" );
+		| postfix_expression '.' IDENTIFIER
 		{ result = [ :OP_DOT, val[0], val[2] ] }
-        | postfix_expression '->' IDENTIFIER
+		| postfix_expression '->' IDENTIFIER
 		{ result = [ :OP_REF, val[0], val[2] ] }
-        | postfix_expression '++'	{ result = val[0] }   # ++, -- は無視する
-        | postfix_expression '--'	{ result = val[0] }
-
-argument_list
-        :
-        | expression
-        | argument_list ',' expression
+		| postfix_expression '++'	{ result = val[0] }   # ++, -- は無視する
+		| postfix_expression '--'	{ result = val[0] }
+		| '(' type_name ')' '{' initializer_list '}'
+		| '(' type_name ')' '{' initializer_list ',' '}'
+
+argument_expression_list
+		: assignment_expression
+		| argument_expression_list ',' assignment_expression
 
 
 # 前置インクリメント、デクリメント演算子がない
 unary_expression
-        : postfix_expression
-        | unary_operator cast_expression
+		: postfix_expression
+		| unary_operator cast_expression
 		{ result = [ val[0], val[1] ] }
-        | SIZEOF unary_expression
+		| SIZEOF unary_expression
 		{ result = [ :OP_SIZEOF_EXPR, val[1] ] }
-        | SIZEOF '(' type_name ')'
+		| SIZEOF '(' type_name ')'
 		{ result = [ :OP_SIZEOF_TYPE, val[1] ] }
 		| '++' unary_expression			{ result = val[1] }   # ++, -- は無視する
@@ -112,98 +119,117 @@
 
 unary_operator
-        : '&'	{ result = :OP_U_AMP }
-        | '*'	{ result = :OP_U_ASTER }
-        | '+'	{ result = :OP_U_PLUS }
-        | '-'	{ result = :OP_U_MINUS }
-        | '~'	{ result = :OP_U_TILDE }
-        | '!'	{ result = :OP_U_EXCLAM }
+		: '&'	{ result = :OP_U_AMP }
+		| '*'	{ result = :OP_U_ASTER }
+		| '+'	{ result = :OP_U_PLUS }
+		| '-'	{ result = :OP_U_MINUS }
+		| '~'	{ result = :OP_U_TILDE }
+		| '!'	{ result = :OP_U_EXCLAM }
 
 cast_expression
-        : unary_expression
-        | '(' type_name ')' cast_expression
+		: unary_expression
+		| '(' type_name ')' cast_expression
 		{  result = [ :CAST, val[1], val[3] ] }
 
 multiplicative_expression
-        : cast_expression
-        | multiplicative_expression '*' cast_expression
+		: cast_expression
+		| multiplicative_expression '*' cast_expression
 		{ result = [ :OP_MULT, val[0], val[2] ]  }
-        | multiplicative_expression '/' cast_expression
+		| multiplicative_expression '/' cast_expression
 		{ result = [ :OP_DIV, val[0], val[2] ]  }
-        | multiplicative_expression '%' cast_expression
+		| multiplicative_expression '%' cast_expression
 		{ result = [ :OP_REMAIN, val[0], val[2] ]  }
 
 additive_expression
-        : multiplicative_expression
-        | additive_expression '+' multiplicative_expression
+		: multiplicative_expression
+		| additive_expression '+' multiplicative_expression
 		{ result = [ :OP_ADD, val[0], val[2] ]  }
-        | additive_expression '-' multiplicative_expression
+		| additive_expression '-' multiplicative_expression
 		{ result = [ :OP_SUB, val[0], val[2] ]  }
 
 shift_expression
-        : additive_expression
-        | shift_expression '<<' additive_expression
+		: additive_expression
+		| shift_expression '<<' additive_expression
 		{ result = [ :OP_LSFT, val[0], val[2] ]  }
-        | shift_expression '>>' additive_expression
+		| shift_expression '>>' additive_expression
 		{ result = [ :OP_RSFT, val[0], val[2] ]  }
 
 relational_expression
-        : shift_expression
-        | relational_expression '<' shift_expression
+		: shift_expression
+		| relational_expression '<' shift_expression
 		{ result = [ :OP_LT, val[0], val[2] ]  }
-        | relational_expression '>' shift_expression
+		| relational_expression '>' shift_expression
 		{ result = [ :OP_GT, val[0], val[2] ]  }
-        | relational_expression '<=' shift_expression
+		| relational_expression '<=' shift_expression
 		{ result = [ :OP_LE, val[0], val[2] ]  }
-        | relational_expression '>=' shift_expression
+		| relational_expression '>=' shift_expression
 		{ result = [ :OP_GE, val[0], val[2] ]  }
 
 equality_expression
-        : relational_expression
-        | equality_expression '==' relational_expression
+		: relational_expression
+		| equality_expression '==' relational_expression
 		{ result = [ :OP_EQ, val[0], val[2] ]  }
-        | equality_expression '!=' relational_expression
+		| equality_expression '!=' relational_expression
 		{ result = [ :OP_NE, val[0], val[2] ]  }
 
 and_expression
-        : equality_expression
-        | and_expression '&' equality_expression
+		: equality_expression
+		| and_expression '&' equality_expression
 		{ result = [ :OP_AND, val[0], val[2] ]  }
 
 exclusive_or_expression
-        : and_expression
-        | exclusive_or_expression '^' and_expression
+		: and_expression
+		| exclusive_or_expression '^' and_expression
 		{ result = [ :OP_EOR, val[0], val[2] ]  }
 
 inclusive_or_expression
-        : exclusive_or_expression
-        | inclusive_or_expression '|' exclusive_or_expression
+		: exclusive_or_expression
+		| inclusive_or_expression '|' exclusive_or_expression
 		{ result = [ :OP_OR, val[0], val[2] ]  }
 
 logical_and_expression
-        : inclusive_or_expression
-        | logical_and_expression '&&' inclusive_or_expression
+		: inclusive_or_expression
+		| logical_and_expression '&&' inclusive_or_expression
 		{ result = [ :OP_LAND, val[0], val[2] ]  }
 
 logical_or_expression
-        : logical_and_expression
-        | logical_or_expression '||' logical_and_expression
+		: logical_and_expression
+		| logical_or_expression '||' logical_and_expression
 		{ result = [ :OP_LOR, val[0], val[2] ]  }
 
 conditional_expression
-        : logical_or_expression
-        | logical_or_expression '?' expression ':' conditional_expression
+		: logical_or_expression
+		| logical_or_expression '?' expression ':' conditional_expression
 		{ result = [ :OP_CEX, val[0], val[2].get_elements, val[4] ]  }
 
-
-# コンマ演算子が使えない
+assignment_expression
+		: conditional_expression
+		| unary_expression assignment_operator assignment_expression
+
+assignment_operator
+		: '='
+		| '+='
+		| '-='
+		| '*='
+		| '/='
+		| '%='
+		| '<<='
+		| '>>='
+		| '&='
+		| '|='
+		| '^='
+
 expression
-        : conditional_expression
+		: assignment_expression
 		{
 			result = Expression.new( val[0] )
 			# result.print
 		}
+		| expression ',' assignment_expression
+		{
+			result = Expression.new( val[2] )    # ',' の後ろを採用
+		}
 
 constant_expression
-        : conditional_expression
+		: conditional_expression
 		{
 			result = Expression.new( val[0] )
@@ -218,6 +244,4 @@
 		}
 
-
-
 # Types
 ##########################  宣言  ##########################
@@ -227,62 +251,70 @@
 # K&Rとの違い: storage classが指定できない、型が省略できない
 declaration
-        : declaration_specifiers init_declarator_list ';'
-#        : type_specifier_qualifier_list init_declarator_list ';'
+		: declaration_specifiers init_declarator_list ';'
+#        : specifier_qualifier_list init_declarator_list ';'
 
 # declaration_specifiersは関数のパラメータで使われるが、
-# type_specifier_qualifier_listで十分かもしれない
+# specifier_qualifier_listで十分かもしれない
 
 declaration_specifiers
-        : storage_class
+		: storage_class_specifier
 		{
 			result = CIntType.new( -3 )    # storage class は無視
 		}
-        | type_specifier
-        | type_qualifier
+		| storage_class_specifier declaration_specifiers
+		{
+			result = val[1]                # storage class は無視
+		}
+		| type_specifier
+		| type_specifier declaration_specifiers
+		{
+			result = val[1].merge val[0]
+		}
+		| type_qualifier
 		{
 			result = CIntType.new( -3 )
 			result.set_qualifier val[0]
 		}
-        | storage_class declaration_specifiers
-		{
-			result = val[1]                # storage class は無視
-		}
-        | type_specifier declaration_specifiers
-		{
-			result = val[1].merge val[0]
-		}
-        | type_qualifier declaration_specifiers
+		| type_qualifier declaration_specifiers
 		{
 			val[1].set_qualifier val[0]
-                        result = val[1]
-		}
-
+						result = val[1]
+		}
+		| function_specifier
+		| function_specifier declaration_specifiers
 
 init_declarator_list
-        : init_declarator
+		: init_declarator
 		{ result = [val[0]] }
-        | init_declarator_list ',' init_declarator
+		| init_declarator_list ',' init_declarator
 		{ result << val[2] }
 
 init_declarator
-        : declarator
-        | declarator '=' initializer
+		: declarator
+		| declarator '=' initializer
 		{ val[0].set_initializer( val[2] ) }
 
+storage_class_specifier
+		: EXTERN
+		| STATIC
+		| AUTO
+		| REGISTER
+
 type_specifier
-        : VOID	{ set_no_type_name true; result = CVoidType.new }
-        | FLOAT	{ set_no_type_name true; result = CFloatType.new(-32) }
-        | DOUBLE	{ set_no_type_name true; result = CFloatType.new(-64) }
-        | BOOL	{ set_no_type_name true; result = CBoolType.new }
-        | struct_specifier	{ set_no_type_name true; result = val[0] } # set_no_type_name true は struct_tag でも呼ばれる
-        | union_specifier	{ set_no_type_name true; result = CVoidType.new }  # void が宣言されたとする
-        | enum_specifier	{ set_no_type_name true; result = CVoidType.new }  # void が宣言されたとする
-        | TYPE_NAME	{ set_no_type_name true; result = CDefinedType.new( val[0].val ) }
-
-        | CHAR	{ set_no_type_name true; result = CIntType.new(-11 ) }
-        | SHORT	{ set_no_type_name true; result = CIntType.new( -2 ) }
-        | INT		{ set_no_type_name true; result = CIntType.new( -3 ) }
-        | LONG	{ set_no_type_name true; result = CIntType.new( -4 ) }
-        | SIGNED
+		: VOID
+		{ set_no_type_name true; result = CVoidType.new }
+		| CHAR
+		{ set_no_type_name true; result = CIntType.new(-11 ) }
+		| SHORT
+		{ set_no_type_name true; result = CIntType.new( -2 ) }
+		| INT
+		{ set_no_type_name true; result = CIntType.new( -3 ) }
+		| LONG
+		{ set_no_type_name true; result = CIntType.new( -4 ) }
+		| FLOAT
+		{ set_no_type_name true; result = CFloatType.new(-32) }
+		| DOUBLE
+		{ set_no_type_name true; result = CFloatType.new(-64) }
+		| SIGNED
 		{
 			set_no_type_name true
@@ -290,5 +322,5 @@
 			result.set_sign :SIGNED
 		}
-        | UNSIGNED
+		| UNSIGNED
 		{
 			set_no_type_name true
@@ -296,25 +328,38 @@
 			result.set_sign :UNSIGNED
 		}
+		| BOOL
+		{ set_no_type_name true; result = CBoolType.new }
+		| struct_specifier
+		{ set_no_type_name true; result = val[0] } # set_no_type_name true は struct_tag でも呼ばれる
+		| union_specifier
+		{ set_no_type_name true; result = CVoidType.new }  # void が宣言されたとする
+		| enum_specifier
+		{ set_no_type_name true; result = CVoidType.new }  # void が宣言されたとする
+		| TYPE_NAME
+		{ set_no_type_name true; result = CDefinedType.new( val[0].val ) }
 
 # mikan K&Rのstruct_or_union_specifierに相当するが、unionは使えない, bit field にも対応しない
 struct_specifier		# mikan
-        : STRUCT struct_tag '{'
+#        : STRUCT struct_tag '{'
+		: struct_term struct_tag '{'
 		{ StructType.set_define( true )  }
-	   struct_declaration_list '}'
+		struct_declaration_list '}'
 		{
 			StructType.end_of_parse
 			result = val[1]
 		}
-        | STRUCT
+#        | STRUCT
+		| struct_term
 		{
 			result = CStructType.new()
 			StructType.set_define( true )
 		}
-	   '{' struct_declaration_list '}'
+		'{' struct_declaration_list '}'
 		{
 			StructType.end_of_parse
 			result = val[1]
 		}
-        | STRUCT struct_tag   # mikan struct_tag は namespace 対応が必要
+#        | STRUCT struct_tag   # mikan struct_tag は namespace 対応が必要
+		| struct_term struct_tag   # mikan struct_tag は namespace 対応が必要
 		{
 			StructType.set_define( false )
@@ -323,10 +368,13 @@
 		}
 
+struct_term
+		: STRUCT { set_no_type_name true }
+
 struct_declaration_list
-        : struct_declaration
-        | struct_declaration_list struct_declaration
+		: struct_declaration
+		| struct_declaration_list struct_declaration
 
 struct_tag:
-        IDENTIFIER
+		IDENTIFIER
 		{
 			result = CStructType.new( val[0].val )
@@ -336,6 +384,6 @@
 # ポインタ修飾子を追加
 struct_declaration
-        : declaration_specifiers struct_declarator_list ';'
-#        :                                type_specifier_qualifier_list struct_declarator_list ';'
+		: declaration_specifiers struct_declarator_list ';'
+#        :                                specifier_qualifier_list struct_declarator_list ';'
 		{
 			val[1].each { |i|	# i: Decl
@@ -347,6 +395,17 @@
 			result = val[1]
 		}
-        | union_specifier ';'                       # 無名
-        | struct_specifier ';'                       # 無名
+		# ビットフィールドを読み飛ばし
+		| declaration_specifiers struct_declarator_list ':' constant_expression ';'
+		{
+			val[1].each { |i|	# i: Decl
+				i.set_type( val[0] )
+				i.set_kind( :MEMBER )
+				i.check
+				CStructType.new_member( i )
+			}
+			result = val[1]
+		}
+		| union_specifier ';'                       # 無名
+		| struct_specifier ';'                       # 無名
 
 
@@ -354,41 +413,47 @@
 # K&Rのspecifier_qualifier_listと同じ
 # 名前がまぎらわしかったのでtype_を付けた
-type_specifier_qualifier_list
-        : type_specifier
-        | type_specifier type_specifier_qualifier_list
+specifier_qualifier_list
+		: type_specifier specifier_qualifier_list
 		{
 			result = val[1].merge val[0]
 		}
-        | type_qualifier
+		| type_specifier
+		| type_qualifier specifier_qualifier_list
+		{
+			val[1].set_qualifier val[0]
+						result = val[1]
+		}
+		| type_qualifier
 		{
 			result = CIntType.new( -3 )
 			result.set_qualifier val[0]
 		}
-        | type_qualifier type_specifier_qualifier_list
-		{
-			val[1].set_qualifier val[0]
-                        result = val[1]
-		}
 
 struct_declarator_list
-        : struct_declarator
+		: struct_declarator
 		{ result = [ val[0] ] }
-        | struct_declarator_list ',' struct_declarator
+		| struct_declarator_list ',' struct_declarator
 		{ result << val[2] }
 
 # ビットフィールドは使えない
 struct_declarator
-        : declarator
-
-
+		: declarator
+#		| ':' constant_expression
+#		| declarator ':' constant_expression
 
 union_specifier
-        : UNION union_tag '{' union_declaration_list '}'
-        | UNION '{' union_declaration_list '}'
-        | UNION union_tag   # mikan struct_tag は namespace 対応が必要
+#        : UNION union_tag '{' union_declaration_list '}'
+#        | UNION '{' union_declaration_list '}'
+#        | UNION union_tag   # mikan struct_tag は namespace 対応が必要
+		: union_term union_tag '{' union_declaration_list '}'
+		| union_term '{' union_declaration_list '}'
+		| union_term union_tag   # mikan struct_tag は namespace 対応が必要
+
+union_term
+		: UNION { set_no_type_name true }
 
 union_declaration_list
-        : union_declaration
-        | union_declaration_list union_declaration
+		: union_declaration
+		| union_declaration_list union_declaration
 
 union_tag:
@@ -396,52 +461,56 @@
 
 union_declaration
-        : declaration_specifiers union_declarator_list ';'
+		: declaration_specifiers union_declarator_list ';'
 		| union_specifier ';'                       # 無名
 		| struct_specifier ';'                      # 無名
 
 union_declarator_list
-        : union_declarator
-        | union_declarator_list ',' union_declarator
-
-# ビットフィールドは使えない
+		: union_declarator
+		| union_declarator_list ',' union_declarator
+
 union_declarator
-        : declarator
-
-
-
-# enumの種類を追加
-enum_specifier		# mikan
-        : enum_type            '{' enumerator_list '}'
-        | enum_type IDENTIFIER '{' enumerator_list '}'
-        | enum_type IDENTIFIER
-
-enum_type
-        : ENUM	{ result = CEnumType.new( -1 ) }
-#        | ENUM8	{ result = CEnumType.new( 8 ) }
-#        | ENUM16	{ result = CEnumType.new( 16 ) }
-#        | ENUM32	{ result = CEnumType.new( 32 ) }
-#        | ENUM64	{ result = CEnumType.new( 64 ) }
-#        | ENUM128	{ result = CEnumType.new( 128 ) }
+		: declarator
+		| ':' constant_expression
+		| declarator ':' constant_expression
+
+enum_specifier
+		: ENUM '{' enumerator_list '}'
+		| ENUM IDENTIFIER '{' enumerator_list '}'
+		| ENUM '{' enumerator_list ',' '}'
+		| ENUM IDENTIFIER '{' enumerator_list ',' '}'
+		| ENUM IDENTIFIER
+		| ENUM TYPE_NAME '{' enumerator_list '}'
+		| ENUM TYPE_NAME '{' enumerator_list ',' '}'
+		| ENUM TYPE_NAME
 
 enumerator_list
-        : enumerator
-        | enumerator_list ',' enumerator
+		: enumerator
+		| enumerator_list ',' enumerator
 
 enumerator
-        : IDENTIFIER
-        | IDENTIFIER '=' constant_expression
+		: IDENTIFIER
+		| IDENTIFIER '=' constant_expression
 
 type_qualifier
-        : CONST	{ result = :CONST }
-        | VOLATILE	{ result = :VOLATILE }
+		: CONST
+		{ result = :CONST }
+		| RESTRICT
+		| VOLATILE
+		{ result = :VOLATILE }
+
+function_specifier
+		: __INLINE__
+		| INLINE
+		| __INLINE
+		| CINLINE
 
 declarator
-        : pointer direct_declarator
+		: pointer direct_declarator
 		{
 			val[1].set_type( val[0] )
 			result = val[1]
 		}
-        | direct_declarator
-        | pointer TYPE_NAME     # 関数ポインタの typedef が二重定義の場合
+		| direct_declarator
+		| pointer TYPE_NAME     # 関数ポインタの typedef が二重定義の場合
 		{
 			result = Decl.new( val[1].val )
@@ -450,19 +519,19 @@
 
 direct_declarator		# mikan
-        : IDENTIFIER
+		: IDENTIFIER
 		{ result = Decl.new( val[0].val ) }
-        | '(' declarator ')'
+		| '(' declarator ')'
 		{ result = val[1] }
-        | direct_declarator '[' constant_expression ']'
+		| direct_declarator '[' constant_expression ']'
 		{
 			val[0].set_type( CArrayType.new( val[2] ) )
 			result = val[0]
 		}
-        | direct_declarator '[' ']'
+		| direct_declarator '[' ']'
 		{
 			val[0].set_type( CArrayType.new )
 			result = val[0]
 		}
-        | direct_declarator '(' parameter_type_list ')'
+		| direct_declarator '(' parameter_type_list ')'
 		{
 		# 	Generator.warning( "W6001 need 'void' for no parameter"  )
@@ -470,7 +539,6 @@
 			result = val[0]
 		}
-
-#        | direct_declarator '(' identifier_list ')'  # これは何のために必要？ 060211
-        | direct_declarator '(' ')'
+		| direct_declarator '(' identifier_list ')'  # これは何のために必要？ 060211
+		| direct_declarator '(' ')'
 		{
 		# 	Generator.warning( "W6002 need 'void' for no parameter"  )
@@ -480,17 +548,17 @@
 
 pointer
-        : '*'
+		: '*'
 		{ result = CPtrType.new }
-        | '*' type_qualifier
+		| '*' type_qualifier_list
 		{
 			result = CPtrType.new
 			result.set_qualifier( val[1] )
 		}
-        | '*' pointer
+		| '*' pointer
 		{
 			val[1].set_type(CPtrType.new)
 			result = val[1]
 		}
-        | '*' type_qualifier pointer
+		| '*' type_qualifier_list pointer
 		{
 			ptrtype = CPtrType.new
@@ -500,14 +568,17 @@
 		}
 
+type_qualifier_list
+		: type_qualifier
+		| type_qualifier_list type_qualifier
 
 parameter_type_list
-        : parameter_list
-        | parameter_list ',' '.' '.' '.'
+		: parameter_list
+		| parameter_list ',' '.' '.' '.'
 		# mikan 可変長パラメータ,  ... の間のスペースが許される（手抜き）
 
 parameter_list
-        : parameter_declaration
+		: parameter_declaration
 #		{ result = ParamList.new( val[0] ) }
-        | parameter_list ',' parameter_declaration
+		| parameter_list ',' parameter_declaration
 #		{
 #			val[0].add_param( val[2] )
@@ -518,5 +589,5 @@
 # パラメータ修飾子を追加
 parameter_declaration
-        : declaration_specifiers declarator
+		: declaration_specifiers declarator
 #		{
 #			decl = ParamDecl.new( val[1], val[0], [] )
@@ -533,55 +604,55 @@
 #			result = nil
 #		}
-        | declaration_specifiers abstract_declarator	# 仮引数なし
-        | declaration_specifiers						# 仮引数なし
-
-
-#identifier_list       # 060211  不用になった
-#        : IDENTIFIER
-#        | identifier_list ',' IDENTIFIER
+		| declaration_specifiers abstract_declarator	# 仮引数なし
+		| declaration_specifiers						# 仮引数なし
+
+
+identifier_list       # 060211  不用になった
+        : IDENTIFIER
+        | identifier_list ',' IDENTIFIER
 
 type_name
-        : type_specifier_qualifier_list
-        | type_specifier_qualifier_list abstract_declarator
+		: specifier_qualifier_list
+		| specifier_qualifier_list abstract_declarator
 
 abstract_declarator		# mikan
-        : pointer
-        | direct_abstract_declarator
-        | pointer direct_abstract_declarator
+		: pointer
+		| direct_abstract_declarator
+		| pointer direct_abstract_declarator
 
 direct_abstract_declarator
-        : '(' abstract_declarator ')'
-        | '[' ']'
-        | '[' constant_expression ']'
-        | direct_abstract_declarator '[' ']'
-        | direct_abstract_declarator '[' constant_expression ']'
-        | '(' ')'
+		: '(' abstract_declarator ')'
+		| '[' ']'
+		| '[' assignment_expression ']'
+		| direct_abstract_declarator '[' ']'
+		| direct_abstract_declarator '[' assignment_expression ']'
+		| '(' ')'
 		{
 			Generator.warning( "W6003 need 'void' for no parameter"  )
 		}
-        | '(' parameter_type_list ')'
-        | direct_abstract_declarator '(' ')'
+		| '(' parameter_type_list ')'
+		| direct_abstract_declarator '(' ')'
 		{
 			Generator.warning( "W6004 need 'void' for no parameter"  )
 		}
-        | direct_abstract_declarator '(' parameter_type_list ')'
+		| direct_abstract_declarator '(' parameter_type_list ')'
 
 # assignment_expressionをconstant_expressionに変更
 initializer			# mikan
-        : constant_expression
+		: assignment_expression
 		{ result = val[0] }
-        | '{' initializer_list '}'
+		| '{' initializer_list '}'
 		{ result = val[1] }
-        | '{' initializer_list ',' '}'
+		| '{' initializer_list ',' '}'
 		{ result = val[1] }
-	| C_EXP '(' STRING_LITERAL ')'
+		| C_EXP '(' STRING_LITERAL ')'
 		{ result = C_EXP.new( val[2] ) }
 
 initializer_list
-        : initializer
+		: initializer
 		{
 			result = [ val[0] ]
 		}
-        | initializer_list ',' initializer
+		| initializer_list ',' initializer
 		{
 			val[0] << val[2]
@@ -594,22 +665,22 @@
 #トップレベルの構文規則
 C_parser
-        :
-        | C_parser extension_statement
+		:
+		| C_parser extension_statement
 
 extension_statement
-        : statement
-        | EXTENSION statement
-
-statement
-        : typedef
-        | func_def
-        | enum_specifier ';'
-        | struct_specifier ';'
-        | declaration
-        | ';'
-        | error   # エラー回復ポイント
+		: cdl_statement
+		| EXTENSION cdl_statement
+
+cdl_statement
+		: typedef
+		| func_def
+		| enum_specifier ';'
+		| struct_specifier ';'
+		| declaration
+		| ';'
+		| error   # エラー回復ポイント
 
 typedef
-        : TYPEDEF type_specifier_qualifier_list declarator_list ';'
+        : TYPEDEF specifier_qualifier_list declarator_list ';'
 		{
 			val[2].each{ |i|
@@ -621,373 +692,389 @@
 
 declarator_list
-        : declarator
+		: declarator
 		{ result = [ val[0] ] }
-        | declarator_list ',' declarator
+		| declarator_list ',' declarator
 		{ result << val[2] }
 
 func_def
-        : declaration_specifiers declarator compoundstatement
-
-infunc_statement_list
-        :
-        | infunc_statement_list infunc_statement
-
-infunc_statement
-        : declaration
-        | ifstatement
-        | whilestatement
-        | dowhilestatement
-        | forstatement
-        | switchstatement
-        | labelstatement
-        | compoundstatement
-        | gotostatement
-        | expressionstatement
-        | ';'
+		: declaration_specifiers declarator compound_statement
+
+statement
+		: labeled_statement
+		| compound_statement
+		| expression_statement
+		| ifstatement
+		| whilestatement
+		| dowhilestatement
+		| forstatement
+		| switchstatement
+		| jump_statement
+		| asm_statement
+
+labeled_statement
+		: IDENTIFIER ':' statement
+		| CASE constant_expression ':' statement
+		| DEFAULT ':' statement
+
+compound_statement
+		: '{' '}'
+		| '{' block_item_list '}'
+
+block_item_list
+		: block_item
+		| block_item_list block_item
+
+block_item
+		: declaration
+		| statement
+
+expression_statement
+		: ';'
+		| expression ';'
 
 ifstatement
-        : IF '(' expression ')' infunc_statement
-        | IF '(' expression ')' infunc_statement ELSE infunc_statement
+		: IF '(' expression ')' statement
+		| IF '(' expression ')' statement ELSE statement
+
+switchstatement
+		: SWITCH '(' expression ')' compound_statement
 
 whilestatement
-        : WHILE '(' expression ')' infunc_statement
+		: WHILE '(' expression ')' statement
 
 dowhilestatement
-        : DO infunc_statement WHILE '(' expression ')' ';'
+		: DO statement WHILE '(' expression ')' ';'
 
 forstatement
-        : FOR '(' expression ';' expression ';' expression ')' infunc_statement
-
-switchstatement
-        : SWITCH '(' expression ')'  infunc_statment
-
-labelstatement
-        : IDENTIFIER ':' infunc_statement
-        | CASE constant_expression ':' infunc_statement
-        | DEFAULT ':' infunc_statement
-
-compoundstatement
-        : '{' infunc_statement_list '}'
-
-gotostatement
-        : GOTO IDENTIFIER ';'
-        | CONTINUE ';'
-        | BREAK ';'
-        | RETURN expression ';'
-        | RETURN ';'
-
-expressionstatement
-        : expression ';'
-        | unary_expression assignment_operator expression ';'
-
-assignment_operator
-        : '='
-        | '+='
-        | '-='
-        | '*='
-        | '/='
-        | '%='
-        | '<<='
-        | '>>='
-        | '&='
-        | '|='
-        | '^='
-
-storage_class
-        : __INLINE__
-        | INLINE
-        | __INLINE
-        | CINLINE
-        | EXTERN
-        | STATIC
-        | AUTO
-        | REGISTER
+		: FOR '(' expression_statement expression_statement ')' statement
+		| FOR '(' expression_statement expression_statement expression ')' statement
+		| FOR '(' declaration expression_statement ')' statement
+		| FOR '(' declaration expression_statement expression ')' statement
+
+jump_statement
+		: GOTO IDENTIFIER ';'
+		| CONTINUE ';'
+		| BREAK ';'
+		| RETURN ';'
+		| RETURN expression ';'
 
 namespace_identifier
-        : IDENTIFIER		{ result = NamespacePath.new( val[0].val, false ) }
-        | '::' IDENTIFIER	{ result = NamespacePath.new( val[1].val, true ) }
-        | namespace_identifier '::' IDENTIFIER
+		: IDENTIFIER		{ result = NamespacePath.new( val[0].val, false ) }
+		| '::' IDENTIFIER	{ result = NamespacePath.new( val[1].val, true ) }
+		| namespace_identifier '::' IDENTIFIER
 		{ result = val[0].append!( val[2].val ) }
 
+asm_statement
+		: _ASM {
+		while true
+			# ';' が表れるまで、トークンを読み飛ばす。
+			# gcc の構文拡張に対応すべきだが、単純な実装として、';' まで読み飛ばす。
+			# トークン単位で読み飛ばしているので、文字列やコメント内の ';' は対象にならない。
+			token = next_token
+			if token[1].val == ";"
+				break
+			end
+			# p "skip: #{token[1].val}" 
+		end
+		}
+
 end
 
 ---- inner
 
-  RESERVED = {
-    # keyword
-    'typedef' => :TYPEDEF,
-    'struct' => :STRUCT,
-    'union' => :UNION,
-    'sizeof' => :SIZEOF,
-    'throw' => :THROW,
-
-    # specifier
-    # types
-    'void'    => :VOID,
-    'char'    => :CHAR,
-    'short'   => :SHORT,
-
-    'volatile'=> :VOLATILE,
-    'const'   => :CONST,
-    'extern'   => :EXTERN,
-
-    'long'    => :LONG,
-    'float'   => :FLOAT,
-    'double'  => :DOUBLE,
-    'signed'  => :SIGNED,
-    'unsigned'=> :UNSIGNED,
-
-    'int'     => :INT,
-    'enum'    => :ENUM,
-
-    'if'      => :IF,
-    'else'    => :ELSE,
-    'while'   => :WHILE,
-    'do'      => :DO,
-    'for'     => :FOR,
-    'case'    => :CASE,
-    'default' => :DEFAULT,
-    'goto'    => :GOTO,
-    'continue' => :CONTINUE,
-    'break'   => :BREAK,
-    'return'  => :RETURN,
-    '__inline__'  => :__INLINE__,
-    'inline'  => :INLINE,
-    '__inline'  => :__INLINE,
-    'Inline'  => :CINLINE,        # inline starting with Capital letter
-    'static'  => :STATIC,
-    'register' => :REGISTER,
-    'auto'    => :AUTO,
-    '__extension__'    => :EXTENSION,
-
-  }
-
-  @@generator_nest = -1
-  @@generator_stack = []
-  @@current_locale = []
-
-  def finalize
-
-    # mikan Namespace.pop
-    Celltype.pop
-    Cell.pop
-    CompositeCelltype.pop
-    Region.pop
-
-  end
-
-  def set_plugin( plugin )
-    @plugin = plugin
-  end
-
-  def self.get_plugin
-    @@generator_stack[@@generator_nest].get_plugin
-  end
-
-  def get_plugin
-    @plugin
-  end
-
-  def parse(files)
-
-    # mikan Namespace.push
-    Celltype.push
-    Cell.push
-    CompositeCelltype.push
-    Region.push
-
-    @@generator_nest += 1
-    @@generator_stack[@@generator_nest] = self
-    @b_no_type_name = false
-
-   begin
-
-    @q = []
-    comment = false
-
-    # euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
-    TECS_LANG::set_kcode_binary
-
-    # 800U, 0xffLL など (整数リテラルに共通の修飾子)
-    integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
-
-    files.each {|file|
-      lineno = 1
-     begin
-#2.0       IO.foreach(file) {|line|
-       TECSIO.foreach(file) {|line|
-        col = 1
-        line.rstrip!
-
-        until line.empty?
-
-          if comment
-            case line
-            # コメント終了
-            when /\A\*\//
-              comment = false
-            when /\A./
-              ;
-            end
-          else
-            case line
-            # 空白、プリプロセスディレクティブ
-            when /\A\s+/
-              ;
-            # 識別子
-            when /\A[a-zA-Z_]\w*/
-              word = $&
-              @q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
-            # 16 進数定数
-            when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
-              @q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
-            # 8 進数定数
-            when /\A0[0-7]+#{integer_qualifier}/
-              @q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
-            # 浮動小数定数
-            when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
-              @q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
-            # 整数定数
-            when /\A\d+#{integer_qualifier}/
-            # when /\A\d+/
-              @q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
-            # 文字
-            when /\A'(?:[^'\\]|\\.)'/
-              @q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
-            # 文字列
-#              "#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
-#            when /\A"(?:[^"\\]+|\\.)*"/
-            when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
-              @q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
-            # 行コメント
-            when /\A\/\/.*$/
-              # 読み飛ばすだけ
-            # コメント開始
-            when /\A\/\*/
-              comment = true
-            when /\A>>=/, /\A<<=/, /\A>>/,  /\A<</
-              @q << [$&, Token.new($&, file, lineno, col)]
-            when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
-              @q << [$&, Token.new($&, file, lineno, col)]
-            when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
-              @q << [$&, Token.new($&, file, lineno, col)]
-            when /\A./
-              @q << [$&, Token.new($&, file, lineno, col)]
-            else
-              raise
-            end
-          end
-
-          line = $'
-          col += $&.length
-        end
-
-        lineno += 1
-      }
-
-     rescue => evar
-       Generator.error( "B1002 while open or reading \'$1\'" , file )
-       print_exception( evar )
-     end
-    }
-
-    # 終了の印
-    @q << nil
-
-    @yydebug = true
-    do_parse
-
-   ensure
-    @@generator_nest -= 1
-    TECS_LANG::reset_kcode
-   end
-
-  end
-
-
-  def next_token
-    token = @q.shift
-
-    if token then
-      @@current_locale[@@generator_nest] = token[1].locale
-
-      case token[1].val
-      when ";", ":", ",", "(", ")", "{", "}"
-        set_no_type_name false
-      when ".", "->"
-        set_no_type_name true
-      end
-
-      # TYPE_NAME トークンへ置き換え
-      if @b_no_type_name == false
-        if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
-          token[0] = :TYPE_NAME
-        end
-      end
-
-      if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 
-        locale = @@current_locale[@@generator_nest]
-        if token then
-          print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
-        else
-          print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
-        end
-      end
-    end
-
-    token
-  end
-
-  def on_error(t, v, vstack)
-    if v == "$" then
-     Generator.error( "B1003 Unexpected EOF"  )
-    else
-     Generator.error( "B1004 syntax error near \'$1\'" , v.val )
-    end
-
-  end
-
-  def self.current_locale
-    @@current_locale[ @@generator_nest ]
-  end
-
-  @@n_error = 0
-  @@n_warning = 0
-
-  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
-  def self.error( msg )
-    @@n_error += 1
-    locale = @@current_locale[ @@generator_nest ]
-
-    if locale then
-      Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
-    else
-      Console.puts "error: #{msg}"
-    end
-  end
-
-  # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でウォーニング発生は不適切）
-  def self.warning( msg )
-    @@n_warning += 1
-    locale = @@current_locale[ @@generator_nest ]
-    Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
-  end
-
-  def self.get_n_error
-    @@n_error
-  end
-
-  def self.get_n_warning
-    @@n_warning
-  end
-
-  def self.get_nest
-    @@generator_nest
-  end
-
-  def set_no_type_name b_no_type_name
-    # print "b_no_type_name=#{b_no_type_name}\n"
-    @b_no_type_name = b_no_type_name
-  end
+	RESERVED = {
+		# keyword
+		'typedef' => :TYPEDEF,
+		'struct' => :STRUCT,
+		'union' => :UNION,
+		'sizeof' => :SIZEOF,
+		'throw' => :THROW,
+
+		# specifier
+		# types
+		'void'    => :VOID,
+		'char'    => :CHAR,
+		'short'   => :SHORT,
+
+		'volatile'=> :VOLATILE,
+		'restrict'=> :RESTRICT,
+		'const'   => :CONST,
+		'extern'   => :EXTERN,
+
+		'long'    => :LONG,
+		'float'   => :FLOAT,
+		'double'  => :DOUBLE,
+		'signed'  => :SIGNED,
+		'unsigned'=> :UNSIGNED,
+
+		'int'     => :INT,
+		'enum'    => :ENUM,
+
+		'if'      => :IF,
+		'else'    => :ELSE,
+		'while'   => :WHILE,
+		'do'      => :DO,
+		'for'     => :FOR,
+		'switch'  => :SWITCH,
+		'case'    => :CASE,
+		'default' => :DEFAULT,
+		'goto'    => :GOTO,
+		'continue' => :CONTINUE,
+		'break'   => :BREAK,
+		'return'  => :RETURN,
+		'__inline__'  => :__INLINE__,
+		'inline'  => :INLINE,
+		'__inline'  => :__INLINE,
+		'Inline'  => :CINLINE,        # inline starting with Capital letter
+		'static'  => :STATIC,
+		'register' => :REGISTER,
+		'auto'    => :AUTO,
+		'__extension__'    => :EXTENSION,
+		'__asm__' => :_ASM,
+		'asm' =>     :_ASM
+
+	}
+
+	@@generator_nest = -1
+	@@generator_stack = []
+	@@current_locale = []
+
+	def finalize
+
+		# mikan Namespace.pop
+		Celltype.pop
+		Cell.pop
+		CompositeCelltype.pop
+		Region.pop
+
+	end
+
+	def set_plugin( plugin )
+		@plugin = plugin
+	end
+
+	def self.get_plugin
+		@@generator_stack[@@generator_nest].get_plugin
+	end
+
+	def get_plugin
+		@plugin
+	end
+
+	def parse(files)
+
+		# mikan Namespace.push
+		Celltype.push
+		Cell.push
+		CompositeCelltype.push
+		Region.push
+
+		@@generator_nest += 1
+		@@generator_stack[@@generator_nest] = self
+		@b_no_type_name = false
+
+	begin
+
+		@q = []
+		comment = false
+#		b_asm   = false
+
+		# euc のコメントを utf8 として扱うと、コメントの終わりを誤る問題の対策
+		TECS_LANG::set_kcode_binary
+
+		# 800U, 0xffLL など (整数リテラルに共通の修飾子)
+		integer_qualifier = "([Uu][Ll][Ll]|[Uu][Ll]|[Uu]|[Ll][Ll]|[Ll])?"
+
+		files.each {|file|
+			lineno = 1
+		begin
+#2.0		IO.foreach(file) {|line|
+			TECSIO.foreach(file) {|line|
+			col = 1
+			line.rstrip!
+
+			until line.empty?
+
+				if comment
+					case line
+					# コメント終了
+					when /\A\*\//
+						comment = false
+					when /\A./
+						;
+					end
+				else
+					case line
+					# 空白、プリプロセスディレクティブ
+					when /\A\s+/
+						;
+					# 識別子
+					when /\A[a-zA-Z_]\w*/
+						word = $&
+						@q << [RESERVED[word] || :IDENTIFIER, Token.new(word.intern, file, lineno, col)]
+					# 16 進数定数
+					when /\A0x[0-9A-Fa-f]+#{integer_qualifier}/
+						@q << [:HEX_CONSTANT, Token.new($&, file, lineno, col)]
+					# 8 進数定数
+					when /\A0[0-7]+#{integer_qualifier}/
+						@q << [:OCTAL_CONSTANT, Token.new($&, file, lineno, col)]
+					# 浮動小数定数
+					when /\A[0-9]+\.([0-9]*)?([Ee][+-]?[0-9]+)?/
+						@q << [:FLOATING_CONSTANT, Token.new($&, file, lineno, col)]
+					# 整数定数
+					when /\A\d+#{integer_qualifier}/
+					# when /\A\d+/
+						@q << [:INTEGER_CONSTANT, Token.new($&.to_i, file, lineno, col)]
+					# 文字
+					when /\A'(?:[^'\\]|\\.)'/
+						@q << [:CHARACTER_LITERAL, Token.new($&, file, lineno, col)]
+					# 文字列
+#					"#include  #include #include \"../systask/logtask.cfg\"       最後の " 忘れ)で無限ループ
+#					when /\A"(?:[^"\\]+|\\.)*"/
+					when /\A"(?:[^"\\]|\\.)*"/   # これはうまく行くようだ
+						@q << [:STRING_LITERAL, Token.new($&, file, lineno, col)]
+					# 行コメント
+					when /\A\/\/.*$/
+						# 読み飛ばすだけ
+					# コメント開始
+					when /\A\/\*/
+						comment = true
+					when /\A>>=/, /\A<<=/, /\A>>/,  /\A<</
+						@q << [$&, Token.new($&, file, lineno, col)]
+					when /\A\+=/, /\A\-=/, /\A\*=/, /\A\/=/, /\A%=/, /\A&=/, /\A\|=/, /\A\^=/
+						@q << [$&, Token.new($&, file, lineno, col)]
+					when /\A::/, /\A==/, /\A!=/, /\A>=/, /\A<=/, /\A\->/, /\A\+\+/, /\A\-\-/
+						@q << [$&, Token.new($&, file, lineno, col)]
+					when /\A\|\|/, /\A\&\&/
+						@q << [$&, Token.new($&, file, lineno, col)]
+					when /\A./
+						@q << [$&, Token.new($&, file, lineno, col)]
+					else
+						raise
+					end
+				end
+
+				line = $'
+				col += $&.length
+			end
+
+			lineno += 1
+		}
+
+		rescue => evar
+			Generator.error( "B1002 while open or reading \'$1\'" , file )
+			print_exception( evar )
+		end
+	}
+
+	# 終了の印
+	@q << nil
+
+	@yydebug = true
+	do_parse
+
+	ensure
+		@@generator_nest -= 1
+		TECS_LANG::reset_kcode
+	end
+
+	end
+
+
+	def next_token
+		token = @q.shift
+
+		if token then
+			@@current_locale[@@generator_nest] = token[1].locale
+
+			case token[1].val
+			when ";", ":", ",", "(", ")", "{", "}"
+			set_no_type_name false
+			when ".", "->"
+			set_no_type_name true
+			end
+
+			# TYPE_NAME トークンへ置き換え
+			if @b_no_type_name == false
+				if token[0] == :IDENTIFIER && Namespace.is_typename?( token[1].val ) then
+					token[0] = :TYPE_NAME
+					locale = @@current_locale[@@generator_nest]
+#print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}: type_name'\n" )
+				end
+			end
+
+			if $debug then     # 070107 token 無効時ここを通さないようした (through 対応 -d の時に例外発生) 
+				locale = @@current_locale[@@generator_nest]
+				if token then
+					print( "#{locale[0]}: line #{locale[1]} : #{token[0]} '#{token[1].val}'\n" )
+				else
+					print( "#{locale[0]}: line #{locale[1]} : EOF\n" )
+				end
+			end
+		end
+
+		token
+	end
+
+	def on_error(t, v, vstack)
+		if v == "$" then
+			Generator.error( "B1003 Unexpected EOF"  )
+		else
+			Generator.error( "B1004 syntax error near \'$1\'" , v.val )
+		end
+
+	end
+
+	def self.current_locale
+		@@current_locale[ @@generator_nest ]
+	end
+
+	@@n_error = 0
+	@@n_warning = 0
+	@@n_info = 0
+
+	# このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
+	def self.error( msg )
+		@@n_error += 1
+		locale = @@current_locale[ @@generator_nest ]
+
+		if locale then
+			Console.puts "#{locale[0]}:#{locale[1]}: error: #{msg}"
+		else
+			Console.puts "error: #{msg}"
+		end
+	end
+
+	# このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でウォーニング発生は不適切）
+	def self.warning( msg )
+		@@n_warning += 1
+		locale = @@current_locale[ @@generator_nest ]
+		Console.puts "#{locale[0]}:#{locale[1]}: warning: #{msg}"
+	end
+
+	# このメソッドは構文解析、意味解析からのみ呼出し可
+	def self.info( msg )
+		@@n_info += 1
+		locale = @@current_locale[ @@generator_nest ]
+		Console.puts "#{locale[0]}:#{locale[1]}: info: #{msg}"
+	end
+
+	def self.get_n_error
+		@@n_error
+	end
+
+	def self.get_n_warning
+		@@n_warning
+	end
+
+	def self.get_nest
+		@@generator_nest
+	end
+
+	def set_no_type_name b_no_type_name
+		locale = @@current_locale[ @@generator_nest ]
+#print "b_no_type_name=#{b_no_type_name} #{locale[0]}: line #{locale[1]}\n"
+		@b_no_type_name = b_no_type_name
+	end
 
 ---- footer
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.tab.rb	(revision 429)
@@ -1,5 +1,5 @@
 #
 # DO NOT MODIFY!!!!
-# This file is automatically generated by Racc 1.4.12
+# This file is automatically generated by Racc 1.4.14
 # from Racc grammer file "".
 #
@@ -8,5 +8,5 @@
 class Generator < Racc::Parser
 
-module_eval(<<'...end bnf.y.rb/module_eval...', 'bnf.y.rb', 1504)
+module_eval(<<'...end bnf.y.rb/module_eval...', 'bnf.y.rb', 1534)
 
   RESERVED = {
@@ -30,4 +30,5 @@
     'import_C' => :IMPORT_C,
     'generate' => :GENERATE,
+    '__tool_info__' => :TOOL_INFO,
 
     # types
@@ -165,4 +166,7 @@
   # すべての構文解析が完了した
   @@b_end_all_parse = false
+
+  # tag なし struct
+  @@no_struct_tag_num = 0
 
   def self.parse( file_name, plugin = nil, b_reuse = false )
@@ -280,5 +284,5 @@
                   string += line
                   # この位置では error メソッドは使えない (token 読出し前)
-                  puts "error: #{file} line #{lineno}: string literal has newline without escape"
+                  puts "#{file}:#{lineno}:#{col}: error: string literal has newline without escape"
                   @@n_error += 1
                 end
@@ -321,8 +325,9 @@
                   b_in_string = true
                   # この位置では error メソッドは使えない (token 読出し前) # mikan cdl_error ではない
-                  puts "error: #{file} line #{lineno}: string literal has newline without escape"
+                  puts "#{file}:#{lineno}:#{col}: error: string literal has newline without escape"
                   @@n_error += 1
                 # 山括弧で囲まれた文字列
-                when /\A<[0-9A-Za-z_\. \/]+>/   # AB: angle bracke
+                # when /\A<[0-9A-Za-z_\. \/]+>/   # AB: angle bracke
+                when /\A<(?:[^>\\]|\\.)*>/   # これはうまく行くようだ
                   @q << [:AB_STRING_LITERAL, Token.new($&, file, lineno, col)]
                 # 行コメント
@@ -420,4 +425,5 @@
   @@n_error = 0
   @@n_warning = 0
+  @@n_info = 0
 
   # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
@@ -453,5 +459,5 @@
       end
       if locale then
-        Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
+        Console.puts "#{locale[0]}:#{locale[1]}:#{locale[2]}: error: #{msg}"
       else
         Console.puts "error: #{msg}"
@@ -486,5 +492,5 @@
       end
       if locale then
-        Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
+        Console.puts "#{locale[0]}:#{locale[1]}:#{locale[2]}: warning: #{msg}"
       else
         Console.puts "warning: #{msg}"
@@ -493,4 +499,37 @@
   end
 
+  # このメソッドは構文解析、意味解析からのみ呼出し可
+  def self.info( msg, *arg )
+    locale = nil
+    self.info2( locale, msg, *arg )
+  end
+
+  def self.info2( locale, msg, *arg )
+    @@n_info += 1
+
+    msg = TECSMsg.get_info_message( msg )
+    # $1, $2, ... を arg で置換
+    count = 1
+    arg.each{ |a|
+      str = TECSIO.str_code_convert( msg, a.to_s )
+      msg.sub!( /\$#{count}/, str )
+      count += 1
+    }
+
+    # import_C の中でのウォーニング？
+    if @@import_C then
+      C_parser.info( msg )
+    else
+      if @@b_end_all_parse == false || locale == nil then
+        locale = @@current_locale[ @@generator_nest ]
+      end
+      if locale then
+        Console.puts "#{locale[0]}:#{locale[1]}:#{locale[2]}: info: #{msg}"
+      else
+        Console.puts "info: #{msg}"
+      end
+    end
+  end
+
   def self.get_n_error
     @@n_error
@@ -501,6 +540,14 @@
   end
 
+  def self.get_n_info
+    @@n_info
+  end
+
   def self.get_nest
     @@generator_nest
+  end
+
+  def self.parsing_C?
+    @@import_C
   end
 
@@ -543,159 +590,165 @@
 
 clist = [
-'65,566,323,779,733,806,77,346,347,323,77,77,77,160,194,195,196,197,198',
-'199,200,202,174,203,664,133,860,133,99,207,208,209,210,211,212,213,663',
-'244,831,551,394,512,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25',
-'26,27,28,29,30,31,32,33,34,35,38,678,395,459,309,696,42,43,44,45,46',
-'47,48,49,858,98,654,827,440,133,133,826,133,133,133,133,133,65,186,186',
-'186,186,69,67,68,308,70,71,77,72,323,73,299,300,319,819,133,175,133',
-'134,320,134,322,186,74,74,74,75,76,76,76,133,86,186,186,186,186,78,85',
-'5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32',
-'33,34,35,38,77,420,186,358,359,42,43,44,45,46,47,48,49,186,134,134,134',
-'65,134,134,134,134,134,133,133,87,571,77,77,570,323,69,67,68,325,70',
-'71,133,72,799,73,530,134,341,134,299,300,319,342,343,397,798,682,320',
-'74,322,75,134,76,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
-'27,28,29,30,31,32,33,34,35,38,444,48,49,352,353,42,43,44,45,46,47,48',
-'49,328,329,509,510,65,299,300,301,186,302,303,305,306,683,606,77,134',
-'134,69,67,68,856,70,71,272,72,607,73,77,177,134,643,299,300,319,77,77',
-'636,203,780,320,74,322,75,684,76,5,6,7,10,13,14,15,16,17,18,19,20,21',
-'22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,795,160,610,676,855,42',
-'43,44,45,46,47,48,49,160,637,403,470,86,160,471,633,426,781,85,793,470',
-'87,87,471,502,705,69,67,68,758,70,71,397,72,396,73,159,625,402,194,195',
-'196,197,198,199,200,202,614,203,74,792,75,133,76,207,208,209,210,211',
-'212,213,299,300,301,160,302,303,305,306,194,195,196,197,198,199,200',
-'202,160,203,624,609,283,133,626,207,208,209,210,211,212,213,867,742',
-'809,194,195,196,197,198,199,200,202,335,203,336,159,337,133,229,207',
-'208,209,210,211,212,213,194,195,196,197,198,199,200,202,810,203,251',
-'160,230,133,409,207,208,209,210,211,212,213,229,649,707,666,400,837',
-'79,134,496,277,676,251,571,704,846,570,160,539,845,393,230,848,596,408',
-'818,229,748,147,619,630,146,706,648,684,667,401,838,134,761,495,278',
-'675,250,705,167,230,620,229,86,847,760,86,817,86,85,177,618,85,87,85',
-'341,87,134,87,270,342,343,230,632,177,194,195,196,197,198,199,200,202',
-'173,203,614,744,869,133,134,207,208,209,210,211,212,213,194,195,196',
-'197,198,199,200,202,147,203,650,146,651,133,172,207,208,209,210,211',
-'212,213,194,195,196,197,198,199,200,202,171,203,388,389,390,133,170',
-'207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,169,203',
-'388,389,390,133,659,207,208,209,210,211,212,213,348,349,350,351,194',
-'195,196,197,198,199,200,202,168,203,583,330,660,133,134,207,208,209',
-'210,211,212,213,194,195,196,197,198,199,200,202,661,203,344,345,165',
-'133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202',
-'164,203,282,283,665,133,134,207,208,209,210,211,212,213,194,195,196',
-'197,198,199,200,202,668,203,352,353,670,133,134,207,208,209,210,211',
-'212,213,348,349,350,351,194,195,196,197,198,199,200,202,431,203,346',
-'347,671,133,134,207,208,209,210,211,212,213,672,448,673,376,377,378',
-'430,432,433,434,435,431,346,347,134,371,372,373,374,375,379,229,450',
-'451,452,449,348,349,350,351,674,430,432,433,434,435,134,341,142,143',
-'677,230,342,343,194,195,196,197,198,199,200,202,163,203,346,347,203',
-'133,134,207,208,209,210,211,212,213,346,347,344,345,194,195,196,197',
-'198,199,200,202,680,203,344,345,162,133,134,207,208,209,210,211,212',
-'213,194,195,196,197,198,199,200,202,161,203,398,330,689,133,160,207',
-'208,209,210,211,212,213,194,195,196,197,198,199,200,202,691,203,719',
-'510,692,133,693,207,208,209,210,211,212,213,194,195,196,197,198,199',
-'200,202,160,203,376,377,378,133,134,207,208,209,210,211,212,213,371',
-'372,373,374,375,379,102,103,104,105,106,107,108,109,110,111,112,695',
-'134,697,698,699,700,703,708,229,20,21,22,23,24,25,26,27,28,29,30,31',
-'32,33,134,711,562,74,714,230,715,716,194,195,196,197,198,199,200,202',
-'717,203,157,744,720,133,134,207,208,209,210,211,212,213,194,195,196',
-'197,198,199,200,202,721,203,722,599,724,133,134,207,208,209,210,211',
-'212,213,194,195,196,197,198,199,200,202,725,203,726,728,614,133,731',
-'207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,732,203',
-'156,153,736,133,152,207,208,209,210,211,212,213,739,743,751,752,194',
-'195,196,197,198,199,200,202,144,203,754,576,755,133,134,207,208,209',
-'210,211,212,213,194,195,196,197,198,199,200,202,757,203,759,762,763',
-'133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202',
-'764,203,767,768,769,133,134,207,208,209,210,211,212,213,194,195,196',
-'197,198,199,200,202,770,203,643,232,703,133,134,207,208,209,210,211',
-'212,213,86,86,86,229,177,775,85,85,85,86,87,87,87,776,86,85,777,778',
-'134,87,85,141,711,230,87,786,194,195,196,197,198,199,200,202,140,203',
-'788,138,132,133,134,207,208,209,210,211,212,213,194,195,196,197,198',
-'199,200,202,791,203,130,796,128,133,134,207,208,209,210,211,212,213',
-'194,195,196,197,198,199,200,202,800,203,801,-383,802,133,134,207,208',
-'209,210,211,212,213,194,195,196,197,198,199,200,202,803,203,804,124',
-'123,133,807,207,208,209,210,211,212,213,767,203,813,816,194,195,196',
-'197,198,199,200,202,821,203,822,94,824,133,134,207,208,209,210,211,212',
-'213,194,195,196,197,198,199,200,202,828,203,829,830,90,133,134,207,208',
-'209,210,211,212,213,194,195,196,197,198,199,200,202,833,203,834,89,836',
-'133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202',
-'798,203,839,840,323,133,134,207,208,209,210,211,212,213,842,843,844',
-'849,194,195,196,197,198,199,200,202,850,203,851,88,857,133,134,207,208',
-'209,210,211,212,213,194,195,196,197,198,199,200,202,357,203,356,362',
-'363,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199,200',
-'202,365,203,366,122,861,133,134,207,208,209,210,211,212,213,194,195',
-'196,197,198,199,200,202,3,203,156,355,399,133,134,207,208,209,210,211',
-'212,213,404,140,406,407,194,195,196,197,198,199,200,202,410,203,411',
-'412,413,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199',
-'200,202,414,203,415,354,862,133,134,207,208,209,210,211,212,213,194',
-'195,196,197,198,199,200,202,438,203,439,442,453,133,134,207,208,209',
-'210,211,212,213,194,195,196,197,198,199,200,202,330,203,456,457,186',
-'133,134,207,208,209,210,211,212,213,464,465,466,473,194,195,196,197',
-'198,199,200,202,474,203,307,285,284,133,134,207,208,209,210,211,212',
-'213,194,195,196,197,198,199,200,202,281,203,280,279,276,133,134,207',
-'208,209,210,211,212,213,194,195,196,197,198,199,200,202,275,203,274',
-'267,177,133,134,207,208,209,210,211,212,213,194,195,196,197,198,199',
-'200,202,265,203,203,259,203,133,134,207,208,209,210,211,212,213,156',
-'503,504,505,194,195,196,197,198,199,200,202,506,203,507,863,513,133',
-'134,207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,514',
-'203,515,259,517,133,134,207,208,209,210,211,212,213,86,86,86,86,252',
-'265,85,85,85,85,87,87,87,87,134,299,300,301,520,302,303,305,306,521',
-'194,195,196,197,198,199,200,202,203,203,524,203,134,133,203,207,208',
-'209,210,211,212,213,177,528,194,195,196,197,198,199,200,202,529,203',
-'532,533,534,133,134,207,208,209,210,211,212,213,115,116,117,118,119',
-'120,121,115,116,117,118,119,120,121,134,536,537,540,186,5,6,7,10,13',
-'14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38',
-'265,865,550,554,160,42,43,44,45,46,47,48,49,134,194,195,196,197,198',
-'199,200,202,556,203,866,186,560,133,562,207,208,209,210,211,212,213',
-'323,134,565,87,242,190,578,579,354,355,356,357,580,189,188,186,185,184',
-'183,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
-'32,33,34,35,38,182,181,596,597,599,42,43,44,45,46,47,48,49,194,195,196',
-'197,198,199,200,202,600,203,330,601,603,133,604,207,208,209,210,211',
-'212,213,605,,134,194,195,196,197,198,199,200,339,,203,,,,133,,207,208',
-'209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,685,,133,',
-'207,208,209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,,',
-'133,,207,208,209,210,211,212,213,,194,195,196,197,198,199,200,202,,203',
-',576,,133,134,207,208,209,210,211,212,213,,,,194,195,196,197,198,199',
-'200,202,,203,,655,,133,134,207,208,209,210,211,212,213,194,195,196,197',
-'198,199,200,202,,203,,,,133,134,207,208,209,210,211,212,213,194,195',
-'196,197,198,199,200,202,,203,,,,133,134,207,208,209,210,211,212,213',
-',194,195,196,197,198,199,200,202,,203,,,,133,134,207,208,209,210,211',
-'212,213,,,,194,195,196,197,198,199,200,202,,203,,,,133,134,207,208,209',
-'210,211,212,213,194,195,196,197,198,199,200,202,,203,,,,133,134,207',
-'208,209,210,211,212,213,194,195,196,197,198,199,200,202,,203,,,,133',
-'134,207,208,209,210,211,212,213,,194,195,196,197,198,199,200,202,,203',
-',,,133,134,207,208,209,210,211,212,213,,,,194,195,196,197,198,199,200',
-'202,,203,,,,133,134,207,208,209,210,211,212,213,102,103,104,105,106',
-'107,108,109,110,111,112,,,,134,,,,,,,,,,,,,,,,,,,,,,134,,115,116,117',
-'118,119,120,121,,,229,581,,,470,574,,573,,,,,134,,87,,,,,,230,,,,,,',
-',,,,,,,,,,134,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27',
-'28,29,30,31,32,33,34,35,38,236,,77,,,42,43,44,45,46,47,48,49,,,,,,,',
-',,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28',
-'29,30,31,32,33,34,35,38,657,,77,,,42,43,44,45,46,47,48,49,,,,,,,,,,',
-',,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29',
-'30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,',
-',,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
-'32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,498,,,,,,,,,,,,,,,,,,5',
+'66,575,328,559,538,815,78,330,869,328,78,78,78,409,199,200,201,202,203',
+'204,205,207,846,208,678,135,897,135,647,212,213,214,215,216,217,218',
+'249,679,177,872,870,408,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24',
+'25,26,27,28,29,30,31,32,33,34,35,38,465,189,693,333,334,42,43,44,45',
+'46,47,48,49,896,88,644,406,666,761,711,87,135,871,135,135,135,135,189',
+'66,189,189,70,68,69,135,71,72,328,73,78,74,304,305,324,860,901,189,407',
+'136,325,136,327,189,75,75,75,76,77,77,77,135,874,178,189,189,189,79',
+'875,101,80,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28',
+'29,30,31,32,33,34,35,38,78,364,365,256,899,42,43,44,45,46,47,48,49,189',
+'189,189,136,66,136,136,136,136,878,135,135,89,100,78,78,136,328,70,68',
+'69,399,71,72,135,73,877,74,304,305,324,135,446,135,478,868,325,479,327',
+'867,879,75,136,76,89,77,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24',
+'25,26,27,28,29,30,31,32,33,34,35,38,450,48,49,314,838,42,43,44,45,46',
+'47,48,49,135,135,839,135,66,304,305,306,135,307,308,310,311,691,838',
+'78,136,136,70,68,69,313,71,72,275,73,880,74,78,180,136,816,304,305,324',
+'78,881,136,136,136,325,75,327,76,690,77,5,6,7,10,13,14,15,16,17,18,19',
+'20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,835,426,403,282,697',
+'42,43,44,45,46,47,48,49,163,817,163,620,288,277,136,136,432,136,180',
+'504,78,150,136,654,149,720,70,68,69,283,71,72,403,73,402,74,520,636',
+'162,199,200,201,202,203,204,205,207,328,208,75,503,76,135,77,212,213',
+'214,215,216,217,218,304,305,306,859,307,308,310,311,199,200,201,202',
+'203,204,205,207,889,208,635,648,883,135,637,212,213,214,215,216,217',
+'218,884,858,681,199,200,201,202,203,204,205,207,341,208,342,888,343',
+'135,234,212,213,214,215,216,217,218,199,200,201,202,203,204,205,207',
+'682,208,885,668,235,135,661,212,213,214,215,216,217,218,88,789,790,691',
+'256,400,87,136,150,890,89,149,199,200,201,202,203,204,205,207,667,208',
+'891,660,163,135,776,212,213,214,215,216,217,218,794,255,401,136,199',
+'200,201,202,203,204,205,207,892,208,719,415,850,135,162,212,213,214',
+'215,216,217,218,887,898,136,902,886,582,721,903,581,833,199,200,201',
+'202,203,204,205,207,720,208,414,851,904,135,136,212,213,214,215,216',
+'217,218,199,200,201,202,203,204,205,207,832,208,722,698,826,135,906',
+'212,213,214,215,216,217,218,163,163,88,478,136,907,479,582,87,908,581',
+'607,89,163,3,163,88,910,827,699,699,81,87,352,353,234,89,797,170,770',
+'136,199,200,201,202,203,204,205,207,796,208,547,587,564,135,235,212',
+'213,214,215,216,217,218,90,199,200,201,202,203,204,205,207,136,208,394',
+'395,396,135,91,212,213,214,215,216,217,218,199,200,201,202,203,204,205',
+'207,136,208,394,395,396,135,92,212,213,214,215,216,217,218,199,200,201',
+'202,203,204,205,207,163,208,350,351,96,135,124,212,213,214,215,216,217',
+'218,594,336,125,199,200,201,202,203,204,205,207,126,208,130,510,132',
+'135,136,212,213,214,215,216,217,218,134,199,200,201,202,203,204,205',
+'207,140,208,352,353,142,135,136,212,213,214,215,216,217,218,199,200',
+'201,202,203,204,205,207,143,208,404,336,144,135,136,212,213,214,215',
+'216,217,218,199,200,201,202,203,204,205,207,147,208,358,359,155,135',
+'136,212,213,214,215,216,217,218,350,351,156,199,200,201,202,203,204',
+'205,207,159,208,350,351,160,135,136,212,213,214,215,216,217,218,164',
+'199,200,201,202,203,204,205,207,165,208,358,359,166,135,136,212,213',
+'214,215,216,217,218,199,200,201,202,203,204,205,207,167,208,630,437',
+'168,135,136,212,213,214,215,216,217,218,352,353,234,747,518,171,631',
+'287,288,436,438,439,440,441,136,347,629,172,347,173,348,349,235,348',
+'349,199,200,201,202,203,204,205,207,174,208,352,353,175,135,136,212',
+'213,214,215,216,217,218,176,199,200,201,202,203,204,205,207,180,208',
+'184,772,185,135,136,212,213,214,215,216,217,218,199,200,201,202,203',
+'204,205,207,454,208,145,146,186,135,136,212,213,214,215,216,217,218',
+'347,187,234,517,518,348,349,456,457,458,455,199,200,201,202,203,204',
+'205,207,454,208,188,235,189,135,191,212,213,214,215,216,217,218,354',
+'355,356,357,787,788,136,456,457,458,455,354,355,356,357,199,200,201',
+'202,203,204,205,207,437,208,382,383,384,135,136,212,213,214,215,216',
+'217,218,377,378,379,380,381,385,436,438,439,440,441,304,305,306,136',
+'307,308,310,311,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27',
+'28,29,30,31,32,33,34,35,38,136,354,355,356,357,42,43,44,45,46,47,48',
+'49,199,200,201,202,203,204,205,207,192,208,352,353,193,135,196,212,213',
+'214,215,216,217,218,247,89,136,199,200,201,202,203,204,205,207,257,208',
+'159,264,208,135,270,212,213,214,215,216,217,218,199,200,201,202,203',
+'204,205,207,180,208,272,279,280,135,281,212,213,214,215,216,217,218',
+'234,284,285,286,289,290,199,200,201,202,203,204,205,207,312,208,335',
+'189,336,135,235,212,213,214,215,216,217,218,360,199,200,201,202,203',
+'204,205,207,136,208,361,670,362,135,363,212,213,214,215,216,217,218',
+'199,200,201,202,203,204,205,207,368,208,369,136,371,135,372,212,213',
+'214,215,216,217,218,159,199,200,201,202,203,204,205,207,405,208,136',
+'587,410,135,142,212,213,214,215,216,217,218,412,413,199,200,201,202',
+'203,204,205,207,416,208,417,418,419,135,136,212,213,214,215,216,217',
+'218,420,199,200,201,202,203,204,205,207,421,208,444,445,448,135,136',
+'212,213,214,215,216,217,218,199,200,201,202,203,204,205,207,459,208',
+'462,772,463,135,136,212,213,214,215,216,217,218,470,88,234,88,382,383',
+'384,87,472,87,473,89,474,89,481,136,377,378,379,380,381,385,235,482',
+'208,199,200,201,202,203,204,205,207,511,208,512,513,514,135,136,212',
+'213,214,215,216,217,218,515,199,200,201,202,203,204,205,207,521,208',
+'522,523,264,135,136,212,213,214,215,216,217,218,199,200,201,202,203',
+'204,205,207,525,208,270,528,529,135,136,212,213,214,215,216,217,218',
+'199,200,201,202,203,204,205,207,208,208,532,208,208,135,180,212,213',
+'214,215,216,217,218,536,537,540,199,200,201,202,203,204,205,207,541',
+'208,542,544,545,135,136,212,213,214,215,216,217,218,737,738,740,741',
+'548,189,270,558,562,196,739,737,738,740,741,136,565,189,743,742,196',
+'739,234,592,569,88,88,571,88,743,742,87,87,88,87,89,89,136,89,87,328',
+'574,235,89,196,199,200,201,202,203,204,205,207,589,208,590,700,360,135',
+'136,212,213,214,215,216,217,218,361,362,472,199,200,201,202,203,204',
+'205,207,363,208,472,591,607,135,136,212,213,214,215,216,217,218,199',
+'200,201,202,203,204,205,207,608,208,611,336,612,135,614,212,213,214',
+'215,216,217,218,199,200,201,202,203,204,205,207,615,208,616,617,618',
+'135,208,212,213,214,215,216,217,218,621,737,738,740,741,163,625,88,88',
+'641,196,739,785,87,87,136,643,89,89,743,742,625,662,663,669,674,199',
+'200,201,202,203,204,205,207,675,208,676,680,683,135,136,212,213,214',
+'215,216,217,218,199,200,201,202,203,204,205,207,685,208,686,687,688',
+'135,136,212,213,214,215,216,217,218,472,104,105,106,107,108,109,110',
+'111,112,113,114,689,189,136,692,208,695,704,5,6,7,10,13,14,15,16,17',
+'18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,163,706,707',
+'708,163,42,43,44,45,46,47,48,49,710,712,136,117,118,119,120,121,122',
+'123,199,200,201,202,203,204,205,207,713,208,714,715,718,135,136,212',
+'213,214,215,216,217,218,199,200,201,202,203,204,205,207,723,208,726',
+'571,75,135,729,212,213,214,215,216,217,218,199,200,201,202,203,204,205',
+'207,730,208,196,744,745,135,748,212,213,214,215,216,217,218,199,200',
+'201,202,203,204,205,207,749,208,752,753,754,135,756,212,213,214,215',
+'216,217,218,625,759,760,764,199,200,201,202,203,204,205,207,767,208',
+'771,779,780,135,136,212,213,214,215,216,217,218,199,200,201,202,203',
+'204,205,207,782,208,783,791,793,135,136,212,213,214,215,216,217,218',
+'199,200,201,202,203,204,205,207,189,208,795,798,799,135,136,212,213',
+'214,215,216,217,218,199,200,201,202,203,204,205,207,800,208,803,804',
+'805,135,136,212,213,214,215,216,217,218,806,654,718,180,199,200,201',
+'202,203,204,205,207,811,208,812,813,814,135,136,212,213,214,215,216',
+'217,218,199,200,201,202,203,204,205,207,726,208,823,828,831,135,136',
+'212,213,214,215,216,217,218,199,200,201,202,203,204,205,207,836,208',
+'840,841,-386,135,136,212,213,214,215,216,217,218,199,200,201,202,203',
+'204,205,207,842,208,843,237,844,135,136,212,213,214,215,216,217,218',
+'848,803,208,854,199,200,201,202,203,204,205,207,857,208,862,863,865',
+'135,136,212,213,214,215,216,217,218,199,200,201,202,203,204,205,207',
+',208,,,,135,136,212,213,214,215,216,217,218,199,200,201,202,203,204',
+'205,207,,208,,,,135,136,212,213,214,215,216,217,218,199,200,201,202',
+'203,204,205,207,,208,,,,135,136,212,213,214,215,216,217,218,88,,,,,',
+'87,,,88,89,737,738,740,741,87,,,136,89,196,739,,,,234,,,,743,742,117',
+'118,119,120,121,122,123,,,136,,,,,235,,,199,200,201,202,203,204,205',
+'207,,208,,,,135,136,212,213,214,215,216,217,218,199,200,201,202,203',
+'204,205,207,,208,472,,,135,136,212,213,214,215,216,217,218,199,200,201',
+'202,203,204,205,345,,208,,,,135,,212,213,214,215,216,217,218,199,200',
+'201,202,203,204,205,207,,208,,,,135,,212,213,214,215,216,217,218,,,',
+'104,105,106,107,108,109,110,111,112,113,114,,,,,136,,,,,,,104,105,106',
+'107,108,109,110,111,112,113,114,,,,,136,117,118,119,120,121,122,123',
+',,,478,585,,584,,,,,,,89,136,117,118,119,120,121,122,123,20,21,22,23',
+'24,25,26,27,28,29,30,31,32,33,136,5,6,7,10,13,14,15,16,17,18,19,20,21',
+'22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,672,,78,,,42,43,44,45,46',
+'47,48,49,,,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22',
+'23,24,25,26,27,28,29,30,31,32,33,34,35,38,241,,78,,,42,43,44,45,46,47',
+'48,49,,,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23',
+'24,25,26,27,28,29,30,31,32,33,34,35,38,78,,,,,42,43,44,45,46,47,48,49',
+',,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
+'27,28,29,30,31,32,33,34,35,38,78,,,,,42,43,44,45,46,47,48,49,506,,,',
+',,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27',
+'28,29,30,31,32,33,34,35,38,78,428,,,,42,43,44,45,46,47,48,49,,,,,,,',
+',,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28',
+'29,30,31,32,33,34,35,38,78,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,',
+',,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30',
+'31,32,33,34,35,38,78,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5',
 '6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33',
-'34,35,38,126,381,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7',
-'10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34',
-'35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14',
-'15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77',
-',,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17',
-'18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,,,,,42,43',
-'44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20',
-'21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,422,,,,42,43,44,45',
-'46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22',
-'23,24,25,26,27,28,29,30,31,32,33,34,35,38,77,508,,,,42,43,44,45,46,47',
+'34,35,38,78,632,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10',
+'13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35',
+'38,78,638,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14',
+'15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,128',
+'658,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16',
+'17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,78,,,,,42',
+'43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19',
+'20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,78,516,,,,42,43,44',
+'45,46,47,48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21',
+'22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,78,,,,,42,43,44,45,46,47',
 '48,49,,,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24',
-'25,26,27,28,29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,',
-',,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
-'27,28,29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,',
+'25,26,27,28,29,30,31,32,33,34,35,38,78,387,,,,42,43,44,45,46,47,48,49',
+',,,,,,,,,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
+'27,28,29,30,31,32,33,34,35,38,78,,,,,42,43,44,45,46,47,48,49,,,,,,,',
 ',,,,,,,,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28',
-'29,30,31,32,33,34,35,38,77,,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,',
-',,,,,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30',
-'31,32,33,34,35,38,77,621,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,',
-',,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
-'32,33,34,35,38,77,627,,,,42,43,44,45,46,47,48,49,,,,,,,,,,,,,,,,,,,5',
-'6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33',
-'34,35,38,,646,,,,42,43,44,45,46,47,48,49,102,103,104,105,106,107,108',
-'109,110,111,112,,,,,,,,,,,,,,,,,,,,,,,,,,,,115,116,117,118,119,120,121',
+'29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14',
+'15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,,',
+',,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23',
+'24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47,48,49',
 '5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32',
 '33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18',
@@ -707,9 +760,6 @@
 '23,24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47,48',
 '49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31',
-'32,33,34,35,38,,,,,,42,43,44,45,46,47,48,49,5,6,7,10,13,14,15,16,17',
-'18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,,,,,,42,43',
-'44,45,46,47,48,49,5,6,7,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26',
-'27,28,29,30,31,32,33,34,35,38,,,,,,42,43,44,45,46,47' ]
-        racc_action_table = arr = ::Array.new(3597, nil)
+'32,33,34,35,38,,,,,,42,43,44,45,46,47' ]
+        racc_action_table = arr = ::Array.new(3593, nil)
         idx = 0
         clist.each do |str|
@@ -721,189 +771,192 @@
 
 clist = [
-'2,463,803,749,688,787,189,218,218,189,602,2,324,386,714,714,714,714',
-'714,714,714,714,123,714,586,754,854,714,41,714,714,714,714,714,714,714',
-'585,151,815,441,257,386,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2',
-'2,2,2,2,2,2,602,257,324,187,631,2,2,2,2,2,2,2,2,854,41,567,810,303,298',
-'550,810,90,620,328,74,320,286,749,688,787,463,2,2,2,187,2,2,286,2,555',
-'2,189,189,189,803,799,123,504,754,189,714,189,586,602,2,324,2,602,2',
-'324,503,83,815,441,585,151,2,83,286,286,286,286,286,286,286,286,286',
-'286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286',
-'286,286,184,286,631,225,225,286,286,286,286,286,286,286,286,567,303',
-'298,550,158,90,620,328,74,320,281,706,87,469,310,158,469,310,286,286',
-'286,191,286,286,464,286,776,286,416,799,480,504,555,555,555,480,480',
-'614,776,614,555,286,555,286,503,286,158,158,158,158,158,158,158,158',
-'158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158,158',
-'158,158,158,310,87,87,220,220,158,158,158,158,158,158,158,158,191,191',
-'383,383,182,184,184,184,416,184,184,184,184,615,528,182,281,706,158',
-'158,158,852,158,158,169,158,529,158,553,169,464,553,310,310,310,289',
-'750,552,530,750,310,158,310,158,615,158,182,182,182,182,182,182,182',
-'182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182',
-'182,182,182,182,772,369,535,723,852,182,182,182,182,182,182,182,182',
-'100,553,264,334,125,536,334,552,289,750,125,765,468,334,125,468,369',
-'772,182,182,182,723,182,182,259,182,259,182,100,545,264,705,705,705',
-'705,705,705,705,705,540,705,182,765,182,705,182,705,705,705,705,705',
-'705,705,289,289,289,701,289,289,289,289,761,761,761,761,761,761,761',
-'761,564,761,545,531,531,761,545,761,761,761,761,761,761,761,865,701',
-'794,760,760,760,760,760,760,760,760,205,760,205,564,205,760,705,760',
-'760,760,760,760,760,760,720,720,720,720,720,720,720,720,794,720,253',
-'428,705,720,273,720,720,720,720,720,720,720,761,559,645,588,262,825',
-'3,705,360,173,598,154,569,642,838,569,113,428,838,253,761,839,728,273',
-'801,760,705,145,541,549,145,642,559,645,588,262,825,761,728,360,173',
-'598,154,642,113,760,541,720,681,839,728,510,801,283,681,124,541,510',
-'681,283,479,510,760,283,168,479,479,720,551,168,704,704,704,704,704',
-'704,704,704,122,704,556,704,868,704,720,704,704,704,704,704,704,704',
-'699,699,699,699,699,699,699,699,84,699,561,84,563,699,121,699,699,699',
-'699,699,699,699,695,695,695,695,695,695,695,695,120,695,512,512,512',
-'695,117,695,695,695,695,695,695,695,691,691,691,691,691,691,691,691',
-'116,691,249,249,249,691,572,691,691,691,691,691,691,691,219,219,219',
-'219,667,667,667,667,667,667,667,667,115,667,497,497,575,667,704,667',
-'667,667,667,667,667,667,285,285,285,285,285,285,285,285,577,285,217',
-'217,112,285,699,285,285,285,285,285,285,285,252,252,252,252,252,252',
-'252,252,108,252,178,178,587,252,695,252,252,252,252,252,252,252,229',
-'229,229,229,229,229,229,229,589,229,489,489,593,229,691,229,229,229',
-'229,229,229,229,488,488,488,488,861,861,861,861,861,861,861,861,539',
-'861,486,486,594,861,667,861,861,861,861,861,861,861,595,313,596,241',
-'241,241,539,539,539,539,539,292,485,485,285,241,241,241,241,241,241',
-'229,313,313,313,313,487,487,487,487,597,292,292,292,292,292,252,216',
-'80,80,600,229,216,216,848,848,848,848,848,848,848,848,106,848,484,484',
-'605,848,229,848,848,848,848,848,848,848,483,483,482,482,821,821,821',
-'821,821,821,821,821,608,821,481,481,104,821,861,821,821,821,821,821',
-'821,821,818,818,818,818,818,818,818,818,102,818,260,260,621,818,623',
-'818,818,818,818,818,818,818,807,807,807,807,807,807,807,807,625,807',
-'669,669,626,807,627,807,807,807,807,807,807,807,798,798,798,798,798',
-'798,798,798,629,798,502,502,502,798,848,798,798,798,798,798,798,798',
-'502,502,502,502,502,502,159,159,159,159,159,159,159,159,159,159,159',
-'630,821,632,633,635,637,640,646,807,36,36,36,36,36,36,36,36,36,36,36',
-'36,36,36,818,650,651,652,653,807,654,656,795,795,795,795,795,795,795',
-'795,658,795,99,795,673,795,807,795,795,795,795,795,795,795,786,786,786',
-'786,786,786,786,786,674,786,676,677,678,786,798,786,786,786,786,786',
-'786,786,775,775,775,775,775,775,775,775,679,775,680,682,684,775,685',
-'775,775,775,775,775,775,775,770,770,770,770,770,770,770,770,686,770',
-'98,93,692,770,92,770,770,770,770,770,770,770,696,703,710,712,471,471',
-'471,471,471,471,471,471,82,471,715,471,718,471,795,471,471,471,471,471',
-'471,471,144,144,144,144,144,144,144,144,721,144,727,732,733,144,786',
-'144,144,144,144,144,144,144,466,466,466,466,466,466,466,466,735,466',
-'736,738,739,466,775,466,466,466,466,466,466,466,146,146,146,146,146',
-'146,146,146,740,146,741,146,742,146,770,146,146,146,146,146,146,146',
-'240,86,4,144,743,744,240,86,4,591,240,86,4,745,418,591,747,748,471,591',
-'418,78,752,144,418,753,867,867,867,867,867,867,867,867,76,867,757,75',
-'73,867,144,867,867,867,867,867,867,867,397,397,397,397,397,397,397,397',
-'763,397,72,774,71,397,466,397,397,397,397,397,397,397,359,359,359,359',
-'359,359,359,359,778,359,779,780,781,359,146,359,359,359,359,359,359',
-'359,358,358,358,358,358,358,358,358,784,358,785,69,68,358,788,358,358',
-'358,358,358,358,358,793,796,797,800,357,357,357,357,357,357,357,357',
-'805,357,806,38,809,357,867,357,357,357,357,357,357,357,163,163,163,163',
-'163,163,163,163,811,163,812,814,16,163,397,163,163,163,163,163,163,163',
-'356,356,356,356,356,356,356,356,819,356,820,9,822,356,359,356,356,356',
-'356,356,356,356,355,355,355,355,355,355,355,355,828,355,831,832,833',
-'355,358,355,355,355,355,355,355,355,835,836,837,840,354,354,354,354',
-'354,354,354,354,841,354,842,8,853,354,357,354,354,354,354,354,354,354',
-'353,353,353,353,353,353,353,353,224,353,223,230,231,353,163,353,353',
-'353,353,353,353,353,352,352,352,352,352,352,352,352,235,352,237,67,856',
-'352,356,352,352,352,352,352,352,352,351,351,351,351,351,351,351,351',
-'1,351,251,222,261,351,355,351,351,351,351,351,351,351,266,267,269,271',
-'350,350,350,350,350,350,350,350,275,350,276,277,278,350,354,350,350',
-'350,350,350,350,350,349,349,349,349,349,349,349,349,279,349,280,221',
-'857,349,353,349,349,349,349,349,349,349,348,348,348,348,348,348,348',
-'348,301,348,302,304,319,348,352,348,348,348,348,348,348,348,347,347',
-'347,347,347,347,347,347,201,347,321,322,193,347,351,347,347,347,347',
-'347,347,347,329,331,332,336,346,346,346,346,346,346,346,346,337,346',
-'186,181,180,346,350,346,346,346,346,346,346,346,345,345,345,345,345',
-'345,345,345,176,345,175,174,172,345,349,345,345,345,345,345,345,345',
-'344,344,344,344,344,344,344,344,171,344,170,166,165,344,348,344,344',
-'344,344,344,344,344,343,343,343,343,343,343,343,343,164,343,162,161',
-'362,343,347,343,343,343,343,343,343,343,157,374,375,376,342,342,342',
-'342,342,342,342,342,377,342,378,860,388,342,346,342,342,342,342,342',
-'342,342,341,341,341,341,341,341,341,341,389,341,390,395,396,341,345',
-'341,341,341,341,341,341,341,424,367,248,143,156,401,424,367,248,143',
-'424,367,248,143,344,538,538,538,402,538,538,538,538,403,335,335,335',
-'335,335,335,335,335,404,335,405,406,343,335,407,335,335,335,335,335',
-'335,335,408,410,339,339,339,339,339,339,339,339,413,339,419,420,422',
-'339,342,339,339,339,339,339,339,339,255,255,255,255,255,255,255,167',
-'167,167,167,167,167,167,341,425,426,431,436,339,339,339,339,339,339',
-'339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339,339',
-'339,339,339,339,339,437,863,440,444,446,339,339,339,339,339,339,339',
-'339,335,202,202,202,202,202,202,202,202,448,202,864,454,455,202,456',
-'202,202,202,202,202,202,202,457,339,459,149,148,139,472,475,490,491',
-'492,493,494,137,136,135,134,131,129,202,202,202,202,202,202,202,202',
-'202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202',
-'202,202,202,127,126,517,518,520,202,202,202,202,202,202,202,202,206',
-'206,206,206,206,206,206,206,521,206,522,523,525,206,526,206,206,206',
-'206,206,206,206,527,,202,207,207,207,207,207,207,207,207,,207,,,,207',
-',207,207,207,207,207,207,207,619,619,619,619,619,619,619,619,,619,,619',
-',619,,619,619,619,619,619,619,619,580,580,580,580,580,580,580,580,,580',
-',,,580,,580,580,580,580,580,580,580,,573,573,573,573,573,573,573,573',
-',573,,573,,573,206,573,573,573,573,573,573,573,,,,570,570,570,570,570',
-'570,570,570,,570,,570,,570,207,570,570,570,570,570,570,570,566,566,566',
-'566,566,566,566,566,,566,,,,566,619,566,566,566,566,566,566,566,515',
-'515,515,515,515,515,515,515,,515,,,,515,580,515,515,515,515,515,515',
-'515,,514,514,514,514,514,514,514,514,,514,,,,514,573,514,514,514,514',
-'514,514,514,,,,513,513,513,513,513,513,513,513,,513,,,,513,570,513,513',
-'513,513,513,513,513,507,507,507,507,507,507,507,507,,507,,,,507,566',
-'507,507,507,507,507,507,507,506,506,506,506,506,506,506,506,,506,,,',
-'506,515,506,506,506,506,506,506,506,,505,505,505,505,505,505,505,505',
-',505,,,,505,514,505,505,505,505,505,505,505,,,,496,496,496,496,496,496',
-'496,496,,496,,,,496,513,496,496,496,496,496,496,496,458,458,458,458',
-'458,458,458,458,458,458,458,,,,507,,,,,,,,,,,,,,,,,,,,,,506,,458,458',
-'458,458,458,458,458,,,496,496,,,470,470,,470,,,,,505,,470,,,,,,496,',
-',,,,,,,,,,,,,,,496,470,470,470,470,470,470,470,470,470,470,470,470,470',
-'470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,147,,147',
-',,470,470,470,470,470,470,470,470,,,,,,,,,,,,,,,,,,,,,147,147,147,147',
-'147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147',
-'147,147,147,147,147,147,147,571,,571,,,147,147,147,147,147,147,147,147',
-',,,,,,,,,,,,,,,,,,,,571,571,571,571,571,571,571,571,571,571,571,571',
-'571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,366',
-',,,,571,571,571,571,571,571,571,571,,,,,,,,,,,,,,,,,,,366,366,366,366',
-'366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366,366',
-'366,366,366,366,366,366,366,246,,,,,366,366,366,366,366,366,366,366',
-'366,,,,,,,,,,,,,,,,,,246,246,246,246,246,246,246,246,246,246,246,246',
-'246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,70,246',
-',,,246,246,246,246,246,246,246,246,,,,,,,,,,,,,,,,,,,70,70,70,70,70',
-'70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70',
-'153,,,,,70,70,70,70,70,70,70,70,,,,,,,,,,,,,,,,,,,153,153,153,153,153',
-'153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153',
-'153,153,153,153,153,153,245,,,,,153,153,153,153,153,153,153,153,,,,',
-',,,,,,,,,,,,,,245,245,245,245,245,245,245,245,245,245,245,245,245,245',
-'245,245,245,245,245,245,245,245,245,245,245,245,245,245,288,,,,,245',
-'245,245,245,245,245,245,245,,,,,,,,,,,,,,,,,,,288,288,288,288,288,288',
-'288,288,288,288,288,288,288,288,288,288,288,288,288,288,288,288,288',
-'288,288,288,288,288,380,288,,,,288,288,288,288,288,288,288,288,,,,,',
-',,,,,,,,,,,,,380,380,380,380,380,380,380,380,380,380,380,380,380,380',
-'380,380,380,380,380,380,380,380,380,380,380,380,380,380,438,380,,,,380',
-'380,380,380,380,380,380,380,,,,,,,,,,,,,,,,,,,438,438,438,438,438,438',
-'438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438,438',
-'438,438,438,438,438,439,,,,,438,438,438,438,438,438,438,438,,,,,,,,',
-',,,,,,,,,,439,439,439,439,439,439,439,439,439,439,439,439,439,439,439',
-'439,439,439,439,439,439,439,439,439,439,439,439,439,453,,,,,439,439',
-'439,439,439,439,439,439,,,,,,,,,,,,,,,,,,,453,453,453,453,453,453,453',
-'453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453,453',
-'453,453,453,453,542,,,,,453,453,453,453,453,453,453,453,,,,,,,,,,,,',
-',,,,,,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542,542',
-'542,542,542,542,542,542,542,542,542,542,542,542,546,542,,,,542,542,542',
-'542,542,542,542,542,,,,,,,,,,,,,,,,,,,546,546,546,546,546,546,546,546',
-'546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546',
-'546,546,546,557,546,,,,546,546,546,546,546,546,546,546,,,,,,,,,,,,,',
-',,,,,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557',
-'557,557,557,557,557,557,557,557,557,557,557,557,,557,,,,557,557,557',
-'557,557,557,557,557,53,53,53,53,53,53,53,53,53,53,53,,,,,,,,,,,,,,,',
-',,,,,,,,,,,,53,53,53,53,53,53,53,694,694,694,694,694,694,694,694,694',
-'694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694',
-'694,694,,,,,,694,694,694,694,694,694,694,694,690,690,690,690,690,690',
-'690,690,690,690,690,690,690,690,690,690,690,690,690,690,690,690,690',
-'690,690,690,690,690,,,,,,690,690,690,690,690,690,690,690,239,239,239',
-'239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239',
-'239,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239,239,239',
-'40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40',
-'40,40,40,40,40,,,,,,40,40,40,40,40,40,40,40,284,284,284,284,284,284',
-'284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284',
-'284,284,284,284,284,,,,,,284,284,284,284,284,284,284,284,511,511,511',
-'511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511',
-'511,511,511,511,511,511,511,511,,,,,,511,511,511,511,511,511,511,511',
-'611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611,611',
-'611,611,611,611,611,611,611,611,611,611,611,,,,,,611,611,611,611,611',
-'611,611,611,234,234,234,234,234,234,234,234,234,234,234,234,234,234',
-'234,234,234,234,234,234,234,234,234,234,234,234,234,234,,,,,,234,234',
-'234,234,234,234' ]
-        racc_action_check = arr = ::Array.new(3597, nil)
+'2,469,843,447,422,777,192,194,852,192,329,2,613,269,515,515,515,515',
+'515,515,515,515,824,515,596,325,893,515,560,515,515,515,515,515,515',
+'515,154,597,125,856,853,269,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2',
+'2,2,2,2,2,2,2,2,329,422,613,194,194,2,2,2,2,2,2,2,2,893,85,560,267,576',
+'703,642,85,721,855,631,558,528,511,447,161,777,469,2,2,2,92,2,2,563',
+'2,161,2,192,192,192,843,895,824,267,325,192,515,192,596,329,2,613,2',
+'329,2,613,75,860,125,856,154,597,2,861,41,2,161,161,161,161,161,161',
+'161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161,161',
+'161,161,161,161,161,187,230,230,258,895,161,161,161,161,161,161,161',
+'161,576,703,642,721,185,631,558,528,511,866,691,303,89,41,315,185,92',
+'315,161,161,161,258,161,161,333,161,863,161,563,563,563,286,308,782',
+'340,851,563,340,563,851,866,161,75,161,340,161,185,185,185,185,185,185',
+'185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185',
+'185,185,185,185,185,315,89,89,190,869,185,185,185,185,185,185,185,185',
+'839,470,812,692,291,187,187,187,512,187,187,187,187,609,812,291,691',
+'303,185,185,185,190,185,185,171,185,872,185,778,171,333,778,315,315',
+'315,294,873,286,308,782,315,185,315,185,609,185,291,291,291,291,291',
+'291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291',
+'291,291,291,291,291,291,808,291,625,176,625,291,291,291,291,291,291',
+'291,291,392,778,573,539,539,172,839,470,294,692,172,366,561,86,512,561',
+'86,808,291,291,291,176,291,291,264,291,264,291,392,553,573,720,720,720',
+'720,720,720,720,720,874,720,291,366,291,720,291,720,720,720,720,720',
+'720,720,294,294,294,841,294,294,294,294,902,902,902,902,902,902,902',
+'902,880,902,553,561,876,902,553,902,902,902,902,902,902,902,877,841',
+'599,889,889,889,889,889,889,889,889,210,889,210,880,210,889,720,889',
+'889,889,889,889,889,889,521,521,521,521,521,521,521,521,599,521,878',
+'577,720,521,568,521,521,521,521,521,521,521,430,743,743,751,157,262',
+'430,720,148,881,430,148,522,522,522,522,522,522,522,522,577,522,882',
+'568,102,522,720,522,522,522,522,522,522,522,751,157,262,902,523,523',
+'523,523,523,523,523,523,883,523,653,278,834,523,102,523,523,523,523',
+'523,523,523,879,894,889,897,879,580,653,898,580,801,234,234,234,234',
+'234,234,234,234,653,234,278,834,901,234,521,234,234,234,234,234,234',
+'234,166,166,166,166,166,166,166,166,801,166,657,626,784,166,904,166',
+'166,166,166,166,166,166,115,716,518,476,522,905,476,477,518,906,477',
+'756,518,434,1,452,127,909,784,657,626,3,127,494,494,234,127,756,115',
+'716,523,479,479,479,479,479,479,479,479,756,479,434,479,452,479,234',
+'479,479,479,479,479,479,479,8,358,358,358,358,358,358,358,358,234,358',
+'520,520,520,358,9,358,358,358,358,358,358,358,363,363,363,363,363,363',
+'363,363,166,363,254,254,254,363,16,363,363,363,363,363,363,363,360,360',
+'360,360,360,360,360,360,375,360,222,222,38,360,68,360,360,360,360,360',
+'360,360,505,505,69,361,361,361,361,361,361,361,361,70,361,72,375,73',
+'361,479,361,361,361,361,361,361,361,74,682,682,682,682,682,682,682,682',
+'76,682,223,223,77,682,358,682,682,682,682,682,682,682,862,862,862,862',
+'862,862,862,862,79,862,265,265,80,862,363,862,862,862,862,862,862,862',
+'362,362,362,362,362,362,362,362,84,362,225,225,94,362,360,362,362,362',
+'362,362,362,362,489,489,95,797,797,797,797,797,797,797,797,100,797,490',
+'490,101,797,361,797,797,797,797,797,797,797,104,811,811,811,811,811',
+'811,811,811,106,811,497,497,108,811,682,811,811,811,811,811,811,811',
+'838,838,838,838,838,838,838,838,110,838,549,297,114,838,862,838,838',
+'838,838,838,838,838,491,491,797,684,684,117,549,181,181,297,297,297',
+'297,297,362,487,549,118,221,119,487,487,797,221,221,796,796,796,796',
+'796,796,796,796,122,796,492,492,123,796,797,796,796,796,796,796,796',
+'796,124,835,835,835,835,835,835,835,835,126,835,128,835,129,835,811',
+'835,835,835,835,835,835,835,514,514,514,514,514,514,514,514,318,514',
+'82,82,131,514,838,514,514,514,514,514,514,514,488,133,796,389,389,488',
+'488,318,318,318,318,823,823,823,823,823,823,823,823,564,823,136,796',
+'137,823,138,823,823,823,823,823,823,823,495,495,495,495,742,742,796',
+'564,564,564,564,224,224,224,224,207,207,207,207,207,207,207,207,547',
+'207,510,510,510,207,835,207,207,207,207,207,207,207,510,510,510,510',
+'510,510,547,547,547,547,547,546,546,546,514,546,546,546,546,207,207',
+'207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207,207',
+'207,207,207,207,207,207,207,207,207,823,496,496,496,496,207,207,207',
+'207,207,207,207,207,748,748,748,748,748,748,748,748,139,748,493,493',
+'141,748,144,748,748,748,748,748,748,748,151,152,207,859,859,859,859',
+'859,859,859,859,159,859,160,164,165,859,167,859,859,859,859,859,859',
+'859,575,575,575,575,575,575,575,575,168,575,169,173,174,575,175,575',
+'575,575,575,575,575,575,748,177,178,179,183,184,257,257,257,257,257',
+'257,257,257,189,257,195,198,206,257,748,257,257,257,257,257,257,257',
+'226,581,581,581,581,581,581,581,581,748,581,227,581,228,581,229,581',
+'581,581,581,581,581,581,729,729,729,729,729,729,729,729,235,729,236',
+'859,240,729,242,729,729,729,729,729,729,729,256,584,584,584,584,584',
+'584,584,584,266,584,575,584,271,584,272,584,584,584,584,584,584,584',
+'274,276,147,147,147,147,147,147,147,147,280,147,281,282,283,147,257',
+'147,147,147,147,147,147,147,284,591,591,591,591,591,591,591,591,285',
+'591,306,307,309,591,581,591,591,591,591,591,591,591,719,719,719,719',
+'719,719,719,719,324,719,326,719,327,719,729,719,719,719,719,719,719',
+'719,334,288,147,602,246,246,246,288,335,602,337,288,338,602,342,584',
+'246,246,246,246,246,246,147,343,368,714,714,714,714,714,714,714,714',
+'380,714,381,382,383,714,147,714,714,714,714,714,714,714,384,710,710',
+'710,710,710,710,710,710,394,710,395,396,401,710,591,710,710,710,710',
+'710,710,710,706,706,706,706,706,706,706,706,402,706,407,408,409,706',
+'719,706,706,706,706,706,706,706,504,504,504,504,504,504,504,504,410',
+'504,411,412,413,504,414,504,504,504,504,504,504,504,416,419,425,365',
+'365,365,365,365,365,365,365,426,365,428,431,432,365,714,365,365,365',
+'365,365,365,365,827,827,827,827,437,442,443,446,450,827,827,783,783',
+'783,783,710,454,460,827,827,783,783,504,504,461,4,696,462,373,783,783',
+'4,696,146,373,4,696,706,373,146,463,465,504,146,472,630,630,630,630',
+'630,630,630,630,480,630,483,630,498,630,504,630,630,630,630,630,630',
+'630,499,500,827,364,364,364,364,364,364,364,364,501,364,783,502,525',
+'364,365,364,364,364,364,364,364,364,908,908,908,908,908,908,908,908',
+'526,908,529,530,531,908,533,908,908,908,908,908,908,908,341,341,341',
+'341,341,341,341,341,534,341,535,536,537,341,538,341,341,341,341,341',
+'341,341,543,739,739,739,739,544,548,88,424,557,739,739,739,88,424,630',
+'559,88,424,739,739,565,570,572,578,583,347,347,347,347,347,347,347,347',
+'586,347,588,598,600,347,364,347,347,347,347,347,347,347,345,345,345',
+'345,345,345,345,345,604,345,605,606,607,345,908,345,345,345,345,345',
+'345,345,739,162,162,162,162,162,162,162,162,162,162,162,608,610,341',
+'611,616,619,632,345,345,345,345,345,345,345,345,345,345,345,345,345',
+'345,345,345,345,345,345,345,345,345,345,345,345,345,345,345,634,636',
+'637,638,640,345,345,345,345,345,345,345,345,641,643,347,260,260,260',
+'260,260,260,260,348,348,348,348,348,348,348,348,644,348,646,648,651',
+'348,345,348,348,348,348,348,348,348,349,349,349,349,349,349,349,349',
+'658,349,662,663,664,349,665,349,349,349,349,349,349,349,350,350,350',
+'350,350,350,350,350,666,350,668,671,673,350,688,350,350,350,350,350',
+'350,350,351,351,351,351,351,351,351,351,689,351,693,694,695,351,697',
+'351,351,351,351,351,351,351,699,700,701,707,352,352,352,352,352,352',
+'352,352,711,352,718,725,727,352,348,352,352,352,352,352,352,352,353',
+'353,353,353,353,353,353,353,730,353,731,746,749,353,349,353,353,353',
+'353,353,353,353,354,354,354,354,354,354,354,354,750,354,755,760,761',
+'354,350,354,354,354,354,354,354,354,355,355,355,355,355,355,355,355',
+'763,355,764,766,767,355,351,355,355,355,355,355,355,355,768,769,770',
+'771,356,356,356,356,356,356,356,356,772,356,773,775,776,356,352,356',
+'356,356,356,356,356,356,357,357,357,357,357,357,357,357,780,357,781',
+'793,799,357,353,357,357,357,357,357,357,357,359,359,359,359,359,359',
+'359,359,810,359,814,815,816,359,354,359,359,359,359,359,359,359,149',
+'149,149,149,149,149,149,149,817,149,821,149,822,149,355,149,149,149',
+'149,149,149,149,828,833,836,837,474,474,474,474,474,474,474,474,840',
+'474,845,846,850,474,356,474,474,474,474,474,474,474,290,290,290,290',
+'290,290,290,290,,290,,,,290,357,290,290,290,290,290,290,290,848,848',
+'848,848,848,848,848,848,,848,,,,848,359,848,848,848,848,848,848,848',
+'806,806,806,806,806,806,806,806,,806,,,,806,149,806,806,806,806,806',
+'806,806,245,,,,,,245,,,253,245,669,669,669,669,253,,,474,253,669,669',
+',,,848,,,,669,669,170,170,170,170,170,170,170,,,290,,,,,848,,,403,403',
+'403,403,403,403,403,403,,403,,,,403,848,403,403,403,403,403,403,403',
+'513,513,513,513,513,513,513,513,,513,669,,,513,806,513,513,513,513,513',
+'513,513,212,212,212,212,212,212,212,212,,212,,,,212,,212,212,212,212',
+'212,212,212,211,211,211,211,211,211,211,211,,211,,,,211,,211,211,211',
+'211,211,211,211,,,,464,464,464,464,464,464,464,464,464,464,464,,,,,403',
+',,,,,,54,54,54,54,54,54,54,54,54,54,54,,,,,513,464,464,464,464,464,464',
+'464,,,,478,478,,478,,,,,,,478,212,54,54,54,54,54,54,54,36,36,36,36,36',
+'36,36,36,36,36,36,36,36,36,211,478,478,478,478,478,478,478,478,478,478',
+'478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478',
+'478,582,,582,,,478,478,478,478,478,478,478,478,,,,,,,,,,,,,,,,,,,,,582',
+'582,582,582,582,582,582,582,582,582,582,582,582,582,582,582,582,582',
+'582,582,582,582,582,582,582,582,582,582,150,,150,,,582,582,582,582,582',
+'582,582,582,,,,,,,,,,,,,,,,,,,,,150,150,150,150,150,150,150,150,150',
+'150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150',
+'150,150,372,,,,,150,150,150,150,150,150,150,150,,,,,,,,,,,,,,,,,,,372',
+'372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372,372',
+'372,372,372,372,372,372,372,372,372,372,293,,,,,372,372,372,372,372',
+'372,372,372,372,,,,,,,,,,,,,,,,,,293,293,293,293,293,293,293,293,293',
+'293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293',
+'293,293,444,293,,,,293,293,293,293,293,293,293,293,,,,,,,,,,,,,,,,,',
+',444,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444,444',
+'444,444,444,444,444,444,444,444,444,444,444,445,,,,,444,444,444,444',
+'444,444,444,444,,,,,,,,,,,,,,,,,,,445,445,445,445,445,445,445,445,445',
+'445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445,445',
+'445,445,550,,,,,445,445,445,445,445,445,445,445,,,,,,,,,,,,,,,,,,,550',
+'550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550',
+'550,550,550,550,550,550,550,550,550,550,554,550,,,,550,550,550,550,550',
+'550,550,550,,,,,,,,,,,,,,,,,,,554,554,554,554,554,554,554,554,554,554',
+'554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554,554',
+'554,566,554,,,,554,554,554,554,554,554,554,554,,,,,,,,,,,,,,,,,,,566',
+'566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566,566',
+'566,566,566,566,566,566,566,566,566,566,71,566,,,,566,566,566,566,566',
+'566,566,566,,,,,,,,,,,,,,,,,,,71,71,71,71,71,71,71,71,71,71,71,71,71',
+'71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,386,,,,,71,71,71,71,71',
+'71,71,71,,,,,,,,,,,,,,,,,,,386,386,386,386,386,386,386,386,386,386,386',
+'386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386',
+'459,386,,,,386,386,386,386,386,386,386,386,,,,,,,,,,,,,,,,,,,459,459',
+'459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459',
+'459,459,459,459,459,459,459,459,459,251,,,,,459,459,459,459,459,459',
+'459,459,,,,,,,,,,,,,,,,,,,251,251,251,251,251,251,251,251,251,251,251',
+'251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251',
+'250,251,,,,251,251,251,251,251,251,251,251,,,,,,,,,,,,,,,,,,,250,250',
+'250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250',
+'250,250,250,250,250,250,250,250,250,156,,,,,250,250,250,250,250,250',
+'250,250,,,,,,,,,,,,,,,,,,,156,156,156,156,156,156,156,156,156,156,156',
+'156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156',
+',,,,,156,156,156,156,156,156,156,156,622,622,622,622,622,622,622,622',
+'622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622',
+'622,622,622,,,,,,622,622,622,622,622,622,622,622,40,40,40,40,40,40,40',
+'40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,,,,,',
+'40,40,40,40,40,40,40,40,705,705,705,705,705,705,705,705,705,705,705',
+'705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705',
+',,,,,705,705,705,705,705,705,705,705,244,244,244,244,244,244,244,244',
+'244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244',
+'244,244,244,,,,,,244,244,244,244,244,244,244,244,519,519,519,519,519',
+'519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519,519',
+'519,519,519,519,519,519,,,,,,519,519,519,519,519,519,519,519,709,709',
+'709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,709,709',
+'709,709,709,709,709,709,709,709,709,,,,,,709,709,709,709,709,709,709',
+'709,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289',
+'289,289,289,289,289,289,289,289,289,289,289,289,,,,,,289,289,289,289',
+'289,289,289,289,239,239,239,239,239,239,239,239,239,239,239,239,239',
+'239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,,,,,,239',
+'239,239,239,239,239' ]
+        racc_action_check = arr = ::Array.new(3593, nil)
         idx = 0
         clist.each do |str|
@@ -915,796 +968,838 @@
 
 racc_action_pointer = [
-   nil,  1429,    -1,   489,  1138,   nil,   nil,   nil,  1326,  1278,
-   nil,   nil,   nil,   nil,   nil,   nil,  1288,   nil,   nil,   nil,
+   nil,   613,    -1,   620,  1492,   nil,   nil,   nil,   612,   627,
+   nil,   nil,   nil,   nil,   nil,   nil,   680,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   889,   nil,  1259,   nil,
-  3351,    13,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,  3134,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1401,  1240,  1239,
-  2552,  1190,  1188,  1168,    79,  1167,  1164,   nil,  1095,   nil,
-   757,   nil,  1023,   122,   574,   nil,  1137,   172,   nil,   nil,
-    76,   nil,   974,   971,   nil,   nil,   nil,   nil,  1026,   904,
-   340,   nil,   850,   nil,   832,   nil,   802,   nil,   688,   nil,
-   nil,   nil,   670,   486,   nil,   644,   618,   602,   nil,   nil,
-   596,   580,   550,    11,   523,   348,  1803,  1804,   nil,  1775,
-   nil,  1774,   nil,   nil,  1829,  1735,  1827,  1770,   nil,  1762,
-   nil,   nil,   nil,  1669,  1077,   501,  1121,  2314,  1822,  1812,
-   nil,    27,   nil,  2611,   453,   nil,  1637,  1612,   182,   831,
-   nil,  1601,  1604,  1283,  1598,  1580,  1465,  1622,   537,   280,
-  1578,  1576,  1558,   482,  1562,  1561,  1528,   nil,   659,   nil,
-  1538,  1541,   269,   nil,   154,   nil,  1534,    33,   nil,    -6,
-   nil,   128,   nil,  1417,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,  1510,  1804,   nil,   nil,   435,  1886,  1911,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   777,   657,   -19,   613,
-   224,  1462,  1398,  1352,  1349,   132,   nil,   nil,   nil,   709,
-  1379,  1376,   nil,   nil,  3515,  1397,   nil,  1368,   nil,  3310,
-  1136,   689,   nil,   nil,   nil,  2670,  2493,   nil,  1668,   556,
-   nil,  1416,   687,   430,   nil,  1615,   nil,    30,   nil,   365,
-   851,  1423,   477,   nil,   341,   nil,  1402,  1429,   nil,  1404,
-   nil,  1405,   nil,   465,   nil,  1414,  1447,  1418,  1448,  1437,
-  1439,   174,   nil,   527,  3392,   665,    95,   nil,  2729,   289,
-   nil,   nil,   678,   nil,   nil,   nil,   nil,   nil,    73,   nil,
-   nil,  1428,  1430,    72,  1431,   nil,   nil,   nil,   nil,   nil,
-   181,   nil,   nil,   668,   nil,   nil,   nil,   nil,   nil,  1432,
-    80,  1395,  1510,   nil,     0,   nil,   nil,   nil,    78,  1526,
-   nil,  1526,  1527,   nil,   347,  1697,  1523,  1532,   nil,  1721,
-   nil,  1651,  1629,  1603,  1581,  1559,  1537,  1511,  1489,  1467,
-  1445,  1419,  1397,  1375,  1353,  1327,  1305,  1261,  1235,  1213,
-   450,   nil,  1606,   nil,   nil,   nil,  2434,  1667,   nil,   328,
-   nil,   nil,   nil,   nil,  1619,  1620,  1621,  1630,  1632,   nil,
-  2788,   nil,   nil,   228,   nil,   nil,     0,   nil,  1634,  1652,
-  1654,   nil,   nil,   nil,   nil,  1649,  1650,  1191,   nil,   nil,
-   nil,  1665,  1622,  1683,  1696,  1638,  1699,  1702,  1706,   nil,
-  1711,   nil,   nil,  1721,   nil,   nil,   166,   nil,  1150,  1723,
-  1694,   nil,  1695,   nil,  1666,  1650,  1721,   nil,   459,   nil,
-   nil,  1753,   nil,   nil,   nil,   nil,  1655,  1777,  2847,  2906,
-  1752,    25,   nil,   nil,  1755,   nil,  1783,   nil,  1805,   nil,
-   nil,   nil,   nil,  2965,  1709,  1803,  1805,  1813,  2119,  1790,
-   nil,   nil,   nil,    -8,   188,   nil,  1099,   nil,   356,   183,
-  2253,  1055,  1821,   nil,   nil,  1825,   nil,   nil,   nil,   524,
-   190,   819,   807,   799,   787,   745,   721,   757,   705,   689,
-  1818,  1803,  1803,  1803,  1801,   nil,  2187,   645,   nil,   nil,
-   nil,   nil,   832,   115,   102,  2162,  2139,  2117,   nil,   nil,
-   525,  3433,   534,  2095,  2070,  2047,   nil,  1863,  1865,   nil,
-  1864,  1854,  1887,  1889,   nil,  1890,  1892,  1869,   270,   252,
-   293,   385,   nil,   nil,   nil,   302,   345,   nil,  1573,   653,
-   377,   499,  3024,   nil,   nil,   308,  3083,   nil,   nil,   438,
-    74,   536,   288,   282,   nil,    94,   548,  3142,   nil,   444,
-   nil,   571,   nil,   459,   409,   nil,  2025,    71,   nil,   486,
-  2003,  2375,   623,  1978,   nil,   647,   nil,   662,   nil,   nil,
-  1955,   nil,   nil,   nil,   nil,    26,    14,   691,   476,   709,
-   nil,  1145,   nil,   713,   739,   749,   746,   775,   452,   nil,
-   728,   nil,    -2,   nil,   nil,   804,   nil,   nil,   827,   nil,
-   nil,  3474,   nil,   nil,   204,   269,   nil,   nil,   nil,  1933,
-    77,   823,   nil,   852,   nil,   872,   843,   847,   nil,   890,
-   925,    60,   896,   897,   nil,   929,   nil,   899,   nil,   nil,
-   814,   nil,   484,   nil,   nil,   475,   901,   nil,   nil,   nil,
-   943,   944,   835,   920,   948,   nil,   951,   nil,   963,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   643,   nil,   843,
-   nil,   nil,   nil,   935,   980,   nil,   982,   983,   959,  1007,
-   979,   522,  1005,   nil,  1006,   983,  1026,   nil,   -10,   nil,
-  3269,   617,   972,   nil,  3228,   595,  1038,   nil,   nil,   573,
-   nil,   396,   nil,  1045,   551,   382,   175,   nil,   nil,   nil,
-  1015,   nil,  1042,   nil,    12,   939,   nil,   nil,  1059,   nil,
-   459,  1073,   nil,   302,   nil,   nil,   nil,  1049,   491,   nil,
-   nil,   nil,  1050,  1076,   nil,  1099,  1100,   nil,  1102,  1073,
-  1090,  1118,  1009,  1134,  1108,  1145,   nil,  1121,  1148,   -11,
-   290,   nil,  1152,  1129,    10,   nil,   nil,  1166,   nil,   nil,
-   437,   412,   nil,  1161,   nil,   323,   nil,   nil,   nil,   nil,
-  1029,   nil,   328,   nil,  1163,  1007,   175,   nil,  1208,  1210,
-  1098,  1187,   nil,   nil,  1117,  1207,   985,    -9,  1209,   nil,
-   nil,   nil,   nil,  1248,   428,   963,  1249,  1221,   893,   100,
-  1222,   495,   nil,   -13,   nil,  1230,  1258,   871,   nil,  1235,
-    75,  1280,  1285,   nil,  1256,    24,   nil,   nil,   849,  1301,
-  1277,   827,  1309,   nil,   nil,   478,   nil,   nil,  1295,   nil,
-   nil,  1324,  1327,  1326,   nil,  1341,  1281,  1313,   486,   492,
-  1314,  1323,  1294,   nil,   nil,   nil,   nil,   nil,   801,   nil,
-   nil,   nil,   272,  1354,    11,   nil,  1402,  1441,   nil,   nil,
-  1633,   735,   nil,  1778,  1806,   395,   nil,  1169,   555,   nil ]
+   nil,   nil,   nil,   nil,   nil,   nil,  2268,   nil,   694,   nil,
+  3265,   123,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,  2185,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   702,   712,
+   721,  2888,   717,   719,   729,   115,   738,   742,   nil,   704,
+   770,   nil,   921,   nil,   755,    75,   359,   nil,  1610,   174,
+   nil,   nil,    89,   nil,   730,   742,   nil,   nil,   nil,   nil,
+   807,   755,   496,   nil,   827,   nil,   836,   nil,   840,   nil,
+   858,   nil,   nil,   nil,   862,   586,   nil,   877,   889,   891,
+   nil,   nil,   905,   909,   917,    27,   922,   606,   866,   870,
+   nil,   892,   nil,   903,   nil,   nil,   979,   888,   983,  1040,
+   nil,  1044,   nil,   nil,  1106,   nil,  1500,  1268,   484,  2000,
+  2416,  1115,  1107,   nil,    26,   nil,  3183,   448,   nil,  1094,
+  1123,    97,  1591,   nil,  1124,  1129,   575,  1127,  1143,  1031,
+  2017,   282,   350,  1146,  1147,  1149,   335,  1163,  1164,  1134,
+   nil,   848,   nil,  1163,  1168,   184,   nil,   156,   nil,  1171,
+   218,   nil,    -6,   nil,   -65,  1178,   nil,   nil,  1081,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,  1179,  1019,   nil,   nil,
+   437,  2228,  2206,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   880,   687,   729,   989,   767,  1182,  1177,  1178,  1179,
+   132,   nil,   nil,   nil,   553,  1222,  1220,   nil,   nil,  3511,
+  1225,   nil,  1196,   nil,  3347,  2107,  1268,   nil,   nil,   nil,
+  3124,  3065,   nil,  2116,   612,   nil,  1230,  1176,   130,   nil,
+  1615,   nil,   480,   nil,   367,   767,  1244,    76,   nil,    -1,
+   nil,  1217,  1245,   nil,  1227,   nil,  1228,   nil,   524,   nil,
+  1237,  1270,  1241,  1271,  1252,  1261,   197,   nil,  1329,  3470,
+  2048,   271,   nil,  2534,   291,   nil,   nil,   778,   nil,   nil,
+   nil,   nil,   nil,   177,   nil,   nil,  1232,  1233,   198,  1234,
+   nil,   nil,   nil,   nil,   nil,   183,   nil,   nil,   867,   nil,
+   nil,   nil,   nil,   nil,  1252,    10,  1197,  1313,   nil,    -2,
+   nil,   nil,   nil,   190,  1328,  1274,   nil,  1337,  1339,   nil,
+   206,  1588,  1336,  1345,   nil,  1658,   nil,  1636,  1750,  1772,
+  1794,  1816,  1842,  1864,  1886,  1908,  1934,  1956,   651,  1978,
+   695,   720,   787,   673,  1544,  1452,   325,   nil,  1350,   nil,
+   nil,   nil,  2475,  1495,   nil,   692,   nil,   nil,   nil,   nil,
+  1361,  1363,  1364,  1365,  1375,   nil,  2947,   nil,   nil,   936,
+   nil,   nil,   342,   nil,  1384,  1386,  1387,   nil,   nil,   nil,
+   nil,  1382,  1400,  2162,   nil,   nil,   nil,  1402,  1347,  1404,
+  1426,  1368,  1429,  1430,  1428,   nil,  1440,   nil,   nil,  1442,
+   nil,   nil,   -37,   nil,  1611,  1443,  1422,   nil,  1424,   nil,
+   476,  1355,  1426,   nil,   599,   nil,   nil,  1471,   nil,   nil,
+   nil,   nil,  1373,  1467,  2593,  2652,  1441,   -11,   nil,   nil,
+  1444,   nil,   601,   nil,  1483,   nil,   nil,   nil,   nil,  3006,
+  1385,  1485,  1488,  1501,  2163,  1477,   nil,   nil,   nil,    -8,
+   254,   nil,  1509,   nil,  2026,   nil,   593,   597,  2294,   628,
+  1516,   nil,   nil,  1521,   nil,   nil,   nil,   877,   954,   791,
+   804,   855,   890,  1087,   596,   978,  1063,   815,  1515,  1509,
+  1509,  1518,  1518,   nil,  1427,   709,   nil,   nil,   nil,   nil,
+   958,    81,   261,  2184,   949,    12,   nil,   nil,   592,  3388,
+   590,   461,   495,   521,   nil,  1544,  1563,   nil,    80,  1536,
+  1568,  1570,   nil,  1572,  1588,  1559,  1591,  1562,  1593,   318,
+   nil,   nil,   nil,  1572,  1604,   nil,   937,   937,  1603,   857,
+  2711,   nil,   nil,   310,  2770,   nil,   nil,  1547,    79,  1613,
+    13,   355,   nil,    92,   900,  1618,  2829,   nil,   437,   nil,
+  1620,   nil,  1507,   344,   nil,  1148,    73,   433,  1597,   nil,
+   541,  1199,  2355,  1627,  1244,   nil,  1636,   nil,  1635,   nil,
+   nil,  1291,   nil,   nil,   nil,   nil,    14,    27,  1639,   430,
+  1640,   nil,  1331,   nil,  1658,  1660,  1661,  1657,  1680,   240,
+  1587,  1626,   nil,     0,   nil,   nil,  1687,   nil,   nil,  1689,
+   nil,   nil,  3224,   nil,   nil,   332,   578,   nil,   nil,   nil,
+  1519,    78,  1660,   nil,  1716,   nil,  1721,  1689,  1692,   nil,
+  1720,  1733,    75,  1703,  1720,   nil,  1753,   nil,  1723,   nil,
+   nil,  1638,   nil,   521,   nil,   nil,   nil,   577,  1742,   nil,
+   nil,   nil,  1769,  1770,  1661,  1747,  1789,   nil,  1795,  2125,
+   nil,  1794,   nil,  1798,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   743,   nil,   844,   nil,   nil,   nil,  1768,  1811,
+   nil,   176,   256,  1788,  1819,  1790,  1493,  1817,   nil,  1825,
+  1801,  1829,   nil,    74,   nil,  3306,  1405,  1772,   nil,  3429,
+  1383,  1837,   nil,   nil,  1360,   nil,   587,   nil,  1845,  1313,
+   384,    76,   nil,   nil,   nil,  1815,   nil,  1842,   nil,  1221,
+  1746,  1837,   nil,   nil,   nil,   nil,   nil,   nil,   nil,  1611,
+   nil,   nil,  1006,   482,   nil,   nil,  1867,   nil,  1101,  1864,
+  1788,   447,   nil,   nil,   nil,  1858,   596,   nil,   nil,   nil,
+  1859,  1885,   nil,  1908,  1909,   nil,  1911,  1882,  1891,  1918,
+  1808,  1920,  1902,  1933,   nil,  1907,  1934,    -9,   284,   nil,
+  1951,  1927,   199,  1485,   576,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,  1954,   nil,   nil,   904,   812,   nil,  1930,
+   nil,   513,   nil,   nil,   nil,   nil,  2092,   nil,   330,   nil,
+  1947,   835,   240,   nil,  1975,  1976,  1864,  1970,   nil,   nil,
+   nil,  1884,  1974,   982,     8,   nil,   nil,  1474,  1982,   nil,
+   nil,   nil,   nil,  2014,   525,   927,  2015,  1987,   857,   253,
+  1996,   399,   nil,   -13,   nil,  1997,  2024,   nil,  2070,   nil,
+  2000,   205,    -5,    30,   nil,    52,    25,   nil,   nil,  1126,
+   117,    97,   765,   197,   nil,   nil,   180,   nil,   nil,   217,
+   nil,   nil,   279,   291,   379,   nil,   418,   367,   433,   534,
+   412,   454,   467,   460,   nil,   nil,   nil,   nil,   nil,   439,
+   nil,   nil,   nil,    11,   533,   100,   nil,   539,   512,   nil,
+   nil,   558,   414,   nil,   576,   594,   567,   nil,  1566,   606,
+   nil ]
 
 racc_action_default = [
-  -194,  -418,    -1,  -418,  -418,   -69,   -70,   -71,   -72,   -73,
-   -74,   -75,   -76,   -77,   -78,   -79,  -418,   -81,   -82,   -83,
+  -195,  -442,    -1,  -442,  -442,   -69,   -70,   -71,   -72,   -73,
+   -74,   -75,   -76,   -77,   -78,   -79,  -442,   -81,   -82,   -83,
    -84,   -85,   -86,   -87,   -88,   -89,   -90,   -91,   -92,   -93,
-   -94,   -95,   -96,   -97,   -98,   -99,  -418,  -101,  -104,  -118,
-  -418,  -418,  -126,  -127,  -128,  -129,  -130,  -131,  -136,  -137,
-  -192,  -193,  -195,  -418,  -197,  -198,  -199,  -200,  -201,  -202,
-  -203,  -206,  -207,  -208,  -209,  -210,  -234,  -418,  -418,  -418,
-  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -405,  -418,   870,
-  -418,   -65,   -67,  -418,  -139,  -140,  -418,  -146,  -205,  -204,
-  -418,  -100,  -106,  -418,  -109,   -72,   -73,  -119,  -418,  -125,
-  -418,  -211,  -418,  -214,  -418,  -216,  -418,  -218,  -418,  -220,
-  -221,  -222,  -418,  -418,  -386,  -418,  -418,  -418,  -394,  -395,
-  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -247,  -418,
-  -254,  -418,  -260,  -250,  -418,  -327,  -418,  -418,  -350,  -418,
-  -398,  -410,   -62,  -418,  -418,  -138,  -418,  -418,  -418,  -147,
-  -148,  -418,  -102,  -418,  -418,  -132,  -134,  -418,  -418,  -418,
-  -406,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,
-  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -337,  -418,  -244,
-  -418,  -242,  -418,  -255,  -418,  -251,  -418,  -418,  -328,  -418,
-  -399,  -418,   -66,    -2,    -3,    -4,    -5,    -6,    -7,    -8,
-    -9,   -10,  -418,   -12,   -14,   -18,  -418,  -418,   -22,   -23,
-   -24,   -25,   -26,   -27,   -28,   -30,   -34,   -37,   -40,   -45,
-   -48,   -50,   -52,   -54,   -56,   -58,   -61,   -68,  -186,  -418,
-  -418,  -418,  -143,   -63,  -418,  -418,  -145,  -150,  -152,  -418,
-  -156,  -418,  -141,  -149,   -80,  -418,  -418,  -107,  -418,  -418,
-  -123,  -418,  -418,  -418,  -196,  -418,  -212,  -418,  -224,  -418,
-  -418,  -418,  -418,  -228,  -418,  -291,  -418,  -418,  -387,  -418,
-  -389,  -418,  -391,  -418,  -404,  -418,  -418,  -418,  -418,  -418,
-  -418,  -418,  -240,  -418,  -418,  -418,  -418,  -248,  -418,  -418,
-  -261,  -263,  -418,  -265,  -266,  -267,  -268,  -269,  -418,  -288,
-  -289,  -418,  -418,  -418,  -418,  -313,  -314,  -252,  -324,  -326,
-  -418,  -351,  -353,  -418,  -355,  -356,  -357,  -358,  -365,  -418,
-  -418,  -418,  -418,  -381,  -418,  -407,  -408,  -409,  -418,  -418,
-   -13,  -418,  -418,   -60,  -172,  -418,  -418,  -418,   -19,  -418,
-   -20,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,
-  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,
-  -418,  -190,  -418,  -142,   -64,  -144,  -418,  -157,  -155,  -418,
-  -159,  -161,  -162,  -163,  -418,  -418,  -166,  -418,  -418,  -171,
-  -418,  -105,  -108,  -418,  -120,  -122,  -418,  -112,  -114,  -418,
-  -418,  -133,  -135,  -124,  -213,  -418,  -418,  -418,  -215,  -217,
-  -219,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -418,  -393,
-  -418,  -397,  -235,  -418,  -237,  -238,  -418,  -245,  -418,  -418,
-  -418,  -249,  -418,  -256,  -418,  -418,  -418,  -262,  -418,  -270,
-  -272,  -418,  -274,  -275,  -276,  -277,  -290,  -418,  -418,  -418,
-  -250,  -418,  -315,  -329,  -418,  -352,  -418,  -359,  -418,  -361,
-  -362,  -363,  -364,  -418,  -372,  -418,  -418,  -418,  -418,  -418,
-  -400,  -401,  -402,  -418,  -418,   -11,  -418,  -173,  -174,  -175,
-  -418,  -418,  -418,   -16,   -17,  -418,   -31,   -32,   -33,   -35,
-   -36,   -38,   -39,   -41,   -42,   -43,   -44,   -46,   -47,   -49,
-   -51,   -53,   -55,   -57,  -418,  -187,  -418,  -418,  -151,  -153,
-  -154,  -158,  -418,  -418,  -418,  -418,  -418,  -418,  -103,  -110,
-  -418,  -418,  -418,  -418,  -418,  -418,  -225,  -418,  -418,  -229,
-  -418,  -418,  -338,  -418,  -399,  -418,  -418,  -418,  -418,  -418,
-  -418,  -418,  -243,  -246,  -253,  -418,  -418,  -259,  -418,  -418,
-  -418,  -418,  -418,  -294,  -296,  -418,  -418,  -305,  -307,  -418,
-  -418,  -418,  -418,  -418,  -349,  -418,  -418,  -418,  -367,  -418,
-  -373,  -418,  -382,  -418,  -418,  -385,  -418,  -418,   -29,  -176,
-  -418,  -418,  -418,  -405,  -182,  -418,  -178,  -418,   -15,   -21,
-  -418,  -188,  -191,  -189,  -160,  -418,  -418,  -418,  -418,  -418,
-  -121,  -418,  -113,  -418,  -418,  -418,  -418,  -418,  -418,  -232,
-  -418,  -223,  -418,  -388,  -390,  -418,  -396,  -236,  -418,  -241,
-  -257,  -418,  -264,  -271,  -418,  -418,  -278,  -279,  -284,  -418,
-  -418,  -418,  -295,  -418,  -298,  -418,  -418,  -418,  -306,  -418,
-  -418,  -418,  -418,  -418,  -316,  -418,  -319,  -418,  -330,  -331,
-  -418,  -333,  -418,  -343,  -354,  -418,  -418,  -368,  -369,  -371,
-  -418,  -418,  -418,  -418,  -418,  -180,  -418,  -184,  -418,  -177,
-  -183,  -179,   -59,  -164,  -165,  -167,  -168,  -418,  -170,  -418,
-  -115,  -116,  -117,  -418,  -418,  -230,  -418,  -418,  -418,  -418,
-  -418,  -418,  -418,  -273,  -418,  -418,  -418,  -292,  -418,  -293,
-  -418,  -418,  -418,  -304,  -418,  -418,  -418,  -310,  -312,  -418,
-  -325,  -418,  -335,  -418,  -418,  -418,  -418,  -360,  -366,  -374,
-  -418,  -383,  -418,  -403,  -418,  -418,  -181,  -185,  -418,  -111,
-  -418,  -418,  -233,  -418,  -384,  -392,  -239,  -418,  -418,  -280,
-  -281,  -285,  -418,  -418,  -297,  -418,  -418,  -308,  -418,  -418,
-  -418,  -418,  -418,  -418,  -418,  -418,  -348,  -418,  -418,  -418,
-  -418,  -379,  -418,  -418,  -418,  -169,  -226,  -418,  -231,  -258,
-  -418,  -418,  -286,  -418,  -299,  -418,  -302,  -303,  -309,  -311,
-  -418,  -332,  -418,  -334,  -418,  -418,  -418,  -341,  -418,  -418,
-  -343,  -418,  -375,  -376,  -418,  -418,  -418,  -418,  -418,  -282,
-  -283,  -287,  -300,  -418,  -418,  -418,  -418,  -418,  -418,  -418,
-  -418,  -418,  -370,  -418,  -380,  -418,  -418,  -418,  -301,  -418,
-  -418,  -418,  -418,  -339,  -418,  -418,  -342,  -344,  -418,  -418,
-  -418,  -418,  -418,  -227,  -317,  -418,  -320,  -322,  -418,  -336,
-  -340,  -418,  -418,  -418,  -378,  -418,  -418,  -418,  -418,  -418,
-  -418,  -418,  -418,  -417,  -318,  -321,  -323,  -346,  -418,  -345,
-  -377,  -413,  -418,  -418,  -418,  -415,  -418,  -418,  -411,  -412,
-  -418,  -418,  -347,  -418,  -418,  -418,  -416,  -418,  -418,  -414 ]
+   -94,   -95,   -96,   -97,   -98,   -99,  -442,  -101,  -104,  -118,
+  -442,  -442,  -126,  -127,  -128,  -129,  -130,  -131,  -136,  -137,
+  -192,  -193,  -194,  -196,  -442,  -198,  -199,  -200,  -201,  -202,
+  -203,  -204,  -207,  -208,  -209,  -210,  -211,  -235,  -442,  -442,
+  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -408,  -442,
+  -442,   911,  -442,   -65,   -67,  -442,  -139,  -140,  -442,  -146,
+  -206,  -205,  -442,  -100,  -106,  -442,  -109,   -72,   -73,  -119,
+  -442,  -125,  -442,  -212,  -442,  -215,  -442,  -217,  -442,  -219,
+  -442,  -221,  -222,  -223,  -442,  -442,  -389,  -442,  -442,  -442,
+  -397,  -398,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
+  -248,  -442,  -255,  -442,  -261,  -251,  -442,  -328,  -442,  -442,
+  -351,  -442,  -401,  -413,  -442,   -62,  -442,  -442,  -138,  -442,
+  -442,  -442,  -147,  -148,  -442,  -102,  -442,  -442,  -132,  -134,
+  -442,  -442,  -442,  -409,  -442,  -442,  -442,  -442,  -442,  -442,
+  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
+  -338,  -442,  -245,  -442,  -243,  -442,  -256,  -442,  -252,  -442,
+  -442,  -329,  -442,  -402,  -442,  -442,  -435,   -66,    -2,    -3,
+    -4,    -5,    -6,    -7,    -8,    -9,   -10,  -442,   -12,   -14,
+   -18,  -442,  -442,   -22,   -23,   -24,   -25,   -26,   -27,   -28,
+   -30,   -34,   -37,   -40,   -45,   -48,   -50,   -52,   -54,   -56,
+   -58,   -61,   -68,  -186,  -442,  -442,  -442,  -143,   -63,  -442,
+  -442,  -145,  -150,  -152,  -442,  -156,  -442,  -141,  -149,   -80,
+  -442,  -442,  -107,  -442,  -442,  -123,  -442,  -442,  -442,  -197,
+  -442,  -213,  -442,  -225,  -442,  -442,  -442,  -442,  -229,  -442,
+  -292,  -442,  -442,  -390,  -442,  -392,  -442,  -394,  -442,  -407,
+  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -241,  -442,  -442,
+  -442,  -442,  -249,  -442,  -442,  -262,  -264,  -442,  -266,  -267,
+  -268,  -269,  -270,  -442,  -289,  -290,  -442,  -442,  -442,  -442,
+  -314,  -315,  -253,  -325,  -327,  -442,  -352,  -354,  -442,  -356,
+  -357,  -358,  -359,  -367,  -442,  -442,  -442,  -442,  -384,  -442,
+  -410,  -411,  -412,  -442,  -442,  -442,   -13,  -442,  -442,   -60,
+  -172,  -442,  -442,  -442,   -19,  -442,   -20,  -442,  -442,  -442,
+  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
+  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -190,  -442,  -142,
+   -64,  -144,  -442,  -157,  -155,  -442,  -159,  -161,  -162,  -163,
+  -442,  -442,  -166,  -442,  -442,  -171,  -442,  -105,  -108,  -442,
+  -120,  -122,  -442,  -112,  -114,  -442,  -442,  -133,  -135,  -124,
+  -214,  -442,  -442,  -442,  -216,  -218,  -220,  -442,  -442,  -442,
+  -442,  -442,  -442,  -442,  -442,  -396,  -442,  -400,  -236,  -442,
+  -238,  -239,  -442,  -246,  -442,  -442,  -442,  -250,  -442,  -257,
+  -442,  -442,  -442,  -263,  -442,  -271,  -273,  -442,  -275,  -276,
+  -277,  -278,  -291,  -442,  -442,  -442,  -251,  -442,  -316,  -330,
+  -442,  -353,  -442,  -360,  -442,  -363,  -364,  -365,  -366,  -442,
+  -374,  -442,  -442,  -442,  -442,  -442,  -403,  -404,  -405,  -442,
+  -442,  -421,  -442,   -11,  -442,  -173,  -174,  -175,  -442,  -442,
+  -442,   -16,   -17,  -442,   -31,   -32,   -33,   -35,   -36,   -38,
+   -39,   -41,   -42,   -43,   -44,   -46,   -47,   -49,   -51,   -53,
+   -55,   -57,  -442,  -187,  -442,  -442,  -151,  -153,  -154,  -158,
+  -442,  -442,  -442,  -442,  -442,  -442,  -103,  -110,  -442,  -442,
+  -442,  -442,  -442,  -442,  -226,  -442,  -442,  -230,  -442,  -442,
+  -339,  -442,  -402,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
+  -244,  -247,  -254,  -442,  -442,  -260,  -442,  -442,  -442,  -442,
+  -442,  -295,  -297,  -442,  -442,  -306,  -308,  -442,  -442,  -442,
+  -442,  -442,  -350,  -442,  -442,  -442,  -442,  -369,  -442,  -375,
+  -442,  -385,  -442,  -442,  -388,  -442,  -442,  -442,  -442,   -29,
+  -176,  -442,  -442,  -442,  -408,  -182,  -442,  -178,  -442,   -15,
+   -21,  -442,  -188,  -191,  -189,  -160,  -442,  -442,  -442,  -442,
+  -442,  -121,  -442,  -113,  -442,  -442,  -442,  -442,  -442,  -442,
+  -233,  -442,  -224,  -442,  -391,  -393,  -442,  -399,  -237,  -442,
+  -242,  -258,  -442,  -265,  -272,  -442,  -442,  -279,  -280,  -285,
+  -442,  -442,  -442,  -296,  -442,  -299,  -442,  -442,  -442,  -307,
+  -442,  -442,  -442,  -442,  -442,  -317,  -442,  -320,  -442,  -331,
+  -332,  -442,  -334,  -442,  -344,  -355,  -361,  -442,  -442,  -370,
+  -371,  -373,  -442,  -442,  -442,  -442,  -442,  -422,  -442,  -442,
+  -180,  -442,  -184,  -442,  -177,  -183,  -179,   -59,  -164,  -165,
+  -167,  -168,  -442,  -170,  -442,  -115,  -116,  -117,  -442,  -442,
+  -231,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -274,  -442,
+  -442,  -442,  -293,  -442,  -294,  -442,  -442,  -442,  -305,  -442,
+  -442,  -442,  -311,  -313,  -442,  -326,  -442,  -336,  -442,  -442,
+  -442,  -442,  -362,  -368,  -376,  -442,  -386,  -442,  -406,  -442,
+  -442,  -442,  -423,  -425,  -426,  -427,  -428,  -429,  -430,  -442,
+  -436,  -437,  -442,  -442,  -181,  -185,  -442,  -111,  -442,  -442,
+  -234,  -442,  -387,  -395,  -240,  -442,  -442,  -281,  -282,  -286,
+  -442,  -442,  -298,  -442,  -442,  -309,  -442,  -442,  -442,  -442,
+  -442,  -442,  -442,  -442,  -349,  -442,  -442,  -442,  -442,  -382,
+  -442,  -442,  -442,  -442,  -442,  -432,  -433,  -438,  -439,  -440,
+  -441,  -169,  -227,  -442,  -232,  -259,  -442,  -442,  -287,  -442,
+  -300,  -442,  -303,  -304,  -310,  -312,  -442,  -333,  -442,  -335,
+  -442,  -442,  -442,  -342,  -442,  -442,  -344,  -442,  -377,  -378,
+  -379,  -442,  -442,  -442,  -442,  -424,  -431,  -442,  -442,  -283,
+  -284,  -288,  -301,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
+  -442,  -442,  -372,  -442,  -383,  -442,  -442,  -434,  -442,  -302,
+  -442,  -442,  -442,  -442,  -340,  -442,  -442,  -343,  -345,  -442,
+  -442,  -442,  -442,  -442,  -228,  -318,  -442,  -321,  -323,  -442,
+  -337,  -341,  -442,  -442,  -442,  -381,  -442,  -442,  -442,  -442,
+  -442,  -442,  -442,  -442,  -420,  -319,  -322,  -324,  -347,  -442,
+  -346,  -380,  -416,  -442,  -442,  -442,  -418,  -442,  -442,  -414,
+  -415,  -442,  -442,  -348,  -442,  -442,  -442,  -419,  -442,  -442,
+  -417 ]
 
 racc_goto_table = [
-    53,   135,    82,   227,   260,   176,   149,   333,   231,   233,
-   158,   258,   100,   150,    97,   318,   235,   151,   563,   383,
-   462,   178,    50,   166,   324,   261,   523,   461,   525,   526,
-   387,   370,     9,     8,   338,   429,   263,   638,   561,    81,
-   139,   598,   311,   382,   125,   467,   266,   332,   547,   269,
-   271,   702,   290,   246,   154,   543,   745,   615,   766,   642,
-   710,   483,   484,   485,   486,   137,   234,   487,   488,   310,
-   558,   544,   548,   645,   644,   243,   479,   480,   481,   482,
-   446,   447,   557,   455,   148,   559,   544,   750,   361,   709,
-   333,   783,   268,   273,   191,   326,   364,   327,   854,   859,
-     1,   233,   852,     2,   340,   489,   490,   491,   492,   493,
-    80,   367,    91,   253,   392,   808,    92,   245,    93,   386,
-   590,   391,   419,   179,   145,   499,   369,   248,   569,   360,
-    51,   254,   256,   257,   262,   541,   318,   180,   127,   286,
-   333,    82,   129,   288,   333,   380,   423,   811,   131,   289,
-   612,   249,   608,   773,   428,   628,   255,   427,   234,   622,
-   784,   729,   785,   445,   333,   437,   686,   542,   623,   476,
-   477,   478,   472,   765,   647,   544,   334,   382,   192,   548,
-    53,   572,   292,   546,   475,   629,   552,   313,     9,     8,
-   544,   634,   635,   825,   136,   187,   494,   553,   723,   443,
-   639,   701,   287,   771,   497,   nil,   nil,   nil,   416,   nil,
-   nil,   nil,     9,     8,   nil,   nil,   nil,   nil,   nil,   248,
-   248,   nil,   nil,   nil,   nil,   436,   nil,   679,   233,   nil,
-   441,   405,   nil,   712,   782,   nil,   nil,   nil,   368,   nil,
-   nil,   nil,   nil,   249,   249,   516,   522,   454,   522,   522,
-   nil,   nil,   nil,   nil,   nil,   463,   nil,   nil,   418,   518,
-   468,   nil,   424,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   519,   nil,   nil,   nil,   nil,   nil,   501,
-   nil,   417,   613,   nil,    53,   234,   425,   292,   nil,   527,
-   nil,   nil,   584,   592,   568,   nil,   511,   nil,   462,   nil,
-   nil,   nil,   nil,   nil,   nil,   461,   421,   nil,   313,   nil,
-   333,   333,   333,   334,   531,   nil,     9,     8,   333,   333,
-   333,   nil,   458,   734,   nil,   nil,   nil,   737,   nil,   nil,
-   nil,   nil,   233,   577,   nil,   nil,   nil,   nil,   538,   575,
-   nil,   nil,   587,   588,   589,   nil,   nil,   nil,   713,   nil,
-   593,   594,   595,   nil,   248,   582,   555,   nil,   602,   nil,
-   nil,   nil,   669,   nil,   820,   500,   nil,   nil,   nil,   nil,
-   nil,   nil,   522,   nil,   nil,   nil,   nil,   nil,   249,   nil,
-   nil,   318,   nil,   nil,   nil,   662,   nil,   nil,   nil,   234,
-   nil,   567,   nil,   nil,   841,   nil,   468,   nil,   nil,   nil,
+    54,   137,   232,    84,   236,   265,   263,   161,   179,   195,
+   339,   152,   240,   572,   238,   102,   153,    99,   154,   323,
+   169,   266,   389,   329,   531,   468,   533,   534,   467,   393,
+     9,   181,   425,   435,    50,   376,   453,   344,   268,   570,
+     8,   552,   556,   649,   650,   609,   141,   732,   127,    83,
+   271,   388,   251,   274,   276,   338,   552,   475,   316,   717,
+   773,   725,   295,   555,   157,   551,   802,   626,   491,   492,
+   493,   494,   239,   487,   488,   495,   496,   489,   490,   248,
+   567,   452,   566,   480,   657,   461,   568,   151,   778,   367,
+   724,   819,   273,   339,   278,   194,   331,   332,   895,   900,
+   893,   471,   577,   370,     1,   784,     2,   502,   238,   346,
+   497,   498,   398,   499,   500,   501,    82,   786,   373,    93,
+    94,   250,    95,   392,   258,   601,   182,   397,   148,   507,
+   375,   580,   366,   253,    51,   849,    52,   259,   261,   262,
+   267,   549,   323,   183,   339,    84,   386,   552,   339,   129,
+   291,   556,   619,   131,   254,   293,   429,   133,   294,   260,
+   623,   825,   434,   552,   757,   443,   239,   701,   339,   433,
+   550,   633,   639,   484,   485,   486,   852,   821,   809,   822,
+   634,   451,   801,    54,   340,   297,   388,   659,   554,     9,
+   318,   197,   640,   483,   560,   583,   645,   646,   866,     8,
+   138,   190,   561,   449,   716,   847,   807,   808,   505,   751,
+   139,   315,   422,     9,   655,   nil,   nil,   292,   nil,   nil,
+   nil,   nil,   nil,     8,   nil,   nil,   nil,   253,   253,   442,
+   694,   nil,   nil,   nil,   447,   nil,   238,   nil,   nil,   nil,
+   727,   411,   nil,   524,   374,   nil,   nil,   nil,   254,   254,
+   530,   460,   530,   530,   nil,   598,   599,   600,   526,   469,
+   818,   820,   nil,   604,   605,   606,   424,   476,   nil,   nil,
+   430,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   527,   nil,
+   509,   nil,   656,   624,   nil,   nil,   nil,   423,   nil,    54,
+   nil,   431,   297,   nil,   239,   603,   535,   519,   nil,   595,
+   579,   nil,   762,   nil,   nil,   nil,   765,   nil,   nil,   468,
+   nil,   nil,   467,   318,   nil,   nil,   339,   339,   339,     9,
+   nil,   nil,   340,   427,   339,   339,   339,   464,   539,     8,
+   nil,   nil,   nil,   nil,   588,   nil,   nil,   578,   nil,   546,
+   586,   nil,   238,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   563,   nil,   593,
+   728,   nil,   613,   253,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   684,   508,   nil,   nil,   nil,   nil,   nil,   530,   nil,
+   nil,   nil,   nil,   nil,   254,   nil,   nil,   nil,   nil,   nil,
+   323,   nil,   nil,   861,   677,   nil,   576,   nil,   nil,   nil,
+   239,   nil,   nil,   nil,   nil,   476,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   179,   564,   812,   nil,
-   nil,   nil,   535,   nil,   nil,   nil,   nil,   nil,   653,   nil,
-   585,   586,   656,   233,   nil,   577,   545,   549,   nil,   nil,
-   658,   nil,   nil,   nil,   nil,   nil,   611,   522,   nil,   nil,
-   nil,   545,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   182,   882,   573,   nil,   nil,   nil,   543,
+   665,   nil,   nil,   nil,   nil,   nil,   671,   596,   597,   588,
+   nil,   nil,   553,   557,   673,   nil,   238,   nil,   763,   622,
+   853,   nil,   766,   nil,   610,   nil,   530,   553,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   652,   nil,   nil,   631,   nil,   nil,
-   nil,   687,   nil,   nil,   nil,   591,   nil,   nil,   nil,   nil,
-   234,   nil,   nil,   nil,   nil,   nil,   333,   nil,   nil,   nil,
-   333,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   664,   nil,
+   nil,   nil,   nil,   nil,   642,   702,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   602,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   239,   nil,   nil,   nil,   nil,   339,
+   nil,   nil,   nil,   339,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   735,   718,
-   nil,   nil,   738,   690,   730,   nil,   nil,   nil,   nil,   694,
-   545,   nil,   nil,   nil,   549,   nil,   nil,   688,   nil,   nil,
-   nil,   640,   nil,   nil,   nil,   545,   nil,   nil,   nil,   nil,
-   nil,   740,   nil,   nil,   747,   nil,   746,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   753,   nil,   nil,   756,
-   333,   nil,   nil,   nil,   nil,   681,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   731,   nil,   nil,   nil,   746,   nil,   705,
+   nil,   758,   nil,   nil,   nil,   709,   nil,   nil,   553,   nil,
+   nil,   nil,   557,   837,   nil,   nil,   nil,   703,   nil,   651,
+   nil,   nil,   nil,   nil,   553,   nil,   nil,   nil,   nil,   768,
+   nil,   nil,   nil,   nil,   774,   775,   nil,   nil,   nil,   nil,
+   855,   nil,   nil,   nil,   781,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   696,
+   nil,   873,   nil,   792,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   464,   nil,   nil,   339,   nil,   nil,   750,   610,   nil,
+   nil,   769,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   894,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   339,   nil,   nil,   nil,   nil,   nil,   777,   nil,   nil,
+   nil,   829,   830,   810,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   834,   339,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   530,   nil,   845,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   458,   nil,   nil,   333,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   741,   797,   nil,   nil,   nil,   nil,   nil,   nil,   789,
-   790,   nil,   nil,   333,   774,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   794,   749,   nil,   814,   nil,   nil,   522,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   805,   nil,
-   nil,   nil,   nil,   333,   nil,   832,   nil,   746,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   823,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   727,
-   nil,   787,   nil,   835,   nil,   853,   nil,   nil,   nil,   nil,
+   774,   nil,   339,   nil,   nil,   755,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   864,   nil,   nil,   nil,   nil,   824,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   876,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   864,   nil,   nil,   815,   nil,   nil,   868,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   905,   nil,   nil,
+   nil,   nil,   nil,   909,   nil,   856,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   651 ]
+
+racc_goto_check = [
+    45,     4,    32,    31,    23,     5,    85,    47,    83,   167,
+    22,    29,    55,   153,    28,    68,    53,    25,     4,   101,
+    47,    23,    44,   157,    84,    74,    84,    84,    76,    48,
+    34,    89,     6,   106,    64,    60,   145,    10,    86,   154,
+    33,    24,    24,   129,   130,    88,   156,   170,    25,    30,
+    83,    43,    40,    83,    83,    11,    24,    61,   138,   133,
+   135,   152,    98,   118,    51,   113,   116,   107,    14,    14,
+    14,    14,    29,    12,    12,    15,    15,    13,    13,    53,
+   113,   140,   146,     6,   107,   147,   148,    31,   149,    32,
+   150,   151,   158,    22,   159,   161,   162,   163,   164,   165,
+   166,   168,   169,    28,     1,   173,     2,     6,    28,     8,
+    16,    17,    23,    18,    19,    20,    26,   170,    27,    37,
+    39,    41,    42,    46,    51,    49,    31,    52,    54,    57,
+    59,    62,    63,    25,    65,   116,    66,    67,    80,    81,
+    82,    87,   101,    90,    22,    31,    40,    24,    22,    91,
+    92,    24,    84,    93,    45,    94,    95,    96,    97,    45,
+    99,   170,   100,    24,   108,   110,    29,   111,    22,    98,
+   112,   113,   118,    10,    10,    10,   135,   152,   133,   152,
+   114,   138,   115,    45,    25,    45,    43,   113,   117,    34,
+    45,    30,   119,    11,   121,    61,   122,   123,   124,    33,
+   125,   126,   127,   128,   131,   170,   132,   134,     5,    88,
+   136,   137,     4,    34,   139,   nil,   nil,    64,   nil,   nil,
+   nil,   nil,   nil,    33,   nil,   nil,   nil,    25,    25,     4,
+    84,   nil,   nil,   nil,     4,   nil,    28,   nil,   nil,   nil,
+   154,   156,   nil,    85,    31,   nil,   nil,   nil,    45,    45,
+     5,     4,     5,     5,   nil,     6,     6,     6,    23,     4,
+   129,   130,   nil,     6,     6,     6,    25,    53,   nil,   nil,
+    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    86,   nil,
+    47,   nil,   145,   106,   nil,   nil,   nil,    31,   nil,    45,
+   nil,    45,    45,   nil,    29,    48,    83,    47,   nil,    60,
+    10,   nil,    24,   nil,   nil,   nil,    24,   nil,   nil,    74,
+   nil,   nil,    76,    45,   nil,   nil,    22,    22,    22,    34,
+   nil,   nil,    25,    64,    22,    22,    22,    45,    89,    33,
+   nil,   nil,   nil,   nil,    23,   nil,   nil,   167,   nil,    47,
+    55,   nil,    28,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    47,   nil,    32,
+    74,   nil,   157,    25,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    44,    31,   nil,   nil,   nil,   nil,   nil,     5,   nil,
+   nil,   nil,   nil,   nil,    45,   nil,   nil,   nil,   nil,   nil,
+   101,   nil,   nil,   153,    22,   nil,     4,   nil,   nil,   nil,
+    29,   nil,   nil,   nil,   nil,    53,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   640 ]
-
-racc_goto_check = [
-    45,     4,    31,    32,     5,    82,    29,    22,    23,    28,
-    47,    84,    67,    53,    25,   100,    55,     4,   152,    44,
-    73,    88,    64,    47,   156,    23,    83,    75,    83,    83,
-    48,    60,    34,    33,    10,   105,    85,   128,   153,    30,
-   155,    87,   137,    43,    25,    61,    82,    11,   117,    82,
-    82,   132,    97,    40,    51,   112,   134,   106,   115,   133,
-   151,    14,    14,    14,    14,   135,    29,    15,    15,   136,
-   112,    24,    24,   106,   138,    53,    12,    12,    13,    13,
-   139,   144,   145,   146,    31,   147,    24,   148,    32,   149,
-    22,   150,   157,   158,   160,   161,    28,   162,   163,   164,
-     1,    28,   165,     2,     8,    16,    17,    18,    19,    20,
-    26,    27,    37,    51,    23,   115,    39,    41,    42,    46,
-    49,    52,     6,    31,    54,    57,    59,    25,    62,    63,
-    65,    66,    79,    80,    81,    86,   100,    89,    90,    91,
-    22,    31,    92,    93,    22,    40,    94,   134,    95,    96,
-    98,    45,    83,   132,    99,   117,    45,    97,    29,   112,
-   151,   107,   151,   137,    22,   109,   110,   111,   113,    10,
-    10,    10,     6,   114,   112,    24,    25,    43,    30,    24,
-    45,    61,    45,   116,    11,   118,   120,    45,    34,    33,
-    24,   121,   122,   123,   124,   125,     6,   126,    87,   127,
-   129,   130,    64,   131,     5,   nil,   nil,   nil,     4,   nil,
-   nil,   nil,    34,    33,   nil,   nil,   nil,   nil,   nil,    25,
-    25,   nil,   nil,   nil,   nil,     4,   nil,    83,    28,   nil,
-     4,   155,   nil,   153,   128,   nil,   nil,   nil,    31,   nil,
-   nil,   nil,   nil,    45,    45,    84,     5,     4,     5,     5,
-   nil,   nil,   nil,   nil,   nil,     4,   nil,   nil,    25,    23,
-    53,   nil,    25,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    85,   nil,   nil,   nil,   nil,   nil,    47,
-   nil,    31,   105,   nil,    45,    29,    45,    45,   nil,    82,
-   nil,   nil,    60,    48,    10,   nil,    47,   nil,    73,   nil,
-   nil,   nil,   nil,   nil,   nil,    75,    64,   nil,    45,   nil,
-    22,    22,    22,    25,    88,   nil,    34,    33,    22,    22,
-    22,   nil,    45,    24,   nil,   nil,   nil,    24,   nil,   nil,
-   nil,   nil,    28,    23,   nil,   nil,   nil,   nil,    47,    55,
-   nil,   nil,     6,     6,     6,   nil,   nil,   nil,    73,   nil,
-     6,     6,     6,   nil,    25,    32,    47,   nil,   156,   nil,
-   nil,   nil,    44,   nil,   152,    31,   nil,   nil,   nil,   nil,
-   nil,   nil,     5,   nil,   nil,   nil,   nil,   nil,    45,   nil,
-   nil,   100,   nil,   nil,   nil,    22,   nil,   nil,   nil,    29,
-   nil,     4,   nil,   nil,   152,   nil,    53,   nil,   nil,   nil,
+   nil,   nil,   nil,    31,   153,    68,   nil,   nil,   nil,    31,
+    23,   nil,   nil,   nil,   nil,   nil,    23,     4,     4,    23,
+   nil,   nil,    45,    45,    55,   nil,    28,   nil,     6,    47,
+    84,   nil,     6,   nil,     4,   nil,     5,    45,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    31,    67,    83,   nil,
-   nil,   nil,    31,   nil,   nil,   nil,   nil,   nil,    23,   nil,
-     4,     4,    23,    28,   nil,    23,    45,    45,   nil,   nil,
-    55,   nil,   nil,   nil,   nil,   nil,    47,     5,   nil,   nil,
-   nil,    45,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    47,   nil,
+   nil,   nil,   nil,   nil,     4,    23,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    25,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,    29,   nil,   nil,   nil,   nil,    22,
+   nil,   nil,   nil,    22,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,    47,   nil,   nil,     4,   nil,   nil,
-   nil,    23,   nil,   nil,   nil,    25,   nil,   nil,   nil,   nil,
-    29,   nil,   nil,   nil,   nil,   nil,    22,   nil,   nil,   nil,
-    22,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   167,   nil,   nil,   nil,    23,   nil,    47,
+   nil,    85,   nil,   nil,   nil,    47,   nil,   nil,    45,   nil,
+   nil,   nil,    45,     6,   nil,   nil,   nil,     4,   nil,    45,
+   nil,   nil,   nil,   nil,    45,   nil,   nil,   nil,   nil,    23,
+   nil,   nil,   nil,   nil,    23,    32,   nil,   nil,   nil,   nil,
+     6,   nil,   nil,   nil,    23,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    25,
+   nil,     6,   nil,    32,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    45,   nil,   nil,    22,   nil,   nil,     4,     4,   nil,
+   nil,    47,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,     6,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    22,   nil,   nil,   nil,   nil,   nil,     4,   nil,   nil,
+   nil,    32,    32,    83,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,    23,    22,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,     5,   nil,    23,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,     6,    23,
-   nil,   nil,     6,    47,    84,   nil,   nil,   nil,   nil,    47,
-    45,   nil,   nil,   nil,    45,   nil,   nil,     4,   nil,   nil,
-   nil,    45,   nil,   nil,   nil,    45,   nil,   nil,   nil,   nil,
-   nil,    23,   nil,   nil,    32,   nil,    23,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    23,   nil,   nil,    32,
-    22,   nil,   nil,   nil,   nil,    25,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-    45,   nil,   nil,    22,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,    47,     6,   nil,   nil,   nil,   nil,   nil,   nil,    32,
-    32,   nil,   nil,    22,    82,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,    23,     4,   nil,     6,   nil,   nil,     5,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    23,   nil,
-   nil,   nil,   nil,    22,   nil,     6,   nil,    23,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,    32,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    31,
-   nil,     4,   nil,    23,   nil,     6,   nil,   nil,   nil,   nil,
+    23,   nil,    22,   nil,   nil,    31,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,    32,   nil,   nil,   nil,   nil,     4,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    23,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,    23,   nil,   nil,     4,   nil,   nil,    23,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,    23,   nil,   nil,
+   nil,   nil,   nil,    23,   nil,     4,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,    45 ]
+
+racc_goto_pointer = [
+   nil,   104,   106,   nil,   -74,  -160,  -258,   nil,  -103,   nil,
+  -174,  -152,  -277,  -275,  -286,  -283,  -250,  -250,  -249,  -249,
+  -249,   nil,  -197,  -145,  -403,   -23,   112,  -126,  -136,   -78,
+    45,    -1,  -145,    38,    28,   nil,   nil,    83,   nil,    82,
+  -104,   -34,    84,  -200,  -231,    -2,  -131,   -95,  -225,  -393,
+   nil,   -36,  -129,   -73,    43,  -138,   nil,  -243,   nil,  -116,
+  -211,  -283,  -345,  -102,    32,   132,   134,   -24,   -39,   nil,
+   nil,   nil,   nil,   nil,  -304,   nil,  -301,   nil,   nil,   nil,
+   -24,   -25,   -27,  -118,  -386,  -158,  -129,  -302,  -483,   -96,
+    15,    77,   -35,    80,   -31,  -137,    83,   -29,  -125,  -386,
+  -135,  -173,   nil,   nil,   nil,   nil,  -264,  -481,  -535,   nil,
+  -138,  -463,  -274,  -379,  -373,  -582,  -698,  -257,  -382,  -365,
+   nil,  -254,  -364,  -363,  -653,   125,    63,  -247,  -110,  -518,
+  -517,  -447,  -563,  -592,  -562,  -659,   134,    19,  -134,  -349,
+  -237,   nil,   nil,   nil,   nil,  -282,  -377,  -240,  -375,  -636,
+  -570,  -687,  -601,  -450,  -423,   nil,   -31,  -170,   -78,   -79,
+   nil,   -48,   -98,   -97,  -794,  -796,  -784,  -135,  -234,  -370,
+  -622,   nil,   nil,  -634 ]
+
+racc_goto_default = [
+   nil,   nil,   nil,   209,   198,   206,   337,   210,   219,   211,
+   220,   nil,   221,   222,   223,   224,   225,   226,   227,   228,
+   229,   230,   231,   233,    67,     4,   nil,   245,    39,    40,
+   nil,   391,   nil,    97,    98,    11,    12,    37,    36,   nil,
+   nil,   nil,   nil,   252,   nil,   246,   nil,   nil,   nil,   390,
+    41,   nil,   158,    85,    86,   nil,   242,   243,   244,   nil,
+   nil,   nil,   477,   nil,   nil,   nil,   nil,    53,   nil,    55,
+    56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+   103,   nil,   nil,   nil,   nil,   628,   nil,   269,   nil,   nil,
+   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   296,
+   nil,   298,   299,   300,   301,   302,   nil,   nil,   627,   303,
    nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,    45 ]
-
-racc_goto_pointer = [
-   nil,   100,   103,   nil,   -73,  -158,  -163,   nil,  -103,   nil,
-  -172,  -155,  -268,  -268,  -287,  -285,  -249,  -249,  -249,  -249,
-  -249,   nil,  -195,  -138,  -367,   -26,   106,  -128,  -138,   -81,
-    35,    -2,  -141,    31,    30,   nil,   nil,    76,   nil,    78,
-  -100,   -35,    80,  -203,  -229,    -2,  -130,   -90,  -219,  -390,
-   nil,   -44,  -130,   -74,    41,  -131,   nil,  -241,   nil,  -115,
-  -210,  -289,  -340,  -100,    20,   128,   -27,   -41,   nil,   nil,
-   nil,   nil,   nil,  -304,   nil,  -297,   nil,   nil,   nil,   -27,
-   -28,   -30,  -119,  -378,  -150,  -128,  -302,  -479,  -104,    11,
-    67,   -43,    70,   -40,  -142,    75,   -35,  -132,  -388,  -138,
-  -174,   nil,   nil,   nil,   nil,  -257,  -483,  -523,   nil,  -133,
-  -453,  -271,  -383,  -377,  -563,  -678,  -256,  -391,  -364,   nil,
-  -256,  -361,  -360,  -617,   120,    59,  -246,  -109,  -516,  -353,
-  -439,  -538,  -589,  -494,  -648,   -10,  -120,  -147,  -481,  -233,
-   nil,   nil,   nil,   nil,  -232,  -371,  -237,  -370,  -622,  -559,
-  -659,  -590,  -439,  -418,   nil,   -36,  -166,   -75,   -77,   nil,
-   -47,   -96,   -94,  -753,  -755,  -741 ]
-
-racc_goto_default = [
-   nil,   nil,   nil,   204,   193,   201,   331,   205,   214,   206,
-   215,   nil,   216,   217,   218,   219,   220,   221,   222,   223,
-   224,   225,   226,   228,    66,     4,   nil,   240,    39,    40,
-   nil,   385,   nil,    95,    96,    11,    12,    37,    36,   nil,
-   nil,   nil,   nil,   247,   nil,   241,   nil,   nil,   nil,   384,
-    41,   nil,   155,    83,    84,   nil,   237,   238,   239,   nil,
-   nil,   nil,   469,   nil,   nil,   nil,    52,   nil,    54,    55,
-    56,    57,    58,    59,    60,    61,    62,    63,    64,   101,
-   nil,   nil,   nil,   nil,   617,   nil,   264,   nil,   nil,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   291,   nil,
-   293,   294,   295,   296,   297,   nil,   nil,   616,   298,   nil,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   304,
-   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   641,   nil,   772,   nil,   nil,   nil,   nil,   312,   nil,
-   314,   315,   316,   317,   nil,   nil,   nil,   nil,   nil,   nil,
-   nil,   nil,   321,   nil,   113,   nil,   nil,   114,   nil,   460,
-   nil,   nil,   nil,   nil,   nil,   nil ]
+   309,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   652,   nil,   653,   nil,   nil,   nil,   nil,   317,
+   nil,   319,   320,   321,   322,   nil,   nil,   nil,   nil,   nil,
+   nil,   nil,   nil,   326,   nil,   115,   nil,   nil,   116,   nil,
+   466,   nil,   nil,   nil,   nil,   nil,   nil,   733,   735,   nil,
+   nil,   734,   736,   nil ]
 
 racc_reduce_table = [
   0, 0, :racc_error,
-  1, 141, :_reduce_none,
-  1, 143, :_reduce_2,
-  1, 143, :_reduce_3,
-  1, 143, :_reduce_4,
-  1, 143, :_reduce_5,
-  1, 143, :_reduce_6,
-  1, 143, :_reduce_7,
-  1, 143, :_reduce_8,
-  1, 143, :_reduce_9,
-  1, 143, :_reduce_10,
-  3, 143, :_reduce_11,
-  1, 145, :_reduce_none,
-  2, 145, :_reduce_13,
-  1, 147, :_reduce_none,
-  4, 147, :_reduce_15,
-  3, 147, :_reduce_16,
-  3, 147, :_reduce_17,
+  1, 142, :_reduce_none,
+  1, 144, :_reduce_2,
+  1, 144, :_reduce_3,
+  1, 144, :_reduce_4,
+  1, 144, :_reduce_5,
+  1, 144, :_reduce_6,
+  1, 144, :_reduce_7,
+  1, 144, :_reduce_8,
+  1, 144, :_reduce_9,
+  1, 144, :_reduce_10,
+  3, 144, :_reduce_11,
+  1, 146, :_reduce_none,
+  2, 146, :_reduce_13,
   1, 148, :_reduce_none,
-  2, 148, :_reduce_19,
-  2, 148, :_reduce_20,
-  4, 148, :_reduce_21,
-  1, 149, :_reduce_22,
-  1, 149, :_reduce_23,
-  1, 149, :_reduce_24,
-  1, 149, :_reduce_25,
-  1, 149, :_reduce_26,
-  1, 149, :_reduce_27,
-  1, 150, :_reduce_none,
-  4, 150, :_reduce_29,
-  1, 152, :_reduce_none,
-  3, 152, :_reduce_31,
-  3, 152, :_reduce_32,
-  3, 152, :_reduce_33,
+  4, 148, :_reduce_15,
+  3, 148, :_reduce_16,
+  3, 148, :_reduce_17,
+  1, 149, :_reduce_none,
+  2, 149, :_reduce_19,
+  2, 149, :_reduce_20,
+  4, 149, :_reduce_21,
+  1, 150, :_reduce_22,
+  1, 150, :_reduce_23,
+  1, 150, :_reduce_24,
+  1, 150, :_reduce_25,
+  1, 150, :_reduce_26,
+  1, 150, :_reduce_27,
+  1, 151, :_reduce_none,
+  4, 151, :_reduce_29,
   1, 153, :_reduce_none,
-  3, 153, :_reduce_35,
-  3, 153, :_reduce_36,
+  3, 153, :_reduce_31,
+  3, 153, :_reduce_32,
+  3, 153, :_reduce_33,
   1, 154, :_reduce_none,
-  3, 154, :_reduce_38,
-  3, 154, :_reduce_39,
+  3, 154, :_reduce_35,
+  3, 154, :_reduce_36,
   1, 155, :_reduce_none,
-  3, 155, :_reduce_41,
-  3, 155, :_reduce_42,
-  3, 155, :_reduce_43,
-  3, 155, :_reduce_44,
+  3, 155, :_reduce_38,
+  3, 155, :_reduce_39,
   1, 156, :_reduce_none,
-  3, 156, :_reduce_46,
-  3, 156, :_reduce_47,
+  3, 156, :_reduce_41,
+  3, 156, :_reduce_42,
+  3, 156, :_reduce_43,
+  3, 156, :_reduce_44,
   1, 157, :_reduce_none,
-  3, 157, :_reduce_49,
+  3, 157, :_reduce_46,
+  3, 157, :_reduce_47,
   1, 158, :_reduce_none,
-  3, 158, :_reduce_51,
+  3, 158, :_reduce_49,
   1, 159, :_reduce_none,
-  3, 159, :_reduce_53,
+  3, 159, :_reduce_51,
   1, 160, :_reduce_none,
-  3, 160, :_reduce_55,
+  3, 160, :_reduce_53,
   1, 161, :_reduce_none,
-  3, 161, :_reduce_57,
+  3, 161, :_reduce_55,
   1, 162, :_reduce_none,
-  5, 162, :_reduce_59,
-  1, 146, :_reduce_60,
-  1, 163, :_reduce_61,
-  3, 164, :_reduce_62,
-  1, 167, :_reduce_none,
-  2, 167, :_reduce_64,
-  1, 166, :_reduce_65,
-  3, 166, :_reduce_66,
-  1, 170, :_reduce_none,
-  3, 170, :_reduce_68,
-  1, 168, :_reduce_69,
-  1, 168, :_reduce_70,
-  1, 168, :_reduce_71,
+  3, 162, :_reduce_57,
+  1, 163, :_reduce_none,
+  5, 163, :_reduce_59,
+  1, 147, :_reduce_60,
+  1, 164, :_reduce_61,
+  3, 165, :_reduce_62,
   1, 168, :_reduce_none,
-  1, 168, :_reduce_none,
-  1, 168, :_reduce_74,
-  1, 168, :_reduce_none,
-  1, 168, :_reduce_none,
-  1, 168, :_reduce_77,
-  1, 168, :_reduce_78,
-  1, 168, :_reduce_79,
-  4, 168, :_reduce_80,
-  1, 176, :_reduce_81,
-  1, 176, :_reduce_82,
-  1, 176, :_reduce_83,
-  1, 177, :_reduce_84,
-  1, 177, :_reduce_85,
-  1, 177, :_reduce_86,
-  1, 177, :_reduce_87,
-  1, 177, :_reduce_88,
-  1, 177, :_reduce_89,
-  1, 177, :_reduce_90,
-  1, 177, :_reduce_91,
-  1, 177, :_reduce_92,
-  1, 177, :_reduce_93,
-  1, 177, :_reduce_94,
-  1, 177, :_reduce_95,
-  1, 177, :_reduce_96,
-  1, 177, :_reduce_97,
-  1, 178, :_reduce_98,
-  1, 178, :_reduce_99,
-  2, 175, :_reduce_100,
-  1, 175, :_reduce_none,
-  0, 181, :_reduce_102,
-  6, 173, :_reduce_103,
-  0, 182, :_reduce_104,
-  5, 173, :_reduce_105,
-  2, 173, :_reduce_106,
-  1, 180, :_reduce_none,
-  2, 180, :_reduce_none,
-  1, 179, :_reduce_109,
-  3, 183, :_reduce_110,
-  6, 183, :_reduce_111,
-  1, 186, :_reduce_112,
-  3, 186, :_reduce_113,
-  1, 188, :_reduce_114,
-  4, 188, :_reduce_115,
-  4, 188, :_reduce_116,
-  4, 188, :_reduce_117,
-  1, 165, :_reduce_none,
-  2, 165, :_reduce_119,
-  1, 184, :_reduce_120,
-  3, 184, :_reduce_121,
-  1, 189, :_reduce_none,
-  4, 174, :_reduce_none,
-  5, 174, :_reduce_none,
-  2, 174, :_reduce_none,
-  1, 190, :_reduce_126,
-  1, 190, :_reduce_127,
-  1, 190, :_reduce_128,
-  1, 190, :_reduce_129,
-  1, 190, :_reduce_130,
-  1, 190, :_reduce_131,
-  1, 191, :_reduce_none,
-  3, 191, :_reduce_none,
+  2, 168, :_reduce_64,
+  1, 167, :_reduce_65,
+  3, 167, :_reduce_66,
+  1, 171, :_reduce_none,
+  3, 171, :_reduce_68,
+  1, 169, :_reduce_69,
+  1, 169, :_reduce_70,
+  1, 169, :_reduce_71,
+  1, 169, :_reduce_none,
+  1, 169, :_reduce_none,
+  1, 169, :_reduce_74,
+  1, 169, :_reduce_none,
+  1, 169, :_reduce_none,
+  1, 169, :_reduce_77,
+  1, 169, :_reduce_78,
+  1, 169, :_reduce_79,
+  4, 169, :_reduce_80,
+  1, 177, :_reduce_81,
+  1, 177, :_reduce_82,
+  1, 177, :_reduce_83,
+  1, 178, :_reduce_84,
+  1, 178, :_reduce_85,
+  1, 178, :_reduce_86,
+  1, 178, :_reduce_87,
+  1, 178, :_reduce_88,
+  1, 178, :_reduce_89,
+  1, 178, :_reduce_90,
+  1, 178, :_reduce_91,
+  1, 178, :_reduce_92,
+  1, 178, :_reduce_93,
+  1, 178, :_reduce_94,
+  1, 178, :_reduce_95,
+  1, 178, :_reduce_96,
+  1, 178, :_reduce_97,
+  1, 179, :_reduce_98,
+  1, 179, :_reduce_99,
+  2, 176, :_reduce_100,
+  1, 176, :_reduce_none,
+  0, 182, :_reduce_102,
+  6, 174, :_reduce_103,
+  0, 183, :_reduce_104,
+  5, 174, :_reduce_105,
+  2, 174, :_reduce_106,
+  1, 181, :_reduce_none,
+  2, 181, :_reduce_none,
+  1, 180, :_reduce_109,
+  3, 184, :_reduce_110,
+  6, 184, :_reduce_111,
+  1, 187, :_reduce_112,
+  3, 187, :_reduce_113,
+  1, 189, :_reduce_114,
+  4, 189, :_reduce_115,
+  4, 189, :_reduce_116,
+  4, 189, :_reduce_117,
+  1, 166, :_reduce_none,
+  2, 166, :_reduce_119,
+  1, 185, :_reduce_120,
+  3, 185, :_reduce_121,
+  1, 190, :_reduce_none,
+  4, 175, :_reduce_none,
+  5, 175, :_reduce_none,
+  2, 175, :_reduce_none,
+  1, 191, :_reduce_126,
+  1, 191, :_reduce_127,
+  1, 191, :_reduce_128,
+  1, 191, :_reduce_129,
+  1, 191, :_reduce_130,
+  1, 191, :_reduce_131,
   1, 192, :_reduce_none,
   3, 192, :_reduce_none,
-  1, 169, :_reduce_136,
-  1, 169, :_reduce_137,
-  2, 171, :_reduce_138,
-  1, 171, :_reduce_none,
-  1, 194, :_reduce_140,
-  3, 194, :_reduce_141,
-  4, 194, :_reduce_142,
-  3, 194, :_reduce_143,
-  4, 194, :_reduce_144,
-  3, 194, :_reduce_145,
-  1, 193, :_reduce_146,
-  2, 193, :_reduce_147,
-  2, 193, :_reduce_148,
-  3, 193, :_reduce_149,
-  1, 195, :_reduce_none,
-  3, 195, :_reduce_none,
-  1, 196, :_reduce_152,
-  3, 196, :_reduce_153,
-  3, 197, :_reduce_154,
-  2, 197, :_reduce_155,
-  1, 197, :_reduce_156,
-  2, 197, :_reduce_157,
-  3, 198, :_reduce_158,
-  1, 199, :_reduce_159,
-  3, 199, :_reduce_160,
-  1, 200, :_reduce_161,
-  1, 200, :_reduce_162,
-  1, 200, :_reduce_163,
-  4, 200, :_reduce_164,
-  4, 200, :_reduce_165,
-  1, 200, :_reduce_166,
-  4, 200, :_reduce_167,
-  4, 200, :_reduce_168,
-  6, 200, :_reduce_169,
-  4, 200, :_reduce_170,
-  1, 200, :_reduce_171,
-  1, 151, :_reduce_none,
-  2, 151, :_reduce_173,
-  1, 201, :_reduce_none,
-  1, 201, :_reduce_none,
-  2, 201, :_reduce_none,
-  3, 202, :_reduce_177,
-  2, 202, :_reduce_178,
-  3, 202, :_reduce_179,
-  3, 202, :_reduce_180,
-  4, 202, :_reduce_181,
-  2, 202, :_reduce_182,
-  3, 202, :_reduce_none,
-  3, 202, :_reduce_184,
-  4, 202, :_reduce_185,
-  1, 172, :_reduce_186,
-  3, 172, :_reduce_187,
-  4, 172, :_reduce_188,
-  4, 172, :_reduce_189,
-  1, 203, :_reduce_190,
-  3, 203, :_reduce_191,
-  2, 142, :_reduce_none,
-  2, 142, :_reduce_none,
-  0, 142, :_reduce_none,
-  1, 204, :_reduce_none,
-  4, 204, :_reduce_196,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  2, 206, :_reduce_none,
-  2, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 206, :_reduce_none,
-  1, 207, :_reduce_211,
-  3, 207, :_reduce_212,
-  4, 219, :_reduce_213,
-  1, 219, :_reduce_214,
-  4, 219, :_reduce_215,
-  1, 219, :_reduce_216,
-  4, 219, :_reduce_217,
-  1, 219, :_reduce_218,
-  4, 219, :_reduce_219,
-  1, 219, :_reduce_220,
-  1, 219, :_reduce_221,
-  1, 219, :_reduce_222,
-  6, 219, :_reduce_223,
-  1, 220, :_reduce_224,
-  3, 220, :_reduce_225,
-  7, 224, :_reduce_226,
-  10, 224, :_reduce_227,
-  1, 221, :_reduce_228,
-  3, 221, :_reduce_229,
-  5, 225, :_reduce_230,
-  7, 225, :_reduce_231,
-  1, 227, :_reduce_232,
-  3, 227, :_reduce_233,
-  1, 209, :_reduce_234,
-  5, 217, :_reduce_235,
-  7, 217, :_reduce_236,
-  5, 216, :_reduce_237,
-  5, 216, :_reduce_238,
-  9, 218, :_reduce_239,
-  4, 208, :_reduce_240,
-  7, 208, :_reduce_241,
-  1, 229, :_reduce_none,
-  4, 229, :_reduce_none,
-  1, 228, :_reduce_244,
-  3, 228, :_reduce_245,
-  6, 210, :_reduce_246,
-  1, 230, :_reduce_247,
+  1, 193, :_reduce_none,
+  3, 193, :_reduce_none,
+  1, 170, :_reduce_136,
+  1, 170, :_reduce_137,
+  2, 172, :_reduce_138,
+  1, 172, :_reduce_none,
+  1, 195, :_reduce_140,
+  3, 195, :_reduce_141,
+  4, 195, :_reduce_142,
+  3, 195, :_reduce_143,
+  4, 195, :_reduce_144,
+  3, 195, :_reduce_145,
+  1, 194, :_reduce_146,
+  2, 194, :_reduce_147,
+  2, 194, :_reduce_148,
+  3, 194, :_reduce_149,
+  1, 196, :_reduce_none,
+  3, 196, :_reduce_none,
+  1, 197, :_reduce_152,
+  3, 197, :_reduce_153,
+  3, 198, :_reduce_154,
+  2, 198, :_reduce_155,
+  1, 198, :_reduce_156,
+  2, 198, :_reduce_157,
+  3, 199, :_reduce_158,
+  1, 200, :_reduce_159,
+  3, 200, :_reduce_160,
+  1, 201, :_reduce_161,
+  1, 201, :_reduce_162,
+  1, 201, :_reduce_163,
+  4, 201, :_reduce_164,
+  4, 201, :_reduce_165,
+  1, 201, :_reduce_166,
+  4, 201, :_reduce_167,
+  4, 201, :_reduce_168,
+  6, 201, :_reduce_169,
+  4, 201, :_reduce_170,
+  1, 201, :_reduce_171,
+  1, 152, :_reduce_none,
+  2, 152, :_reduce_173,
+  1, 202, :_reduce_none,
+  1, 202, :_reduce_none,
+  2, 202, :_reduce_none,
+  3, 203, :_reduce_177,
+  2, 203, :_reduce_178,
+  3, 203, :_reduce_179,
+  3, 203, :_reduce_180,
+  4, 203, :_reduce_181,
+  2, 203, :_reduce_182,
+  3, 203, :_reduce_none,
+  3, 203, :_reduce_184,
+  4, 203, :_reduce_185,
+  1, 173, :_reduce_186,
+  3, 173, :_reduce_187,
+  4, 173, :_reduce_188,
+  4, 173, :_reduce_189,
+  1, 204, :_reduce_190,
+  3, 204, :_reduce_191,
+  2, 143, :_reduce_none,
+  2, 143, :_reduce_none,
+  2, 143, :_reduce_none,
+  0, 143, :_reduce_none,
+  1, 205, :_reduce_none,
+  4, 205, :_reduce_197,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  2, 208, :_reduce_none,
+  2, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 208, :_reduce_none,
+  1, 209, :_reduce_212,
+  3, 209, :_reduce_213,
+  4, 221, :_reduce_214,
+  1, 221, :_reduce_215,
+  4, 221, :_reduce_216,
+  1, 221, :_reduce_217,
+  4, 221, :_reduce_218,
+  1, 221, :_reduce_219,
+  4, 221, :_reduce_220,
+  1, 221, :_reduce_221,
+  1, 221, :_reduce_222,
+  1, 221, :_reduce_223,
+  6, 221, :_reduce_224,
+  1, 222, :_reduce_225,
+  3, 222, :_reduce_226,
+  7, 226, :_reduce_227,
+  10, 226, :_reduce_228,
+  1, 223, :_reduce_229,
+  3, 223, :_reduce_230,
+  5, 227, :_reduce_231,
+  7, 227, :_reduce_232,
+  1, 229, :_reduce_233,
+  3, 229, :_reduce_234,
+  1, 211, :_reduce_235,
+  5, 219, :_reduce_236,
+  7, 219, :_reduce_237,
+  5, 218, :_reduce_238,
+  5, 218, :_reduce_239,
+  9, 220, :_reduce_240,
+  4, 210, :_reduce_241,
+  7, 210, :_reduce_242,
   1, 231, :_reduce_none,
-  2, 231, :_reduce_none,
-  1, 144, :_reduce_250,
-  2, 144, :_reduce_251,
-  3, 144, :_reduce_252,
-  6, 211, :_reduce_253,
-  1, 232, :_reduce_254,
-  0, 233, :_reduce_255,
-  2, 233, :_reduce_256,
-  3, 234, :_reduce_257,
-  6, 234, :_reduce_258,
-  6, 212, :_reduce_259,
-  1, 235, :_reduce_260,
-  1, 236, :_reduce_none,
-  2, 236, :_reduce_none,
-  1, 237, :_reduce_263,
-  4, 237, :_reduce_264,
+  4, 231, :_reduce_none,
+  1, 230, :_reduce_245,
+  3, 230, :_reduce_246,
+  6, 212, :_reduce_247,
+  1, 232, :_reduce_248,
+  1, 233, :_reduce_none,
+  2, 233, :_reduce_none,
+  1, 145, :_reduce_251,
+  2, 145, :_reduce_252,
+  3, 145, :_reduce_253,
+  6, 213, :_reduce_254,
+  1, 234, :_reduce_255,
+  0, 235, :_reduce_256,
+  2, 235, :_reduce_257,
+  3, 236, :_reduce_258,
+  6, 236, :_reduce_259,
+  6, 214, :_reduce_260,
+  1, 237, :_reduce_261,
   1, 238, :_reduce_none,
-  1, 238, :_reduce_none,
-  1, 238, :_reduce_none,
-  1, 238, :_reduce_none,
-  1, 238, :_reduce_none,
-  1, 239, :_reduce_270,
-  3, 239, :_reduce_271,
-  1, 245, :_reduce_272,
-  4, 245, :_reduce_273,
-  1, 245, :_reduce_274,
-  1, 245, :_reduce_275,
-  1, 245, :_reduce_276,
-  1, 245, :_reduce_277,
-  1, 246, :_reduce_278,
-  1, 246, :_reduce_279,
-  3, 246, :_reduce_280,
-  3, 246, :_reduce_281,
-  5, 247, :_reduce_282,
-  5, 247, :_reduce_283,
-  4, 240, :_reduce_284,
-  6, 240, :_reduce_285,
-  7, 240, :_reduce_286,
-  8, 240, :_reduce_287,
-  1, 248, :_reduce_288,
-  1, 248, :_reduce_289,
-  1, 249, :_reduce_290,
-  1, 226, :_reduce_none,
-  1, 250, :_reduce_none,
-  5, 241, :_reduce_293,
-  1, 251, :_reduce_294,
-  2, 251, :_reduce_295,
-  1, 252, :_reduce_296,
-  4, 252, :_reduce_297,
-  1, 253, :_reduce_298,
-  4, 253, :_reduce_299,
-  5, 253, :_reduce_300,
-  3, 254, :_reduce_301,
-  1, 254, :_reduce_302,
-  1, 255, :_reduce_none,
-  5, 242, :_reduce_304,
-  1, 256, :_reduce_305,
-  2, 256, :_reduce_306,
-  1, 257, :_reduce_307,
-  4, 257, :_reduce_308,
-  4, 258, :_reduce_309,
-  5, 243, :_reduce_310,
-  7, 243, :_reduce_311,
-  5, 244, :_reduce_none,
-  1, 259, :_reduce_313,
-  1, 259, :_reduce_314,
-  0, 260, :_reduce_none,
-  2, 260, :_reduce_none,
-  7, 261, :_reduce_317,
-  9, 261, :_reduce_318,
-  1, 262, :_reduce_none,
-  1, 263, :_reduce_320,
-  3, 263, :_reduce_321,
-  1, 263, :_reduce_322,
-  3, 263, :_reduce_323,
-  0, 267, :_reduce_324,
-  8, 213, :_reduce_325,
-  4, 213, :_reduce_326,
-  1, 264, :_reduce_327,
-  1, 265, :_reduce_328,
-  0, 266, :_reduce_none,
-  2, 266, :_reduce_none,
-  2, 266, :_reduce_none,
-  4, 268, :_reduce_332,
-  1, 268, :_reduce_333,
-  3, 270, :_reduce_334,
-  1, 270, :_reduce_335,
-  6, 272, :_reduce_336,
-  1, 222, :_reduce_337,
-  1, 223, :_reduce_none,
-  6, 271, :_reduce_339,
-  7, 271, :_reduce_340,
-  4, 271, :_reduce_341,
-  6, 271, :_reduce_342,
-  1, 273, :_reduce_none,
-  6, 269, :_reduce_344,
-  9, 269, :_reduce_345,
-  9, 269, :_reduce_346,
-  12, 269, :_reduce_347,
-  1, 274, :_reduce_none,
-  6, 214, :_reduce_349,
-  1, 275, :_reduce_350,
+  2, 238, :_reduce_none,
+  1, 239, :_reduce_264,
+  4, 239, :_reduce_265,
+  1, 240, :_reduce_none,
+  1, 240, :_reduce_none,
+  1, 240, :_reduce_none,
+  1, 240, :_reduce_none,
+  1, 240, :_reduce_none,
+  1, 241, :_reduce_271,
+  3, 241, :_reduce_272,
+  1, 247, :_reduce_273,
+  4, 247, :_reduce_274,
+  1, 247, :_reduce_275,
+  1, 247, :_reduce_276,
+  1, 247, :_reduce_277,
+  1, 247, :_reduce_278,
+  1, 248, :_reduce_279,
+  1, 248, :_reduce_280,
+  3, 248, :_reduce_281,
+  3, 248, :_reduce_282,
+  5, 249, :_reduce_283,
+  5, 249, :_reduce_284,
+  4, 242, :_reduce_285,
+  6, 242, :_reduce_286,
+  7, 242, :_reduce_287,
+  8, 242, :_reduce_288,
+  1, 250, :_reduce_289,
+  1, 250, :_reduce_290,
+  1, 251, :_reduce_291,
+  1, 228, :_reduce_none,
+  1, 252, :_reduce_none,
+  5, 243, :_reduce_294,
+  1, 253, :_reduce_295,
+  2, 253, :_reduce_296,
+  1, 254, :_reduce_297,
+  4, 254, :_reduce_298,
+  1, 255, :_reduce_299,
+  4, 255, :_reduce_300,
+  5, 255, :_reduce_301,
+  3, 256, :_reduce_302,
+  1, 256, :_reduce_303,
+  1, 257, :_reduce_none,
+  5, 244, :_reduce_305,
+  1, 258, :_reduce_306,
+  2, 258, :_reduce_307,
+  1, 259, :_reduce_308,
+  4, 259, :_reduce_309,
+  4, 260, :_reduce_310,
+  5, 245, :_reduce_311,
+  7, 245, :_reduce_312,
+  5, 246, :_reduce_none,
+  1, 261, :_reduce_314,
+  1, 261, :_reduce_315,
+  0, 262, :_reduce_none,
+  2, 262, :_reduce_none,
+  7, 263, :_reduce_318,
+  9, 263, :_reduce_319,
+  1, 264, :_reduce_none,
+  1, 265, :_reduce_321,
+  3, 265, :_reduce_322,
+  1, 265, :_reduce_323,
+  3, 265, :_reduce_324,
+  0, 269, :_reduce_325,
+  8, 215, :_reduce_326,
+  4, 215, :_reduce_327,
+  1, 266, :_reduce_328,
+  1, 267, :_reduce_329,
+  0, 268, :_reduce_none,
+  2, 268, :_reduce_none,
+  2, 268, :_reduce_none,
+  4, 270, :_reduce_333,
+  1, 270, :_reduce_334,
+  3, 272, :_reduce_335,
+  1, 272, :_reduce_336,
+  6, 274, :_reduce_337,
+  1, 224, :_reduce_338,
+  1, 225, :_reduce_none,
+  6, 273, :_reduce_340,
+  7, 273, :_reduce_341,
+  4, 273, :_reduce_342,
+  6, 273, :_reduce_343,
+  1, 275, :_reduce_none,
+  6, 271, :_reduce_345,
+  9, 271, :_reduce_346,
+  9, 271, :_reduce_347,
+  12, 271, :_reduce_348,
   1, 276, :_reduce_none,
-  2, 276, :_reduce_none,
-  1, 277, :_reduce_353,
-  4, 277, :_reduce_354,
+  6, 216, :_reduce_350,
+  1, 277, :_reduce_351,
   1, 278, :_reduce_none,
-  1, 278, :_reduce_none,
-  1, 278, :_reduce_none,
-  1, 278, :_reduce_none,
-  1, 279, :_reduce_359,
-  4, 284, :_reduce_360,
-  1, 284, :_reduce_361,
-  1, 284, :_reduce_362,
-  1, 284, :_reduce_363,
-  1, 284, :_reduce_364,
-  1, 280, :_reduce_365,
-  5, 281, :_reduce_366,
-  1, 285, :_reduce_367,
-  2, 285, :_reduce_368,
-  0, 289, :_reduce_369,
-  8, 282, :_reduce_370,
-  4, 282, :_reduce_371,
-  1, 286, :_reduce_372,
-  1, 287, :_reduce_373,
-  0, 288, :_reduce_none,
-  2, 288, :_reduce_none,
-  2, 288, :_reduce_none,
-  6, 290, :_reduce_377,
-  4, 290, :_reduce_378,
-  6, 283, :_reduce_379,
-  8, 283, :_reduce_380,
-  1, 292, :_reduce_none,
+  2, 278, :_reduce_none,
+  1, 279, :_reduce_354,
+  4, 279, :_reduce_355,
+  1, 280, :_reduce_none,
+  1, 280, :_reduce_none,
+  1, 280, :_reduce_none,
+  1, 280, :_reduce_none,
+  1, 281, :_reduce_360,
+  3, 281, :_reduce_361,
+  4, 286, :_reduce_362,
+  1, 286, :_reduce_363,
+  1, 286, :_reduce_364,
+  1, 286, :_reduce_365,
+  1, 286, :_reduce_366,
+  1, 282, :_reduce_367,
+  5, 283, :_reduce_368,
+  1, 287, :_reduce_369,
+  2, 287, :_reduce_370,
+  0, 291, :_reduce_371,
+  8, 284, :_reduce_372,
+  4, 284, :_reduce_373,
+  1, 288, :_reduce_374,
+  1, 289, :_reduce_375,
+  0, 290, :_reduce_none,
+  2, 290, :_reduce_none,
+  2, 290, :_reduce_none,
+  2, 290, :_reduce_none,
+  6, 292, :_reduce_380,
+  4, 292, :_reduce_381,
+  6, 285, :_reduce_382,
+  8, 285, :_reduce_383,
+  1, 294, :_reduce_none,
+  1, 295, :_reduce_none,
   1, 293, :_reduce_none,
-  1, 291, :_reduce_none,
-  9, 215, :_reduce_384,
-  6, 215, :_reduce_385,
-  1, 294, :_reduce_none,
-  3, 294, :_reduce_none,
-  6, 297, :_reduce_388,
-  3, 297, :_reduce_389,
-  6, 297, :_reduce_390,
-  3, 297, :_reduce_391,
-  8, 297, :_reduce_392,
-  4, 297, :_reduce_393,
-  1, 297, :_reduce_394,
-  1, 297, :_reduce_395,
-  6, 297, :_reduce_396,
-  4, 297, :_reduce_397,
-  1, 295, :_reduce_398,
-  0, 296, :_reduce_none,
-  2, 296, :_reduce_none,
-  2, 296, :_reduce_none,
-  1, 299, :_reduce_none,
-  4, 299, :_reduce_403,
-  1, 298, :_reduce_404,
-  1, 185, :_reduce_405,
-  1, 187, :_reduce_406,
-  4, 205, :_reduce_none,
-  2, 300, :_reduce_none,
-  2, 300, :_reduce_none,
-  0, 300, :_reduce_none,
-  14, 301, :_reduce_411,
-  2, 303, :_reduce_412,
-  0, 303, :_reduce_413,
-  6, 304, :_reduce_414,
-  13, 302, :_reduce_415,
-  5, 305, :_reduce_416,
-  0, 305, :_reduce_417 ]
-
-racc_reduce_n = 418
-
-racc_shift_n = 870
+  9, 217, :_reduce_387,
+  6, 217, :_reduce_388,
+  1, 296, :_reduce_none,
+  3, 296, :_reduce_none,
+  6, 299, :_reduce_391,
+  3, 299, :_reduce_392,
+  6, 299, :_reduce_393,
+  3, 299, :_reduce_394,
+  8, 299, :_reduce_395,
+  4, 299, :_reduce_396,
+  1, 299, :_reduce_397,
+  1, 299, :_reduce_398,
+  6, 299, :_reduce_399,
+  4, 299, :_reduce_400,
+  1, 297, :_reduce_401,
+  0, 298, :_reduce_none,
+  2, 298, :_reduce_none,
+  2, 298, :_reduce_none,
+  1, 301, :_reduce_none,
+  4, 301, :_reduce_406,
+  1, 300, :_reduce_407,
+  1, 186, :_reduce_408,
+  1, 188, :_reduce_409,
+  4, 206, :_reduce_none,
+  2, 302, :_reduce_none,
+  2, 302, :_reduce_none,
+  0, 302, :_reduce_none,
+  14, 303, :_reduce_414,
+  2, 305, :_reduce_415,
+  0, 305, :_reduce_416,
+  6, 306, :_reduce_417,
+  13, 304, :_reduce_418,
+  5, 307, :_reduce_419,
+  0, 307, :_reduce_420,
+  5, 207, :_reduce_421,
+  3, 309, :_reduce_422,
+  3, 310, :_reduce_423,
+  5, 310, :_reduce_424,
+  1, 311, :_reduce_none,
+  1, 311, :_reduce_none,
+  1, 311, :_reduce_none,
+  1, 311, :_reduce_none,
+  1, 311, :_reduce_429,
+  1, 311, :_reduce_430,
+  3, 313, :_reduce_431,
+  2, 313, :_reduce_432,
+  1, 314, :_reduce_433,
+  3, 314, :_reduce_434,
+  1, 308, :_reduce_435,
+  1, 312, :_reduce_436,
+  1, 312, :_reduce_437,
+  2, 312, :_reduce_438,
+  2, 312, :_reduce_439,
+  2, 312, :_reduce_440,
+  2, 312, :_reduce_441 ]
+
+racc_reduce_n = 442
+
+racc_shift_n = 911
 
 racc_token_table = {
@@ -1848,7 +1943,8 @@
   :__LOCATION_INFORMATION__ => 137,
   :__CELL__ => 138,
-  :__JOIN__ => 139 }
-
-racc_nt_base = 140
+  :__JOIN__ => 139,
+  :TOOL_INFO => 140 }
+
+racc_nt_base = 141
 
 racc_use_result_var = true
@@ -2011,4 +2107,5 @@
   "__CELL__",
   "__JOIN__",
+  "TOOL_INFO",
   "$start",
   "all",
@@ -2077,4 +2174,5 @@
   "specified_statement",
   "location_information",
+  "tool_info",
   "statement",
   "statement_specifier_list",
@@ -2089,5 +2187,5 @@
   "import",
   "import_C",
-  "signature_plugin",
+  "generate_statement",
   "statement_specifier",
   "alloc_list",
@@ -2176,5 +2274,12 @@
   "port_location_list",
   "port_location",
-  "bar_list" ]
+  "bar_list",
+  "JSON_string",
+  "JSON_object",
+  "JSON_property_list",
+  "JSON_value",
+  "JSON_number",
+  "JSON_array",
+  "JSON_array_list" ]
 
 Racc_debug_parser = false
@@ -2838,5 +2943,7 @@
 module_eval(<<'.,.,', 'bnf.y.rb', 379)
   def _reduce_104(val, _values, result)
-    			result = StructType.new()
+    			# tag が無い場合、内部名を与える
+			result = StructType.new( :"TAG__#{@@no_struct_tag_num}__" )
+			@@no_struct_tag_num += 1
 			StructType.set_define( true )
 		
@@ -2845,5 +2952,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 384)
+module_eval(<<'.,.,', 'bnf.y.rb', 386)
   def _reduce_105(val, _values, result)
     			StructType.end_of_parse
@@ -2854,5 +2961,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 389)
+module_eval(<<'.,.,', 'bnf.y.rb', 391)
   def _reduce_106(val, _values, result)
     			StructType.set_define( false )
@@ -2868,5 +2975,5 @@
 # reduce 108 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 400)
+module_eval(<<'.,.,', 'bnf.y.rb', 402)
   def _reduce_109(val, _values, result)
      result = StructType.new( val[0].val ) 
@@ -2875,5 +2982,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 406)
+module_eval(<<'.,.,', 'bnf.y.rb', 408)
   def _reduce_110(val, _values, result)
     			val[1].each { |i|	# i: Decl
@@ -2889,5 +2996,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 416)
+module_eval(<<'.,.,', 'bnf.y.rb', 418)
   def _reduce_111(val, _values, result)
     			val[4].each { |i|	# i: Decl
@@ -2904,5 +3011,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 427)
+module_eval(<<'.,.,', 'bnf.y.rb', 429)
   def _reduce_112(val, _values, result)
      result = [ val[0] ] 
@@ -2911,5 +3018,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 428)
+module_eval(<<'.,.,', 'bnf.y.rb', 430)
   def _reduce_113(val, _values, result)
      result <<  val[2] 
@@ -2918,5 +3025,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 431)
+module_eval(<<'.,.,', 'bnf.y.rb', 433)
   def _reduce_114(val, _values, result)
      result = [:STRING,-1] 
@@ -2925,5 +3032,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 432)
+module_eval(<<'.,.,', 'bnf.y.rb', 434)
   def _reduce_115(val, _values, result)
      result = [:STRING,val[2]] 
@@ -2932,5 +3039,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 433)
+module_eval(<<'.,.,', 'bnf.y.rb', 435)
   def _reduce_116(val, _values, result)
      result = [:SIZE_IS,val[2]] 
@@ -2939,5 +3046,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 434)
+module_eval(<<'.,.,', 'bnf.y.rb', 436)
   def _reduce_117(val, _values, result)
      result = [:COUNT_IS,val[2]] 
@@ -2948,5 +3055,5 @@
 # reduce 118 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 445)
+module_eval(<<'.,.,', 'bnf.y.rb', 447)
   def _reduce_119(val, _values, result)
     			val[1].set_qualifier( val[0] )
@@ -2957,5 +3064,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 454)
+module_eval(<<'.,.,', 'bnf.y.rb', 456)
   def _reduce_120(val, _values, result)
      result = [ val[0] ] 
@@ -2964,5 +3071,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 456)
+module_eval(<<'.,.,', 'bnf.y.rb', 458)
   def _reduce_121(val, _values, result)
      result << val[2] 
@@ -2979,5 +3086,5 @@
 # reduce 125 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 469)
+module_eval(<<'.,.,', 'bnf.y.rb', 471)
   def _reduce_126(val, _values, result)
      result = EnumType.new( -1 ) 
@@ -2986,5 +3093,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 470)
+module_eval(<<'.,.,', 'bnf.y.rb', 472)
   def _reduce_127(val, _values, result)
      result = EnumType.new( 8 ) 
@@ -2993,5 +3100,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 471)
+module_eval(<<'.,.,', 'bnf.y.rb', 473)
   def _reduce_128(val, _values, result)
      result = EnumType.new( 16 ) 
@@ -3000,5 +3107,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 472)
+module_eval(<<'.,.,', 'bnf.y.rb', 474)
   def _reduce_129(val, _values, result)
      result = EnumType.new( 32 ) 
@@ -3007,5 +3114,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 473)
+module_eval(<<'.,.,', 'bnf.y.rb', 475)
   def _reduce_130(val, _values, result)
      result = EnumType.new( 64 ) 
@@ -3014,5 +3121,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 474)
+module_eval(<<'.,.,', 'bnf.y.rb', 476)
   def _reduce_131(val, _values, result)
      result = EnumType.new( 128 ) 
@@ -3029,5 +3136,5 @@
 # reduce 135 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 485)
+module_eval(<<'.,.,', 'bnf.y.rb', 487)
   def _reduce_136(val, _values, result)
      result = :CONST 
@@ -3036,5 +3143,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 486)
+module_eval(<<'.,.,', 'bnf.y.rb', 488)
   def _reduce_137(val, _values, result)
      result = :VOLATILE 
@@ -3043,5 +3150,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 491)
+module_eval(<<'.,.,', 'bnf.y.rb', 493)
   def _reduce_138(val, _values, result)
     			val[1].set_type( val[0] )
@@ -3054,5 +3161,5 @@
 # reduce 139 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 498)
+module_eval(<<'.,.,', 'bnf.y.rb', 500)
   def _reduce_140(val, _values, result)
      result = Decl.new( val[0].val ) 
@@ -3061,5 +3168,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 500)
+module_eval(<<'.,.,', 'bnf.y.rb', 502)
   def _reduce_141(val, _values, result)
      result = val[1] 
@@ -3068,5 +3175,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 503)
+module_eval(<<'.,.,', 'bnf.y.rb', 505)
   def _reduce_142(val, _values, result)
     			val[0].set_type( ArrayType.new( val[2] ) )
@@ -3077,5 +3184,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 508)
+module_eval(<<'.,.,', 'bnf.y.rb', 510)
   def _reduce_143(val, _values, result)
     			val[0].set_type( ArrayType.new )
@@ -3086,5 +3193,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 513)
+module_eval(<<'.,.,', 'bnf.y.rb', 515)
   def _reduce_144(val, _values, result)
     			val[0].set_type( FuncType.new( val[2] ) )
@@ -3095,5 +3202,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 519)
+module_eval(<<'.,.,', 'bnf.y.rb', 521)
   def _reduce_145(val, _values, result)
     			Generator.warning( "W5010 need 'void' for no parameter"  )
@@ -3105,5 +3212,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 526)
+module_eval(<<'.,.,', 'bnf.y.rb', 528)
   def _reduce_146(val, _values, result)
      result = PtrType.new 
@@ -3112,5 +3219,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 529)
+module_eval(<<'.,.,', 'bnf.y.rb', 531)
   def _reduce_147(val, _values, result)
     			result = PtrType.new
@@ -3121,5 +3228,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 534)
+module_eval(<<'.,.,', 'bnf.y.rb', 536)
   def _reduce_148(val, _values, result)
     			val[1].set_type(PtrType.new)
@@ -3130,5 +3237,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 539)
+module_eval(<<'.,.,', 'bnf.y.rb', 541)
   def _reduce_149(val, _values, result)
     			ptrtype = PtrType.new
@@ -3145,5 +3252,5 @@
 # reduce 151 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 553)
+module_eval(<<'.,.,', 'bnf.y.rb', 555)
   def _reduce_152(val, _values, result)
      result = ParamList.new( val[0] ) 
@@ -3152,5 +3259,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 556)
+module_eval(<<'.,.,', 'bnf.y.rb', 558)
   def _reduce_153(val, _values, result)
     			val[0].add_param( val[2] )
@@ -3161,5 +3268,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 566)
+module_eval(<<'.,.,', 'bnf.y.rb', 568)
   def _reduce_154(val, _values, result)
     			val[2].set_kind( :PARAMETER )
@@ -3172,5 +3279,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 575)
+module_eval(<<'.,.,', 'bnf.y.rb', 577)
   def _reduce_155(val, _values, result)
     			Generator.error( "G1001 need specifier for \'$1\'" , val[1].get_name )
@@ -3181,5 +3288,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 580)
+module_eval(<<'.,.,', 'bnf.y.rb', 582)
   def _reduce_156(val, _values, result)
     			unless val[0].instance_of?( VoidType ) then
@@ -3192,5 +3299,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 588)
+module_eval(<<'.,.,', 'bnf.y.rb', 590)
   def _reduce_157(val, _values, result)
     			unless val[1].instance_of?( VoidType ) then
@@ -3203,5 +3310,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 595)
+module_eval(<<'.,.,', 'bnf.y.rb', 597)
   def _reduce_158(val, _values, result)
      result = val[1] 
@@ -3210,5 +3317,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 599)
+module_eval(<<'.,.,', 'bnf.y.rb', 601)
   def _reduce_159(val, _values, result)
      result = val[0] 
@@ -3217,5 +3324,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 601)
+module_eval(<<'.,.,', 'bnf.y.rb', 603)
   def _reduce_160(val, _values, result)
      result = result + val[2] 
@@ -3224,5 +3331,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 604)
+module_eval(<<'.,.,', 'bnf.y.rb', 606)
   def _reduce_161(val, _values, result)
      result = [ [:IN]  ] 
@@ -3231,5 +3338,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 605)
+module_eval(<<'.,.,', 'bnf.y.rb', 607)
   def _reduce_162(val, _values, result)
      result = [ [:OUT] ] 
@@ -3238,5 +3345,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 606)
+module_eval(<<'.,.,', 'bnf.y.rb', 608)
   def _reduce_163(val, _values, result)
      result = [ [:INOUT] ] 
@@ -3245,5 +3352,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 607)
+module_eval(<<'.,.,', 'bnf.y.rb', 609)
   def _reduce_164(val, _values, result)
      result = [ [:SEND,   val[2]] ] 
@@ -3252,5 +3359,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 608)
+module_eval(<<'.,.,', 'bnf.y.rb', 610)
   def _reduce_165(val, _values, result)
      result = [ [:RECEIVE,val[2]] ] 
@@ -3259,5 +3366,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 609)
+module_eval(<<'.,.,', 'bnf.y.rb', 611)
   def _reduce_166(val, _values, result)
      result = [ [:STRING,nil] ] 
@@ -3266,5 +3373,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 610)
+module_eval(<<'.,.,', 'bnf.y.rb', 612)
   def _reduce_167(val, _values, result)
      result = [ [:STRING,  val[2]] ] 
@@ -3273,5 +3380,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 611)
+module_eval(<<'.,.,', 'bnf.y.rb', 613)
   def _reduce_168(val, _values, result)
      result = [ [:SIZE_IS, val[2]] ] 
@@ -3280,5 +3387,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 614)
+module_eval(<<'.,.,', 'bnf.y.rb', 616)
   def _reduce_169(val, _values, result)
     			result = [ [:SIZE_IS,val[2]], [:MAX_IS, val[4]] ]
@@ -3288,5 +3395,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 616)
+module_eval(<<'.,.,', 'bnf.y.rb', 618)
   def _reduce_170(val, _values, result)
      result = [ [:COUNT_IS,val[2]] ] 
@@ -3295,5 +3402,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 617)
+module_eval(<<'.,.,', 'bnf.y.rb', 619)
   def _reduce_171(val, _values, result)
      result = [ [:NULLABLE] ] 
@@ -3304,5 +3411,5 @@
 # reduce 172 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 623)
+module_eval(<<'.,.,', 'bnf.y.rb', 625)
   def _reduce_173(val, _values, result)
     			if val[1] then
@@ -3324,5 +3431,5 @@
 # reduce 176 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 640)
+module_eval(<<'.,.,', 'bnf.y.rb', 642)
   def _reduce_177(val, _values, result)
      result = val[1] 
@@ -3331,5 +3438,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 643)
+module_eval(<<'.,.,', 'bnf.y.rb', 645)
   def _reduce_178(val, _values, result)
     			Generator.error( "G1004 impossible array type"  )
@@ -3340,5 +3447,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 648)
+module_eval(<<'.,.,', 'bnf.y.rb', 650)
   def _reduce_179(val, _values, result)
     			Generator.error( "G1005 impossible array type"  )
@@ -3349,5 +3456,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 653)
+module_eval(<<'.,.,', 'bnf.y.rb', 655)
   def _reduce_180(val, _values, result)
     			Generator.error( "G1006 impossible array type"  )
@@ -3358,5 +3465,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 658)
+module_eval(<<'.,.,', 'bnf.y.rb', 660)
   def _reduce_181(val, _values, result)
     			Generator.error( "G1007 impossible array type"  )
@@ -3367,5 +3474,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 663)
+module_eval(<<'.,.,', 'bnf.y.rb', 665)
   def _reduce_182(val, _values, result)
     			Generator.error( "G1008 impossible function type"  )
@@ -3378,5 +3485,5 @@
 # reduce 183 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 669)
+module_eval(<<'.,.,', 'bnf.y.rb', 671)
   def _reduce_184(val, _values, result)
     			Generator.warning( "W5011 need 'void' for no parameter"  )
@@ -3388,5 +3495,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 675)
+module_eval(<<'.,.,', 'bnf.y.rb', 677)
   def _reduce_185(val, _values, result)
     			val[0].set_type( FuncType.new( val[2] ) )
@@ -3397,5 +3504,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 682)
+module_eval(<<'.,.,', 'bnf.y.rb', 684)
   def _reduce_186(val, _values, result)
      result = val[0] 
@@ -3404,5 +3511,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 684)
+module_eval(<<'.,.,', 'bnf.y.rb', 686)
   def _reduce_187(val, _values, result)
      result = val[1] 
@@ -3411,5 +3518,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 686)
+module_eval(<<'.,.,', 'bnf.y.rb', 688)
   def _reduce_188(val, _values, result)
      result = val[1] 
@@ -3418,5 +3525,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 689)
+module_eval(<<'.,.,', 'bnf.y.rb', 691)
   def _reduce_189(val, _values, result)
      result = C_EXP.new( val[2] ) 
@@ -3425,5 +3532,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 694)
+module_eval(<<'.,.,', 'bnf.y.rb', 696)
   def _reduce_190(val, _values, result)
     			result = [ val[0] ]
@@ -3433,5 +3540,5 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 698)
+module_eval(<<'.,.,', 'bnf.y.rb', 700)
   def _reduce_191(val, _values, result)
     			val[0] << val[2]
@@ -3450,6 +3557,8 @@
 # reduce 195 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 716)
-  def _reduce_196(val, _values, result)
+# reduce 196 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 719)
+  def _reduce_197(val, _values, result)
     			obj = val[3]
 			if obj.kind_of?( Cell ) || obj.kind_of?( Signature ) || obj.kind_of?( Celltype ) || obj.kind_of?( CompositeCelltype )then
@@ -3464,6 +3573,4 @@
 .,.,
 
-# reduce 197 omitted
-
 # reduce 198 omitted
 
@@ -3492,6 +3599,8 @@
 # reduce 210 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 745)
-  def _reduce_211(val, _values, result)
+# reduce 211 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 748)
+  def _reduce_212(val, _values, result)
      Generator.add_statement_specifier val[0]	
     result
@@ -3499,6 +3608,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 747)
-  def _reduce_212(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 750)
+  def _reduce_213(val, _values, result)
      Generator.add_statement_specifier val[2] 
     result
@@ -3506,6 +3615,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 751)
-  def _reduce_213(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 754)
+  def _reduce_214(val, _values, result)
      result = [ :ALLOCATOR, val[2] ] 
     result
@@ -3513,6 +3622,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 753)
-  def _reduce_214(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 756)
+  def _reduce_215(val, _values, result)
      result = [ :CALLBACK ] 
     result
@@ -3520,6 +3629,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 755)
-  def _reduce_215(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 758)
+  def _reduce_216(val, _values, result)
      result = [ :CONTEXT, val[2].val ] 
     result
@@ -3527,6 +3636,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 757)
-  def _reduce_216(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 760)
+  def _reduce_217(val, _values, result)
      result = [ :DEVIATE ] 
     result
@@ -3534,6 +3643,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 759)
-  def _reduce_217(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 762)
+  def _reduce_218(val, _values, result)
      result = [ :ID, val[2] ] 
     result
@@ -3541,6 +3650,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 761)
-  def _reduce_218(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 764)
+  def _reduce_219(val, _values, result)
      result = [ :PROTOTYPE ] 
     result
@@ -3548,6 +3657,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 763)
-  def _reduce_219(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 766)
+  def _reduce_220(val, _values, result)
      result = [ :RESTRICT, val[2] ] 
     result
@@ -3555,6 +3664,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 764)
-  def _reduce_220(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 767)
+  def _reduce_221(val, _values, result)
      result = [:SINGLETON] 
     result
@@ -3562,6 +3671,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 765)
-  def _reduce_221(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 768)
+  def _reduce_222(val, _values, result)
      result = [:IDX_IS_ID] 
     result
@@ -3569,14 +3678,7 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 766)
-  def _reduce_222(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 769)
+  def _reduce_223(val, _values, result)
      result = [:ACTIVE] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 768)
-  def _reduce_223(val, _values, result)
-     result = [:GENERATE, val[2].val, val[4].val] 
     result
   end
@@ -3585,4 +3687,11 @@
 module_eval(<<'.,.,', 'bnf.y.rb', 771)
   def _reduce_224(val, _values, result)
+     result = [:GENERATE, val[2].val, val[4].val] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 774)
+  def _reduce_225(val, _values, result)
      result = [ val[0] ] 
     result
@@ -3590,6 +3699,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 772)
-  def _reduce_225(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 775)
+  def _reduce_226(val, _values, result)
      result << val[2] 
     result
@@ -3597,6 +3706,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 776)
-  def _reduce_226(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 779)
+  def _reduce_227(val, _values, result)
       result = [ :NORMAL_ALLOC, val[0], nil, val[2], val[4], val[6] ] 
     result
@@ -3604,6 +3713,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 778)
-  def _reduce_227(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 781)
+  def _reduce_228(val, _values, result)
       result = [ :NORMAL_ALLOC, val[0], val[2], val[5], val[7], val[9] ] 
     result
@@ -3611,6 +3720,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 787)
-  def _reduce_228(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 790)
+  def _reduce_229(val, _values, result)
     	result = [val[0]]		
     result
@@ -3618,6 +3727,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 789)
-  def _reduce_229(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 792)
+  def _reduce_230(val, _values, result)
     	result << val[2]		
     result
@@ -3625,6 +3734,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 793)
-  def _reduce_230(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 796)
+  def _reduce_231(val, _values, result)
     	result = [ val[0].val, nil, val[3] ]		
     result
@@ -3632,6 +3741,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 795)
-  def _reduce_231(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 798)
+  def _reduce_232(val, _values, result)
     	result = [ val[0].val, val[2].val, val[5] ]		
     result
@@ -3639,20 +3748,20 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 799)
-  def _reduce_232(val, _values, result)
-    	result = [val[0].val]		
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 801)
+module_eval(<<'.,.,', 'bnf.y.rb', 802)
   def _reduce_233(val, _values, result)
-    	result << val[2].val		
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 806)
+    	result = [val[0]]		
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 804)
   def _reduce_234(val, _values, result)
+    	result << val[2]		
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 809)
+  def _reduce_235(val, _values, result)
     			val[0].each { |decl|
 				decl.set_kind( :CONSTANT )
@@ -3665,6 +3774,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 816)
-  def _reduce_235(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 819)
+  def _reduce_236(val, _values, result)
     			@@import_C = true
 			Import_C.new( val[2] )
@@ -3675,6 +3784,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 822)
-  def _reduce_236(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 825)
+  def _reduce_237(val, _values, result)
     			@@import_C = true
 			Import_C.new( val[2], val[4] )
@@ -3685,6 +3794,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 829)
-  def _reduce_237(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 832)
+  def _reduce_238(val, _values, result)
      Import.new( val[2] ) 
     result
@@ -3692,6 +3801,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 831)
-  def _reduce_238(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 834)
+  def _reduce_239(val, _values, result)
      Import.new( val[2], true ) 
     result
@@ -3699,6 +3808,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 836)
-  def _reduce_239(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 839)
+  def _reduce_240(val, _values, result)
      Generate.new( val[2].val, val[4], val[6] ) 
     result
@@ -3706,6 +3815,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 841)
-  def _reduce_240(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 844)
+  def _reduce_241(val, _values, result)
     			val[2].each{ |i|       # i:Decl
 				i.set_kind( :TYPEDEF )
@@ -3720,6 +3829,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 851)
-  def _reduce_241(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 854)
+  def _reduce_242(val, _values, result)
     			val[5].each{ |i|       # i:Decl
 				i.set_kind( :TYPEDEF )
@@ -3734,10 +3843,10 @@
 .,.,
 
-# reduce 242 omitted
-
 # reduce 243 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 868)
-  def _reduce_244(val, _values, result)
+# reduce 244 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 871)
+  def _reduce_245(val, _values, result)
      result = [ val[0] ] 
     result
@@ -3745,6 +3854,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 870)
-  def _reduce_245(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 873)
+  def _reduce_246(val, _values, result)
      result << val[2] 
     result
@@ -3752,6 +3861,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 874)
-  def _reduce_246(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 877)
+  def _reduce_247(val, _values, result)
     val[1].end_of_parse
     result
@@ -3759,6 +3868,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 878)
-  def _reduce_247(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 881)
+  def _reduce_248(val, _values, result)
     result = Namespace.new(val[0].val)
     result
@@ -3766,10 +3875,10 @@
 .,.,
 
-# reduce 248 omitted
-
 # reduce 249 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 886)
-  def _reduce_250(val, _values, result)
+# reduce 250 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 889)
+  def _reduce_251(val, _values, result)
      result = NamespacePath.new( val[0].val, false ) 
     result
@@ -3777,6 +3886,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 887)
-  def _reduce_251(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 890)
+  def _reduce_252(val, _values, result)
      result = NamespacePath.new( val[1].val, true ) 
     result
@@ -3784,6 +3893,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 889)
-  def _reduce_252(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 892)
+  def _reduce_253(val, _values, result)
      result = val[0].append!( val[2].val ) 
     result
@@ -3791,6 +3900,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 894)
-  def _reduce_253(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 897)
+  def _reduce_254(val, _values, result)
      result = val[1].end_of_parse( val[3] ) 
     result
@@ -3798,6 +3907,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 898)
-  def _reduce_254(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 901)
+  def _reduce_255(val, _values, result)
     result = Signature.new( val[0].val ) 
     result
@@ -3805,6 +3914,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 904)
-  def _reduce_255(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 907)
+  def _reduce_256(val, _values, result)
      result = NamedList.new( nil, "function" ) 
     result
@@ -3812,6 +3921,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 906)
-  def _reduce_256(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 909)
+  def _reduce_257(val, _values, result)
      result = val[0].add_item( val[1] ) 
     result
@@ -3819,6 +3928,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 911)
-  def _reduce_257(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 914)
+  def _reduce_258(val, _values, result)
     			# val[1]: Decl
 			if val[1].is_function? then
@@ -3836,6 +3945,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 924)
-  def _reduce_258(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 927)
+  def _reduce_259(val, _values, result)
     			if val[4].is_function? then
 				result = FuncHead.new( val[4], val[3], true )
@@ -3849,6 +3958,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 937)
-  def _reduce_259(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 940)
+  def _reduce_260(val, _values, result)
     			val[1].end_of_parse
 			result = val[1]
@@ -3858,6 +3967,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 943)
-  def _reduce_260(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 946)
+  def _reduce_261(val, _values, result)
      result = Celltype.new(val[0].val) 
     result
@@ -3865,10 +3974,10 @@
 .,.,
 
-# reduce 261 omitted
-
 # reduce 262 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 952)
-  def _reduce_263(val, _values, result)
+# reduce 263 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 955)
+  def _reduce_264(val, _values, result)
     			if val[0].kind_of? Port then
 				Celltype.new_port( val[0] )
@@ -3879,6 +3988,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 958)
-  def _reduce_264(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 961)
+  def _reduce_265(val, _values, result)
     			if val[3].kind_of? Port then
 				val[3].set_specifier val[1]  # 設定順序あり
@@ -3893,6 +4002,4 @@
 .,.,
 
-# reduce 265 omitted
-
 # reduce 266 omitted
 
@@ -3903,14 +4010,9 @@
 # reduce 269 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 977)
-  def _reduce_270(val, _values, result)
+# reduce 270 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 980)
+  def _reduce_271(val, _values, result)
      result = [ val[0] ] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 979)
-  def _reduce_271(val, _values, result)
-     result << val[2] 
     result
   end
@@ -3919,4 +4021,11 @@
 module_eval(<<'.,.,', 'bnf.y.rb', 982)
   def _reduce_272(val, _values, result)
+     result << val[2] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 985)
+  def _reduce_273(val, _values, result)
      result = [ :INLINE ] 
     result
@@ -3924,6 +4033,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 983)
-  def _reduce_273(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 986)
+  def _reduce_274(val, _values, result)
      result = [ :ALLOCATOR, val[2] ] 
     result
@@ -3931,6 +4040,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 984)
-  def _reduce_274(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 987)
+  def _reduce_275(val, _values, result)
      result = [ :OPTIONAL ] 
     result
@@ -3938,6 +4047,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 985)
-  def _reduce_275(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 988)
+  def _reduce_276(val, _values, result)
      result = [ :REF_DESC ] 
     result
@@ -3945,14 +4054,7 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 986)
-  def _reduce_276(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 989)
+  def _reduce_277(val, _values, result)
      result = [ :DYNAMIC ] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 987)
-  def _reduce_277(val, _values, result)
-     result = [ :OMIT ] 
     result
   end
@@ -3961,10 +4063,10 @@
 module_eval(<<'.,.,', 'bnf.y.rb', 990)
   def _reduce_278(val, _values, result)
-     result = [ val[0] ] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 991)
+     result = [ :OMIT ] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 993)
   def _reduce_279(val, _values, result)
      result = [ val[0] ] 
@@ -3973,12 +4075,12 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 992)
+module_eval(<<'.,.,', 'bnf.y.rb', 994)
   def _reduce_280(val, _values, result)
-     result << val[2] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 993)
+     result = [ val[0] ] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 995)
   def _reduce_281(val, _values, result)
      result << val[2] 
@@ -3987,6 +4089,13 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 997)
+module_eval(<<'.,.,', 'bnf.y.rb', 996)
   def _reduce_282(val, _values, result)
+     result << val[2] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1000)
+  def _reduce_283(val, _values, result)
       result = [ :INTERNAL_ALLOC, val[0].val, val[2].val, val[4] ] 
     result
@@ -3994,6 +4103,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 999)
-  def _reduce_283(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1002)
+  def _reduce_284(val, _values, result)
       result = [ :RELAY_ALLOC, val[0].val, val[2].val, val[4] ] 
     result
@@ -4001,6 +4110,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1005)
-  def _reduce_284(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1008)
+  def _reduce_285(val, _values, result)
      result = Port.new( val[2].val, val[1], val[0] ) 
     result
@@ -4008,6 +4117,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1007)
-  def _reduce_285(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1010)
+  def _reduce_286(val, _values, result)
      result = Port.new( val[2].val, val[1], val[0], "[]" ) 
     result
@@ -4015,14 +4124,7 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1009)
-  def _reduce_286(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1012)
+  def _reduce_287(val, _values, result)
      result = Port.new(val[2].val, val[1], val[0], val[4]) 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1011)
-  def _reduce_287(val, _values, result)
-     result = Port.new( val[2].val, val[1], val[0], nil, val[4], val[ 6 ].val ) 
     result
   end
@@ -4031,4 +4133,11 @@
 module_eval(<<'.,.,', 'bnf.y.rb', 1014)
   def _reduce_288(val, _values, result)
+     result = Port.new( val[2].val, val[1], val[0], nil, val[4], val[ 6 ].val ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1017)
+  def _reduce_289(val, _values, result)
      result = :CALL 
     result
@@ -4036,6 +4145,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1015)
-  def _reduce_289(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1018)
+  def _reduce_290(val, _values, result)
      result = :ENTRY 
     result
@@ -4043,6 +4152,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1019)
-  def _reduce_290(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1022)
+  def _reduce_291(val, _values, result)
      result = val[0] 
     result
@@ -4050,10 +4159,10 @@
 .,.,
 
-# reduce 291 omitted
-
 # reduce 292 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1031)
-  def _reduce_293(val, _values, result)
+# reduce 293 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1034)
+  def _reduce_294(val, _values, result)
      result = nil 
     result
@@ -4061,6 +4170,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1035)
-  def _reduce_294(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1038)
+  def _reduce_295(val, _values, result)
      Celltype.new_attribute( val[0] ) 
     result
@@ -4068,6 +4177,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1037)
-  def _reduce_295(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1040)
+  def _reduce_296(val, _values, result)
      Celltype.new_attribute( val[1] ) 
     result
@@ -4075,6 +4184,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1043)
-  def _reduce_296(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1046)
+  def _reduce_297(val, _values, result)
     			val[0].each{ |i|       # i:Decl
 				i.set_kind( :ATTRIBUTE )
@@ -4087,6 +4196,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1051)
-  def _reduce_297(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1054)
+  def _reduce_298(val, _values, result)
     			val[3].each{ |i|       # i:Decl
 				i.set_kind( :ATTRIBUTE )   # 設定順序あり
@@ -4100,6 +4209,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1060)
-  def _reduce_298(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1063)
+  def _reduce_299(val, _values, result)
      result = [:OMIT] 
     result
@@ -4107,14 +4216,7 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1061)
-  def _reduce_299(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1064)
+  def _reduce_300(val, _values, result)
      result = [:SIZE_IS,val[2]] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1062)
-  def _reduce_300(val, _values, result)
-      result = [:CHOICE,val[3]] 
     result
   end
@@ -4123,4 +4225,11 @@
 module_eval(<<'.,.,', 'bnf.y.rb', 1065)
   def _reduce_301(val, _values, result)
+      result = [:CHOICE,val[3]] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1068)
+  def _reduce_302(val, _values, result)
       result << val[2] 
     result
@@ -4128,6 +4237,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1066)
-  def _reduce_302(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1069)
+  def _reduce_303(val, _values, result)
       result = [ val[0] ] 
     result
@@ -4135,8 +4244,8 @@
 .,.,
 
-# reduce 303 omitted
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1074)
-  def _reduce_304(val, _values, result)
+# reduce 304 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1077)
+  def _reduce_305(val, _values, result)
      result = nil 
     result
@@ -4144,6 +4253,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1078)
-  def _reduce_305(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1081)
+  def _reduce_306(val, _values, result)
      Celltype.new_var( val[0] ) 
     result
@@ -4151,6 +4260,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1080)
-  def _reduce_306(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1083)
+  def _reduce_307(val, _values, result)
      Celltype.new_var( val[1] ) 
     result
@@ -4158,6 +4267,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1085)
-  def _reduce_307(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1088)
+  def _reduce_308(val, _values, result)
     			val[0].each{ |i|       # i:Decl
 				i.set_kind( :VAR )
@@ -4169,6 +4278,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1092)
-  def _reduce_308(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1095)
+  def _reduce_309(val, _values, result)
     			val[3].each{ |i|       # i:Decl
 				i.set_kind( :VAR )   # 設定順序あり
@@ -4182,6 +4291,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1101)
-  def _reduce_309(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1104)
+  def _reduce_310(val, _values, result)
      result = [:SIZE_IS,val[2]] 
     result
@@ -4189,6 +4298,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1107)
-  def _reduce_310(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1110)
+  def _reduce_311(val, _values, result)
     			Celltype.new_require( val[1], val[3] )
 		
@@ -4197,6 +4306,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1111)
-  def _reduce_311(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1114)
+  def _reduce_312(val, _values, result)
     			Celltype.new_require( val[3], val[5], val[1].val )
 		
@@ -4205,8 +4314,8 @@
 .,.,
 
-# reduce 312 omitted
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1119)
-  def _reduce_313(val, _values, result)
+# reduce 313 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1122)
+  def _reduce_314(val, _values, result)
      Factory.set_f_celltype( false ) 
     result
@@ -4214,6 +4323,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1120)
-  def _reduce_314(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1123)
+  def _reduce_315(val, _values, result)
      Factory.set_f_celltype( true ) 
     result
@@ -4221,10 +4330,10 @@
 .,.,
 
-# reduce 315 omitted
-
 # reduce 316 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1128)
-  def _reduce_317(val, _values, result)
+# reduce 317 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1131)
+  def _reduce_318(val, _values, result)
      Factory.new( val[0].val, val[2], val[4], nil    ) 
     result
@@ -4232,6 +4341,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1130)
-  def _reduce_318(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1133)
+  def _reduce_319(val, _values, result)
      Factory.new( val[0].val, val[2], val[4], val[6] ) 
     result
@@ -4239,8 +4348,8 @@
 .,.,
 
-# reduce 319 omitted
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1137)
-  def _reduce_320(val, _values, result)
+# reduce 320 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1140)
+  def _reduce_321(val, _values, result)
      result = [ [ :IDENTIFIER, val[0].val ] ] 
     result
@@ -4248,6 +4357,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1139)
-  def _reduce_321(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1142)
+  def _reduce_322(val, _values, result)
      result << [ :IDENTIFIER, val[2].val ] 
     result
@@ -4255,6 +4364,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1141)
-  def _reduce_322(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1144)
+  def _reduce_323(val, _values, result)
      result = [ [ :STRING_LITERAL, val[0].val ] ] 
     result
@@ -4262,6 +4371,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1143)
-  def _reduce_323(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1146)
+  def _reduce_324(val, _values, result)
      result << [ :STRING_LITERAL, val[2].val ] 
     result
@@ -4269,6 +4378,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1148)
-  def _reduce_324(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1151)
+  def _reduce_325(val, _values, result)
      Cell.new_def 
     result
@@ -4276,6 +4385,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1150)
-  def _reduce_325(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1153)
+  def _reduce_326(val, _values, result)
      result = Cell.end_of_parse true 
     result
@@ -4283,6 +4392,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1152)
-  def _reduce_326(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1155)
+  def _reduce_327(val, _values, result)
      result = Cell.end_of_parse false 
     result
@@ -4290,6 +4399,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1156)
-  def _reduce_327(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1159)
+  def _reduce_328(val, _values, result)
      result = Cell.new(val[0]) 
     result
@@ -4297,6 +4406,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1160)
-  def _reduce_328(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1163)
+  def _reduce_329(val, _values, result)
      result = Cell.set_name(val[0].val) 
     result
@@ -4304,12 +4413,12 @@
 .,.,
 
-# reduce 329 omitted
-
 # reduce 330 omitted
 
 # reduce 331 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1169)
-  def _reduce_332(val, _values, result)
+# reduce 332 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1172)
+  def _reduce_333(val, _values, result)
      val[3].set_specifier_list( val[1] )  
     result
@@ -4317,6 +4426,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1171)
-  def _reduce_333(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1174)
+  def _reduce_334(val, _values, result)
      val[0].set_specifier_list( [] ) 
     result
@@ -4324,6 +4433,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1175)
-  def _reduce_334(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1178)
+  def _reduce_335(val, _values, result)
      result << val[2] 
     result
@@ -4331,14 +4440,7 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1177)
-  def _reduce_335(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1180)
+  def _reduce_336(val, _values, result)
      result = [val[0]] 
-    result
-  end
-.,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1181)
-  def _reduce_336(val, _values, result)
-     result = [ :THROUGH, val[2], val[4] ] 
     result
   end
@@ -4347,4 +4449,11 @@
 module_eval(<<'.,.,', 'bnf.y.rb', 1184)
   def _reduce_337(val, _values, result)
+     result = [ :THROUGH, val[2], val[4] ] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1187)
+  def _reduce_338(val, _values, result)
      result = val[0] 
     result
@@ -4352,8 +4461,8 @@
 .,.,
 
-# reduce 338 omitted
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1198)
-  def _reduce_339(val, _values, result)
+# reduce 339 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1201)
+  def _reduce_340(val, _values, result)
     			result = Join.new( val[0].val,  -1, val[4] )
 			Cell.new_join( result, true )
@@ -4363,6 +4472,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1203)
-  def _reduce_340(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1206)
+  def _reduce_341(val, _values, result)
     			result = Join.new( val[0].val, val[2], val[5] )
 			Cell.new_join( result, true )
@@ -4372,6 +4481,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1208)
-  def _reduce_341(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1211)
+  def _reduce_342(val, _values, result)
     			result = Join.new( val[0].val, nil, val[2] )
 			Cell.new_join( result, true )
@@ -4381,6 +4490,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1213)
-  def _reduce_342(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1216)
+  def _reduce_343(val, _values, result)
     			result = Join.new( val[0].val, nil, [ :COMPOSITE, val[4] ] )
 			Cell.new_join( result, true )
@@ -4390,8 +4499,8 @@
 .,.,
 
-# reduce 343 omitted
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1224)
-  def _reduce_344(val, _values, result)
+# reduce 344 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1227)
+  def _reduce_345(val, _values, result)
     			rj = ReverseJoin.new( val[0].val, nil, val[2], val[4].val )
 			Cell.new_reverse_join( rj )
@@ -4401,6 +4510,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1230)
-  def _reduce_345(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1233)
+  def _reduce_346(val, _values, result)
     			rj = ReverseJoin.new( val[0].val, nil, val[2], val[4].val, val[6] )
 			Cell.new_reverse_join( rj )
@@ -4410,6 +4519,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1236)
-  def _reduce_346(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1239)
+  def _reduce_347(val, _values, result)
     			rj = ReverseJoin.new( val[0].val, val[2], val[5], val[7].val )
 			Cell.new_reverse_join( rj )
@@ -4419,6 +4528,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1242)
-  def _reduce_347(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1245)
+  def _reduce_348(val, _values, result)
     			rj = ReverseJoin.new( val[0].val, val[2], val[5], val[7].val, val[9] )
 			Cell.new_reverse_join( rj )
@@ -4428,8 +4537,8 @@
 .,.,
 
-# reduce 348 omitted
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1254)
-  def _reduce_349(val, _values, result)
+# reduce 349 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1257)
+  def _reduce_350(val, _values, result)
     			CompositeCelltype.end_of_parse
 			result = val[1]
@@ -4439,6 +4548,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1260)
-  def _reduce_350(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1263)
+  def _reduce_351(val, _values, result)
      result = CompositeCelltype.new(val[0].val) 
     result
@@ -4446,10 +4555,10 @@
 .,.,
 
-# reduce 351 omitted
-
 # reduce 352 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1269)
-  def _reduce_353(val, _values, result)
+# reduce 353 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1272)
+  def _reduce_354(val, _values, result)
     			if val[0].kind_of?( Port ) then
 				CompositeCelltype.new_port( val[0] )   # 遅延して登録
@@ -4460,6 +4569,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1275)
-  def _reduce_354(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1278)
+  def _reduce_355(val, _values, result)
     			if val[3].kind_of?( Port ) then
 				# port 以外 val[3] に有効な値が入っていないので、以下のメソッドを適用できない
@@ -4479,6 +4588,4 @@
 .,.,
 
-# reduce 355 omitted
-
 # reduce 356 omitted
 
@@ -4487,6 +4594,8 @@
 # reduce 358 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1299)
-  def _reduce_359(val, _values, result)
+# reduce 359 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1302)
+  def _reduce_360(val, _values, result)
     			Generator.add_statement_specifier val[0]
 			result = [ val[0] ]
@@ -4496,6 +4605,15 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1304)
-  def _reduce_360(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1307)
+  def _reduce_361(val, _values, result)
+    			Generator.add_statement_specifier val[2]
+			result = val[0] << val[2]
+		
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1312)
+  def _reduce_362(val, _values, result)
      result = [ :ALLOCATOR, val[2] ] 
     result
@@ -4503,6 +4621,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1305)
-  def _reduce_361(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1313)
+  def _reduce_363(val, _values, result)
      result = [ :OMIT ] 
     result
@@ -4510,6 +4628,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1306)
-  def _reduce_362(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1314)
+  def _reduce_364(val, _values, result)
      result = [ :OPTIONAL ] 
     result
@@ -4517,6 +4635,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1307)
-  def _reduce_363(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1315)
+  def _reduce_365(val, _values, result)
      result = [ :REF_DESC ] 
     result
@@ -4524,6 +4642,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1308)
-  def _reduce_364(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1316)
+  def _reduce_366(val, _values, result)
      result = [ :DYNAMIC ] 
     result
@@ -4531,6 +4649,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1313)
-  def _reduce_365(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1321)
+  def _reduce_367(val, _values, result)
     			# CompositeCelltype.new_port( val[0] )
 			result = val[0]
@@ -4540,6 +4658,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1320)
-  def _reduce_366(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1328)
+  def _reduce_368(val, _values, result)
      result = nil 
     result
@@ -4547,6 +4665,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1324)
-  def _reduce_367(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1332)
+  def _reduce_369(val, _values, result)
      CompositeCelltype.new_attribute( val[0] ) 
     result
@@ -4554,6 +4672,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1326)
-  def _reduce_368(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1334)
+  def _reduce_370(val, _values, result)
      CompositeCelltype.new_attribute( val[1] ) 
     result
@@ -4561,6 +4679,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1331)
-  def _reduce_369(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1339)
+  def _reduce_371(val, _values, result)
      Cell.new_def 
     result
@@ -4568,6 +4686,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1333)
-  def _reduce_370(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1341)
+  def _reduce_372(val, _values, result)
      result = Cell.end_of_parse true 
     result
@@ -4575,6 +4693,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1335)
-  def _reduce_371(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1343)
+  def _reduce_373(val, _values, result)
      result = Cell.end_of_parse false 
     result
@@ -4582,6 +4700,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1340)
-  def _reduce_372(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1348)
+  def _reduce_374(val, _values, result)
      Cell.new(val[0],true) 
     result
@@ -4589,6 +4707,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1344)
-  def _reduce_373(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1352)
+  def _reduce_375(val, _values, result)
      Cell.set_name(val[0].val) 
     result
@@ -4596,12 +4714,14 @@
 .,.,
 
-# reduce 374 omitted
-
-# reduce 375 omitted
-
 # reduce 376 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1354)
-  def _reduce_377(val, _values, result)
+# reduce 377 omitted
+
+# reduce 378 omitted
+
+# reduce 379 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1363)
+  def _reduce_380(val, _values, result)
     	Cell.external_join( val[0].val, val[4].val, true )	
     result
@@ -4609,6 +4729,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1356)
-  def _reduce_378(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1365)
+  def _reduce_381(val, _values, result)
     	Cell.external_join( val[0].val, val[2].val, false )	
     result
@@ -4616,6 +4736,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1363)
-  def _reduce_379(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1372)
+  def _reduce_382(val, _values, result)
     			CompositeCelltype.new_join( val[0].val,
 						val[2].val, val[4].val, :ENTRY )
@@ -4625,6 +4745,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1368)
-  def _reduce_380(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1377)
+  def _reduce_383(val, _values, result)
     			CompositeCelltype.new_join( val[2].val,
 						val[4].val, val[6].val, :ENTRY )
@@ -4634,30 +4754,30 @@
 .,.,
 
-# reduce 381 omitted
-
-# reduce 382 omitted
-
-# reduce 383 omitted
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1384)
-  def _reduce_384(val, _values, result)
+# reduce 384 omitted
+
+# reduce 385 omitted
+
+# reduce 386 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1393)
+  def _reduce_387(val, _values, result)
      Region.end_of_parse 
     result
   end
 .,.,
-
-module_eval(<<'.,.,', 'bnf.y.rb', 1386)
-  def _reduce_385(val, _values, result)
-     Region.end_of_parse 
-    result
-  end
-.,.,
-
-# reduce 386 omitted
-
-# reduce 387 omitted
 
 module_eval(<<'.,.,', 'bnf.y.rb', 1395)
   def _reduce_388(val, _values, result)
+     Region.end_of_parse 
+    result
+  end
+.,.,
+
+# reduce 389 omitted
+
+# reduce 390 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1404)
+  def _reduce_391(val, _values, result)
      Region.new_in_through( val[2].val, val[4].val ) 
     result
@@ -4665,6 +4785,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1397)
-  def _reduce_389(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1406)
+  def _reduce_392(val, _values, result)
      Region.new_in_through 
     result
@@ -4672,6 +4792,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1399)
-  def _reduce_390(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1408)
+  def _reduce_393(val, _values, result)
      Region.new_out_through( val[2].val, val[4].val ) 
     result
@@ -4679,6 +4799,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1401)
-  def _reduce_391(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1410)
+  def _reduce_394(val, _values, result)
      Region.new_out_through() 
     result
@@ -4686,6 +4806,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1403)
-  def _reduce_392(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1412)
+  def _reduce_395(val, _values, result)
      Region.new_to_through( val[2], val[4].val, val[6].val ) 
     result
@@ -4693,6 +4813,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1405)
-  def _reduce_393(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1414)
+  def _reduce_396(val, _values, result)
      Region.new_to_through( val[2], nil, nil ) 
     result
@@ -4700,6 +4820,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1407)
-  def _reduce_394(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1416)
+  def _reduce_397(val, _values, result)
      Region.set_type( :NODE ) 
     result
@@ -4707,6 +4827,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1409)
-  def _reduce_395(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1418)
+  def _reduce_398(val, _values, result)
      Region.set_type( :LINKUNIT ) 
     result
@@ -4714,6 +4834,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1411)
-  def _reduce_396(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1420)
+  def _reduce_399(val, _values, result)
      Region.set_domain( val[2].val, val[4] ) 
     result
@@ -4721,6 +4841,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1413)
-  def _reduce_397(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1422)
+  def _reduce_400(val, _values, result)
      Region.set_type( :CLASS, val[2].val ) 
     result
@@ -4728,6 +4848,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1417)
-  def _reduce_398(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1426)
+  def _reduce_401(val, _values, result)
      result = Region.new( val[0].val ) 
     result
@@ -4735,14 +4855,14 @@
 .,.,
 
-# reduce 399 omitted
-
-# reduce 400 omitted
-
-# reduce 401 omitted
-
 # reduce 402 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1428)
-  def _reduce_403(val, _values, result)
+# reduce 403 omitted
+
+# reduce 404 omitted
+
+# reduce 405 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1437)
+  def _reduce_406(val, _values, result)
     			obj = val[3]
 			if obj.kind_of?( Cell ) then
@@ -4756,6 +4876,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1450)
-  def _reduce_404(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1459)
+  def _reduce_407(val, _values, result)
      result = [ val[0].val ] 
     result
@@ -4763,6 +4883,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1455)
-  def _reduce_405(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1464)
+  def _reduce_408(val, _values, result)
      set_in_specifier 
     result
@@ -4770,6 +4890,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1457)
-  def _reduce_406(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1466)
+  def _reduce_409(val, _values, result)
      unset_in_specifier 
     result
@@ -4777,14 +4897,14 @@
 .,.,
 
-# reduce 407 omitted
-
-# reduce 408 omitted
-
-# reduce 409 omitted
-
 # reduce 410 omitted
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1471)
-  def _reduce_411(val, _values, result)
+# reduce 411 omitted
+
+# reduce 412 omitted
+
+# reduce 413 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1480)
+  def _reduce_414(val, _values, result)
     			TECSGEN::Cell_location.new( val[1], val[3], val[5], val[7], val[9], val[12] )
 		
@@ -4793,6 +4913,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1477)
-  def _reduce_412(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1486)
+  def _reduce_415(val, _values, result)
     			result = val[0] << val[1]
 		
@@ -4801,6 +4921,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1480)
-  def _reduce_413(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1489)
+  def _reduce_416(val, _values, result)
      result = [] 
     result
@@ -4808,6 +4928,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1484)
-  def _reduce_414(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1493)
+  def _reduce_417(val, _values, result)
      result = [ val[0], val[2], val[3] ] 
     result
@@ -4815,6 +4935,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1489)
-  def _reduce_415(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1498)
+  def _reduce_418(val, _values, result)
                 TECSGEN::Join_location.new( val[2], val[4], val[6], val[8], val[11] )
 		
@@ -4823,6 +4943,6 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1495)
-  def _reduce_416(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1504)
+  def _reduce_419(val, _values, result)
                 result = val[0] << [ val[1], val[3] ]
           
@@ -4831,7 +4951,134 @@
 .,.,
 
-module_eval(<<'.,.,', 'bnf.y.rb', 1497)
-  def _reduce_417(val, _values, result)
+module_eval(<<'.,.,', 'bnf.y.rb', 1506)
+  def _reduce_420(val, _values, result)
      result = [] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1510)
+  def _reduce_421(val, _values, result)
+     TOOL_INFO.new( val[2].to_sym, val[4] ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1511)
+  def _reduce_422(val, _values, result)
+      result = val[1] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1512)
+  def _reduce_423(val, _values, result)
+     result = { val[0].to_sym => val[2] } 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1514)
+  def _reduce_424(val, _values, result)
+     val[0][ val[2].to_sym ] = val[4] 
+    result
+  end
+.,.,
+
+# reduce 425 omitted
+
+# reduce 426 omitted
+
+# reduce 427 omitted
+
+# reduce 428 omitted
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1516)
+  def _reduce_429(val, _values, result)
+     result=val[0].val 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1516)
+  def _reduce_430(val, _values, result)
+     result=val[0].val 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1517)
+  def _reduce_431(val, _values, result)
+     result = val[1]  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1518)
+  def _reduce_432(val, _values, result)
+     result = []  
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1519)
+  def _reduce_433(val, _values, result)
+     result = [ val[0] ] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1520)
+  def _reduce_434(val, _values, result)
+     val[0] << val[2] 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1521)
+  def _reduce_435(val, _values, result)
+     result = val[0].val.gsub!( /\"(.*)\"/, "\\1" ) 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1522)
+  def _reduce_436(val, _values, result)
+     result = val[0].val.to_i 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1523)
+  def _reduce_437(val, _values, result)
+     result = val[0].val.to_f 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1524)
+  def _reduce_438(val, _values, result)
+     result = - val[0].val.to_i 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1525)
+  def _reduce_439(val, _values, result)
+     result = - val[0].val.to_f 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1526)
+  def _reduce_440(val, _values, result)
+     result = val[0].val.to_i 
+    result
+  end
+.,.,
+
+module_eval(<<'.,.,', 'bnf.y.rb', 1527)
+  def _reduce_441(val, _values, result)
+     result = val[0].val.to_f 
     result
   end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.y.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.y.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/bnf.y.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2016 by TOPPERS Project
+#   Copyright (C) 2008-2018 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -378,5 +378,7 @@
         | STRUCT
 		{
-			result = StructType.new()
+			# tag が無い場合、内部名を与える
+			result = StructType.new( :"TAG__#{@@no_struct_tag_num}__" )
+			@@no_struct_tag_num += 1
 			StructType.set_define( true )
 		}
@@ -709,4 +711,5 @@
         : component_description specified_statement
         | component_description location_information
+        | component_description tool_info
         | 
 
@@ -738,5 +741,5 @@
         | import
         | import_C
-        | signature_plugin
+        | generate_statement
         | error   # エラー回復ポイント
 
@@ -797,8 +800,8 @@
 
 region_name_list
-        : IDENTIFIER
-		{	result = [val[0].val]		}
-        | region_name_list ',' IDENTIFIER
-		{	result << val[2].val		}
+        : namespace_identifier
+		{	result = [val[0]]		}
+        | region_name_list ',' namespace_identifier
+		{	result << val[2]		}
 
 const_statement
@@ -832,5 +835,5 @@
 		{ Import.new( val[2], true ) }
 
-signature_plugin
+generate_statement
 #        : GENERATE '(' plugin_name ',' namespace_identifier ',' STRING_LITERAL ')' ';'  #1ok signature plugin
         : GENERATE '(' plugin_name ',' namespace_identifier ',' plugin_arg ')' ';'  #1ok signature plugin
@@ -1301,4 +1304,9 @@
 			result = [ val[0] ]
 		}
+        | composite_celltype_statement_specifier_list ',' composite_celltype_statement_specifier
+		{
+			Generator.add_statement_specifier val[2]
+			result = val[0] << val[2]
+		}
 
 composite_celltype_statement_specifier
@@ -1350,4 +1358,5 @@
         | internal_join_list specified_join
         | internal_join_list external_join
+        | internal_join_list reverse_join
 
 external_join  # cell 内に記述する呼び口の外部結合
@@ -1499,4 +1508,25 @@
 
 
+#  JSON object
+tool_info        : TOOL_INFO '(' JSON_string ')' JSON_object { TOOL_INFO.new( val[2].to_sym, val[4] ) }
+JSON_object      : '{' JSON_property_list   '}'              {  result = val[1] }
+JSON_property_list : JSON_string ':' JSON_value              { result = { val[0].to_sym => val[2] } }
+                 | JSON_property_list ',' JSON_string ':' JSON_value
+                                                             { val[0][ val[2].to_sym ] = val[4] }
+JSON_value       : JSON_string | JSON_number | JSON_object | JSON_array
+                 | TRUE { result=val[0].val } | FALSE  { result=val[0].val } # JSON_NULL # null not suppoted
+JSON_array       : '[' JSON_array_list ']'                   { result = val[1]  }
+                 | '['  ']'                                  { result = []  }
+JSON_array_list  : JSON_value                                { result = [ val[0] ] }
+                 | JSON_array_list ',' JSON_value            { val[0] << val[2] }
+JSON_string      : STRING_LITERAL                            { result = val[0].val.gsub!( /\"(.*)\"/, "\\1" ) }
+JSON_number      : INTEGER_CONSTANT                          { result = val[0].val.to_i }
+                 | FLOATING_CONSTANT                         { result = val[0].val.to_f }
+                 | '-' INTEGER_CONSTANT                      { result = - val[0].val.to_i }
+                 | '-' FLOATING_CONSTANT                     { result = - val[0].val.to_f }
+                 | '+' INTEGER_CONSTANT                      { result = val[0].val.to_i }
+                 | '+' FLOATING_CONSTANT                     { result = val[0].val.to_f }
+
+
 end
 
@@ -1523,4 +1553,5 @@
     'import_C' => :IMPORT_C,
     'generate' => :GENERATE,
+    '__tool_info__' => :TOOL_INFO,
 
     # types
@@ -1658,4 +1689,7 @@
   # すべての構文解析が完了した
   @@b_end_all_parse = false
+
+  # tag なし struct
+  @@no_struct_tag_num = 0
 
   def self.parse( file_name, plugin = nil, b_reuse = false )
@@ -1773,5 +1807,5 @@
                   string += line
                   # この位置では error メソッドは使えない (token 読出し前)
-                  puts "error: #{file} line #{lineno}: string literal has newline without escape"
+                  puts "#{file}:#{lineno}:#{col}: error: string literal has newline without escape"
                   @@n_error += 1
                 end
@@ -1814,8 +1848,9 @@
                   b_in_string = true
                   # この位置では error メソッドは使えない (token 読出し前) # mikan cdl_error ではない
-                  puts "error: #{file} line #{lineno}: string literal has newline without escape"
+                  puts "#{file}:#{lineno}:#{col}: error: string literal has newline without escape"
                   @@n_error += 1
                 # 山括弧で囲まれた文字列
-                when /\A<[0-9A-Za-z_\. \/]+>/   # AB: angle bracke
+                # when /\A<[0-9A-Za-z_\. \/]+>/   # AB: angle bracke
+                when /\A<(?:[^>\\]|\\.)*>/   # これはうまく行くようだ
                   @q << [:AB_STRING_LITERAL, Token.new($&, file, lineno, col)]
                 # 行コメント
@@ -1913,4 +1948,5 @@
   @@n_error = 0
   @@n_warning = 0
+  @@n_info = 0
 
   # このメソッドは構文解析、意味解析からのみ呼出し可（コード生成でエラー発生は不適切）
@@ -1946,5 +1982,5 @@
       end
       if locale then
-        Console.puts "error: #{locale[0]}: line #{locale[1]} #{msg}"
+        Console.puts "#{locale[0]}:#{locale[1]}:#{locale[2]}: error: #{msg}"
       else
         Console.puts "error: #{msg}"
@@ -1979,5 +2015,5 @@
       end
       if locale then
-        Console.puts "warning: #{locale[0]}: line #{locale[1]} #{msg}"
+        Console.puts "#{locale[0]}:#{locale[1]}:#{locale[2]}: warning: #{msg}"
       else
         Console.puts "warning: #{msg}"
@@ -1986,4 +2022,37 @@
   end
 
+  # このメソッドは構文解析、意味解析からのみ呼出し可
+  def self.info( msg, *arg )
+    locale = nil
+    self.info2( locale, msg, *arg )
+  end
+
+  def self.info2( locale, msg, *arg )
+    @@n_info += 1
+
+    msg = TECSMsg.get_info_message( msg )
+    # $1, $2, ... を arg で置換
+    count = 1
+    arg.each{ |a|
+      str = TECSIO.str_code_convert( msg, a.to_s )
+      msg.sub!( /\$#{count}/, str )
+      count += 1
+    }
+
+    # import_C の中でのウォーニング？
+    if @@import_C then
+      C_parser.info( msg )
+    else
+      if @@b_end_all_parse == false || locale == nil then
+        locale = @@current_locale[ @@generator_nest ]
+      end
+      if locale then
+        Console.puts "#{locale[0]}:#{locale[1]}:#{locale[2]}: info: #{msg}"
+      else
+        Console.puts "info: #{msg}"
+      end
+    end
+  end
+
   def self.get_n_error
     @@n_error
@@ -1994,6 +2063,14 @@
   end
 
+  def self.get_n_info
+    @@n_info
+  end
+
   def self.get_nest
     @@generator_nest
+  end
+
+  def self.parsing_C?
+    @@import_C
   end
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/componentobj.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/componentobj.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/componentobj.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2016 by TOPPERS Project
+#   Copyright (C) 2008-2019 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -79,4 +79,8 @@
 #  @b_checked_as_allocator_signature:: bool:  アロケータシグニチャとしてチェック済み
 #  @b_empty:: Bool: 空(関数が一つもない状態)
+#  @descriptor_list:: nil | { Signature => ParamDecl }  最後の ParamDecl しか記憶しないことに注意
+#  @generate:: [ Symbol, String, Plugin ]  = [ PluginName, option, Plugin ] Plugin は生成後に追加される
+
+  include PluginModule
 
   @@nest_stack_index = -1
@@ -123,4 +127,6 @@
     @b_empty = false
     @b_checked_as_allocator_signature = false
+    @descriptor_list = nil
+    @generate = nil
     @@current_object = self
     set_specifier_list( Generator.get_statement_specifier )
@@ -136,4 +142,5 @@
     function_head_list.get_items.each{ |f|
       @func_name_to_id[ f.get_name ] = id
+      f.set_owner self
       id += 1
     }
@@ -142,5 +149,12 @@
     end
 
+    # set_descriptor_list ##
+
+    if @generate then
+      signature_plugin
+    end
+
     @@current_object = nil
+
     return self
   end
@@ -170,4 +184,9 @@
       when :DEVIATE
         @b_deviate = true
+      when :GENERATE
+        if @generate then
+          cdl_error( "S9999 generate specifier duplicate"  )
+        end
+        @generate = [ s[1], s[2] ] # [ PluginName, "option" ]
       else
         cdl_error( "S1002 \'$1\': unknown specifier for signature" , s[0] )
@@ -309,11 +328,57 @@
   end
 
-  #== Signature# 引数で参照されている Descriptor 型のリストを作成する
+  #=== Signature# シグニチャプラグイン (generate 指定子)
+  def signature_plugin
+    plugin_name = @generate[0]
+    option = @generate[1]
+    apply_plugin( plugin_name, option )
+  end
+
+  #== Signature#apply_plugin
+  def apply_plugin plugin_name, option
+    if is_empty? then
+      cdl_warning( "S9999 $1 is empty. cannot apply signature plugin. ignored" , @name )
+      return
+    end
+
+    plClass = load_plugin( plugin_name, SignaturePlugin )
+    return if plClass == nil
+    if $verbose then
+      print "new through: plugin_object = #{plClass.class.name}.new( #{@name}, #{option} )\n"
+    end
+
+    begin
+      plugin_object = plClass.new( self, option )
+      plugin_object.set_locale @locale
+    rescue Exception => evar
+      cdl_error( "S1150 $1: fail to new" , plugin_name )
+      print_exception( evar )
+    end
+    generate_and_parse plugin_object
+end
+
+  #== Signature# 引数で参照されている Descriptor 型のリストを
   #RETURN:: Hash { Signature => ParamDecl }:  複数の ParamDecl から参照されている場合、最後のものしか返さない
   def get_descriptor_list
+    @descriptor_list
+  end
+
+  @@set_descriptor_list = {}
+  def self.set_descriptor_list
+    Namespace.get_root.travers_all_signature{ |sig|
+      if @@set_descriptor_list[ sig ] == nil then
+        @@set_descriptor_list[ sig ] = true
+        sig.set_descriptor_list
+      end
+    }
+  end
+
+  #== Signature# 引数で参照されている Descriptor 型のリストを作成する
+  def set_descriptor_list
     desc_list = { }
     # p "has_desc #{@name}"
     fha = get_function_head_array                       # 呼び口または受け口のシグニチャの関数配列
     if fha == nil then                                  # nil の場合、自己参照によるケースと仮定
+      @descriptor_list = desc_list
       return desc_list
     end
@@ -330,5 +395,13 @@
             # p "has_desc #{param.get_name} #{t}"
             if t.kind_of? DescriptorType then
-              desc_list[t] = param
+              desc_list[ t.get_signature ] = param
+              # p self.get_name, t.get_signature.get_name
+              if t.get_signature == self then
+               # cdl_error( "S9999 Descriptor argument '$1' is the same signature as this parameter '$2' included", @name, param.get_name )
+              end
+              dir = param.get_direction
+              if dir != :IN && dir != :OUT && dir != :INOUT then
+                cdl_error( "S9999 Descriptor argument '$1' cannot be specified for $2 parameter", param.get_name, dir.to_s.downcase )
+              end
             end
           }
@@ -336,33 +409,19 @@
       end
     }
-    return desc_list
+    @descriptor_list = desc_list
   end
 
   #=== Signature# 引数に Descriptor があるか？
   def has_descriptor?
-    # p "has_desc #{@name}"
-    fha = get_function_head_array                       # 呼び口または受け口のシグニチャの関数配列
-    if fha == nil then                                  # nil の場合、自己参照によるケースと仮定
+    if get_descriptor_list == nil then
+      # end_of_parse が呼び出される前に has_descriptor? が呼び出された
+      # 呼び出し元は DescriptorType#initialize
+      # この場合、同じシグニチャ内の引数が Descriptor 型である
       return true
-    end
-    fha.each{ |fh|
-      fd = fh.get_declarator                            # fd: Decl  (関数頭部からDeclarotorを得る)
-      if fd.is_function? then                           # fd が関数でなければ、すでにエラー
-        params = fd.get_type.get_paramlist.get_items
-        if params then
-          params.each{ |param|
-            t = param.get_type.get_original_type
-            while( t.kind_of? PtrType )
-              t = t.get_referto
-            end
-            # p "has_desc #{param.get_name} #{t}"
-            if t.kind_of? DescriptorType then
-              return true
-            end
-          }
-        end
-      end
-    }
-    return false
+    elsif get_descriptor_list.length > 0 then
+      return true
+    else
+      return false
+    end
   end
 
@@ -411,4 +470,70 @@
 
 end
+
+module CelltypePluginModule
+  #=== Celltype# セルタイププラグイン (generate 指定子)
+  def celltype_plugin
+    plugin_name = @generate[0]
+    option = @generate[1]
+    @generate[2] = apply_plugin( plugin_name, option )
+  end
+
+  #=== Celltype# セルタイププラグインをこのセルタイプに適用
+  def apply_plugin( plugin_name, option )
+
+    # plClass = load_plugin( plugin_name, CelltypePlugin )
+    if kind_of? Celltype then
+      plugin_class = CelltypePlugin
+    elsif kind_of? CompositeCelltype then
+      plugin_class = CompositePlugin
+    else
+      raise "unknown class #{self.class.name}"
+    end
+    
+    plClass = load_plugin( plugin_name, plugin_class )
+    return if plClass == nil
+    if $verbose then
+      print "new celltype plugin: plugin_object = #{plClass.class.name}.new( #{@name}, #{option} )\n"
+    end
+
+    begin
+      plugin_object = plClass.new( self, option )
+      @generate_list << [ plugin_name, option, plugin_object ]
+      plugin_object.set_locale @locale
+      generate_and_parse plugin_object
+    rescue Exception => evar
+      cdl_error( "S1023 $1: fail to new" , plugin_name )
+      print_exception( evar )
+    end
+
+    # 既に存在するセルに new_cell を適用
+    @cell_list.each{ |cell|
+      apply_plugin_cell plugin_object, cell
+    }
+
+    return plugin_object
+  end
+
+  def apply_plugin_cell plugin, cell
+    begin
+      plugin.new_cell cell
+    rescue Exception => evar
+      cdl_error( "S1037 $1: celltype plugin fail to new_cell" , plugin.class.name )
+      print_exception( evar )
+    end
+  end
+
+  def celltype_plugin_new_cell cell
+    @generate_list.each{ |generate|
+      celltype_plugin = generate[2]
+      begin
+        celltype_plugin.new_cell cell
+      rescue Exception => evar
+        cdl_error( "S1037 $1: celltype plugin fail to new_cell" , celltype_plugin.class.name )
+        print_exception( evar )
+      end
+    }
+  end
+end #CelltypePluginModule
 
 class Celltype < NSBDNode # < Nestable
@@ -423,10 +548,13 @@
 # @ct_factory_list::    Factory[] :    celltype factory
 # @cell_list:: Cell[] : 定義のみ (V1.0.0.2 以降)
+# @ordered_cell_list:: Cell[] : ID 順に順序付けされたセルリスト、最適化以降有効 (リンク単位ごとに生成されなおす)
 # @singleton:: bool
 # @idx_is_id:: bool
 # @idx_is_id_act:: bool: actual value
+# @b_need_ptab:: bool: true if having cells in multi-domain
 # @active:: bool
 # @b_reuse:: bool :  reuse 指定されて import された(template 不要)
 # @generate:: [ Symbol, String, Plugin ]  = [ PluginName, option, Plugin ] Plugin は生成後に追加される
+# @generate_list:: [ [ Symbol, String, Plugin ], ... ]   generate 文で追加された generate
 #
 # @n_attribute_ro:: int >= 0    none specified
@@ -437,7 +565,11 @@
 # @n_var_omit:: int >= 0        # of [omit] specified vars # mikan var の omit は有？
 # @n_var_init:: int >= 0        # of vars with initializer
-# @n_call_port:: int >= 0
-# @n_call_port_array:: int >= 0
+# @n_call_port:: int >= 0       # dynamic ports are included
+# @n_call_port_array:: int >= 0  # dynamic ports are included
 # @n_call_port_omitted_in_CB:: int >= 0   最適化で省略される呼び口
+# @n_call_port_dynamic:: int >= 0  #
+# @n_call_port_array_dynamic:: int >= 0
+# @n_call_port_ref_desc:: int >= 0  #
+# @n_call_port_array_ref_desc:: int >= 0
 # @n_entry_port:: int >= 0
 # @n_entry_port_array:: int >= 0
@@ -455,5 +587,6 @@
 
   include PluginModule
-
+  include CelltypePluginModule
+  
   @@nest_stack_index = -1
   @@nest_stack = []
@@ -496,4 +629,5 @@
     @active = false
     @generate = nil
+    @generate_list = []
 
     @n_attribute_ro = 0
@@ -507,4 +641,8 @@
     @n_call_port_array = 0
     @n_call_port_omitted_in_CB = 0
+    @n_call_port_dynamic = 0
+    @n_call_port_array_dynamic = 0
+    @n_call_port_ref_desc = 0
+    @n_call_port_array_ref_desc = 0
     @n_entry_port = 0
     @n_entry_port_array = 0
@@ -528,16 +666,15 @@
     if $idx_is_id then
       @idx_is_id = true
+      @idx_is_id_act = true
+      @b_need_ptab = true
     else
       @idx_is_id = false
-    end
-    @idx_is_id_act = @idx_is_id
+      @idx_is_id_act = false
+      @b_need_ptab = false
+    end
 
     Namespace.new_celltype( self )
     set_namespace_path # @NamespacePath の設定
     set_specifier_list( Generator.get_statement_specifier )
-
-    if @singleton then
-      @idx_is_id_act = false
-    end
 
     @included_header = {}
@@ -577,4 +714,6 @@
       celltype_plugin
     end
+
+    # check_dynamic_join ##
 
     @@current_object = nil
@@ -592,4 +731,12 @@
       @n_call_port += 1
       @n_call_port_array += 1 if port.get_array_size != nil
+      if port.is_dynamic? then
+        @n_call_port_dynamic += 1
+        @n_call_port_array_dynamic += 1 if port.get_array_size != nil
+      end
+      if port.is_ref_desc? then
+        @n_call_port_ref_desc += 1
+        @n_call_port_array_ref_desc += 1 if port.get_array_size != nil
+      end
     else
       @n_entry_port += 1
@@ -753,4 +900,6 @@
       when :IDX_IS_ID
         @idx_is_id = true
+        @idx_is_id_act = true
+        @b_need_ptab = true
       when :ACTIVE
         @active = true
@@ -764,4 +913,8 @@
       end
     }
+    if @singleton then
+      @idx_is_id_act = false
+      @b_need_ptab = false
+    end
   end
 
@@ -863,28 +1016,121 @@
   end
 
-  #=== Celltype# セルタイププラグイン (generate 指定子)
-  def celltype_plugin
-
-    load_plugin( @generate[0], CelltypePlugin )
-
-    plugin_name = @generate[0]
-    option = @generate[1]
-    plugin_object = nil
-    eval_str = "plugin_object = #{plugin_name}.new( self, option )"
-    if $verbose then
-      print "new celltype : #{eval_str}\n"
-    end
-
-    begin
-      eval( eval_str )     # plugin を生成
-      plugin_object.set_locale @locale
-      @generate[ 2 ] = plugin_object
-      generate_and_parse plugin_object
-    rescue Exception => evar
-      cdl_error( "S1023 $1: fail to new" , plugin_name )
-      print "eval( #{eval_str} )\n"
-
-      print_exception( evar )
-    end
+  @@dynamic_join_checked_list = {}
+  def self.check_dynamic_join
+    Namespace.get_root.travers_all_celltype{ |ct|
+      if @@dynamic_join_checked_list[ ct ] == nil then
+        @@dynamic_join_checked_list[ ct ] = true
+        ct.check_dynamic_join
+      end
+    }
+  end
+
+  #=== Celltype#dynamic の適合性チェック
+  def check_dynamic_join
+    return if ! $verbose
+    @port.each{ |port|
+      signature = port.get_signature
+      next if signature == nil   # すでにエラー
+      if port.is_dynamic? then
+        dbgPrint( "[DYNAMIC] checking dynamic port: #{@global_name}.#{port.get_name}\n" )
+        # print( "[DYNAMIC] checking dynamic port: #{@global_name}.#{port.get_name}\n" )
+        next if find_ref_desc_port signature
+        next if find_descriptor_param signature, :DYNAMIC
+        cdl_warning( 'W9999 $1 cannot get information for dynamic port $2', @name, port.get_name )
+      elsif port.is_ref_desc? then
+        dbgPrint( "[DYNAMIC] checking ref_desc port: #{@global_name}.#{port.get_name}\n" )
+        # print( "[DYNAMIC] checking ref_desc port: #{@global_name}.#{port.get_name}\n" )
+        next if find_dynamic_port signature
+        next if find_descriptor_param signature, :REF_DESC
+        cdl_warning( 'W9999 $1 cannot put information from ref_desc port $2', @name, port.get_name )
+      elsif port.get_signature then
+        if port.get_signature.has_descriptor? then
+          port.get_signature.get_descriptor_list.each{ |signature, param|
+            dbgPrint( "[DYNAMIC] checking Descriptor parameter: #{@global_name}.#{port.get_name} ... #{param.get_name}\n" )
+            # print( "[DYNAMIC] checking Descriptor parameter: #{@global_name}.#{port.get_name} ... #{param.get_name}\n" )
+            if port.get_port_type == :CALL then
+              if param.get_direction == :IN
+                next if find_ref_desc_port signature
+                next if find_descriptor_param signature, :DYNAMIC
+              elsif param.get_direction == :OUT
+                next if find_dynamic_port signature
+                next if find_descriptor_param signature, :REF_DESC
+              end
+            else  # :ENTRY
+              if param.get_direction == :IN
+                next if find_dynamic_port signature
+                next if find_descriptor_param signature, :REF_DESC
+              elsif param.get_direction == :OUT
+                next if find_ref_desc_port signature
+                next if find_descriptor_param signature, :DYNAMIC
+              end
+            end
+            cdl_warning( 'W9999 "$1" cannot handle Descriptor "$2" information for port "$3"', @name, param.get_name, port.get_name )
+          }
+        end
+      end
+    }
+  end
+
+  def find_dynamic_port signature
+    dbgPrint "[DYNAMIC] find_dynamic_port signature=#{signature.get_name}"
+    @port.each{ |port|
+      dbgPrint "[DYNAMIC] port=#{port.get_name} signature=#{port.get_signature.get_name} dynamic=#{port.is_dynamic?}"
+      return port if port.is_dynamic? && port.get_signature == signature
+    }
+    return nil
+  end
+  def find_ref_desc_port signature
+    if signature == nil then  # すでにエラー
+      return nil
+    end
+    dbgPrint "[DYNAMIC] find_ref_desc_port signature=#{signature.get_name}"
+    @port.each{ |port|
+      dbgPrint "[DYNAMIC] port=#{port.get_name} signature=#{port.get_signature.get_name} ref_desc=#{port.is_ref_desc?}"
+      return port if port.is_ref_desc? && port.get_signature == signature
+    }
+    return nil
+  end
+  #=== Celltype#ディスクリプタ型でシグニチャが一致し dyn_ref に対応づく引数を探す
+  #dyn_ref::Symbol: :DYNAMIC=ディスクリプタを得る手段となる引数を探す．:REF_DESC=渡す手段となる引数を探す
+  def find_descriptor_param signature, dyn_ref
+    param_list = []
+    @port.each{ |port|
+      port.each_param{ |port, func, param|
+        type = param.get_type
+        while type.kind_of? PtrType
+          type = type.get_type
+        end
+        dbgPrint( "[DYNAMIC] dyn_ref=#{dyn_ref} port_type=#{port.get_port_type} dir=#{param.get_direction} paramName=#{param.get_name} paramType=#{type.class}\n" )
+        # print( "[DYNAMIC] dyn_ref=#{dyn_ref} port_type=#{port.get_port_type} dir=#{param.get_direction} paramName=#{param.get_name} paramType=#{type.class}\n" )
+        if type.kind_of? DescriptorType then
+          if type.get_signature == signature then
+            dir = param.get_direction
+            if dir == :INOUT then
+              dbgPrint( "[DYNAMIC] found INOUT Descriptor parameter: #{@global_name}.#{port.get_name} ... #{param.get_name}\n" )
+              # print( "[DYNAMIC] found INOUT Descriptor parameter: #{@global_name}.#{port.get_name} ... #{param.get_name}\n" )
+              return param
+            elsif dyn_ref == :DYNAMIC then
+              if dir == :IN && port.get_port_type == :ENTRY ||
+                 dir == :OUT && port.get_port_type == :CALL then
+                dbgPrint( "[DYNAMIC] found INBOUND Descriptor parameter: #{@global_name}.#{port.get_name} ... #{param.get_name}\n" )
+                # print( "[DYNAMIC] found INBOUND Descriptor parameter: #{@global_name}.#{port.get_name} ... #{param.get_name}\n" )
+                return param
+              end
+            elsif dyn_ref == :REF_DESC
+              if dir == :IN && port.get_port_type == :CALL ||
+                 dir == :OUT && port.get_port_type == :ENTRY then
+                dbgPrint( "[DYNAMIC] found OUTBOUND Descriptor parameter: #{@global_name}.#{port.get_name} ... #{param.get_name}\n" )
+                # print( "[DYNAMIC] found OUTBOUND Descriptor parameter: #{@global_name}.#{port.get_name} ... #{param.get_name}\n" )
+                return param
+              end
+            else
+              raise "unknown ref_desc"
+            end
+          end
+        end
+      }
+    }
+    return nil
   end
 
@@ -895,4 +1141,5 @@
   # シングルトンセルが同じ linkunit に複数ないかチェック
   def new_cell( cell )
+    dbgPrint "Celltype#new_cell( #{cell.get_name} )\n"
     # Celltype では Cell の set_owner しない
     # シングルトンで、プロトタイプ宣言でない場合、コード生成対象リージョンの場合
@@ -905,7 +1152,12 @@
     end
     @cell_list << cell
+
+    # プラグインにより生成されたセルタイプか ?
     if @plugin then
       @plugin.new_cell cell
     end
+
+    # セルタイププラグインの適用
+    celltype_plugin_new_cell cell
   end
 
@@ -919,7 +1171,14 @@
   #     呼び口（ただし、最適化で不要となるものは除く）
   def has_INIB?
-#    print "name=#{@name} @n_attribute_ro=#{@n_attribute_ro}  @n_var_size_is=#{@n_var_size_is} @n_call_port=#{@n_call_port} @n_call_port_omitted_in_CB=#{@n_call_port_omitted_in_CB} @n_entry_port_array_ns=#{@n_entry_port_array_ns}\n"
-    return $rom && (@n_attribute_ro > 0 || @n_var_size_is > 0 || ( @n_call_port - @n_call_port_omitted_in_CB ) > 0 || @n_entry_port_array_ns > 0)
-#    return $rom && (@n_attribute_ro > 0 || ( @n_call_port - @n_call_port_omitted_in_CB ) > 0)
+
+    result = $rom &&
+             (@n_attribute_ro > 0 ||
+              @n_var_size_is > 0 ||
+              ( @n_call_port - @n_call_port_omitted_in_CB - (@n_call_port_dynamic-@n_call_port_array_dynamic) ) > 0 ||
+              $ram_initializer && @n_call_port_dynamic > 0 ||
+              @n_entry_port_array_ns > 0)
+    # print "name=#{@name} n_attribute_ro=#{@n_attribute_ro}  n_var_size_is=#{@n_var_size_is} n_call_port=#{@n_call_port} n_call_port_omitted_in_CB=#{@n_call_port_omitted_in_CB} n_call_port_dynamic=#{@n_call_port_dynamic} n_call_port_array_dynamic=#{@n_call_port_array_dynamic} n_entry_port_array_ns=#{@n_entry_port_array_ns} has_INIB?=#{result}\n"
+
+    return result
   end
 
@@ -934,5 +1193,5 @@
   def has_CB?
     if $rom then
-      return @n_attribute_rw > 0 || (@n_var-@n_var_size_is) > 0
+      return @n_attribute_rw > 0 || (@n_var-@n_var_size_is) > 0 || (@n_call_port_dynamic - @n_call_port_array_dynamic) > 0
       # return @n_attribute_rw > 0 || @n_var > 0
     else
@@ -943,5 +1202,5 @@
   #=== Celltype# SET_CB_INIB_POINTER, INITIALIZE_CB が必要か
   def need_CB_initializer?
-    @n_var_init > 0 || has_CB?
+    @n_var_init > 0 || has_CB? || ( @n_call_port_dynamic && $ram_initializer )
   end
 
@@ -998,4 +1257,12 @@
   def is_active?
     @active
+  end
+
+  def idx_is_id_act?
+    @idx_is_id_act
+  end
+
+  def multi_domain?
+    @b_need_ptab
   end
 
@@ -1120,4 +1387,5 @@
 #                                               逆require ポートに対して複数の結合がないかチェックする
 # @generate:: [ Symbol, String, Plugin ]  = [ PluginName, option, Plugin ] Plugin は生成後に追加される
+# @b_post_code_generated:: Bool: true if generated in tmp_plugin_post_code.cdl
 #
 # composite のためインスタンス変数
@@ -1142,5 +1410,7 @@
 # @id:: Integer : コード生成直前に設定  (プロトタイプ宣言の場合は -1 のまま放置)
 # @id_specified::Integer : 指定された id
-# @restrict_list::{ entry_name => { func_name, [ region_name, ... ] } }
+# @restrict_list::{ entry_name => { func_name, [ region_path_str, ... ] } }
+# @restrict_list2::{ entry_name => { func_name, [ domain_root_region, ... ] } }
+# @b_restrict_referenced::Bool: restrict_list が参照れた
 
 =begin
@@ -1187,11 +1457,4 @@
   end
 
-
-  # composite で clone されたもの（子孫まで含む）
-  # Join.change_rhs_port にて CompoisteCelltype 内の Join の結合先を変更する際に使用
-  @@cloned_cell_list = {}
-  ### mikan BUG @@cloned_cell_list は composite の階層ごとに記憶していないため、同じ名前が内部に現れると、うまく動作しない
-  # change_rhs_port の実装は、こんな回りくどいことをする必要はなかった。右辺に現れるセル名には、composite のセル名を前につなげるだけでよかった
-
   def initialize( ct_path, in_composite = false )
     super()
@@ -1233,4 +1496,7 @@
     @referenced_port_list = {}
     @restrict_list = {}
+    @restrict_list2 = {}
+    @b_restrict_referenced = false
+    @b_post_code_generated = false
 
     @cell_list = {}
@@ -1258,5 +1524,5 @@
       cell_prev = CompositeCelltype.find( name )
       if cell_prev == nil then
-        CompositeCelltype.new_cell( self )
+        CompositeCelltype.new_cell_in_composite( self )
       end
     else
@@ -1437,4 +1703,5 @@
 
     else
+      dbgPrint "new_join: cell=#{@name} add_item=#{join.get_name}\n"
       # join
       @join_list.add_item( join )
@@ -1500,5 +1767,10 @@
 
         # 呼び口側のセルと、そのセルタイプ
-        cell = Namespace.find cp_cell_nsp
+        if ! @in_composite then
+          cell = Namespace.find cp_cell_nsp
+        else
+          cell = CompositeCelltype.find cp_cell_nsp.to_s.to_sym
+        end
+
         if ! cell.instance_of? Cell then
           cdl_error( "S9999 '$1': not cell for reverse join", cp_cell_nsp.get_path_str )
@@ -1510,5 +1782,11 @@
         end
 
-        ep_cell_nsp = get_namespace_path
+        if ! @in_composite then
+          ep_cell_nsp = get_namespace_path
+          ep_cell_nsp_str = ep_cell_nsp.get_path_str
+        else
+          ep_cell_nsp = NamespacePath.new @name, false
+          ep_cell_nsp_str = @name
+        end
         ep_subscript_val = ep_subscript ? ep_subscript.eval_const( nil ) : nil
         rhs = Expression.create_cell_join_expression( ep_cell_nsp, ep_subscript_val, ep_name, rj.get_locale )
@@ -1521,5 +1799,5 @@
           ss_str = ""
         end
-        dbgPrint "create_reverse_join: #{cell.get_name}.#{cp_name}#{ss_str} => #{ep_cell_nsp.get_path_str}.ep_name\n"
+        dbgPrint "create_reverse_join: #{cell.get_name}.#{cp_name}#{ss_str} => #{ep_cell_nsp_str}.#{ep_name}\n"
       }
     end
@@ -1565,4 +1843,7 @@
       set_specifier_list( Generator.get_statement_specifier )
     end
+    if TECSGEN.post_coded?
+      @b_post_code_generated = true
+    end
     set_f_def f_def
 
@@ -1581,5 +1862,6 @@
 
     if ! @in_composite then
-      if @celltype.instance_of? Celltype then
+      # if @celltype.instance_of? Celltype then
+      if @celltype then  # composite でも呼びだす, エラー時 nil
         @celltype.new_cell self
       end
@@ -1702,28 +1984,31 @@
   end
 
-  #=== Cell# セルタイププラグイン (generate 指定子)
+  #=== Cell# セルプラグイン (generate 指定子)
   def cell_plugin
-
-    load_plugin( @generate[0], CellPlugin )
-
     plugin_name = @generate[0]
     option = @generate[1]
-    plugin_object = nil
-    eval_str = "plugin_object = #{plugin_name}.new( self, option )"
+    @generate[2] = apply_plugin plugin_name, option
+  end
+
+  def apply_plugin plugin_name, option
+    if ! @b_defined then
+      cdl_error( "S9999 plugin cannot apply to prototype cell '$1'", @name )
+    end
+
+    plClass = load_plugin( plugin_name, CellPlugin )
+    # return if plClass == nil # 従来と仕様が変わるので、継続する
     if $verbose then
-      print "new cell : #{eval_str}\n"
+      print "new cell plugin: plugin_object = #{plClass.class.name}.new( #{@name}, #{option} )\n"
     end
 
     begin
-      eval( eval_str )     # plugin を生成
+      plugin_object = plClass.new( self, option )
       plugin_object.set_locale @locale
-      @generate[ 2 ] = plugin_object
       generate_and_parse plugin_object
     rescue Exception => evar
       cdl_error( "S1166 $1: fail to new", plugin_name )
-      print "eval( #{eval_str} )\n"
-
       print_exception( evar )
     end
+    return  plugin_object
   end
 
@@ -1742,11 +2027,10 @@
 
     # debug
-    dbgPrint "Cell#clone_for_composite : cloning: #{@name} #{global_name}  b_defined=#{@b_defined}\n"
+    dbgPrint "  CLONING Cell#clone_for_composite : cloning: #{@name} #{global_name}  b_defined=#{@b_defined} #{self}=>#{@my_clone} \n"
+    dbgPrint "              my_name=#{@name} name=#{name} owner class=#{@owner.class.name}\n"
 
     @my_clone = self.clone
-    @@cloned_cell_list[ self ] = @my_clone
 
     # clone したセルの内部に持つ名前情報を調整する
-
     @my_clone.set_cloned( name, global_name, namespacePath, join_array, ct_name, region, plugin, locale )
 
@@ -1772,5 +2056,5 @@
     # debug
     dbgPrint "cell.set_cloned : global_name: #{global_name}  name: #{name}  @name: #{@name}\n"
-
+    dbgPrint "set_cloned:  entry_array_max_subscript.len=#{@entry_array_max_subscript.length}\n"
     @global_name = :"#{global_name}_#{@name}"
     @name = :"#{name}_#{@name}"
@@ -1796,5 +2080,5 @@
     @alloc_list = []
     @require_joined_list = {}
-    @entry_array_max_subscript = {}
+    @entry_array_max_subscript = @entry_array_max_subscript.dup
     @cell_list = {}
     @cell_list2 = []
@@ -1805,4 +2089,12 @@
       @join_list.change_item j
     }
+  end
+
+  #=== clone されたセルが composite の場合、内部セルを展開する
+  #self:: clone されたセルでなければならない
+  def expand_inner
+    if ! @f_cloned then
+      raise "expnad_inner: not cloned cell"
+    end
 
     # clone しようとするセルが composit セルタイプ？
@@ -1811,25 +2103,16 @@
       @cell_list, @cell_list2 = @celltype.expand( @name, @global_name, @NamespacePath, @join_list, @region, @plugin, @locale )
     end
-
   end
 
   #=== Cell# clone された cell の join_list の右辺の変更
   #  呼び口の右辺の cell を他の clone された cell に置換え
-  def change_rhs_port
+  def change_rhs_port cloned_cell_list
 
     # debug
-    dbgPrint "Cell change_rhs_port: global_name: #{@global_name}\n"
+    dbgPrint "=====   Cell#change_rhs_port: name=#{@name}   =====\n"
 
     @join_list.get_items.each { |j|
-      j.change_rhs_port( @@cloned_cell_list, @celltype )
-    }
-
-    if @celltype.instance_of?( CompositeCelltype ) then
-
-      # 入れ子のセルについても変更
-      @cell_list.each{ |name,c|
-        c.change_rhs_port
-      }
-    end
+      j.change_rhs_port( cloned_cell_list, @celltype )
+    }
   end
 
@@ -1891,4 +2174,18 @@
   def is_in_composite?
     @in_composite
+  end
+
+  #=== Cell# composite のセルか？
+  def is_of_composite?
+    if @celltype.kind_of? CompositeCelltype
+      return true
+    else
+      return false
+    end
+  end
+
+  #=== Cell# tmp_plugin_post_code.cdl で生成されたセルか？
+  def post_code_generated?
+    @b_post_code_generated
   end
 
@@ -1980,4 +2277,6 @@
 
       # セルタイプ内で port_name の CompositeCelltypeJoin を探す（コード生成段階では必ず見つかる）
+      # print "get_real_cell: cell=#{@name} port=#{port_name}\n"
+      # pp @cell_list
       cj = @celltype.find_export( port_name )
 
@@ -1991,4 +2290,13 @@
   end
 
+  #=== Cell#get_real_celltype
+  #
+  def get_real_celltype( port_name )
+    if @celltype.instance_of?( CompositeCelltype ) then
+      return @celltype.get_real_celltype port_name
+    else
+      return @celltype
+    end
+  end
 
   #=== Cell# 受け口のport の参照カウントをアップする
@@ -2033,4 +2341,16 @@
   end
 
+  #Cell#属性の初期値を得る
+  #attr_name::Symbol  必ず初期化されていないと Ruby 例外となる
+  def get_attr_initializer attr_name
+    val = @join_list.get_item( attr_name )
+    if val == nil then
+      val = (@celltype.find  attr_name).get_initializer
+    else
+      val = val.get_rhs
+    end
+    return val
+  end
+
   def get_celltype
     @celltype
@@ -2075,10 +2395,13 @@
   #=== Cell# composite の内側セルの受け口配列の添数の最大値を設定
   def set_entry_inner_port_max_subscript( port, num )
-    if @cell_list == nil then   # mikan これって問題ない？
-      return    # プロトタイプ宣言しかされていなくて、内側セルが展開されていない
+    if @cell_list == nil then
+      return    # プロトタイプ宣言しかされていなくて、内側セルが展開されていない　or composite 展開前
     end
 
     # composite の内側のセルに伝播
     if @celltype.instance_of? CompositeCelltype then
+      dbgPrint "set_entry_inner_port_max_subscript #{@name} #{@port} #{num} cell_list.len=#{@cell_list.length}\n"
+      # @cell_list.each{ |c, p| print c, p, '\n' }
+
       cj = @celltype.find_export port.get_name
       if cj && @cell_list[ cj.get_cell_name.to_s ] then
@@ -2278,6 +2601,12 @@
         else
           cell = j.get_rhs_cell2
-          next if cell == nil     # 右辺が見つからなかった．既にエラー
+          next if cell == nil || cell.get_celltype == nil     # 右辺が見つからなかった．既にエラー
           port = cell.get_celltype.find( j.get_rhs_port2 )
+          if port == nil then
+            dbgPrint "set_port_ref: #{@name}.#{j.get_name} = #{cell.get_name}.#{j.get_rhs_port2}\n"
+            # through プラグインで生成されたセルの受け口が見つからないケース (のハズ)
+            cdl_error( "entry '$1' not found in '$2' refered from $3.$4", j.get_rhs_port2, cell.get_name, @name, j.get_name )
+            next
+          end
           dbgPrint( "set_port_reference_count: #{@name}.#{j.get_name} => #{cell.get_name}.#{port.get_name}\n")
           cell.port_referenced port
@@ -2672,4 +3001,5 @@
           }
         else
+          dbgPrint "set_definition_join: #{@name}.#{join.get_name} celltype=#{@celltype.get_name}\n"
           join.set_definition( @celltype.find(join.get_name) )
         end
@@ -2687,15 +3017,4 @@
       expand
     end
-
-    # celltype に generate が指定されされているか
-    celltype_plugin = @celltype.get_celltype_plugin
-    if celltype_plugin then
-      begin
-        celltype_plugin.new_cell self
-      rescue Exception => evar
-        cdl_error( "S1037 $1: celltype plugin fail to new_cell" , celltype_plugin.class.name )
-        print_exception( evar )
-      end
-    end
   end
 
@@ -2705,8 +3024,5 @@
 
     #debug
-    dbgPrint "expanding #{@name} #{@celltype.get_name}\n"
-
-    # 展開されたセルのリスト
-    @@cloned_cell_list = {}
+    dbgPrint "=====    expanding   #{@name}     =====\n"
 
     # composite celltype の cell を展開
@@ -2718,10 +3034,17 @@
       set_f_ref
     end
-
-    # 呼び口の右辺のセルを clone したものに変更
-    self.change_rhs_port
+  end
+
+  #=== Cell#内部セルの受け口添数最大値を設定
+  def set_max_entry_port_inner_cell
+    if @cell_list == nil then
+      return
+    end
+
+    dbgPrint "set_max_entry_port_inner_cell name=#{@name} entry_array_max_subscript.len=#{@entry_array_max_subscript.length}\n"
 
     # プロトタイプ宣言で設定されていたものを反映する
     @entry_array_max_subscript.each{ |port,name|
+      dbgPrint "set_entry_inner_port_max_subscript( #{port}, #{name} )\n"
       set_entry_inner_port_max_subscript( port, name )
     }
@@ -2730,72 +3053,111 @@
   #=== Cell#restrict を追加
   def add_restrict( entry_name, func_name, region_name_list )
-    if @restrict_list[ entry_name ] then
-      if @restrict_list[ entry_name ][ func_name ] then
-        @restrict_list[ entry_name ][ func_name ].each{ |rn|
-          if region_name_list.include? rn then
-            # p func_name
-            name = func_name ? entry_name : entry_name+"."+func_name
-            cdl_warning( "W9999 $1 restrict region duplicate $2", name, rn )
+    if @restrict_list[ entry_name ] == nil then
+      @restrict_list[ entry_name ] = {}
+      @restrict_list2[ entry_name ] = {}
+    end
+    if @restrict_list[ entry_name ][ func_name ] == nil then
+      @restrict_list[ entry_name ][ func_name ] = []
+      @restrict_list2[ entry_name ][ func_name ] = []
+    end
+    region_name_list.each { |rp|
+      @restrict_list[ entry_name ][ func_name ] << rp
+      # p "Class: " + rp.to_s
+      obj = Namespace.find rp
+      if ( obj.kind_of? Region ) then
+        @restrict_list2[ entry_name ][ func_name ] << obj.get_domain_root
+      else
+        cdl_error( "S9999 $1 not found or not region", rp.to_s )
+      end
+    }
+  end
+
+  #=== Cell#check_restrict_list
+  def check_restrict_list
+    # p "check_restrict_list"
+    @restrict_list.each{ |entry_name, func_hash|
+      func_hash.each{ |func_name, region_list|
+        region_list.each{ |rp|
+          obj = Namespace.find rp
+          if ( obj.kind_of? Region ) then
+            if obj.get_domain_root != @region.get_domain_root then
+            else
+              cdl_info( "I9999 $1: restrict calling domain to $2, which is same domain as the cell locates", @name, rp.to_s )
+              # restrict を同じドメインを指定してもよいこととする (HRP3)
+              # KernelDoamin 内のセルに対し、KernelDomain に restrict している場合、
+              # 無所属経由で結合されているが、KernelDomain から呼出すことを想定した許可
+            end
+          else
+            cdl_error( "S9999 $1 not region", rp.to_s )
+          end
+        }
+      }
+    }
+  end
+
+  #=== Cell#callable?
+  def callable?( callee_cell, entry_name, func_name )
+    # p "callable? #{@name}"
+    res = callee_cell.callable_from?( entry_name, func_name, self )
+    dbgPrint "callable? #{callee_cell.get_namespace_path}.#{entry_name}.#{func_name} from #{@NamespacePath} is #{res}\n"
+    return res
+  end
+
+  #=== Cell#callable_from? (private)
+  def callable_from?( entry_name, func_name, caller_cell )
+    @b_restrict_referenced = true
+    if @restrict_list.length == 0 then
+      return true
+    end
+
+    dr = caller_cell.get_region.get_domain_root
+    if @restrict_list[entry_name] then
+      if @restrict_list[entry_name][func_name] then
+        @restrict_list2[entry_name][func_name].each{ |region|
+          if dr == region then
+            return true
+          end
+        }
+      elsif @restrict_list[entry_name][nil] then
+        @restrict_list2[entry_name][nil].each{ |region|
+          if dr == region then
+            return true
           end
         }
       else
-        @restrict_list[ entry_name ][ func_name ] = region_name_list
-      end
-    else
-      func_list = { }
-      func_list[ func_name ] = region_name_list
-      @restrict_list[ entry_name ] = func_list
-    end
-    # pp @restrict_list
-  end
-
-  #=== Cell#check_restrict_list
-  def check_restrict_list
-    @restrict_list.each{ |entry_name, func_hash|
-      func_hash.each{ |func_name, region_list|
-        region_list.each{ |rn|
-          obj = Namespace.find [ rn ]
-          if ( obj.kind_of? Region ) then
-            if obj.get_domain_root != @region.get_domain_root then
-            else
-              cdl_warning( "W9999 $1 in same domain", rn )
-            end
-          else
-            cdl_error( "S9999 $1 not region", region )
-          end
-        }
-      }
-    }
-  end
-
-  #=== Cell#callable?
-  def callable?( callee_cell, entry_name, func_name )
-    res = callee_cell.callable_from?( entry_name, func_name, self )
-    dbgPrint "callable? #{callee_cell.get_namespace_path}.#{entry_name}.#{func_name} from #{@NamespacePath} is #{res}\n"
-    return res
-  end
-
-  #=== Cell#callable_from? (private)
-  def callable_from?( entry_name, func_name, caller_cell )
-    if @restrict_list.length == 0 then
+        return false
+      end
+    else
+      return false
+    end
+  end
+
+  #=== Cell#get_callable_regions( entry_name, func_name )
+  # func_name=nil の場合、entry_name の可否をチェック数る
+  # nil が返る場合、制限されていないことを意味する
+  def get_restricted_regions( entry_name, func_name )
+    # p "get_restricted_regions #{@name}"
+    @b_restrict_referenced = true
+    if @restrict_list[entry_name] then
+      if @restrict_list[entry_name][func_name] then
+        return @restrict_list2[entry_name][func_name]
+      else
+        return @restrict_list2[entry_name][nil]
+      end
+    end
+    return nil
+  end
+
+  #=== Cell#has_ineffective_restrict_specifier
+  # restrict 指定子が指定されていて、参照されていない場合 true
+  # 参照は、HRPSVCPlugin のみ
+  def has_ineffective_restrict_specifier
+    if @restrict_list.length != 0 && @b_restrict_referenced == false then
       return true
-    end
-
-    if @restrict_list[entry_name] then
-      if @restrict_list[entry_name][nil] &&
-         @restrict_list[entry_name][nil].include?( caller_cell.get_region.get_domain_root.get_name )then
-        return true
-      end
-      if @restrict_list[entry_name][func_name] &&
-         @restrict_list[entry_name][func_name].include?( caller_cell.get_region.get_domain_root.get_name )then
-        return true
-      else
-        return false
-      end
-    else
-      return true
-    end
-  end
-  
+    else
+      return false
+    end
+  end
+
   def show_tree( indent )
     indent.times { print "  " }
@@ -2857,5 +3219,6 @@
 # @name:: str
 # @global_name:: str
-# @cell_list:: NamedList   Cell
+# @cell_list_in_composite:: NamedList   Cell
+# @cell_list::Array :: [ Cell ] : cell of CompositeCelltype's cell
 # @export_name_list:: NamedList : CompositeCelltypeJoin
 # @port_list:: CompositeCelltypeJoin[]
@@ -2867,8 +3230,13 @@
 # @name_list:: NamedList item: Decl (attribute), Port エクスポート定義
 # @internal_allocator_list:: [ [cell, internal_cp_name, port_name, func_name, param_name, ext_alloc_ent], ... ]
+# @generate:: [ Symbol, String, Plugin ]  = [ PluginName, option, Plugin ] Plugin は生成後に追加される
+# @generate_list:: [ [ Symbol, String, Plugin ], ... ]   generate 文で追加された generate
 
   @@nest_stack_index = -1
   @@nest_stack = []
   @@current_object = nil
+
+  include CelltypePluginModule
+  include PluginModule
 
   def self.push
@@ -2889,5 +3257,6 @@
     super()
     @name = name
-    @cell_list = NamedList.new( nil, "in composite celltype #{name}" )
+    @cell_list_in_composite = NamedList.new( nil, "in composite celltype #{name}" )
+    @cell_list = []
     @export_name_list = NamedList.new( nil, "export in composite celltype #{name}" )
     @name_list = NamedList.new( nil, "in composite celltype #{name}" )
@@ -2910,4 +3279,5 @@
     @attr_list = []
     @internal_allocator_list = []
+    @generate_list = []
     set_specifier_list( Generator.get_statement_specifier )
   end
@@ -2920,5 +3290,4 @@
   # CompositeCelltype#end_of_parse
   def end_of_parse
-
     # singleton に関するチェック
     if @b_singleton && @real_singleton == nil then
@@ -2960,11 +3329,19 @@
     # mikan relay が正しく抜けているかチェックされていない
 
+    # callback 結合
+    @cell_list_in_composite.get_items.each{ |c|
+      ct = c.get_celltype
+      if ct then
+        c.create_reverse_join
+      end
+    }
+
     # 意味解析
-    @cell_list.get_items.each{ |c|
+    @cell_list_in_composite.get_items.each{ |c|
       c.set_definition_join
     }
 
     # cell の未結合の呼び口がないかチェック
-    @cell_list.get_items.each{ |c|
+    @cell_list_in_composite.get_items.each{ |c|
       c.check_join
       c.check_reverse_require
@@ -3004,15 +3381,20 @@
       }
     }
-  end
-
- ### cell (CompositeCelltype)
-  def self.new_cell( cell )
-    @@current_object.new_cell( cell )
-
-  end
-
-  def new_cell( cell )
+
+    # composite プラグイン
+    if @generate then
+      celltype_plugin
+    end
+  end
+
+ ### CompositeCelltype#new_cell_in_composite
+  def self.new_cell_in_composite( cell )
+    @@current_object.new_cell_in_composite( cell )
+
+  end
+
+  def new_cell_in_composite( cell )
     cell.set_owner self  # Cell (in_omposite)
-    @cell_list.add_item( cell )
+    @cell_list_in_composite.add_item( cell )
     if cell.get_celltype then    # nil ならば、すでにセルタイプなしエラー
       if cell.get_celltype.is_singleton? then
@@ -3031,4 +3413,12 @@
 					 internal_cell_elem_name, type )
     
+  end
+
+ ### CompositeCelltype#new_cell
+  def new_cell cell
+    @cell_list << cell
+
+    # セルタイププラグインの適用
+    celltype_plugin_new_cell cell
   end
 
@@ -3050,5 +3440,5 @@
     dbgPrint "new_join: #{export_name} #{internal_cell_name} #{internal_cell_elem_name}\n"
 
-    cell = @cell_list.get_item( internal_cell_name )
+    cell = @cell_list_in_composite.get_item( internal_cell_name )
     if cell == nil then
       cdl_error( "S1057 $1 not found in $2" , internal_cell_name, @name )
@@ -3107,4 +3497,8 @@
         elsif obj.is_omit? != obj2.is_omit? then
           cdl_error( "S9999 $1 : omit specifier mismatch with previous definition" , export_name )
+        elsif obj.is_dynamic? != obj2.is_dynamic? then
+          cdl_error( "S9999 $1 : dynamic specifier mismatch with previous definition" , export_name )
+        elsif obj.is_ref_desc? != obj2.is_ref_desc? then
+          cdl_error( "S9999 $1 : ref_desc specifier mismatch with previous definition" , export_name )
         end
       else
@@ -3292,5 +3686,5 @@
   def find name
     dbgPrint "CompositeCelltype: find in composite: #{name}\n"
-    cell = @cell_list.get_item( name )
+    cell = @cell_list_in_composite.get_item( name )
     return cell if cell
 
@@ -3333,7 +3727,8 @@
     clone_cell_list = {}
     clone_cell_list2 = []
+    clone_cell_list3 = {}
 
     #  composite 内部のすべての cell について
-    @cell_list.get_items.each { |c|
+    @cell_list_in_composite.get_items.each { |c|
 
       # debug
@@ -3359,5 +3754,5 @@
           # debug
           if j then
-            dbgPrint "expand : parent cell: #{name} child cell: #{c.get_name}:  parent's export port: #{cj.get_name}  join: #{j.get_name} #{j}\n"
+            dbgPrint "  REWRITE_EX parent cell: #{name} child cell: #{c.get_name}:  parent's export port: #{cj.get_name}  join: #{j.get_name}=>#{j.get_rhs.to_s}\n"
           else
             dbgPrint "expand : parent cell: #{name} child cell: #{c.get_name}:  parent's export port: #{cj.get_name}  join: nil\n"
@@ -3394,4 +3789,5 @@
       clone_cell_list[ "#{c.get_local_name}" ] = c2
       clone_cell_list2 << c2
+      clone_cell_list3[ c ] = c2
 
     }
@@ -3403,4 +3799,9 @@
         j.set_cloned( clone_cell_list[ "#{c.get_local_name}" ] )
       }
+      dbgPrint "change_rhs_port: inner cell #{c.get_name}\n"
+      c.change_rhs_port clone_cell_list3
+    }
+    clone_cell_list2.each { |c|
+      c.expand_inner
     }
     return [ clone_cell_list, clone_cell_list2 ]
@@ -3419,4 +3820,9 @@
       when :ACTIVE
         @b_active = true
+      when :GENERATE
+        if @generate then
+          cdl_error( "S9999 generate specifier duplicate"  )
+        end
+        @generate = [ s[1], s[2] ] # [ PluginName, "option" ]
       else
         cdl_error( "S1071 $1 cannot be specified for composite" , s[0] )
@@ -3429,4 +3835,8 @@
   end
 
+  def get_global_name
+    @global_name
+  end
+
   def get_port_list
     @port_list
@@ -3443,4 +3853,16 @@
   def get_internal_allocator_list
     @internal_allocator_list
+  end
+
+  #== CompositeCelltype#get_real_celltype
+  # port_name に接続されている内部のセルタイプを得る
+  def get_real_celltype( port_name )
+    cj = find_export port_name
+    inner_celltype = cj.get_cell.get_celltype
+    if inner_celltype.instance_of? CompositeCelltype then
+      return inner_celltype.get_real_celltype
+    else
+      return inner_celltype
+    end
   end
 
@@ -3465,5 +3887,5 @@
   def is_inactive?
     if @b_active == false then
-      @cell_list.get_items.each{ |c|
+      @cell_list_in_composite.get_items.each{ |c|
         if c.get_celltype && c.get_celltype.is_inactive? == false then
           # c.get_celltype == nil の場合はセルタイプ未定義ですでにエラー
@@ -3486,5 +3908,5 @@
     (indent+1).times { print "  " }
     puts "active: #{@b_active}, singleton: #{@b_singleton}"
-    @cell_list.show_tree( indent + 1 )
+    @cell_list_in_composite.show_tree( indent + 1 )
     (indent+1).times { print "  " }
     puts "name_list"
@@ -3532,5 +3954,5 @@
 # @b_omit:: bool : omit 指定子が指定された (call port のみ)
 # @b_optional:: bool : call port のみ
-# @b_ref_des:: bool :  ref_desc キーワードが指定された
+# @b_ref_desc:: bool :  ref_desc キーワードが指定された
 # @b_dynamic:: bool :  dynamic キーワードが指定された (呼び口のみ)
 #
@@ -3638,4 +4060,5 @@
     @b_inline = false
     @b_optional = false
+    @b_omit = false
     @b_ref_desc = false
     @b_dynamic = false
@@ -3655,5 +4078,5 @@
     else
       # entry port optimize
-      if $unopt then
+      if $unopt || $unopt_entry then
         # 最適化なし
         @b_VMT_useless = false                     # VMT 不要 (true の時 VMT を介することなく呼出す)
@@ -3786,4 +4209,8 @@
         @b_optional = true
       when :REF_DESC
+        if @port_type == :ENTRY then
+          cdl_error( "S9999 ref_desc: cannnot be specified for entry port" )
+          next
+        end
         @b_ref_desc = true
       when :DYNAMIC
@@ -3806,4 +4233,21 @@
       end
     }
+    if ( @b_dynamic || @b_ref_desc ) then
+      if @b_dynamic then
+        dyn_ref = "dynamic"
+      else
+        dyn_ref = "ref_desc"
+      end
+      if @b_omit then     # is_omit? は is_empty? も含んでいるので使えない
+        cdl_error( "S9999 omit cannot be specified with $1", dyn_ref  )
+      elsif @signature && @signature.is_empty? then
+        cdl_error( "S9999 $1 cannot be specified for empty signature", dyn_ref  )
+      elsif @signature && @signature.has_descriptor? then
+        # cdl_error( "S9999 $1 port '$2' cannot have Descriptor in its signature", dyn_ref, @name )
+      end
+
+    elsif @b_dynamic && @b_ref_desc then
+      cdl_error( "S9999 both dynamic & ref_desc cannot be specified simultaneously"  )
+    end
   end
 
@@ -3958,9 +4402,21 @@
 
   def is_VMT_useless?                     # VMT 関数テーブルを使用しない
-   @b_VMT_useless
+    if @port_type == :ENTRY && $unopt_entry == true then
+      # プラグインから $unopt_entry を設定するケースのため
+      # ここで読み出すときに、false を返す (reset_optimize での設定変更は速すぎる)
+      return false
+    else
+      return @b_VMT_useless
+    end
   end
 
   def is_skelton_useless?                 # スケルトン関数不要   (true の時、受け口関数を呼出す)
-    @b_skelton_useless
+    if @port_type == :ENTRY && $unopt_entry == true then
+      # プラグインから $unopt_entry を設定するケースのため
+      # ここで読み出すときに、false を返す (reset_optimize での設定変更は速すぎる)
+      return false
+    else
+      return @b_skelton_useless
+    end
   end
 
@@ -4078,4 +4534,14 @@
   def is_reverse_required?
     @reverse_require_cell_path != nil
+  end
+
+  #=== Port# is_dynamic?
+  def is_dynamic?
+    @b_dynamic
+  end
+
+  #=== Port# is_ref_desc?
+  def is_ref_desc?
+    @b_ref_desc
   end
 
@@ -4489,7 +4955,7 @@
       if ! c.get_f_def then   # Namespace の @cell_list にはプロトタイプが含まれるケースあり
         if c.get_f_ref then
-          cdl_error( "S1093 $1 : undefined cell" , c.get_namespace_path.get_path_str )
+          c.cdl_error( "S1093 $1 : undefined cell" , c.get_namespace_path.get_path_str )
         elsif $verbose then
-          cdl_warning( "W1006 $1 : only prototype, unused and undefined cell" , c.get_namespace_path.get_path_str )
+          c.cdl_warning( "W1006 $1 : only prototype, unused and undefined cell" , c.get_namespace_path.get_path_str )
         end
       else
@@ -4498,5 +4964,8 @@
         # if c.get_f_ref == false && c.is_generate? && ct && ct.is_inactive? then
         if c.get_f_ref == false && ct && ct.is_inactive? then
-          cdl_warning( "W1007 $1 : non-active cell has no entry join and no factory" , c.get_namespace_path.get_path_str )
+          c.cdl_warning( "W1007 $1 : non-active cell has no entry join and no factory" , c.get_namespace_path.get_path_str )
+        end
+        if c.has_ineffective_restrict_specifier then
+          c.cdl_warning( "W9999: $1 has ineffective restrict specifier", c.get_namespace_path.get_path_str )
         end
       end
@@ -4657,4 +5126,16 @@
   end
 
+  #=== Namespace# set_max_entry_port_inner_cell
+  # セルタイプに属するすべてのセルに対して実施
+  def set_max_entry_port_inner_cell
+    # celltype のコードを生成
+    @cell_list.each { |c|
+      c.set_max_entry_port_inner_cell
+    }
+    @namespace_list.each{ |ns|
+      ns.set_max_entry_port_inner_cell
+    }
+  end
+
   #=== Namespace# セルの結合をチェックする
   def check_join
@@ -4681,4 +5162,16 @@
   end
 
+  #== Namespace (Region) に属するセルのリスト
+  def get_cell_list
+    @cell_list
+  end
+
+  #== Namespace (Region)# 子リージョンのリスト
+  #
+  # リージョンは Namespace クラスで namespace として記憶されている
+  def get_region_list
+    @namespace_list
+  end
+  
   def show_tree( indent )
     indent.times { print "  " }
@@ -4904,7 +5397,7 @@
 
     if object == nil then                                             # (2)
-      cdl_error( "S1109 \'$1\' not found" , @cell_name )
+      cdl_error( "S1109 \'$1\' not found" , nsp.to_s )
     elsif ! object.instance_of?( Cell ) then                          # (3)
-      cdl_error( "S1110 \'$1\' not cell" , @cell_name )
+      cdl_error( "S1110 \'$1\' not cell" , nsp.to_s )
     else
       dbgPrint "set_definition: set_f_ref #{@owner.get_name}.#{@name} => #{object.get_name}\n"
@@ -5277,4 +5770,5 @@
           next_cell_nsp       = @through_generated_list[ i + 1 ].get_cell_namespace_path
           next_port_name      = @through_generated_list[ i + 1 ].get_through_entry_port_name
+          next_port_subscript = @through_generated_list[ i + 1 ].get_through_entry_port_subscript
         rescue Exception => evar
           cdl_error( "S1124 $1: plugin function failed: \'get_through_entry_port_name\'" , plugin_name )
@@ -5295,4 +5789,5 @@
         next_cell      = @cell
         next_port_name = @port_name
+        next_port_subscript = @rhs_subscript
 
         if next_cell == nil then
@@ -5306,5 +5801,5 @@
         # region から @cell_name.@port_name への through がないか探す
         # rp = @through_list[i][3].find_cell_port_through_plugin( @cell_name, @port_name ) #762
-        rp = @through_list[i][3].find_cell_port_through_plugin( @cell.get_global_name, @port_name )
+        rp = @through_list[i][3].find_cell_port_through_plugin( @cell.get_global_name, @port_name, @rhs_subscript )
            # @through_list[i] と @region_through_list[i-cp_len] は同じ
         # 共用しないようにするには、見つからなかったことにすればよい
@@ -5317,6 +5812,7 @@
 
       if rp == nil then
-        if( load_plugin( plugin_name, ThroughPlugin ) ) then
-          gen_through_cell_code_and_parse( plugin_name, i, next_cell, next_port_name )
+        plClass = load_plugin( plugin_name, ThroughPlugin )
+        if( plClass ) then
+          gen_through_cell_code_and_parse( plugin_name, i, next_cell, next_port_name, next_port_subscript, plClass )
         end
       else
@@ -5331,5 +5827,5 @@
           # 生成したものを region(@through_list[i][3]) のリストに追加
           # @through_list[i][3].add_cell_port_through_plugin( @cell_name, @port_name, @through_generated_list[i] ) #762
-          @through_list[i][3].add_cell_port_through_plugin( @cell.get_global_name, @port_name, @through_generated_list[i] )
+          @through_list[i][3].add_cell_port_through_plugin( @cell.get_global_name, @port_name, @rhs_subscript, @through_generated_list[i] )
         end
       end
@@ -5365,5 +5861,5 @@
 
   #=== Join# through プラグインを呼び出して CDL 生成させるとともに、import する
-  def gen_through_cell_code_and_parse( plugin_name, i, next_cell, next_port_name )
+  def gen_through_cell_code_and_parse( plugin_name, i, next_cell, next_port_name, next_port_subscript, plClass )
 
     through = @through_list[ i ]
@@ -5389,15 +5885,10 @@
     end
     @@plugin_creating_join = self
-
     caller_cell = @owner
 
-    plugin_object = nil
-    eval_str = "plugin_object = #{plugin_name}.new( '#{generating_cell_name}'.to_sym, plugin_arg.to_s, next_cell, '#{next_port_name}'.to_sym, @definition.get_signature, @celltype, caller_cell )"
-    if $verbose then
-      print "new through: #{eval_str}\n"
-    end
-
     begin
-      eval( eval_str )     # plugin を生成
+      plugin_object = plClass.new( generating_cell_name.to_sym, plugin_arg.to_s,
+                                   next_cell, next_port_name.to_sym, next_port_subscript,
+                                   @definition.get_signature, @celltype, caller_cell )
       plugin_object.set_locale @locale
     rescue Exception => evar
@@ -5406,6 +5897,4 @@
         print "signature: #{@definition.get_signature.get_name} from: #{caller_cell.get_name} to: #{next_cell.get_name} of celltype: #{@celltype.get_name}\n"
       end
-      print "eval( #{eval_str} )\n"
-
       print_exception( evar )
       return 
@@ -5596,5 +6085,12 @@
   end
 
-  def get_rhs_subscript
+  # 末尾数字1 : CDL で指定された、右辺のセルを返す
+  def get_rhs_cell1   # get_cell と同じ
+    @cell
+  end
+  def get_rhs_port1   # get_port_name 同じ
+    @port_name
+  end
+  def get_rhs_subscript1
     @rhs_subscript
   end
@@ -5606,7 +6102,5 @@
     # through 指定あり？
     if @through_list[0] then
-      # mikan through で生成したものが root namespace 限定
       # through で生成されたセルを探す
-#      cell = Namespace.find( [ "::", @through_generated_list[0].get_cell_name.to_sym ] )    #1
       cell = Namespace.find( @through_generated_list[0].get_cell_namespace_path )    #1
       # cell のプラグインで生成されたポート名のポートを探す (composite なら内部の繋がるポート)
@@ -5615,4 +6109,16 @@
       # ポートを返す(composite なら内部の繋がるポートを返す)
       return @cell.get_real_port( @port_name )
+    end
+  end
+
+  #=== Join# 右辺の配列添数を得る
+  #    右辺が through の場合は挿入されたセルの添数
+  #    右辺が composite の場合は、内部の繋がるセルのポートの添数 (composite では変わらない)
+  #    このメソッドは get_rhs_cell,  と対になっている
+  def get_rhs_subscript
+    if @through_list[0] then
+      return @through_generated_list[0].get_through_entry_port_subscript
+    else
+      return @rhs_subscript
     end
   end
@@ -5718,12 +6224,18 @@
   # composite cell を展開したセルの結合を clone したセルの名前に変更
   def change_rhs_port( clone_cell_list, celltype )
+    dbgPrint "change_rhs_port: name=#{@name}\n"
 
     # debug
     if $debug then
-      dbgPrint "change_rhs name: #{@name}  cell_name: #{@cell_name} #{@cell} #{self}\n"
+#    if @name == :cCallB then
+      # dbgPrint "change_rhs name: #{@name}  cell_name: #{@cell_name} #{@cell} #{self}\n"
+      print "============\n"
+      print "CHANGE_RHS change_rhs name: #{@owner.get_name}.#{@name}  rhs cell_name: #{@cell_name} #{@cell} #{self}\n"
 
       clone_cell_list.each{ |cell, ce|
-        dbgPrint "change_rhs:  #{cell.get_name}=#{cell} : #{ce.get_name}\n"
+        # dbgPrint "=== change_rhs:  #{cell.get_name}=#{cell} : #{ce.get_name}\n"
+        print "   CHANGE_RHS  change_rhs:  #{cell.get_name}=#{cell} : #{ce.get_name}\n"
       }
+      print "============\n"
     end
 
@@ -5732,5 +6244,5 @@
 
     # debug
-    dbgPrint "  cell_name:   #{@cell_name} => #{c.get_global_name}, #{c.get_name}\n"
+    dbgPrint "  REWRITE cell_name:  #{@owner.get_name}   #{@cell_name} => #{c.get_global_name}, #{c.get_name}\n"
 
     # @rhs の内容を調整しておく（この内容は、subscript を除いて、後から使われていない）
@@ -5756,5 +6268,5 @@
 
       # debug
-      # p "array_member2.len : #{@array_member.length}"
+      dbgPrint "array_member2.len : #{@array_member.length}\n"
 
       i = 0
@@ -5764,4 +6276,5 @@
         # 無駄に設定されているものについては、再帰的に呼び出す必要はない（clone_for_composite では対策している）
         if @array_member2[i] != self && @array_member[i] != nil then
+          dbgPrint "change_rhs array_member #{i}: #{@name}  #{@cell_name}\n"
           @array_member2[i].change_rhs_port( clone_cell_list, celltype )
         end
@@ -5779,11 +6292,10 @@
   # @through_list などもコピーされるので、これが呼び出される前に確定する必要がある
   def clone_for_composite( ct_name, cell_name, locale, b_need_recursive = true )
-
     # debug
-    dbgPrint "join.clone_for_composite : #{@name} #{@cell_name} #{self}\n"
+    dbgPrint "=====  clone_for_composite: #{@name} #{@cell_name} #{self}   =====\n"
     cl = self.clone
 
     if @array_member2 && b_need_recursive then
-      cl.clone_array_member( @array_member, @array_member2, ct_name, cell_name, self, locale )
+      cl.clone_array_member( ct_name, cell_name, self, locale )
     end
 
@@ -5796,17 +6308,20 @@
   end
 
-  def clone_array_member( array_member, array_member2, ct_name, cell_name, prev, locale )
+  def clone_array_member( ct_name, cell_name, prev, locale )
     # 配列のコピーを作る
-    am  = array_member.clone
-    am2 = array_member2.clone
+    am  = @array_member.clone
+    am2 = @array_member2.clone
 
     # 配列要素のコピーを作る
     i = 0
     while i < am2.length
-      if array_member2[i] == prev then
+      if @array_member2[i] == prev then
         # 自分自身である（ので、呼出すと無限再帰呼出しとなる）
         am2[i] = self
-      elsif array_member2[i] then
-        am2[i] = array_member2[i].clone_for_composite( ct_name, cell_name, locale, false )
+        am[i] = am2[i].get_rhs
+      elsif @array_member2[i] then
+#        am2[i] = @array_member2[i].clone_for_composite( ct_name, cell_name, locale, false )
+        am2[i] = @array_member2[i].clone_for_composite( ct_name, cell_name, locale, true )
+        am[i] = am2[i].get_rhs
       else
         # 以前のエラーで array_member2[i] は nil になっている
@@ -5814,5 +6329,5 @@
 
       # debug
-      dbgPrint "clone_array_member: #{@name} #{am2[i]} #{array_member2[i]}\n"
+      dbgPrint "clone_array_member: #{@name} subsript=#{i} #{am2[i]} #{@array_member2[i]}\n"
 
       i += 1
@@ -5840,4 +6355,10 @@
     dbgPrint "Join#set_cloned: #{@name}  prev owner: #{@owner.get_name} new owner: #{owner.get_name}\n"
     @owner = owner
+    if @array_member2 then
+      @array_member2.each{ |join|
+        dbgPrint "Joinarray#set_cloned: #{@name}  prev owner: #{join.get_owner.get_name} new owner: #{owner.get_name}\n"
+        join.set_owner owner
+      }
+    end
   end
 
@@ -5905,10 +6426,12 @@
         if j then
           (indent+2).times { print "  " }
-          puts "[#{i}]: #{j.get_name}  id: #{j}"
+          puts "[#{i}]: #{j.get_name}  id: #{j} owner=#{j.get_owner.get_name}"
           j.get_rhs.show_tree(indent+3)
-          (indent+3).times { print "  " }
-          puts "cell global name: #{j.get_cell_global_name}"
-          (indent+3).times { print "  " }
-          puts "port global name: #{j.get_port_global_name}"
+#          (indent+3).times { print "  " }
+#          puts "cell global name: #{j.get_cell_global_name}"
+#          puts "cell global name: #{j.get_rhs_cell.get_global_name}"
+#          (indent+3).times { print "  " }
+#          puts "port global name: #{j.get_port_global_name}"
+#          puts "port global name: #{j.get_rhs_port.get_name}"
         else
           (indent+2).times { print "  " }
@@ -6235,5 +6758,5 @@
 end
 
-#== Domain
+#== DomainType
 #
 # region の domain を記憶するクラス
@@ -6256,5 +6779,5 @@
     @name = name
     @plugin_name = (name.to_s + "Plugin").to_sym
-    load_plugin( @plugin_name, DomainPlugin )
+    plClass = load_plugin( @plugin_name, DomainPlugin )
     @region = region
     @option = option
@@ -6272,5 +6795,7 @@
     if ! @plugin then
       pluginClass = Object.const_get @plugin_name
+      return if pluginClass == nil
       @plugin = pluginClass.new( @region, @name, @option )
+      @plugin.set_locale @locale
     end
   end
@@ -6290,5 +6815,5 @@
   end
 
-  #== Domain リージョンの Hash を得る
+  #== DomainType リージョンの Hash を得る
   # @@domain_regions の説明参照
   def self.get_domain_regions
@@ -6302,4 +6827,10 @@
   def get_option
     @option
+  end
+
+  #== DomainType#ドメイン種別を得る
+  #return::Symbol :kernel, :user, :OutOfDomain
+  def get_kind
+    @plugin.get_kind
   end
 
@@ -6363,4 +6894,5 @@
 
     if @@domain_name then
+      dbgPrint "Region=#{name} domain_type=#{@@domain_name} option=#{@@domain_option}\n"
       domain_option = CDLString.remove_dquote @@domain_option.to_s
       @domain_type = DomainType.new( self, @@domain_name, domain_option )
@@ -6401,5 +6933,6 @@
 
         # 再出現時に specifier が指定されているか？
-        if( @in_through_list.length != 0 || @out_through_list.length != 0 || @to_through_list.length != 0 || @region_type != nil )then
+        if( @in_through_list.length != 0 || @out_through_list.length != 0 || @to_through_list.length != 0 ||
+            @region_type != nil || @domain_type != nil )then
           cdl_error( "S1140 $1: region specifier must place at first appearence" , name )
         end
@@ -6610,4 +7143,10 @@
   end
 
+  #== Region# ルートリージョン
+  # ルートリージョンは、namespace のルートと同じインスタンス
+  def selfget_root
+    Namespace.get_root
+  end
+
   def next_in_through_count
     @in_through_count += 1
@@ -6643,10 +7182,16 @@
   #=== Region# through プラグインで、この region から cell_name.port_name へのプラグインオブジェクトを登録
   # mikan namesppace 対応 (cell_name)
-  def add_cell_port_through_plugin( cell_name, port_name, through_plugin_object )
-    @cell_port_throug_plugin_list[ "#{cell_name}.#{port_name}" ] = through_plugin_object
-  end
-
-  def find_cell_port_through_plugin( cell_name, port_name )
-    return @cell_port_throug_plugin_list[ "#{cell_name}.#{port_name}" ]
+  def add_cell_port_through_plugin( cell_name, port_name, subscript, through_plugin_object )
+    if subscript then
+      subscript = '[' + subscript.to_s + ']'
+    end
+    @cell_port_throug_plugin_list[ "#{cell_name}.#{port_name}#{subscript}" ] = through_plugin_object
+  end
+
+  def find_cell_port_through_plugin( cell_name, port_name, subscript )
+    if subscript then
+      subscript = '[' + subscript.to_s + ']'
+    end
+    return @cell_port_throug_plugin_list[ "#{cell_name}.#{port_name}#{subscript}" ]
   end
 
@@ -6779,4 +7324,72 @@
 end
 
+#== Importable class
+# this module is included by Import_C and Import
+module Importable
+#@last_base_dir::String
+
+  #=== Importable#find_file
+  #file::String : file name to find
+  #return::String | Nil: path to file or nil if not found
+  #find file in 
+  def find_file file
+    $import_path.each{ |path|
+      if path == "."
+        pt = file
+      else
+        pt = "#{path}/#{file}"
+      end
+      if File.exist?( pt )
+        if ! $base_dir[ Dir.pwd ]
+          $base_dir[ Dir.pwd ] = true
+        end
+        if $verbose then
+          print "#{file} is found in #{path}\n"
+        end
+        @last_base_dir = nil
+        dbgPrint "base_dir=. while searching #{file}\n"
+        return pt
+      end
+    }
+
+    $base_dir.each_key{ |bd|
+      $import_path.each{ |path|
+#        if path =~ /\A\// || path =~ /\A[a-zA-Z]:/
+          pt = "#{path}/#{file}"
+#        else
+#          pt = "#{bd}/#{path}/#{file}"
+#        end
+        begin
+          Dir.chdir $run_dir
+          Dir.chdir bd
+          if File.exist?( pt )
+            if $verbose then
+              print "#{file} is found in #{bd}/#{path}\n"
+            end
+            @last_base_dir = bd
+            dbgPrint "base_dir=#{bd} while searching #{file}\n"
+            $base_dir[ bd ] = true
+            return pt
+          end
+        rescue
+        end
+      }
+    }
+    @last_base_dir = nil
+    dbgPrint "base_dir=. while searching #{file}\n"
+    return nil
+  end
+
+  def get_base_dir
+    return @last_base_dir
+    $base_dir.each{ |bd, flag|
+      if flag == true
+        return bd
+      end
+    }
+    return nil
+  end
+end
+
 class Import_C < Node
 
@@ -6785,4 +7398,6 @@
   @@header_list2 = []
   @@define_list = {}
+
+  include Importable
 
   #=== Import_C# import_C の生成（ヘッダファイルを取込む）
@@ -6823,4 +7438,7 @@
     }
 
+    header_path = find_file header
+
+=begin
     include_opt = ""
     found = false
@@ -6844,7 +7462,19 @@
 
     if found == false then
+=end
+    if header_path == nil then
       cdl_error( "S1142 $1 not found in search path" , header )
       return
     end
+
+    include_opt = ""
+    if get_base_dir then
+      base = get_base_dir + "/"
+    else
+      base = ""
+    end
+    $import_path.each{ |path|
+      include_opt = "#{include_opt} -I #{base}#{path}"
+    }
 
     # 読込み済み？
@@ -6862,4 +7492,8 @@
     @@header_list2 << header
     @@define_list[ header ] = define
+
+    if $verbose then
+      print "import_C header=#{header_path}, define=#{define}\n"
+    end
 
     begin
@@ -6940,4 +7574,6 @@
  * --no-gcc-extension-support for tecsgen.
  */
+#ifdef __GNUC__
+
 #ifndef __attribute__
 #define __attribute__(x)
@@ -6956,4 +7592,9 @@
 #endif
 
+#ifndef restrict
+#define restrict
+#endif
+
+#endif /* ifdef __GNUC__ */
 #endif /* TECS_NO_GCC_EXTENSION_SUPPORT */
 EOT
@@ -6983,4 +7624,6 @@
 # @cdl_path:: string:   CDL のパス
 # @b_imported:: bool:   import された(コマンドライン指定されていない)
+
+  include Importable
 
   # ヘッダの名前文字列のリスト  添字：expand したパス、値：Import
@@ -7023,34 +7666,14 @@
     @b_reuse_real = @b_reuse || Generator.is_reuse?
 
-    if Generator.get_plugin then
-      # plugin から import されている場合 gen をサーチパスの先頭に加える
-      search_path = [ $gen ] + $import_path
-    else
-      search_path = $import_path
-    end
-
-    search_path.each{ |path|
-      dbgPrint "import: searching #{path}/#{@cdl}"
-      begin
-        if path == "."
-          cdl_path =  @cdl
-        else
-          cdl_path = "#{path}/#{@cdl}"
-        end
-
-        # ファイルの stat を取ってみる(なければ例外発生)
-        File.stat( cdl_path )
-
-        # cdl を見つかったファイルパスに再設定
-        @cdl_path = cdl_path
+    if( Generator.get_plugin ) &&( File.exist? "#{$gen}/#{@cdl}" ) then
+      @cdl_path = "#{$gen}/#{@cdl}"
+      found = true
+    else
+      path = find_file @cdl
+      if path then
         found = true
-        dbgPrint ": found\n"
-        break
-      rescue => evar
-        found = false
-        dbgPrint ": not found\n"
-        # print_exception( evar )
-      end
-    }
+        @cdl_path = path
+      end
+    end
 
     if found == false then
@@ -7118,46 +7741,37 @@
 end
 
-#== generate: signature プラグインのロードと実行
+#== generate: signature, celltype, cell へのプラグインのロードと適用
 class Generate < Node
 #@plugin_name:: Symbol
-#@signature_nsp:: NamespacePath
+#@object_nsp:: NamespacePath
 #@option::         String '"', '"' で囲まれている
+#@plugin_object:: Plugin
 
   include PluginModule
 
-  def initialize( plugin_name, signature_nsp, option )
+  def initialize( plugin_name, object_nsp, option )
     super()
     @plugin_name = plugin_name
-    @signature_nsp = signature_nsp
+    @object_nsp = object_nsp
     option = option.to_s    # option は Token
     @option = option
-
-    signature = Namespace.find( signature_nsp ) #mikan Namespace   #1
-    if ! signature.instance_of? Signature then
-      cdl_error( "S1149 $1 not signature" , signature_nsp )
+    @plugin_object = nil
+
+    dbgPrint "generate: #{plugin_name} #{object_nsp.to_s} option=#{option}\n"
+
+    object = Namespace.find( object_nsp )
+    if object.kind_of?( Signature ) ||
+       object.kind_of?( Celltype ) ||
+       object.kind_of?( CompositeCelltype ) ||
+       object.kind_of?( Cell )then
+      @plugin_object = object.apply_plugin( @plugin_name, @option )
+    elsif object then
+      # V1.5.0 以前の仕様では、signature のみ可能だった
+#      cdl_error( "S1149 $1 not signature" , signature_nsp )
+      cdl_error( "S9999 generate: '$1' neither signature, celltype nor cell", object_nsp )
       return
-    elsif signature.is_empty? then
-      cdl_warning( "S9999 $1 is empty. cannot apply signature plugin. ignored" , signature_nsp )
-      return
-    end
-
-    load_plugin( plugin_name, SignaturePlugin )
-
-    plugin_object = nil
-    eval_str = "plugin_object = #{plugin_name}.new( signature, option )"
-    if $verbose then
-      print "new through: #{eval_str}\n"
-    end
-
-    begin
-      eval( eval_str )     # plugin を生成
-      plugin_object.set_locale @locale
-    rescue Exception => evar
-      cdl_error( "S1150 $1: fail to new" , plugin_name )
-      print "eval( #{eval_str} )\n"
-
-      print_exception( evar )
-    end
-    generate_and_parse plugin_object
+    else
+      cdl_error( "S9999 generate: '$1' not found", object_nsp )
+    end
   end
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/ctypes.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/ctypes.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/ctypes.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -118,10 +118,13 @@
       end
       return self
-    else
+    elsif self.instance_of?( CFloatType ) then
       # mikan long double
       #   TECS には long double を表現する手段がない (double80_t を定義すればよいか?)
 #      cdl_warning( "C1003 $1 & $2 incompatible (\'long double\' is not supported.). Treated as $3." , self.class, another.class, self.class )
-      cdl_warning( "W9999 $1 & $2 incompatible (\'long double\' is not supported.). Treated as $3." , self.get_type_str, another.get_type_str, self.get_type_str )
-      return self
+#      cdl_warning( "W9999 $1 & $2 incompatible (\'long double\' is not supported.). Treated as $3." , self.get_type_str, another.get_type_str, self.get_type_str )
+      self.to_long      
+      return self
+    else
+      raise "merge: unknown type"
     end
   end
@@ -183,4 +186,11 @@
   end
 
+  def to_long
+    if @bit_size != -64 then
+      cdl_warning( "W9999 long specified for $1" , get_type_str )
+    else
+      @bit_size = -128  # @bit_size = -128 : long double
+    end
+  end
 end
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/expression.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/expression.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/expression.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -151,4 +151,5 @@
     when :IDENTIFIER
       nsp = elements[1]
+      # if nsp.is_name_only? && name_list && name_list.get_item( nsp.get_name ) then
       if nsp.is_name_only? && name_list && name_list.get_item( nsp.get_name ) then
         return "#{pre}#{nsp.get_name}#{post}"
@@ -229,4 +230,111 @@
   end
 
+  #=== Expression# 逆ポーランド文字列化
+  #param_list:: ParamlList  関数の引数リスト
+  def get_rpn( param_list = nil, name_list2 = nil )
+    return elements_rpn( @elements, param_list, name_list2 )
+  end
+
+  #=== Expression# 逆ポーランド文字列化 (private)
+  #name_list:: ParamlList  関数の引数リスト
+  def elements_rpn( elements, name_list = nil, name_list2 = nil )
+    if elements.instance_of? Token then
+      print "rpn: #{elements.to_s}\n"
+      return elements.to_s    # OP_DOT, OP_REF の右辺
+    end
+
+    case elements[0]
+    when :IDENTIFIER
+      nsp = elements[1]
+      #if nsp.is_name_only? && name_list && name_list.find( nsp.get_name ) then
+      if nsp.is_name_only? then
+        count = 0
+        # p "search: #{nsp.get_name}"
+        name_list.get_items.each{ |nm,val|
+          # p "    : #{nm.get_name} #{nsp.get_name.class} #{nm.get_name.class}"
+          if nsp.get_name == nm.get_name then
+            return " $#{count}"
+          end
+          count += 1
+        }
+        raise "not found parameter"
+      else
+        # return  elements[1].get_global_name
+        raise "not unexpected parameter"
+      end
+    when :INTEGER_CONSTANT, :FLOATING_CONSTANT, :OCTAL_CONSTANT, :HEX_CONSTANT, :CHARACTER_LITERAL, :STRING_LITERAL_LIST, :BOOL_CONSTANT
+      return elements[1].to_s
+    when :PARENTHESES
+      return elements_rpn( elements[1], name_list, name_list2 )
+    when :OP_SUBSC
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[1], "", name_list, name_list2 ) + " []"
+    when :OP_DOT
+      return elements_rpn( elements[1], name_list, name_list2 ) + " ."
+    when :OP_REF
+      return elements_rpn( elements[1], name_list, name_list2 ) + " ->"
+    when :OP_SIZEOF_EXPR
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #s"
+    when :OP_SIZEOF_TYPE
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #S"
+    when :OP_U_AMP
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #&"
+    when :OP_U_ASTER
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #*"
+    when :OP_U_PLUS
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #+"
+    when :OP_U_MINUS
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #-"
+    when :OP_U_TILDE
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #~"
+    when :OP_U_EXCLAM
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #!"
+    when :CAST
+      return elements_rpn( elements[1], name_list, name_list2 ) + " #(" + elements_rpn( elements[2], "", name_list, name_list2 ) + ")"
+    when :OP_MULT
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " *"
+    when :OP_DIV
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " /"
+    when :OP_REMAIN
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " %"
+    when :OP_ADD
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " +"
+    when :OP_SUB
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " -"
+    when :OP_LSFT
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " <<"
+    when :OP_RSFT
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " >>"
+    when :OP_LT
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " <"
+    when :OP_GT
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " >"
+    when :OP_LE
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " <="
+    when :OP_GE
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " >="
+    when :OP_EQ
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " =="
+    when :OP_NE
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " !="
+    when :OP_AND
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " &"
+    when :OP_EOR
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " ^"
+    when :OP_OR
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " |"
+    when :OP_LAND
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " &&"
+    when :OP_LOR
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " + elements_rpn( elements[2], "", name_list, name_list2 ) + " ||"
+    when :OP_CEX
+      return elements_rpn( elements[1], name_list, name_list2 ) + " " +
+             elements_rpn( elements[2], name_list, name_list2 ) + " " +
+             elements_rpn( elements[3], name_list, name_list2 ) + " ?:"
+    else
+      raise "Unknown expression element: #{elemets[0]}. try -t and please report"
+    end
+    return ""
+  end
+
   # 定数式(elements)を評価する
   #
@@ -382,8 +490,16 @@
       return nil
     when :OP_SIZEOF_EXPR
-      cdl_error( "E1007 cannot evaluate \'sizeof\' operator"  )
+      if Generator.parsing_C? then
+        cdl_info( "I9999 cannot evaluate \'sizeof\' operator. this might causes later error."  )
+      else
+        cdl_error( "E1007 cannot evaluate \'sizeof\' operator"  )
+      end
       return nil
     when :OP_SIZEOF_TYPE
-      cdl_error( "E1008 cannot evaluate \'sizeof\' operator"  )
+      if Generator.parsing_C? then
+        cdl_info( "I9999 cannot evaluate \'sizeof\' operator. this might causes later error."  )
+      else
+        cdl_error( "E1008 cannot evaluate \'sizeof\' operator"  )
+      end
       return nil
     when :OP_U_AMP
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/generate.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/generate.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/generate.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2016 by TOPPERS Project
+#   Copyright (C) 2008-2019 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -122,4 +122,5 @@
 
 class Namespace
+  @@domain_gen_factory_list = nil
   def generate
 
@@ -135,4 +136,7 @@
           return
         end
+        if instance_of? Region then
+          @@domain_gen_factory_list = {}   # create hash
+        end
       end
 
@@ -141,4 +145,13 @@
       gen_global_header
 
+      if ( instance_of? Region ) && get_domain_type != nil then
+        # p "*******************  domain_type: #{get_domain_type.get_name}  ****************"
+        domain_type = get_domain_type
+        if @@domain_gen_factory_list[ domain_type ] == nil then
+          @@domain_gen_factory_list[ domain_type ] = self
+          domain_type.gen_factory
+        end
+      end
+      
       # signature のコードを生成
       @signature_list.each { |s|
@@ -262,5 +275,6 @@
 
       f.print( "/* Descriptor for dynamic join */\n" )
-      f.print( "#define Descriptor( signature_global_name )  DynDesc__ ## signature_global_name\n\n" )
+      f.print( "#define Descriptor( signature_global_name )  DynDesc__ ## signature_global_name\n" )
+      f.print( "#define is_descriptor_unjoined( desc )  ((desc).vdes==NULL)\n\n" )
       endif_macro_only f
     end
@@ -454,5 +468,5 @@
       }
     end
-	f.print "	rm -f $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(TARGET) #{timestamp}\n"
+	  f.print "	rm -f $(CELLTYPE_COBJS) $(TECSGEN_COBJS) $(PLUGIN_COBJS) $(OTHER_OBJS) $(TARGET) #{timestamp}\n"
     if $generating_region == @@root_namespace then
       f.print "	rm -rf $(GEN_DIR)\n"
@@ -464,7 +478,6 @@
       f.print "tecs : $(PRE_TECSGEN_TARGET) $(TIMESTAMP) $(POST_TECSGEN_TARGET)\n\n"
       f.print "$(TIMESTAMP) : $(TECS_IMPORTS)\n"
-      f.print "	$(TECSGEN) #{TECSGEN.subst_tecspath( $arguments, true )}\n"
+      f.print "	$(TECSGEN) #{TECSGEN.subst_tecspath( $arguments, true )}\n\n"
       # f.print "	touch $(TIMESTAMP)\n\n"
-
     else
       f.print "tecs:\n"
@@ -472,4 +485,44 @@
     end
 
+    # tecsflow:, tcflow ターゲット
+    if $generating_region.get_n_cells != 0 || $generating_region == @@root_namespace then
+      f.print "#####  TECSFlow targets  #####\n"
+    end
+
+    if Region.get_link_roots.length > 1 && $generating_region == @@root_namespace then
+      tecsflow_target = "tecsflow_sub"
+      if $generating_region.get_n_cells > 0 then
+        f.print "tecsflow: tecs tecsflow_sub\n"
+      else
+        f.print "tecsflow:\n"
+      end
+      Region.get_link_roots.each {|region|
+        if region.get_n_cells > 0 then
+          f.print "\tcd #{region.get_global_name}; make tecsflow\n"
+        end
+      }
+      f.print "\n"
+    else
+      tecsflow_target = "tecsflow"
+    end
+
+    if $generating_region.get_n_cells != 0 then
+      f.print "#{tecsflow_target} : $(GEN_DIR)/tecsgen.rbdmp tcflow\n"
+      f.print "\ttecsflow -g $(GEN_DIR)\n\n"
+      f.print "tecsflow_u : $(GEN_DIR)/tecsgen.rbdmp tcflow\n"
+      f.print "\ttecsflow -g $(GEN_DIR) -U\n\n"
+      f.print "$(GEN_DIR)/tecsgen.rbdmp : tecs\n\n"
+      f.print "tcflow : tecs\n"
+      f.print "\tmake tcflow_exec\n\n"
+      f.print "tcflow_exec : $(GEN_DIR)/tcflow.rbdmp\n"
+      f.print "$(GEN_DIR)/tcflow.rbdmp : $(CELLTYPE_SRCS) $(PLUGIN_CELLTYPE_SRCS)\n"
+      f.print "\ttcflow -g $(GEN_DIR) -c '$(CC) -E -DTECSFLOW -DTECSGEN $(CFLAGS) -I ./' $^\n"
+    end
+
+    if $generating_region.get_n_cells != 0 || $generating_region == @@root_namespace then
+      f.print "#####  end TECSFlow targets  #####\n\n"
+    end
+
+    # generic %.o : %.c
     f.print "# generic target for objs\n"
     f.print "$(_TECS_OBJ_DIR)%.o : %.#{$c_suffix}\n"
@@ -491,4 +544,46 @@
     ### Makefile.tecsgen の生成
     f = AppFile.open( "#{$gen}/Makefile.tecsgen" )
+
+    f.print <<EOT
+# generated automatically by tecsgen.
+# This file is not intended to modify.
+#
+# Makefile variables below are defined.
+#  TECS_IMPORT_CDLS          .cdl files improted by import statement
+#  SIGNATURE_HEADERS         .h files of signature
+#  CELLTYPE_TECSGEN_HEADERS  .h files of celltype
+#  CELLTYPE_FACTORY_HEADERS  .h files of celltype's factory
+#  TECS_HEADERS              summary of .h files above
+#  TECS_INLINE_HEADERS       .h files of celltype inline header
+#  PLUGIN_INLINE_HEADERS     .h files of plugin generated inline header
+#
+#  TECS_COBJS                .o files of TECS
+#                            = $(TECSGEN_COBJS)+$(PLUGIN_COBJS)+$(CELLTYPE_COBJS)
+#                            = $(TECS_KERNEL_COBJS)+$(TECS_KERNEL_COBJS)+$(TECS_OUTOFDOMAIN_COBJS)
+#                            = $(TECSGEN_domain_COBJS)+$(PLUGIN_domain_COBJS)+$(CELLTYPE_domain_COBJS) for each domain
+#
+#  TECSGEN_COBJS             .o files of celltype_tecsgen.c
+#  CELLTYPE_COBJS            .o files of celltype.c (celltype code)
+#  PLUGIN_COBJS              .o files of plugin generated .c files
+#
+#  TECSGEN_SRCS              .c files of celltype_tecsgen.c
+#  CELLTYPE_SRCS             .c files of celltype.c (celltype code)
+#  PLUGIN_SRCS               .c files of plugin generated
+#  PLUGIN_CELLTYPE_SRCS      .c files of plugin generated celltype.c (celltype code)
+#  PLUGIN_TECSGEN_SRCS       .c files of plugin generated celltype_tecsgen.c
+#
+# Variables for domain
+#  TECS_DOMAINS             domain names
+#  TECS_KERNEL_COBJS        .o files of kernel domain (tecsgen, celltype, plugin)
+#  TECS_USER_COBJS          .o files of user domain (tecsgen, celltype, plugin)
+#  TECS_OUTOFDOMAIN_COBJS   .o files of OutOfDomain (tecsgen, celltype, plugin)
+#  TECSGEN_domain_COBJS     .o files of celltype_tecsgen.c files for each domain
+#  PLUGIN_domain_COBJS      .o files of plugin generated .c files for each domain
+#  CELLTYPE_domain_COBJS    .o files of celltype.c files for each domain
+#  TECSGEN_domain_SRCS      .c files of celltype_domain_tecsgen.c
+#  PLUGIN_domain_SRCS       .c files of plugin generated .c files for each domain
+#  CELLTYPE_domain_SRCS     .c files of celltype.c files for each domain
+
+EOT
 
     f.print( "TECS_IMPORT_CDLS =" )
@@ -545,4 +640,5 @@
     DomainType.get_domain_regions.each{ |dt, regions|
       # domain_type は一つのノードには、一つしかないので、このループは、必ず一回しか回らない
+        ###   mikan 複数のノードがあり、異なる domain_type が指定される可能性はある
       domain_regions = regions
       domain_type = dt
@@ -587,5 +683,38 @@
       f.print( "\n\n" )
 
-      f.print( "# TECS_COBJS: objects from sources which are automatically generated by tecsgen\n" )
+      f.print( "# TECS_KERNEL_COBJS: objects belong to kernel domain\n" )
+      f.print( "TECS_KERNEL_COBJS = \\\n" )
+      domain_regions.each{ |r|
+        if r.get_domain_type.get_kind == :kernel then
+          f.print( "	$(TECSGEN#{decideDomainNameProc.call r}_COBJS) \\\n" )
+          f.print( "	$(PLUGIN#{decideDomainNameProc.call r}_COBJS) \\\n" )
+          f.print( "	$(CELLTYPE#{decideDomainNameProc.call r}_COBJS) \\\n" )
+        end
+      }
+      f.print( "# TECS_KERNEL_COBJS terminator\n\n" )
+
+      f.print( "# TECS_USER_COBJS: objects belong to user domain\n" )
+      f.print( "TECS_USER_COBJS = \\\n" )
+      domain_regions.each{ |r|
+        if r.get_domain_type.get_kind == :user then
+          f.print( "	$(TECSGEN#{decideDomainNameProc.call r}_COBJS) \\\n" )
+          f.print( "	$(PLUGIN#{decideDomainNameProc.call r}_COBJS) \\\n" )
+          f.print( "	$(CELLTYPE#{decideDomainNameProc.call r}_COBJS) \\\n" )
+        end
+      }
+      f.print( "# TECS_USER_COBJS terminator\n\n" )
+
+      f.print( "# TECS_OUTOFDOMAIN_COBJS: objects belong to OutOfDomain\n" )
+      f.print( "TECS_OUTOFDOMAIN_COBJS = \\\n" )
+      domain_regions.each{ |r|
+        if r.get_domain_type.get_kind == :OutOfDomain then
+          f.print( "	$(TECSGEN#{decideDomainNameProc.call r}_COBJS) \\\n" )
+          f.print( "	$(PLUGIN#{decideDomainNameProc.call r}_COBJS) \\\n" )
+          f.print( "	$(CELLTYPE#{decideDomainNameProc.call r}_COBJS) \\\n" )
+        end
+      }
+      f.print( "# TECS_OUTOFDOMAIN_COBJS terminator\n\n" )
+      
+      f.print( "# TECSGEN_COBJS: objects from sources which are automatically generated by tecsgen\n" )
       f.print( "TECSGEN_COBJS = \\\n" )
       domain_regions.each{ |r|
@@ -621,5 +750,5 @@
 
     ###
-    f.print( "# TECS_COBJS: objects from sources which are automatically generated by tecsgen\n" )
+    f.print( "# TECSGEN_COBJS: objects from sources which are automatically generated by tecsgen\n" )
     domain_regions.each{ |r|
       nsp = decideDomainNameProc.call( r )
@@ -655,12 +784,32 @@
 
     f.print( "# PLUGIN_SRCS: sources automatically generated by plugin\n" )
+    f.print( "PLUGIN_CELLTYPE_SRCS = \\\n" )
     domain_regions.each{ |r|
       nsp = decideDomainNameProc.call( r )
-      f.print( "PLUGIN#{nsp}_SRCS = \\\n" )
-      gen_celltype_names_domain( f, "	$(GEN_DIR)/", "_tecsgen.#{$c_suffix} \\\n", domain_type, r, true )
-      gen_celltype_names_domain2( f, "	$(GEN_DIR)/", ".#{$c_suffix} \\\n", domain_type, r, true, false )
-      f.print( "# PLUGIN#{nsp}_SRCS terminator\n\n" )
-    }
-
+      f.print( "  $(PLUGIN#{nsp}_CELLTYPE_SRCS)\\\n" )
+    }
+    f.print( "# PLUGIN_CELLTYPE_SRCS terminator\n\n" )
+    f.print( "PLUGIN_TECSGEN_SRCS = \\\n" )
+    domain_regions.each{ |r|
+      nsp = decideDomainNameProc.call( r )
+      f.print( "  $(PLUGIN#{nsp}_TECSGEN_SRCS)\\\n" )
+    }
+    f.print( "# PLUGIN_TECSGEN_SRCS terminator\n\n" )
+    domain_regions.each{ |r|
+      nsp = decideDomainNameProc.call( r )
+      f.print( "PLUGIN#{nsp}_SRCS = $(PLUGIN#{nsp}_CELLTYPE_SRCS) $(PLUGIN#{nsp}_TECSGEN_SRCS)\n\n" )
+      f.print( "PLUGIN#{nsp}_CELLTYPE_SRCS = \\\n" )
+      gen_celltype_names_domain2( f, "", ".#{$c_suffix} \\\n", domain_type, r, true, false )
+      f.print( "# PLUGIN#{nsp}_CELLTYPE_SRCS terminator\n\n" )
+      nsp = decideDomainNameProc.call( r )
+      f.print( "PLUGIN#{nsp}_TECSGEN_SRCS = \\\n" )
+      gen_celltype_names_domain( f, "", "_tecsgen.#{$c_suffix} \\\n", domain_type, r, true )
+      f.print( "# PLUGIN#{nsp}_TECSGEN_SRCS terminator\n\n" )
+    }
+
+    f.print( "# CELLTYPE_SRCS: sources of celltype code written by user\n" )
+     f.print( "CELLTYPE_SRCS = \\\n" )
+     gen_celltype_names( f, "	", ".#{$c_suffix} \\\n", false, false )
+      f.print( "# CELLTYPE_SRCS terminator\n\n" )
     f.close
 
@@ -762,4 +911,41 @@
   end
 
+  #=== Namespace#すべてのシグニチャをたどる
+  def travers_all_signature # ブロック引数 { |signature|  }
+    proc = Proc.new    # このメソッドのブロック引数
+    @signature_list.each{ |sig|
+      proc.call sig
+    }
+    @namespace_list.each{ |ns|
+      ns.travers_all_signature_proc proc
+    }
+  end
+  def travers_all_signature_proc proc
+    @signature_list.each{ |sig|
+      proc.call sig
+    }
+    @namespace_list.each{ |ns|
+      ns.travers_all_signature_proc proc
+    }
+  end
+
+  #=== Namespace#すべてのセルタイプをたどる
+  def travers_all_celltype # ブロック引数 { |celltype|  }
+    proc = Proc.new    # このメソッドのブロック引数
+    @celltype_list.each{ |ct|
+      proc.call ct
+    }
+    @namespace_list.each{ |ns|
+      ns.travers_all_celltype_proc proc
+    }
+  end
+  def travers_all_celltype_proc proc
+    @celltype_list.each{ |ct|
+      proc.call ct
+    }
+    @namespace_list.each{ |ns|
+      ns.travers_all_celltype_proc proc
+    }
+  end
 end
 
@@ -854,5 +1040,12 @@
       f.printf TECSMsg.get(:SDI_comment), "#_SDI_#"
       dl.each{ |dt,param|
-        f.print "#include \"#{dt.get_signature.get_global_name}_tecsgen.#{$h_suffix}\"\n"
+        f.print <<EOT
+/* pre-typedef incomplete-type to avoid error in case of mutual or cyclic reference */
+#ifndef Descriptor_of_#{dt.get_global_name}_Defined
+#define  Descriptor_of_#{dt.get_global_name}_Defined
+typedef struct { struct tag_#{dt.get_global_name}_VDES *vdes; } Descriptor( #{dt.get_global_name} );
+#endif
+EOT
+#        f.print "#include \"#{dt.get_global_name}_tecsgen.#{$h_suffix}\"\n"
       }
       f.print "\n"
@@ -904,8 +1097,12 @@
     end
 
-    f.print "};\n"
-    f.printf "\n"
+    f.print "};\n\n"
     f.printf TECSMsg.get(:SDES_comment), "#_SDES_#"
-    f.print( "typedef struct { struct tag_#{@global_name}_VDES *vdes; } Descriptor( #{@global_name} );\n" )
+    f.print <<EOT
+#ifndef Descriptor_of_#{@global_name}_Defined
+#define  Descriptor_of_#{@global_name}_Defined
+typedef struct { struct tag_#{@global_name}_VDES *vdes; } Descriptor( #{@global_name} );
+#endif
+EOT
   end
 
@@ -993,5 +1190,9 @@
     gen_ph_get_cellcb f
     gen_ph_attr_access f          if @n_attribute_rw > 0 || @n_attribute_ro > 0 || @n_var > 0
-    gen_ph_cp_fun_macro f         if @n_call_port > 0
+    f.print "#ifndef TECSFLOW\n"
+    gen_ph_cp_fun_macro f, false  if @n_call_port > 0
+    f.print "#else  /* TECSFLOW */\n"
+    gen_ph_cp_fun_macro f, true   if @n_call_port > 0
+    f.print "#endif /* TECSFLOW */\n"
 #    gen_ph_abstract_ep_des_type f
 
@@ -1008,4 +1209,14 @@
 #    gen_ph_ep_fun_prototype f
     gen_ph_ep_skel_prototype f
+
+    #--- CB_TYPE_ONLY の場合、ref_desc, set_desc 関数は含めない (マクロ参照するため)
+    if @n_entry_port_inline == 0 then
+      ifndef_cb_type_only f
+    end
+    gen_ph_ref_desc_func f
+    gen_ph_set_desc_func f
+    if @n_entry_port_inline == 0 then
+      endif_cb_type_only f
+    end
     end_extern_C f
     endif_macro_only f
@@ -1019,4 +1230,6 @@
     gen_ph_attr_access_abbrev f   if @n_attribute_rw > 0 || @n_attribute_ro > 0 || @n_var > 0
     gen_ph_cp_fun_macro_abbrev f  if @n_call_port > 0
+    gen_ph_ref_desc_macro_abbrev f
+    gen_ph_set_desc_macro_abbrev f
     gen_ph_test_optional_call_port_abbrev f
     gen_ph_ep_fun_macro f         if @n_entry_port > 0
@@ -1084,4 +1297,13 @@
           end
         }
+        if p.is_dynamic? then
+          f.print( "#undef #{p.get_name}_set_descriptor\n" )
+          if p.is_optional? then
+            f.print( "#undef #{p.get_name}_unjoin\n" )
+          end
+        elsif p.is_ref_desc? then
+          f.print( "#undef #{p.get_name}_refer_to_descriptor\n" )
+          f.print( "#undef #{p.get_name}_ref_desc\n" )
+        end
       }
       @port.each { |p|
@@ -1196,4 +1418,6 @@
   def gen_ph_info f
 
+    yn_multi_domain = "no"
+    yn_multi_domain = "yes" if multi_domain?
     yn_idx_is_id = "no"
     yn_idx_is_id = "yes"  if @idx_is_id
@@ -1204,4 +1428,8 @@
     yn_rom       = "no"
     yn_rom       = "yes"  if $rom
+    yn_has_CB    = "no"
+    yn_has_CB    = "yes"  if has_CB?
+    yn_has_INIB  = "no"
+    yn_has_INIB  = "yes"  if has_INIB?
     yn_cb_init   = "no"
     yn_cb_init   = "yes"  if need_CB_initializer?
@@ -1212,8 +1440,9 @@
  * celltype          :  #{@name}
  * global name       :  #{@global_name}
+ * multi-domain      :  #{yn_multi_domain}
  * idx_is_id(actual) :  #{yn_idx_is_id}(#{yn_idx_is_id_act})
  * singleton         :  #{yn_singleton}
- * has_CB            :  #{has_CB?}
- * has_INIB          :  #{has_INIB?}
+ * has_CB            :  #{yn_has_CB}
+ * has_INIB          :  #{yn_has_INIB}
  * rom               :  #{yn_rom}
  * CB initializer    :  #{yn_cb_init}
@@ -1438,9 +1667,15 @@
       end
 
-      if p.get_array_size == nil then
-        f.print( "#define #{@global_name}_is_#{p.get_name}_joined(p_that) \\\n" )
-      else
-        f.print( "#define #{@global_name}_is_#{p.get_name}_joined(p_that,subscript) \\\n" )
-      end
+      if @singleton then
+        param = ""
+        delim = ""
+      else
+        param = "p_that"
+        delim = ","
+      end
+      if p.get_array_size != nil then
+        param = param + delim + "subscript"
+      end
+      f.print( "#define #{@global_name}_is_#{p.get_name}_joined(#{param}) \\\n" )
 
       if p.is_omit? then
@@ -1452,19 +1687,29 @@
       # mikan  全部つながっているかどうかで (1) を判定する
       if ! p.is_VMT_useless? then
+        if p.is_dynamic? then
+          if @singleton then
+            inib_tmp = "CB"
+          else
+            inib_tmp = ""
+          end
+        else
+          inib_tmp = inib
+        end
+
         # 標準コード
         if p.get_array_size == nil then
           if @singleton then
-            f.print( "\t  (#{@global_name}_SINGLE_CELL_#{inib}.#{p.get_name}!=0)\n" )
+            f.print( "\t  (#{@global_name}_SINGLE_CELL_#{inib_tmp}.#{p.get_name}!=0)\n" )
           else
-            f.print( "\t  ((p_that)#{inib}->#{p.get_name}!=0)\n" )
+            f.print( "\t  ((p_that)#{inib_tmp}->#{p.get_name}!=0)\n" )
           end
         else
           # 配列の場合
           if @singleton then
-            f.print( "\t  ((#{@global_name}_SINGLE_CELL_#{inib}.#{p.get_name}!=0) \\\n" )
-            f.print( "\t  &&(#{@global_name}_SINGLE_CELL_#{inib}.#{p.get_name}[subscript]!=0))\n" )
+            f.print( "\t  ((#{@global_name}_SINGLE_CELL_#{inib_tmp}.#{p.get_name}!=0) \\\n" )
+            f.print( "\t  &&(#{@global_name}_SINGLE_CELL_#{inib_tmp}.#{p.get_name}[subscript]!=0))\n" )
           else
-            f.print( "\t  (((p_that)#{inib}->#{p.get_name}!=0)\\\n" )
-            f.print( "\t  &&((p_that)#{inib}->#{p.get_name}[subscript]!=0))\n" )
+            f.print( "\t  (((p_that)#{inib_tmp}->#{p.get_name}!=0)\\\n" )
+            f.print( "\t  &&((p_that)#{inib_tmp}->#{p.get_name}[subscript]!=0))\n" )
           end
         end
@@ -1503,10 +1748,19 @@
       end
 
+      if @singleton then
+        param = ""
+        delim = ""
+      else
+        param = "p_cellcb"
+        delim = ","
+      end
+
       if p.get_array_size == nil then
-        f.print( "#define is_#{p.get_name}_joined()\\\n\t\t#{@global_name}_is_#{p.get_name}_joined(p_cellcb)\n" )
-      else
-        f.print( "#define is_#{p.get_name}_joined(subscript)\\\n" )
-        f.print( "\t\t#{@global_name}_is_#{p.get_name}_joined(p_cellcb,subscript)\n" )
-      end
+        subscript = ""
+      else
+        subscript = "subscript"
+        param = param + delim + subscript
+      end
+      f.print( "#define is_#{p.get_name}_joined(#{subscript})\\\n\t\t#{@global_name}_is_#{p.get_name}_joined(#{param})\n" )
     }
   end
@@ -1519,5 +1773,5 @@
       f.print( "#define #{@global_name}_GET_CELLCB(idx) ((void *)0)\n" )
     elsif @idx_is_id_act then   # mikan 単一のセルの場合の最適化, idx_is_id でない場合
-      f.print( "#define #{@global_name}_GET_CELLCB(idx) (#{@global_name}_CB_tab[(idx) - #{@global_name}_ID_BASE])\n" )
+      f.print( "#define #{@global_name}_GET_CELLCB(idx) (#{@global_name}_CB_ptab[(idx) - #{@global_name}_ID_BASE])\n" )
     else
       f.print( "#define #{@global_name}_GET_CELLCB(idx) (idx)\n" )
@@ -1723,21 +1977,7 @@
   end
 
-  def gen_ph_cp_fun_macro f
-    if @n_call_port >0 then
+  def gen_ph_cp_fun_macro f, b_flow
+    if @n_call_port >0 && b_flow == false then
       f.printf( TECSMsg.get( :CPM_comment ) , "#_CPM_#" )
-    end
-
-    if @singleton then
-      if has_INIB? then
-        inib = "INIB"
-      else
-        inib = "CB"
-      end
-    else
-      if has_CB? && has_INIB? then
-        inib = "->_inib"
-      else
-        inib = ""
-      end
     end
 
@@ -1747,4 +1987,26 @@
 
       p.get_signature.get_function_head_array.each{ |fun|
+        if @singleton then
+          if has_INIB? then
+            inib = "INIB"
+          else
+            inib = "CB"
+          end
+          if p.is_dynamic? && p.get_array_size == nil then
+            # dynamic call port (not array)
+            inib = "CB"
+          end
+        else
+          if has_CB? && has_INIB? then
+            inib = "->_inib"
+          else
+            inib = ""
+          end
+          if p.is_dynamic? && p.get_array_size == nil then
+            # dynamic call port (not array)
+            inib = ""
+          end
+        end
+
         f.print( "#define #{@global_name}_#{p.get_name}_#{fun.get_name}(" )
         ft = fun.get_declarator.get_type
@@ -1772,5 +2034,7 @@
 
         # 関数名の出力(標準：受け口ディスクリプタから VMT の関数名、最適化：受け口関数 or 受け口ディスクリプタ)
-        if ! p.is_VMT_useless? then
+        if b_flow then
+          f.print( "\t  (p_that)->#{p.get_name}#{subsc}.#{fun.get_name}__T( \\\n" )
+        elsif ! p.is_VMT_useless? then
           # 標準コード
           if @singleton then
@@ -1807,5 +2071,6 @@
 
         # 受け口情報の出力(標準：受け口ディスクリプタ、最適化：IDX など)
-        if ! p.is_skelton_useless? && ! p.is_cell_unique? then
+        if b_flow then
+        elsif ! p.is_skelton_useless? && ! p.is_cell_unique? then
           # 標準コード
           if @singleton then
@@ -1857,4 +2122,131 @@
   end
 
+  #=== ref_desc 指定された呼び口に対するディスクリプタ参照関数の生成
+  def gen_ph_ref_desc_func f
+    if @n_call_port_ref_desc >0 then
+      f.printf( TECSMsg.get( :CRD_comment ), "#_CRD_#" )
+    end
+
+    if has_CB? && has_INIB? then
+      inib = "->_inib"
+    else
+      inib = ""
+    end
+    @port.each { |p|
+      next if p.get_port_type != :CALL
+      next if ! p.is_ref_desc?
+
+      if @singleton then
+        p_that = ""
+        p_cellcb = ""
+        delim = ""
+        if has_INIB? then
+          cb = "#{@global_name}_SINGLE_CELL_INIB."
+        else
+          cb = "#{@global_name}_SINGLE_CELL_CB."
+        end
+      else
+        p_that = "#{@global_name}_CB  *p_that"
+        p_cellcb = "    #{@global_name}_CB *p_cellcb = p_that;\n"
+        delim = ", "
+        cb = "p_cellcb#{inib}->"
+      end
+
+      if p.get_array_size
+        array = "#{delim}int_t  i "
+        array2 = "[ i ]"
+        assert = "    assert( 0 <= i && i < NCP_#{p.get_name} );\n"
+      else
+        array = ""
+        array2 = ""
+        assert = ""
+      end
+      f.print <<EOT
+/* [ref_desc] #{p.get_name} */
+Inline Descriptor( #{p.get_signature.get_global_name} )
+#{@global_name}_#{p.get_name}_refer_to_descriptor( #{p_that}#{array} )
+{
+    Descriptor( #{p.get_signature.get_global_name} )  des;
+#{p_cellcb}    /* cast is ncecessary for removing 'const'  */
+#{assert}    des.vdes = (struct tag_#{p.get_signature.get_global_name}_VDES *)#{cb}#{p.get_name}#{array2};
+    return des;
+}
+
+EOT
+    }
+  end
+
+  #=== dynamic 指定された呼び口に対するディスクリプタ設定関数の生成
+  def gen_ph_set_desc_func f
+    if @n_call_port_dynamic >0 then
+      f.printf( TECSMsg.get( :SDF_comment ), "#_SDF_#" )
+    end
+
+    @port.each { |p|
+      next if p.get_port_type != :CALL
+      next if ! p.is_dynamic?
+      if has_CB? && has_INIB? && p.get_array_size then
+        inib = "->_inib"
+      else
+        inib = ""
+      end
+      if @singleton then
+        # p "main== #{@global_name} #{p.get_name} #{p.get_array_size}"
+        p_that = ""
+        p_that2 = ""
+        p_cellcb = ""
+        if p.get_array_size && $rom then
+          cb = "#{@global_name}_SINGLE_CELL_INIB."
+        else
+          cb = "#{@global_name}_SINGLE_CELL_CB."
+        end
+      else
+        p_that = "#{@global_name}_CB  *p_that, "
+        p_that2 = "#{@global_name}_CB  *p_that "
+        p_cellcb = "    #{@global_name}_CB *p_cellcb = p_that;\n"
+        cb = "(p_cellcb)->#{inib}"
+      end
+
+      if p.get_array_size then
+        array = "int_t  i, "
+        array2 = "[ i ]"
+        array3 = " int_t  i "
+        assert2 = "    assert( 0 <= i && i < NCP_#{p.get_name} );\n"
+      else
+        array = ""
+        array2 = ""
+        array3 = ""
+        assert2 = ""
+      end
+      f.print <<EOT
+/* [dynamic] #{p.get_name} */
+Inline void
+#{@global_name}_#{p.get_name}_set_descriptor( #{p_that}#{array}Descriptor( #{p.get_signature.get_global_name} ) des )
+{
+#{p_cellcb}    assert( des.vdes != NULL );
+#{assert2}    #{cb}#{p.get_name}#{array2} = des.vdes;
+}
+
+EOT
+
+      if p.is_optional? then
+        if p_that2 != "" && array3 != "" then
+          delim = ", "
+        else
+          delim = ""
+        end
+        f.print <<EOT
+/* [dynamic,optional] #{p.get_name} */
+Inline void
+#{@global_name}_#{p.get_name}_unjoin( #{p_that2}#{delim}#{array3} )
+{
+#{p_cellcb}    #{cb}#{p.get_name}#{array2} = NULL;
+}
+
+EOT
+      end
+    }
+  end
+
   #=== send/receive で受け取ったメモリ領域を dealloc するマクロコード
   #f:: File
@@ -1958,7 +2350,7 @@
 
         if p.is_omit? then
-          f.print( "                      #{dummy_p_cell_access_pre}omitted #{p.get_name}_#{fun.get_name}(" )
-        else
-          f.print( "                      #{dummy_p_cell_access_pre}#{@global_name}_#{p.get_name}_#{fun.get_name}(" )
+          f.print( "          #{dummy_p_cell_access_pre}omitted #{p.get_name}_#{fun.get_name}(" )
+        else
+          f.print( "          #{dummy_p_cell_access_pre}#{@global_name}_#{p.get_name}_#{fun.get_name}(" )
         end
         ft = fun.get_declarator.get_type
@@ -1981,4 +2373,74 @@
         f.print( " )#{dummy_p_cell_access_post}\n" )
       }
+    }
+    f.print( "\n" )
+  end
+
+  def gen_ph_ref_desc_macro_abbrev f
+    if @n_call_port_ref_desc >0 then
+      f.printf( TECSMsg.get( :CRDA_comment ), "#_CRDA_#" )
+    end
+
+    @port.each { |p|
+      next if p.get_port_type != :CALL
+      next if ! p.is_ref_desc?
+
+      if @singleton then
+        p_cellcb = ""
+        delim = ""
+      else
+        p_cellcb = "p_cellcb"
+        delim = ", "
+      end
+
+      if p.get_array_size then
+        array = " i "
+        array2 = "#{delim}i"
+      else
+        array = ""
+        array2 = ""
+      end
+
+      f.printf( "#define %s_refer_to_descriptor(#{array})\\\n          %s_refer_to_descriptor( #{p_cellcb}#{array2} )\n",
+                "#{p.get_name}",
+                "#{@global_name}_#{p.get_name}" )
+      f.printf( "#define %s_ref_desc(#{array})\\\n          %s_refer_to_descriptor(#{array})\n",   
+                "#{p.get_name}",
+                "#{p.get_name}" )
+    }
+    f.print( "\n" )
+  end
+
+  def gen_ph_set_desc_macro_abbrev f
+    if @n_call_port_dynamic >0 then
+      f.printf( TECSMsg.get( :SDMA_comment ), "#_SDMA_#" )
+    end
+
+    if @singleton then
+      p_cellcb = ""
+      delim = ""
+    else
+      p_cellcb = "p_cellcb"
+      delim = ", "
+    end
+    @port.each { |p|
+      next if p.get_port_type != :CALL
+      next if ! p.is_dynamic?
+
+      if p.get_array_size then
+        subsc = "i, "
+        subsc2 = "i"
+        subsc3 = delim + subsc2
+      else
+        subsc = ""
+        subsc2 = ""
+        subsc3 = ""
+      end
+      f.printf( "#define %s_set_descriptor( #{subsc}desc )\\\n          %s_set_descriptor( #{p_cellcb}#{delim}#{subsc}desc )\n",
+                "#{p.get_name}",
+                "#{@global_name}_#{p.get_name}" )
+      f.printf( "#define %s_unjoin( #{subsc2} )\\\n          %s_unjoin( #{p_cellcb}#{subsc3} )\n",
+                "#{p.get_name}",
+                "#{@global_name}_#{p.get_name}" )
     }
     f.print( "\n" )
@@ -2149,5 +2611,5 @@
         f.print( "typedef const struct tag_#{@global_name}_INIB {\n" )
 
-        gen_cell_cb_type_port f
+        gen_cell_cb_type_port( f, :INIB )
         gen_cell_cb_type_attribute( f, :INIB )
 
@@ -2162,4 +2624,5 @@
           f.print "    #{@global_name}_INIB  *_inib;\n"
         end
+        gen_cell_cb_type_port( f, :CB_DYNAMIC )
         gen_cell_cb_type_attribute( f, :CB )
         gen_cell_cb_type_var f
@@ -2180,5 +2643,5 @@
       f.print( "typedef struct tag_#{@global_name}_CB {\n" )
 
-      gen_cell_cb_type_port f
+      gen_cell_cb_type_port( f, :CB )
       gen_cell_cb_type_attribute( f, :CB )
       gen_cell_cb_type_var f
@@ -2248,13 +2711,13 @@
   end
 
-  def gen_cell_cb_type_port f
-    gen_cell_cb_type_call_port f
-    gen_cell_cb_type_entry_port f
-  end
-
-  def gen_cell_cb_type_call_port f
+  def gen_cell_cb_type_port( f, inib_cb )
+    gen_cell_cb_type_call_port( f, inib_cb )
+    gen_cell_cb_type_entry_port( f, inib_cb )
+  end
+
+  def gen_cell_cb_type_call_port( f, inib_cb )
     # 呼び口
     if @n_call_port >0 then
-      f.print "    /* call port #_TCP_# */ \n"
+      f.print "    /* call port #_TCP_# */\n"
     end
 
@@ -2262,11 +2725,27 @@
       next if p.get_port_type != :CALL
       next if p.is_omit?
-      ptr = ''
-      ptr = '*' if p.get_array_size
+      next if inib_cb == :INIB && p.is_dynamic? && p.get_array_size == nil && ! $ram_initializer
+      next if inib_cb == :CB_DYNAMIC && ( ! p.is_dynamic? || p.get_array_size != nil )
+      # bprint "cb_type #{inib_cb} #{p.get_name} dynamic=#{p.is_dynamic?}\n"
+
+      ptr = p.get_array_size ? '*' : ''
 
       if ! p.is_cell_unique? then
+        const = p.is_dynamic?  ? '' : 'const'
+        if inib_cb == :INIB && p.is_dynamic? && p.get_array_size == nil && $ram_initializer then
+          init = '_init_'
+          const2 = 'const'
+        else
+          init = ''
+          const2 = 'const'
+        end
+
         if ! p.is_skelton_useless? then
           # 標準形
-          f.print( "    struct tag_#{p.get_signature.get_global_name}_VDES #{ptr}const*#{p.get_name;};\n" )
+          if inib_cb == :INIB && p.is_dynamic? && p.get_array_size != nil && $ram_initializer then
+            f.print( "    struct tag_#{p.get_signature.get_global_name}_VDES #{ptr}#{const2}*#{p.get_name;}_init_;\n" )
+          end
+          f.print( "    struct tag_#{p.get_signature.get_global_name}_VDES #{ptr}#{const}*#{p.get_name;}#{init};\n" )
+#          f.print( "    struct tag_#{p.get_signature.get_global_name}_VDES #{ptr}*#{p.get_name;};\n" )
           if p.get_array_size == "[]" then
             f.print( "    int_t n_#{p.get_name};\n" )
@@ -2295,5 +2774,5 @@
 
   #=== Celltype#受け口配列添数を記憶する変数の定義
-  def gen_cell_cb_type_entry_port f
+  def gen_cell_cb_type_entry_port( f, inib_cb )
     # 呼び口
     if @n_entry_port >0 then
@@ -2318,23 +2797,45 @@
         f.print "extern  #{@global_name}_INIB  #{@global_name}_SINGLE_CELL_INIB;\n"
       end
-
-#     @ordered_cell_list.each{ |c|
-#        f.print "extern  #{@global_name}_CB  #{@global_name}_#{c.get_name}_CB;\n"
-#      }
-
       f.print "\n"
-    elsif @idx_is_id_act then
-      f.print "extern #{@global_name}_CB  *#{@global_name}_CB_tab[];\n"
+    elsif @b_need_ptab then
+      f.printf( TECSMsg.get( :SCP_comment ),  "#_MCPP_#" )
+      if has_CB? then
+        f.print "extern #{@global_name}_CB  *const #{@global_name}_CB_ptab[];\n"
+        @ordered_cell_list.each{ |c|
+          if c.is_generate? then                           # 生成対象か？
+            name_array = get_name_array c
+            f.print "extern #{@global_name}_CB  #{name_array[4]};\n"
+          end
+        }
+      elsif has_INIB?
+        f.print "extern #{@global_name}_INIB  *const #{@global_name}_INIB_ptab[];\n"
+        @ordered_cell_list.each{ |c|
+          if c.is_generate? then                           # 生成対象か？
+            name_array = get_name_array c
+            f.print "extern #{@global_name}_INIB  #{name_array[11]};\n"
+          end
+        }
+      end
     else
-      f.print "extern #{@global_name}_CB  #{@global_name}_CB_tab[];\n"
+      f.printf( TECSMsg.get( :SCP_comment ),  "#_MCPB_#" )
+      if has_CB? then
+        f.print "extern #{@global_name}_CB  #{@global_name}_CB_tab[];\n"
+      elsif has_INIB?
+        f.print "extern #{@global_name}_INIB  #{@global_name}_INIB_tab[];\n"
+      end
     end
   end
 
   def gen_ph_INIB_as_CB f
-
+    # ここは、手抜きである。本来なら INIB を出力すべき
     if ! has_CB? && has_INIB? then
       f.printf( TECSMsg.get( :DCI_comment ),  "#_DCI_#" )
-      f.print "#define #{@global_name}_CB_tab           #{@global_name}_INIB_tab\n"
-      f.print "#define #{@global_name}_SINGLE_CELL_CB   #{@global_name}_SINGLE_CELL_INIB\n"
+      if @singleton then
+        f.print "#define #{@global_name}_SINGLE_CELL_CB   #{@global_name}_SINGLE_CELL_INIB\n"
+      elsif @b_need_ptab then
+        f.print "#define #{@global_name}_CB_ptab           #{@global_name}_INIB_ptab\n"
+      else
+        f.print "#define #{@global_name}_CB_tab           #{@global_name}_INIB_tab\n"
+      end
       f.print "#define #{@global_name}_CB               #{@global_name}_INIB\n"
       f.print "#define tag_#{@global_name}_CB           tag_#{@global_name}_INIB\n"
@@ -2360,13 +2861,15 @@
       f.printf( TECSMsg.get( :FEC_comment ), "#_FEC_#" )
 
-      if @idx_is_id_act then
+      if @b_need_ptab then
         amp = ''
+        tab = 'ptab'
       else
         amp = '&'
+        tab = 'tab'
       end
       f.print <<EOT
 #define FOREACH_CELL(i,p_cb)   \\
     for( (i) = 0; (i) < #{@global_name}_N_CELL; (i)++ ){ \\
-       #{necessity}(p_cb) = #{amp}#{@global_name}_CB_tab[i];
+       #{necessity}(p_cb) = #{amp}#{@global_name}_CB_#{tab}[i];
 
 #define END_FOREACH_CELL   }
@@ -2418,4 +2921,5 @@
 
     if @n_cell_gen > 0 && need_CB_initializer? then
+      b_var_init = false
       f.print "#define INITIALIZE_CB#{arg}"
       @var.each { |v|
@@ -2423,4 +2927,5 @@
         next if init == nil
 
+        b_var_init = true
         type = v.get_type.get_original_type
         f.print "\\\n"
@@ -2438,5 +2943,6 @@
 #            post = ""
           end
-          f.print "\tmemcpy((void*)#{pre}#{@global_name}_VAR_#{v.get_name}#{p_that}#{post}, (void*)#{pre}#{@global_name}_#{v.get_name}_VAR_INIT#{post}, sizeof(#{@global_name}_#{v.get_name}_VAR_INIT));"
+          f.print "\tmemcpy((void*)#{pre}#{@global_name}_VAR_#{v.get_name}#{p_that}#{post}, "
+          f.print "(void*)#{pre}#{@global_name}_#{v.get_name}_VAR_INIT#{post}, sizeof(#{@global_name}_#{v.get_name}_VAR_INIT));"
         elsif init.instance_of? C_EXP then
           f.print "\t#{that}#{v.get_name} = #{init.get_c_exp_string};"
@@ -2451,4 +2957,45 @@
         end
       }
+
+      # dynamic call port の初期化コード
+      b_dyn_port = false
+      @port.each{ |p|
+        next if p.get_port_type != :CALL
+        if p.is_dynamic? && $ram_initializer then
+          if p.get_array_size == nil then
+            f.print "\\\n\t#{that}#{p.get_name} = #{that}_inib->#{p.get_name}_init_;"
+          else
+            if @singleton || p.get_array_size != "[]" then
+              p_that = ""
+            else
+              p_that = "(p_that)"
+            end
+            if @singleton then
+              that = "#{@global_name}_SINGLE_CELL_INIB."
+            else
+              that = "(p_that)->"
+            end
+            if has_CB? then
+              init = '_init->'
+            else
+              init = ''
+            end
+            f.printf( "\\\n%-80s\\\n", '     {' )
+            f.printf( "%-80s\\\n", '        int_t   j;' )
+            f.printf( "%-80s\\\n", "        for( j = 0; j < N_CP_#{p.get_name}#{p_that}; j++ ){" )
+            f.printf( "%-80s\\\n", "            #{that}#{p.get_name}[j] = #{that}#{init}#{p.get_name}_init_[j];" )
+            f.printf( "%-80s\\\n", '        }' )
+            f.printf( "%-80s", '       }' )
+          end
+          b_dyn_port = true
+        end
+      }
+      if b_dyn_port then
+        f.print( "\n" )
+      end
+      
+      if b_var_init == false && b_dyn_port == false && ! @singleton then
+        f.print "\t(void)(p_that);"
+      end
       f.print "\n"
 
@@ -2457,6 +3004,6 @@
         if @singleton then
           f.print "\t#{that}_inib = &#{@global_name}_SINGLE_CELL_INIB;\n\n"
-        elsif @idx_is_id_act
-          f.print "\t#{that}_inib = #{@global_name}_INIB_tab[(i)];\n\n"
+        elsif @b_need_ptab then
+          f.print "\t#{that}_inib = #{@global_name}_INIB_ptab[(i)];\n\n"
         else
           f.print "\t#{that}_inib = &#{@global_name}_INIB_tab[(i)];\n\n"
@@ -2697,5 +3244,5 @@
               j = am[i]
               if j then
-                if am[i].get_cell.get_celltype == self then
+                if am[i].get_rhs_cell.get_celltype == self then
                   # 同じセルタイプへ結合している場合(VDES では type conflict になる)
                   p = am[i].get_rhs_port
@@ -2726,5 +3273,6 @@
             end
           else
-            if j.get_cell.get_celltype == self then
+            dbgPrint "me=#{@name} callee=#{j.get_rhs_cell.get_celltype.get_name} #{j.get_cell.get_celltype.get_name} \n"
+            if j.get_rhs_cell.get_celltype == self then
               # 同じセルタイプへ結合している場合(VDES では type conflict になる)
               p = j.get_rhs_port
@@ -2765,26 +3313,51 @@
 
         jl = c.get_join_list
-        jl.get_items.each{ |j|
-          definition = j.get_definition
-          next unless definition.instance_of? Port
+        # ループを回す変数を jl から @port に変更
+        # dynamic, optional 
+#        jl.get_items.each{ |j|
+        @port.each { |port|
+          next if port.get_port_type != :CALL
+          dbgPrint( "gen_cell_ep_vdes_array: #{c.get_name}.#{port.get_name}\n" )
+
+#          definition = j.get_definition
+#          next unless definition.instance_of? Port
+          j = jl.get_item( port.get_name )
+
           # port = definition    # definition は composite の Port が得られることがある
-          port = find j.get_name # celltype の Port (こちらに最適化情報がある)
+          # port = find j.get_name # celltype の Port (こちらに最適化情報がある)
           next if port.is_cell_unique?
           next if port.is_omit?
 
-          am = j.get_array_member2
-          if am  then
+          b_array = false
+          am = nil
+          if j then
+            am = j.get_array_member2
+            if am then
+              b_array = true
+            end
+          else
+            if port.get_array_size == "[]" then
+              # this case is dynamic optional and nothing joined
+              next
+            elsif port.get_array_size then
+              b_array = true
+            end
+          end
+          if b_array  then
+#          if am then
             # 左辺は配列
+            const = ( port.is_dynamic? && ! $ram_initializer ) ? '' : 'const '
+            init = ( port.is_dynamic? && $ram_initializer ) ? '_init_' : ''
 
             if ! port.is_skelton_useless? then
-              f.printf( "struct %s * const %s_%s[] = {\n",
+              f.printf( "struct %s * #{const}%s_%s[] = {\n",
                         "tag_#{port.get_signature.get_global_name}_VDES",
                         "#{c.get_global_name}",
-                        "#{j.get_name}" )
+                        "#{port.get_name}" + init )
             else
 
 #              スケルトン関数不要最適化の場合、この配列は参照されない
               # mikan このケースがテストされていない
-              f.printf( "const %s_IDX  %s_%s[] = {\n",
+              f.printf( "#{const}%s_IDX  %s_%s[] = {\n",
 #                        "#{j.get_celltype.get_global_name}",   # 右辺 composite に対応できない
                         "#{j.get_rhs_cell.get_celltype.get_global_name}",
@@ -2800,4 +3373,9 @@
             i = 0
             while i < length
+              if am == nil then
+                f.print( "    0,\n" )
+                i += 1
+                next
+              end
               j = am[i]
               i += 1
@@ -2841,4 +3419,11 @@
             # mikan   cell の namespace 未対応、Join で Cell オブジェクトを引当ておく必要あり
             f.print "};\n"
+            # dynamic の呼び口配列
+            if port.is_dynamic? && $ram_initializer then
+              f.printf( "struct %s * %s_%s[ #{length} ];\n",
+                        "tag_#{port.get_signature.get_global_name}_VDES",
+                        "#{c.get_global_name}",
+                        "#{port.get_name}" )
+            end
           end
         }
@@ -2967,7 +3552,8 @@
         init = v.get_initializer
         if init && init.instance_of?( Array ) then
-          type = v.get_type.get_original_type
-
-          if( type.kind_of? PtrType )then
+          type = v.get_type
+          org_type = v.get_type.get_original_type
+
+          if( org_type.kind_of? PtrType )then
             # PtrType は ArrayType にすり替える
 
@@ -2976,4 +3562,5 @@
             t2.set_type( type.get_type )
             type = t2
+            org_type = t2
           end
 
@@ -2982,10 +3569,10 @@
           # f.print "const #{type0.get_type_str}\t#{@global_name}_#{v.get_name}_VAR_INIT#{type0.get_type_str_post} = "
           f.print "const #{type.get_type_str}\t#{@global_name}_#{v.get_name}_VAR_INIT#{type.get_type_str_post} = "
-          if type.kind_of? StructType then
+          if org_type.kind_of? StructType then
             # celltype の default の初期値あり
             str = gen_cell_cb_init( f, c, name_array, type, init, v.get_identifier, 1, true )
-          elsif( type.kind_of?( PtrType ) || type.kind_of?( ArrayType ) ) then
+          elsif( org_type.kind_of?( PtrType ) || org_type.kind_of?( ArrayType ) ) then
             str = "{ "
-            type = type.get_type
+            type = org_type.get_type
             # mikan ポインタではなく、配列型としないと、ポインタ変数の領域の分、損する
             init.each { |i|
@@ -3015,5 +3602,5 @@
         fs.each{ |r, f| f.print "#{@global_name}_INIB #{@global_name}_SINGLE_CELL_INIB = \n" }
         indent = 0
-      elsif ! @idx_is_id_act then
+      elsif ! @b_need_ptab then
         fs.each{ |r, f| f.print "#{@global_name}_INIB #{@global_name}_INIB_tab[] = {\n" }
         indent = 1
@@ -3036,15 +3623,15 @@
 
         print_indent( f, indent )
-        if @idx_is_id_act then
+        if @b_need_ptab then
           f.print "const #{@global_name}_INIB #{name_array[5]} = "
         end
         f.print "{\n"
 
-        gen_cell_cb_port( c, indent, f, name_array )
+        gen_cell_cb_port( c, indent, f, name_array, :INIB )
         gen_cell_cb_attribute( c, indent, f, name_array, :INIB )
 
         unless @singleton then
           # 1 つの cell INIB の終わり
-          if @idx_is_id_act then
+          if @b_need_ptab then
             f.print( "};\n\n" )
           else
@@ -3053,5 +3640,5 @@
         end
       }
-      if ! @idx_is_id_act then
+      if ! @b_need_ptab then
         fs.each{ |r, f| f.print( "};\n\n" ) }
       end
@@ -3068,7 +3655,9 @@
           fs.each{ |r, f| f.print "struct tag_#{@global_name}_CB #{@global_name}_SINGLE_CELL_CB = \n" }
           indent = 0
-        elsif ! @idx_is_id_act then
+        elsif ! @b_need_ptab then
           fs.each{ |r, f| f.print "struct tag_#{@global_name}_CB #{@global_name}_CB_tab[] = {\n" }
           indent = 1
+        else
+          indent = 0
         end
 
@@ -3087,5 +3676,5 @@
 
           print_indent( f, indent )
-          if @idx_is_id_act then
+          if @b_need_ptab then
             f.print "#{@global_name}_CB #{name_array[2]} = "
           end
@@ -3097,6 +3686,9 @@
           end
 
-          if ! has_INIB? then
-            gen_cell_cb_port( c, indent, f, name_array )
+          #if ! has_INIB? then
+          if $rom == false then
+            gen_cell_cb_port( c, indent, f, name_array, :CB_ALL )
+          else
+            gen_cell_cb_port( c, indent, f, name_array, :CB_DYNAMIC )
           end
 
@@ -3106,5 +3698,5 @@
           unless @singleton then
             # 1 つの cell CB の終わり
-            if @idx_is_id_act then
+            if @b_need_ptab then
               f.print( "};\n\n" )
             else
@@ -3113,5 +3705,5 @@
           end
         }
-        if ! @idx_is_id_act then
+        if ! @b_need_ptab then
           fs.each{ |r, f| f.print( "};\n\n" ) }
         end
@@ -3120,5 +3712,5 @@
           fs.each{ |r, f| f.print "struct tag_#{@global_name}_CB #{@global_name}_SINGLE_CELL_CB;\n" }
           indent = 0
-        elsif @idx_is_id_act then
+        elsif @b_need_ptab then
           @ordered_cell_list.each{ |c|
             next if ! c.is_generate?
@@ -3139,5 +3731,5 @@
   def gen_cell_cb_tab f
     indent = 0
-    if @idx_is_id_act then
+    if @b_need_ptab then
       if has_INIB? && ( $ram_initializer || ! has_CB? ) then
         f.print "/* ID to INIB table #_INTAB_# */\n"
@@ -3150,5 +3742,5 @@
         }
 
-        f.print "#{@global_name}_INIB *#{@global_name}_INIB_tab[] ={\n"
+        f.print "#{@global_name}_INIB *const #{@global_name}_INIB_ptab[] ={\n"
         @ordered_cell_list.each{ |c|
           if c.is_generate? then                           # 生成対象か？
@@ -3170,5 +3762,5 @@
         }
 
-        f.print "#{@global_name}_CB *#{@global_name}_CB_tab[] ={\n"
+        f.print "#{@global_name}_CB *const #{@global_name}_CB_ptab[] ={\n"
         @ordered_cell_list.each{ |c|
           if c.is_generate? then                           # 生成対象か？
@@ -3199,4 +3791,5 @@
   #   name_array[9] = @global_name    # celltype global name
   #   name_array[10] = cell.get_global_name # cell global name
+  #   name_array[11] = cell_INIB_proto #INIB name for proto type
   
   def get_name_array( cell )
@@ -3207,7 +3800,8 @@
       cell_CB_proto = "#{@global_name}_SINGLE_CELL_CB"
       cell_INIB_name = "#{@global_name}_SINGLE_CELL_INIB"
+      cell_INIB_proto = cell_INIB_name
       cell_ID = 0
     else
-      if ! @idx_is_id_act then
+      if ! @b_need_ptab then
         index = cell.get_id - cell.get_celltype.get_id_base
         cell_CB_name = "#{@global_name}_CB_tab[#{index}]"
@@ -3215,4 +3809,5 @@
         cell_CB_proto = "#{@global_name}_CB_tab[]"
         cell_INIB_name = "#{@global_name}_INIB_tab[#{index}]"
+        cell_INIB_proto = "#{@global_name}_INIB_tab[]"
       else
         cell_CB_name = "#{cell.get_global_name}_CB"
@@ -3220,17 +3815,21 @@
         cell_CB_proto = cell_CB_name
         cell_INIB_name = "#{cell.get_global_name}_INIB"
+        cell_INIB_proto = cell_INIB_name
       end
       cell_ID = cell.get_id
     end
+
+    if has_CB? then
+      cell_CBP = "&#{cell_CB_name}"
+    elsif has_INIB? then
+      cell_CBP = "&#{cell_INIB_name}"
+    else
+      cell_CBP = "NULL"    # CB も INIB もなければ NULL に置換
+    end
+
     if @idx_is_id_act then
       cell_IDX = cell_ID
     else
-      cell_IDX = "&#{cell_CB_name}"
-    end
-
-    if ! has_CB? && ! has_INIB? then
-      cell_CBP = "NULL"    # CB も INIB もなければ NULL に置換
-    else
-      cell_CBP = "&#{cell_CB_name}"
+      cell_IDX = cell_CBP
     end
 
@@ -3247,4 +3846,5 @@
     name_array[9] = @global_name    # celltype global name
     name_array[10] = cell.get_global_name # cell global name
+    name_array[11] = cell_INIB_proto # INIB name for prototype
 
     return name_array
@@ -3331,21 +3931,27 @@
   end
 
-  def gen_cell_cb_port( cell, indent, f, name_array )
-    gen_cell_cb_call_port( cell, indent, f, name_array )
+  #inib_cb::Symbol: :INIB, :CB_ALL, :CB_DYNAMIC
+  def gen_cell_cb_port( cell, indent, f, name_array, inib_cb = :INIB )
+    gen_cell_cb_call_port( cell, indent, f, name_array, inib_cb )
     gen_cell_cb_entry_port( cell, indent, f, name_array )
   end
 
   #=== 呼び口の初期化コードの生成
-  def gen_cell_cb_call_port( cell, indent, f, name_array )
+  def gen_cell_cb_call_port( cell, indent, f, name_array, inib_cb )
     jl = cell.get_join_list
 
     port = get_port_list
-    if @n_call_port != 0 then
+    if inib_cb == :INIB && ( @n_call_port - @n_call_port_omitted_in_CB -
+                             ( $ram_initializer ? 0 : (@n_call_port_dynamic-@n_call_port_array_dynamic) )  > 0 ) ||
+       inib_cb == :CB_ALL && @n_call_port > 0 ||
+       inib_cb == :CB_DYNAMIC && (@n_call_port_dynamic - @n_call_port_array_dynamic) > 0 then
       print_indent( f, indent + 1 )
-      f.print "/* call port #_CP_# */ \n"
+      f.print "/* call port (#{inib_cb}) #_CP_# */ \n"
       port.each{ |p|
         next if p.get_port_type != :CALL
         next if p.is_omit?
         next if p.is_cell_unique?        # 最適化（単一セルで呼び口マクロに埋め込まれる）
+        next if inib_cb == :INIB && p.is_dynamic? && p.get_array_size == nil && ! $ram_initializer
+        next if inib_cb == :CB_DYNAMIC && ( ! p.is_dynamic? || p.get_array_size != nil )
 
         j = jl.get_item( p.get_name )
@@ -3354,12 +3960,29 @@
         # debug
         if j == nil then
+          dbgPrint "cell_cb_call_port: #{p.get_name} array size=#{p.get_array_size}\n"
           # optional 呼び口
           # cdl_error( "H1003 internal error: cell \'$1\' port \'$2\': initializer not found\n" , cell.get_name, p.get_name )
           # exit( 1 )
-          f.printf( "%-40s /* #_CCP5_# */\n",  "0," )
-          if p.get_array_size == "[]" then
-            # 添数省略の呼び口配列
-            print_indent( f, indent + 1 )
-            f.printf( "%-40s /* %s #_CCP6_# */\n", "0,", "length of #{p.get_name} (n_#{p.get_name})" )
+          if p.get_array_size then
+            if p.is_dynamic? then
+              if inib_cb == :INIB then
+                if  $ram_initializer then
+                  f.printf( "%-40s /* #_CCP7_# _init_ */\n",  "#{cell.get_global_name}_#{p.get_name}_init_," )
+                  print_indent( f, indent + 1 )
+                end
+                f.printf( "%-40s /* #_CCP7B_# */\n",  "#{cell.get_global_name}_#{p.get_name}," )
+              elsif $rom == false then
+                f.printf( "%-40s /* #_CCP8_# */\n",  "#{cell.get_global_name}_#{p.get_name}," )
+              end
+            else
+              f.printf( "%-40s /* #_CCP9_# */\n",  "0," )
+            end
+            if p.get_array_size == "[]" then
+              # 添数省略の呼び口配列
+              print_indent( f, indent + 1 )
+              f.printf( "%-40s /* %s #_CCP6_# */\n", "0,", "length of #{p.get_name} (n_#{p.get_name})" )
+            end
+          else
+            f.printf( "%-40s /* #_CCP5_# */\n",  "0," )
           end
           next
@@ -3369,5 +3992,9 @@
         if am then
           # 呼び口配列の場合
-          f.printf( "%-40s /* #_CCP3_# */\n",  "#{cell.get_global_name}_#{j.get_name}," )
+          if inib_cb == :INIB && p.is_dynamic? && p.get_array_size != nil && $ram_initializer then
+            f.printf( "%-40s /* #_CCP3_# _init_ */\n",  "#{cell.get_global_name}_#{j.get_name}_init_," )
+            print_indent( f, indent + 1 )
+          end
+          f.printf( "%-40s /* #_CCP3B_# */\n",  "#{cell.get_global_name}_#{j.get_name}," )
           if p.get_array_size == "[]" then
             # 添数省略の呼び口配列
@@ -3385,4 +4012,6 @@
           end
 
+          init = ( p.is_dynamic? && inib_cb == :INIB ) ? "_init_" : ""
+
           if j.get_rhs_subscript then
             # 受け口配列の場合
@@ -3391,5 +4020,5 @@
                       # "&#{j.get_cell_global_name}_#{j.get_port_name}_des#{subscript},",
                       "#{des_type_cast}&#{j.get_port_global_name}_des#{subscript},",
-                      p.get_name )
+                      p.get_name.to_s + init )
           else
             # 呼び口配列でも、受け口配列でもない
@@ -3397,15 +4026,15 @@
               f.printf( "%-40s /* %s #_CCP1_# */\n",
                         "#{des_type_cast}&#{j.get_port_global_name}_des,",
-                        p.get_name )
+                        p.get_name.to_s + init )
             else
               # スケルトン不要最適化（CB (INIB) へのポインタを埋め込む）
               c = j.get_rhs_cell                    # 呼び先セル
               ct = c.get_celltype                   # 呼び先セルタイプ
+              name_array = ct.get_name_array( c )   # 呼び先セルタイプで name_array を得る
               if ct.has_INIB? || ct.has_CB? then
-                name_array = ct.get_name_array( c )   # 呼び先セルタイプで name_array を得る
                 f.printf( "%-40s /* %s #_CCP2_# */\n", "#{name_array[7]},", p.get_name )
               else
                 # 呼び先は CB も INIB も持たない（NULL に初期化）
-                f.printf( "%-40s /* %s #_CCP2_# */\n", "0,", p.get_name )
+                f.printf( "%-40s /* %s #_CCP2B_# */\n", "0,", p.get_name )
               end
             end
@@ -3689,6 +4318,7 @@
       f = fs[ c.get_region.get_domain_root ]
 
-      ct = c.get_celltype
+      ct = c.get_celltype     # ct = self でも同じ
       jl = c.get_join_list
+      name_array = get_name_array( c )
 
       port = ct.get_port_list
@@ -3725,16 +4355,18 @@
               else
                 if has_CB? then
-                  if @singleton then
-                    f.print "    &#{@global_name}_SINGLE_CELL_CB,        /* CB */\n"
-                  else
-                    # f.print "    &#{@global_name}_#{c.get_name}_CB,\n"
-                    f.print "    &#{@global_name}_CB_tab[#{index}],      /* CB */\n"
-                  end
+                  # if @singleton then
+                  #   f.print "    &#{@global_name}_SINGLE_CELL_CB,        /* CB 1 */\n"
+                  # else
+                  #   # f.print "    &#{@global_name}_#{c.get_name}_CB,\n"
+                  #   f.print "    &#{@global_name}_CB_tab[#{index}],      /* CB 2 */\n"
+                  # end
+                  f.print "    #{name_array[8]},      /* CB 1 */\n"
                 elsif has_INIB? then
-                  if @singleton then
-                    f.print "    &#{@global_name}_SINGLE_CELL_INIB,      /* INIB */\n"
-                  else
-                    f.print "    &#{@global_name}_INIB_tab[#{index}],    /* INIB */\n"
-                  end
+                  # if @singleton then
+                  #   f.print "    &#{@global_name}_SINGLE_CELL_INIB,      /* INIB 1 */\n"
+                  # else
+                  #   f.print "    &#{@global_name}_INIB_tab[#{index}],    /* INIB 2 */\n"
+                  # end
+                  f.print "    &#{name_array[5]},      /* INIB 1 */\n"
                 else
                   f.print "    0,\n"
@@ -3760,16 +4392,18 @@
             else
               if has_CB? then
-                if @singleton then
-                  f.print "    &#{@global_name}_SINGLE_CELL_CB,       /* CB */\n"
-                else
-                  f.print "    &#{@global_name}_CB_tab[#{index}],     /* CB */\n"
-                  # f.print "    &#{@global_name}_#{c.get_name}_CB,\n"
-                end
+                # if @singleton then
+                #   f.print "    &#{@global_name}_SINGLE_CELL_CB,       /* CB 3 */\n"
+                # else
+                #   f.print "    &#{@global_name}_CB_tab[#{index}],     /* CB 4 */\n"
+                #   # f.print "    &#{@global_name}_#{c.get_name}_CB,\n"
+                # end
+                f.print "    #{name_array[8]},      /* CB 3 */\n"
               elsif has_INIB? then
-                if @singleton then
-                  f.print "    &#{@global_name}_SINGLE_CELL_INIB,     /* INIB */\n"
-                else
-                  f.print "    &#{@global_name}_INIB_tab[#{index}],   /* INIB */\n"
-                end
+                # if @singleton then
+                #   f.print "    &#{@global_name}_SINGLE_CELL_INIB,     /* INIB 3 */\n"
+                # else
+                #   # f.print "    &#{@global_name}_INIB_tab[#{index}],   /* INIB 4 */\n"
+                # end
+                f.print "    &#{name_array[5]},      /* INIB 3 */\n"
               else
                 f.print "    0,\n"
@@ -3940,4 +4574,5 @@
 
         ft.get_paramlist.get_items.each{ |param|
+          # p "type_str: #{param.get_type.get_type_str}"
           f.print( "#{delim} #{param.get_type.get_type_str}" )
           f.print( " #{param.get_name}#{param.get_type.get_type_str_post}" )
@@ -3967,4 +4602,31 @@
       end
 
+      if p.is_ref_desc? then
+        subsc = p.get_array_size ? ' int_t subscript ' : ''
+        f.print " *   [ref_desc]\n"
+        f.printf( " *      %-14s %s;\n",
+                  "Descriptor( #{p.get_signature.get_global_name} )", 
+                  "#{p.get_name}_refer_to_descriptor(#{subsc})" )
+        f.printf( " *      %-14s %s;\n",
+                  "Descriptor( #{p.get_signature.get_global_name} )", 
+                  "#{p.get_name}_ref_desc(#{subsc})      (same as above; abbreviated version)" )
+      end
+      if p.is_dynamic? then
+        subsc = p.get_array_size ? 'int_t subscript, ' : ''
+        subsc2 = p.get_array_size ? ' int_t subscript' : ''
+        if p.is_optional? then
+          f.print " *   [dynamic, optional]\n"
+        else
+          f.print " *   [dynamic]\n"
+        end
+        f.printf( " *      %-14s %s;\n",
+                  "void",
+                  "#{p.get_name}_set_descriptor( #{subsc}Descriptor( #{p.get_signature.get_global_name} ) desc )" )
+        if p.is_optional? then
+          f.printf( " *      %-14s %s;\n",
+                    "void",
+                    "#{p.get_name}_unjoin( #{subsc2} )" )
+        end
+      end
     }
 
@@ -4048,4 +4710,5 @@
           delim = ", "
           f.print param.get_type.get_type_str
+          # p "type_str2: #{param.get_type.get_type_str}"
           f.print " "
           f.print param.get_name
@@ -4103,4 +4766,5 @@
   def generate_inline_template_code
     return if @n_entry_port_inline == 0
+    return if @b_reuse && ! $generate_all_template
     if ! ( @plugin && @plugin.gen_ep_func? ) then
       return if @b_reuse && ! $generate_all_template
@@ -4480,13 +5144,13 @@
   #  str に以下の置換を行う
   #-   $ct$ ⇒ セルタイプ名(ct)
-  #-   $cell$ ⇒ セル名(cell)   cell が nil ならば3つの置換は行われない
+  #-   $cell$ ⇒ セル名(cell)   cell が nil ならば以下の置換は行われない
   #-   $cb$ ⇒ CB の C 言語名(cb)
   #-   $cbp$ ⇒ CB へのポインタ(cbp)
   #-   $cb_proto$ ⇒ CB の C 言語名プロトタイプ宣言用(cb_proto)
-  #-   $id$ ⇒ ct_cell
+  #-   $id$ ⇒ $ct$_$cell_global$    # ct_cell  before or same V1.5.2
   #-   $idx$ ⇒ idx
   #-   $ID$ ⇒ id (整数の番号)
   #-   $ct_global$ ⇒ セルタイプ名(ct)
-  #-   $cell_global$ ⇒ セル名(cell)   cell が nil ならば3つの置換は行われない
+  #-   $cell_global$ ⇒ セル名(cell)
   #-   $$   ⇒ $
   def subst_name( str, name_array )
@@ -4503,13 +5167,14 @@
 
     str = str.gsub( /(^|[^\$])\$ct\$/, "\\1#{ct}" )
+    str = str.gsub( /(^|[^\$])\$ct_global\$/, "\\1#{ct_global}" )
     if cell then
       str = str.gsub( /(^|[^\$])\$cell\$/, "\\1#{cell}" )
       str = str.gsub( /(^|[^\$])\$cb\$/, "\\1#{cb}" )
-      str = str.gsub( /(^|[^\$])\$id\$/, "\\1#{ct}_#{cell}" )
+      # str = str.gsub( /(^|[^\$])\$id\$/, "\\1#{ct}_#{cell}" )
+      str = str.gsub( /(^|[^\$])\$id\$/, "\\1#{ct}_#{cell_global}" )
       str = str.gsub( /(^|[^\$])\$cb_proto\$/, "\\1#{cb_proto}" )
       str = str.gsub( /(^|[^\$])\$ID\$/, "\\1#{id}" )
       str = str.gsub( /(^|[^\$])\$idx\$/, "\\1#{idx}" )
       str = str.gsub( /(^|[^\$])\$cbp\$/, "\\1#{cbp}" )
-      str = str.gsub( /(^|[^\$])\$ct_global\$/, "\\1#{ct_global}" )
       str = str.gsub( /(^|[^\$])\$cell_global\$/, "\\1#{cell_global}" )
     end
@@ -4631,2 +5296,9 @@
   end
 end
+
+class DomainType < Node
+  def gen_factory
+    # p "DomainType: gen_factory"
+    @plugin.gen_factory
+  end
+end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/location.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/location.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/location.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/messages.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/messages.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/messages.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -89,3 +89,17 @@
  end
 
+ #=== TECSMsg#ローカライズされた情報メッセージを得る
+ # Generator.info2 から呼び出される
+ def self.get_info_message( body )
+   body =~ /^[A-Z0-9]+/    # 情報番号を取り出す
+   num = $&
+   msg = @@info_message[ num.to_sym ]
+   if msg == nil then
+     m = body
+   else
+     m = num + " " + msg
+   end
+   return m
+ end
+
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/optimize.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/optimize.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/optimize.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2018 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -178,4 +178,5 @@
 
   def set_domain
+    domain_cells = {}
     @cell_list.each{ |c|
       if c.is_generate? then
@@ -191,4 +192,9 @@
           @domain_roots[ dn ] = [ dr ]
         end
+        if domain_cells[ dr ]  then
+          domain_cells[ dr ] << c
+        else
+          domain_cells[ dr ] = [ c ]
+        end
       end
     }
@@ -196,10 +202,21 @@
     @domain_roots.each{ |dn, drs|
       drs.uniq!
-      if ! $debug then
-        dbgPrint "domains celltype:#{@name} domain=#{dn} "
+      if $verbose && dn then
+        print "[domain] celltype=#{@name} domainType=#{dn} domainRootRegions={"
+        delim = ""
         drs.each{ |r|
-          dbgPrint " region=#{r.get_name}"
+          print delim, r.get_name
+          delim = ", "
         }
-        dbgPrint "\n"
+        print "}\n"
+        drs.each{ |r|
+          print "[domain] celltype=#{@name} domainRootRegion=#{r.get_name} domainType=#{dn} domainKind=#{r.get_domain_root.get_domain_type.get_kind} domainCells={"
+          delim = ""
+          domain_cells[r].each{ |c|
+            print delim, c.get_name
+            delim = ", "
+          }
+          print "}\n"
+        }
       end
     }
@@ -212,9 +229,12 @@
       # domain_type は一つのノードに一つしかないので、一つの要素を無条件で取り出す
       if regions.length > 1 then
-        cdl_info( "celltype:#{@name} has cells in multi domain.\n" )
-        if @idx_is_id == false then
-          cdl_info( "celltype:#{@name} forcely set idx_is_id\n" )
-        end
-        @idx_is_id_act = true
+        if $verbose then
+          cdl_info( "I9999 celltype '$1' has cells in multi-domain.\n", @name )
+        end
+        # if @idx_is_id == false then
+        #   cdl_info( "I9999 celltype '$1' forcely set idx_is_id\n", @name )
+        # end
+        @b_need_ptab = true
+        # @idx_is_id_act = true
       end
     }
@@ -228,4 +248,12 @@
     end
 
+    optimize_call
+    if $unopt_entry == false then
+      optimize_entry
+    end
+  end
+
+  #=== Celltype#呼び口最適化
+  def optimize_call
     @port.each{ |port|
       next if port.get_port_type != :CALL
@@ -238,4 +266,14 @@
         if $verbose then
           print "optimized by omit: port: #{port.get_name} : o\n"
+        end
+        next
+      elsif port.is_dynamic? then
+        if $verbose then
+          print "unoptimized by dynamic: port: #{port.get_name}\n"
+        end
+        next
+      elsif port.is_ref_desc? then
+        if $verbose then
+          print "unoptimized by ref_desc: port: #{port.get_name}\n"
         end
         next
@@ -351,5 +389,9 @@
       dbgPrint "#{port.get_name} : # of cells : #{port_cells.length}  # of ports : #{port_ports.length}\n"
     }
-
+  end
+
+  #=== Celltype#受け口最適化
+  # optimize_entry は、呼び口最適化の結果を使用している
+  def optimize_entry
     # 受け口最適化の設定
     @port.each{ |port|
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/plugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/plugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/plugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -38,5 +38,5 @@
 #++
 
-#== class モジュール
+#== Plugin クラス
 # ThroughPlugin, SignaturePlugin, CelltypePlugin に include する
 class Plugin < Node
@@ -75,5 +75,8 @@
   end
 
-### 意味解析段階で呼び出されるメソッド ###
+### 構文解釈 または 意味解析段階で呼び出されるメソッド ###
+# generate 指定子の場合、構文解釈次第(end_of_parseで)呼び出される
+# generate 文の場合、出現次第呼び出される
+  ### 意味解析段階で呼び出されるメソッド ### <<< コメント誤り (V1.4.2)
   #===  CDL ファイルの生成
   #      typedef, signature, celltype, cell のコードを生成
@@ -157,5 +160,5 @@
       #  識別子取得
       if arg =~ /\A[a-zA-Z_]\w*/ then
-        ident = $~
+        ident = $~.to_s    # 
         arg = $'
       else
@@ -285,6 +288,6 @@
 end
 
-#== 出力文字列を EUC から出力ファイルに convert する
-# tecsgen のソースコードは EUC で記述されている
+#== 出力文字列を utf-8 から出力ファイルに convert する
+# tecsgen のソースコードは utf-8 で記述されている
 # これを、出力ファイルの文字コードに変換して出力する
 #
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/pluginModule.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/pluginModule.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/pluginModule.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -45,5 +45,9 @@
 
   #=== プラグインをロードする
-  #return:: true : 成功、 false : 失敗
+  # return:: PluginClass
+  # V1.4.1 まで return:: true : 成功、 false : 失敗
+  #
+  # #{plugin_name}.rb をロードし、plugin_name クラスのオブジェクトを生成する．
+  # plugin_name が MultiPlugin の場合、get_plugin により、superClass のプラグインオブジェクトをロードする．
   #
   # すでにロードされているものは、重複してロードしない
@@ -59,19 +63,25 @@
         end
         # "#{plugin_name}.rb" をロード（システム用ではないので、fatal エラーにしない）
-        if require_tecsgen_lib( "#{plugin_name}.rb", false ) == false
+        if require_tecsgen_lib( "#{plugin_name}.rb", false ) == false then
           cdl_error( "P2001 $1.rb : fail to load plugin" , plugin_name )
-          return false
+          return nil
         end
       end
 
-      plSuper = nil
-      # eval( "plSuper = #{plugin_name}.superclass" )
-      eval( "plSuper = #{plugin_name}" )
-      while plSuper != superClass && plSuper != nil
-        plSuper = plSuper.superclass
-      end
-      if plSuper == nil then
+      plClass = Object.const_get plugin_name
+      if ( plClass <= superClass ) then       # plClass inherits superClass
+        return plClass
+      elsif (plClass <= MultiPlugin) then     # plClass inherits MultiPlugin
+        dbgPrint "pluginClass=#{plClass}\n"
+        plugin_object = plClass.get_plugin superClass
+        dbgPrint "pluginClass=#{plugin_object}\n"
+        if plugin_object == nil then
+          cdl_error( "P9999 '$1': MultiPlugin not support '$2'", plugin_name, superClass.name )
+        end
+        @@loaded_plugin_list[ plugin_name.to_sym ] = :MultiPlugin
+        return plugin_object
+      else
         cdl_error( "P2002 $1: not kind of $2" ,  plugin_name, superClass.name )
-        return false
+        return nil
       end
     rescue Exception => evar
@@ -81,7 +91,8 @@
       end
       cdl_error( "P2003 $1: load failed" , plugin_name )
-      return false
+      return nil
     end
-    return true
+    # ここへは来ない
+    return nil
   end
 
@@ -92,7 +103,12 @@
     end
     plugin_name = plugin_object.class.name.to_sym
-    if @@loaded_plugin_list[ plugin_name ] == nil
-      raise "#{plugin_name} might have different name "
-      # プラグインのファイル名と、プラグインのクラス名が相違する場合
+    if @@loaded_plugin_list[ plugin_name ] == :MultiPlugin then
+      p "#{plugin_name}: MultiPlugin"
+      return
+    elsif @@loaded_plugin_list[ plugin_name ] == nil then
+      #raise "#{plugin_name} might have different name "
+      ## プラグインのファイル名と、プラグインのクラス名が相違する場合
+      #MultiPlugin の get_plugin で返されたケースでは nil になっている
+      @@loaded_plugin_list[ plugin_name ] = 0
     end
     count = @@loaded_plugin_list[ plugin_name ]
@@ -131,4 +147,7 @@
     dbgPrint "PluginModule #{@@loaded_plugin_list}\n"
     @@loaded_plugin_list.each{ |plugin_name,count|
+      if count == :MultiPlugin then
+        next
+      end
       dbgPrint "PluginModule: #{plugin_name}\n"
       eval_str = "#{plugin_name}.gen_post_code( file )"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/syntaxobj.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/syntaxobj.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/syntaxobj.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2016 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -86,6 +86,11 @@
 
   #=== 情報を表示する
-  def cdl_info( message )
-    Console.puts "info: #{message}"
+  def cdl_info( message, *arg )
+    Generator.info2( @locale, message, *arg )
+  end
+
+  #=== 情報を表示する
+  def cdl_info2( locale, message, *arg )
+    Generator.info2( locale, message, *arg )
   end
 
@@ -680,4 +685,11 @@
   end
 
+  #=== Decl# print_flowinfo
+  def print_flowinfo file
+    if @kind == :VAR then
+      file.write "#{@identifier} "
+    end
+  end
+
   def show_tree( indent )
     indent.times { print "  " }
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsgen.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsgen.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsgen.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -41,4 +41,6 @@
 class TECSGEN
 
+  @@b_post_coded = false     # ポストコード生成開始後 true
+
   #=== import パス (-I) を末尾に追加
   # 既に登録済みであれば、追加しない
@@ -216,4 +218,8 @@
   end
 
+  def self.get_argv
+    ARGV
+  end
+
   #------ TECSGEN CDL analyze and generate ------#
 
@@ -236,8 +242,15 @@
   end # syntax_analisys
 
+  #=== TECSGEN#semantics_analisys_1
+  # semantics check. only cells here
+  # other objects (signature, celltype, typedef, etc ) are checked while syntax analisys
   def semantics_analisys_1
     ####  意味解析１ (post コードを除く) ####
     dbgPrint( "## Creating reverse join \n")
     Cell.create_reverse_join
+
+    DescriptorType.check_signature
+    Signature.set_descriptor_list
+    Celltype.check_dynamic_join
 
     #0 set_definition_join は2回呼び出される（1回目）
@@ -248,4 +261,5 @@
 
     ####  post コードの生成と構文解析 ####
+    @@b_post_coded = true     # ポストコード生成開始後 true
     # 引数がなければ、プラグインのポストコードを出力しない
     if ARGV.length > 0 then
@@ -283,4 +297,5 @@
     dbgPrint( "## Checking all join (for cells generated by Post Code\n")
     @root_namespace.set_definition_join
+    @root_namespace.set_max_entry_port_inner_cell
 
     dbgPrint( "## Set require join\n")
@@ -438,3 +453,71 @@
     open( "#{$gen_base}/tecsgen.timestamp", "w" ){|io|}
   end # finalize
+
+  def dump_tecsgen_rbdmp
+    dbgPrint "dump_tecsgen_rbdmp 0:\n"
+    #### unjoin_plugin 後に行う必要があるため、コード生成後にダンプを行う
+    #### Region link root ごとにオプティマイズしてダンプ ####
+    Namespace.get_root.unjoin_plugin
+    Namespace.get_root.find_plugin 0, []
+
+    Region.get_link_roots.each { |region|
+      dbgPrint "dump_tecsgen_rbdmp 1: Region.path_str: #{region.get_namespace_path.get_path_str}\n"
+
+      n_cells = region.get_n_cells
+
+      if $region_list.length > 0 then
+        if $region_list[ region.get_namespace_path.get_path_str ] == false then
+          $region_list[ region.get_namespace_path.get_path_str ] = true
+        else
+          next
+        end
+      end
+
+      dbgPrint "dump_tecsgen_rbdmp 2: Region.path_str: #{region.get_namespace_path.get_path_str}\n"
+      # セルが一つもなければ生成しない
+      # セルの生成がない場合
+      if region.get_n_cells == 0 then
+        # if $region_list.length > 0 then
+        #   Generator.warning( "W9999 $1: specified to generate but has no cell", region.get_name )
+        # end
+        if region != @root_namespace then
+          next
+        end
+      end
+
+      dbgPrint "dump_tecsgen_rbdmp 3: Region.path_str: #{region.get_namespace_path.get_path_str}\n"
+      $generating_region = region
+      if Region.get_link_roots.length > 1 then
+        if region.get_name == "::" then
+          $gen = $gen_base
+        else
+          $gen = $gen_base + "/" + region.get_global_name.to_s
+        end
+      else
+        $gen = $gen_base
+      end
+
+      dbgPrint "dump_tecsgen_rbdmp 4: Region.path_str: #{region.get_namespace_path.get_path_str}\n"
+      dbgPrint( "## Unset optimize variables\n")
+      @root_namespace.reset_optimize   # 最適化をリセットする
+
+      #  if Generator.get_n_error == 0 then
+      #   # エラーが発生していたら、ここへは来ない
+         dbgPrint( "## Set cell id\n")
+        @root_namespace.set_cell_id_and_domain      # セルの ID とドメイン情報を設定（linkunit 毎に0からつける）
+
+        # エラーが発生していたら、最適化は実施しない
+        if ! $unopt then
+          dbgPrint( "## Optimizing: Link Region=#{@root_namespace.get_name}\n")
+          @root_namespace.optimize
+        end
+      # end
+      dbgPrint "dump_tecsgen_rbdmp final: Region.path_str: #{region.get_namespace_path.get_path_str}\n"
+      File.write( "#{$gen}/tecsgen.rbdmp", Marshal.dump(Namespace.get_root) )
+    }
+  end
+  
+  def self.post_coded?
+    @@b_post_coded
+  end
 end # class TECSGEN
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsinfo.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsinfo.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tecsinfo.rb	(revision 429)
@@ -0,0 +1,862 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2017-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+# TECS 情報セルの生成
+module TECSInfo
+  # region は Link root のこと
+  def self.print_info f, region
+    # p "region: "+ region.get_name.to_s
+    nest = region.gen_region_str_pre f
+    indent0 = "    " * nest
+    indent = "    " * ( nest + 1 )
+    f.print <<EOT
+#{indent0}region rTECSInfo {
+EOT
+    Type.reset_print_info
+
+    # mikan 全部生成するのではなく、region 下のセルのセルタイプと、そこから参照されるシグニチャ、セルタイプに限定して出力すべき
+    # しかし、意味解析後に出力するため、これは容易ではない．最適化とコード生成は、リンクルートごとに行われる．
+    Namespace.print_info f, indent
+    region.get_link_root.print_info f, indent
+
+    f.print "\n#{indent}/*** TYPE information cell ***/\n"
+    Type.print_info_post f, indent
+
+    f.print "\n#{indent}/*** TECS information cell ***/\n"
+    f.print <<EOT
+#{indent}cell nTECSInfo::tTECSInfoSub TECSInfoSub {
+#{indent}    cNamespaceInfo = _RootNamespaceInfo.eNamespaceInfo;
+#{indent}    cRegionInfo    = _LinkRootRegionInfo.eRegionInfo;
+#{indent}} /* TECSInfoSub */;
+#{indent0}}; /* rTECSInfo */
+EOT
+    region.gen_region_str_post f
+  end
+end
+
+class Namespace
+  # RootRegion と LinkRegion は同じ Region クラスのオブジェクトである
+  # 子ネームスペースは Namespace クラスの、子リージョンは Region クラスのオブジェクトである
+  # これは、意味解析段階で呼び出されるため、リンクユニットごとに出しわけることができない
+  # 出しわけるには、2パスにする必要がある
+  def print_info_ns_sub f, indent
+    if @name == "::" then
+      name = "_Root"
+    else
+      name = @global_name
+    end
+    f.print "\n#{indent}/*** #{get_namespace_path} namespace information cell ***/\n"
+    f.print <<EOT
+#{indent}cell nTECSInfo::tNamespaceInfo #{name}NamespaceInfo{
+#{indent}    name = "#{@name}";
+EOT
+    if @signature_list.length > 0 then
+      f.print "\n#{indent}    /* SIGNATURE info */\n"
+    end
+    @signature_list.each{ |sig|
+      f.print <<EOT
+#{indent}    cSignatureInfo[] = #{sig.get_global_name}SignatureInfo.eSignatureInfo;
+EOT
+    }
+    if @celltype_list.length > 0 then
+      f.print "\n#{indent}    /* CELLTYPE info */\n"
+    end
+    @celltype_list.each{ |ct|
+      if ct.get_cell_list.length > 0 then
+        f.print <<EOT
+#{indent}    cCelltypeInfo[] = #{ct.get_global_name}CelltypeInfo.eCelltypeInfo;
+EOT
+      end
+    }
+    if @namespace_list.length > 0 then
+      f.print "\n#{indent}    /* NAMESPACE info */\n"
+    end
+    @namespace_list.each{ |ns|
+      if ns.instance_of? Namespace then
+        f.print <<EOT
+#{indent}    cNamespaceInfo[] = #{ns.get_global_name}NamespaceInfo.eNamespaceInfo;
+EOT
+      end
+    }
+    f.print <<EOT
+#{indent}};   /* cell nTECSInfo::tNamespaceInfo #{name}NamespaceInfo */
+EOT
+  end
+
+  def print_info_ns f, indent
+    # p "print_info: #{self.get_global_name}"
+    print_info_ns_sub f, indent
+    @signature_list.each { |sig|
+      sig.print_info f, indent
+    }
+    @celltype_list.each { |ct|
+      if ct.get_cell_list.length > 0 then
+        ct.print_info f, indent
+      end
+    }
+    @namespace_list.each { |ns|
+      if ns.instance_of? Namespace then   # region を含めない
+        ns.print_info_ns f, indent
+      end
+    }
+  end
+
+  def self.print_info( f, indent )
+    @@root_namespace.print_info_ns f, indent
+  end
+
+  #=== Namespace# 構造体メンバーのオフセット定義
+  def print_struct_define f
+    f.print "\n/***** Offset of members of structures  *****/\n"
+    @struct_tag_list.get_items.each{ |tag, sttype|
+      # print "sttype: #{tag.get_name} #{sttype}\n"
+      tag.get_members_decl.get_items.each{ |decl|
+        f.printf "#define OFFSET_OF_%-30s  (%s)\n",
+                 "#{tag.get_ID_str}_#{decl.get_name}",
+                 "(uint32_t)(intptr_t)&(((#{tag.get_type_str}#{tag.get_type_str_post}*)0)->#{decl.get_name})"
+        f.printf "#define PLACE_OF_%-30s  (%s)\n",
+                 "#{tag.get_ID_str}_#{decl.get_name}",
+                 "VARDECL_PLACE_STRUCT"
+      }
+    }
+  end
+
+  def print_celltype_define_offset f
+    @celltype_list.each { |ct|
+      if ct.get_cell_list.length > 0 then
+        ct.print_define_offset f
+      end
+    }
+    @namespace_list.each { |ns|
+      if ns.instance_of? Namespace then   # region を含めない
+        ns.print_celltype_define_offset f
+      end
+    }
+  end
+
+  def print_celltype_define f
+    @celltype_list.each { |ct|
+      if ct.get_cell_list.length > 0 then
+        ct.print_celltype_define f
+      end
+    }
+    @namespace_list.each { |ns|
+      if ns.instance_of? Namespace then   # region を含めない
+        ns.print_celltype_define f
+      end
+    }
+  end
+
+  def print_call_define f
+    @celltype_list.each { |ct|
+      if ct.get_cell_list.length > 0 then
+        ct.print_call_define f
+      end
+    }
+    @namespace_list.each { |ns|
+      if ns.instance_of? Namespace then   # region を含めない
+        ns.print_call_define f
+      end
+    }
+  end
+
+  def print_entry_define f
+    @celltype_list.each { |ct|
+      if ct.get_cell_list.length > 0 then
+        ct.print_entry_define f
+      end
+    }
+    @namespace_list.each { |ns|
+      if ns.instance_of? Namespace then   # region を含めない
+        ns.print_entry_define f
+      end
+    }
+  end
+end
+
+class Region
+  def print_info_region_sub f, indent
+    if get_link_root == self then
+      name = "_LinkRoot"
+    else
+      name = @global_name
+    end
+    # p "region:#{get_name}"
+    f.print "\n#{indent}/*** #{get_namespace_path} region information cell ***/\n"
+    f.print <<EOT
+#{indent}cell nTECSInfo::tRegionInfo #{name}RegionInfo{
+#{indent}    name = "#{@name}";
+EOT
+    @cell_list.each{ |cell|
+        # print "cell class="+cell.get_celltype.class.name+", " + cell.get_celltype.get_name.to_s + " 1\n"
+      if ! cell.exclude_info? then
+        # print "cell class="+cell.get_celltype.class.name+", " + cell.get_celltype.get_name.to_s + " 2\n"
+        f.print "#{indent}    cCellInfo[] = #{cell.get_global_name}CellInfo.eCellInfo;\n"
+      end
+    }
+    @namespace_list.each { |region|
+      if region.instance_of? Region then
+        f.print "#{indent}    cRegionInfo[] = #{region.get_global_name}RegionInfo.eRegionInfo;\n"
+       end
+    }
+    f.print "#{indent}};\n"
+    @cell_list.each{ |cell|
+      if ! cell.exclude_info? then
+        cell.print_info f, indent
+      end
+    }
+  end
+
+  def print_info_region( f, indent )
+    self.print_info_region_sub f, indent
+    @namespace_list.each { |region|
+      if region.instance_of? Region then
+        region.print_info_region f, indent
+      end
+    }
+  end
+  
+  def print_info( f, indent )
+    #p "print_info: #{self.get_global_name}"
+    self.print_info_region f, indent
+  end
+
+  def self.print_cell_define f
+    region.get_link_root.print_cell_define f
+    region.get_link_root.get_region{ |region|
+      if region.instance_of? Region then
+        region.print_cell_define_offset f
+      end
+
+    }
+  end
+
+  def print_cell_define f
+    ct_list = {}
+    @cell_list.each{ |cell|
+      next if cell.exclude_info_factory?
+      ct_list[ cell.get_celltype ] = true
+    }
+    f.print "#define TOPPERS_CB_TYPE_ONLY\n"
+    ct_list.each{ |ct, val|
+      f.print "#include \"#{ct.get_global_name}_tecsgen.h\"\n"
+    }
+    f.print "\n"
+    @cell_list.each{ |cell|
+      next if cell.exclude_info_factory?
+      name_array = cell.get_celltype.get_name_array cell
+      if cell.get_celltype.has_CB?
+        cb = "(void*)#{name_array[8]}"
+        cb_proto = "extern #{cell.get_celltype.get_global_name}_CB #{name_array[4]};\n"
+      else
+        cb = "0"
+        cb_proto = ""
+      end
+      if cell.get_celltype.has_INIB?
+        inib = "(void*)&#{name_array[5]}"
+        inib_proto = "extern #{cell.get_celltype.get_global_name}_INIB #{name_array[11]};\n"
+      else
+        inib = "0"
+        inib_proto = ""
+      end
+      if ! cell.exclude_info_factory? then
+        f.print <<EOT
+#{cb_proto}#define  #{cell.get_global_name}__CBP   #{cb}
+#{inib_proto}#define  #{cell.get_global_name}__INIBP #{inib}
+EOT
+      end
+    }
+    @namespace_list.each { |region|
+      if region.instance_of? Region then
+        region.print_cell_define f
+      end
+    }
+  end
+
+  def print_entry_descriptor_define f
+    @cell_list.each{ |cell|
+      next if cell.exclude_info_factory?
+
+      signatures = {}
+      cell.get_celltype.get_port_list.each{ |port|
+        next if port.get_port_type != :ENTRY
+
+        if signatures[ port.get_signature ] == nil then
+          f.print "#include \"#{port.get_signature.get_global_name}_tecsgen.h\"\n"
+        end
+        if cell.get_celltype.get_global_name == :nTECSInfo_tRawEntryDescriptorInfo then
+          f.print "const struct tag_#{cell.get_celltype.get_global_name}_#{port.get_name}_DES "
+          f.print "#{cell.get_global_name}_#{port.get_name}_des;\n"
+        else
+          f.print "extern struct tag_#{port.get_signature.get_global_name}_VDES "
+          f.print "#{cell.get_global_name}_#{port.get_name}_des;\n"
+        end
+      }
+    }
+    @namespace_list.each { |region|
+      if region.instance_of? Region then
+        region.print_entry_descriptor_define f
+      end
+    }
+  end
+end
+
+class Celltype
+  def print_info f, indent
+    f.print <<EOT
+#{indent}cell nTECSInfo::tCelltypeInfo #{@global_name}CelltypeInfo {
+#{indent}    name             = "#{@name}";
+#{indent}    b_singleton      = #{@singleton};
+#{indent}    b_IDX_is_ID_act  = C_EXP( "#{@global_name}__IDX_is_ID_act" );
+#{indent}    sizeOfCB         = C_EXP( "#{@global_name}__sizeOfCB" );
+#{indent}    sizeOfINIB       = C_EXP( "#{@global_name}__sizeOfINIB" );
+#{indent}    n_cellInLinkUnit = C_EXP( "#{@global_name}__NCELLINLINKUNIT" );
+#{indent}    n_cellInSystem   = #{@cell_list.length};
+EOT
+    @port.each{ |port|
+      if port.get_port_type == :ENTRY then
+        f.print <<EOT
+#{indent}    cEntryInfo[]    = #{@global_name}_#{port.get_name}EntryInfo.eEntryInfo;
+EOT
+      end
+    }
+    @port.each{ |port|
+      if port.get_port_type == :CALL then
+        f.print <<EOT
+#{indent}    cCallInfo[]     = #{@global_name}_#{port.get_name}CallInfo.eCallInfo;
+EOT
+      end
+    }
+    @attribute.each{ |decl|
+      f.print <<EOT
+#{indent}    cAttrInfo[]     = #{@global_name}_#{decl.get_name}VarDeclInfo.eVarDeclInfo;
+EOT
+    }
+    @var.each{ |decl|
+      f.print <<EOT
+#{indent}    cVarInfo[]      = #{@global_name}_#{decl.get_name}VarDeclInfo.eVarDeclInfo;
+EOT
+    }
+    f.print <<EOT
+#{indent}};
+EOT
+    @port.each{ |port|
+      if port.get_port_type == :ENTRY then
+        port.print_info f, @global_name, indent
+      end
+    }
+    @port.each{ |port|
+      if port.get_port_type == :CALL then
+        port.print_info f, @global_name, indent
+      end
+    }
+    @attribute.each{ |decl|
+      decl.print_info f, @global_name, indent, :DECLTYPE_ATTR
+    }
+    @var.each{ |decl|
+      decl.print_info f, @global_name, indent, :DECLTYPE_VAR
+    }
+  end
+
+  def print_define_offset f
+    # intptr_t に一回キャストするのは 64bit 版を考量してのこと．しかし 32bit としているので 4GB を超える構造体等は扱えない
+    if @n_cell_gen > 0 then
+      f.print <<EOT
+
+#include "#{@global_name}_tecsgen.h"
+EOT
+      @attribute.each{ |decl|
+        if has_INIB? then
+          inib_cb = "INIB"
+        else
+          inib_cb = "CB"
+        end
+        if ! decl.is_omit? then
+          offset = "(uint32_t)(intptr_t)&(((#{@global_name}_#{inib_cb}*)0)->#{decl.get_name})"
+          place = inib_cb
+        else
+          offset = "0xffffffff"
+          place = "NON"
+        end
+        f.printf "#define OFFSET_OF_%-30s  (%s)\n", "#{@global_name}_#{decl.get_name}", offset
+        f.printf "#define PLACE_OF_%-30s  VARDECL_PLACE_%s\n", "#{@global_name}_#{decl.get_name}", place
+      }
+      @var.each{ |decl|
+        if decl.get_size_is && has_INIB? then
+          inib_cb = "INIB"
+        else
+          inib_cb = "CB"
+        end
+        place = inib_cb
+        f.printf "#define OFFSET_OF_%-30s  (%s)\n", "#{@global_name}_#{decl.get_name}", "(uint32_t)(intptr_t)&(((#{@global_name}_#{inib_cb}*)0)->#{decl.get_name})"
+        f.printf "#define PLACE_OF_%-30s  VARDECL_PLACE_%s\n", "#{@global_name}_#{decl.get_name}", place
+      }
+    else
+      f.print <<EOT
+
+// #include "#{@global_name}_tecsgen.h"   // no cell exist
+EOT
+      # 生成されないセルタイプ
+      @attribute.each{ |decl|
+        f.printf "#define OFFSET_OF_%-30s  (%s)\n", "#{@global_name}_#{decl.get_name}", "0xffffffff"
+        f.printf "#define PLACE_OF_%-30s   VARDECL_PLACE_NON\n", "#{@global_name}_#{decl.get_name}"
+      }
+      @var.each{ |decl|
+        f.printf "#define OFFSET_OF_%-30s  (%s)\n", "#{@global_name}_#{decl.get_name}", "0xffffffff"
+        f.printf "#define PLACE_OF_%-30s   VARDECL_PLACE_NON\n", "#{@global_name}_#{decl.get_name}"
+      }
+    end
+  end
+
+  def print_celltype_define f
+    if has_INIB? then
+      size_INIB = "(sizeof(#{@global_name}_INIB))"
+    else
+      size_INIB = "(0)"
+    end
+    if has_CB? then
+      size_CB = "(sizeof(#{@global_name}_CB))"
+    else
+      size_CB   = "(0)"
+    end
+
+    if @n_cell_gen > 0 then
+      f.printf "\n#include \"#{@global_name}_tecsgen.h\"\n"
+      f.printf "#define %-50s (#{@idx_is_id_act})\n",     "#{@global_name}__IDX_is_ID_act"
+      f.printf "#define %-50s (#{size_CB})\n",            "#{@global_name}__sizeOfCB"
+      f.printf "#define %-50s (#{size_INIB})\n",          "#{@global_name}__sizeOfINIB"
+      f.printf "#define %-30s (%d)\n", "#{@global_name}__NCELLINLINKUNIT", @n_cell_gen
+    else
+      f.printf "#define %-50s (false)\n",                 "#{@global_name}__IDX_is_ID_act"
+      f.printf "#define %-50s (0)\n",                     "#{@global_name}__sizeOfCB"
+      f.printf "#define %-50s (0)\n",                     "#{@global_name}__sizeOfINIB"
+      f.printf "#define %-30s (%d)\n", "#{@global_name}__NCELLINLINKUNIT", @n_cell_gen
+    end
+  end
+
+  def print_call_define f
+    if @n_cell_gen > 0 then
+      f.print <<EOT
+
+#include "#{@global_name}_tecsgen.h"
+EOT
+    else
+      f.print <<EOT
+
+// #include "#{@global_name}_tecsgen.h"   // no cell exist
+EOT
+    end
+    @port.each{ |port|
+      next if port.get_port_type == :ENTRY
+      if port.is_omit? || ( port.is_VMT_useless? && port.is_cell_unique? ) || @n_cell_gen == 0 then
+        place = "CALL_PLACE_NON"
+      elsif port.is_dynamic?
+        if port.get_array_size then
+          place = "CALL_PLACE_INIB_DES"
+        else
+          place = "CALL_PLACE_CB_DES"
+        end
+      elsif ! has_INIB? then
+        if port.is_VMT_useless? then
+          place = "CALL_PLACE_CB_IDX"
+        else
+          place = "CALL_PLACE_CB_DES"
+        end
+      else
+        if port.is_VMT_useless? then
+          place = "CALL_PLACE_INIB_IDX"
+        else
+          place = "CALL_PLACE_INIB_DES"
+        end
+      end
+      if ( port.is_VMT_useless? && port.is_cell_unique? ) || port.is_omit? || @n_cell_gen == 0 then
+        offset = "0xffffffff"
+      else
+        if port.is_dynamic? || ! has_INIB? then
+          cb_inib = "CB"
+        else
+          cb_inib = "INIB"
+        end
+        offset = "(uint32_t)(intptr_t)&((#{@global_name}_#{cb_inib}*)0)->#{port.get_name}"
+      end
+      array_size = port.get_array_size
+      if array_size == "[]" then
+        array_size = "0xffffffff"
+      elsif array_size == nil then
+        array_size = "0"
+      end
+
+      f.printf "#define %-50s (#{offset})\n",                   "#{@global_name}_#{port.get_name}__offset"
+      f.printf "#define %-50s (#{array_size})\n",               "#{@global_name}_#{port.get_name}__array_size"
+      f.printf "#define %-50s (#{place})\n",                    "#{@global_name}_#{port.get_name}__place"
+      f.printf "#define %-50s (#{port.is_VMT_useless?})\n",     "#{@global_name}_#{port.get_name}__b_VMT_useless"
+      f.printf "#define %-50s (#{port.is_skelton_useless?})\n", "#{@global_name}_#{port.get_name}__b_skelton_useless"
+      f.printf "#define %-50s (#{port.is_cell_unique?})\n",     "#{@global_name}_#{port.get_name}__b_cell_unique"
+    }
+  end
+
+  def print_entry_define f
+    @port.each{ |port|
+      next if port.get_port_type == :CALL
+      array_size = port.get_array_size
+      if array_size == "[]" then
+        array_size = "0xffffffff"
+      elsif array_size == nil then
+        array_size = "0"
+      end
+
+      f.printf "#define %-50s (#{array_size})\n",               "#{@global_name}_#{port.get_name}__array_size"
+    }
+  end
+end
+
+class Port
+  def print_info f, ct_global, indent
+    return if @signature == nil     # signature not found error in cdl
+    if @port_type == :ENTRY then
+      f.print <<EOT
+#{indent}cell nTECSInfo::tEntryInfo #{ct_global}_#{@name}EntryInfo{
+#{indent}    name            = "#{@name}";
+#{indent}    cSignatureInfo  = #{@signature.get_global_name}SignatureInfo.eSignatureInfo;
+#{indent}    b_inline        = #{@b_inline};
+#{indent}    array_size      = C_EXP( "#{ct_global}_#{@name}__array_size" );
+#{indent}};
+EOT
+    else
+      f.print <<EOT
+#{indent}cell nTECSInfo::tCallInfo #{ct_global}_#{@name}CallInfo{
+#{indent}    name            = "#{@name}";
+#{indent}    cSignatureInfo  = #{@signature.get_global_name}SignatureInfo.eSignatureInfo;
+#{indent}    offset            = C_EXP( "#{ct_global}_#{@name}__offset" );
+#{indent}    array_size        = C_EXP( "#{ct_global}_#{@name}__array_size" );
+#{indent}    b_optional        = #{@b_optional};
+#{indent}    b_omit            = #{@b_omit};
+#{indent}    b_dynamic         = #{@b_dynamic};
+#{indent}    b_ref_desc        = #{@b_ref_desc};
+#{indent}    b_allocator_port  = #{@allocator_port!=nil ? true : false};
+#{indent}    b_require_port    = #{@b_require};
+#{indent}    place             = C_EXP( "#{ct_global}_#{@name}__place" );
+#{indent}    b_VMT_useless     = C_EXP( "#{ct_global}_#{@name}__b_VMT_useless" );
+#{indent}    b_skelton_useless = C_EXP( "#{ct_global}_#{@name}__b_skelton_useless" );
+#{indent}    b_cell_unique     = C_EXP( "#{ct_global}_#{@name}__b_cell_unique" );
+
+#{indent}};
+EOT
+    end
+  end
+end
+
+class Cell
+  def print_info f, indent
+    if exclude_info? then
+      return
+    end
+    f.print <<EOT
+
+#{indent}/*** #{@global_name} cell information ****/
+#{indent}cell nTECSInfo::tCellInfo #{@global_name}CellInfo {
+#{indent}    name            = "#{@name}";
+#{indent}    cbp             = C_EXP( \"#{@global_name}__CBP\" );
+#{indent}    inibp           = C_EXP( \"#{@global_name}__INIBP\" );
+#{indent}    cCelltypeInfo   = #{@celltype.get_global_name}CelltypeInfo.eCelltypeInfo;
+EOT
+    @celltype.get_port_list.each{ |port|
+      next if port.get_port_type != :ENTRY
+
+      f.print <<EOT
+#{indent}    cRawEntryDescriptor[] = #{@global_name}_#{port.get_name}RawEntryDescriptorInfo.eRawEntryDescriptor;
+EOT
+    }
+    f.print "#{indent}};\n"
+
+    # RawEntryDescriptorInfo cells
+    @celltype.get_port_list.each{ |port|
+      next if port.get_port_type != :ENTRY
+
+      size = port.get_array_size
+      if size == nil then
+        size = 1
+      elsif size == "[]" then
+        size = @entry_array_max_subscript[ port ]
+      end
+      if ! port.is_omit? then
+        red = "C_EXP( \"&#{@global_name}_#{port.get_name}_des\" )"
+      else
+        red = "(void *)0"
+      end
+      # mikan 受け口配列
+      f.print <<EOT
+#{indent}cell nTECSInfo::tRawEntryDescriptorInfo #{@global_name}_#{port.get_name}RawEntryDescriptorInfo {
+#{indent}   size = #{size};
+#{indent}   rawEntryDescriptor = { #{red} };
+EOT
+#  #{indent}   cEntryInfo = #{@celltype.get_global_name}_#{port.get_name}EntryInfo.eEntryInfo;
+      f.print "#{indent}};\n"
+    }
+  end
+
+  def exclude_info?
+    # print "exclude_info?: name=" + get_name.to_s
+    if @celltype == nil ||
+       is_of_composite? ||
+       @celltype.get_global_name == :nTECSInfo_tTECSInfoSub ||
+       post_code_generated? ||
+       @b_defined == false then
+      # print ": true celltype_is_of_composite=#{is_of_composite?} celltype_name=#{@celltype.get_global_name} celltype.need_generate=#{@celltype.need_generate?}\n"
+      return true
+    else
+      # print ": false\n"
+      return false
+    end
+  end
+
+  def exclude_info_factory?
+    # print "exclude_info_factory?: name=" + get_name.to_s
+    if @celltype == nil ||
+       is_of_composite? ||
+       @celltype.get_global_name == :nTECSInfo_tTECSInfoSub ||
+       ! @celltype.need_generate? then
+      # print ": true celltype_is_of_composite=#{is_of_composite?} celltype_name=#{@celltype.get_global_name} celltype.need_generate=#{@celltype.need_generate?}\n"
+      return true
+    else
+      # print ": false\n"
+      return false
+    end
+  end
+end
+
+class Signature
+  def print_info f, indent
+    f.print <<EOT
+
+#{indent}/*** #{@global_name} signature information ****/
+#{indent}cell nTECSInfo::tSignatureInfo #{@global_name}SignatureInfo {
+#{indent}    name            = "#{@name}";
+EOT
+    @function_head_list.get_items.each{ |fh|
+      f.print <<EOT
+#{indent}    cFunctionInfo[] = #{@global_name}_#{fh.get_name}FunctionInfo.eFunctionInfo;
+EOT
+    }
+    f.print <<EOT
+#{indent}};
+EOT
+    @function_head_list.get_items.each{ |fh|
+      fh.print_info f, indent
+    }
+  end
+end
+
+class FuncHead
+  def print_info f, indent
+    sig_name = @owner.get_global_name
+    func_name = get_name
+    f.print <<EOT
+#{indent}cell nTECSInfo::tFunctionInfo #{sig_name}_#{func_name}FunctionInfo {
+#{indent}    name            = "#{get_name}";
+#{indent}    bOneway         = #{is_oneway?};
+EOT
+    get_paramlist.get_items.each{ |param|
+      f.print <<EOT
+#{indent}    cParamInfo[]    = #{sig_name}_#{func_name}_#{param.get_name}ParamInfo.eParamInfo;
+EOT
+    }
+    f.print <<EOT
+#{indent}    cReturnTypeInfo = #{get_return_type.get_ID_str}TypeInfo.eTypeInfo;
+#{indent}};
+EOT
+    get_paramlist.get_items.each{ |param|
+      dbgPrint "param_list #{sig_name}, #{func_name}, #{param.get_name}\n"
+      param.print_info f, sig_name, func_name, get_paramlist, indent
+    }
+    get_return_type.print_info f, indent
+  end
+end
+
+class ParamDecl
+  def print_info f, signature_global_name, func_name, paramdecl_list, indent
+    if @size then
+      size = "\"#{@size.get_rpn( paramdecl_list )}\""
+    else
+      size = "(char_t*)0";
+    end
+    if @count then
+      count = "\"#{@count.get_rpn( paramdecl_list )}\""
+    else
+      count = "(char_t*)0";
+    end
+    if @string then
+      if @string == -1 then
+        string = '""'
+      else
+        string =  "\"#{@string.get_rpn( paramdecl_list )}\""
+      end
+    else
+      string = "(char_t*)0";
+    end
+    f.print <<EOT
+#{indent}cell nTECSInfo::tParamInfo #{signature_global_name}_#{func_name}_#{get_name}ParamInfo {
+#{indent}    name            = "#{get_name}";
+#{indent}    dir             = PARAM_DIR_#{@direction};
+#{indent}    sizeIsExpr      = #{size};
+#{indent}    countIsExpr     = #{count};
+#{indent}    stringExpr      = #{string};
+#{indent}    cTypeInfo       = #{get_type.get_ID_str}TypeInfo.eTypeInfo;
+#{indent}};
+EOT
+    get_type.print_info f, indent
+  end
+end
+
+class Decl
+  def print_info f, parent_ID_str, indent, decl_type
+    if @size_is then
+      size = "\"mikan\"";
+    else
+      size = "(char_t*)0";
+    end
+    f.print <<EOT
+#{indent}cell nTECSInfo::tVarDeclInfo #{parent_ID_str}_#{get_name}VarDeclInfo {
+#{indent}    name            = "#{get_name}";
+#{indent}    sizeIsExpr      = #{size};
+#{indent}    declType        = #{decl_type};
+#{indent}    offset          = C_EXP( "OFFSET_OF_#{parent_ID_str}_#{get_name}" );
+#{indent}    place           = C_EXP( "PLACE_OF_#{parent_ID_str}_#{get_name}" );
+#{indent}    cTypeInfo       = #{get_type.get_ID_str}TypeInfo.eTypeInfo;
+#{indent}};
+EOT
+    get_type.print_info f, indent
+  end
+end
+
+class Type
+  @@typeinfo_printed = {}
+
+  def self.reset_print_info
+    @@typeinfo_printed = {}
+  end
+
+  def print_info f, indent
+    # Type の info は、最後にまとめて出力するので、ここでは記録するだけ
+    if @@typeinfo_printed[ get_ID_str ] then
+      return
+    end
+    # p "ID Str: #{get_ID_str}"
+    @@typeinfo_printed[ get_ID_str ] = self
+    if self.kind_of? PtrType then
+      get_referto.print_info f, indent
+    elsif self.kind_of? ArrayType then
+      get_type.print_info f, indent
+    elsif self.kind_of? DefinedType then
+      get_type.print_info f, indent
+    elsif self.kind_of? StructType then
+      get_members_decl.get_items.each{ |decl|
+        decl.print_info f, get_ID_str, indent, :DECLTYPE_STMEMBER
+      }
+    end
+  end
+
+  def self.print_info_post f, indent
+    @@typeinfo_printed.each{ |nm, type|
+      type.print_info_post f, indent
+    }
+  end
+
+  def print_info_post f, indent
+    if self.class.superclass == Type then     # 親クラスが Type の場合 types.rb のクラス
+      type_name = self.class.name
+    else
+      type_name = self.class.superclass.name  # ctypes.rb のクラス (親クラスが types.rb のクラス)
+    end
+    # p "type: #{type_name}, #{self.class.name}"
+
+    # p "class=#{self.class.name} size=#{bit_size}"
+    f.print <<EOT
+#{indent}cell nTECSInfo::t#{type_name}Info #{get_ID_str}TypeInfo{
+#{indent}    name           = "#{get_type_str}#{get_type_str_post}";
+#{indent}    typeKind       = TECSTypeKind_#{type_name};
+#{indent}    size           = C_EXP( "sizeof(#{get_type_str}#{get_type_str_post})" );
+#{indent}    b_const        = #{is_const?};
+#{indent}    b_volatile     = #{is_volatile?};
+EOT
+    if self.kind_of? PtrType then
+      f.print "#{indent}    cTypeInfo        = #{get_referto.get_ID_str}TypeInfo.eTypeInfo;\n"
+    elsif self.kind_of? ArrayType then
+      f.print "#{indent}    cTypeInfo        = #{get_type.get_ID_str}TypeInfo.eTypeInfo;\n"
+    elsif self.kind_of? DefinedType then
+      f.print "#{indent}    cTypeInfo        = #{get_type.get_ID_str}TypeInfo.eTypeInfo;\n"
+    elsif self.kind_of? StructType then
+      get_members_decl.get_items.each{ |decl|
+        f.print "#{indent}    cVarDeclInfo[] = #{get_ID_str}_#{decl.get_name}VarDeclInfo.eVarDeclInfo;\n"
+      }
+    elsif self.kind_of? DescriptorType then
+      f.print "#{indent}    cSignatureInfo   = #{get_signature.get_global_name}SignatureInfo.eSignatureInfo;\n"
+    end
+    
+    f.print <<EOT
+#{indent}};
+EOT
+  end
+
+  #=== Type# 型文字列の識別子化
+  #型文字列に含まれる識別子として用いることのできない文字を用いることのできる文字列に置き換える
+  # 空白 => __
+  # * => _Ptr_
+  # [] => _Array_
+  # Descriptor() => Descriptor_of_
+  def get_ID_str
+    # puts "get_ID_str: #{self.class.name}"
+    if kind_of? PtrType then
+      str = get_referto.get_ID_str + "_Ptr_"
+    elsif kind_of? ArrayType then
+      str = get_type.get_ID_str + "_Array" + get_subscript.eval_const( nil ).to_s + "_"
+    elsif kind_of? StructType then
+      str = "struct #{@tag}"
+    elsif kind_of? DescriptorType then
+      str = "Descriptor_of_" + get_signature.get_global_name.to_s
+    else
+      str = get_type_str + get_type_str_post
+    end
+    # p "before: #{str}"
+    str.gsub!( / /, "__" )
+    # p "after: #{str}"
+    return str
+  end
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tool_info.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tool_info.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/tool_info.rb	(revision 429)
@@ -0,0 +1,348 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2017 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+#= TOOL_INFO class
+# The syntax of the contents of __tool_info__ is same as JSON.
+# Home made schema is used to validate the contents of __tool_info__.
+# the schema is not defiened well. see saveload.rb for example of the schema.
+# 
+class TOOL_INFO
+
+  # tool_info 
+  @@tool_info = { }
+
+  # tool_info schema for tecsgen
+  @@TECSGEN_schema = {
+    :tecsgen        => {   # require
+      :base_dir       => [ :string ],             # dir where the cde created initially
+      :direct_import  => [ :string ],             # .cdl (sometimes .cde) specified in argments
+      :import_path    => [ :string ],             # -I of tecsgen
+      :define_macro   => [ :string ],             # -D of tecsgen
+      :tecscde_version=> :string,                 # TECSCDE version
+      :cde_format_version=> :string,              # CDE format version
+      :save_date      => :string,                 # last save date & time
+    },
+    :__tecsgen      => {   # optioanl
+      :cpp            => :string                  # -c or TECS_CPP environment variable
+    }
+  }
+
+  def initialize( name, val )
+    @@tool_info[name] = val
+
+    # __tool_info__( "tecsgen" ): validate & reflect immediately
+    p "tool_info: tecsgen #{name}"
+    if name == :tecsgen then
+      set_tecsgen_tool_info
+    end
+  end
+
+  def self.get_tool_info name
+    @@tool_info[ name ]
+  end
+
+  #=== TOOL_INFO#set_tecsgen_tool_info
+  # __tool_info__( "tecsgen" )
+  def set_tecsgen_tool_info
+    validator = TOOL_INFO::VALIDATOR.new( :tecsgen, @@TECSGEN_schema )
+    if validator.validate || $b_force_apply_tool_info
+      info = TOOL_INFO.get_tool_info( :tecsgen )
+      (info[ :base_dir ]).each{ |bd|
+        if ! $base_dir.include? bd
+          $base_dir[ bd ] = true
+        end
+      }
+
+      info[ :import_path ].each{ |path|
+        if ! $import_path.include?( path )
+          $import_path << path
+        end
+      }
+
+      info[ :define_macro ].each{ |define|
+        if ! $define.include?( define )
+          $define << define
+        end
+      }
+      if info[ :cpp ]
+        if ! $b_cpp_specified
+          $cpp = info[ :cpp ]
+          $b_cpp_specified = true
+        end
+      end
+
+      info[ :direct_import ] && info[ :direct_import ].each{ |import|
+        Import.new( import, false, false )
+      }
+    end
+  end
+
+  #== simple JSON validator
+  # this validator use simple schema.
+  # array length cannot be checked.
+  # you have to check array length in your code, if necessary.
+  class VALIDATOR
+
+    #@b_ok::Bool
+
+    def error( msg )
+      STDERR.print( "__tool_info__: " + msg )
+      @b_ok = false
+    end
+
+    def initialize name, schema
+      @name = name
+      @schema = schema
+      @b_ok = true
+    end
+
+    #=== VALIDATOR#validate
+    def validate
+      info = TOOL_INFO.get_tool_info @name
+      if info == nil
+        error( "\"#{@name}\" not found\n" )
+        return @b_ok
+      end
+      validate_object info, @name, @name
+      return @b_ok
+    end
+
+    def validate_object( object, require_type, path )
+      obj_type = @schema[ require_type ]
+      dbgPrint "validate_object: #{path}  object=#{obj_type[ :type ]}  required=#{object[:type]}\n"
+
+      obj_type.each{ |name, val_type|
+        val = object[name]
+        path2 = path.to_s + "." + name.to_s
+        if val == nil
+          error( "#{path}: required property not found '#{name}'\n" )
+          next
+        end
+        if val_type.kind_of? Array
+          validate_array_member val, val_type, path2
+        else
+          validate_types val, val_type, path2
+        end
+      }
+
+      optional = @schema[ ("__" + require_type.to_s).to_sym ]
+      if optional
+        dbgPrint "#{require_type.to_s} has optional\n"
+
+        optional.each{ |name, val_type|
+          val = object[name]
+          path2 = path.to_s + "." + name.to_s
+          if val == nil
+            # no need to occur error
+            # error( "#{path}: required property not found '#{name}'\n" )
+            next
+          end
+          if val_type.kind_of? Array
+            validate_array_member val, val_type, path2
+          else
+            validate_types val, val_type, path2
+          end
+        }
+      end
+
+    end
+
+    def validate_array_member array, val_types, path
+      if ! array.kind_of? Array
+        error( "#{path2}: array required as value\n" )
+        return
+      end
+      index=0
+      array.each{ |member|
+        type = get_object_type member
+        i = val_types.find_index type
+        if i == nil
+          if type == :integer
+            i = val_types.find_index :number
+          end
+        end
+        if i == nil
+          error( "#{path}: array member type mismatch, #{type} for #{val_types}\n" )
+          next
+        end
+        val_type = val_types[ i ]
+        validate_types member, val_type, (path.to_s + '[' + index.to_s + '].')
+        index += 1
+      }
+    end
+
+    #=== TOOL_INFO::VALIDATOR#validate_types
+    #obj::Object (Integer, Floating, String, Hash)
+    #val_type::Symbol : required object type
+    def validate_types obj, val_type, path
+      type = get_object_type obj
+      case val_type
+      when :integer
+        if type == :integer
+          return
+        end
+      when :number
+        if type == :integer || type == :number
+          return
+        end
+      when :string
+        if type == :string
+          return
+        end
+        # when :nil   # mikan
+        # when :bool  # mikan
+      else # object or fixed string
+        if val_type.kind_of? String
+          # val is specified by String
+          if type == :string
+            if obj == val_type
+              return
+            end
+          end
+        else
+          if type.to_sym == val_type
+            validate_object( obj, val_type, path + val_type.to_s )
+            return
+          end
+        end
+      end
+      error( "#{path}: type mismatch, #{type} for #{val_type}\n" )
+    end
+
+    def get_object_type obj
+# p "#{obj.class} #{obj.to_s}"
+      if obj.kind_of? Integer
+        return :integer
+      elsif obj.kind_of? Float
+        return :number
+      elsif obj.kind_of? String
+        return :string
+      elsif obj.kind_of? Hash
+        return obj[ :type ].to_sym
+      end
+      return nil
+    end
+  end
+
+end
+
+
+#---------- obsolete -------#
+
+#--- TOOL_INFO replaced location information ---#
+
+class TECSGEN
+
+  #------ manupulate location information --------#
+  def self.new_cell_location cell_location
+    @@current_tecsgen.new_cell_location cell_location
+  end
+  def new_cell_location cell_location
+    @cell_location_list << cell_location
+  end
+  def get_cell_location_list
+    @cell_location_list
+  end
+
+  def self.new_join_location join_location
+    @@current_tecsgen.new_join_location join_location
+  end
+  def new_join_location join_location
+    @join_location_list << join_location
+  end
+  def get_join_location_list
+    @join_location_list
+  end
+
+#==  Cell_location
+  # tecscde の位置情報
+  class  Cell_location
+
+    #=== Join_location#initialize
+    #cell_nspath::NamespacePath
+    #x,y,w,h::Expression
+    #port_location_list::[ [Symbol(ep_or_cp_name), Symbol(edge_name), Expression(offset)], ... ]
+    #ep_name::Symbol
+    def initialize( cell_nspath, x, y, w, h, port_location_list )
+      # p "Cell_location: #{cell_nspath}, #{x}, #{y}, #{w}, #{h}, #{port_location_list}"
+      @cell_nspath = cell_nspath
+      @x = x.eval_const nil
+      @y = y.eval_const nil
+      @w = w.eval_const nil
+      @h = h.eval_const nil
+      @port_location_list = port_location_list
+
+      TECSGEN.new_cell_location self
+    end
+
+    def get_location
+      [ @cell_nspath, @x, @y, @w, @h, @port_location_list ]
+    end
+
+  end # Cell_location
+
+  #==  Join_location
+  # tecscde の位置情報
+  class  Join_location
+    @@join_location_list = []
+
+    #=== Join_location#initialize
+    #cp_cell_nspath::NamespacePath
+    #cp_name::Symbol
+    #ep_cell_nspath::NamespacePath
+    #ep_name::Symbol
+    #bar_list::[[Symbol (VBar or HBar), Expression(position mm)], ....]
+    def initialize( cp_cell_nspath, cp_name, ep_cell_path, ep_name, bar_list )
+      # p "Join_location  #{cp_cell_nspath}, #{cp_name}, #{ep_cell_path}, #{ep_name} #{bar_list}"
+      @cp_cell_nspath = cp_cell_nspath
+      @cp_name = cp_name
+      @ep_cell_path = ep_cell_path
+      @ep_name = ep_name
+      @bar_list = bar_list
+
+      TECSGEN.new_join_location self
+    end
+
+    def get_location
+      [@cp_cell_nspath, @cp_name, @ep_cell_path, @ep_name, @bar_list]
+    end
+
+  end # Join_location
+
+end # TECSGEN
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/types.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/types.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/types.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #
-#   Copyright (C) 2008-2015 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--  
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -629,5 +629,5 @@
 
 class FloatType < Type
-#  @bit_size::         32, 64, (80), -32, -64
+#  @bit_size::         32, 64, (80), -32, -64, -128
 
   def initialize( bit_size )
@@ -684,4 +684,6 @@
     when -64
       str = "#{str}double"
+    when -128
+      str = "#{str}long double"
     end
     return str
@@ -734,4 +736,5 @@
 #  @b_has_sized_pointer_member:: bool : メンバにポインタ型がある
 #  @b_has_unsized_string_member:: bool : メンバにポインタ型がある
+#  @b_hasTag:: bool : タグがある
 #  @member_types_symbol:: Symbol : tag が無い時のみ設定 (それ以外では nil)
 
@@ -746,4 +749,9 @@
     super()
     @tag = tag
+    if tag then
+      @b_hasTag = true
+    else
+      @b_hasTag = false
+    end
     @@structtype_current_sp += 1
     @@structtype_current_stack[@@structtype_current_sp] = self
@@ -918,14 +926,14 @@
     str = super
 
-    if @tag then
+    if @b_hasTag then
       # typedef struct tag StructType; の形式の場合
       # struct の本体は、別に生成される
-      return "#{str}struct #{@tag} "
+      return "#{str}struct #{@tag}"
 
     else
       # typedef struct { int a; } StructType; の形式の場合
-      str += "struct {\n"
+      str += "struct {"
       @members_decl.get_items.each{ |i|
-        str += sprintf( "    %-8s %s%s;\n", "#{i.get_type.get_type_str}", "#{i.get_name}", "#{i.get_type.get_type_str_post}" )
+        str += sprintf( "%s %s%s;", "#{i.get_type.get_type_str}", "#{i.get_name}", "#{i.get_type.get_type_str_post}" )
       }
       str += "} "
@@ -1267,4 +1275,13 @@
   def check_init( locale, ident, initializer, kind, attribute = nil )
     if ( initializer.instance_of?( Array ) ) then
+      # 要素数が指定されている場合、初期化要素数をチェック
+      if @subscript then
+        n_sub = @subscript.eval_const( nil )
+        if n_sub then
+          if initializer.length > n_sub then
+            cdl_error2( locale, "T9999 $1: too many initializer, $2 for $3" , ident, initializer.length, n_sub )
+          end
+        end
+      end
       index = 0
       initializer.each{ |i|
@@ -1543,20 +1560,16 @@
 # 動的結合で渡すデスクリプタ型
 class DescriptorType < Type
-# @sinagure_nsp::NamespacePath
+  # @sinagure_nsp::NamespacePath
+
+  @@descriptors = {}
 
   def initialize( signature_nsp )
     @signature_nsp = signature_nsp
-    obj = Namespace.find signature_nsp
-    if ! obj.kind_of? Signature then
-      cdl_error( "T9999 '$1': not signature or not found", signature_nsp.to_s )
-    else
-      if obj.has_descriptor? then
-        cdl_error( "T9999 '$1': has Desicrptor in function parameter", signature_nsp.to_s )
-      end
-    end
+    # check_signature ##
+    @@descriptors[ self ] = false
   end
 
   def get_type_str
-    "Descriptor( #{@signature_nsp.to_s} )"
+    "Descriptor( #{@signature_nsp.get_global_name} )"
   end
 
@@ -1581,6 +1594,27 @@
   end
 
+  def self.check_signature
+    @@descriptors.each{ |desc, val|
+      if val != true then
+        desc.check_signature
+        @@descriptors[ desc ] = true
+      end
+    }
+  end
+  
+  def check_signature
+    # p "Desc #{@signature_nsp.to_s}"
+    obj = Namespace.find @signature_nsp
+    if ! obj.kind_of? Signature then
+      cdl_error( "T9999 '$1': not signature or not found", @signature_nsp.to_s )
+    else
+      if obj.has_descriptor? then
+       # cdl_error( "T9999 '$1': has Descriptor in function parameter", @signature_nsp.to_s )
+      end
+      # @signature_nsp = obj.get_namespace_path
+    end
+  end
+
   #== DescriptorType#
-  # 意味解析段階では nil が返される可能性に注意
   def get_signature
     Namespace.find @signature_nsp
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/unjoin_plugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/unjoin_plugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/core/unjoin_plugin.rb	(revision 429)
@@ -0,0 +1,218 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2019 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+# Marshal.dump で不都合な事項への対策
+# Proc は _dump_data が定義されていないため、定義する．
+# plugin 関係は、tecsflow に Plugin クラスが存在しないため、消しておく．
+
+# Proc は、Marshal.dump することができないため _dump_data を定義
+class Proc
+  def _dump_data
+    nil
+  end
+end
+
+class Object
+  @@visited = {}
+  @@n_visited = 0
+  @@n_found = 0
+  @@n_plugin_proxy = 0
+
+  # do nothing now. this function is used to find remained Proxy object.
+    def find_plugin level, object_list
+
+    # find_plugin_1 level, object_list
+    # print "find_plugin: n_visted=", @@n_visited, " (len=", @@visited.length, ")  found=", @@n_found, "  proxy=", @@n_plugin_proxy, "\n"
+  end
+
+  def find_plugin_1 level, object_list
+    if @@visited[ self ] then
+      return
+    end
+    @@visited[ self ] = true
+    @@n_visited += 1
+
+    if kind_of? Expression then
+      # print   # Expression では print が別に定義されている
+      get_elements.each{|ele|
+        ele.find_plugin_1 level+1, object_list
+      }
+      return
+    end
+
+    if level > 100 then    # 100 is enough now, 50 is too small
+      print "reached max level: "
+      if respond_to? :get_name then
+        print "#{get_name}(#{self.class.name})\n"
+      else
+        print "(#{self.class.name})\n"
+      end
+      return
+    end
+
+    object_list.push self                 ##### ここから return 不可
+
+    if (kind_of? Plugin) || (kind_of? HRPSVCPlugin) then
+      @@n_found += 1
+      print "Plugin found: #{self.class.name}\n"
+      object_list.each{ |obj|
+        if obj.respond_to? :get_name then
+          print "#{obj.get_name}(#{obj.class.name}), "
+        else
+          print "(#{obj.class.name}), "
+        end
+      }
+      print "\n"
+    elsif kind_of? Join::ThroughPluginProxy then
+      @@n_plugin_proxy += 1
+    end
+
+    level += 1
+    if kind_of? Array then
+      each{ |val|
+        val.find_plugin_1 level, object_list
+      }
+    elsif kind_of? Hash then
+      each{ |key, val|
+        key.find_plugin_1 level, object_list
+        val.find_plugin_1 level, object_list
+      }
+    else
+      instance_variables.each{|iv|
+        iv_val = instance_variable_get iv
+        iv_val.find_plugin_1 level, object_list
+      }
+    end
+    object_list.pop                       ##### ここまで return 不可
+  end
+end
+
+class Namespace
+  def unjoin_plugin
+    @signature_list.each{ |sig| sig.unjoin_plugin }
+    @celltype_list.each{ |ct| ct.unjoin_plugin }
+    @cell_list.each{ |cell| cell.unjoin_plugin }
+    @namespace_list.each{ |ns| ns.unjoin_plugin}
+  end
+end
+
+class Region < Namespace
+  def unjoin_plugin
+    if @domain_type then
+      @domain_type.unjoin_plugin
+    end
+    @cell_port_throug_plugin_list.each{ |key, po|
+      proxy = Join::ThroughPluginProxy.new po.get_cell_namespace_path, po.get_through_entry_port_name, po.get_through_entry_port_subscript
+      @cell_port_throug_plugin_list[ key ] = proxy
+    }
+    super
+  end
+end
+
+class DomainType < Node
+  def unjoin_plugin
+    @plugin = nil
+  end
+end
+
+class Signature < NSBDNode
+  def unjoin_plugin
+    @generate = nil
+  end
+end
+
+class Celltype < NSBDNode
+  def unjoin_plugin
+    @generate = nil
+    @generate_list = []
+    @plugin = nil
+  end
+end
+
+class Cell < NSBDNode
+  def unjoin_plugin
+    @generate = nil
+    @plugin   = nil
+    @join_list.get_items.each{ |j| j.unjoin_plugin }
+  end
+end
+
+class Join < BDNode
+  class ThroughPluginProxy
+    def initialize namespace_path, entry_port_name, entry_port_subscript
+      @namespace_path = namespace_path
+      @entry_port_name = entry_port_name
+      @entry_port_subscript = entry_port_subscript
+    end 
+    def get_cell_namespace_path
+      @namespace_path
+    end
+    def get_through_entry_port_name
+      @entry_port_name
+    end
+    def get_through_entry_port_subscript
+      @entry_port_subscript
+    end
+  end 
+
+  def unjoin_plugin
+    # @thourhg_generated_list is refered in get_rhs_cell, get_rhs_port
+    @through_generated_list.map!{|po| # po: plugin object
+      ThroughPluginProxy.new po.get_cell_namespace_path, po.get_through_entry_port_name, po.get_through_entry_port_subscript
+    }
+    @region_through_generated_list.map!{|po| # po: plugin object
+      ThroughPluginProxy.new po.get_cell_namespace_path, po.get_through_entry_port_name, po.get_through_entry_port_subscript
+    }
+    if @array_member2 then
+      @array_member2.each{ |j| 
+        if j then
+          j.unjoin_plugin2
+        end
+      }
+    end
+  end
+  def unjoin_plugin2
+    @through_generated_list.map!{|po| # po: plugin object
+      ThroughPluginProxy.new po.get_cell_namespace_path, po.get_through_entry_port_name, po.get_through_entry_port_subscript
+    }
+    @region_through_generated_list.map!{|po| # po: plugin object
+      ThroughPluginProxy.new po.get_cell_namespace_path, po.get_through_entry_port_name, po.get_through_entry_port_subscript
+    }
+  end
+end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_en_US.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_en_US.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_en_US.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -1168,3 +1168,7 @@
 @@warning_message[ :"W6004" ] = "need 'void' for no parameter"
 
+###
+# info メッセージ
+@@info_message = {}
+
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_ja_JP.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_ja_JP.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_console_ja_JP.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -1168,3 +1168,7 @@
 @@warning_message[ :"W6004" ] = "パラメータが存在しない場合 'void' が必要です"
 
+###
+# info メッセージ
+@@info_message = {}
+
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_en_US.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_en_US.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_en_US.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2018 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -76,5 +76,5 @@
 #  * このファイルを編集して使用することが意図されていますが
 #  * tecsgen の再実行により上書きされてしまうため、通常
-#  *   gen/%s_template.c => src/%s.c
+#  *   gen/%s_templ.c => src/%s.c
 #  * のように名前, フォルダを変更してから修正します
 #  */
@@ -83,5 +83,5 @@
  * This file was automatically generated by tecsgen.
  * Move and rename like below before editing,
- *   gen/%s_template.c => src/%s.c
+ *   gen/%s_templ.c => src/%s.c
  * to avoid to be overwritten by tecsgen.
  */
@@ -227,4 +227,16 @@
 @@comment[ :EPM_comment ] = "\n/* entry port function macro (abbrev) %s */\n"
 
+# @@comment[ :CRD_comment ] = "\n/* ディスクリプタ参照関数 %s */\n"
+@@comment[ :CRD_comment ] = "/* refer to descriptor function %s */\n"
+
+# @@comment[ :CRDA_comment ] = "\n/* ディスクリプタ参照マクロ（短縮形） %s */\n"
+@@comment[ :CRDA_comment ] = "\n/* refer to descriptor macro (abbrev) %s */\n"
+
+# @@comment[ :SDF_comment ] = "/* ディスクリプタ設定関数 %s */\n"
+@@comment[ :SDF_comment ] = "/* set descriptor function %s */\n"
+
+# @@comment[ :SDMA_comment ] = "\n/* ディスクリプタ設定マクロ（短縮形） %s */\n"
+@@comment[ :SDMA_comment ] = "\n/* set descriptor macro (abbrev) %s */\n"
+
 # @@comment[ :CTIX_comment ] = "\n/* セルタイプのIDX型 %s */\n"
 @@comment[ :CTIX_comment ] = "\n/* celltype IDX type %s */\n"
@@ -323,3 +335,8 @@
 @@comment[ :TEFB_comment ] = "\t/* Put statements here %s */\n"
 
+# @@comment[ :MCPP_comment ] = "/* セル CB プロトタイプ宣言 %s */\n"
+@@comment[ :MCPP_comment ] = "/* cell CB prototype declaration %s */\n"
+
+# @@comment[ :MCPB_comment ] = "/* セル CB プロトタイプ宣言 %s */\n"
+@@comment[ :MCPB_comment ] = "/* cell CB prototype declaration %s */\n"
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_ja_JP.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_ja_JP.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/messages/messages_file_ja_JP.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2018 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -65,5 +65,5 @@
  * このファイルを編集して使用することが意図されていますが
  * tecsgen の再実行により上書きされてしまうため、通常
- *   gen/%s_template.c => src/%s.c
+ *   gen/%s_templ.c => src/%s.c
  * のように名前, フォルダを変更してから修正します
  */
@@ -127,4 +127,8 @@
 @@comment[ :CPMA_comment ] = "/* 呼び口関数マクロ（短縮形）%s */\n"
 @@comment[ :EPM_comment ] = "\n/* 受け口関数マクロ（短縮形） %s */\n"
+@@comment[ :CRD_comment ] = "/* ディスクリプタ参照関数 %s */\n"
+@@comment[ :CRDA_comment ] = "\n/* ディスクリプタ参照マクロ（短縮形） %s */\n"
+@@comment[ :SDF_comment ] = "/* ディスクリプタ設定関数 %s */\n"
+@@comment[ :SDMA_comment ] = "\n/* ディスクリプタ設定マクロ（短縮形） %s */\n"
 @@comment[ :CTIX_comment ] = "\n/* セルタイプのIDX型 %s */\n"
 @@comment[ :EPP_comment ] = "\n/* 受け口関数プロトタイプ宣言 %s */\n"
@@ -159,4 +163,6 @@
 @@comment[ :TEPF_comment ] = "/* 受け口関数 %s */\n"
 @@comment[ :TEFB_comment ] = "\t/* ここに処理本体を記述します %s */\n"
+@@comment[ :MCPP_comment ] = "/* CB プロトタイプ宣言 %s */\n"
+@@comment[ :MCPB_comment ] = "/* CB プロトタイプ宣言 %s */\n"
 
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CompositePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CompositePlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/CompositePlugin.rb	(revision 429)
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2014 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id: CelltypePlugin.rb 2635 2017-04-16 02:37:16Z okuma-top $
+#++
+
+#== CompositeCelltype プラグインの共通の親クラス
+class CompositePlugin < Plugin
+
+  #celltype::     CompositeCelltype        セルタイプ（インスタンス）
+  def initialize( celltype, option )
+    super()
+    @celltype = celltype
+    # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # 前後の "" を取り除く
+    # @plugin_arg_str.sub!( /(.*)"\z/, '\1' )
+    @plugin_arg_str = CDLString.remove_dquote option
+    @plugin_arg_list = {}
+  end
+
+  #=== 新しいセル
+  #cell::        Cell            セル
+  #
+  # celltype プラグインを指定されたセルタイプのセルが生成された
+  # セルタイププラグインに対する新しいセルの報告
+  def new_cell( cell )
+  end
+
+  #=== 後ろの CDL コードを生成
+  #プラグインの後ろの CDL コードを生成
+  #file:: File: 
+  def self.gen_post_code( file )
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
+    # file.print "/* '#{self.class.name}' post code */\n"
+  end
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/DomainPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/DomainPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/DomainPlugin.rb	(revision 429)
@@ -46,4 +46,5 @@
   #option::String : domain 指定子の第二引数
   def initialize( region, domain_type_name, option )
+    super()
   end
 
@@ -77,3 +78,14 @@
     return false
   end
+
+  #== ドメイン種別を返す
+  #return::Symbol :kernel, :user, :OutOfDomain
+  def get_kind
+    :kernel
+  end
+
+  #== factory 生成
+  # DomainPlugin の factory は特定のファイルへの出力が想定されていない
+  def gen_factory
+  end
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2AlarmHandlerPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2AlarmHandlerPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2AlarmHandlerPlugin.rb	(revision 429)
@@ -34,4 +34,6 @@
 #   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
 #   の責任を負わない．
+#
+#   $Id: HRP2AlarmHandlerPlugin.rb 2640 2017-06-03 11:27:12Z okuma-top $
 #  
 #++
@@ -50,7 +52,7 @@
     def print_cfg_cre(file, cell, val, tab)
         val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
-        # $cbp$の代わり
-        index = cell.get_id - @celltype.get_id_base
-        cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
+        # $cbp$  #983
+        name_array = @celltype.get_name_array cell
+        cell_CBP = name_array[8]    # CBP
         # CRE_XXXの生成
         if (cell.get_region.get_region_type != :DOMAIN) || (cell.get_region.get_param != :KERNEL_DOMAIN)
@@ -59,5 +61,5 @@
         else
             file.print <<EOT
-#{tab}CRE_ALM(#{val[:id]}, { #{val[:attribute]}, &#{cell_CB_name}, tAlarmHandler_start });
+#{tab}CRE_ALM(#{val[:id]}, { #{val[:attribute]}, #{cell_CBP}, tAlarmHandler_start });
 EOT
         end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2CyclicHandlerPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2CyclicHandlerPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2CyclicHandlerPlugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2012 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
@@ -51,7 +52,7 @@
     def print_cfg_cre(file, cell, val, tab)
         val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
-        # $cbp$の代わり
-        index = cell.get_id - @celltype.get_id_base
-        cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
+        # $cbp$  #983
+        name_array = @celltype.get_name_array cell
+        cell_CBP = name_array[8]    # CBP
         # CRE_XXXの生成
         if (cell.get_region.get_region_type != :DOMAIN) || (cell.get_region.get_param != :KERNEL_DOMAIN)
@@ -60,5 +61,5 @@
         else
             file.print <<EOT
-#{tab}CRE_CYC(#{val[:id]}, { #{val[:attribute]}, &#{cell_CB_name}, tCyclicHandler_start, #{val[:cyclicTime]}, #{val[:cyclicPhase]} });
+#{tab}CRE_CYC(#{val[:id]}, { #{val[:attribute]}, #{cell_CBP}, tCyclicHandler_start, #{val[:cyclicTime]}, #{val[:cyclicPhase]} });
 EOT
         end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2DataqueuePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2DataqueuePlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2DataqueuePlugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2012 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2EventflagPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2EventflagPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2EventflagPlugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2012 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2FixedSizeMemoryPoolPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2FixedSizeMemoryPoolPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2FixedSizeMemoryPoolPlugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2012 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2HandlerPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2HandlerPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2HandlerPlugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2018 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,9 +35,9 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
 #require "HRP2KernelObjectPlugin"
 require_tecsgen_lib "HRP2KernelObjectPlugin.rb"
-
 
 #== celltype プラグインの共通の親クラス
@@ -51,8 +51,10 @@
     # tab  : 
     def print_cfg_cre(file, cell, val, tab)
-        val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
-        # $cbp$の代わり
-        index = cell.get_id - @celltype.get_id_base
-        cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
+        if !val[:id].nil?
+            val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
+        end
+        # $cbp$  #983
+        name_array = @celltype.get_name_array cell
+        cell_CBP = name_array[8]    # CBP
         # CRE_XXXの生成
         domainOption = cell.get_region.get_domain_root.get_domain_type.get_option
@@ -63,9 +65,25 @@
         elsif @plugin_arg_str == "ALARM"
             file.print <<EOT
-#{tab}CRE_ALM(#{val[:id]}, { #{val[:attribute]}, &#{cell_CB_name}, tAlarmHandler_start });
+#{tab}CRE_ALM(#{val[:id]}, { #{val[:attribute]}, #{cell_CBP}, tAlarmHandler_start });
 EOT
         elsif @plugin_arg_str == "CYCLIC"
             file.print <<EOT
-#{tab}CRE_CYC(#{val[:id]}, { #{val[:attribute]}, &#{cell_CB_name}, tCyclicHandler_start, #{val[:cyclicTime]}, #{val[:cyclicPhase]} });
+#{tab}CRE_CYC(#{val[:id]}, { #{val[:attribute]}, #{cell_CBP}, tCyclicHandler_start, #{val[:cyclicTime]}, #{val[:cyclicPhase]} });
+EOT
+        elsif @plugin_arg_str == "CONFIG_INT"
+            file.print <<EOT
+#{tab}CFG_INT( #{val[:interruptNumber]}, { #{val[:attribute]}, #{val[:interruptPriority]} });
+EOT
+        elsif @plugin_arg_str == "ISR"
+            file.print <<EOT
+#{tab}ATT_ISR({ #{val[:attribute]}, #{cell_CBP}, #{val[:interruptNumber]}, tISR_start, #{val[:priority]} });
+EOT
+        elsif @plugin_arg_str == "INIT_ROUTINE"
+            file.print <<EOT
+#{tab}ATT_INI({ #{val[:attribute]}, #{cell_CBP}, tInitializeRoutine_start });
+EOT
+        elsif @plugin_arg_str == "TERM_ROUTINE"
+            file.print <<EOT
+#{tab}ATT_TER({ #{val[:attribute]}, #{cell_CBP}, tTerminateRoutine_start });
 EOT
         else
@@ -79,4 +97,12 @@
         elsif @plugin_arg_str == "CYCLIC"
             file.puts "SAC_CYC(#{val[:id]}, { #{acv[0]}, #{acv[1]}, #{acv[2]}, #{acv[3]} });"
+        elsif @plugin_arg_str == "CONFIG_INT"
+            # nothing to do
+        elsif @plugin_arg_str == "ISR"
+            # nothing to do
+        elsif @plugin_arg_str == "INIT_ROUTINE"
+            # nothing to do
+        elsif @plugin_arg_str == "TERM_ROUTINE"
+            # nothing to do
         else
             raise "#{@plugin_arg_str} is unknown option"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2KernelObjectPlugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2012 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
@@ -185,5 +186,5 @@
                 val = {}
                 @celltype.get_attribute_list.each{ |a|
-                    p a.get_name
+                    # p a.get_name
                     if a.get_type.kind_of?( ArrayType )
                         val[a.get_name] = []
@@ -217,5 +218,6 @@
                 if val[:id].nil? != true
                     puts val[:id]
-                    val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
+                    #val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
+                    val[:id] = @celltype.subst_name( val[:id], @celltype.get_name_array( cell ) )
                 end
                 # $cbp$の代わり
@@ -243,6 +245,6 @@
                         file2.puts "}\n"
                     else
-                        print "~~~~~ #{cell.get_region.get_name.to_s} is included in"
-                        p @@region_list
+                        dbgPrint "~~~~~ #{cell.get_region.get_name.to_s} is included in"
+                        # p @@region_list
                     end
                     file3 = AppFile.open( "#{$gen}/tecsgen_#{cell_domain_root.get_name.to_s}.cfg" )
@@ -257,48 +259,50 @@
                 puts "===== end check my domain #{cell.get_name} ====="
                 # SAC_XXXの生成
-                puts "===== begin check regions #{cell.get_name} ====="
-                p val[:accessPattern]
-                p val[:accessPattern].class
-
-                #ep = [ :eTaskActivate, :eTaskControl, :eTaskManage, :eTaskRefer ]
-                #各カーネルオブジェクトの受け口名を取得
-                # ep = get_entry_ports_name_list()
-                i = 0
-                acv = []
-                # アクセス許可ベクタの生成
-                val[:accessPattern].each { |acptnx|
-                    # アクセス許可パターンの生成
-                    if acptnx != "OMIT"
-                        acv << acptnx
-                        p acv[i]
-                    elsif cell_domain_type.get_option.to_s == "trusted"
-                        acv << "TACP_KERNEL"
-                        p acv[i]
-                    elsif cell_domain_type.get_option.to_s != "OutOfDomain"
-                        acv << "TACP(#{cell_domain_root.get_name.to_s})"
+                if !val[:accessPattern].nil?
+                    puts "===== begin check regions #{cell.get_name} ====="
+                    # p val[:accessPattern]
+                    # p val[:accessPattern].class
+
+                    #ep = [ :eTaskActivate, :eTaskControl, :eTaskManage, :eTaskRefer ]
+                    #各カーネルオブジェクトの受け口名を取得
+                    # ep = get_entry_ports_name_list()
+                    i = 0
+                    acv = []
+                    # アクセス許可ベクタの生成
+                    val[:accessPattern].each { |acptnx|
+                        # アクセス許可パターンの生成
+                        if acptnx != "OMIT"
+                            acv << acptnx
+                            # p acv[i]
+                        elsif cell_domain_type.get_option.to_s == "trusted"
+                            acv << "TACP_KERNEL"
+                            # p acv[i]
+                        elsif cell_domain_type.get_option.to_s != "OutOfDomain"
+                            acv << "TACP(#{cell_domain_root.get_name.to_s})"
+                        else
+                            acv << "TACP_SHARED"
+                        end
+
+                        i += 1
+                    }
+
+                    dbgPrint "acv = "
+                    p acv
+
+                    #各種SACの生成
+                    domainOption = cell_domain_type.get_option
+                    # if cell.get_region.get_region_type == :DOMAIN
+                    if domainOption != "OutOfDomain"
+                        # 保護ドメインに属する場合
+                        file3 = AppFile.open( "#{$gen}/tecsgen_#{cell.get_region.get_name.to_s}.cfg" )
+                        print_cfg_sac(file3, val, acv)
+                        file3.close
                     else
-                        acv << "TACP_SHARED"
+                        # 無所属の場合
+                        print_cfg_sac(file2, val, acv)
                     end
 
-                    i += 1
-                }
-
-                print "acv = "
-                p acv
-
-                #各種SACの生成
-                domainOption = cell_domain_type.get_option
-                # if cell.get_region.get_region_type == :DOMAIN
-                if domainOption != "OutOfDomain"
-                    # 保護ドメインに属する場合
-                    file3 = AppFile.open( "#{$gen}/tecsgen_#{cell.get_region.get_name.to_s}.cfg" )
-                    print_cfg_sac(file3, val, acv)
-                    file3.close
-                else
-                    # 無所属の場合
-                    print_cfg_sac(file2, val, acv)
+                    puts "===== end check regions #{cell.get_name} ====="
                 end
-
-                puts "===== end check regions #{cell.get_name} ====="
             end
         }
@@ -319,9 +323,9 @@
 
     def self.check_referenced_cells()
-        puts "===== begin check registered celltype ====="
+        dbgPrint "===== begin check registered celltype =====\n"
         self.get_celltype_list.each { |ct|
-            p ct.get_name.to_s
+            dbgPrint( ct.get_name.to_s + "\n" )
         }
-        puts "===== end check registered celltype ====="
+        dbgPrint "===== end check registered celltype =====\n"
 
 =begin
@@ -331,5 +335,5 @@
                 j = cell.get_join_list.get_item(p.get_name)
                 printf "===== check call port : "
-                p p.get_name.to_s
+                # p p.get_name.to_s
                 next if j.nil? # 未結合の場合
                 if @@celltype_list.include?(j.get_celltype)
@@ -338,7 +342,7 @@
                     j.get_cell.set_referenced_cell(cell, j.get_port_name)
                     printf "===== check joined rhs cell : "
-                    p j.get_cell.get_name.to_s
+                    # p j.get_cell.get_name.to_s
                     printf "===== check joined rhs port_name : "
-                    p j.get_port_name
+                    # p j.get_port_name
                 end
             }
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2ObjectPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2ObjectPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2ObjectPlugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2Plugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2Plugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2Plugin.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2014 by TOPPERS Project
+#   Copyright (C) 2018 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
@@ -43,5 +44,17 @@
 
   def initialize( region, name, option )
-    print "MyDomainPlugin: initialize: region=#{region.get_name}, domainName=#{name}, option=#{option}\n"
+    super
+    print "HRP2Plugin: initialize: region=#{region.get_name}, domainName=#{name}, option=#{option}\n"
+    @region = region
+    @name   = name
+
+    case option
+    when "trusted", "nontrusted", "OutOfDomain"
+      # OK
+      @option = option
+    else
+      cdl_error( "HRPPlugin: '$1' is unacceptable domain kind, specify 'trusted' or 'nontrusted'", option )
+      @option = "trusted"   # とりあえず trusted を設定しておく
+    end
   end
 
@@ -54,5 +67,5 @@
     # get_rhs_subscript:Integer or nil 受け口配列の添数 (Join::@rhs_subscript の説明参照)
     # return []
-    print "MyDomainPlugin: add_through_plugin: #{current_region.get_name}=>#{next_region.get_name}, #{join.get_owner.get_name}.#{join.get_definition.get_name}=>#{join.get_cell.get_name}.#{join.get_port_name}, #{through_type}\n"
+    print "HRP2Plugin: add_through_plugin: #{current_region.get_name}=>#{next_region.get_name}, #{join.get_owner.get_name}.#{join.get_definition.get_name}=>#{join.get_cell.get_name}.#{join.get_port_name}, #{through_type}\n"
 
     puts "=====Join Check Start====="
@@ -107,6 +120,19 @@
   end
 
+  #== ドメイン種別を返す
+  #return::Symbol :kernel, :user, :OutOfDomain
+  def get_kind
+    case @option
+    when "trusted"
+      return :kernel
+    when "nontrusted"
+      return :user
+    when "OutOfDomain"
+      return :OutOfDomain
+    end
+  end
+
   def joinable?(current_region, next_region, through_type )
-    print "MyDomainPlugin: joinable? from #{current_region.get_name} to #{next_region.get_name} (#{through_type})\n"
+    print "HRP2Plugin: joinable? from #{current_region.get_name} to #{next_region.get_name} (#{through_type})\n"
     return true
   end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PostHook.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PostHook.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2PostHook.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2012 by TOPPERS Project
+#   Copyright (C) 2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2RPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2RPCPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2RPCPlugin.rb	(revision 429)
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
@@ -70,5 +71,5 @@
   #=== RPCPlugin の initialize
   #  説明は ThroughPlugin (plugin.rb) を参照
-  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
     super
     @b_noClientSemaphore = false
@@ -234,5 +235,5 @@
     if cell.get_allocator_list.length > 0 then
 
-      dbgPrint "make allocator"
+      dbgPrint "make allocator\n"
       file.print "#{indent_str}[allocator("
 
@@ -269,8 +270,14 @@
     nest = @end_region.gen_region_str_pre file
     indent_str = "  " * nest
+    nest_str = "  " * nest
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
 
     file.print <<EOT
 #{indent_str}cell #{@rpc_channel_celltype_name}Server #{@cell_name}Body {
-#{indent_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name};
+#{indent_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name}#{subscript};
 //#{indent_str}    #{@call_port_name} = #{@next_cell.get_name}.#{@next_cell_port_name};
 #{indent_str}  //cTDR         = #{@channelCellName}.eTDR;
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SVCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SVCPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2SVCPlugin.rb	(revision 429)
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
@@ -83,5 +84,5 @@
   @@generated_celltype_header = {}
 
-  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
     super
     @ct_name_body = "#{@ct_name}SVCBody_#{@next_cell.get_name}_#{@next_cell_port_name}".to_sym
@@ -217,4 +218,9 @@
     nest = @end_region.gen_region_str_pre file
     nest_str = "  " * nest
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
 
     # サーバー側チャンネルの生成 
@@ -224,5 +230,5 @@
 #{nest_str}  //  Server Side Channel
 #{nest_str}  cell #{@ct_name_body} #{@cell_name_body}{
-#{nest_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name};
+#{nest_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name}#{subscript};
 #{nest_str}  };
 EOT
@@ -241,4 +247,9 @@
     nest = @start_region.gen_region_str_pre file
     nest_str = "  " * nest
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
 
     # クライアント側チャンネルの生成
@@ -247,5 +258,5 @@
 #{nest_str}  //  Client Side Channel
 #{nest_str}  cell #{@ct_name} #{@cell_name}{
-#{nest_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name};
+#{nest_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name}#{subscript};
 #{nest_str}  };
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2TaskPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2TaskPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRP2TaskPlugin.rb	(revision 429)
@@ -35,4 +35,5 @@
 #   の責任を負わない．
 #  
+#   $Id$
 #++
 
@@ -52,5 +53,6 @@
     # tab  : 
     def print_cfg_cre(file, cell, val, tab)
-        val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
+        #val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_global_name.to_s}" )
+        #val[:id] = @celltype.subst_name( val[:id], @celltype.get_name_array( cell ) )
         # $cbp$の代わり
         index = cell.get_id - @celltype.get_id_base
@@ -58,7 +60,8 @@
         cell_CB_name = "#{index}"
         # CRE_XXX/DEF_XXXの生成
-        print "assign task plugin\n"
+        dbgPrint "assign task plugin\n"
         domainOption = cell.get_region.get_domain_root.get_domain_type.get_option
         # if cell.get_region.get_region_type == :DOMAIN
+# cell.show_tree 1
         if domainOption != "OutOfDomain"
             # 保護ドメインに属する場合
@@ -68,4 +71,5 @@
                     raise "system task cannot have user stack."
                 end
+p "CRE_TSK 0 user=#{val[:userStackSize]} system=#{val[:systemStackSize]}"
                 file.print <<EOT
 #{tab}CRE_TSK(#{val[:id]}, { #{val[:taskAttribute]}, #{cell_CB_name}, tTask_start_task, #{val[:priority]}, #{val[:systemStackSize]}, NULL });
@@ -76,4 +80,5 @@
                     raise "user task must have user stack."
                 end
+p "CRE_TSK 1"
                 if val[:systemStackSize] == "OMIT"
                     file.print <<EOT
@@ -81,4 +86,5 @@
 EOT
                 else
+p "CRE_TSK 2"
                     file.print <<EOT
 #{tab}CRE_TSK(#{val[:id]}, { #{val[:taskAttribute]}, #{cell_CB_name}, tTask_start_task, #{val[:priority]}, #{val[:userStackSize]}, NULL, #{val[:systemStackSize]}, NULL });
@@ -121,4 +127,7 @@
                 ct = cell.get_celltype
                 if ct.class == Celltype && check_celltype_list.include?( ct ) == false
+                    # チェック済みセルタイプに登録
+                    check_celltype_list << ct
+
                     # 未チェックのセルタイプだった場合
                     # puts "check for ATT_MOD : #{ct.classget_global_name}"
@@ -134,7 +143,7 @@
                     regions = ct.get_domain_roots
                     regions_hrp2 = regions[ :HRP2 ]
-                    print "HRP2 domain in #{ct.get_name}: "
+                    dbgPrint "HRP2 domain in #{ct.get_name}: "
                     regions_hrp2.each { |reg|
-                        print reg.get_name
+                        dbgPrint reg.get_name
                     }
                     puts ""
@@ -179,6 +188,4 @@
                     file.print "ATT_MOD(\"#{ct.get_global_name}.o\");\n"
                     file.close
-
-                    check_celltype_list << ct
                 else
                     # 何もしない
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPHandlerPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPHandlerPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPHandlerPlugin.rb	(revision 429)
@@ -0,0 +1,129 @@
+# coding: utf-8
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#++
+
+require_tecsgen_lib "HRPKernelObjectPlugin.rb"
+
+
+#== celltype プラグインの共通の親クラス
+class HRPHandlerPlugin < HRPKernelObjectPlugin
+
+    ##
+    # oyama: add to avoid Ruby exception in code generation phase.
+    def new_cell cell
+        domainOption = cell.get_region.get_domain_root.get_domain_type.get_option
+        if (domainOption == "OutOfDomain") || (domainOption != "kernel")
+          cdl_error( "HRP9999 HRP handler '$1' must belong to kernel domain", cell.get_name )
+        end
+    end
+
+    ##
+    #
+    # file : output file (ex.tecsgen.cfg)
+    # cell : 
+    # val  : 
+    # tab  : 
+    def print_cfg_cre(file, cell, val, tab)
+        if !val[:id].nil?
+            val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
+        end
+        # $cbp$の代わり
+        index = cell.get_id - @celltype.get_id_base
+        #cell_CB_name = "#{@celltype.get_global_name}_CB_tab[#{index}]"
+        name_array = cell.get_celltype.get_name_array cell
+        cell_CBP = name_array[8]
+        # CRE_XXXの生成
+        domainOption = cell.get_region.get_domain_root.get_domain_type.get_option
+        if (domainOption == "OutOfDomain") || (domainOption != "kernel")
+            # 無所属 or ユーザドメインに属する場合
+                raise "#{@plugin_arg_str.to_s.downcase} handler #{val[:id]} must belong to kernel domain."
+        elsif @plugin_arg_str == "CONFIG_INT"
+            file.print <<EOT
+#{tab}CFG_INT( #{val[:interruptNumber]}, { #{val[:attribute]}, #{val[:interruptPriority]} });
+EOT
+        elsif @plugin_arg_str == "ISR"
+            file.print <<EOT
+#{tab}CRE_ISR(#{val[:id]}, { #{val[:attribute]}, #{cell_CBP}, #{val[:interruptNumber]}, tISR_start, #{val[:isrPriority]} });
+EOT
+        elsif @plugin_arg_str == "DEF_INH"
+            name_array = @celltype.get_name_array cell
+            start = @celltype.subst_name( "$id$_start", name_array )
+            file.print <<EOT
+#{tab}DEF_INH(#{val[:interruptHandlerNumber]}, { #{val[:attribute]}, #{start} });
+EOT
+        elsif @plugin_arg_str == "DEF_EXC"
+            name_array = @celltype.get_name_array cell
+            start = @celltype.subst_name( "$id$_start", name_array )
+            file.print <<EOT
+#{tab}DEF_EXC(#{val[:cpuExceptionHandlerNumber]}, { #{val[:attribute]}, #{start} });
+EOT
+        elsif @plugin_arg_str == "INIT_ROUTINE"
+            file.print <<EOT
+#{tab}ATT_INI({ #{val[:attribute]}, #{cell_CBP}, tInitializeRoutine_start });
+EOT
+        elsif @plugin_arg_str == "TERM_ROUTINE"
+            file.print <<EOT
+#{tab}ATT_TER({ #{val[:attribute]}, #{cell_CBP}, tTerminateRoutine_start });
+EOT
+        else
+            raise "#{@plugin_arg_str} is unknown option"
+        end
+    end
+
+    def print_cfg_sac(file, val, acv)
+        if @plugin_arg_str == "CONFIG_INT"
+            # nothing to do
+        elsif @plugin_arg_str == "ISR"
+            # kernel.cdl の tISR で accessPattern1 ～ accessPattern4 が定義されているときの名残。
+            # accessPattern1 が定義されていない場合、こここへは来ない．復活したときに備えて残しておく．
+            # file.puts "SAC_#{@plugin_arg_str}(#{val[:id]}, { #{acv[:accessPattern1]}, #{acv[:accessPattern2]}, #{acv[:accessPattern3]}, #{acv[:accessPattern4]} });"
+            puts "*** Unsupported *** SAC_#{@plugin_arg_str}(#{val[:id]}, { #{acv[:accessPattern1]}, #{acv[:accessPattern2]}, #{acv[:accessPattern3]}, #{acv[:accessPattern4]} });\n"
+        elsif @plugin_arg_str == "DEF_INH"
+            # nothing to do
+        elsif @plugin_arg_str == "DEF_EXC"
+            # nothing to do
+        elsif @plugin_arg_str == "INIT_ROUTINE"
+            # nothing to do
+        elsif @plugin_arg_str == "TERM_ROUTINE"
+            # nothing to do
+        else
+            raise "#{@plugin_arg_str} is unknown option"
+        end
+    end
+
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPKernelObjectManager.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPKernelObjectManager.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPKernelObjectManager.rb	(revision 429)
@@ -0,0 +1,71 @@
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2015-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#
+#   $Id$
+#  
+#++
+# This file has been generated by gen_kernel_celltype.py
+class HRPKernelObjectManager
+	@@kernel_objs = [\
+		:tKernel, \
+		:tTask, \
+		:tSemaphore, \
+		:tEventflag, \
+		:tDataqueue, \
+		:tPriorityDataqueue, \
+		:tMutex, \
+		:tFixedSizeMemoryPool, \
+		:tTimeEventHandler, \
+		:tCyclicNotifier, \
+		:tAlarmNotifier, \
+		:tInterruptRequest, \
+		:tISR, \
+		:tInterruptHandler, \
+		:tCpuExceptionHandler, \
+		:tInitializeRoutine, \
+		:tTerminateRoutine, \
+		:tMessageBuffer, \
+	]
+
+    def initialize()
+        # 
+        #  本クラスはインスタンスを持たない仮想的なクラスである
+        #
+        raise "class #{self.class.name} shall not have instances"
+    end
+    def self.include_celltype?(str)
+        return @@kernel_objs.include?(str)
+    end
+end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPKernelObjectPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPKernelObjectPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPKernelObjectPlugin.rb	(revision 429)
@@ -0,0 +1,336 @@
+# coding: utf-8
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#
+#  $Id$
+#++
+
+#== celltype プラグインの共通の親クラス
+class HRPKernelObjectPlugin < CelltypePlugin
+    # @@obj_hash = {}
+
+    #@celltype:: Celltype
+    #@option:: String     :オプション文字列
+    def initialize( celltype, option )
+        super
+        #
+        #  それぞれのカーネルオブジェクトを解析対象セルタイプに追加
+        #  目的：
+        #   - カーネルオブジェクトのセルをメモリ保護対象外とする
+        #    - カーネルオブジェクト本体の管理はTECSでなくOSで実施するため
+        #   - カーネルオブジェクトのセルへのアクセスを直接関数呼出し
+        #   　とする
+        #    - システムサービス呼出しはOSが提供するため
+        HRPKernelObjectPlugin.set_celltype(celltype)
+    end
+  
+    #=== HRPKernelObjectPlugin#print_cfg_cre
+    # 各種カーネルオブジェクトのCRE_*の出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
+    def print_cfg_cre(file, cell, val, tab)
+        raise "called virtual method print_cfg_cre in #{@celltype.get_name} plugin"
+    end
+  
+    #=== HRPKernelObjectPlugin#print_cfg_sac
+    # 各種カーネルオブジェクトのSAC_*の出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ
+    def print_cfg_sac(file, val, acv)
+        raise "called virtual method print_cfg_sac in #{@celltype.get_name} plugin"
+    end
+  
+    #
+    #  セルタイププラグインの本体メソッド
+    #   - 静的APIの生成
+    #  file:: FILE:     出力先ファイル
+    #
+    def gen_factory file
+        dbgPrint "===== begin #{@celltype.get_name.to_s} plugin =====\n"
+
+        #
+        # 対象となるすべてのセルについて、受け口に結合されている
+        # セルの所属ドメインを解析
+        #  - 生成すべきcfgファイル名を取得するために必要
+        #
+        if !HRPKernelObjectPlugin.isChecked()
+            HRPKernelObjectPlugin.check_referenced_cells()
+        else
+            dbgPrint "***** already checked\n"
+        end
+
+        # 追記するために AppFile を使う（文字コード変換されない）
+        file2 = AppFile.open( "#{$gen}/tecsgen.cfg" )
+        file2.print "\n/* Generated by #{self.class.name} */\n\n"
+
+        @celltype.get_cell_list.each { |cell|
+            if cell.is_generate?
+                dbgPrint "===== begin check my domain #{cell.get_name} =====\n"
+                #
+                #  カーネルオブジェクトの属性を，valにコピー
+                #
+                val = {}
+                @celltype.get_attribute_list.each{ |a|
+                    # p a.get_name
+                    if a.get_type.kind_of?( ArrayType )
+                        val[a.get_name] = []
+                        if j = cell.get_join_list.get_item(a.get_name)
+                            # セル生成時に初期化する場合
+                            j.get_rhs.each { |elem|
+                                val[a.get_name] << elem.to_s
+                            }
+                        elsif i = a.get_initializer
+                            # セルタイプの初期化値を使う場合
+                            i.each { |elem|
+                                val[a.get_name] << elem.to_s
+                            }
+                        else
+                            raise "attribute is not initialized"
+                        end
+                    else
+                        if j = cell.get_join_list.get_item(a.get_name)
+                            # セル生成時に初期化する場合
+                            val[a.get_name] = j.get_rhs.to_s
+                        elsif i = a.get_initializer
+                            # セルタイプの初期化値を使う場合
+                            val[a.get_name] = i.to_s
+                        else
+                            raise "attribute is not initialized"
+                        end
+                    end
+                }
+                # generate.rbを参考に
+                # $id$を置換
+                if val[:id].nil? != true
+                    name_array = @celltype.get_name_array( cell )
+                    val[:id]   = @celltype.subst_name( val[:id], name_array )
+                end
+                # $cbp$の代わり
+                cell_domain_root = cell.get_region.get_domain_root
+                cell_domain_type = cell.get_region.get_domain_root.get_domain_type
+
+                # CRE_XXX/DEF_XXXの生成
+                if cell_domain_type.get_option.to_s != "OutOfDomain"
+                    # 保護ドメインに属する場合
+                    if !HRPKernelObjectPlugin.include_region(cell_domain_root.get_name.to_s)
+                        # その保護ドメインの.cfgが生成されていない場合
+                        HRPKernelObjectPlugin.set_region_list(cell_domain_root.get_name.to_s)
+                        dbgPrint "~~~~~ #{cell_domain_root.get_name.to_s} is registered!\n"
+
+#                        # if cell.get_region.get_param == :KERNEL_DOMAIN
+#                        if cell_domain_type.get_option.to_s == "kernel"
+#                            file2.print "KERNEL_DOMAIN{\n"
+#                        else
+#                            file2.print "DOMAIN(#{cell_domain_root.get_name.to_s}){\n"
+#                        end
+#                        file2.puts "\tINCLUDE(\"#{$gen}/tecsgen_#{cell_domain_root.get_name.to_s}.cfg\");" 
+#                        file2.puts "}\n"
+                    else
+                        dbgPrint "~~~~~ #{cell.get_region.get_namespace_path} is included in"
+                        #p @@region_list
+                    end
+                    file3 = AppFile.open( "#{$gen}/tecsgen_#{cell_domain_root.get_global_name}.cfg" )
+                    print_cfg_cre(file3, cell, val,"")
+                    file3.close
+                else
+                    # 無所属の場合
+                    dbgPrint "~~~~~ #{cell_domain_root.get_namespace_path} is OutOfDomain\n"
+                    # print "~~~~~ #{cell_domain_root.get_namespace_path} is OutOfDomain\n"
+                    # p cell_domain_root.get_name
+                    if cell_domain_root.get_name == "::" then
+                      print_cfg_cre(file2, cell, val, "")
+                    else
+#                      if !HRPKernelObjectPlugin.include_region(cell_domain_root.get_name.to_s)
+#                        # その保護ドメインの.cfgが生成されていない場合
+#                        HRPKernelObjectPlugin.set_region_list(cell_domain_root.get_name.to_s)
+#                        file2.puts "INCLUDE(\"#{$gen}/tecsgen_#{cell_domain_root.get_name.to_s}.cfg\");\n"
+#                      end
+                      file3 = AppFile.open( "#{$gen}/tecsgen_#{cell_domain_root.get_name.to_s}.cfg" )
+                      print_cfg_cre(file3, cell, val,"")
+                      file3.close
+                    end
+
+                end
+
+                dbgPrint "===== end check my domain #{cell.get_name} =====\n"
+
+                #
+                # SAC_XXXの生成
+                #
+                if !val[:accessPattern1].nil?
+                    dbgPrint "===== begin check regions #{cell.get_name} =====\n"
+                    i = 0
+                    acv = { \
+                            :accessPattern1 => val[:accessPattern1], \
+                            :accessPattern2 => val[:accessPattern2], \
+                            :accessPattern3 => val[:accessPattern3], \
+                            :accessPattern4 => val[:accessPattern4] \
+                    }
+                    acv_tmp = []
+                    domain_roots = HRPPlugin.get_inter_domain_join_roots cell
+                    # 結合先セルのドメインを加える
+                    if cell_domain_type.get_kind != :OutOfDomain then
+                      domain_roots << cell_domain_root
+                    end
+                    domain_roots.each{ |dr|
+                      case dr.get_domain_type.get_kind
+                      when :user
+                        acv_tmp << "TACP(#{dr.get_name})"
+                      when :kernel
+                        acv_tmp << "TACP_KERNEL"
+                      when :OutOfDomain
+                        if cell_domain_type.get_kind == :OutOfDomain then
+                          # 呼び元も、呼び先も OutOfDomain の場合
+                          acv_tmp << "TACP_SHARED"
+                        end
+                      end
+                    }
+                    acv_tmp.uniq!
+                    if acv_tmp.length == 0 then
+                      # 呼び先セルが無所属かつ、呼び元も無所属のみ、または結合無しの場合
+                      acv_tmp = [ "TACP_SHARED" ]
+                    end
+                    b_info = false
+                    b_warn = false
+                    acv.each { |key, acp|
+                        if !acp.nil?
+                            if acp != "OMIT"
+                            elsif cell_domain_type.get_kind != :OutOfDomain
+                              # p "UserDomainCell or KernelDomainCell"
+                              domain_roots = HRPPlugin.get_inter_domain_join_roots cell
+                              domain_roots.each{ |dr|
+                                # 
+                                case dr.get_domain_type.get_kind
+                                when :kernel
+                                when :user
+                                  if dr.get_namespace_path != cell.get_region.get_domain_root.get_namespace_path
+                                    # 他のユーザードメインからの結合
+                                    if( b_warn == false ) then
+                                      cdl_error( "HRP9999 '$1': kernel object joined from other user domain. kernel object joined from multi-user-domain must be placed out of domain", cell.get_name )
+                                      b_warn = true
+                                    end
+                                  end
+                                when :OutOfDomain
+                                  if( b_info == false ) then
+                                    # 無所属からの結合
+                                    # cdl_error( "HRP9999 kernel object joined from out of domain" )
+                                    if cell_domain_type.get_kind == :OutOfDomain
+                                      # この情報は、不要と判断する (無所属から無所属へ結合があると、アクセス許可ベクタが設定されない)
+                                      # cdl_info2( cell.get_locale, "HRP9999 '$1': kernel object joined from out of domain, access vector is not set", cell.get_name )
+                                      b_info = true
+                                    end
+                                  end
+                                else
+                                  raise "unknown domain kind"
+                                end
+                              }
+                              # acv[key] = "TACP(#{cell_domain_root.get_name.to_s})"
+                            else
+                              # p "OutOfDomainCell"
+                              # 無所属のセル
+                              # 結合元ドメインに許可する
+                              # 結合元に無所属のセルがあると、TACP_SHARED が設定される. フロー解析してドメインを特定できるのが、あるべき仕様
+                            end
+                            if acp == "OMIT"
+                              acv[key] = acv_tmp.join( '|' )
+                            end 
+                        end
+                    }
+                    #各種SACの生成
+                    domainOption = cell_domain_type.get_option
+                    # p "domain_root ", cell.get_region.get_domain_root.get_name
+                    if domainOption != "OutOfDomain" || cell.get_region.get_domain_root.get_name != "::"
+                        # 保護ドメインに属する場合
+                        file3 = AppFile.open( "#{$gen}/tecsgen_#{cell.get_region.get_name.to_s}.cfg" )
+                        print_cfg_sac(file3, val, acv)
+                        file3.close
+                    else
+                        # 無所属の場合
+                        print_cfg_sac(file2, val, acv)
+                    end
+
+                    dbgPrint "===== end check regions #{cell.get_name} =====\n"
+                end
+            end
+        }
+        dbgPrint "===== end #{@celltype.get_name.to_s} plugin =====\n"
+        file2.close
+    end
+
+    # カーネルオブジェクトセルタイプの管理
+    # HRPKernelObjectPluginクラスに対してメソッド呼出しを行うことを想定
+    @@checked = false
+    @@celltype_list = []
+    @@region_list = []
+
+    def self.isChecked()
+        return @@checked
+    end
+
+    def self.check_referenced_cells()
+        dbgPrint "===== begin check registered celltype =====\n"
+        self.get_celltype_list.each { |ct|
+          dbgPrint( ct.get_name.to_s + "\n" )
+        }
+        dbgPrint "===== end check registered celltype =====\n"
+
+        @@checked = true
+    end
+
+    def self.set_celltype( celltype )
+        @@celltype_list << celltype
+    end
+
+    def self.get_celltype_list
+        return @@celltype_list
+    end
+
+    def self.set_region_list( region )
+        @@region_list << region
+    end
+
+    def self.include_region( region )
+        return @@region_list.include?(region)
+    end
+
+    def self.include_celltype?( celltype )
+        return @@celltype_list.include?(celltype)
+    end
+
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPObjectPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPObjectPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPObjectPlugin.rb	(revision 429)
@@ -0,0 +1,97 @@
+# coding: utf-8
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#  $Id$
+#++
+
+require_tecsgen_lib "HRPKernelObjectPlugin.rb"
+
+
+class HRPObjectPlugin < HRPKernelObjectPlugin
+    @@api = {
+        "SEMAPHORE"=>["SEM", :id, :attribute, :initialCount, :maxCount],
+        "EVENTFLAG"=>["FLG", :id, :attribute, :flagPattern],
+        "DATAQUEUE"=>["DTQ", :id, :attribute, :dataCount, :dataqueueManagementBuffer],
+        "PRIORITY_DATAQUEUE"=>["PDQ", :id, :attribute, :dataCount, :maxDataPriority, :priorityDataqueueManagementBuffer],
+        "FIXED_SIZE_MEMORYPOOL"=>["MPF", :id, :attribute, :blockCount, :blockSize, :memoryPool, :memoryPoolManagementBuffer],
+        "KERNEL"=>["SYS"],
+        "MESSAGE_BUFFER"=>["MBF", :id, :attribute, :maxMessageSize, :bufferSize, :mbfmb],
+        "MUTEX"=>["MTX", :id, :attribute, :ceilingPriority]
+    }
+
+    #=== HRPObjectPlugin#print_cfg_cre
+    # CRE_XXXの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # tab :: string:   インデント用のtab
+    def print_cfg_cre(file, cell, val, tab)
+        if @@api.has_key?(@plugin_arg_str) == false
+            raise "#{@plugin_arg_str} is unknown"
+        elsif @plugin_arg_str != "KERNEL"
+            arg_list = []
+            params = @@api[@plugin_arg_str]
+            if @plugin_arg_str == "MUTEX" && ((val[:attribute] =~ /\bTA_CEILING\b/)==nil)
+              slice_end = -2   # :ceilingPriority を外す
+            else
+              slice_end = -1
+            end
+            # p @plugin_arg_str, slice_end, val[:attribute], (val[:attribute] =~ /\bTA_CEILING\b/)
+            params.slice(2..slice_end).each { |attr|
+                arg_list << "#{val[attr]}"
+            }
+            file.print tab
+            file.puts "CRE_#{@@api[@plugin_arg_str].at(0)}(#{val[:id]}, { #{arg_list.join(", ")} });"
+        end
+    end
+    #=== HRPObjectPlugin#print_cfg_sac
+    # SAC_XXXの出力
+    # file:: FILE:     出力先ファイル
+    # val :: string:   カーネルオブジェクトの属性の解析結果
+    # acv :: string:   アクセスベクタ    
+    def print_cfg_sac(file, val, acv)
+        if @@api.has_key?(@plugin_arg_str) == false
+            raise "#{@plugin_arg_str} is unknown"
+        elsif @plugin_arg_str != "KERNEL"
+            file.puts "SAC_#{@@api[@plugin_arg_str].at(0)}(#{val[:id]}, { #{acv[:accessPattern1]}, #{acv[:accessPattern2]}, #{acv[:accessPattern3]}, #{acv[:accessPattern4]} });"
+        else
+            file.puts "SAC_#{@@api[@plugin_arg_str].at(0)}({ #{acv[:accessPattern1]}, #{acv[:accessPattern2]}, #{acv[:accessPattern3]}, #{acv[:accessPattern4]} });"
+        end
+    end
+
+end
+
+
+  
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPPlugin.rb	(revision 429)
@@ -0,0 +1,355 @@
+# coding: utf-8
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2014-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#  $Id$
+#++
+
+
+require_tecsgen_lib "HRPKernelObjectManager.rb"
+#
+# 各メソッドの役割りは、DomainPlugin.rb を参照のこと
+# HRPカーネル用ドメインプラグイン
+class HRPPlugin < DomainPlugin
+  
+  def initialize( region, name, option )
+    super
+    dbgPrint "HRPPlugin: initialize: region=#{region.get_name}, domainName=#{name}, option=#{option}\n"
+    @region = region
+    @name   = name
+    case option
+    when "kernel", "user", "OutOfDomain"
+      # OK
+      @option = option
+    else
+      cdl_error( "HRPPlugin: '$1' is unacceptable domain kind, specify 'kernel' or 'user'", option )
+      @option = "kernel"   # とりあえず kernel を設定しておく
+    end
+  end
+
+  def add_through_plugin( join, current_region, next_region, through_type )
+    # join.get_owner:Cell  左辺のセル
+    # join.get_definition:Port 呼び口
+    # join.get_subscript:Integer or nil 呼び口配列の添数 (Join::@subscript の説明参照)
+    # join.get_cell:Cell 右辺のセル
+    # join.get_port_name:Symbol 受け口
+    # get_rhs_subscript:Integer or nil 受け口配列の添数 (Join::@rhs_subscript の説明参照)
+    # return []
+    dbgPrint "MyDomainPlugin: add_through_plugin: #{current_region.get_name}=>#{next_region.get_name}, #{join.get_owner.get_name}.#{join.get_definition.get_name}=>#{join.get_cell.get_name}.#{join.get_port_name}, #{through_type}\n"
+
+    #puts "=====Join Check Start====="
+    #puts "caller: #{join.get_owner.get_name.to_s}, callee: #{join.get_cell.get_name.to_s}"
+    #puts "=====Join Check param====="
+    current_domain = current_region.get_domain_root.get_domain_type
+    next_domain = next_region.get_domain_root.get_domain_type
+    #puts current_domain.get_option.to_s
+    # if !next_domain.nil?
+    #     puts next_domain.get_option.to_s
+    # else
+    #     puts "next domain is nil!"
+    # end
+
+    HRPPlugin.add_inter_domain_join_set join
+    # p join.get_cell.get_name
+    # p join.get_cell.get_real_celltype(join.get_rhs_port1).get_name
+    # if HRPKernelObjectManager.include_celltype?(join.get_cell.get_celltype.get_global_name)   #oyama: get_name => get_global_name 
+    if HRPKernelObjectManager.include_celltype?(join.
+                                                 get_cell.
+                                                 get_real_celltype(join.get_rhs_port1).
+                                                 get_global_name)                #oyama: get_name => get_global_name 
+        # 結合先がカーネルオブジェクトセル
+        # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
+        # 何もしないthrough
+        # puts "***** #{join.get_cell.get_celltype.get_name} is kernel object"
+        return []
+        # return [ :HRP2SVCPlugin, "channelCelltype=tMessagebufferChannel,noClientSemaphore=true" ]
+    # elsif @end_region.is_root?
+    # elsif next_region.get_option == OutOfDomain
+    # elsif next_domain.nil?
+    elsif next_domain.get_option.to_s == "OutOfDomain"
+    #     # 結合先が無所属
+    #     # 何もしないthrough
+    #     # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
+        # puts "***** nil"
+        return []
+    #elsif @start_region.get_param != :KERNEL_DOMAIN && @end_region.get_param == :KERNEL_DOMAIN
+    elsif current_domain.get_option.to_s != "kernel" && next_domain.get_option.to_s == "kernel"
+        # ユーザドメインからカーネルドメインへの結合
+        # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
+        # puts "***** svc"
+        return [ :HRPSVCPlugin, "" ]
+    elsif current_domain != next_domain
+        # 別のユーザドメインへの結合
+        # @plugin_body = HRP2RPCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
+        # puts "***** rpc"
+        # return [ :HRPRPCPlugin, "channelCelltype=tMessagebufferChannel,noClientSemaphore=true" ]
+        # puts "HRPPlugin:RPC:PPAllocatorSize=256"
+        return [ :HRPRPCPlugin, "noClientSemaphore=false,PPAllocatorSize=256" ]
+    else
+        # その他
+        # 何もしないthrough
+        # @plugin_body = HRP2SVCPlugin.new(cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell)
+        dbgPrint "warning: at HRP Join Check"
+        return nil
+    end
+
+    # puts "=====Join Check End====="
+  end
+
+  def joinable?(current_region, next_region, through_type )
+    dbgPrint "MyDomainPlugin: joinable? from #{current_region.get_name} to #{next_region.get_name} (#{through_type})\n"
+    return true
+  end
+
+  #== ドメイン種別を返す
+  #return::Symbol :kernel, :user, :OutOfDomain
+  def get_kind
+    return @option.to_sym
+  end
+  
+  def self.gen_post_code file
+  end
+
+  # ATT_MODを生成済みかどうか                   # 2017.8.27
+  @@generate_memory_module = false
+
+  @@include_extsvc_fncd = false  # 17.07.26 暫定
+  # 
+  #  ATT_MODの生成
+  #  gen_factory実行時には，すべてのセルタイププラグインを生成済みのはずなので，
+  #  カーネルAPIコードのメモリ保護を省略できる．
+  #
+  def gen_factory
+    super
+
+    if @@include_extsvc_fncd == false
+      file = AppFile.open( "#{$gen}/tecsgen.cfg" )
+      file.print "/* HRPPlugin 001 */\n"
+      file.print "#include \"extsvc_fncode.h\"\n"   ## 2017.7.26
+      file.close
+      @@include_extsvc_fncd = true
+    end
+
+    if @@generate_memory_module == false
+
+      # INCLUDE を出力
+      #  すべてのドメインに対する cfg を先に生成しておく
+      #  もし、ドメインに属するカーネルオブジェクトも、モジュールもない場合でも、cfg が出力される
+      regions = DomainType.get_domain_regions[ :HRP ]
+      file = AppFile.open( "#{$gen}/tecsgen.cfg" )
+      file.print "/* HRPPlugin 002 */\n"
+      regions.each{ |region|
+        if ! region.is_root? then
+          nsp = "#{region.get_global_name}"
+          file2 = AppFile.open( "#{$gen}/tecsgen_#{nsp}.cfg" )
+          file2.close
+          case region.get_domain_type.get_kind
+          when :kernel
+            pre = "KERNEL_DOMAIN{\n    "
+            post = "}\n"
+          when :user
+            pre = "DOMAIN(#{region.get_name}){\n    "
+            post = "}\n"
+          when :OutOfDomain
+            pre = ""
+            post = "\n"
+          end
+          file.puts "#{pre}INCLUDE(\"#{$gen}/tecsgen_#{nsp}.cfg\");\n#{post}"
+        end
+      }
+      file.print "/* HRPPlugin 002 end */\n\n"
+      file.close
+
+      check_celltype_list = []
+
+      # 
+      #  ATT_MODの生成
+      #
+      Cell.get_cell_list2.each { |cell|
+        # すべてのセルを走査してセルタイプをチェック
+        ct = cell.get_celltype
+        if ct.class == Celltype && check_celltype_list.include?( ct ) == false
+          # チェック済みセルタイプに登録
+          check_celltype_list << ct
+
+          # 未チェックのセルタイプだった場合
+          # puts "check for ATT_MOD : #{ct.classget_global_name}"
+          # puts "check for ATT_MOD : #{ct.get_global_name}"
+
+          # カーネルAPIのコード，データはメモリ保護しない # HRP3 oyama delete by Takada's request
+          # next if HRPKernelObjectManager.include_celltype?( ct.get_name )
+
+          # 必要のないセルタイプのコード，データはメモリ保護しない
+          next if ! ct.need_generate?
+
+          # HRPのドメインリージョンを取得
+          regions = ct.get_domain_roots
+          regions_hrp = regions[ :HRP ]
+          dbgPrint "HRP domain in #{ct.get_name}: "
+          regions_hrp.each { |reg|
+            dbgPrint reg.get_name
+          }
+          # puts ""
+
+          # セル管理ブロックとスケルトンのメモリ保護
+          # gen_celltype_names_domain 相当の処理
+          if regions_hrp.include?( Region.get_root ) == false && regions_hrp.length > 1
+            # ドメインが複数で，OutOfDomainにセルが存在しないセルタイプの場合
+            # 共有のセル管理ブロックとスケルトンコードを登録する
+            file = AppFile.open( "#{$gen}/tecsgen.cfg" )
+            file.printf "%-60s/* HRPPlugin 003 */\n", "ATT_MOD(\"#{ct.get_global_name}_tecsgen.o\");"
+            file.close
+          end
+
+          regions_hrp.each { |reg|
+            if reg.is_root? 
+              nsp = ""
+            else
+              nsp = "_#{reg.get_global_name}"
+            end
+            file = AppFile.open( "#{$gen}/tecsgen#{nsp}.cfg" )
+            file.printf "%-50s/* HRPPlugin 004 */\n", "ATT_MOD(\"#{ct.get_global_name}#{nsp}_tecsgen.o\");"
+            file.close
+          }
+
+          # セルタイプコードがない場合はスキップ
+          next if ct.is_all_entry_inline? && ! ct.is_active?
+
+          # セルタイプコードのメモリ保護
+          # gen_celltype_names_domain2 相当の処理
+          if regions_hrp.include?( Region.get_root ) == true || regions_hrp.length > 1
+            # OutOfDomainにセルが存在するセルタイプの場合
+            # または，複数のドメインにセルが存在するセルタイプの場合
+            # セルタイプコードを共有するように登録する
+            file = AppFile.open( "#{$gen}/tecsgen.cfg" )
+          else
+            # OutOfDomainでない単一のドメインにセルが存在するセルタイプの場合
+            # セルタイプコードを専有するように登録する
+            file = AppFile.open( "#{$gen}/tecsgen_#{regions_hrp[0].get_global_name}.cfg" )
+          end
+
+          file.printf "%-50s/* HRPPlugin 005 */\n", "ATT_MOD(\"#{ct.get_global_name}.o\");"
+          file.close
+        else
+          # 何もしない
+        end
+      }
+
+      @@generate_memory_module = true
+    else
+      # 何もしない
+    end
+  end
+
+  #----- Inter Domain Join Set -----#
+  @@inter_domain_join_set = {}      #{entry_cell =>{domain_root=>count} }  Hash of inter domain join
+  def self.add_inter_domain_join_set join
+    rhs_cell = join.get_cell
+    dbgPrint "--------- add_inter_domain:#{join.get_owner.get_namespace_path} => #{join.get_cell.get_namespace_path}-----\n"
+    domain_root = join.get_owner.get_region.get_domain_root   # lhs cell's domain root
+    if @@inter_domain_join_set[ rhs_cell ] == nil then
+      @@inter_domain_join_set[ rhs_cell ] = []
+    end
+    # 左辺のドメインルートを記録
+    @@inter_domain_join_set[ rhs_cell ] << join
+  end
+  def self.get_inter_domain_join_set rhs_cell
+    if @@inter_domain_join_set[ rhs_cell ] then
+      @@inter_domain_join_set[ rhs_cell ].uniq!
+    else
+      @@inter_domain_join_set[ rhs_cell ] = []
+    end
+    return @@inter_domain_join_set[ rhs_cell ]
+  end
+  def self.get_inter_domain_join_roots rhs_cell
+    dbgPrint "--------- get_inter_domain #{rhs_cell.get_namespace_path} -----\n"
+    domain_roots = []
+    set = get_inter_domain_join_set rhs_cell
+    set.each{ |join|
+      dbgPrint "--------- get_inter_domain:#{join.get_owner.get_namespace_path} => #{join.get_cell.get_namespace_path}-----\n"
+      # if join.get_owner.get_region.get_domain_root.get_domain_type.get_option == "user" then
+        domain_roots << join.get_owner.get_region.get_domain_root
+      # end
+    }
+    return domain_roots.uniq
+  end
+
+  def self.get_sac_str cell
+    domain_roots = self.get_inter_domain_join_roots cell
+    delim = ""
+    acv = ""
+    cell_domain_root = cell.get_region.get_domain_root
+    if cell_domain_root.get_domain_type.get_kind != :OutOfDomain then
+      domain_roots << cell.get_region.get_domain_root  # 結合先のドメインも含める
+    end
+    domain_roots.each{ |dr|
+      case dr.get_domain_type.get_kind
+      when :kernel
+        acv += "#{delim}TACP_KERNEL"
+        delim = "|"
+      when :user
+        acv += "#{delim}TACP(#{dr.get_name})"
+        delim = "|"
+        if cell_domain_root.get_domain_type.get_kind != :OutOfDomain &&
+           dr.get_namespace_path != cell_domain_root.get_namespace_path then
+          cdl_error( "HRP9999 '$1': kernel object joined from other user domain. kernel object joined from multi-user-domain must be placed out of domain", cell.get_name )
+        end
+      when :OutOfDomain
+        if cell_domain_root.get_domain_type.get_kind == :OutOfDomain then
+          acv += "#{delim}TACP_SHARED"
+          delim = "|"
+        end
+      else
+        raise "unkown domain kind"
+      end
+    }
+    if acv == "" then
+      # 呼び先セルが無所属かつ、呼び元も無所属のみ、または結合無しの場合
+      acv = "TACP_SHARED"
+    end
+    sac_str = "{"
+    delim = ""
+    [:accessPattern1, :accessPattern2, :accessPattern3, :accessPattern4].each{ |acp|
+      init = (cell.get_attr_initializer acp).to_s
+      if init != "OMIT"
+        sac_str += delim + init
+      else
+        sac_str += delim + acv
+      end
+      delim = ", "
+    }
+    return sac_str + '}'
+  end
+end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPRPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPRPCPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPRPCPlugin.rb	(revision 429)
@@ -0,0 +1,415 @@
+# coding: utf-8
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#  $Id$
+#++
+
+require_tecsgen_lib "lib/GenOpaqueMarshaler.rb"
+require_tecsgen_lib "lib/GenParamCopy.rb"
+
+#= HRPRPCPlugin プラグイン
+# スループラグイン (through)
+# ・OpaqueMarshalerPlugin を使用してマーシャラセルタイプを生成する
+# ・マーシャラ、TDR、チャンネル、メッセージバッファを生成する
+#
+class HRPRPCPlugin < ThroughPlugin
+
+  include GenOpaqueMarshaler
+  include GenParamCopy
+
+  # RPCPlugin 専用のオプション
+  HRPRPCPluginArgProc = RPCPluginArgProc.dup  # 複製を作って元を変更しないようにする
+  HRPRPCPluginArgProc[ "noClientSemaphore"  ] = Proc.new { |obj,rhs| obj.set_noClientSemaphore rhs }
+  HRPRPCPluginArgProc[ "semaphoreCelltype"  ] = Proc.new { |obj,rhs| obj.set_semaphoreCelltype rhs }
+  @@isFirstInstance = true
+
+  #=== RPCPlugin の initialize
+  #  説明は ThroughPlugin (plugin.rb) を参照
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
+    super
+    @b_noClientSemaphore = false
+    @semaphoreCelltype = "tSemaphore"
+    initialize_opaque_marshaler
+
+    # オプション：GenOpaqueMarshaler 参照
+    @plugin_arg_check_proc_tab = HRPRPCPluginArgProc
+    parse_plugin_arg
+
+    @rpc_channel_celltype_name = "tRPCPlugin_#{@TDRCelltype}_#{@channelCelltype}_#{@signature.get_name}"
+    @rpc_channel_celltype_file_name = "#{$gen}/#{@rpc_channel_celltype_name}.cdl"
+
+    if @signature.get_context == "non-task" then
+        cdl_error( "HRP9999 RPC cannot be applied to non-task context signature '$1'", @signature.get_name )
+    elsif @signature.get_context == "any" then
+        cdl_info( "HRP9999 RPC is applied to any context signature '$1'", @signature.get_name )
+    end
+
+    if @signature.need_PPAllocator?(true) then
+      if @PPAllocatorSize == nil then
+        cdl_error( "HRP9999 PPAllocatorSize must be speicified for pointer argments" )
+        # @PPAllocatorSize = 0   # 仮に 0 としておく (cdl の構文エラーを避けるため)
+      end
+    elsif @PPAllocatorSize then
+      cdl_warning( "HRP9999 PPAllocatorSize speicified in spite of PPAllocator unnecessary" )
+      @PPAllocatorSize = nil
+    end
+
+#    @signature.each_param{ |func_decl, param_decl|
+#      if func_decl.get_type.is_oneway? then
+#        if ( param_decl.get_size || param_decl.get_count ) && param_decl.get_string then
+#          cdl_error( "array of string not supported for oneway function in Transparent RPC" )  # mikan 文字列の配列
+#        elsif param_decl.get_string == -1 then
+#          cdl_error( "length unspecified string is not permited for oneway function in Transparent RPC" )  # mikan 長さ未指定文字列
+#        end
+#      end
+#    }
+
+    # 
+    #  tecsgen/tecs/rpcにincludeパスを通す
+    #  #include "tecs_rpc.h" を実現するために必要
+    #    大山:削除 Makefile.tecsgen に vpath, INCLUDES を入れるのは、よくない考え
+    #             TECSGEN.add_search_path で Makefile_templ に入れるのがよい
+    # if @@isFirstInstance
+    #     f = AppFile.open( "#{$gen}/Makefile.tecsgen" )
+    #     f.puts "INCLUDES := $(INCLUDES) -I $(TECSPATH) -I $(TECSPATH)/rpc"
+    #     f.puts "vpath %.c $(TECSPATH) $(TECSPATH)/rpc"
+    #     f.close()
+    #     @@isFirstInstance = false
+    # end
+  end
+
+  #=== plugin の宣言コード (celltype の定義) 生成
+  def gen_plugin_decl_code( file )
+
+    ct_name = "#{@ct_name}_#{@channelCelltype}"
+
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
+    if @@generated_celltype[ ct_name ] == nil then
+      @@generated_celltype[ ct_name ] = [ self ]
+    else
+      @@generated_celltype[ ct_name ] << self
+      return
+    end
+
+    f = CFile.open( @rpc_channel_celltype_file_name, "w" )
+    # 同じ内容を二度書く可能性あり (AppFile は不可)
+
+    f.print <<EOT
+import( <rpc.cdl> );
+import( <tMessageBufferCEP.cdl> );
+generate( OpaqueMarshalerPlugin, #{@signature.get_namespace_path}, "" );
+
+composite tOpaqueMarshaler_#{@signature.get_global_name}_through {
+  entry #{@signature.get_namespace_path} eThroughEntry;
+  call sTDR       cTDR;
+  [optional]
+    call sSemaphore cLockChannel;
+  [optional]
+    call sRPCErrorHandler cErrorHandler;
+
+  cell tOpaqueMarshaler_#{@signature.get_global_name} Marshaler{
+    cTDR          => composite.cTDR;
+    cLockChannel  => composite.cLockChannel;
+    cErrorHandler => composite.cErrorHandler;
+  };
+  composite.eThroughEntry => Marshaler.eClientEntry;
+};
+
+EOT
+
+    f.close
+  end
+
+  #===  through cell コードを生成
+  #
+  #
+  def gen_through_cell_code( file )
+
+    gen_plugin_decl_code( file )
+    file.print <<EOT
+import( <#{@rpc_channel_celltype_file_name}> );
+EOT
+
+    case @start_region.get_domain_root.get_domain_type.get_kind
+    when :kernel
+      tacp_str = "\"TACP_KERNEL"
+    when :user
+      tacp_str = "\"TACP(#{@start_region.get_domain_root.get_name})"
+    when :OutOfDomain
+      tacp_str = "\"TACP_SHARED"
+    end
+    # p "end_region=#{@end_region.get_name} kind=#{@end_region.get_domain_root.get_domain_type.get_kind}"
+    case @end_region.get_domain_root.get_domain_type.get_kind
+    when :kernel
+      tacp_str += "|TACP_KERNEL\""
+    when :user
+      tacp_str += "|TACP(#{@end_region.get_domain_root.get_name})\""
+    when :OutOfDomain
+      tacp_str += "|TACP_SHARED\""
+    end
+    nest_str = ""
+    file.print <<EOT
+#{nest_str}  //  MessageBuffer client=>server
+#{nest_str}  cell tMessageBuffer #{@clientChannelCell}Body0{
+#{nest_str}      maxMessageSize = 64;      /* This value must be same as MessageBufferCEP's buffer size */
+#{nest_str}      bufferSize     = 128;
+#{nest_str}      accessPattern1 = C_EXP( #{tacp_str} );
+#{nest_str}      accessPattern2 = C_EXP( #{tacp_str} );
+#{nest_str}      accessPattern3 = C_EXP( #{tacp_str} );
+#{nest_str}      accessPattern4 = C_EXP( #{tacp_str} );
+#{nest_str}  };
+EOT
+    file.print <<EOT
+
+#{nest_str}  //  MessageBuffer server=>client
+#{nest_str}  cell tMessageBuffer #{@clientChannelCell}Body1{
+#{nest_str}      maxMessageSize = 64;      /* This value must be same as MessageBufferCEP's buffer size */
+#{nest_str}      bufferSize     = 128;
+#{nest_str}      accessPattern1 = C_EXP( #{tacp_str} );
+#{nest_str}      accessPattern2 = C_EXP( #{tacp_str} );
+#{nest_str}      accessPattern3 = C_EXP( #{tacp_str} );
+#{nest_str}      accessPattern4 = C_EXP( #{tacp_str} );
+#{nest_str}  };
+EOT
+
+    ##### クライアント側のセルの生成 #####
+    nest = @start_region.gen_region_str_pre file
+    nest_str = "  " * nest
+
+    # セマフォの生成
+    if @b_noClientSemaphore == false then
+      file.print <<EOT
+#{nest_str}  //  Semaphore for Multi-task use ("specify noClientSemaphore" option to delete this)
+#{nest_str}  cell #{@semaphoreCelltype} #{@serverChannelCell}_Semaphore{
+#{nest_str}    initialCount = 1;
+#{nest_str}  };
+EOT
+    end
+
+    # クライアント側チャンネル (tMessageBufferCEP)の生成
+    # チャンネルは必ずリージョン下にあるので、 '::' でつなぐ (でなければ、ルートリージョンにないかチェックが必要）
+
+    file.print <<EOT
+#{nest_str}  //  Client Side Channel
+#{nest_str}  cell tMessageBufferCEP #{@clientChannelCell}_CEP{
+#{nest_str}      cMessageBuffer0 = #{@clientChannelCell}Body0.eMessageBuffer;
+#{nest_str}      cMessageBuffer1 = #{@clientChannelCell}Body1.eMessageBuffer;
+#{nest_str}  };
+
+#{nest_str}  //  Client Side TDR
+#{nest_str}  cell tTDR #{@clientChannelCell}_TDR{
+#{nest_str}    cChannel = #{@clientChannelCell}_CEP.eChannel;
+#{nest_str}  };
+
+#{nest_str}  //  Marshaler
+EOT
+
+    # セマフォの結合文
+    if @b_noClientSemaphore == false then
+      semaphore = "#{nest_str}    cLockChannel = #{@serverChannelCell}_Semaphore.eSemaphore;\n"
+    else
+      semaphore = ""
+    end
+
+    ### クライアント側チャンネル (マーシャラ+TDR)の生成 ###
+    cell = @next_cell
+    # アロケータの指定があるか？
+    if cell.get_allocator_list.length > 0 then
+
+      file.print nest_str
+      file.print "[allocator("
+
+      delim = ""
+      cell.get_allocator_list.each do |type, eport, subsc, func, buf, alloc|
+
+        alloc_str = alloc.to_s
+        subst = @substituteAllocator[alloc_str.to_sym]
+        if subst then
+          alloc_str = subst[2]+"."+subst[3]
+        end
+
+        file.print delim
+        delim = ",\n"        # 最終行には出さない
+
+        if subsc then        # 配列添数
+          subsc_str = '[#{subsc}]'
+        else
+          subsc_str = ""
+        end
+
+        eport = "eThroughEntry" #RPCの受け口名に変更
+        file.print nest_str
+        file.print  "#{eport}#{subsc_str}.#{func}.#{buf} = #{alloc_str}"
+      end
+
+      file.puts ")]"
+    end
+
+    if @clientErrorHandler then
+      clientErrorHandler_str = "#{nest_str}    cErrorHandler = #{@clientErrorHandler};\n"
+    else
+      clientErrorHandler_str = ""
+    end
+
+    file.print <<EOT
+#{nest_str}  cell tOpaqueMarshaler_#{@signature.get_global_name}_through #{@cell_name} {
+#{nest_str}    cTDR = #{@clientChannelCell}_TDR.eTDR;
+#{clientErrorHandler_str}#{semaphore}#{nest_str}  };
+EOT
+    ### END: クライアント側チャンネル (マーシャラ+TDR)の生成 ###
+    @start_region.gen_region_str_post file
+    file.print "\n\n"
+
+    ##### サーバー側のセルの生成 #####
+    nest = @end_region.gen_region_str_pre file
+    nest_str = "  " * nest
+
+    if @serverErrorHandler then
+      serverErrorHandler_str = "#{nest_str}    cErrorHandler = #{@serverErrorHandler};\n"
+    else
+      serverErrorHandler_str = ""
+    end
+
+    if @b_genOpener then
+      opener = "#{nest_str}    cOpener       = #{@serverChannelCell}.eOpener;\n"
+    else
+      opener = ""
+    end
+
+    # サーバー側チャンネル (tMessageBufferCEP)
+    if @PPAllocatorSize then
+      alloc_cell =<<EOT
+
+#{nest_str}  cell tPPAllocator #{@serverChannelCell}_PPAllocator {
+#{nest_str}    heapSize = #{@PPAllocatorSize};
+#{nest_str}  };
+EOT
+      alloc_call_port_join = "#{nest_str}    cPPAllocator = #{@serverChannelCell}_PPAllocator.ePPAllocator;\n"
+    else
+      alloc_cell = ""
+      alloc_call_port_join = ""
+    end
+
+    file.print <<EOT
+#{nest_str}  //  Server Side Channel
+#{nest_str}  cell tMessageBufferCEP #{@serverChannelCell}_CEP{
+#{nest_str}      cMessageBuffer0 = #{@clientChannelCell}Body1.eMessageBuffer;
+#{nest_str}      cMessageBuffer1 = #{@clientChannelCell}Body0.eMessageBuffer;
+#{nest_str}  };
+EOT
+
+    # サーバー側TDR
+    file.print <<EOT
+
+#{nest_str}  //  Server Side TDR
+#{nest_str}  cell tTDR #{@serverChannelCell}_TDR{
+#{nest_str}    cChannel = #{@serverChannelCell}_CEP.eChannel;
+#{nest_str}  };
+EOT
+
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
+
+    # サーバー側チャンネル (アンマーシャラ)
+    file.print <<EOT
+#{alloc_cell}
+#{nest_str}  //  Unmarshaler
+#{nest_str}  cell tOpaqueUnmarshaler_#{@signature.get_global_name} #{@serverChannelCell}_Unmarshaler {
+#{nest_str}    cTDR        = #{@serverChannelCell}_TDR.eTDR;
+#{nest_str}    cServerCall = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name}#{subscript};
+#{alloc_call_port_join}#{serverErrorHandler_str}#{nest_str}  };
+EOT
+
+    # サーバー側タスクメイン
+    file.print <<EOT
+
+#{nest_str}  //  Unmarshaler Task Main
+#{nest_str}  cell #{@taskMainCelltype} #{@serverChannelCell}_TaskMain {
+#{nest_str}    cMain         = #{@serverChannelCell}_Unmarshaler.eService;
+#{opener}#{nest_str}  };
+EOT
+
+    # サーバー側タスク
+    file.print <<EOT
+
+#{nest_str}  //  Unmarshaler Task
+#{nest_str}  cell #{@taskCelltype} #{@serverChannelCell}_Task {
+#{nest_str}    cTaskBody = #{@serverChannelCell}_TaskMain.eMain;
+#{nest_str}    priority  = #{@taskPriority};
+#{nest_str}    stackSize = #{@stackSize};
+#{nest_str}    attribute = C_EXP( "TA_ACT" );  /* mikan : marshaler task starts at beginning */
+#{nest_str}  };
+EOT
+    @end_region.gen_region_str_post file
+  end
+
+
+  #=== プラグイン引数 noClientSemaphore のチェック
+  def set_noClientSemaphore rhs
+    rhs = rhs.to_sym
+    if rhs == :true then
+      @b_noClientSemaphore = true
+    elsif rhs == :false then
+      @b_noClientSemaphore = false
+    else
+      cdl_error( "RPCPlugin: specify true or false for noClientSemaphore" )
+    end
+  end
+
+  #=== プラグイン引数 semaphoreCelltype のチェック
+  def set_semaphoreCelltype rhs
+    @semaphoreCelltype = rhs.to_sym
+    nsp = NamespacePath.analyze( @semaphoreCelltype.to_s )
+    obj = Namespace.find( nsp )
+    if ! obj.instance_of?( Celltype ) && ! obj.instance_of?( CompositeCelltype ) then
+      cdl_error( "RPCPlugin: semaphoreCelltype '#{rhs}' not celltype or not defined" )
+    end
+  end
+
+  #=== NamespacePath を得る
+  # 生成するセルの namespace path を生成する
+  def get_cell_namespace_path
+#    nsp = @region.get_namespace.get_namespace_path
+    nsp = @start_region.get_namespace_path
+    return nsp.append( @cell_name )
+  end
+
+end
+
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPSVCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPSVCPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPSVCPlugin.rb	(revision 429)
@@ -0,0 +1,861 @@
+# coding: utf-8
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#  $Id$
+#++
+
+# mikan through plugin: namespace が考慮されていない
+# これを利用する場合、以下のように toppers_jsp.cdl sChannel.cdl を指定する必要がある
+# tecsgen toppers_jsp.cdl sChannel.cdl your_description.cdl
+
+# 以下を仮定（制限事項）
+#  呼び元、呼び先のエンディアン、char, short, int_t, long_t, intptr_t のサイズが同じ
+#  有符号、無符号でサイズが同じ
+
+class SVCManage
+    #
+    #  @@id: TECSのプラグインで生成した拡張サービスコールに割り当てるid
+    #        実際の拡張サービスコールIDは，TFN_TECSGEN_ORIGINで下駄を
+    #        履かせた値となる
+    #        TFN_TECSGEN_ORIGINは，hrp3/include/extsvc_fncode.h で定義
+    #        される
+    #  @@func_ids: 拡張サービスコールの関数名と拡張サービスコールIDを
+    #  　　　対応づけるハッシュ
+    #
+    @@id = 0
+    @@func_ids = {}
+    def initialize()
+        # 
+      #  本クラスはインスタンスを持たない仮想的なクラスである
+        #
+        raise "class #{self.class.name} shall not have instances"
+    end
+    def self.get_func_id func_name
+        return @@func_ids[ func_name ]
+    end
+    def self.set_func_id func_name
+        @@func_ids[ func_name ] = self.assign_id
+        # puts @@func_ids[ func_name ]
+    end
+    def self.get_id
+        return @@id
+    end
+    def self.set_id id
+        @@id = id
+    end
+    def self.assign_id
+        assignedId = @@id
+        @@id += 1
+        return assignedId
+    end
+end
+
+#
+#  拡張サービスコールを用いたドメイン間通信の
+#  throughプラグイン
+#  HRPドメインプラグインによって挿入される
+#  前提条件: 呼出し先がカーネルオブジェクトかどうかの判定はHRPドメインプラグイン
+#  　　　　　で実施されるため，ここでは判定しないこととした
+#
+class HRPSVCPlugin < ThroughPlugin
+
+  NUM_SVC_ARG_MAX = 5              # HRP3 の拡張サービスコールで扱うことのできる引数の最大個数
+
+  @@generated_celltype ={}    # セルタイプの重複排除用
+  @@generated_cell = {}       # セルの重複排除用
+
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
+    super
+
+    # 受け口配列の場合、配列添数ごとに別のセルタイプとする
+    # セルタイプをシングルトン化したいため。
+    # さもないと、セルを識別する引数を渡す必要があり、NUM_SVC_ARG_MAX(5) つしか渡せない引数の一つを消費することになるため。
+    if @next_cell_port_subscript then
+      subscript = "__" + @next_cell_port_subscript.to_s
+    else
+      subscript = ""
+    end
+    @ct_name_body = "#{@ct_name}SVCBody_#{@next_cell.get_name}_#{@next_cell_port_name}#{subscript}".to_sym
+    @ct_name = "#{@ct_name}SVCCaller_#{@next_cell.get_name}_#{@next_cell_port_name}#{subscript}".to_sym
+    @cell_name_body = "#{@cell_name}SVCBody".to_sym
+    @cell_name = "#{@cell_name}SVCCaller".to_sym
+    # puts "%%%% "
+    # p @next_cell.get_name
+    # p @caller_cell.get_name
+    @b_printed_include_stdint = false
+    check_signature signature
+  end
+
+  #=== NamespacePath を得る
+  # 生成するセルの namespace path を生成する
+  def get_cell_namespace_path
+#    nsp = @region.get_namespace.get_namespace_path
+    nsp = @start_region.get_namespace_path
+    return nsp.append( @cell_name )
+  end
+
+  def gen_plugin_decl_code( file )
+
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
+    if @@generated_celltype[ @ct_name_body ] == nil then
+        @@generated_celltype[ @ct_name_body ] = [ self ]
+        file2 = CFile.open( "#{$gen}/#{@ct_name_body}.cdl", "w" )
+        file2.print <<EOT
+import_C( "t_stdlib.h" );
+
+/* HRPSVC0001 */
+[active,singleton]
+celltype #{@ct_name_body} {
+    call #{@signature.get_name} #{@call_port_name};
+    FACTORY {
+		write("$ct$_tecsgen.h", "#include \\"kernel_cfg.h\\"");
+    };
+};
+EOT
+        file2.close
+    else
+      @@generated_celltype[ @ct_name_body ] << self
+    end
+    file.print "import( \"#{$gen}/#{@ct_name_body}.cdl\" );\n"
+
+    # このセルタイプ（同じシグニチャ）は既に生成されているか？
+    if @@generated_celltype[ @ct_name ] == nil then
+        @@generated_celltype[ @ct_name ] = [ self ]
+        file2 = CFile.open( "#{$gen}/#{@ct_name}.cdl", "w" )
+        file2.print <<EOT
+/* HRPSVC0002 */
+celltype #{@ct_name} {
+    entry #{@signature.get_name} #{@entry_port_name};
+    FACTORY {
+		write("$ct$_tecsgen.h", "#include \\"extsvc_fncode.h\\"");
+    };
+};
+EOT
+        file2.close
+    else
+      @@generated_celltype[ @ct_name ] << self
+    end
+    file.print "import( \"#{$gen}/#{@ct_name}.cdl\" );\n"
+
+=begin
+    # TODO: send. receive 対応
+    send_receive = []
+    if @signature != nil then
+      @signature.each_param{ |fd,param|
+        dir =param.get_direction
+        case dir
+        when :SEND, :RECEIVE
+          send_receive << [ dir, fd, param ]
+        end
+      }
+    end
+=end
+
+=begin
+composite #{@ct_name} {
+    entry #{@signature.get_name} #{@entry_port_name};
+    call #{@signature.get_name} #{@call_port_name};
+
+    cell #{@ct_name}Client #{@cell_name}Client{
+    };
+
+    [active]
+    cell #{@ct_name}Server #{@cell_name}Server{
+        #{@call_port_name} => composite.#{@call_port_name};
+    };
+
+    composite.#{@entry_port_name} => #{@cell_name}.#{@entry_port_name};
+};
+=end
+
+  end
+
+  #===  through cell コードを生成
+  #
+  #
+  def gen_through_cell_code( file )
+
+    # gen_plugin_decl_code( file )  this is called from super.
+
+    # セルを探す
+    # path =["::",@next_cell.get_name]  # mikan namespace
+    # cell = Namespace.find( path )
+    # cell = Namespace.find( @next_cell.get_namespace_path )
+
+    ##### クライアント側のセルの生成 #####
+    # file.print "[domain(HRP, \"kernel\")]"
+    nest = @start_region.gen_region_str_pre file
+    nest_str = "  " * nest
+
+    # クライアント側チャンネルの生成
+    # 拡張サービスコール呼出し
+    file.print <<EOT
+/* HRPSVC0003 */
+#{nest_str}  //  Client Side Channel
+#{nest_str}  cell #{@ct_name} #{@cell_name}{
+#{nest_str}  };
+
+EOT
+
+    @start_region.gen_region_str_post file
+    file.print "\n\n"
+
+    ##### サーバー側のセルの生成 #####
+    # print "######  #{@cell_name_body} ... #{@ct_name_body} #{@@generated_cell[ @ct_name_body ].class}  #####\n"
+
+    if @@generated_cell[ @ct_name_body ] then
+      file.print "/* cell #{@ct_name_body} #{@@generated_cell[ @ct_name_body ]}: already generated. */\n"
+    else
+      @@generated_cell[ @ct_name_body ] = @cell_name_body
+      nest = @end_region.gen_region_str_pre file
+      nest_str = "  " * nest
+      if @next_cell_port_subscript then
+        subscript = '[' + @next_cell_port_subscript.to_s + ']'
+      else
+        subscript = ""
+      end
+
+      # サーバー側チャンネルの生成 
+      # 拡張サービスコール本体
+      file.print <<EOT
+
+/* HRPSVC0004 */
+#{nest_str}  //  Server Side Channel
+#{nest_str}  cell #{@ct_name_body} #{@cell_name_body}{
+#{nest_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name}#{subscript};
+#{nest_str}  };
+EOT
+
+      @end_region.gen_region_str_post file
+
+      file2 = AppFile.open( "#{$gen}/tecsgen.cfg" )
+      file2.print "\n/* Generated by HRPSVCPlugin */\n\n"
+      file2.print <<EOT
+/* HRPSVC0005 */
+#include "#{@ct_name_body}_factory.h"
+EOT
+      file2.close
+
+      # callee_cell のget_restricted_regions を呼び出しておく
+      # restrict が参照された印をつけるため
+      @callee_cell.get_restricted_regions( :dummy_entry_name, :dummy_func_name )
+    end
+  end
+
+  #===  受け口関数の本体(C言語)を生成する
+  #     通常であれば、ジェネレータは受け口関数のテンプレートを生成する
+  #     プラグインの場合、変更する必要のないセルタイプコードを生成する
+  #file::           FILE        出力先ファイル
+  #b_singleton::    bool        true if singleton
+  #ct_name::        Symbol
+  #global_ct_name:: string
+  #sig_name::       string
+  #ep_name::        string
+  #func_name::      string
+  #func_global_name:: string
+  #func_type::      class derived from Type
+  def gen_ep_func_body( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+        # puts "generate ep_func for #{ct_name}"
+
+        #
+        #  拡張サービスコール呼出し側の関数生成
+        #
+        #  完成形のイメージ
+        #  
+        # ER_UINT
+        # eThroughEntry_write(CELLIDX idx, const char* buffer, uint_t length)
+        # {
+        #   ER_UINT  retval;
+        #   tHRPSVCPlugin_<Sig>SVCCaller_<Cell>_<Entry>_CB    *p_cellcb;
+        #   if( VALID_IDX( idx ) ){
+        #       p_cellcb = tHRPSVCPlugin_<Sig>SVCBody_<Cell>_<Entry>_GET_CELLCB(idx);
+        #   }else{
+        #       /* エラー処理コードをここに記述 */
+        #   }
+        # 
+        #   retval = (ER_UINT)cal_svc( TFN_TECSGEN_ORIGIN + svcid, 
+        #                              (intptr_t)par1, (intptr_t)par2, 0, 0, 0 );
+        #
+        #   return retval;
+        # }
+
+        if ! func_type.get_type.kind_of?( VoidType ) then
+            file.print( "  #{func_type.get_type_str}  retval;\n" )
+        end
+
+        # p "celltype_name, sig_name, func_name, func_global_name"
+        # p "#{ct_name}, #{sig_name}, #{func_name}, #{func_global_name}"
+
+        delim = ""
+        if ! func_type.get_type.kind_of?( VoidType ) then
+            file.print( "  retval = (#{func_type.get_type_str})" )
+        else
+            file.print( "  " )
+        end
+
+        #file.print( "#{@call_port_name}_#{func_name}(" )
+        SVCManage.set_func_id( "#{@ct_name_body}_#{func_name}" )
+        svcid = SVCManage.get_func_id( "#{@ct_name_body}_#{func_name}" )
+        #file.print( "cal_svc( #{@ct_name_body}_#{func_name}" )
+        file.print( "cal_svc( TFN_TECSGEN_ORIGIN + #{svcid.to_s}" )
+
+        #    if ( ! b_singleton ) then
+        #      file.print( " tecs_this" )
+        #      delim = ","
+        #    end
+
+        i = 0
+        passed_param = {}
+        params.each{ |param|
+            delim = ","
+            file.printf( "#{delim} (intptr_t)#{param.get_name}" )
+            passed_param[i] = param.get_name
+            i += 1
+        }
+
+        while(i < NUM_SVC_ARG_MAX) do
+            delim = ","
+            file.printf( "#{delim} 0" )
+            passed_param[i] = "par#{i+1}"
+            i += 1
+        end
+
+        file.print( " );\n\n" )
+
+        if ! func_type.get_type.kind_of?( VoidType ) then
+            file.print( "  return retval;\n" )
+        end
+
+        #
+        #  拡張サービスコール本体側の関数生成
+        #
+        #  完成形のイメージ
+        #  
+        # ER_UINT
+        # eThroughEntry_write(CELLIDX idx, const char* buffer, uint_t length)
+        # {
+        #   ER_UINT  retval;
+        #   tHRPSVCPlugin_<Sig>SVCBody_<Cell>_<Entry>_CB    *p_cellcb;
+        #   if( VALID_IDX( idx ) ){
+        #       p_cellcb = tHRPSVCPlugin_<Sig>SVCBody_<Cell>_<Entry>_GET_CELLCB(idx);
+        #   }else{
+        #       /* エラー処理コードをここに記述 */
+        #   }
+        # 
+        #   retval = (ER_UINT)cal_svc( TFN_TECSGEN_ORIGIN + svcid, 
+        #                              (intptr_t)par1, (intptr_t)par2, 0, 0, 0 );
+        #
+        #   return retval;
+        # }
+            file2 = AppFile.open( "#{$gen}/#{@ct_name_body}.c" )
+            if @b_printed_include_stdint == false then
+              file2.print <<EOT
+#ifndef SIZE_MAX
+#define  SIZE_MAX   (~0UL)
+#endif
+
+EOT
+              @b_printed_include_stdint = true
+            end
+
+            if func_type.get_type.kind_of?( VoidType ) then
+                retval_assign = ""
+            else
+                retval_assign = "retval = (ER_UINT)"
+            end
+
+            file2.print <<EOT
+/* HRPSVC0006 */
+ER_UINT
+#{@ct_name_body}_#{func_name}(intptr_t #{passed_param[0]}, intptr_t #{passed_param[1]}, intptr_t #{passed_param[2]}, intptr_t #{passed_param[3]}, intptr_t #{passed_param[4]}, ID cdmid)
+{
+    ER_UINT retval = E_OK;
+
+EOT
+
+            # 
+            #  エラーチェック処理の生成
+            #
+
+            # 
+            #  呼出し元ドメインのチェック
+            #   * private method: gen_caller_check_code参照
+            #
+            generated_check_code = gen_caller_check_code(func_name)
+            check_code = generated_check_code["check_code"]
+            user_cannot_callable = generated_check_code["user_cannot_callable"]
+
+            # 
+            #  パラメータにポインタが存在する場合，呼出し元タスクに対する
+            #  アクセス権のチェック処理を出力する
+            #  ※ cdmidがカーネルドメイン(拡張サービスコール呼出し中のユーザ
+            #    ドメインを含む)であればprb_memの処理をスキップし，初段の
+            #    拡張サービスコールのみprb_memを呼出し元タスクに発行する
+            #
+            num = 0
+            params.each{ |param|
+                if param.get_declarator.get_ptr_level > 0 then
+                    align_check_str = "!ALIGN_TYPE(#{passed_param[num]}, #{param.get_type.get_referto.get_type_str}) || "
+                  
+                    if param.get_type.get_referto.kind_of?(IntType) then
+                        case param.get_type.get_referto.get_bit_size
+                        when -11, -1, 8   # char, char_t, int8_t (無符号含む)
+                        #
+                        #  charデータの場合，ALIGN_TYPEは必ずTRUE
+                        #  となるので，エラーチェックを省略
+                        #  char型の@bit_sizeは-11
+                        #  tecsgen/tecslib/core/types.rbを参照
+                        #
+                          align_check_str = ""
+                        end
+                    end
+                    if param.get_direction == :IN then
+                        #
+                        #  入力([in])のポインタパラメータは，呼出し元タスクに
+                        #  TPM_READ(読出し可能)のアクセス権が必要
+                        #
+                        # 二重ポインタが不可のため、size_is と string が同時に設定されることはない
+                        prb_func = "prb_mem"
+                        if param.get_size then
+                          size_str = param.get_size.to_s
+                        elsif param.get_string == -1 then
+                          size_str = "SIZE_MAX"
+                          prb_func = "prb_str"
+                        elsif param.get_string then
+                          size_str = param.get_string.to_s
+                          prb_func = "prb_str"
+                        else
+                          size_str = "1"
+                        end
+                        check_code.concat <<EOT
+        /* HRPSVC0007 */
+        if (#{align_check_str}#{prb_func}((void *)#{passed_param[num]}, sizeof(#{param.get_type.get_referto.get_type_str}) * (#{size_str}), TSK_SELF, TPM_READ) != E_OK) {
+            return E_MACV;
+        }
+EOT
+
+                    elsif param.get_direction == :OUT || param.get_direction == :INOUT then
+                        #
+                        #  出力([out])のポインタパラメータは，呼出し元タスクに
+                        #  TPM_WRITE(書込み可能)のアクセス権が必要
+                        #
+                        prb_func = "prb_mem"
+                        if param.get_size then
+                          size_str = param.get_size.to_s
+                        elsif param.get_string then          # 引数なしの string はない
+                          size_str = param.get_string.to_s
+                          # prb_func = "prb_str"             # out, inout の場合、必ず領域を確保する. prb_mem を用いる
+                        else
+                          size_str = "1"
+                        end
+                        check_code.concat <<EOT
+        /* HRPSVC0008 */
+        if (#{align_check_str}#{prb_func}((void *)#{passed_param[num]}, sizeof(#{param.get_type.get_referto.get_type_str}) * (#{size_str}), TSK_SELF, TPM_WRITE) != E_OK) {
+            return E_MACV;
+        }
+EOT
+
+                    end
+                end
+                num += 1
+            }
+
+            # 
+            #  呼出し元がカーネルドメインのみ許可されている場合，
+            #  すべてのユーザドメインからの呼出しに対し，E_OACVを返す
+            #
+            if user_cannot_callable
+                check_code = "\t\treturn E_OACV;"
+            end
+
+            if check_code != ""
+                # 
+                #  呼出し元がカーネルドメインの場合，アクセス権のチェック
+                #  処理をスキップさせる
+                #
+                file2.print <<eot
+    if (cdmid != TDOM_KERNEL) {
+#{check_code}
+    }
+eot
+            end
+
+            # 
+            #  拡張サービスコール本体(本来の受け口関数)を呼び出す
+            #
+            file2.print"    #{retval_assign}#{@call_port_name}_#{func_name}("
+
+            delim = ""
+            num = 0
+            params.each{ |param|
+                file2.print "#{delim}"
+                delim = ", "
+                file2.print "(#{param.get_type.get_type_str})"
+                file2.print passed_param[num]
+                file2.print param.get_type.get_type_str_post
+                num += 1
+            }
+
+            file2.print ");\n"
+
+            file2.print "\n    return retval;\n"
+            file2.print "}\n\n"
+
+            file2.close
+
+            # 
+            #  拡張サービスコールの登録
+            #
+            file2 = AppFile.open( "#{$gen}/tecsgen.cfg" )
+            file2.print "\n/* Generated by HRPSVCPlugin */\n\n"
+            file2.print <<EOT
+/* HRPSVC0009 */
+KERNEL_DOMAIN{
+    DEF_SVC( TFN_TECSGEN_ORIGIN + #{svcid.to_s}, { TA_NULL, #{@ct_name_body}_#{func_name}, SSZ_#{func_global_name} } );
+}
+EOT
+            file2.close
+
+            # 
+            #  拡張サービスコール登録に必要な情報をヘッダに出力
+            #   - 拡張サービスコール呼出し時のチェックで使用するスタックサイズを出力
+            #   - 拡張サービスコールとして登録する関数名のextern宣言を出力
+            #
+            file2 = AppFile.open( "#{$gen}/#{@ct_name_body}_factory.h" )
+            file2.print "\n/* Generated by HRPSVCPlugin */\n\n"
+            file2.print <<EOT
+/* HRPSVC0010 */
+#ifndef SSZ_#{func_global_name}
+#define SSZ_#{func_global_name}	DefaultExtsvcStackSize
+#endif /* SSZ_#{func_global_name} */
+
+/* HRPSVC0011 */
+extern ER_UINT #{@ct_name_body}_#{func_name}(intptr_t par1, intptr_t par2, intptr_t par3, intptr_t par4, intptr_t par5, ID cdmid);
+EOT
+            file2.close
+  end
+
+  def get_callee_cell
+      return @callee_cell
+  end
+
+  def get_caller_cell
+      return @caller_cell
+  end
+
+  def get_callee_ep_name
+      return @join.get_port_name
+  end
+
+  private
+  # 
+  #  拡張サービスコール本体における，呼出し元チェックのコードを
+  #  出力する
+  #  gen_ep_func_body からのみ呼び出される
+  #  引数: 対象の関数名
+  #  返り値: 下記のハッシュ
+  #    {"check_code"=>出力するエラーチェックコード, 
+  #     "user_cannot_callable"=>ユーザドメインが呼出し不可能かどうかのフラグ}
+  #
+  def gen_caller_check_code(func_name)  
+    dbgPrint "gen_caller_check_code(func_name): #{@callee_cell.get_name}\n"
+      # 
+      #  エラーチェック処理
+      #
+      check_code = ""
+      user_cannot_callable = false
+      all_domain_callable = false
+      caller_unrestricted = false
+
+      # 
+      #  呼出し元ドメインのチェック処理
+      #  callable_domains: 拡張サービスコールを呼出し可能なドメインのリスト
+      #    - 無所属のセルから結合されている場合，すべてのセルに対して，
+      #    　callable?をチェックし，呼出し可能なすべてのドメインを返す
+      #    - 無所属以外のセルから結合されている場合，そのセルに対して
+      #      callable?をチェックし，呼出し可能であれば，そのドメインを返す
+      #
+      callable_domains = []
+      @@generated_celltype[ @ct_name_body ].each { |svcplugin|
+          if svcplugin.get_caller_cell.get_region.get_domain_root.get_domain_type.get_option == "OutOfDomain"
+              # 無所属かつ active な場合も、restrict に従う
+              # if svcplugin.get_caller_cell.get_celltype.is_active?
+              #    #
+              #    #  無所属かつactiveなセルは、TECSから存在が認識されていないのを
+              #    #  含む任意のドメインから呼び出される可能性も存在する
+              #    #
+              #    caller_unrestricted = true
+              # else
+              #     # 
+              #     #  無所属から接続されている場合は，すべてのセルの
+              #     #  restrictをチェック
+              #     #
+              #     Cell.get_cell_list2.each { |cell|
+              #         if cell.callable?(svcplugin.get_callee_cell, svcplugin.get_callee_ep_name, func_name)
+              #             callable_domains << cell.get_region.get_domain_root
+              #         end
+              #     }
+              #     print "callable_domains: "
+              #     callable_domains.each{ |dm| print dm.get_name, " " }
+              #     print "\n"
+              # end
+
+              # restrict 指定がある場合には、それに従う。さもなければ、チェックしない
+              callable_domains = @callee_cell.get_restricted_regions( get_callee_ep_name, func_name )
+              if callable_domains == nil then
+                caller_unrestricted = true
+              end
+              #  print "restrict_list: "
+              #  delim = ""
+              #  callable_domains.each{ |domain|
+              #    print delim, domain
+              #    delim = ", "
+              #  }
+              #  print "\n"
+
+          elsif svcplugin.get_caller_cell.callable?( svcplugin.get_callee_cell, svcplugin.get_callee_ep_name, func_name )
+              # 
+              #  特定のドメインから接続されている場合は，呼出し元セルの
+              #  restrictをチェック
+              #
+              callable_domains << svcplugin.get_caller_cell.get_region.get_domain_root
+          else
+              # 
+              #  無所属から結合されておらず，特定の呼出し元ドメインにアクセス権
+              #  がない場合，callable_domainsは空となる
+              #
+              # pp "#{svcplugin.get_caller_cell.get_name} cannot call #{svcplugin.get_callee_cell.get_name}_#{svcplugin.get_callee_ep_name}_#{func_name}"
+          end
+      }
+
+      if caller_unrestricted
+          # pp "caller_unrestricted: #{@ct_name_body}"
+          return {"check_code"=>"", "user_cannot_callable"=>false}
+      end
+
+      # 
+      #  重複を削除
+      #
+      callable_domains.uniq!
+      # 
+      #  無所属に対するドメインチェックは実施しない
+      #  カーネルドメインに対するドメインチェックは実施しない
+      #
+      callable_domains = callable_domains.select { |domain|
+          ((domain.get_domain_type.get_option != "OutOfDomain") && \
+           (domain.get_domain_type.get_option != "kernel"))
+      }
+      # pp "callable_domains"
+      # pp callable_domains.map{|domain| domain.get_name }
+      # 
+      #  すべてのユーザドメインから呼出し可能な場合，ドメインチェックは
+      #  実施しない
+      #
+      all_domain_regions = DomainType.get_domain_regions[:HRP].select { |reg|
+          ((reg.get_domain_type.get_option != "OutOfDomain") && \
+           (reg.get_domain_type.get_option != "kernel"))
+
+      }
+      # pp "all domains"
+      # pp all_domain_regions.map {|reg| reg.get_name}
+      if all_domain_regions.all? {|reg| callable_domains.include?(reg)}
+          all_domain_callable = true
+      end
+
+      # 
+      #  呼出し元ドメインのチェック処理本体の生成
+      #
+      if callable_domains.length == 0
+        dbgPrint "callable_domain.length = 0\n"
+          # 
+          #  ユーザドメインから呼出し不可能な場合は
+          #  個別のエラーチェックはせず，問答無用でE_OACVを返す
+          #
+          user_cannot_callable = true
+      elsif callable_domains.length == 1
+        dbgPrint "callable_domain.length = 1\n"
+          # 
+          #  呼出し可能なユーザドメインが単一の場合は
+          #  cdmid != <domain名> の形式でチェックする
+          #
+          check_code += "\t/* HRPSVC0012.1 */\n"
+          check_code += "\tif (cdmid != #{callable_domains[0].get_name}) {\n"
+      elsif callable_domains.length > 1 && !all_domain_callable
+        dbgPrint "callable_domain.length > 1 && not all_domains \n"
+          # 
+          #  呼出し可能なユーザドメインが複数の場合は
+          #  TACP(cdmid) & (TACP(<domain名>) | ...) != 0U
+          #  の形式でチェックする
+          #
+          check_code += "\t/* HRPSVC0012.2 */\n"
+          check_code += "\tif((TACP(cdmid) & ("
+          check_code += (callable_domains.map { |domain| "TACP(#{domain.get_name})"}).join("|")
+          check_code += ")) != 0U) {\n"
+      else
+        dbgPrint "callable_all_domains\n"
+      end
+      if check_code != ""
+          # 
+          #  呼出し可能なユーザドメインのチェックがある場合は
+          #  エラーコードを返すためのコードを出力する
+          #
+          check_code += <<EOS
+            /* HRPSVC0013 */
+            return E_OACV;
+        }
+EOS
+      end
+
+      return {"check_code"=>check_code, "user_cannot_callable"=>user_cannot_callable}
+  end
+
+  #---------------------------------------------------------#
+  #=== シグニチャのチェック
+  def check_signature signature
+    signature.get_function_head_array.each{ |fh|
+      type = fh.get_return_type
+      check_return_type signature, fh, type
+      if fh.get_paramlist.get_items.length > NUM_SVC_ARG_MAX then
+        cdl_error( "HSV0005 $1.$2: # of parameter more than #{NUM_SVC_ARG_MAX}", signature.get_name, fh.get_name )
+      end
+      fh.get_paramlist.get_items.each{ |param|
+        check_param signature, fh, param
+      }
+    }
+  end
+  #=== 戻り値の型のチェック
+  # ER, ER_UINT は推奨される型
+  # 整数、ブール、void は可能、他は不可
+  def check_return_type signature, fh, type
+    ot = type.get_original_type
+    if( type.get_type_str == "ER" || type.get_type_str == "ER_UINT" ) then
+      # OK!
+    elsif ot.kind_of?( IntType ) || ot.kind_of?( VoidType ) || ot.kind_of?( BoolType ) then
+      cdl_warning( "HSW0001 $1.$2: $3 return type cannot get access violation error", signature.get_name, fh.get_name, type.get_type_str.downcase )
+      check_intptr "#{signature.get_name}.#{fh.get_name} return type", type
+    else
+      cdl_error( "HSV0001 $1.$2 return type $3 cannot be used", signature.get_name, fh.get_name, type.get_type_str.to_s+type.get_type_str_post.to_s )
+    end
+  end
+  #=== 引数の型のチェック
+  def check_param signature, fh, param
+    type = param.get_type
+    ot = type.get_original_type
+    dir = param.get_direction
+    case dir
+    when :IN
+      if ot.kind_of?( IntType ) || ot.kind_of?( BoolType ) then
+        # OK!
+        check_intptr "#{signature.get_name}.#{fh.get_name}.#{param.get_name}", type
+      elsif ot.kind_of? PtrType then
+        check_ptr signature, fh, param, dir
+      else
+        cdl_error( "HSV0002 $1.$2.$3 $4 param type cannot be used", signature.get_name, fh.get_name, param.get_name, type.get_type_str.to_s+type.get_type_str_post.to_s )
+      end
+    when :OUT, :INOUT
+      if ot.kind_of? PtrType then
+        check_ptr signature, fh, param, dir
+      else
+        # error
+      end
+    when :SEND, :RECEIVE
+      cdl_error( "HSV0008 $1.$2.$3 param direction '$4' cannot be used", signature.get_name, fh.get_name, param.get_name, param.get_direction.to_s.downcase )
+    end
+  end
+  def check_ptr signature, fh, param, dir
+    type = param.get_type.get_referto
+    ot = type.get_original_type
+    if ot.kind_of?( IntType ) || ot.kind_of?( BoolType ) || ot.kind_of?( FloatType ) then
+      # OK!
+      check_intptr "#{signature.get_name}.#{fh.get_name}.#{param.get_name}", type
+    elsif ot.kind_of? PtrType then
+      cdl_error( "HSV0003 $1.$2.$3 multi-pointer type cannot be used", signature.get_name, fh.get_name, param.get_name, type.get_type_str.to_s+type.get_type_str_post.to_s )
+    elsif  ot.kind_of? StructType then
+      check_struct signature, fh, param
+    else
+      cdl_error( "HSV0004 $1.$2.$3 $4 type cannot be used", signature.get_name, fh.get_name, param.get_name, type.get_type_str.to_s+type.get_type_str_post.to_s )
+    end
+    if ( dir == :OUT || dir == :INOUT) && param.get_string == -1 then
+      cdl_error( "HSV0009 $1.$2.$3 string argment is necessary for out/inout parameter", signature.get_name, fh.get_name, param.get_name )
+    end
+  end
+  def check_struct signature, fh, param
+    type = param.get_type.get_referto
+    ot = type.get_original_type
+    ot.get_members_decl.get_items.each{ |decl|
+      type = decl.get_type
+      ot = type.get_original_type
+      if ot.kind_of?( IntType ) || ot.kind_of?( BoolType ) || ot.kind_of?( FloatType ) then
+        # OK!
+        check_intptr "#{signature.get_name}.#{fh.get_name}.#{param.get_name}.#{decl.get_name} member", type
+      else
+        dbgPrint "struct member #{decl.get_name} #{type} #{decl.get_type} #{decl.get_type.get_original_type}\n"
+        if( decl.get_type.get_original_type.kind_of? ArrayType ) then
+          dbgPrint "member array type #{decl.get_type.get_original_type.get_type} #{decl.get_type.get_original_type.get_type.get_original_type}\n"
+          check_struct_member_array signature, fh, param, decl
+        else
+          cdl_error( "HSV0006 $1.$2.$3 $4 type cannot be used as struct member", signature.get_name, fh.get_name, param.get_name, type.get_type_str.to_s+type.get_type_str_post.to_s )
+        end
+      end
+    }
+  end
+  def check_struct_member_array signature, fh, param, member_decl
+    # p "check_struct_member_array: #{member_decl.get_type.get_type_str}"
+    type = member_decl.get_type.get_type
+    ot = type.get_original_type
+    if ot.kind_of?( IntType ) || ot.kind_of?( BoolType ) || ot.kind_of?( FloatType ) then
+      # OK!
+      check_intptr "#{signature.get_name}.#{fh.get_name}.#{param.get_name}.#{member_decl.get_name} member", type
+    else
+      cdl_error( "HSV0007 $1.$2.$3 $4 type cannot be used as struct member", signature.get_name, fh.get_name, param.get_name, type.get_type_str.to_s+type.get_type_str_post )
+    end
+  end
+  def check_intptr msg, type
+    dbgPrint "check_intptr IN\n"
+    t = type
+    while( t.kind_of? DefinedType )
+      dbgPrint "check_intptr #{msg} #{t.get_type_str} #{t.get_original_type.get_type_str}\n"
+      tstr = t.get_type_str
+      tstr.sub!( /const /, "" )
+      tstr.sub!( /volatile /, "" )
+      if tstr == "intptr_t" || tstr == "uintptr_t" then
+        cdl_info( "HSI0001 $1 type '$2' not checked by plugin", msg, type.get_type_str )
+      end
+      t = t.get_type
+    end
+  end
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPTaskPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPTaskPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/HRPTaskPlugin.rb	(revision 429)
@@ -0,0 +1,109 @@
+# coding: utf-8
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#  $Id$
+#++
+
+require_tecsgen_lib "HRPKernelObjectPlugin.rb"
+require_tecsgen_lib "HRPKernelObjectManager.rb"
+#== celltype プラグインの共通の親クラス
+class HRPTaskPlugin < HRPKernelObjectPlugin
+    ##
+    # oyama: add to avoid Ruby exception in code generation phase.
+    def new_cell cell
+      region = cell.get_region
+      dbgPrint "HRPTaskCelltypePlugin new_cell=#{cell.get_name} region=#{region.get_name}\n"
+      domainOption = cell.get_region.get_domain_root.get_domain_type.get_option
+      if domainOption == "OutOfDomain"
+        cdl_error( "HRP9999 HRP task '$1' must belong to a domain", cell.get_name )
+      end
+    end
+
+    # # ATT_MODを生成済みかどうか                   # 2017.8.27
+    # @@generate_memory_module = false
+
+    #
+    #  CRE_TSKの出力
+    #  file:: FILE:     出力先ファイル
+    #  cell :: Cell タスクセルインスタンス
+    #  val :: Hash {attr => string}:   カーネルオブジェクトの属性の解析結果
+    #  tab :: string: タブ
+    #
+    def print_cfg_cre(file, cell, val, tab)
+        val[:id] = val[:id].gsub( /(^|[^\$])\$id\$/, "\\1#{@celltype.get_name.to_s}_#{cell.get_name.to_s}" )
+        # $cbp$の代わり
+        cell_IDX = @celltype.get_name_array(cell)[7]
+        # CRE_TSKの生成
+        dbgPrint "assign task plugin\n"
+        domainOption = cell.get_region.get_domain_root.get_domain_type.get_option
+        # if cell.get_region.get_region_type == :DOMAIN
+        if domainOption != "OutOfDomain"
+            if val[:systemStackSize] == "0"
+                # 
+                #  システムスタックの定義を省略
+                #
+                file.print <<EOT
+CRE_TSK(#{val[:id]}, { #{val[:attribute]}, #{cell_IDX}, tTask_start, #{val[:priority]}, #{val[:stackSize]}, NULL });
+EOT
+            else
+                # 
+                #  システムスタックの定義を追加
+                #
+                file.print <<EOT
+CRE_TSK(#{val[:id]}, { #{val[:attribute]}, #{cell_IDX}, tTask_start, #{val[:priority]}, #{val[:stackSize]}, NULL, #{val[:systemStackSize]}, NULL });
+EOT
+            end
+        else
+            #
+            #  無所属のタスクは存在してはならないため，エラーとする
+            #
+            raise "task #{val[:id]} must belong to a domain."
+        end
+    end
+
+    #
+    #  SAC_TSKの出力
+    #  file:: FILE:     出力先ファイル
+    #  val :: Hash {attr => string}:   カーネルオブジェクトの属性の解析結果
+    #  acv :: Hash {accessPatternx => string}:   アクセス許可ベクタ
+    #
+    def print_cfg_sac(file, val, acv)
+       # pp "SAC_TSK"
+       # pp val
+       file.puts "SAC_TSK(#{val[:id]}, { #{acv[:accessPattern1]}, #{acv[:accessPattern2]}, #{acv[:accessPattern3]}, #{acv[:accessPattern4]} });"
+    end
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCellPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCellPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCellPlugin.rb	(revision 429)
@@ -0,0 +1,267 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2017 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+#== celltype プラグインの共通の親クラス
+class MrubyBridgeCellPlugin < CellPlugin
+
+  # プラグイン引数名 => Proc
+  MrubyBridgePluginArgProc = { 
+      "ignoreUnsigned" => Proc.new { |obj,rhs| obj.set_ignoreUnsigned rhs },
+      "exclude_port" => Proc.new { |obj,rhs| obj.set_exclude_port rhs },
+      "exclude_port_func" => Proc.new { |obj,rhs| obj.set_exclude_port_func rhs },
+      "auto_exclude" => Proc.new { |obj,rhs| obj.set_auto_exclude rhs },
+  }
+  @@b_gen_post_code_by_dependent = false  # true if gen_post_code is called by MrubyBridgeCelltypePlugin
+  @@cell_list = {}      # gen_cdl_file'ed list to avoid duplicate generation
+  @@signature_list = {}
+
+  require_tecsgen_lib( "MrubyBridgeSignaturePlugin.rb" )
+
+  #@exclude_port::[ String(port_name) ] : 
+  #@exclude_port_func::{ [ String(port_name) ] => [ String(func_name) ] } : 
+  #@port_list::{ String(port_name) => String(include/exclude=func_name) }  : all included port and opt_string
+
+  #=== CellPlugin# initialize
+  #cell::     Cell        セル（インスタンス）
+  # このメソッドは、セルの構文解析が終わったところで呼び出される
+  # この段階では意味解析が終わっていない
+  def initialize( cell, option )
+    dbgPrint "  #{self.class.name}: initialzie=#{cell.get_name} option=#{option}\n"
+    super
+    @cell = cell
+
+    # option
+    @b_ignoreUnsigned = false
+    @exclude_port = []
+    @exclude_port_func = {}
+    @b_auto_exclude = true     # auto_exclude = true by default 
+    MrubyBridgeSignaturePlugin.set_gen_post_code_by_dependent
+
+    @plugin_arg_str = CDLString.remove_dquote option
+    # @plugin_arg_str = option.gsub( /\A"(.*)/, '\1' )    # 前後の "" を取り除く
+    # @plugin_arg_str.sub!( /(.*)"\z/, '\1' )
+    @plugin_arg_list = {}
+    dbgPrint "#{self.class.name}: initialzie: #{cell.get_name}\n"
+    @plugin_arg_check_proc_tab = MrubyBridgePluginArgProc
+    parse_plugin_arg
+
+    @port_list = {}         # set @port_list before return
+    ct = @cell.get_celltype
+    return if ct == nil     # error case
+
+    port_list = ct.get_port_list
+    if @exclude_port.length > 0 then
+      # この実装では、存在しない port を指定されてもチェックできない
+      # print "MRBBridgeCellPlugin: exclude list\n"
+      port_list.each{ |port|
+        if ! @exclude_port.include?( port.get_name.to_s ) then
+          # print "MRBBridgeCellPlugin: #{port.get_name} included\n"
+          @port_list[ port ] = ""
+        else
+          # print "MRBBridgeCellPlugin: #{port.get_name} excluded\n"
+        end
+      }
+    else
+      port_list.each{ |port|
+        @port_list[ port ] = ""
+      }
+    end
+
+    if @exclude_port_func.length > 0 then
+      @port_list.each{ |port, opt_str|
+        delim = ""
+        if @exclude_port_func.include?( port.get_name.to_s ) then
+          @exclude_port_func[ port.get_name.to_s ].each{ |func_name|
+            opt_str += delim + "exclude=" + func_name
+            delim = ","
+          }
+        end
+        @port_list[ port ] = opt_str
+      }
+    end
+  end
+
+  def gen_cdl_file file
+    dbgPrint "#{self.class.name}: gen_cdl_file: #{@cell.get_name}\n"
+
+    file.print <<EOT
+/* MrubyBridgeCellPlugin: generate for cell=#{@cell.get_name} */
+EOT
+
+    if @@cell_list[ @cell ] then
+      file.print <<EOT
+
+/*
+ * generate for #{@cell.get_name} duplicate and ignored.
+ * This might comes from generate for celltype.
+ */
+EOT
+      cdl_info( "MrubyBridgeCellPlugin: generate duplicate for cell '$1'", @cell.get_name )
+      return
+    end
+    @@cell_list[ @cell ] = @cell
+                
+    @port_list.each{ |port, opt_str|
+      next if port.get_signature == nil
+
+      case port.get_signature.get_context
+      when "task", "any"
+      else
+        next
+      end
+
+      if port.get_port_type == :ENTRY then
+        print "  MrubyBridgeCellPlugin: [cell.port] #{@cell.get_name}.#{port.get_name} => [mruby instance] TECS::T#{port.get_signature.get_name}.new( '#{@cell.get_name}#{port.get_name}Bridge' ) \n"
+        if @@signature_list[ port.get_signature ] == nil then
+          opt_str = "ignoreUnsigned=#{@b_ignoreUnsigned}, auto_exclude=#{@b_auto_exclude}, " + opt_str
+          # p "opt_str=#{opt_str}"
+
+          file.print <<EOT
+
+/* cell.port=#{@cell.get_name}.#{port.get_name} */
+generate( MrubyBridgePlugin, #{port.get_signature.get_namespace_path}, "#{opt_str}" );
+EOT
+          @@signature_list[ port.get_signature ] = true
+        end
+
+        # mikan option
+        nest = @cell.get_region.gen_region_str_pre file
+        nest_str = "  " * nest
+
+        file.print <<EOT
+#{nest_str}/* BridgeCell */
+#{nest_str}cell nMruby::t#{port.get_signature.get_name} #{@cell.get_name}#{port.get_name}Bridge {
+#{nest_str}    cTECS = #{@cell.get_namespace_path}.#{port.get_name};
+#{nest_str}};
+EOT
+        @cell.get_region.gen_region_str_post file
+      end
+    }
+  end
+
+  #=== 後ろの CDL コードを生成
+  #プラグインの後ろの CDL コードを生成
+  #file:: File: 
+  def self.gen_post_code( file )
+    dbgPrint "#{self.name}: gen_post_code\n"
+    if ! @@b_gen_post_code_by_dependent then
+      gen_post_code_body file
+    end
+  end
+
+  def self.set_gen_post_code_by_dependent # by MrubyBridgeCelltypePlugin
+    dbgPrint "#{self.name}: set_gen_post_code_by_dependent\n"
+    @@b_gen_post_code_by_dependent = true
+    MrubyBridgeSignaturePlugin.set_gen_post_code_by_dependent
+  end
+
+  def self.gen_post_code_body file
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
+    # file.print "/* '#{self.class.name}' post code */\n"
+    dbgPrint "#{self.name}: gen_post_code_body\n"
+    MrubyBridgeSignaturePlugin.gen_post_code_body file
+  end
+
+  #=== プラグイン引数 ignoreUnsigned
+  def set_ignoreUnsigned rhs
+    if rhs == "true" || rhs == nil then
+      @b_ignoreUnsigned = true
+    end
+  end
+
+  #=== プラグイン引数 exclude_port
+  def set_exclude_port rhs
+    ports = rhs.split ','
+    ct = @cell.get_celltype
+    return if ct == nil    # error case
+    ports.each{ |rhs_port|
+      obj = ct.find( rhs_port.to_sym )
+      if( ( ! obj.instance_of? Port ) || obj.get_port_type != :ENTRY ) then
+        cdl_error( "MRB9999 exclude_port '$1' not found or not entry in celltype '$2'", rhs_port, ct.get_name )
+      else
+        # print "MRBBridgeCellPlugin: exclude #{rhs_port}\n"
+        @exclude_port << rhs_port
+      end
+    }
+  end
+
+  #=== プラグイン引数 exclude_port_func
+  def set_exclude_port_func rhs
+    port_funcs = rhs.split ','
+    ct = @cell.get_celltype
+    return if ct == nil    # error case
+    port_funcs.each{ |rhs_port_func|
+      port_func = rhs_port_func.split '.'
+      if port_func.length != 2 then
+        cdl_error( "MRB9999 exclude_port_func: '$1' not in 'port.func' form", rhs_port_func )
+      end
+      obj = ct.find( port_func[0].to_sym )
+      if( ( ! obj.instance_of? Port ) || obj.get_port_type != :ENTRY ) then
+        cdl_error( "MRB9999 exclude_port_func: port '$1' not found in celltype '$2'", rhs_port, ct.get_name )
+      else
+        signature = obj.get_signature
+        next if signature == nil     # error case
+        if signature.get_function_head port_func[1].to_sym
+          # print "MRBBridgeCellPlugin: #{port_func[0]}.#{port_func[1]} exclude\n"
+          if @exclude_port_func[ port_func[0] ] then
+            @exclude_port_func[ port_func[0] ] <<  port_func[1]
+          else
+            @exclude_port_func[ port_func[0] ] = [ port_func[1] ]
+          end
+        else
+          cdl_error( "MRB9999 exclude_port_func: func '$1' not found in port '$2' celltype $3",
+                     port_func[1], port_func[0], ct.get_name )
+        end
+      end
+    }
+  end
+  #=== プラグイン引数 auto_exclude
+  def set_auto_exclude rhs
+    # print "MrubyBridgeCellPlugin: auto_exclude=#{rhs}\n"
+    if rhs == "false" then
+      @b_auto_exclude = false
+    elsif rhs == "true" then
+      @b_auto_exclude = true     # auto_exclude = true by default 
+    else
+      cdl_warning( "MRB9999 auto_exclude: unknown rhs value ignored. specify true or false" )
+    end
+  end
+
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCelltypePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCelltypePlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCelltypePlugin.rb	(revision 429)
@@ -0,0 +1,294 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2017 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+require_tecsgen_lib 'tecslib/plugin/lib/MrubyBridgeCelltypePluginModule.rb'
+
+#== MrubyBridgeCompositePlugin
+class MrubyBridgeCelltypePlugin < CompositePlugin
+  dbgPrint "MrubyBridgeCelltypePlugin loaded\n"
+  include MrubyBridgeCelltypePluginModule
+
+  def self.gen_post_code( file )
+    MrubyBridgeCelltypePluginModule.gen_post_code file
+  end
+end
+
+
+#
+##== celltype プラグインの共通の親クラス
+#class MrubyBridgeCelltypePlugin < CelltypePlugin
+#
+#  # プラグイン引数名 => Proc
+#  MrubyBridgePluginArgProc = { 
+#      "ignoreUnsigned" => Proc.new { |obj,rhs| obj.set_ignoreUnsigned rhs },
+#      "include_inner_cell" => Proc.new { |obj,rhs| obj.set_include_inner_cell rhs },
+#      "exclude_cell" => Proc.new { |obj,rhs| obj.set_exclude_cell rhs },
+#      "exclude_port" => Proc.new { |obj,rhs| obj.set_exclude_port rhs },
+#      "exclude_port_func" => Proc.new { |obj,rhs| obj.set_exclude_port_func rhs },
+#      "auto_exclude" => Proc.new { |obj,rhs| obj.set_auto_exclude rhs },
+#  }
+#
+#  require_tecsgen_lib( "MrubyBridgeCellPlugin.rb" )
+#  @@plugin_list = []
+#  @@count = 1
+#
+#  #celltype::     Celltype        セルタイプ（インスタンス）
+#  def initialize( celltype, option )
+#    dbgPrint "#{self.class.name}: initialzie: #{celltype.get_name}\n"
+#
+#    super
+#    @celltype = celltype
+#    @cell_list = []
+#    @include_inner_cell = false
+#    @exclude_cells = []
+#    @exclude_port = []
+#    @exclude_port_func = {}
+#    @b_ignoreUnsigned = false
+#    @b_auto_exclude = true     # auto_exclude = true by default 
+#    @@plugin_list << self
+#
+#    @plugin_arg_check_proc_tab = MrubyBridgePluginArgProc
+#    @plugin_arg_str = CDLString.remove_dquote option
+#    parse_plugin_arg
+#
+#    MrubyBridgeCellPlugin.set_gen_post_code_by_dependent
+#  end
+#
+#  #=== 新しいセル
+#  #cell::        Cell            セル
+#  #
+#  # celltype プラグインを指定されたセルタイプのセルが生成された
+#  # セルタイププラグインに対する新しいセルの報告
+#  # generate 文により呼び出された場合、それまでに定義された cell については、initialize のタイミングで呼び出される
+#  def new_cell( cell )
+#    dbgPrint "MrubyBridgeCelltypePlugin: new_cell: #{cell.get_name}\n"
+#
+#    return if @cell_list.include? cell   # この行は、本来不要のはず
+#    if TECSGEN.post_coded?               # post_code 以降のセルは対象から外す
+#      cdl_info( "I9999 MrubyBridgeCelltypePlugin: $1 is excluded because cell generated after post_coded", cell.get_name )
+#      return
+#    end
+#
+#    # include_inner_cell option
+#    if cell.is_cloned? && @include_inner_cell == false then
+#    #   p "#{cell.get_name} excluded"
+#      cdl_info( "I9999 MrubyBridgeCelltypePlugin: inner cell $1 is excluded", cell.get_name )
+#      return
+#    # else
+#    #   p "#{cell.get_name} included"
+#    end
+#
+#    # exclude_cell option
+#    if @exclude_cells.include?( cell.get_name ) then
+#      return
+#    end
+#
+#    opt_str = "ignoreUnsigned=#{@b_ignoreUnsigned}, auto_exclude=#{@b_auto_exclude}"
+#    @exclude_port.each{ |port|
+#      opt_str += ",exclude_port=#{port}"
+#    }
+#    @exclude_port_func.each{ |port, funcs|
+#      funcs.each{ |func|
+#        opt_str += ",exclude_port_func=#{port}.#{func}"
+#      }
+#    }
+#
+#    # p "MrubyBridgeCelltypePlugin: opt_str=#{opt_str}"
+#
+#    # mikan option, region
+#    fn2 = "#{$gen}/tmp_MrubyBridgeCelltypePlugin_#{@celltype.get_name}_#{@@count}.cdl"
+#    f2 = File.open( fn2, "w" )
+#    f2.print <<EOT
+#/* MrubyBridgeCelltypePlugin: celltype=#{@celltype.get_name} */
+#generate( MrubyBridgeCellPlugin, #{cell.get_namespace_path}, "#{opt_str}" );
+#EOT
+#    f2.close
+#    Import.new "#{fn2}"
+#    @@count += 1
+#  end
+#
+#### 意味解析段階で呼び出されるメソッド ###
+#  #===  CDL ファイルの生成
+#  #      typedef, signature, celltype, cell のコードを生成
+#  #      重複して生成してはならない
+#  #      すでに生成されている場合は出力しないこと。
+#  #      もしくは同名の import により、重複を避けること。
+#  #file::        FILE       生成するファイル
+#  def gen_cdl_file file
+##   この段階で呼びだすと generate 文が呼び出される前のセルのみの出力となる
+#    
+##    dbgPrint "MrubyBridgeCelltypePlugin: gen_cdl_file: #{@celltype.get_name}\n"
+##    file.print <<EOT
+##/* MrubyBridgeCelltypePlugin: celltype=#{@celltype.get_name}
+## *
+## *    cell's generate before celltype's generate
+## */
+##
+##EOT
+##    @celltype.get_cell_list.each { |cell|
+##      @cell_list << cell
+##      # mikan option, region
+##      dbgPrint "MrubyBridgeCelltypePlugin: cell=#{cell.get_name}\n"
+##      file.print <<EOT
+##generate( MrubyBridgeCellPlugin, #{cell.get_namespace_path}, "" );
+##EOT
+##    }
+#
+#  end
+#
+#  #=== tCelltype_factory.h に挿入するコードを生成する
+#  # file 以外の他のファイルにファクトリコードを生成してもよい
+#  # セルタイププラグインが指定されたセルタイプのみ呼び出される
+#  def gen_factory file
+#  end
+#
+#  def get_celltype
+#    @celltype
+#  end
+#
+#  #=== 後ろの CDL コードを生成
+#  #プラグインの後ろの CDL コードを生成
+#  #file:: File: 
+#  def self.gen_post_code( file )
+#    dbgPrint "#{self.name}: gen_post_code_body\n"
+#    print "#{self.name}: gen_post_code_body\n"
+##    この段階で生成すると、同じポストコードで出力される mruby の初期化コードに反映されない
+#    
+##    # MrubyBridgeCelltypePlugin の生成する generate 文は、
+##    fn2 = "#{$gen}/tmp_MrubyBridgeCelltypePlugin_post.cdl"
+##    f2 = File.open( fn2, "w" )
+##    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
+##    dbgPrint "MrubyBridgeCelltypePlugin: gen_post_code\n"
+##    f2.print "/* '#{self.name}' post code */\n"
+##    @@plugin_list.each{ |plugin|
+##      plugin.get_celltype.get_cell_list.each{ |cell|
+##        # mikan option, region
+##        f2.print <<EOT
+##generate( MrubyBridgeCellPlugin, #{cell.get_namespace_path}, "" );
+##EOT
+##      }
+##    }
+##    f2.close
+##    p Import
+##    Import.new "#{fn2}"
+#
+#    MrubyBridgeCellPlugin.gen_post_code_body file
+#  end
+#
+#  #=== プラグイン引数 
+#
+#  #=== プラグイン引数 ignoreUnsigned
+#  def set_ignoreUnsigned rhs
+#    if rhs == "true" || rhs == nil then
+#      @b_ignoreUnsigned = true
+#    end
+#  end
+#
+#  def set_include_inner_cell rhs
+#    if rhs == "true" || rhs == nil then
+#      @include_inner_cell = true
+#    end
+#  end
+#
+#  def set_exclude_cell rhs
+#    cells = rhs.split ','
+#    cells.each{ |rhs_cell|
+#      rhs_cell.gsub!( /\s/, "" )
+#      @exclude_cells << rhs_cell.to_sym
+#    }
+#  end
+#  def set_exclude_port rhs
+#    ports = rhs.split ','
+#    ct = @cell.get_celltype
+#    return if ct == nil    # error case
+#    ports.each{ |rhs_port|
+#      obj = ct.find( rhs_port.to_sym )
+#      if( ( ! obj.instance_of? Port ) || obj.get_port_type != :ENTRY ) then
+#        cdl_error( "MRB9999 exclude_port '$1' not found or not entry in celltype '$2'", rhs_port, ct.get_name )
+#      else
+#        # print "MRBBridgeCellPlugin: exclude #{rhs_port}\n"
+#        @exclude_port << rhs_port
+#      end
+#    }
+#  end
+#
+#  #=== プラグイン引数 exclude_port_func
+#  def set_exclude_port_func rhs
+#    port_funcs = rhs.split ','
+#    ct = @celltype
+#    return if ct == nil    # error case
+#    port_funcs.each{ |rhs_port_func|
+#      port_func = rhs_port_func.split( '.' )
+#      if port_func.length != 2 then
+#        cdl_error( "MRB9999 exclude_port_func: '$1' not in 'port.func' form", rhs_port_func )
+#      end
+#      obj = ct.find( port_func[0].to_sym )
+#      if( ( ! obj.instance_of? Port ) || obj.get_port_type != :ENTRY ) then
+#        cdl_error( "MRB9999 exclude_port_func: port '$1' not found in celltype '$2'", rhs_port_func, ct.get_name )
+#      else
+#        signature = obj.get_signature
+#        next if signature == nil     # error case
+#        if signature.get_function_head port_func[1].to_sym
+#          # print "MRBBridgeCellPlugin: #{port_func[0]}.#{port_func[1]} exclude\n"
+#          if @exclude_port_func[ port_func[0] ] then
+#            @exclude_port_func[ port_func[0] ] <<  port_func[1]
+#          else
+#            @exclude_port_func[ port_func[0] ] = [ port_func[1] ]
+#          end
+#        else
+#          cdl_error( "MRB9999 include_port_func: func '$1' not found in port '$2' celltype $3",
+#                     port_func[1], port_func[0], ct.get_name )
+#        end
+#      end
+#    }
+#  end
+#
+#  #=== プラグイン引数 auto_exclude
+#  def set_auto_exclude rhs
+#    # print "MrubyBridgeCellPlugin: auto_exclude=#{rhs}\n"
+#    if rhs == "false" then
+#      @b_auto_exclude = false
+#    elsif rhs == "true" then
+#      @b_auto_exclude = true     # auto_exclude = true by default 
+#    else
+#      cdl_warning( "MRB9999 auto_exclude: unknown rhs value ignored. specify true or false" )
+#    end
+#  end
+#end
+#
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCompositePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCompositePlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeCompositePlugin.rb	(revision 429)
@@ -0,0 +1,51 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2017 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+require_tecsgen_lib 'tecslib/plugin/lib/MrubyBridgeCelltypePluginModule.rb'
+
+#== MrubyBridgeCompositePlugin
+class MrubyBridgeCompositePlugin < CompositePlugin
+  dbgPrint "MrubyBridgeCompositePlugin loaded\n"
+  include MrubyBridgeCelltypePluginModule
+
+  def self.gen_post_code( file )
+    MrubyBridgeCelltypePluginModule.gen_post_code file
+  end
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgePlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgePlugin.rb	(revision 429)
@@ -3,5 +3,5 @@
 #  mruby => TECS bridge
 #  
-#   Copyright (C) 2008-2015 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -37,1157 +37,32 @@
 #
 
-# Todo:
-# 生成するもの
-#  gen_cdl_file
-#    ブリッジ初期化セルタイプ (シグニチャごと)
-#       @@init_celltypes に記録
-#    ブリッジセルタイプ (シグニチャごと)
-#       @@celltypes に記録
-#    構造体セルタイプ
-#       @@struct_list に記録
-#  new_cell
-#    TECS 初期化セル(プロトタイプ宣言)
-#       @@VM_init_cells に記録
-#       @@VM_struct_list に記録
-#       @@VM_ptr_list に記録
-#  gen_post_code
-#    構造体初期化セル
-#    ポインタ初期化セル
-#    TECS 初期化セル
-#
-#   ep_func の作成
-#     signature, ポインタ、構造体 … 初期化受け口＝mruby VM への登録
-#     ポインタ
-#   preamble の作成
-#     ポインタ、構造体 … アクセス用コードの生成
-#     signature … ブリッジ関数のプロトタイプ宣言
-#   postamble の作成
-#     signature … ブリッジ関数の定義
-
-class MrubyBridgePlugin < SignaturePlugin
-
-  # プラグイン引数名 => Proc
-  MrubyBridgePluginArgProc = { 
-      "ignoreUnsigned" => Proc.new { |obj,rhs| obj.set_ignoreUnsigned rhs },
-      "include" => Proc.new { |obj,rhs| obj.set_include rhs },
-      "exclude" => Proc.new { |obj,rhs| obj.set_exclude rhs },
-  }
-
-  @@celltypes = { }             # {celltype_name => [ BridgePlugin のインスタンスの配列 }
-  @@init_celltypes = { }        # {celltype_name => [ BridgePlugin のインスタンスの配列 }
-  @@struct_list = { }           # {struct_name=>StructType}
-  @@ptr_list = { }              # {ptr_celltype_name=> @@TYPE_MAP の対応するもの}
-  @@VM_list = { }               # VM_name => true
-  @@VM_celltypes = {  }             # VM_name => { @celltype_name => セルの配列 }
-  @@VM_struct_list = { }           # {name=>StructType}
-  @@VM_ptr_list = { }              # { VM_name => {name=> @@TYPE_MAP の対応するもの} }
-  @@TYPE_MAP = {           # type_str   class             GET_SET
-    :char_t            => [:char_t,    "Char",     :Char,  :INT   ],
-    :uchar_t           => [:uchar_t,   "UChar",    :Char,  :INT   ],
-    :schar_t           => [:schar_t,   "SChar",    :Char,  :INT   ],
-
-    :bool_t            => [:bool_t,    "Bool",     :Bool,  :BOOL  ],
-    :int8_t            => [:int8_t,    "Int8",     :Int,   :INT   ],
-    :int16_t           => [:int16_t,   "Int16",    :Int,   :INT   ],
-    :int32_t           => [:int32_t,   "Int32",    :Int,   :INT   ],
-    :int64_t           => [:int64_t,   "Int64",    :Int,   :INT   ],
-    :uint8_t           => [:uint8_t,   "UInt8",    :Int,   :INT   ],
-    :uint16_t          => [:uint16_t,  "UInt16",   :Int,   :INT   ],
-    :uint32_t          => [:uint32_t,  "UInt32",   :Int,   :INT   ],
-    :uint64_t          => [:uint64_t,  "UInt64",   :Int,   :INT   ],
-
-    :int               => [:int,       "Int",      :Int,  :INT   ], 
-    :char              => [:char,      "Char",     :Char, :INT   ],    # char は char_t として扱う
-    :short             => [:short,     "Short",    :Int,  :INT   ],
-    :long              => [:long,      "Long",     :Int,  :INT   ],
-
-    :"unsigned char"   => [:uchar_t,   "UChar",         :Char, :INT   ],
-    :"unsigned int"    => [:"unsigned int",   "UInt",   :Int,  :INT   ],
-    :"unsigned short"  => [:"unsigned short", "UShort", :Int,  :INT   ],
-    :"unsigned long"   => [:"unsigned long",  "ULong",  :Int,  :INT   ],
-    :"signed char"     => [:schar_t,   "SChar",    :Char,  :INT   ],
-    :"signed int"      => [:int,       "Int",      :Int,   :INT   ],
-    :"signed short"    => [:short,     "Short",    :Int,   :INT   ],
-    :"signed long"     => [:long,      "Long",     :Int,   :INT   ],
-
-    :float32_t         => [:float32_t, "Float32",  :Float, :FLOAT ],
-    :double64_t        => [:double64_t,"Double64", :Float, :FLOAT ],
-
-    :float             => [:float,     "Float32",  :Float, :FLOAT ],
-    :double            => [:double,    "Double64", :Float, :FLOAT ]
-  }
-
-  # included  or excluded functions
-
-  ### ロードされた時点で実行される ###
-
-  # -I に $(TECSPATH)/mruby を追加
-  # TECSGEN::Makefile.add_obj "$(MRUBY_MAIN_OBJ)"
-  TECSGEN::Makefile.add_ldflag "-lmruby -L$(MRUBYPATH)/lib -lm"
-  TECSGEN::Makefile.add_search_path "$(MRUBYPATH)/include"
-  TECSGEN::Makefile.add_var "MRUBYPATH",      "..",  "CHANGE this to suitable path"
-  # TECSGEN::Makefile.add_var "MRUBY_MAIN_OBJ", "$(_TECS_OBJ_DIR)tecs_mruby.o", "CHANGE this if your have your main"
-
-
-  #=== プラグインインスタンスの初期化
-  # 戻り値、引数の型が使用可能なものかチェックする
-  #
-  def initialize( signature, option )
-    super
-
-    if ! $no_banner
-      STDERR << "MrubyBridgePlugin: version 1.2.0 (Suitable for mruby ver 1.2.0. Has backward compatibility with ver 1.1.0)\n"
-    end
-
-    @b_ignoreUnsigned = false
-    @includes = []
-    @excludes = []
-    @struct_list = { }
-    @ptr_list = { }
-
-    @plugin_arg_check_proc_tab = MrubyBridgePluginArgProc
-    parse_plugin_arg
-
-    @celltype_name = :"t#{@signature.get_global_name}"
-    @init_celltype_name = :"#{@celltype_name}_Initializer"
-        # this variable is sometimes not used. rhs coded directry.
-    @class_name = :"T#{@signature.get_global_name}"
-
-    @func_head_array = []
-    if @includes.length > 0 && @excludes.length > 0 then
-      cdl_error( "MRB1011 both include && exclude are specified" )
-    end
-
-    if signature.get_function_head_array == nil then
-      return   # 以前に文法エラー発生
-    end
-
-    signature.get_function_head_array.each{ |func_head|
-      if @includes.length > 0 then
-        if @includes.index func_head.get_name then
-          dbgPrint "MrubyBridgePlugin: #{func_head.get_name} INCLUDED\n"
-          @func_head_array << func_head
-        else
-          dbgPrint "MrubyBridgePlugin: #{func_head.get_name} NOT included\n"
-        end
-      elsif @excludes.length > 0 then
-        if @excludes.index( func_head.get_name ) == nil then
-          dbgPrint "MrubyBridgePlugin: #{func_head.get_name} NOT excluded\n"
-          @func_head_array << func_head
-        else
-          dbgPrint "MrubyBridgePlugin: #{func_head.get_name} EXCLUDED\n"
-        end
-      else
-        @func_head_array << func_head
-      end
-    }
-
-    if @func_head_array.length == 0 then
-      cdl_error( "MRB1012 '$1' no function remained by exclude", @signature.get_name )
-    end
-
-    check_name_and_return_type @func_head_array
-    check_parameter_type @func_head_array
-
-  end
-
-  #=== check function name & return type
-  def check_name_and_return_type func_head_array
-    b_init = false; b_init_cell = false
-    func_head_array.each{ |func_head|
-      if( func_head.get_name == :initialize )then
-        cdl_warning( "MRW2001 initialize: internally defined. change to initialize_cell in ruby" )
-        b_init = true
-      elsif( func_head.get_name == :initialize_cell )then
-        b_init_cell = true
-      end
-      rtype = func_head.get_return_type.get_original_type
-      case rtype
-      when BoolType, IntType, FloatType, VoidType
-      else
-        cdl_error( "MRB1001 cannot return type $1", rtype.get_type_str )
-      end
-    }
-    if( b_init && b_init_cell )then
-      cdl_warning( "MRB1002 initialize: internally defined. change to initialize_cell in ruby" )
+#== MrubyBridgePlugin クラス
+class MrubyBridgePlugin < MultiPlugin
+  def self.get_plugin superClass
+    # case when (つまりは ===) では、期待したように一致しない模様
+    if superClass == SignaturePlugin then
+      dbgPrint "MrubyBridgePlugin: SignaturePlugin"
+      require_tecsgen_lib 'tecslib/plugin/MrubyBridgeSignaturePlugin.rb'
+      return MrubyBridgeSignaturePlugin
+    elsif superClass == CelltypePlugin
+      dbgPrint "MrubyBridgePlugin: CelltypePlugin"
+      require_tecsgen_lib 'tecslib/plugin/MrubyBridgeCelltypePlugin.rb'
+      return MrubyBridgeCelltypePlugin
+    elsif superClass == CompositePlugin
+      dbgPrint "MrubyBridgePlugin: CompositePlugin"
+      require_tecsgen_lib 'tecslib/plugin/MrubyBridgeCompositePlugin.rb'
+      return MrubyBridgeCompositePlugin
+    elsif superClass == CellPlugin
+      dbgPrint "MrubyBridgePlugin: CellPlugin"
+      require_tecsgen_lib 'tecslib/plugin/MrubyBridgeCellPlugin.rb'
+      return MrubyBridgeCellPlugin
+    #elsif superClass == ThroughPlugin
+    #  return ThroughPlugin
+    #elsif superClass == DomainPlugin
+    #  return DomainPlugin
+    else
+      dbgPrint "MrubyBridgePlugin: unsupported"
+      return nil
     end
   end
-
-  #=== check paramter type
-  def check_parameter_type func_head_array
-    # check type of parameters
-    func_head_array.each{ |fh|
-      fh.get_paramlist.get_items.each{ |param_decl|
-        case param_decl.get_direction
-        when :SEND, :RECEIVE
-          cdl_error( "MRB1003 $1: $2 parameter cannot be used in mruby Bridge",  param_decl.get_name, param_decl.get_direction.to_s.downcase )
-        end
-        type = param_decl.get_type
-        type_org = type.get_original_type
-        type_str = type.get_type_str + type.get_type_str_post
-
-        b_ng = false
-        case type_org
-        when IntType
-          case  type_org.get_bit_size
-          when 8, 16, 32, 64
-          when -1, -2, -3, -4, -11
-          else
-            b_ng = true
-          end
-        when BoolType
-        when FloatType
-        when PtrType
-          ttype_org = type_org.get_type       # ポインタの指している先の型
-          ttype = ttype_org.get_original_type # 上記の typedef されている場合、元の型
-          register_ptr_type ttype_org
-
-          if( type_org.get_string.to_s == "-1" ) then
-            case param_decl.get_direction
-            when :OUT, :INOUT
-              cdl_error( "MRB9999 string specifier without length cannot be used for out & inout parameter")
-            end
-          end
-
-          case ttype
-          when IntType
-            bit_size = ttype.get_bit_size
-            # if  bit_size < 0 && bit_size != -1 then
-            #   b_ng = true
-            # end
-          when FloatType
-          when BoolType
-          when StructType
-            if( type_org.get_size || type_org.get_string || type_org.get_count ) then
-              cdl_error( "MRB1004 $1: size_is, count_is, string cannot be specified for struct pointer", param_decl.get_name )
-            end
-            check_struct_member ttype_org
-          else
-            b_ng = true
-          end
-        when StructType
-          check_struct_member type_org
-        else  # ArrayType, FuncType, EnumType, VoidType
-          b_ng = true
-        end
-        if b_ng then
-          cdl_error( "MRB1005 $1: type $2 cannot be used in mruby Bridge", param_decl.get_name, type_str )
-        end
-      }
-    }
-  end
-
-  #=== 構造体のメンバーの型のチェック
-  def check_struct_member struct_type
-    #p "tag name:#{struct_type.get_name}"
-    # sttype = Namespace.find_tag( struct_type.get_name )
-    sttype = struct_type.get_original_type
-    if sttype.get_name == nil then
-      cdl_error( "MRB10007 tagless-struct cannot be handled")
-    end
-    sttype.get_members_decl.get_items.each { |d|
-      t = d.get_type.get_original_type
-      case t
-      when IntType, FloatType, BoolType
-      else
-        cdl_error( "MRB1006 $1: type $2 not allowed for struct member", d.get_name, d.get_type.get_type_str + d.get_type.get_type_str_post )
-      end
-    }
-    st_name = :"t{}"
-    if @struct_list[ sttype.get_name ] == nil then
-      # print_msg "  MrubyBridgePlugin: [struct]   #{struct_type.get_type_str} => class TECS::Struct#{sttype.get_name}\n"
-      print "  MrubyBridgePlugin: [struct]   #{struct_type.get_type_str} => class TECS::Struct#{sttype.get_name}\n"
-      @struct_list[ sttype.get_name ] = sttype
-    end
-  end
-
-  def register_ptr_type ttype
-    t_org = ttype.get_original_type
-    tment = get_type_map_ent t_org
-    if tment == nil then
-      return
-      cdl_error( "MRB1008 unknown pointer type '$1'", ttype.get_type_str )
-    end
-    ptr_celltype_name = :"t#{tment[1]}Pointer"
-    if @@ptr_list[ ptr_celltype_name ] == nil then
-      # print_msg "  MrubyBridgePlugin: [pointer]  #{ttype.get_type_str}* => class TECS::#{tment[1]}Pointer\n"
-      print "  MrubyBridgePlugin: [pointer]  #{ttype.get_type_str}* => class TECS::#{tment[1]}Pointer\n"
-      @@ptr_list[ ptr_celltype_name ] = tment
-    end
-    if @ptr_list[ ptr_celltype_name ] == nil then
-      @ptr_list[ ptr_celltype_name ] = tment
-    end
-  end
-
-  def get_type_map_ent ttype
-    # structure type is registerd in check_struct_member
-    if ttype.kind_of? StructType
-      return
-    end
-    tstr = ttype.get_type_str.sub( /const /, "" )    # const は無視
-    tstr = tstr.sub( /volatile /, "" )               # volatile も無視
-    if @b_ignoreUnsigned then
-      tstr = tstr.sub( /unsigned /, "" )             # volatile も無視
-      tstr = tstr.sub( /uint/, "int" )               # volatile も無視
-      tstr = tstr.sub( /[cs]char/, "char" )          # volatile も無視
-    end
-    return @@TYPE_MAP[ tstr.to_sym ]
-  end
-
-  #===  CDL ファイルの生成
-  #      typedef, signature, celltype, cell コードを生成
-  #file::        FILE       生成するファイル
-  def gen_cdl_file(file)
-
-    # ブリッジセルタイプの生成
-    if @@celltypes[ @celltype_name ] == nil then
-      @@celltypes[ @celltype_name ] = [ self ]
-      @@init_celltypes[ @init_celltype_name ] = true
-      print_msg <<EOT
-  MrubyBridgePlugin: [signature] #{@signature.get_namespace_path} => [celltype] nMruby::#{@celltype_name} => [class] TECS::#{@class_name}
-EOT
-
-      file.print <<EOT
-import( <mruby.cdl> );
-
-/****  Ruby => TECS Bridge Celltype (MBP500) ****/
-namespace nMruby{
-    // bridge celltype
-    [idx_is_id,active]   // not actually active, to avoid warning W1002, W1007
-    celltype #{@celltype_name} {
-        call #{@signature.get_namespace_path.to_s} cTECS;
-        attr {
-            [omit]
-            char_t *VMname = "VM";
-        };
-    };
-    // bridge initializer celltype
-    celltype #{@init_celltype_name} {
-        entry sInitializeTECSBridge eInitialize;
-    };
-};
-EOT
-
-      # 構造体セルタイプの生成
-      @struct_list.each{ |name, sttype|
-        if @@struct_list[ name ] == nil then
-          file.print <<EOT
-namespace nMruby{
-    [singleton]
-    celltype #{name} {
-        entry sInitializeTECSBridge eInitialize;
-    };
-};
-EOT
-          @@struct_list[ name ] = sttype
-        end
-      }
-
-    else
-      cdl_warning( "MRBW001 MrubyBridgePlugin: signature '$1' duplicate. ignored current one", @signature.get_namespace_path )
-      @@celltypes[ @celltype_name ] << self
-    end
-  end
-
-  #=== gen_cdl_file で定義したセルタイプに 新しいセルが定義された
-  # cell のセルタイプの名前は @celltype_name
-  def new_cell cell
-    if cell.get_celltype.get_name != @celltype_name then
-      return
-    end
-
-    join = cell.get_join_list.get_item :VMname
-    if join then
-      vm_name = CDLString.remove_dquote(join.get_rhs.to_s).to_sym
-    else
-      vm_name = :"VM"
-    end
-
-    if @@VM_list[ vm_name ] == nil then
-      @@VM_list[ vm_name ] = true
-
-      initializer_celltype_cdl = "#{$gen}/#{cell.get_name}Initializer.cdl"
-      file = CFile.open( initializer_celltype_cdl, "w" )
-
-      # TECS 初期化セル(プロトタイプ宣言)
-      print_msg "  MrubyBridgePlugin: join your VM's cInitialize to #{vm_name}_TECSInitializer.eInitialize\n"
-
-      file.print <<EOT
-
-  // prototype of TECSInitializer (MBP510)
-  cell nMruby::tTECSInitializer #{vm_name}_TECSInitializer;
-EOT
-      file.close
-
-      Generator.parse( initializer_celltype_cdl, self )
-    end
-
-    if @@VM_celltypes[ vm_name ] then
-      vma = @@VM_celltypes[ vm_name ]
-
-      if vma[ @celltype_name ] then
-        vma[ @celltype_name ] << cell
-      else
-        vma[ @celltype_name ] = [cell]
-        @@VM_celltypes[ vm_name ] = vma
-      end
-    else
-      vma = { }
-      vma[ @celltype_name ] = [cell]
-      @@VM_celltypes[ vm_name ] = vma
-    end
-
-    @struct_list.each{ |stname, sttype|
-      if @@VM_struct_list[ vm_name ] then
-        @@VM_struct_list[ vm_name ][ sttype.get_name ] = sttype
-      else
-        @@VM_struct_list[ vm_name ] = { sttype.get_name => sttype }
-      end
-    }
-    @ptr_list.each{ |ptr_celltype_name, tment|
-      if @@VM_ptr_list[ vm_name ] then
-        @@VM_ptr_list[ vm_name ][ ptr_celltype_name ] = tment
-      else
-        @@VM_ptr_list[ vm_name ] = { ptr_celltype_name => tment }
-      end
-    }
-
-  end
-
-  #=== プラグインが CDL の POST コードを生成
-  # tmp_plugin_post_code.cdl への出力
-  def self.gen_post_code file
-
-#     file.print <<EOT
-# namespace nMruby {
-# EOT
-# 
-#     @@ptr_list.each{ |name,tment|
-#       file.print <<EOT
-# 
-#     // MBP600
-#     [singleton]
-#     celltype #{name} {
-#         entry  sInitializeTECSBridge eInitialize;
-#     };
-# EOT
-#     }
-# 
-#     file.print <<EOT
-# };
-# EOT
-
-# gen_post_code で生成した celltype は gen_ep_func が呼び出されない #847
-#    @@struct_list.each{ |name,sttype|
-#      file.print <<EOT
-#
-#    [singleton]
-#    celltype #{name} {
-#        entry  sInitializeTECSBridge eInitialize;
-#    };
-#EOT
-#    }
-
-    file.print "  // MBP601\n"
-    @@VM_celltypes.each{ |vm_name, instance_list|
-      instance_list.each { |celltype_name, array|
-        cell = array[0]
-	if cell.get_celltype then
-	  ct_name = cell.get_celltype.get_name
-        file.print <<EOT
-  cell nMruby::#{ct_name}_Initializer #{vm_name}_#{ct_name}_Initializer{ };
-EOT
-        end
-      }
-    }
-
-    file.print "  // MBP602\n"
-    @@ptr_list.each{ |name,tment|
-      file.print <<EOT
-  cell nMruby::#{name} C#{name} { };
-EOT
-    }
-
-    file.print "  // MBP603\n"
-    @@struct_list.each{ |name,sttype|
-      file.print <<EOT
-  cell nMruby::#{name} C#{name} { };
-EOT
-    }
-
-    if @@VM_celltypes == nil
-      raise "are0"
-    end
-    @@VM_celltypes.each{ |vm_name, instance_list|
-      file.print "  /* === VM #{vm_name} === (MBP610) */\n"
-      init_cell_name = "#{vm_name}_TECSInitializer"
-
-      file.print "  cell nMruby::tTECSInitializer #{init_cell_name} {\n"
-
-      instance_list.each { |celltype_name, array|
-        array.each{ |cell|
-          ct_name = cell.get_celltype.get_name
-          file.print "    cInitialize[] = #{vm_name}_#{ct_name}_Initializer.eInitialize;\n"
-        }
-      }
-      if @@VM_ptr_list[vm_name] then
-        @@VM_ptr_list[vm_name].each{ |name, tment|
-          file.print "    cInitialize[] = C#{name}.eInitialize;\n"
-        }
-      end
-      if @@VM_struct_list[vm_name] then
-        @@VM_struct_list[vm_name].each{ |name, sttype|
-          file.print "    cInitialize[] = C#{name}.eInitialize;\n"
-        }
-      end
-      file.print "  };"
-    }
-    
-  end
-
-  ####### 以下コード生成段階 ######
-
-  #===  受け口関数の本体コードを生成（頭部と末尾は別途出力）
-  #ct_name:: Symbol    (プラグインで生成された) セルタイプ名 ．Symbol として送られてくる
-  def gen_ep_func_body( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    if @@celltypes[ ct_name ] then
-      gen_ep_func_body_bridge( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    elsif @@init_celltypes[ ct_name ] then
-      gen_ep_func_body_bridge_init( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    elsif @@ptr_list[ ct_name ] then
-      gen_ep_func_body_ptr( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    elsif @@struct_list[ ct_name ] then
-      gen_ep_func_body_struct( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    else
-      raise "Unknown #{ct_name}"
-    end
-  end
-
-  def gen_ep_func_body_bridge( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    raise "unexpected "
-  end
-
-  def gen_ep_func_body_bridge_init( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    file.print <<EOT
-    CELLCB *p_cellcb = GET_CELLCB( idx );  /* no error check */     /* MBP700 */
-    struct RClass	*rc;
-
-    rc = mrb_define_class_under( mrb, TECS, \"#{@class_name}\", mrb->object_class );
-    mrb_define_method( mrb, rc, "initialize", MrubyBridge_#{@celltype_name}_initialize, MRB_ARGS_REQ(1) );
-    MRB_SET_INSTANCE_TT(rc, MRB_TT_DATA);
-EOT
-
-    @func_head_array.each{ |f|
-      if ! f.is_function? then
-        next
-      end
-      if f.get_name != :initialize then
-        func_name = f.get_name
-      else
-        func_name = :initialize_cell
-      end
-
-      ret_type = f.get_return_type
-      n_param = 0
-      f.get_paramlist.get_items.each{ |param|
-        case param.get_direction
-        when :IN, :INOUT, :OUT
-          n_param += 1
-        when :SEND, :RECEIVE
-          raise "send, receive"
-        end
-      }
-      if n_param > 0 then
-        p_str = "MRB_ARGS_REQ( #{n_param} )"
-      else
-        p_str = "MRB_ARGS_NONE()"
-      end
-      file.print <<EOT
-	mrb_define_method( mrb, rc, "#{func_name}", MrubyBridge_#{@celltype_name}_#{func_name}, #{p_str} );
-EOT
-    }
-  end
-
-  def gen_ep_func_body_ptr( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    
-    t = @@ptr_list[ct_name]
-    type = t[1]
-    file.print <<EOT
-	struct RClass *a;                                /* MBP710 */
-
-    a = mrb_define_class_under(mrb, TECS, "#{type}Pointer", mrb->object_class);
-    MRB_SET_INSTANCE_TT(a, MRB_TT_DATA);
-
-    mrb_define_method(mrb, a, "initialize",      #{type}Pointer_initialize,   MRB_ARGS_REQ(1));
-    mrb_define_method(mrb, a, "[]",              #{type}Pointer_aget,         MRB_ARGS_REQ(1));
-    mrb_define_method(mrb, a, "value",           #{type}Pointer_get_val,      MRB_ARGS_NONE());
-    mrb_define_method(mrb, a, "[]=",             #{type}Pointer_aset,         MRB_ARGS_REQ(2));
-    mrb_define_method(mrb, a, "value=",          #{type}Pointer_set_val,      MRB_ARGS_REQ(1));
-    mrb_define_method(mrb, a, "size",            #{type}Pointer_size,         MRB_ARGS_NONE());
-    mrb_define_method(mrb, a, "length",          #{type}Pointer_size,         MRB_ARGS_NONE());
-EOT
-
-    if t[2] == :Char then
-      file.print <<EOT
-	mrb_define_method(mrb, a, "to_s",            CharPointer_to_s, MRB_ARGS_NONE());
-	mrb_define_method(mrb, a, "from_s",          CharPointer_from_s, MRB_ARGS_REQ(1));
-EOT
-    end
-  end
-
-  def gen_ep_func_body_struct( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
-    tag = ct_name
-    structType = @@struct_list[ tag ]
-    file.print  <<EOT
-	struct RClass *a;                                /* MBP720 */
-
-	a = mrb_define_class_under(mrb, TECS, "Struct#{tag}", mrb->object_class);
-	MRB_SET_INSTANCE_TT(a, MRB_TT_DATA);
-
-	mrb_define_method(mrb, a, "initialize", Struct_#{tag}_initialize, MRB_ARGS_NONE());
-EOT
-
-      structType.get_members_decl.get_items.each{ |d|
-        file.print "  STRUCT_INIT_MEMBER( #{tag}, #{d.get_name} )\n"
-      }
-  end
-
-  #===  受け口関数の preamble (C言語)を生成する
-  #     必要なら preamble 部に出力する
-  #file::           FILE        出力先ファイル
-  #b_singleton::    bool        true if singleton
-  #ct_name::        Symbol
-  #global_ct_name:: string
-  def gen_preamble( file, b_singleton, ct_name, global_ct_name )
-    if @@celltypes[ ct_name ] then
-      gen_preamble_mruby( file, b_singleton, ct_name, global_ct_name )
-      gen_preamble_instance( file, b_singleton, ct_name, global_ct_name )
-      gen_preamble_instance_initialize( file, b_singleton, ct_name, global_ct_name )
-      gen_preamble_bridge_func( file, b_singleton, ct_name, global_ct_name )
-    elsif @@init_celltypes[ ct_name ] then
-      gen_preamble_mruby( file, b_singleton, ct_name, global_ct_name )
-      gen_preamble_instance_proto( file, b_singleton, ct_name, global_ct_name )
-    elsif @@ptr_list[ ct_name ] then
-      gen_preamble_ptr( file, b_singleton, ct_name, global_ct_name )
-    elsif @@struct_list[ ct_name ] then
-      gen_preamble_struct( file, b_singleton, ct_name, global_ct_name )
-    else
-      raise "Unknown #{ct_name}"
-    end
-  end
-
-  def gen_preamble_mruby( file, b_singleton, ct_name, global_ct_name )
-    file.print <<EOT
-/* MBP: MrubyBridgePlugin: MBP000 */
-#include "mruby.h"
-#include "mruby/class.h"
-#include "mruby/data.h"
-#include "mruby/string.h"
-#include "TECSPointer.h"
-#include "TECSStruct.h"
-
-#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#define DLLEXPORT __declspec(dllexport)
-#else
-#define DLLEXPORT
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif
-EOT
-  end
-
-  def gen_preamble_instance( file, b_singleton, ct_name, global_ct_name )
-    file.print <<EOT
-
-/* RData MBP001 */
-static void 
-#{@celltype_name}_free( mrb_state *mrb, void *p )
-{
-	if( p )
-		(void)mrb_free( mrb, p );
-}
-
-/* RData MBP002 */
-struct mrb_data_type data_type_#{@celltype_name} =
-{
-	"#{@celltype_name}",
-	#{@celltype_name}_free
-};
-
-/* RData MBP003 */
-struct tecs_#{@celltype_name} {
-    CELLCB  *cbp;
-};
-
-/* name_to_cbp MBP010 */
-const struct name_to_cbp_#{@celltype_name} {
-    char   *name;    /* Cell Name */
-    CELLCB *cbp;
-} Name_to_cbp_#{@celltype_name}[] = {
-EOT
-
-    # mikan namespace
-    nsp = NamespacePath.new( :nMruby, true )
-    nsp.append! ct_name
-    ct = Namespace.find nsp
-
-    ct.get_cell_list.each{ |cell|
-      if cell.is_generate? then
-        name_array = ct.get_name_array( cell )
-        file.print "\t{ \"#{cell.get_name}\", #{name_array[8]} },\n"
-      end
-    }
-
-    file.print <<EOT
-\t{ 0, 0 },
-};
-
-EOT
-
-  end
-
-  def gen_preamble_ptr( file, b_singleton, ct_name, global_ct_name )
-    tment = @@ptr_list[ ct_name ]
-    file.print <<EOT
-
-GET_SET_#{tment[3]}( #{tment[1]}, #{tment[0]} )
-POINTER_CLASS( #{tment[1]}, #{tment[0]} )
-EOT
-  end
-
-  def gen_preamble_struct( file, b_singleton, ct_name, global_ct_name )
-    tag = ct_name
-    structType = @@struct_list[ tag ]
-    file.print <<EOT
-/* struct #{tag} */
-STRUCT_CLASS( #{tag} )
-EOT
-
-    structType.get_members_decl.get_items.each{ |d|
-      type = d.get_type.get_original_type
-      case type
-      when IntType, CIntType
-        bit_size = type.get_bit_size
-        case bit_size
-        when -11, -1
-          tType = "Char"
-          ttype = "char"
-        when -2
-          tType = "Short"
-          ttype = "short"
-        when -3
-          tType = "Int"
-          ttype = "int"
-        when -4
-          tType = "Long"
-          ttype = "long"
-        when -5
-          tType = "IntPtr"
-          ttype = "intptr"
-        when 8, 16, 32, 64
-          tType = "Int#{bit_size}"
-          ttype = "int#{bit_size}"
-        else
-            raise "cannot handle bit_size #{bit_size}"
-        end
-        file.print "MEMBER_GET_SET_INT( #{tag}, #{d.get_name}, #{tType}, #{ttype} )\n"
-      when FloatType, CFloatType
-        file.print "MEMBER_GET_SET_FLOAT( #{tag}, #{d.get_name} )\n"
-      else
-        raise "cannot handle type"
-      end
-    }
-
-  end
-
-  def gen_preamble_instance_proto( file, b_singleton, ct_name, global_ct_name )
-    file.print <<EOT
-//  Prototype MBP400
-mrb_value  MrubyBridge_#{@celltype_name}_initialize( mrb_state *mrb, mrb_value self);
-EOT
-
-    @func_head_array.each{ |f|
-      if ! f.is_function? then
-        next
-      end
-      if f.get_name != :initialize then
-        func_name = f.get_name
-      else
-        func_name = :initialize_cell
-      end
-
-      ret_type  = f.get_return_type
-      ret_type0 = f.get_return_type.get_original_type
-      b_void    = ret_type0.is_void?
-      plist     = f.get_paramlist.get_items
-
-      file.print <<EOT
-mrb_value  MrubyBridge_#{@celltype_name}_#{func_name}( mrb_state *mrb, mrb_value self );
-EOT
-    }
-  end
-
-  def gen_preamble_instance_initialize( file, b_singleton, ct_name, global_ct_name )
-    file.print <<EOT
-
-/* MBP100 */
-mrb_value
-MrubyBridge_#{@celltype_name}_initialize( mrb_state *mrb, mrb_value self)
-{
-	mrb_value	name;
-	struct tecs_#{@celltype_name} *tecs_cb;
-	const struct name_to_cbp_#{@celltype_name} *ntc;
-
-	/* set DATA_TYPE earlier to avoid SEGV */
-	DATA_TYPE( self ) = &data_type_#{@celltype_name};
-
-	mrb_get_args(mrb, "o", &name );
-	if( mrb_type( name ) != MRB_TT_STRING ){
-		mrb_raise(mrb, E_NAME_ERROR, "cell name not string");
-	}
-	for( ntc = &Name_to_cbp_#{@celltype_name}[0]; ntc->name != NULL; ntc++ ){
-		if( strcmp( ntc->name, RSTRING_PTR( name ) ) == 0 )
-			break;
-	}
-	if( ntc->name == 0 ){
-		mrb_raise(mrb, E_ARGUMENT_ERROR, "cell not found");
-	}
-	tecs_cb = (struct tecs_#{@celltype_name} *)mrb_malloc(mrb, sizeof(struct tecs_#{@celltype_name}) );
-	tecs_cb->cbp = ntc->cbp;
-	DATA_PTR( self ) = (void *)tecs_cb;
-
-	return self;
-}
-EOT
-  end
-
-  def gen_preamble_bridge_func( file, b_singleton, ct_name, global_ct_name )
-
-    @func_head_array.each{ |f|
-      if ! f.is_function? then
-        next
-      end
-      if f.get_name != :initialize then
-        func_name = f.get_name
-      else
-        func_name = :initialize_cell
-      end
-
-      ret_type  = f.get_return_type
-      ret_type0 = f.get_return_type.get_original_type
-      b_void    = ret_type0.is_void?
-      plist     = f.get_paramlist.get_items
-
-      file.print <<EOT
-
-/* bridge function (MBP101) */
-mrb_value
-MrubyBridge_#{ct_name}_#{func_name}( mrb_state *mrb, mrb_value self )
-{
-	/* cellcbp (MBP105) */
-	CELLCB	*p_cellcb = ((struct tecs_#{@celltype_name} *)DATA_PTR(self))->cbp;
-EOT
-      
-      file.print "	/* variables for return & parameter (MBP110) */\n"
-      if ! b_void then
-        file.print "	", ret_type.get_type_str, "\tret_val", ret_type.get_type_str_post, ";\n"
-      end
-      arg_str = ""
-      n_param  = 0
-      n_scalar = 0
-      n_ptr    = 0
-      n_struct = 0
-      plist.each{ |param|
-        case param.get_direction
-        when :IN, :INOUT, :OUT
-          type = param.get_type.get_original_type
-          case type
-          when IntType
-            file.print "	mrb_int	mrb_", param.get_name, ";\n"
-            file.print "	#{param.get_type.get_type_str}	#{param.get_name}#{param.get_type.get_type_str_post};\n"
-            arg_str += "i"
-            n_param += 1
-            n_scalar += 1
-          when FloatType
-            file.print "	mrb_float	mrb_", param.get_name, ";\n"
-            file.print "	#{param.get_type.get_type_str}	#{param.get_name}#{param.get_type.get_type_str_post};\n"
-            arg_str += "f"
-            n_param += 1
-            n_scalar += 1
-          when BoolType
-            file.print "	mrb_value	mrb_", param.get_name, ";\n"
-            file.print "	#{param.get_type.get_type_str}	#{param.get_name}#{param.get_type.get_type_str_post};\n"
-            arg_str += "o"
-            n_param += 1
-            n_scalar += 1
-          when PtrType
-            file.print "	mrb_value	mrb_", param.get_name, ";\n"
-            file.print "	#{param.get_type.get_type_str}	#{param.get_name}#{param.get_type.get_type_str_post};\n"
-            arg_str += "o"
-            n_param += 1
-            n_ptr += 1
-          when StructType
-            file.print "	mrb_value	mrb_", param.get_name, ";\n"
-            file.print "	#{param.get_type.get_type_str}	*#{param.get_name}#{param.get_type.get_type_str_post};\n"
-            arg_str += "o"
-            n_param += 1
-            n_struct += 1
-          else
-            raise "Unkown type"
-          end
-        end
-      }
-
-      if n_param > 0 then
-        file.print "	/* retrieve arguments (MBP111) */\n"
-        file.print "	mrb_get_args(mrb, \"#{arg_str}\""
-        plist.each{ |param|
-          case param.get_direction
-          when :IN, :INOUT, :OUT
-            type = param.get_type.get_original_type
-            case type
-            when IntType
-              file.print ", &mrb_", param.get_name
-            when FloatType
-              file.print ", &mrb_", param.get_name
-            when BoolType
-              file.print ", &mrb_", param.get_name
-            when PtrType
-              file.print ", &mrb_", param.get_name
-            when StructType
-              file.print ", &mrb_", param.get_name
-            else
-              raise "Unkown type"
-            end
-          end
-        }
-        file.print " );\n"
-
-        if n_scalar > 0 || n_struct > 0 then
-          file.print "	/* convert mrb to C (MBP112) */\n"
-        end
-        plist.each{ |param|
-          case param.get_direction
-          when :IN, :INOUT, :OUT
-            type = param.get_type.get_original_type
-            case type
-            when IntType
-              ttype = type.get_original_type
-              tment = get_type_map_ent ttype
-              file.print "	VALCHECK_#{tment[1]}( mrb, mrb_#{param.get_name} );\n"
-              file.print "	#{param.get_name} = (#{param.get_type.get_type_str})mrb_#{param.get_name};\n"
-            when FloatType
-              file.print "	#{param.get_name} = (#{param.get_type.get_type_str})mrb_#{param.get_name};\n"
-            when BoolType
-              file.print "	#{param.get_name} = mrb_test( mrb_#{param.get_name} );\n"
-            when PtrType
-              ttype = type.get_type.get_original_type
-              case ttype
-              when StructType
-                file.print "	CHECK_STRUCT( #{ttype.get_name}, mrb_#{param.get_name} );\n"
-                file.print "	#{param.get_name} = (struct #{ttype.get_name}*)DATA_PTR(mrb_#{param.get_name});\n"
-              when IntType
-              when FloatType
-              when BoolType
-              else
-                raise "cannot handle type"
-              end
-            when StructType
-              file.print "	CHECK_STRUCT( #{type.get_name}, mrb_#{param.get_name} );\n"
-              file.print "	#{param.get_name} = (struct #{type.get_name}*)DATA_PTR(mrb_#{param.get_name});\n"
-            else
-              raise( "canot treat class" )
-            end
-          end
-        }
-
-        if n_ptr > 0 then
-          file.print "	/* convert mrb to C for pointer types (MBP113) */\n"
-        end
-        plist.each{ |param|
-          case param.get_direction
-          when :IN, :INOUT, :OUT
-            type = param.get_type.get_original_type
-            case type
-            when IntType
-            when FloatType
-            when BoolType
-            when PtrType
-              case type.get_type.get_original_type
-              when StructType
-              when IntType
-                ptrMrb2C file, type, param
-              when FloatType
-                ptrMrb2C file, type, param
-              when BoolType
-                ptrMrb2C file, type, param
-              else
-                raise "cannot handle type"
-              end
-            when StructType
-            else
-              raise( "canot treat class" )
-            end
-          end
-        }
-
-      end
-
-      file.print "	/* calling target (MBP120) */\n"
-      if ! b_void then
-        file.print "	ret_val = "
-      else
-        file.print "	"
-      end
-      delim = ""
-      file.print "cTECS_", f.get_name, "( "
-      plist.each{ |param|
-        if param.get_type.get_original_type.kind_of? StructType then
-          aster = "*"
-        else
-          aster = ""
-        end
-        file.print delim, aster, param.get_name
-        delim = ", "
-      }
-      file.print " );\n"
-      
-      file.print "	/* return (MBP130) */\n"
-      case ret_type0
-      when BoolType
-        file.print "	return ret_val ? mrb_true_value() : mrb_false_value();\n"
-      when IntType
-        file.print "	return mrb_fixnum_value( ret_val );\n"
-      when FloatType
-        file.print "	return mrb_float_value( mrb, ret_val );\n"
-      when VoidType
-        file.print "	return  mrb_nil_value();\n"
-      else
-        raise "unknown type"
-      end
-
-      file.print "}\n"
-    }
-  end
-
-  def ptrMrb2C file, type, param
-    ttype = type.get_type.get_original_type
-    tment = get_type_map_ent ttype
-    tstr = tment[1]
-=begin
-    case ttype
-    when IntType
-      bit_size = ttype.get_bit_size
-      case bit_size
-      when -1, -11
-        tstr = "Char"
-      when 8, 16, 32, 64
-        tstr = "Int#{bit_size}"
-      when -2
-        tstr = "Short"
-      when -3
-        tstr = "Int"
-      when -4
-        tstr = "Long"
-      when -5
-        tstr = "IntPtr"
-      else
-        raise "not handle type"
-      end
-    when FloatType
-      if ttype.get_bit_size == 32 then
-        tstr = "Float32"
-      else
-        tstr = "Double64"
-      end
-    when BoolType
-      tstr = "Bool"
-    when StructType
-      raise "not handle type 2 #{ttype}"
-    else
-      raise "not handle type 2 #{ttype}"
-    end
-=end
-    if( param.get_size ) then
-      sz_str = param.get_size.to_s
-    elsif param.get_string then      # mikan とりあえず size_is と string の同時指定 (二重ポインタ) はなし
-      sz_str = param.get_string.to_s
-    else
-      sz_str = "1"
-    end
-    # unsigned 型の場合には cast が必要
-    if ttype.get_original_type.get_type_str != param.get_type.get_type.get_type_str then
-      cast_str = "(#{param.get_type.get_type_str})"
-    else
-      cast_str = ""
-    end
-
-    modify = ""
-    case param.get_direction
-    when :OUT, :INOUT
-      case tstr
-      when "Char", "SChar", "UChar"
-        modify = "Mod"
-      end
-    end
-    if param.is_nullable? then
-      nullable = "Nullable"
-    else
-      nullable = ""
-    end
-
-    # file.print "	CHECK_POINTER( #{tstr}, mrb_#{param.get_name}, #{sz_str} );\n"
-    # file.print "	#{param.get_name} = #{cast_str}((struct #{tstr}PointerBody*)(DATA_PTR(mrb_#{param.get_name})))->buf;\n"
-    file.print "	#{param.get_name} = CheckAndGet#{tstr}Pointer#{modify}#{nullable}( mrb, mrb_#{param.get_name}, #{sz_str} );\n"
-  end
-
-  def get_celltype_name
-    @celltype_name
-  end
-
-  #=== プラグイン引数 ignoreUnsigned
-  def set_ignoreUnsigned rhs
-    if rhs == "true" || rhs == nil then
-      @b_ignoreUnsigned = true
-    end
-  end
-  #=== プラグイン引数 include
-  def set_include rhs
-    funcs = rhs.split ','
-    funcs.each{ |rhs_func|
-      found = false
-      rhs_func.gsub!( /\s/, "" )
-      @signature.get_function_head_array.each{ |a|
-        if rhs_func.to_sym == a.get_name then
-          found = true
-        end
-      }
-      if found == false then
-        cdl_error( "MRB1009 include function '$1' not found in signagture '$2'", rhs, @signature.get_name )
-      else
-        @includes << rhs_func.to_sym
-      end
-    }
-  end
-  #=== プラグイン引数 exclude
-  def set_exclude rhs
-    funcs = rhs.split ','
-    funcs.each{ |rhs_func|
-      found = false
-      rhs_func.gsub!( /\s/, "" )
-      @signature.get_function_head_array.each{ |a|
-        if rhs_func.to_sym == a.get_name then
-          found = true
-        end
-      }
-      if found == false then
-        cdl_error( "MRB1010 exclude function '$1' not found in signagture '$2", rhs, @signature.get_name )
-      else
-        @excludes << rhs_func.to_sym
-      end
-    }
-  end
 end
-
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeSignaturePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeSignaturePlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MrubyBridgeSignaturePlugin.rb	(revision 429)
@@ -0,0 +1,1313 @@
+# -*- coding: utf-8 -*-
+#
+#  mruby => TECS bridge
+#  
+#   Copyright (C) 2008-2017 by TOPPERS Project
+#
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#
+
+# Todo:
+# 生成するもの
+#  gen_cdl_file
+#    ブリッジ初期化セルタイプ (シグニチャごと)
+#       @@init_celltypes に記録
+#    ブリッジセルタイプ (シグニチャごと)
+#       @@celltypes に記録
+#    構造体セルタイプ
+#       @@struct_list に記録
+#  new_cell
+#    TECS 初期化セル(プロトタイプ宣言)
+#       @@VM_init_cells に記録
+#       @@VM_struct_list に記録
+#       @@VM_ptr_list に記録
+#  gen_post_code
+#    構造体初期化セル
+#    ポインタ初期化セル
+#    TECS 初期化セル
+#
+#   ep_func の作成
+#     signature, ポインタ、構造体 … 初期化受け口＝mruby VM への登録
+#     ポインタ
+#   preamble の作成
+#     ポインタ、構造体 … アクセス用コードの生成
+#     signature … ブリッジ関数のプロトタイプ宣言
+#   postamble の作成
+#     signature … ブリッジ関数の定義
+
+class MrubyBridgeSignaturePlugin < SignaturePlugin
+
+  # プラグイン引数名 => Proc
+  MrubyBridgePluginArgProc = { 
+      "ignoreUnsigned" => Proc.new { |obj,rhs| obj.set_ignoreUnsigned rhs },
+      "include" => Proc.new { |obj,rhs| obj.set_include rhs },
+      "exclude" => Proc.new { |obj,rhs| obj.set_exclude rhs },
+      "auto_exclude" => Proc.new { |obj,rhs| obj.set_auto_exclude rhs },
+  }
+
+  @@b_no_banner = false         #
+  @@b_gen_post_code_by_dependent = false  # true if gen_post_code is called by MrubyBridgeCellPlugin
+  @@celltypes = { }             # {celltype_name => [ BridgePlugin のインスタンスの配列 }
+  @@init_celltypes = { }        # {celltype_name => [ BridgePlugin のインスタンスの配列 }
+  @@struct_list = { }           # {struct_name=>StructType}
+  @@ptr_list = { }              # {ptr_celltype_name=> @@TYPE_MAP の対応するもの}
+  @@VM_list = { }               # VM_name => true
+  @@VM_celltypes = {  }             # VM_name => { @celltype_name => セルの配列 }
+  @@VM_struct_list = { }           # {name=>StructType}
+  @@VM_ptr_list = { }              # { VM_name => {name=> @@TYPE_MAP の対応するもの} }
+  @@TYPE_MAP = {           # type_str   class             GET_SET
+    :char_t            => [:char_t,    "Char",     :Char,  :INT   ],
+    :uchar_t           => [:uchar_t,   "UChar",    :Char,  :INT   ],
+    :schar_t           => [:schar_t,   "SChar",    :Char,  :INT   ],
+
+    :bool_t            => [:bool_t,    "Bool",     :Bool,  :BOOL  ],
+    :int8_t            => [:int8_t,    "Int8",     :Int,   :INT   ],
+    :int16_t           => [:int16_t,   "Int16",    :Int,   :INT   ],
+    :int32_t           => [:int32_t,   "Int32",    :Int,   :INT   ],
+    :int64_t           => [:int64_t,   "Int64",    :Int,   :INT   ],
+    :uint8_t           => [:uint8_t,   "UInt8",    :Int,   :INT   ],
+    :uint16_t          => [:uint16_t,  "UInt16",   :Int,   :INT   ],
+    :uint32_t          => [:uint32_t,  "UInt32",   :Int,   :INT   ],
+    :uint64_t          => [:uint64_t,  "UInt64",   :Int,   :INT   ],
+
+    :int               => [:int,       "Int",      :Int,  :INT   ], 
+    :char              => [:char,      "Char",     :Char, :INT   ],    # char は char_t として扱う
+    :short             => [:short,     "Short",    :Int,  :INT   ],
+    :long              => [:long,      "Long",     :Int,  :INT   ],
+
+    :"unsigned char"   => [:uchar_t,   "UChar",         :Char, :INT   ],
+    :"unsigned int"    => [:"unsigned int",   "UInt",   :Int,  :INT   ],
+    :"unsigned short"  => [:"unsigned short", "UShort", :Int,  :INT   ],
+    :"unsigned long"   => [:"unsigned long",  "ULong",  :Int,  :INT   ],
+    :"signed char"     => [:schar_t,   "SChar",    :Char,  :INT   ],
+    :"signed int"      => [:int,       "Int",      :Int,   :INT   ],
+    :"signed short"    => [:short,     "Short",    :Int,   :INT   ],
+    :"signed long"     => [:long,      "Long",     :Int,   :INT   ],
+
+    :float32_t         => [:float32_t, "Float32",  :Float, :FLOAT ],
+    :double64_t        => [:double64_t,"Double64", :Float, :FLOAT ],
+
+    :float             => [:float,     "Float32",  :Float, :FLOAT ],
+    :double            => [:double,    "Double64", :Float, :FLOAT ]
+  }
+
+  # included  or excluded functions
+
+  ### ロードされた時点で実行される ###
+
+  # -I に $(TECSPATH)/mruby を追加
+  # TECSGEN::Makefile.add_obj "$(MRUBY_MAIN_OBJ)"
+  TECSGEN::Makefile.add_ldflag "-lmruby -L$(MRUBYPATH)/lib -lm"
+  TECSGEN::Makefile.add_search_path "$(MRUBYPATH)/include"
+  TECSGEN::Makefile.add_var "MRUBYPATH",      "..",  "CHANGE this to suitable path"
+  # TECSGEN::Makefile.add_var "MRUBY_MAIN_OBJ", "$(_TECS_OBJ_DIR)tecs_mruby.o", "CHANGE this if your have your main"
+
+  #=== プラグインインスタンスの初期化
+  # 戻り値、引数の型が使用可能なものかチェックする
+  #
+  def initialize( signature, option )
+    super
+
+    if ! @@b_no_banner
+      STDERR << "MrubyBridgePlugin: version 1.3.0 (Suitable for mruby ver 1.3.0 & ver 1.2.0). \n"
+      @@b_no_banner = true
+    end
+
+    @b_ignoreUnsigned = false
+    @includes = []
+    @excludes = []
+    @struct_list = { }
+    @ptr_list = { }
+    @auto_exclude_list = {}
+    @b_auto_exclude = true     # auto_exclude = true by default 
+
+    @plugin_arg_check_proc_tab = MrubyBridgePluginArgProc
+    parse_plugin_arg
+
+    @celltype_name = :"t#{@signature.get_global_name}"
+    @init_celltype_name = :"#{@celltype_name}_Initializer"
+        # this variable is sometimes not used. rhs coded directry.
+    @class_name = :"T#{@signature.get_global_name}"
+
+    @func_head_array = []
+    fh_array = []
+    if @includes.length > 0 && @excludes.length > 0 then
+      cdl_error( "MRB1011 both include && exclude are specified" )
+    end
+
+    if signature.get_function_head_array == nil then
+      return   # 以前に文法エラー発生
+    end
+
+    signature.get_function_head_array.each{ |func_head|
+      if @includes.length > 0 then
+        if @includes.index func_head.get_name then
+          dbgPrint "MrubyBridgePlugin: #{func_head.get_name} INCLUDED\n"
+          fh_array << func_head
+        else
+          dbgPrint "MrubyBridgePlugin: #{func_head.get_name} NOT included\n"
+        end
+      elsif @excludes.length > 0 then
+        if @excludes.index( func_head.get_name ) == nil then
+          dbgPrint "MrubyBridgePlugin: #{func_head.get_name} NOT excluded\n"
+          fh_array << func_head
+        else
+          dbgPrint "MrubyBridgePlugin: #{func_head.get_name} EXCLUDED\n"
+        end
+      else
+        fh_array << func_head
+      end
+    }
+
+    check_name_and_return_type fh_array
+    check_parameter_type fh_array
+
+    fh_array.each{ |fh|
+      if @auto_exclude_list[ fh.get_name ] == nil then
+        @func_head_array << fh
+      else
+        dbgPrint "MrubyBridgePlugin: auto_exclude #{fh.get_name}\n"
+      end
+    }
+
+    if @func_head_array.length == 0 then
+      cdl_error( "MRB1012 '$1' no function remained by exclude", @signature.get_name )
+    end
+  end
+
+  #=== check function name & return type
+  def check_name_and_return_type func_head_array
+    b_init = false; b_init_cell = false
+    func_head_array.each{ |func_head|
+      if( func_head.get_name == :initialize )then
+        cdl_warning( "MRW2001 initialize: internally defined. change to initialize_cell in ruby" )
+        b_init = true
+      elsif( func_head.get_name == :initialize_cell )then
+        b_init_cell = true
+      end
+      rtype = func_head.get_return_type.get_original_type
+      case rtype
+      when BoolType, IntType, FloatType, VoidType
+      else
+        if @b_auto_exclude then
+          cdl_info( "MRI0001 cannot return type $1, $2 automatcally excluded", rtype.get_type_str, func_head.get_name )
+          @auto_exclude_list[ func_head.get_name ] = func_head
+        else
+          cdl_error( "MRB1001 cannot return type $1", rtype.get_type_str )
+        end
+      end
+    }
+    if( b_init && b_init_cell )then
+      cdl_warning( "MRB1002 initialize: internally defined. change to initialize_cell in ruby" )
+    end
+  end
+
+  #=== check paramter type
+  def check_parameter_type func_head_array
+    # check type of parameters
+    func_head_array.each{ |fh|
+      fh.get_paramlist.get_items.each{ |param_decl|
+        case param_decl.get_direction
+        when :SEND, :RECEIVE
+          if @b_auto_exclude then
+            cdl_info( "MRI0002 $1: $2 parameter cannot be used in mruby Bridge, $3 automatcally excluded",
+                      param_decl.get_name, param_decl.get_direction.to_s.downcase, fh.get_name )
+            @auto_exclude_list[ fh.get_name ] = fh
+          else
+            cdl_error( "MRB1003 $1: $2 parameter cannot be used in mruby Bridge",  param_decl.get_name, param_decl.get_direction.to_s.downcase )
+          end
+        end
+        type = param_decl.get_type
+        type_org = type.get_original_type
+        type_str = type.get_type_str + type.get_type_str_post
+
+        b_ng = false
+        case type_org
+        when IntType
+          case  type_org.get_bit_size
+          when 8, 16, 32, 64
+          when -1, -2, -3, -4, -11
+          else
+            b_ng = true
+          end
+        when BoolType
+        when FloatType
+        when PtrType
+          ttype_org = type_org.get_type       # ポインタの指している先の型
+          ttype = ttype_org.get_original_type # 上記の typedef されている場合、元の型
+          register_ptr_type ttype_org, fh
+
+          if( type_org.get_string.to_s == "-1" ) then
+            case param_decl.get_direction
+            when :OUT, :INOUT
+              if @b_auto_exclude then
+                cdl_info( "MRB9999 string specifier without length cannot be used for out & inout parameter, $1 automatcally excluded", 
+                        fh.get_name )
+                @auto_exclude_list[ fh.get_name ] = fh
+              else
+                cdl_error( "MRB9999 string specifier without length cannot be used for out & inout parameter")
+              end
+            end
+          end
+
+          case ttype
+          when IntType
+            bit_size = ttype.get_bit_size
+            # if  bit_size < 0 && bit_size != -1 then
+            #   b_ng = true
+            # end
+          when FloatType
+          when BoolType
+          when StructType
+            if( type_org.get_size || type_org.get_string || type_org.get_count ) then
+              if @b_auto_exclude then
+                cdl_info( "MRI9999 $1: size_is, count_is, string cannot be specified for struct pointer, $2 automatcally excluded",
+                          param_decl.get_name, fh.get_name )
+                @auto_exclude_list[ fh.get_name ] = fh
+              else
+                cdl_error( "MRB1004 $1: size_is, count_is, string cannot be specified for struct pointer", param_decl.get_name )
+              end
+            end
+            check_struct_member ttype_org, fh
+          else
+            b_ng = true
+          end
+        when StructType
+          check_struct_member type_org, fh
+        else  # ArrayType, FuncType, EnumType, VoidType
+          b_ng = true
+        end
+        if b_ng then
+          if @b_auto_exclude then
+            cdl_info( "MRI9999 $1: type $2 cannot be used in mruby Bridge, $3 automatcally excluded",
+                      param_decl.get_name, type_str, fh.get_name )
+            @auto_exclude_list[ fh.get_name ] = fh
+          else
+            cdl_error( "MRB1005 $1: type $2 cannot be used in mruby Bridge", param_decl.get_name, type_str )
+          end
+        end
+      }
+    }
+  end
+
+  #=== 構造体のメンバーの型のチェック
+  def check_struct_member struct_type, fh
+    #p "tag name:#{struct_type.get_name}"
+    # sttype = Namespace.find_tag( struct_type.get_name )
+    sttype = struct_type.get_original_type
+    if sttype.get_name == nil then
+      if @b_auto_exclude then
+        cdl_info( "MRI9999 tagless-struct cannot be handled, $1 automatcally excluded", fh.get_name )
+        @auto_exclude_list[ fh.get_name ] = fh
+        return  # 登録しないように打ち切る
+      else
+        cdl_error( "MRB10007 tagless-struct cannot be handled")
+      end
+    end
+    sttype.get_members_decl.get_items.each { |d|
+      t = d.get_type.get_original_type
+      case t
+      when IntType, FloatType, BoolType
+      else
+        if @b_auto_exclude then
+          cdl_info( "MRI9999 $1: type $2 not allowed for struct member, $3 automatcally excluded",
+                    d.get_name, d.get_type.get_type_str + d.get_type.get_type_str_post, fh.get_name )
+          @auto_exclude_list[ fh.get_name ] = fh
+          return  # 登録しないように打ち切る
+        else
+          cdl_error( "MRB1006 $1: type $2 not allowed for struct member", d.get_name, d.get_type.get_type_str + d.get_type.get_type_str_post )
+        end
+      end
+    }
+    st_name = :"t{}"
+    if @struct_list[ sttype.get_name ] == nil then
+      # print_msg "  MrubyBridgePlugin: [struct]   #{struct_type.get_type_str} => class TECS::Struct#{sttype.get_name}\n"
+      print "  MrubyBridgePlugin: [struct]   #{struct_type.get_type_str} => class TECS::Struct#{sttype.get_name}\n"
+      @struct_list[ sttype.get_name ] = sttype
+    end
+  end
+
+  def register_ptr_type ttype, fh
+    t_org = ttype.get_original_type
+    tment = get_type_map_ent t_org
+    if tment == nil then
+      return
+      # cdl_error( "MRB1008 unknown pointer type '$1'", ttype.get_type_str )
+    end
+    ptr_celltype_name = :"t#{tment[1]}Pointer"
+    if @@ptr_list[ ptr_celltype_name ] == nil then
+      # print_msg "  MrubyBridgePlugin: [pointer]  #{ttype.get_type_str}* => class TECS::#{tment[1]}Pointer\n"
+      print "  MrubyBridgePlugin: [pointer]  #{ttype.get_type_str}* => class TECS::#{tment[1]}Pointer\n"
+      @@ptr_list[ ptr_celltype_name ] = tment
+    end
+    if @ptr_list[ ptr_celltype_name ] == nil then
+      @ptr_list[ ptr_celltype_name ] = tment
+    end
+  end
+
+  def get_type_map_ent ttype
+    # structure type is registerd in check_struct_member
+    if ttype.kind_of? StructType
+      return
+    end
+    tstr = ttype.get_type_str.sub( /const /, "" )    # const は無視
+    tstr = tstr.sub( /volatile /, "" )               # volatile も無視
+    if @b_ignoreUnsigned then
+      tstr = tstr.sub( /unsigned /, "" )             # volatile も無視
+      tstr = tstr.sub( /uint/, "int" )               # volatile も無視
+      tstr = tstr.sub( /[cs]char/, "char" )          # volatile も無視
+    end
+    return @@TYPE_MAP[ tstr.to_sym ]
+  end
+
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell コードを生成
+  #file::        FILE       生成するファイル
+  def gen_cdl_file(file)
+
+    # ブリッジセルタイプの生成
+    if @@celltypes[ @celltype_name ] == nil then
+      @@celltypes[ @celltype_name ] = [ self ]
+      @@init_celltypes[ @init_celltype_name ] = true
+      print_msg <<EOT
+  MrubyBridgePlugin: [signature] #{@signature.get_namespace_path} => [celltype] nMruby::#{@celltype_name} => [class] TECS::#{@class_name}
+EOT
+
+      file.print <<EOT
+/*
+ * MrubyBridgeSignaturePlugin:
+ *     signature=#{@signature.get_namespace_path}
+ *
+ *   => celltype=nMruby::#{@celltype_name}
+ *      (bridge cell's celltype; generated in this file)
+ *      cell nMruby::#{@celltype_name} BridgeCellName { cTECS = CellName.eEntry; };
+ *        where eEntry's signature must be #{@signature.get_namespace_path}.
+ *      => class=TECS::#{@class_name}
+ *         (mruby's class; accessible from your script)
+ *          bridge = TECS::#{@class_name}.new("BridgeCellName")
+ */
+import( <mruby.cdl> );
+
+/****  Ruby => TECS Bridge Celltype (MBP500) ****/
+namespace nMruby{
+    // bridge celltype
+    [idx_is_id,active]   // not actually active, to avoid warning W1002, W1007
+    celltype #{@celltype_name} {
+        call #{@signature.get_namespace_path.to_s} cTECS;
+        attr {
+            [omit]
+            char_t *VMname = "VM";
+            [omit]
+            char_t *bridgeName = C_EXP( "$cell$" );
+        };
+    };
+    // bridge initializer celltype
+    celltype #{@init_celltype_name} {
+        entry sInitializeTECSBridge eInitialize;
+    };
+};
+EOT
+
+      # 構造体セルタイプの生成
+      @struct_list.each{ |name, sttype|
+        if @@struct_list[ name ] == nil then
+          file.print <<EOT
+namespace nMruby{
+    [singleton]
+    celltype #{name} {
+        entry sInitializeTECSBridge eInitialize;
+    };
+};
+EOT
+          @@struct_list[ name ] = sttype
+        end
+      }
+
+    else
+      cdl_info( "MRBW001 MrubyBridgePlugin: signature '$1' duplicate. ignored current one", @signature.get_namespace_path )
+      @@celltypes[ @celltype_name ] << self
+    end
+  end
+
+  #=== gen_cdl_file で定義したセルタイプに 新しいセルが定義された
+  # cell のセルタイプの名前は @celltype_name
+  def new_cell cell
+    if cell.get_celltype.get_name != @celltype_name then
+      return
+    end
+
+    join = cell.get_join_list.get_item :VMname
+    if join then
+      vm_name = CDLString.remove_dquote(join.get_rhs.to_s).to_sym
+    else
+      vm_name = :"VM"
+    end
+
+    if @@VM_list[ vm_name ] == nil then
+      @@VM_list[ vm_name ] = true
+
+      initializer_celltype_cdl = "#{$gen}/#{cell.get_name}Initializer.cdl"
+      file = CFile.open( initializer_celltype_cdl, "w" )
+
+      # TECS 初期化セル(プロトタイプ宣言)
+      print_msg "  MrubyBridgePlugin: join your VM's cInitialize to #{vm_name}_TECSInitializer.eInitialize\n"
+
+      file.print <<EOT
+
+  // prototype of TECSInitializer (MBP510)
+  cell nMruby::tTECSInitializer #{vm_name}_TECSInitializer;
+EOT
+      file.close
+
+      Generator.parse( initializer_celltype_cdl, self )
+    end
+
+    if @@VM_celltypes[ vm_name ] then
+      vma = @@VM_celltypes[ vm_name ]
+
+      if vma[ @celltype_name ] then
+        vma[ @celltype_name ] << cell
+      else
+        vma[ @celltype_name ] = [cell]
+        @@VM_celltypes[ vm_name ] = vma
+      end
+    else
+      vma = { }
+      vma[ @celltype_name ] = [cell]
+      @@VM_celltypes[ vm_name ] = vma
+    end
+
+    @struct_list.each{ |stname, sttype|
+      if @@VM_struct_list[ vm_name ] then
+        @@VM_struct_list[ vm_name ][ sttype.get_name ] = sttype
+      else
+        @@VM_struct_list[ vm_name ] = { sttype.get_name => sttype }
+      end
+    }
+    @ptr_list.each{ |ptr_celltype_name, tment|
+      if @@VM_ptr_list[ vm_name ] then
+        @@VM_ptr_list[ vm_name ][ ptr_celltype_name ] = tment
+      else
+        @@VM_ptr_list[ vm_name ] = { ptr_celltype_name => tment }
+      end
+    }
+
+  end
+
+  #=== プラグインが CDL の POST コードを生成
+  # tmp_plugin_post_code.cdl への出力
+  def self.gen_post_code file
+    dbgPrint "#{self.name}: gen_post_code\n"
+    if ! @@b_gen_post_code_by_dependent then
+      gen_post_code_body file
+    end
+  end
+
+  def self.set_gen_post_code_by_dependent # by MrubyBriddeCellPlugin
+    dbgPrint "#{self.name}: set_gen_post_code_by_dependent\n"
+    @@b_gen_post_code_by_dependent = true
+  end
+
+  def self.gen_post_code_body file
+    dbgPrint "#{self.name}: gen_post_code_body\n"
+
+#     file.print <<EOT
+# namespace nMruby {
+# EOT
+# 
+#     @@ptr_list.each{ |name,tment|
+#       file.print <<EOT
+# 
+#     // MBP600
+#     [singleton]
+#     celltype #{name} {
+#         entry  sInitializeTECSBridge eInitialize;
+#     };
+# EOT
+#     }
+# 
+#     file.print <<EOT
+# };
+# EOT
+
+# gen_post_code で生成した celltype は gen_ep_func が呼び出されない #847
+#    @@struct_list.each{ |name,sttype|
+#      file.print <<EOT
+#
+#    [singleton]
+#    celltype #{name} {
+#        entry  sInitializeTECSBridge eInitialize;
+#    };
+#EOT
+#    }
+
+    file.print "\n  // MrubyBridgeSignaturePlugin: MBP601\n"
+    @@VM_celltypes.each{ |vm_name, instance_list|
+      instance_list.each { |celltype_name, array|
+        cell = array[0]
+	if cell.get_celltype then
+	  ct_name = cell.get_celltype.get_name
+        file.print <<EOT
+  cell nMruby::#{ct_name}_Initializer #{vm_name}_#{ct_name}_Initializer{ };
+EOT
+        end
+      }
+    }
+
+    file.print "  // MBP602\n"
+    @@ptr_list.each{ |name,tment|
+      file.print <<EOT
+  cell nMruby::#{name} C#{name} { };
+EOT
+    }
+
+    file.print "  // MBP603\n"
+    @@struct_list.each{ |name,sttype|
+      file.print <<EOT
+  cell nMruby::#{name} C#{name} { };
+EOT
+    }
+
+    if @@VM_celltypes == nil
+      raise "MrubyBridgeSignaturePlugin: are0"
+    end
+    @@VM_celltypes.each{ |vm_name, instance_list|
+      file.print "  /* === VM name is '#{vm_name}' === (MBP610) */\n"
+      init_cell_name = "#{vm_name}_TECSInitializer"
+
+      file.print "  cell nMruby::tTECSInitializer #{init_cell_name} {\n"
+
+      instance_list.each { |celltype_name, array|
+#        array.each{ |cell|
+#          ct_name = cell.get_celltype.get_name
+          ct_name = celltype_name
+          file.print "    cInitialize[] = #{vm_name}_#{ct_name}_Initializer.eInitialize;\n"
+#        }
+      }
+      if @@VM_ptr_list[vm_name] then
+        @@VM_ptr_list[vm_name].each{ |name, tment|
+          file.print "    cInitialize[] = C#{name}.eInitialize;\n"
+        }
+      end
+      if @@VM_struct_list[vm_name] then
+        @@VM_struct_list[vm_name].each{ |name, sttype|
+          file.print "    cInitialize[] = C#{name}.eInitialize;\n"
+        }
+      end
+      file.print "  };"
+    }
+    
+  end
+
+  ####### 以下コード生成段階 ######
+
+  #===  受け口関数の本体コードを生成（頭部と末尾は別途出力）
+  #ct_name:: Symbol    (プラグインで生成された) セルタイプ名 ．Symbol として送られてくる
+  def gen_ep_func_body( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    if @@celltypes[ ct_name ] then
+      gen_ep_func_body_bridge( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    elsif @@init_celltypes[ ct_name ] then
+      gen_ep_func_body_bridge_init( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    elsif @@ptr_list[ ct_name ] then
+      gen_ep_func_body_ptr( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    elsif @@struct_list[ ct_name ] then
+      gen_ep_func_body_struct( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    else
+      raise "MrubyBridgeSignaturePlugin: Unknown #{ct_name}"
+    end
+  end
+
+  def gen_ep_func_body_bridge( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    raise "MrubyBridgeSignaturePlugin: unexpected "
+  end
+
+  def gen_ep_func_body_bridge_init( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    file.print <<EOT
+    // CELLCB *p_cellcb = GET_CELLCB( idx );  /* no error check */     /* MBP700 */
+    struct RClass	*rc;
+
+    rc = mrb_define_class_under( mrb, TECS, \"#{@class_name}\", mrb->object_class );
+    mrb_define_method( mrb, rc, "initialize", MrubyBridge_#{@celltype_name}_initialize, MRB_ARGS_REQ(1) );
+    MRB_SET_INSTANCE_TT(rc, MRB_TT_DATA);
+EOT
+
+    @func_head_array.each{ |f|
+      if ! f.is_function? then
+        next
+      end
+      if f.get_name != :initialize then
+        func_name = f.get_name
+      else
+        func_name = :initialize_cell
+      end
+
+      ret_type = f.get_return_type
+      n_param = 0
+      f.get_paramlist.get_items.each{ |param|
+        case param.get_direction
+        when :IN, :INOUT, :OUT
+          n_param += 1
+        when :SEND, :RECEIVE
+          raise "MrubyBridgeSignaturePlugin: send, receive"
+        end
+      }
+      if n_param > 0 then
+        p_str = "MRB_ARGS_REQ( #{n_param} )"
+      else
+        p_str = "MRB_ARGS_NONE()"
+      end
+      file.print <<EOT
+	mrb_define_method( mrb, rc, "#{func_name}", MrubyBridge_#{@celltype_name}_#{func_name}, #{p_str} );
+EOT
+    }
+  end
+
+  def gen_ep_func_body_ptr( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    
+    t = @@ptr_list[ct_name]
+    type = t[1]
+    file.print <<EOT
+	struct RClass *a;                                /* MBP710 */
+
+    a = mrb_define_class_under(mrb, TECS, "#{type}Pointer", mrb->object_class);
+    MRB_SET_INSTANCE_TT(a, MRB_TT_DATA);
+
+    mrb_define_method(mrb, a, "initialize",      #{type}Pointer_initialize,   MRB_ARGS_REQ(1));
+    mrb_define_method(mrb, a, "[]",              #{type}Pointer_aget,         MRB_ARGS_REQ(1));
+    mrb_define_method(mrb, a, "value",           #{type}Pointer_get_val,      MRB_ARGS_NONE());
+    mrb_define_method(mrb, a, "[]=",             #{type}Pointer_aset,         MRB_ARGS_REQ(2));
+    mrb_define_method(mrb, a, "value=",          #{type}Pointer_set_val,      MRB_ARGS_REQ(1));
+    mrb_define_method(mrb, a, "size",            #{type}Pointer_size,         MRB_ARGS_NONE());
+    mrb_define_method(mrb, a, "length",          #{type}Pointer_size,         MRB_ARGS_NONE());
+EOT
+
+    if t[2] == :Char then
+      file.print <<EOT
+	mrb_define_method(mrb, a, "to_s",            CharPointer_to_s, MRB_ARGS_NONE());
+	mrb_define_method(mrb, a, "from_s",          CharPointer_from_s, MRB_ARGS_REQ(1));
+EOT
+    end
+  end
+
+  def gen_ep_func_body_struct( file, b_singleton, ct_name, global_ct_name, sig_name, ep_name, func_name, func_global_name, func_type, params )
+    tag = ct_name
+    structType = @@struct_list[ tag ]
+    file.print  <<EOT
+	struct RClass *a;                                /* MBP720 */
+
+	a = mrb_define_class_under(mrb, TECS, "Struct#{tag}", mrb->object_class);
+	MRB_SET_INSTANCE_TT(a, MRB_TT_DATA);
+
+	mrb_define_method(mrb, a, "initialize", Struct_#{tag}_initialize, MRB_ARGS_NONE());
+EOT
+
+      structType.get_members_decl.get_items.each{ |d|
+        file.print "  STRUCT_INIT_MEMBER( #{tag}, #{d.get_name} )\n"
+      }
+  end
+
+  #===  受け口関数の preamble (C言語)を生成する
+  #     必要なら preamble 部に出力する
+  #file::           FILE        出力先ファイル
+  #b_singleton::    bool        true if singleton
+  #ct_name::        Symbol
+  #global_ct_name:: string
+  def gen_preamble( file, b_singleton, ct_name, global_ct_name )
+    if @@celltypes[ ct_name ] then
+      gen_preamble_mruby( file, b_singleton, ct_name, global_ct_name )
+      gen_preamble_instance( file, b_singleton, ct_name, global_ct_name )
+      gen_preamble_instance_initialize( file, b_singleton, ct_name, global_ct_name )
+      gen_preamble_bridge_func( file, b_singleton, ct_name, global_ct_name )
+    elsif @@init_celltypes[ ct_name ] then
+      gen_preamble_mruby( file, b_singleton, ct_name, global_ct_name )
+      gen_preamble_instance_proto( file, b_singleton, ct_name, global_ct_name )
+    elsif @@ptr_list[ ct_name ] then
+      gen_preamble_ptr( file, b_singleton, ct_name, global_ct_name )
+    elsif @@struct_list[ ct_name ] then
+      gen_preamble_struct( file, b_singleton, ct_name, global_ct_name )
+    else
+      raise "MrubyBridgeSignaturePlugin: MrubyBridgeSignaturePlugin: Unknown #{ct_name}"
+    end
+  end
+
+  def gen_preamble_mruby( file, b_singleton, ct_name, global_ct_name )
+    file.print <<EOT
+/* MBP: MrubyBridgePlugin: MBP000 */
+#include "mruby.h"
+#include "mruby/class.h"
+#include "mruby/data.h"
+#include "mruby/string.h"
+#include "TECSPointer.h"
+#include "TECSStruct.h"
+
+#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#define DLLEXPORT __declspec(dllexport)
+#else
+#define DLLEXPORT
+#endif
+
+#ifndef NULL
+#define NULL 0
+#endif
+EOT
+  end
+
+  def gen_preamble_instance( file, b_singleton, ct_name, global_ct_name )
+    # 「#1005  MrubyBridgePlugin-test のビルドに失敗」にて追加
+    # 「#1004 idx_is_id が true の場合(domain の場合は未指定でも true) の CBP のプロトタイプ宣言」にて不要になる見込み
+    nsp = NamespacePath.new( :nMruby, true )
+    nsp.append! ct_name
+    ct = Namespace.find nsp
+    if ct.idx_is_id_act? then
+      if ct.has_CB? then
+        inib_cb = "CB"
+      elsif ct.has_INIB? then
+        inib_cb = "INIB"
+      else
+        inib_cb = nil
+      end
+      if inib_cb then
+        ct.get_cell_list.each{ |cell|
+          if cell.is_generate? then
+            name_array = ct.get_name_array( cell )
+            file.print "extern #{ct.get_global_name}_CB  #{cell.get_global_name}_#{inib_cb};\n"
+          end
+        }
+      end
+    end
+
+    file.print <<EOT
+
+/* RData MBP001 */
+static void 
+#{@celltype_name}_free( mrb_state *mrb, void *p )
+{
+	if( p )
+		(void)mrb_free( mrb, p );
+}
+
+/* RData MBP002 */
+struct mrb_data_type data_type_#{@celltype_name} =
+{
+	"#{@celltype_name}",
+	#{@celltype_name}_free
+};
+
+/* RData MBP003 */
+struct tecs_#{@celltype_name} {
+    CELLCB  *cbp;
+};
+
+/* name_to_cbp MBP010 */
+const struct name_to_cbp_#{@celltype_name} {
+    char   *name;    /* Cell Name */
+    CELLCB *cbp;
+} Name_to_cbp_#{@celltype_name}[] = {
+EOT
+
+    nsp = NamespacePath.new( :nMruby, true )
+    nsp.append! ct_name
+    ct = Namespace.find nsp
+
+    ct.get_cell_list.each{ |cell|
+      if cell.is_generate? then
+        join_list = cell.get_join_list
+        join = join_list.get_item( :bridgeName )
+        if join == nil then
+          name = "\"#{cell.get_name}\""
+        else
+          rhs = join.get_rhs
+          attr_list = cell.get_celltype.get_attribute_list
+          name = rhs.eval_const join_list, attr_list
+        end
+
+        name_array = ct.get_name_array( cell )
+        file.print "\t{ #{name}, #{name_array[8]} },\n"
+      end
+    }
+
+    file.print <<EOT
+\t{ 0, 0 },
+};
+
+EOT
+
+  end
+
+  def gen_preamble_ptr( file, b_singleton, ct_name, global_ct_name )
+    tment = @@ptr_list[ ct_name ]
+    file.print <<EOT
+
+GET_SET_#{tment[3]}( #{tment[1]}, #{tment[0]} )
+POINTER_CLASS( #{tment[1]}, #{tment[0]} )
+EOT
+  end
+
+  def gen_preamble_struct( file, b_singleton, ct_name, global_ct_name )
+    tag = ct_name
+    structType = @@struct_list[ tag ]
+    file.print <<EOT
+/* struct #{tag} */
+STRUCT_CLASS( #{tag} )
+EOT
+
+    structType.get_members_decl.get_items.each{ |d|
+      type = d.get_type.get_original_type
+      case type
+      when IntType, CIntType
+        bit_size = type.get_bit_size
+        case bit_size
+        when -11, -1
+          tType = "Char"
+          ttype = "char"
+        when -2
+          tType = "Short"
+          ttype = "short"
+        when -3
+          tType = "Int"
+          ttype = "int"
+        when -4
+          tType = "Long"
+          ttype = "long"
+        when -5
+          tType = "IntPtr"
+          ttype = "intptr"
+        when 8, 16, 32, 64
+          tType = "Int#{bit_size}"
+          ttype = "int#{bit_size}"
+        else
+            raise "MrubyBridgeSignaturePlugin: MrubyBridgeSignaturePlugin: cannot handle bit_size #{bit_size}"
+        end
+        file.print "MEMBER_GET_SET_INT( #{tag}, #{d.get_name}, #{tType}, #{ttype} )\n"
+      when FloatType, CFloatType
+        file.print "MEMBER_GET_SET_FLOAT( #{tag}, #{d.get_name} )\n"
+      else
+        raise "MrubyBridgeSignaturePlugin: MrubyBridgeSignaturePlugin: cannot handle type"
+      end
+    }
+
+  end
+
+  def gen_preamble_instance_proto( file, b_singleton, ct_name, global_ct_name )
+    file.print <<EOT
+//  Prototype MBP400
+mrb_value  MrubyBridge_#{@celltype_name}_initialize( mrb_state *mrb, mrb_value self);
+EOT
+
+    @func_head_array.each{ |f|
+      if ! f.is_function? then
+        next
+      end
+      if f.get_name != :initialize then
+        func_name = f.get_name
+      else
+        func_name = :initialize_cell
+      end
+
+      ret_type  = f.get_return_type
+      ret_type0 = f.get_return_type.get_original_type
+      b_void    = ret_type0.is_void?
+      plist     = f.get_paramlist.get_items
+
+      file.print <<EOT
+mrb_value  MrubyBridge_#{@celltype_name}_#{func_name}( mrb_state *mrb, mrb_value self );
+EOT
+    }
+  end
+
+  def gen_preamble_instance_initialize( file, b_singleton, ct_name, global_ct_name )
+    file.print <<EOT
+
+/* MBP100 */
+mrb_value
+MrubyBridge_#{@celltype_name}_initialize( mrb_state *mrb, mrb_value self)
+{
+	mrb_value	name;
+	struct tecs_#{@celltype_name} *tecs_cb;
+	const struct name_to_cbp_#{@celltype_name} *ntc;
+
+	/* set DATA_TYPE earlier to avoid SEGV */
+	DATA_TYPE( self ) = &data_type_#{@celltype_name};
+
+	mrb_get_args(mrb, "o", &name );
+	if( mrb_type( name ) != MRB_TT_STRING ){
+		mrb_raise(mrb, E_NAME_ERROR, "cell name not string");
+	}
+	for( ntc = &Name_to_cbp_#{@celltype_name}[0]; ntc->name != NULL; ntc++ ){
+		if( strcmp( ntc->name, RSTRING_PTR( name ) ) == 0 )
+			break;
+	}
+	if( ntc->name == 0 ){
+		mrb_raise(mrb, E_ARGUMENT_ERROR, "cell not found");
+	}
+	tecs_cb = (struct tecs_#{@celltype_name} *)mrb_malloc(mrb, sizeof(struct tecs_#{@celltype_name}) );
+	tecs_cb->cbp = ntc->cbp;
+	DATA_PTR( self ) = (void *)tecs_cb;
+
+	return self;
+}
+EOT
+  end
+
+  def gen_preamble_bridge_func( file, b_singleton, ct_name, global_ct_name )
+
+    @func_head_array.each{ |f|
+      if ! f.is_function? then
+        next
+      end
+      if f.get_name != :initialize then
+        func_name = f.get_name
+      else
+        func_name = :initialize_cell
+      end
+
+      ret_type  = f.get_return_type
+      ret_type0 = f.get_return_type.get_original_type
+      b_void    = ret_type0.is_void?
+      plist     = f.get_paramlist.get_items
+
+      file.print <<EOT
+
+/* bridge function (MBP101) */
+mrb_value
+MrubyBridge_#{ct_name}_#{func_name}( mrb_state *mrb, mrb_value self )
+{
+	/* cellcbp (MBP105) */
+	CELLCB	*p_cellcb = ((struct tecs_#{@celltype_name} *)DATA_PTR(self))->cbp;
+EOT
+      
+      file.print "	/* variables for return & parameter (MBP110) */\n"
+      if ! b_void then
+        file.print "	", ret_type.get_type_str, "\tret_val", ret_type.get_type_str_post, ";\n"
+      end
+      arg_str = ""
+      n_param  = 0
+      n_scalar = 0
+      n_ptr    = 0
+      n_struct = 0
+      plist.each{ |param|
+        case param.get_direction
+        when :IN, :INOUT, :OUT
+          type = param.get_type.get_original_type
+          case type
+          when IntType
+            file.print "	mrb_int	mrb_", param.get_name, ";\n"
+            file.print "	#{param.get_type.get_type_str}	#{param.get_name}#{param.get_type.get_type_str_post};\n"
+            arg_str += "i"
+            n_param += 1
+            n_scalar += 1
+          when FloatType
+            file.print "	mrb_float	mrb_", param.get_name, ";\n"
+            file.print "	#{param.get_type.get_type_str}	#{param.get_name}#{param.get_type.get_type_str_post};\n"
+            arg_str += "f"
+            n_param += 1
+            n_scalar += 1
+          when BoolType
+            file.print "	mrb_value	mrb_", param.get_name, ";\n"
+            file.print "	#{param.get_type.get_type_str}	#{param.get_name}#{param.get_type.get_type_str_post};\n"
+            arg_str += "o"
+            n_param += 1
+            n_scalar += 1
+          when PtrType
+            file.print "	mrb_value	mrb_", param.get_name, ";\n"
+            file.print "	#{param.get_type.get_type_str}	#{param.get_name}#{param.get_type.get_type_str_post};\n"
+            arg_str += "o"
+            n_param += 1
+            n_ptr += 1
+          when StructType
+            file.print "	mrb_value	mrb_", param.get_name, ";\n"
+            file.print "	#{param.get_type.get_type_str}	*#{param.get_name}#{param.get_type.get_type_str_post};\n"
+            arg_str += "o"
+            n_param += 1
+            n_struct += 1
+          else
+            raise "MrubyBridgeSignaturePlugin: Unknown type"
+          end
+        end
+      }
+
+      if n_param > 0 then
+        file.print "	/* retrieve arguments (MBP111) */\n"
+        file.print "	mrb_get_args(mrb, \"#{arg_str}\""
+        plist.each{ |param|
+          case param.get_direction
+          when :IN, :INOUT, :OUT
+            type = param.get_type.get_original_type
+            case type
+            when IntType
+              file.print ", &mrb_", param.get_name
+            when FloatType
+              file.print ", &mrb_", param.get_name
+            when BoolType
+              file.print ", &mrb_", param.get_name
+            when PtrType
+              file.print ", &mrb_", param.get_name
+            when StructType
+              file.print ", &mrb_", param.get_name
+            else
+              raise "MrubyBridgeSignaturePlugin: Unknown type"
+            end
+          end
+        }
+        file.print " );\n"
+
+        if n_scalar > 0 || n_struct > 0 then
+          file.print "	/* convert mrb to C (MBP112) */\n"
+        end
+        plist.each{ |param|
+          case param.get_direction
+          when :IN, :INOUT, :OUT
+            type = param.get_type.get_original_type
+            case type
+            when IntType
+              ttype = type.get_original_type
+              tment = get_type_map_ent ttype
+              file.print "	VALCHECK_#{tment[1]}( mrb, mrb_#{param.get_name} );\n"
+              file.print "	#{param.get_name} = (#{param.get_type.get_type_str})mrb_#{param.get_name};\n"
+            when FloatType
+              file.print "	#{param.get_name} = (#{param.get_type.get_type_str})mrb_#{param.get_name};\n"
+            when BoolType
+              file.print "	#{param.get_name} = mrb_test( mrb_#{param.get_name} );\n"
+            when PtrType
+              ttype = type.get_type.get_original_type
+              case ttype
+              when StructType
+                file.print "	CHECK_STRUCT( #{ttype.get_name}, mrb_#{param.get_name} );\n"
+                file.print "	#{param.get_name} = (struct #{ttype.get_name}*)DATA_PTR(mrb_#{param.get_name});\n"
+              when IntType
+              when FloatType
+              when BoolType
+              else
+                raise "MrubyBridgeSignaturePlugin: cannot handle type"
+              end
+            when StructType
+              file.print "	CHECK_STRUCT( #{type.get_name}, mrb_#{param.get_name} );\n"
+              file.print "	#{param.get_name} = (struct #{type.get_name}*)DATA_PTR(mrb_#{param.get_name});\n"
+            else
+              raise( "MrubyBridgeSignaturePlugin: canot treat class" )
+            end
+          end
+        }
+
+        if n_ptr > 0 then
+          file.print "	/* convert mrb to C for pointer types (MBP113) */\n"
+        end
+        plist.each{ |param|
+          case param.get_direction
+          when :IN, :INOUT, :OUT
+            type = param.get_type.get_original_type
+            case type
+            when IntType
+            when FloatType
+            when BoolType
+            when PtrType
+              case type.get_type.get_original_type
+              when StructType
+              when IntType
+                ptrMrb2C file, type, param
+              when FloatType
+                ptrMrb2C file, type, param
+              when BoolType
+                ptrMrb2C file, type, param
+              else
+                raise "MrubyBridgeSignaturePlugin: cannot handle type"
+              end
+            when StructType
+            else
+              raise( "MrubyBridgeSignaturePlugin: canot treat class" )
+            end
+          end
+        }
+
+      end
+
+      file.print "	/* calling target (MBP120) */\n"
+      if ! b_void then
+        file.print "	ret_val = "
+      else
+        file.print "	"
+      end
+      delim = ""
+      file.print "cTECS_", f.get_name, "( "
+      plist.each{ |param|
+        if param.get_type.get_original_type.kind_of? StructType then
+          aster = "*"
+        else
+          aster = ""
+        end
+        file.print delim, aster, param.get_name
+        delim = ", "
+      }
+      file.print " );\n"
+      
+      file.print "	/* return (MBP130) */\n"
+      case ret_type0
+      when BoolType
+        file.print "	return ret_val ? mrb_true_value() : mrb_false_value();\n"
+      when IntType
+        file.print "	return mrb_fixnum_value( ret_val );\n"
+      when FloatType
+        file.print "	return mrb_float_value( mrb, ret_val );\n"
+      when VoidType
+        file.print "	return  mrb_nil_value();\n"
+      else
+        raise "MrubyBridgeSignaturePlugin: unknown type"
+      end
+
+      file.print "}\n"
+    }
+  end
+
+  def ptrMrb2C file, type, param
+    ttype = type.get_type.get_original_type
+    tment = get_type_map_ent ttype
+    tstr = tment[1]
+=begin
+    case ttype
+    when IntType
+      bit_size = ttype.get_bit_size
+      case bit_size
+      when -1, -11
+        tstr = "Char"
+      when 8, 16, 32, 64
+        tstr = "Int#{bit_size}"
+      when -2
+        tstr = "Short"
+      when -3
+        tstr = "Int"
+      when -4
+        tstr = "Long"
+      when -5
+        tstr = "IntPtr"
+      else
+        raise "MrubyBridgeSignaturePlugin: not handle type"
+      end
+    when FloatType
+      if ttype.get_bit_size == 32 then
+        tstr = "Float32"
+      else
+        tstr = "Double64"
+      end
+    when BoolType
+      tstr = "Bool"
+    when StructType
+      raise "MrubyBridgeSignaturePlugin: not handle type 2 #{ttype}"
+    else
+      raise "MrubyBridgeSignaturePlugin: not handle type 2 #{ttype}"
+    end
+=end
+    if( param.get_size ) then
+      sz_str = param.get_size.to_s
+    elsif param.get_string then      # mikan とりあえず size_is と string の同時指定 (二重ポインタ) はなし
+      sz_str = param.get_string.to_s
+    else
+      sz_str = "1"
+    end
+    # unsigned 型の場合には cast が必要
+    if ttype.get_original_type.get_type_str != param.get_type.get_type.get_type_str then
+      cast_str = "(#{param.get_type.get_type_str})"
+    else
+      cast_str = ""
+    end
+
+    modify = ""
+    case param.get_direction
+    when :OUT, :INOUT
+      case tstr
+      when "Char", "SChar", "UChar"
+        modify = "Mod"
+      end
+    end
+    if param.is_nullable? then
+      nullable = "Nullable"
+    else
+      nullable = ""
+    end
+
+    # file.print "	CHECK_POINTER( #{tstr}, mrb_#{param.get_name}, #{sz_str} );\n"
+    # file.print "	#{param.get_name} = #{cast_str}((struct #{tstr}PointerBody*)(DATA_PTR(mrb_#{param.get_name})))->buf;\n"
+    file.print "	#{param.get_name} = CheckAndGet#{tstr}Pointer#{modify}#{nullable}( mrb, mrb_#{param.get_name}, #{sz_str} );\n"
+  end
+
+  def get_celltype_name
+    @celltype_name
+  end
+
+  #=== プラグイン引数 ignoreUnsigned
+  def set_ignoreUnsigned rhs
+    if rhs == "true" || rhs == nil then
+      @b_ignoreUnsigned = true
+    end
+  end
+  #=== プラグイン引数 include
+  def set_include rhs
+    funcs = rhs.split ','
+    funcs.each{ |rhs_func|
+      found = false
+      rhs_func.gsub!( /\s/, "" )
+      @signature.get_function_head_array.each{ |a|
+        if rhs_func.to_sym == a.get_name then
+          found = true
+        end
+      }
+      if found == false then
+        cdl_error( "MRB1009 include function '$1' not found in signagture '$2'", rhs, @signature.get_name )
+      else
+        @includes << rhs_func.to_sym
+      end
+    }
+  end
+  #=== プラグイン引数 exclude
+  def set_exclude rhs
+    funcs = rhs.split ','
+    funcs.each{ |rhs_func|
+      rhs_func.gsub!( /\s/, "" )
+      func_head = @signature.get_function_head rhs_func.to_sym
+      if func_head == false then
+        cdl_error( "MRB1010 exclude function '$1' not found in signagture '$2", rhs, @signature.get_name )
+      else
+        @excludes << rhs_func.to_sym
+      end
+    }
+  end
+  #=== プラグイン引数 auto_exclude
+  def set_auto_exclude rhs
+    if rhs == "false" then
+      @b_auto_exclude = false
+    elsif rhs == "true" then
+      @b_auto_exclude = true     # auto_exclude = true by default 
+    else
+      cdl_warning( "MRB9999 auto_exclude: unknown rhs value ignored. specify true or false" )
+    end
+  end
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MultiPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MultiPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/MultiPlugin.rb	(revision 429)
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2017 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+#== MultiPlugin クラス
+class MultiPlugin < Node
+  def self.get_plugin superClass
+    # case when (つまりは ===) では、期待したように一致しない模様
+    if superClass == SignaturePlugin then
+      return SignaturePlugin
+    elsif superClass == CelltypePlugin
+      return CelltypePlugin
+    elsif superClass == CellPlugin
+      return CellPlugin
+    elsif superClass == ThroughPlugin
+      return ThroughPlugin
+    elsif superClass == DomainPlugin
+      return DomainPlugin
+    else
+      return nil
+    end
+  end
+end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/NotifierPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/NotifierPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/NotifierPlugin.rb	(revision 429)
@@ -1,3 +1,6 @@
 # -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
 #
 #  Copyright (C) 2015 by Ushio Laboratory
@@ -5,5 +8,38 @@
 #  Copyright (C) 2015-2016 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2015-2018 by TOPPERS Project
 #
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#  $Id$
+#++
 
 NotifierPluginArgProc = {
@@ -31,6 +67,6 @@
 	#  - 受け口関数 - 一般化を行うと，実行時コストが大きく増大してしまうことが
 	#    確認されている．このため，一般化は行わない．EntryPropertyにも含めない．
-	#  - セルインデックス - CELLIDX型で，型の規定はないが，"ポインタ値であったり
-	#    整数値であったりする。" (TECS 5.3.6) より，インデックスかポインタある
+	#  - セルインデックス - CELLIDX型で，型の規定はないが，"ホ゜インタ値て゛あったり
+	#    整数値て゛あったりする。" (TECS 5.3.6) より，インデックスかポインタある
 	#    ことが分かる．インデックスだとすると，この値はセルCBのアドレッシングに
 	#    使用されるので，intptr_tに収まる筈である．ポインタの場合，当然intptr_t
@@ -58,4 +94,6 @@
 	#  - アダプタ関数へののポインタ
 	#  - アダプタ関数の引数
+	#
+	#   $Id$
 
 	# @private
@@ -126,6 +164,7 @@
 			# @param [Cell, Symbol] cell セル．セルについて一般化する場合は `:generic`
 			# @param [Integer, Symbol, nil] subscript 添字．添字について一般化する場合は `:generic`
+			# @param [Celltype] 呼び先のセルタイプ、cell==:generic の場合のみ有効
 			# @private
-			def generate_inner(context, fn_name, cell, subscript)
+			def generate_inner(context, fn_name, cell, subscript, callee_ct=nil)
 				source_file = context.source_file
 				header_file = context.header_file
@@ -139,5 +178,6 @@
 				unless ct.is_singleton?
 					if cell == :generic
-						params << "(CELLIDX)extinf"
+						params << "(#{callee_ct.get_global_name}_IDX)extinf"
+						# params << "(CELLIDX)extinf"
 					else
 						# セルのCELLIDXを得る
@@ -231,5 +271,5 @@
 
 						generate_inner context, fn_name,
-							:generic, subscript
+							:generic, subscript, ct
 
 						props.each { |prop|
@@ -443,5 +483,5 @@
 	    # join:: Join : 結合 (declarationがPortであるもの)
 		def validate_join(handler, cell, join)
-        	return !generate_attr_map(handler, cell).nil?
+        return !generate_attr_map(handler, cell).nil?
 		end
 
@@ -870,9 +910,9 @@
     	parse_plugin_arg
     	unless @factory
-    		cdl_error("ASP1003 celltype $1: option factory is not specified",
+    		cdl_error("NTF1003 celltype $1: option factory is not specified",
     			celltype.get_name)
     	end
     	unless @output_file
-    		cdl_error("ASP1003 celltype $1: option output_file is not specified",
+    		cdl_error("NTF1003 celltype $1: option output_file is not specified",
     			celltype.get_name)
     	end
@@ -881,5 +921,5 @@
     def set_factory(template_string)
     	unless @factory.nil?
-    		cdl_error("ASP1003 celltype $1: option factory was specified more than once",
+    		cdl_error("NTF1003 celltype $1: option factory was specified more than once",
     			celltype.get_name)
     	end
@@ -889,5 +929,5 @@
     def set_factory_output_file(output_file)
     	unless @output_file.nil?
-    		cdl_error("ASP1003 celltype $1: option output_file was specified more than once",
+    		cdl_error("NTF1003 celltype $1: option output_file was specified more than once",
     			celltype.get_name)
     	end
@@ -896,5 +936,5 @@
 
     def gen_factory file
-        puts "===== begin #{@celltype.get_name.to_s} plugin ====="
+        # puts "===== begin #{@celltype.get_name.to_s} plugin ====="
 
         kernelCfg = AppFile.open( "#{$gen}/#{@output_file}" )
@@ -920,5 +960,5 @@
 			subst_attr = @celltype.find(name)
 			unless subst_attr
-	    		cdl_error( "ASP1007 celltype $1: additional_param: attribute $2 does not exist.",
+	    		cdl_error( "NTF1007 celltype $1: additional_param: attribute $2 does not exist.",
 	    			@celltype.get_name, name)
 			end
@@ -933,8 +973,9 @@
 
         kernelCfg.close
-        puts "===== end #{@celltype.get_name.to_s} plugin ====="
+        # puts "===== end #{@celltype.get_name.to_s} plugin ====="
     end
 
     def gen_factory_for_cell(kernelCfg, cell)
+      # print "########## gen_factory_for_cell cell=#{cell.get_name}\n"
     	handler_flags = []
     	handler_args = []
@@ -957,12 +998,28 @@
 			when 'false' then ignoreErrors = false
 			else
-				cdl_warning( "ASP1005 cell $1: unrecognized value '$2' specified for ignoreErrors",
+				cdl_warning2( cell.get_locale, "NTF1005 cell $1: unrecognized value '$2' specified for ignoreErrors",
 					cell.get_name, ignoreErrors )
 				ignoreErrors = false
 		end
 
+    # ドメイン指定用文字列
+    pre_text  = ""
+    post_text = "\n"
+    indent    = ""
+ 
     	[EVENT_HANDLER, ERROR_HANDLER].each { |handler|
     		# 呼び口の結合を取得
     		call_join = cell.get_join_list.get_item(handler.call_port_name.to_sym)
+        domain_root = cell.get_region.get_domain_root
+        if cell.get_region.get_domain_root.get_domain_type then
+          # print "cell=#{cell.get_name} domain_root=#{domain_root.get_name} domain_type=#{domain_root.get_domain_type.get_name} domain_option=#{domain_root.get_domain_type.get_option}\n"
+        else
+          # print "cell=#{cell.get_name} domain_root=#{cell.get_region.get_domain_root.get_name}\n"
+        end
+        if call_join
+          # print "validate_join: hanlder=#{handler.class.name} cell=#{cell.get_name} join=#{call_join.get_name} rhs_cell=#{call_join.get_cell}\n"
+        else
+          # print "validate_join: hanlder=#{handler.class.name} cell=#{cell.get_name}\n"
+        end
 
 	    	# ハンドラタイプを判別する
@@ -972,10 +1029,59 @@
 
 	    	if matches.length == 0
-	    		cdl_error( "ASP1001 cell $1: no matching handler type found for $2", cell.get_name, handler.call_port_name )
+	    		cdl_error2( cell.get_locale, "NTF1001 cell $1: no matching handler type found for $2", cell.get_name, handler.call_port_name )
 	    		next
-	    	end
+        end
 
 			# 最初に見つかった有効なハンドラタイプを使用
 	    	ht = matches[0]
+
+      # ドメインプラグインが指定されている場合、所属ドメインのチェック
+      domain_root = cell.get_region.get_domain_root
+      if domain_root.get_domain_type then
+        if domain_root.get_domain_type.get_name == :HRP then
+          option = domain_root.get_domain_type.get_option
+          matches.each{ |match|
+            # p "match:#{match}"
+            case match
+            when ActivateTaskHandlerType,       WakeUpTaskHandlerType,
+                 SetVariableHandlerType,        SetVariableToErrorCodeHandlerType,
+ 		             IncrementVariableHandlerType,  SignalSemaphoreHandlerType, 
+		             SetEventflagHandlerType,       SendToDataqueueHandlerType,
+		             SendErrorCodeToDataqueueHandlerType
+              if option == "OutOfDomain" then
+                cdl_error2( cell.get_locale, "NTF9999: NotifierPlugin: $1 cannot be placed out of domain", cell.get_name )
+              elsif call_join.get_cell.get_region.get_domain_root == nil ||
+                    call_join.get_cell.get_region.get_domain_root != domain_root then
+                cdl_error2( cell.get_locale, "NTF9999: NotifierPlugin: $1 and $2 must be placed in same domain", cell.get_name, call_join.get_cell.get_name )
+              end
+              dbgPrint "#{self.class.name}: match pattern 1.\n"
+            when UserHandlerType
+              if option != "kernel" then
+                cdl_error2( cell.get_locale, "NTF9999: NotifierPlugin: $1 can be placed in kernel domain only, because notify target is handler", cell.get_name )
+              elsif call_join.get_cell.get_region.get_domain_root == nil ||
+                    call_join.get_cell.get_region.get_domain_root != domain_root then
+                cdl_error2( cell.get_locale, "NTF9999: NotifierPlugin: $1 and $2 must be placed in same domain", cell.get_name, call_join.get_cell.get_name )
+              end
+              dbgPrint "#{self.class.name}: match pattern 2.\n"
+		        when NullHandlerType.new  # エラー通知を指定していない
+              dbgPrint "#{self.class.name}: match pattern 3.\n"
+            end
+          }
+
+          # if cell.get_region.get_param == :KERNEL_DOMAIN
+          if option == "kernel"
+            pre_text  = "KERNEL_DOMAIN{\n"
+            post_text = "}\n"
+            indent    =  "\t"
+          elsif option != "OutOfDomain" then
+            pre_text  = "DOMAIN(#{domain_root.get_name.to_s}){\n"
+            post_text = "}\n"
+            indent    =  "\t"
+          end
+        else
+          cdl_error( "NTF9999: NotifierPlugin: unknown domain type $1", domain_root.get_domain_type.get_name )
+        end
+
+      end
 
 			# 通知ハンドラで「エラーが発生するはずがない」のに「エラーハンドラが指定されている」
@@ -984,9 +1090,9 @@
 			#  なため、検出は行わない。)
     		if handler == ERROR_HANDLER && !ht.is_a?(NullHandlerType) && !event_handler_might_fail
-	    		cdl_error( "ASP1004 cell $1: handler type $2 which never raises an error was inferred for the normal notification handler, but an error notification handler was specified.",
+	    		cdl_error2( cell.get_locale, "NTF1004 cell $1: handler type $2 which never raises an error was inferred for the normal notification handler, but an error notification handler was specified.",
 	    			cell.get_name, handler_flag)
     		end
     		if handler == ERROR_HANDLER && ht.is_a?(NullHandlerType) && event_handler_might_fail && !ignoreErrors
-	    		cdl_warning( "ASP1006 cell $1: handler type $2 which might raise an error was inferred for the normal notificaton handler, but an error notification handler was not specified.",
+	    		cdl_warning2( cell.get_locale, "NTF1006 cell $1: handler type $2 which might raise an error was inferred for the normal notificaton handler, but an error notification handler was not specified.",
 	    			cell.get_name, handler_flag)
     		end
@@ -1055,11 +1161,33 @@
 			# $id$等の置換
 			cell.get_celltype.subst_name(subst, name_array)
-    	}
-
-    	# 出力
-    	kernelCfg.puts text
-
-    end
-    private :gen_factory_for_cell
+      }
+
+     # 出力 (CRE_xxx)
+     kernelCfg.print pre_text
+     kernelCfg.print indent, text, "\n"
+     gen_sac kernelCfg, cell, indent
+     kernelCfg.print post_text
+   end
+
+   def gen_sac file, cell, indent
+     domain_root = cell.get_region.get_domain_root
+     if domain_root.get_domain_type then
+       id = (cell.get_attr_initializer :id).to_s
+                 name_array = cell.get_celltype.get_name_array(cell)
+       case cell.get_celltype.get_name
+       when :tCyclicNotifier
+         obj_type = "CYC"
+       when :tAlarmNotifier
+         obj_type = "ALM"
+       else
+         raise "NotifierPlugin: unknown celltype #{cell.get_celltype.get_name}"
+       end
+       id = cell.get_celltype.subst_name(id, name_array)
+       # p obj_type
+       # p HRPPlugin.get_sac_str cell
+       file.print indent, "SAC_#{obj_type}( #{id}, #{HRPPlugin.get_sac_str cell} );\n"
+     end
+   end
+   private :gen_factory_for_cell
 
 end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueRPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueRPCPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/OpaqueRPCPlugin.rb	(revision 429)
@@ -56,5 +56,5 @@
   #=== RPCPlugin の initialize
   #  説明は ThroughPlugin (plugin.rb) を参照
-  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
     super
     @b_noClientSemaphore = false
@@ -254,4 +254,9 @@
     nest = @end_region.gen_region_str_pre file
     nest_str = "  " * nest
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
 
     if @serverErrorHandler then
@@ -282,5 +287,5 @@
 #{nest_str}  cell #{@rpc_server_channel_celltype_name} #{@serverChannelCell}_Unmarshaler {
 #{nest_str}    cChannel = #{@serverChannelCell}.eC1;
-#{nest_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name};
+#{nest_str}    #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name}#{subscript};
 #{serverErrorHandler_str}#{nest_str}  };
 EOT
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RPCPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RPCPlugin.rb	(revision 429)
@@ -65,5 +65,5 @@
   #=== RPCPlugin の initialize
   #  説明は ThroughPlugin (plugin.rb) を参照
-  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
     super
     @b_noClientSemaphore = false
@@ -197,4 +197,9 @@
     nest = @region.gen_region_str_pre file
     indent_str = "  " * nest
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
 
     file.print <<EOT
@@ -233,5 +238,5 @@
     file.print <<EOT
 #{indent_str}cell #{@rpc_channel_celltype_name} #{@cell_name} {
-#{indent_str}  #{@call_port_name} = #{@next_cell.get_name}.#{@next_cell_port_name};
+#{indent_str}  #{@call_port_name} = #{@next_cell.get_name}.#{@next_cell_port_name}#{subscript};
 #{indent_str}  cTDR         = #{@channelCellName}.eTDR;
 #{indent_str}  cEventflag   = #{@channelCellName}.eEventflag;
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RepeatCellPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RepeatCellPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RepeatCellPlugin.rb	(revision 429)
@@ -0,0 +1,169 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#
+#  Copyright (C) 2015-2018 by TOPPERS Project
+#
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#  $Id$
+#++
+
+#== cell を count 個繰り返すセルプラグイン
+# 不完全点：
+#    指定子に対応していない
+#       cell の指定子 (allocator, id)
+#       結合の指定子 (through)
+class RepeatCellPlugin < CellPlugin
+
+  @@plugin_list = []
+  RepeatCellPluginArgProc = {
+    "count" => Proc.new { |obj,rhs| obj.set_count rhs }
+  }
+
+  def initialize( cell, option )
+    super
+    @@plugin_list << self
+    print "RepeatCellPlugin: #{@cell.get_name}\n"
+    # cell.show_tree 0
+    # @cell.get_join_list.get_items.each{ |j|
+    #  print "Join: #{j.get_name} = #{j.get_rhs.to_s}\n"
+    # }
+    @count = 0
+    @plugin_arg_check_proc_tab = RepeatCellPluginArgProc
+    parse_plugin_arg
+  end
+
+  def gen_cdl_file( file )
+    if $verbose then
+      print "#{self.class}: repeat #{@cell.get_name} #(num} times\n"
+    end
+
+    nest = @cell.get_region.gen_region_str_pre file
+    indent_str = "  " * nest
+    @cell.get_name.to_s =~ /.*[^0-9]([0-9]+)\z/
+    if $1 then
+      tail_zero = $1
+      bname = @cell.get_name.to_s.gsub( /[0-9]+\z/, "" )
+    else
+      cdl_error( "#{self.class}: #{@cell.get_name}'s name ends without '0-9'")
+      return
+    end
+    base_count = tail_zero.to_i
+
+    count = 1
+    num = @count
+    file.print "/*  #{num} times repeat of '#{@cell.get_name}' */\n"
+    while count < num
+
+      # セル名のカウント
+      count_str = (count + base_count).to_s
+      if tail_zero.length > count_str.length then
+        leading_zero = "0" * ( tail_zero.length - count_str.length )
+      else
+        leading_zero = ""
+      end
+      cname = bname + leading_zero + count_str
+
+      #   "cell tCelltype Cell {" 
+      file.print "#{indent_str}cell #{@cell.get_celltype.get_name} #{cname}{\n"
+
+      # Join の CDL 文字列生成
+      @cell.get_join_list.get_items.each{ |j|
+
+        # Join の右辺の解析
+        res = j.get_rhs.analyze_cell_join_expression
+        if res then
+          nsp, subscript, port_name = res[0], res[1], res[2]
+        else
+          nsp = j.get_rhs.analyze_single_identifier
+          if nsp then
+            subscript, port_name = nil, nil
+          else
+            file.print "#{indent_str}  #{j.get_name} = #{j.get_rhs.to_s};\n"
+            next
+          end
+        end
+
+        # 右辺のセル名 (末尾の数字をカウントアップ)
+        nsp.get_name.to_s =~ /(.*[^0-9])([0-9]+)\z/
+        if $2 then
+          rhs_tail_num = $2
+          rhs_name_count = count + rhs_tail_num.to_i
+          if rhs_tail_num.length > rhs_name_count.to_s.length then
+            leading_zero = "0" * ( rhs_tail_num.length - rhs_name_count.to_s.length )
+          else
+            leading_zero = ""
+          end
+          rhs_cname = $1 + leading_zero + rhs_name_count.to_s
+          nsp = nsp.change_name_clone rhs_cname
+        end
+
+        # Join 文字列の出力
+        if port_name then
+          # 右辺は セルの結合
+          if subscript then
+            file.print "#{indent_str}  #{j.get_name} = #{nsp.get_path_str}.#{port_name}[#{(count+subscript).to_s}];\n"
+          else
+            file.print "#{indent_str}  #{j.get_name} = #{nsp.get_path_str}.#{port_name};\n"
+          end
+        else
+          # 右辺は単一の識別子
+          file.print "#{indent_str}  #{j.get_name} = #{nsp.get_path_str};\n"
+        end
+      }
+
+      file.print "#{indent_str}};\n\n"
+      count += 1
+    end
+
+    @cell.get_region.gen_region_str_post file
+  end
+
+  #=== count オプションの解析
+  def set_count rhs
+    if rhs =~ /\A\d+\z/
+      @count = rhs.to_i
+    else
+      nsp = NamespacePath.new( rhs.to_sym, true )
+      expr = Expression.create_single_identifier( nsp, nil )
+      res = expr.eval_const( nil )
+      if res == nil then
+        cdl_error( "count value ($1): not single identifier or integer number", rhs.to_s )
+        @count = 0
+      else
+        @count = res
+      end
+    end
+  end
+
+end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RepeatJoinPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RepeatJoinPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/RepeatJoinPlugin.rb	(revision 429)
@@ -0,0 +1,131 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#
+#  Copyright (C) 2015-2018 by TOPPERS Project
+#
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#  $Id$
+#++
+
+class RepeatJoinPlugin < CellPlugin
+
+  RepeatJoinPluginArgProc = {
+    "count" => Proc.new { |obj,rhs| obj.set_count rhs }
+  }
+
+  def initialize( cell, option )
+    super
+    print "RepeatJoinPlugin: #{@cell.get_name}\n"
+    # cell.show_tree 0
+    @plugin_arg_check_proc_tab = RepeatJoinPluginArgProc
+    parse_plugin_arg
+
+    @cell.get_join_list.get_items.each{ |j|
+      # print "Join: #{j.get_name} = #{j.get_rhs.to_s}\n"
+
+      # Join の右辺を解析
+      ret = j.get_rhs.analyze_cell_join_expression
+      if ret == nil then
+        next
+      end
+      rhs_nsp = ret[0]; rhs_subscript = ret[1]; rhs_port_name = ret[2]
+
+      # 呼び口配列で、添数が 0 の場合にのみカウントアップさせる
+      if j.get_subscript == 0 then
+        rhs_name = rhs_nsp.get_name.to_s
+        if rhs_name =~ /(.*[^0-9])([0-9]+)\z/ then
+          b_rhs_name_count = true
+          rhs_name = $1
+          n_digits = $2.length
+          rhs_count_base = $2.to_i
+        else
+          b_rhs_name_count = false
+          rhs_count_base = 0
+        end
+
+        if rhs_subscript && rhs_subscript == 0 then
+          b_rhs_subscript_count = true
+        else
+          b_rhs_subscript_count = false
+        end
+
+        count = 1
+        while count < @count
+          count_str = (count+rhs_count_base).to_s
+
+          if b_rhs_subscript_count then
+            rhs_subscript = count
+          end
+
+          if b_rhs_name_count then
+            if n_digits - count_str.length > 0 then
+              leading_zero = "0" * ( n_digits - count_str.length )
+            else
+              leading_zero = ""
+            end
+
+            rhs_name_real = rhs_name + leading_zero + count_str
+          else
+            rhs_name_real = rhs_name
+          end
+          rhs_nsp2 = rhs_nsp.change_name_clone rhs_name_real.to_sym
+
+          rhs = Expression.create_cell_join_expression( rhs_nsp2, rhs_subscript, rhs_port_name )
+          j2 = Join.new( j.get_name, count, rhs )
+          cell.new_join j2
+
+          count += 1
+        end
+      end
+    }
+  end
+
+  #=== count オプションの解析
+  def set_count rhs
+    if rhs =~ /\A\d+\z/
+      @count = rhs.to_i
+    else
+      nsp = NamespacePath.new( rhs.to_sym, true )
+      expr = Expression.create_single_identifier( nsp, nil )
+      res = expr.eval_const( nil )
+      if res == nil then
+        cdl_error( "count value ($1): not single identifier or integer number", rhs.to_s )
+        @count = 0
+      else
+        @count = res
+      end
+    end
+  end
+
+end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedOpaqueRPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedOpaqueRPCPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedOpaqueRPCPlugin.rb	(revision 429)
@@ -68,5 +68,5 @@
   #=== RPCPlugin の initialize
   #  説明は ThroughPlugin (plugin.rb) を参照
-  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
     super
     initialize_opaque_marshaler
@@ -221,4 +221,10 @@
     nest = @start_region.gen_region_str_pre file
     indent_str = "  " * nest
+    nest_str = "  " * nest
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
 
     # セルを探す
@@ -303,5 +309,5 @@
 #{indent_str}cell #{@unmarshaler_celltype_name} #{@cell_name}_Server {
 #{indent_str}  cTDR         = #{@shared_channel_cell}_Server.eTDR;
-#{indent_str}  cServerCall  = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name};
+#{indent_str}  cServerCall  = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name}#{subscript};
 #{ppallocator_join}#{indent_str}};
 EOT
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/SharedRPCPlugin.rb	(revision 429)
@@ -62,5 +62,5 @@
   #=== RPCPlugin の initialize
   #  説明は ThroughPlugin (plugin.rb) を参照
-  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
 
     # mikan プラグインオプション指定の不一致のチェック task_priority, 
@@ -236,4 +236,9 @@
     nest = @region.gen_region_str_pre file
     indent_str = "  " * nest
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
 
     # セルを探す
@@ -291,5 +296,5 @@
     file.print <<EOT
 #{indent_str}cell #{@rpc_channel_celltype_name} #{@cell_name} {
-#{indent_str}  #{@call_port_name} = #{@next_cell.get_name}.#{@next_cell_port_name};
+#{indent_str}  #{@call_port_name} = #{@next_cell.get_name}.#{@next_cell_port_name}#{subscript};
 #{indent_str}  cTDR         = #{@shared_channel_cell}.eTDR;
 #{indent_str}  cEventflag   = #{@shared_channel_cell}.eEventflag;
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TECSInfoPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TECSInfoPlugin.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TECSInfoPlugin.rb	(revision 429)
@@ -0,0 +1,283 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+# 
+#   Copyright (C) 2017-2018 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+#== CelltypePlugin for tTECSInfo
+class TECSInfoPlugin < CelltypePlugin
+
+  @@cell_list = []
+  #@celltype::Celltype
+  #@plugin_arg_str::String
+  #@plugin_arg_list::{argNameString=>argOptionString}
+  #@cell_list::[Cell]
+
+  #celltype::     Celltype        セルタイプ（インスタンス）
+  def initialize( celltype, option )
+    super
+    if $unopt_entry == false then
+      cdl_info( "TIF0001 forcely set --unoptimize-entry by TECSInfoPlugin (by importing TECSInfo.cdl)" )
+      $unopt_entry = true
+    end
+  end
+
+  #=== 新しいセル
+  #cell::        Cell            セル
+  #
+  # celltype プラグインを指定されたセルタイプのセルが生成された
+  # セルタイププラグインに対する新しいセルの報告
+  def new_cell( cell )
+    @@cell_list << cell
+
+    # AppFile は、重ね書きようなので、やめる
+    # p "import: cell nTECSInfo::tTECSInfoSub #{cell.get_namespace_path.to_s} under #{cell.get_region.get_name}"
+    # cell.show_tree 0
+    # TECSInfoSub セルのプロトタイプ宣言
+    fn = "#{$gen}/tmp_#{cell.get_region.get_global_name}_TECSInfoSub.cdl"
+    File.open( fn, "w" ){ |f|
+      f.print "/* prototype declaration of TECSInfoSub */\n"
+      nest = cell.get_region.gen_region_str_pre f
+      indent = "    " * nest
+      f.print <<EOT
+#{indent}[in_through()]
+#{indent}region rTECSInfo {
+#{indent}    cell nTECSInfo::tTECSInfoSub TECSInfoSub;
+#{indent}}; /* rTECSInfo} */
+EOT
+      cell.get_region.gen_region_str_post f
+    }
+    Import.new fn
+
+    # セルに cTECSInfo の結合があるか？
+    if cell.get_join_list.get_item( :cTECSInfo ) == nil then
+      # cTECSInfo = rTECSInfo::TECSInfosub.eTECSInfo; の追加
+      nsp = NamespacePath.new( :rTECSInfo, false )
+      nsp.append! :TECSInfoSub
+      rhs = Expression.create_cell_join_expression nsp, nil, :eTECSInfo
+      join = Join.new :cTECSInfo, nil, rhs
+      cell.new_join join
+    end
+  end
+
+  #=== tCelltype_factory.h に挿入するコードを生成する
+  # file 以外の他のファイルにファクトリコードを生成してもよい
+  # セルタイププラグインが指定されたセルタイプのみ呼び出される
+  def gen_factory file
+    File.open( "#{$gen}/include_all_signature_header.h", "w" ){ |f|
+      f.print <<EOT
+#ifndef include_all_signature_header_h
+#define include_all_signature_header_h
+
+EOT
+      Namespace.get_root.travers_all_signature{ |sig|
+        f.print "#include \"#{sig.get_global_name}_tecsgen.h\"\n"
+      }
+      f.print <<EOT
+
+#endif /* include_all_signature_header_h */
+EOT
+    }
+
+    undefs2 = [ :INITIALIZE_CB, :FOREACH_CELL, :END_FOREACH_CELL ]
+    f = AppFile.open( "#{$gen}/nTECSInfo_tVarDeclInfo_factory.h" )
+    Namespace.get_root.print_struct_define f
+
+    undefs = [ :VALID_IDX, :GET_CELLCB, :CELLCB, :CELLIDX,
+               :tVarDeclInfo_IDX, :ATTR_name, :ATTR_sizeIsExpr,
+               :ATTR_declType, :ATTR_offset ]
+
+    f.print <<EOT
+
+/***** Offset of attr & var of celltype  *****/
+#define TOPPERS_CB_TYPE_ONLY
+
+/* In case a celltype has 'inline' entry,
+ * some macros are temporally defined
+ * even if TOPPERS_CB_TYPE_ONLY is defined.
+ * To avoid redefinition warning, undef these macros.
+ */
+#{ str=""; undefs.each{|u| str += "#undef #{u}\n" }; str }
+EOT
+    if $ram_initializer then
+      undefs2.each{|u|
+        f.print "#undef #{u}\n"
+      }
+    end
+    Namespace.get_root.print_celltype_define_offset f
+    f.print <<EOT
+
+/* redefine macros */
+#define tVarDeclInfo_IDX  nTECSInfo_tVarDeclInfo_IDX
+
+EOT
+    if $ram_initializer then
+      f.print <<EOT
+#define FOREACH_CELL(i,p_cb)   { (void)(i);
+#define END_FOREACH_CELL   }
+#define INITIALIZE_CB(p_that)   (void)(p_that);
+#define SET_CB_INIB_POINTER(i,p_that)
+EOT
+    end
+    f.close
+
+    undefs = [ :N_CP_cEntryInfo, :NCP_cEntryInfo, :N_CP_cCallInfo, :NCP_cCallInfo,
+               :N_CP_cAttrInfo, :NCP_cAttrInfo, :N_CP_cVarInfo, :NCP_cVarInfo,
+               :VALID_IDX, :GET_CELLCB, :CELLCB, :CELLIDX, :ATTR_name, :ATTR_b_singleton,
+               :ATTR_b_IDX_is_ID_act, :ATTR_sizeOfCB, :ATTR_sizeOfINIB, :ATTR_n_cellInLinUnit,
+               :ATTR_n_cellInSystem, :cEntryInfo_getName, :cEntryInfo_getNameLength,
+               :cEntryInfo_getSignatureInfo, :cEntryInfo_getArraySize, :cEntryInfo_isInline,
+               :cCallInfo_getName, :cCallInfo_getNameLength, :cCallInfo_getSignatureInfo,
+               :cCallInfo_getArraySize, :cCallInfo_getSpecifierInfo, :cCallInfo_getInternalInfo,
+               :cCallInfo_getLocationInfo, :cCallInfo_getOptimizeInfo, :cAttrInfo_getName,
+               :cAttrInfo_getOffset, :cAttrInfo_getTypeInfo, :cAttrInfo_getSizeIsExpr,
+               :cAttrInfo_getSizeIs, :cVarInfo_getName, :cVarInfo_getOffset, :cVarInfo_getTypeInfo,
+               :cVarInfo_getSizeIsExpr, :cVarInfo_getSizeIs, :cEntryInfo_refer_to_descriptor,
+               :cEntryInfo_ref_desc, :cCallInfo_refer_to_descriptor, :cCallInfo_ref_desc,
+               :cAttrInfo_refer_to_descriptor, :cAttrInfo_ref_desc, :cVarInfo_refer_to_descriptor,
+               :cVarInfo_ref_desc, :is_cEntryInfo_joined, :is_cCallInfo_joined,
+               :is_cAttrInfo_joined, :is_cVarInfo_joined, :eCelltypeInfo_getName,
+               :eCelltypeInfo_getNameLength, :eCelltypeInfo_getNAttr, :eCelltypeInfo_getAttrInfo,
+               :eCelltypeInfo_getNVar, :eCelltypeInfo_getVarInfo, :eCelltypeInfo_getNCall,
+               :eCelltypeInfo_getCallInfo, :eCelltypeInfo_getNEntry, :eCelltypeInfo_getEntryInfo,
+               :eCelltypeInfo_isSingleton, :eCelltypeInfo_isIDX_is_ID, :eCelltypeInfo_hasCB,
+               :eCelltypeInfo_hasINIB, :FOREACH_CELL, :END_FOREACH_CELL ]
+
+    f = AppFile.open( "#{$gen}/nTECSInfo_tCelltypeInfo_factory.h" )
+    undefs.each{ |u|
+      f.print "#undef #{u}\n"
+    }
+    f.print "#define TOPPERS_CB_TYPE_ONLY\n"
+    Namespace.get_root.print_celltype_define f
+    # FOREACH_CELL を出しなおす
+    ct = Namespace.find [ "::", :nTECSInfo, :tCelltypeInfo ]
+    ct.gen_ph_foreach_cell f
+    ct.gen_ph_cb_initialize_macro f
+    f.print "\n"
+    f.close
+   
+    undefs = [ :VALID_IDX, :GET_CELLCB, :CELLCB, :CELLIDX,
+               :tCallInfo_IDX, :ATTR_name, :ATTR_offset, :ATTR_b_inCB,
+               :ATTR_b_optional, :ATTR_b_omit, :ATTR_b_dynamic,
+               :ATTR_b_ref_desc, :ATTR_b_allocator_port,
+               :ATTR_b_require_port, :ATTR_b_VMT_useless,
+               :ATTR_b_skelton_useless, :ATTR_b_cell_unique,
+               :cSignatureInfo_getName, :cSignatureInfo_getNameLength,
+               :cSignatureInfo_getNFunction,
+               :cSignatureInfo_getFunctionInfo,
+               :cSignatureInfo_refer_to_descriptor,
+               :cSignatureInfo_ref_desc, :eCallInfo_getName,
+               :eCallInfo_getNameLength, :eCallInfo_getSignatureInfo,
+               :eCallInfo_getArraySize, :eCallInfo_isOptional,
+               :eCallInfo_isDynamic, :eCallInfo_isRefDesc,
+               :eCallInfo_isOmit ]
+
+    f = AppFile.open( "#{$gen}/nTECSInfo_tCallInfo_factory.h" )
+    f.print <<EOT
+
+/***** Offset of attr & var of celltype  *****/
+#define TOPPERS_CB_TYPE_ONLY
+
+/* In case a celltype has 'inline' entry,
+ * some macros are temporally defined
+ * even if TOPPERS_CB_TYPE_ONLY is defined.
+ * To avoid redefinition warning, undef these macros.
+ */
+#{ str=""; undefs.each{|u| str += "#undef #{u}\n" }; str }
+EOT
+    if $ram_initializer then
+      undefs2.each{|u|
+        f.print "#undef #{u}\n"
+      }
+    end
+
+    Namespace.get_root.print_call_define f
+    f.print <<EOT
+
+/* redefine macros */
+#define tCallInfo_IDX  nTECSInfo_tCallInfo_IDX
+
+EOT
+    if $ram_initializer then
+      f.print <<EOT
+#define FOREACH_CELL(i,p_cb)   { (void)(i);
+#define END_FOREACH_CELL   }
+#define INITIALIZE_CB(p_that)   (void)(p_that);
+#define SET_CB_INIB_POINTER(i,p_that)
+
+EOT
+    end
+    f.close
+
+    f = AppFile.open( "#{$gen}/nTECSInfo_tEntryInfo_factory.h" )
+    Namespace.get_root.print_entry_define f
+    f.close
+
+    undefs = [ :GET_CELLCB, :CELLCB, :CELLIDX, :ATTR_name, :INITIALIZE_CB, :FOREACH_CELL ]
+    f = AppFile.open( "#{$gen}/nTECSInfo_tCellInfo_factory.h" )
+    undefs.each{ |u|
+      f.print "#undef #{u}\n"
+    }
+    Region.get_root.print_cell_define f
+    # FOREACH_CELL を出しなおす
+    ct = Namespace.find [ "::", :nTECSInfo, :tCellInfo ]
+    ct.gen_ph_foreach_cell f
+    ct.gen_ph_cb_initialize_macro f
+    f.close
+
+    f = AppFile.open( "#{$gen}/nTECSInfo_tRawEntryDescriptorInfo_factory.h" )
+    Region.get_root.print_entry_descriptor_define f
+    f.close
+  end
+
+  #=== 後ろの CDL コードを生成
+  #プラグインの後ろの CDL コードを生成
+  #file:: File:
+  def self.gen_post_code( file )
+    if Generator.get_n_error > 0 then
+      Generator.info( "I9999 TECSInfoPlugin does not generate TECSInfo code because of early error" )
+      return
+    end
+    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
+    file.print <<EOT
+/*------------ #{self.name} post code ------------*/
+EOT
+    @@cell_list.each{|cell|
+      root = cell.get_region # .get_link_root
+      TECSInfo.print_info file, root
+    }
+  end
+end
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ThroughPlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ThroughPlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/ThroughPlugin.rb	(revision 429)
@@ -47,4 +47,5 @@
 #@next_cell:: Cell                    呼び口を結合するセル
 #@next_cell_port_name:: Symbol       呼び口を結合する受口の名前
+#@next_cell_port_subscript::Nil|Integer   呼び口を結合する受口の配列添数．受け口配列でない場合 nil
 #@signature::      Signature          シグニチャ
 #@celltype::       Celltype           呼び先のセルのセルタイプ. through が連接する場合、最終的な呼び先のセルのセルタイプ
@@ -74,8 +75,9 @@
   #next_cell::      Cell               呼び口を接続するセル
   #next_cell_port_name:: Symbol        呼び口を接続する受口の名前
+  #next_cell_port_subscript:: Nil|Integer  呼び口を接続する受口配列添数
   #signature::      Signature          シグニチャ
   #celltype::       Celltype           セルタイプ (呼び先のセルのセルタイプ)
   #caller_cell::    Cell               呼び元のセル．@caller_cell の項を参照
-  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
     super()
     @cell_name = cell_name                      # 生成すべきセル名（受け口側のセル名）
@@ -83,4 +85,5 @@
     @next_cell = next_cell                      # 呼び先のセル
     @next_cell_port_name = next_cell_port_name
+    @next_cell_port_subscript = next_cell_port_subscript
     @signature = signature
     @entry_port_name = :"eThroughEntry"
@@ -136,4 +139,9 @@
   def get_through_entry_port_name
     @entry_port_name
+  end
+
+  #===  生成されたセルの受け口配列添数を得る
+  def get_through_entry_port_subscript
+    @entry_port_subscript
   end
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TracePlugin.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TracePlugin.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/TracePlugin.rb	(revision 429)
@@ -44,5 +44,5 @@
   #=== TracePlugin の initialize
   #  説明は ThroughPlugin (plugin.rb) を参照
-  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, signature, celltype, caller_cell )
+  def initialize( cell_name, plugin_arg, next_cell, next_cell_port_name, next_cell_port_subscript, signature, celltype, caller_cell )
 
     @maxArrayDisplay = 16
@@ -141,4 +141,9 @@
       nest = @region.gen_region_str_pre file
       indent_str =  "  " * nest
+      if @next_cell_port_subscript then
+        subscript = '[' + @next_cell_port_subscript.to_s + ']'
+      else
+        subscript = ""
+      end
 
       if @probeName then
@@ -155,5 +160,5 @@
       file.print <<EOT
 #{indent_str}cell #{@ct_name} #{@cell_name} {
-#{indent_str}  #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name};
+#{indent_str}  #{@call_port_name} = #{@next_cell.get_namespace_path.get_path_str}.#{@next_cell_port_name}#{subscript};
 #{probeName_str}#{caller_cell_str}#{indent_str}};
 EOT
@@ -210,8 +215,13 @@
     }
     file.print( " );\n" )
+    if @next_cell_port_subscript then
+      subscript = '[' + @next_cell_port_subscript.to_s + ']'
+    else
+      subscript = ""
+    end
 
     file.print <<EOT
 \tgetMicroTime( &utime );
-\tsyslog( LOG_INFO, \"Leave: %sTime=%d: #{@next_cell.get_name}.#{@next_cell_port_name}.#{func_name}\", ATTR_probeName_str, utime );
+\tsyslog( LOG_INFO, \"Leave: %sTime=%d: #{@next_cell.get_name}.#{@next_cell_port_name}#{subscript}.#{func_name}\", ATTR_probeName_str, utime );
 EOT
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenOpaqueMarshaler.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenOpaqueMarshaler.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenOpaqueMarshaler.rb	(revision 429)
@@ -4,5 +4,5 @@
 #      Generator for TOPPERS Embedded Component System
 #  
-#   Copyright (C) 2008-2014 by TOPPERS Project
+#   Copyright (C) 2008-2018 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -464,6 +464,8 @@
 	/* Channel Lock */
 	SET_RPC_STATE( state_, RPCSTATE_CLIENT_GET_SEM );
-	if( is_cLockChannel_joined() )
-		cLockChannel_wait();
+	if( is_cLockChannel_joined() ){
+		if( (ercd_=cLockChannel_wait()) != E_OK )
+			goto error_reset;
+	}
 EOT
 
@@ -554,6 +556,14 @@
 	/* Channel Unlock */
 	SET_RPC_STATE( state_, RPCSTATE_CLIENT_RELEASE_SEM );
-	if( is_cLockChannel_joined() )
-		cLockChannel_signal();
+	if( is_cLockChannel_joined() ){
+		if( (ercd_=cLockChannel_signal()) != E_OK )
+			goto error_reset;
+	}
+EOT
+
+    file.print <<EOT
+	/* state_ is not used in normal case */
+  /* below is to avoid 'set but not used' warnning */
+	(void)state_;
 EOT
 
@@ -630,5 +640,5 @@
         file.print <<EOT
 	}else{
-		return;
+		return E_ID;
 	}
 EOT
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenTransparentMarshaler.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenTransparentMarshaler.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/GenTransparentMarshaler.rb	(revision 429)
@@ -388,5 +388,5 @@
     };
 #{ppallocator_dealloc_str}
-    return;
+    return E_OK;
 
 error_reset:
@@ -394,4 +394,5 @@
         (void)cTDR_reset();
 #{ppallocator_dealloc_str}
+    return E_OK;
 EOT
 
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/MrubyBridgeCelltypePluginModule.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/MrubyBridgeCelltypePluginModule.rb	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/plugin/lib/MrubyBridgeCelltypePluginModule.rb	(revision 429)
@@ -0,0 +1,284 @@
+# -*- coding: utf-8 -*-
+#
+#  TECS Generator
+#      Generator for TOPPERS Embedded Component System
+#  
+#   Copyright (C) 2008-2011 by TOPPERS Project
+#--
+#   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
+#   ア（本ソフトウェアを改変したものを含む．以下同じ）を使用・複製・改
+#   変・再配布（以下，利用と呼ぶ）することを無償で許諾する．
+#   (1) 本ソフトウェアをソースコードの形で利用する場合には，上記の著作
+#       権表示，この利用条件および下記の無保証規定が，そのままの形でソー
+#       スコード中に含まれていること．
+#   (2) 本ソフトウェアを，ライブラリ形式など，他のソフトウェア開発に使
+#       用できる形で再配布する場合には，再配布に伴うドキュメント（利用
+#       者マニュアルなど）に，上記の著作権表示，この利用条件および下記
+#       の無保証規定を掲載すること．
+#   (3) 本ソフトウェアを，機器に組み込むなど，他のソフトウェア開発に使
+#       用できない形で再配布する場合には，次のいずれかの条件を満たすこ
+#       と．
+#     (a) 再配布に伴うドキュメント（利用者マニュアルなど）に，上記の著
+#         作権表示，この利用条件および下記の無保証規定を掲載すること．
+#     (b) 再配布の形態を，別に定める方法によって，TOPPERSプロジェクトに
+#         報告すること．
+#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
+#       害からも，上記著作権者およびTOPPERSプロジェクトを免責すること．
+#       また，本ソフトウェアのユーザまたはエンドユーザからのいかなる理
+#       由に基づく請求からも，上記著作権者およびTOPPERSプロジェクトを
+#       免責すること．
+#  
+#   本ソフトウェアは，無保証で提供されているものである．上記著作権者お
+#   よびTOPPERSプロジェクトは，本ソフトウェアに関して，特定の使用目的
+#   に対する適合性も含めて，いかなる保証も行わない．また，本ソフトウェ
+#   アの利用により直接的または間接的に生じたいかなる損害に関しても，そ
+#   の責任を負わない．
+#  
+#   $Id$
+#++
+
+#== celltype プラグインの共通の親クラス
+module MrubyBridgeCelltypePluginModule
+
+  # プラグイン引数名 => Proc
+  MrubyBridgePluginArgProc = { 
+      "ignoreUnsigned" => Proc.new { |obj,rhs| obj.set_ignoreUnsigned rhs },
+      "include_inner_cell" => Proc.new { |obj,rhs| obj.set_include_inner_cell rhs },
+      "exclude_cell" => Proc.new { |obj,rhs| obj.set_exclude_cell rhs },
+      "exclude_port" => Proc.new { |obj,rhs| obj.set_exclude_port rhs },
+      "exclude_port_func" => Proc.new { |obj,rhs| obj.set_exclude_port_func rhs },
+      "auto_exclude" => Proc.new { |obj,rhs| obj.set_auto_exclude rhs },
+  }
+
+  require_tecsgen_lib( "MrubyBridgeCellPlugin.rb" )
+  @@plugin_list = []
+  @@count = 1
+
+  #celltype::     Celltype        セルタイプ（インスタンス）
+  def initialize( celltype, option )
+    dbgPrint "#{self.class.name}: initialzie: #{celltype.get_name}\n"
+
+    super
+    @celltype = celltype
+    @cell_list = []
+    @include_inner_cell = false
+    @exclude_cells = []
+    @exclude_port = []
+    @exclude_port_func = {}
+    @b_ignoreUnsigned = false
+    @b_auto_exclude = true     # auto_exclude = true by default 
+    @@plugin_list << self
+
+    @plugin_arg_check_proc_tab = MrubyBridgePluginArgProc
+    @plugin_arg_str = CDLString.remove_dquote option
+    parse_plugin_arg
+
+    MrubyBridgeCellPlugin.set_gen_post_code_by_dependent
+  end
+
+  #=== 新しいセル
+  #cell::        Cell            セル
+  #
+  # celltype プラグインを指定されたセルタイプのセルが生成された
+  # セルタイププラグインに対する新しいセルの報告
+  # generate 文により呼び出された場合、それまでに定義された cell については、initialize のタイミングで呼び出される
+  def new_cell( cell )
+    dbgPrint "MrubyBridgeCelltypePluginModule: new_cell: #{cell.get_name}\n"
+
+    return if @cell_list.include? cell   # この行は、本来不要のはず
+    if TECSGEN.post_coded?               # post_code 以降のセルは対象から外す
+      cdl_info( "I9999 MrubyBridgeCelltypePlugin: $1 is excluded because cell generated after post_coded", cell.get_name )
+      return
+    end
+
+    # include_inner_cell option
+    if cell.is_cloned? && @include_inner_cell == false then
+    #   p "#{cell.get_name} excluded"
+      cdl_info( "I9999 MrubyBridgeCelltypePlugin: inner cell $1 is excluded", cell.get_name )
+      return
+    # else
+    #   p "#{cell.get_name} included"
+    end
+
+    # exclude_cell option
+    if @exclude_cells.include?( cell.get_name ) then
+      return
+    end
+
+    opt_str = "ignoreUnsigned=#{@b_ignoreUnsigned}, auto_exclude=#{@b_auto_exclude}"
+    @exclude_port.each{ |port|
+      opt_str += ",exclude_port=#{port}"
+    }
+    @exclude_port_func.each{ |port, funcs|
+      funcs.each{ |func|
+        opt_str += ",exclude_port_func=#{port}.#{func}"
+      }
+    }
+
+    # p "MrubyBridgeCelltypePlugin: opt_str=#{opt_str}"
+
+    fn2 = "#{$gen}/tmp_MrubyBridgeCelltypePluginModule_#{@celltype.get_name}_#{@@count}.cdl"
+    f2 = File.open( fn2, "w" )
+    f2.print <<EOT
+/* MrubyBridgeCelltypePluginModule: celltype=#{@celltype.get_name} */
+generate( MrubyBridgeCellPlugin, #{cell.get_namespace_path}, "#{opt_str}" );
+EOT
+    f2.close
+    dbgPrint "MrubyBridgeCelltypePluginModule new_cell: Import #{fn2}\n"
+    Import.new "#{fn2}"
+    @@count += 1
+  end
+
+### 意味解析段階で呼び出されるメソッド ###
+  #===  CDL ファイルの生成
+  #      typedef, signature, celltype, cell のコードを生成
+  #      重複して生成してはならない
+  #      すでに生成されている場合は出力しないこと。
+  #      もしくは同名の import により、重複を避けること。
+  #file::        FILE       生成するファイル
+  def gen_cdl_file file
+#   この段階で呼びだすと generate 文が呼び出される前のセルのみの出力となる
+    
+#    dbgPrint "MrubyBridgeCelltypePlugin: gen_cdl_file: #{@celltype.get_name}\n"
+#    file.print <<EOT
+#/* MrubyBridgeCelltypePlugin: celltype=#{@celltype.get_name}
+# *
+# *    cell's generate before celltype's generate
+# */
+#
+#EOT
+#    @celltype.get_cell_list.each { |cell|
+#      @cell_list << cell
+#      # mikan option, region
+#      dbgPrint "MrubyBridgeCelltypePlugin: cell=#{cell.get_name}\n"
+#      file.print <<EOT
+#generate( MrubyBridgeCellPlugin, #{cell.get_namespace_path}, "" );
+#EOT
+#    }
+
+  end
+
+  #=== tCelltype_factory.h に挿入するコードを生成する
+  # file 以外の他のファイルにファクトリコードを生成してもよい
+  # セルタイププラグインが指定されたセルタイプのみ呼び出される
+  def gen_factory file
+  end
+
+  def get_celltype
+    @celltype
+  end
+
+  @@b_gen_post_code_called = false
+  #=== 後ろの CDL コードを生成
+  #プラグインの後ろの CDL コードを生成
+  #file:: File: 
+  def self.gen_post_code( file )
+    dbgPrint "#{self.name}: gen_post_code_body\n"
+
+    if @@b_gen_post_code_called == false then
+      @@b_gen_post_code_called = true
+      MrubyBridgeCellPlugin.gen_post_code_body file
+    end
+
+#    この段階で生成すると、同じポストコードで出力される mruby の初期化コードに反映されない
+    
+#    # MrubyBridgeCelltypePlugin の生成する generate 文は、
+#    fn2 = "#{$gen}/tmp_MrubyBridgeCelltypePlugin_post.cdl"
+#    f2 = File.open( fn2, "w" )
+#    # 複数のプラグインの post_code が一つのファイルに含まれるため、以下のような見出しをつけること
+#    dbgPrint "MrubyBridgeCelltypePlugin: gen_post_code\n"
+#    f2.print "/* '#{self.name}' post code */\n"
+#    @@plugin_list.each{ |plugin|
+#      plugin.get_celltype.get_cell_list.each{ |cell|
+#        # mikan option, region
+#        f2.print <<EOT
+#generate( MrubyBridgeCellPlugin, #{cell.get_namespace_path}, "" );
+#EOT
+#      }
+#    }
+#    f2.close
+#    p Import
+#    Import.new "#{fn2}"
+  end
+
+  #=== プラグイン引数 
+
+  #=== プラグイン引数 ignoreUnsigned
+  def set_ignoreUnsigned rhs
+    if rhs == "true" || rhs == nil then
+      @b_ignoreUnsigned = true
+    end
+  end
+
+  def set_include_inner_cell rhs
+    if rhs == "true" || rhs == nil then
+      @include_inner_cell = true
+    end
+  end
+
+  def set_exclude_cell rhs
+    cells = rhs.split ','
+    cells.each{ |rhs_cell|
+      rhs_cell.gsub!( /\s/, "" )
+      @exclude_cells << rhs_cell.to_sym
+    }
+  end
+  def set_exclude_port rhs
+    ports = rhs.split ','
+    ct = @cell.get_celltype
+    return if ct == nil    # error case
+    ports.each{ |rhs_port|
+      obj = ct.find( rhs_port.to_sym )
+      if( ( ! obj.instance_of? Port ) || obj.get_port_type != :ENTRY ) then
+        cdl_error( "MRB9999 exclude_port '$1' not found or not entry in celltype '$2'", rhs_port, ct.get_name )
+      else
+        # print "MRBBridgeCellPlugin: exclude #{rhs_port}\n"
+        @exclude_port << rhs_port
+      end
+    }
+  end
+
+  #=== プラグイン引数 exclude_port_func
+  def set_exclude_port_func rhs
+    port_funcs = rhs.split ','
+    ct = @celltype
+    return if ct == nil    # error case
+    port_funcs.each{ |rhs_port_func|
+      port_func = rhs_port_func.split( '.' )
+      if port_func.length != 2 then
+        cdl_error( "MRB9999 exclude_port_func: '$1' not in 'port.func' form", rhs_port_func )
+      end
+      obj = ct.find( port_func[0].to_sym )
+      if( ( ! obj.instance_of? Port ) || obj.get_port_type != :ENTRY ) then
+        cdl_error( "MRB9999 exclude_port_func: port '$1' not found in celltype '$2'", rhs_port_func, ct.get_name )
+      else
+        signature = obj.get_signature
+        next if signature == nil     # error case
+        if signature.get_function_head port_func[1].to_sym
+          # print "MRBBridgeCellPlugin: #{port_func[0]}.#{port_func[1]} exclude\n"
+          if @exclude_port_func[ port_func[0] ] then
+            @exclude_port_func[ port_func[0] ] <<  port_func[1]
+          else
+            @exclude_port_func[ port_func[0] ] = [ port_func[1] ]
+          end
+        else
+          cdl_error( "MRB9999 include_port_func: func '$1' not found in port '$2' celltype $3",
+                     port_func[1], port_func[0], ct.get_name )
+        end
+      end
+    }
+  end
+
+  #=== プラグイン引数 auto_exclude
+  def set_auto_exclude rhs
+    # print "MrubyBridgeCellPlugin: auto_exclude=#{rhs}\n"
+    if rhs == "false" then
+      @b_auto_exclude = false
+    elsif rhs == "true" then
+      @b_auto_exclude = true     # auto_exclude = true by default 
+    else
+      cdl_warning( "MRB9999 auto_exclude: unknown rhs value ignored. specify true or false" )
+    end
+  end
+end
+
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/version.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/version.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecslib/version.rb	(revision 429)
@@ -1,2 +1,2 @@
 $package = "tecsgen"
-$version = "1.3.1.5"
+$version = "1.6.4"
Index: EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tecsgen/tecsmerge.rb	(revision 429)
@@ -6,5 +6,5 @@
 #      Merger for TECS generated templates
 #  
-#   Copyright (C) 2008-2015 by TOPPERS Project
+#   Copyright (C) 2008-2017 by TOPPERS Project
 #--
 #   上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -37,5 +37,5 @@
 #   の責任を負わない．
 #  
-#   $Id$
+#   $Id: tecsmerge.rb 2633 2017-04-02 06:02:05Z okuma-top $
 #++
 
@@ -44,5 +44,5 @@
 #Authors::   大山 博司
 #Version::   
-#Copyright:: Copyright (C) TOPPERS Project, 2008-2015. All rights reserved.
+#Copyright:: Copyright (C) TOPPERS Project, 2008-2017. All rights reserved.
 #License::   TOPPERS ライセンスに準拠
 
@@ -285,4 +285,9 @@
 
         next if next_stat == :HEAD || ( next_stat == :EOF && line != nil )
+        # #1002 tecsmerge の非受け口関数 (POSTAMBLE部) の行頭に '{' があるとエラーになる 	
+        if (! $old_mode) && ( /^\{/ =~ line ) && ( stat == :PREAMBLE_BODY || stat == :POSTAMBLE_BODY )
+          p line + "  next_stat=" + next_stat.to_s + "stat=" + stat.to_s
+          next
+        end
 
         # p "R: #{stat_info[0]}"
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet	(revision 429)
@@ -93,4 +93,5 @@
                in_subr.o route_cfg.o
 TINET_CFG_COBJS := $(TINET_CFG_COBJS) tinet_cfg.o
+TINET_CFG2_OUT_SRCS := $(TINET_CFG2_OUT_SRCS) tinet_cfg.h tinet_cfg.c
 
 #  IPv6
@@ -328,4 +329,5 @@
 
 	CFG_COBJS := $(CFG_COBJS) $(TINET_CFG_COBJS)
+	CFG2_OUT_SRCS := $(CFG2_OUT_SRCS) $(TINET_CFG2_OUT_SRCS)
 
 	CLEAN_FILES := $(CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.c	(revision 429)
@@ -195,52 +195,83 @@
 
 /**
- * Called by a driver when its link goes up
- */
-void ether_set_link_up(T_IFNET *ether)
-{
-  if (!(ether->flags & IF_FLAG_LINK_UP)) {
-    ether->flags |= IF_FLAG_LINK_UP;
-
-    if (ether->flags & IF_FLAG_UP) {
-#if LWIP_ARP
-      /* For Ethernet network interfaces, we would like to send a "gratuitous ARP" */ 
-      if (ether->flags & IF_FLAG_ETHARP) {
-        etharp_gratuitous(ether);
-      }
-#endif /* LWIP_ARP */
-
-#if LWIP_IGMP
-      /* resend IGMP memberships */
-      if (ether->_flags & IF_FLAG_IGMP) {
-        igmp_report_groups(ether);
-      }
-#endif /* LWIP_IGMP */
-    }
-    if (ether->link_callback) {
-      (ether->link_callback)(ether);
-    }
-  }
-}
+ * ether_set_link_up -- リンクしたときにNICから呼び出される
+ */
+void
+ether_set_link_up()
+{
+	if (!(ether_ifnet.flags & IF_FLAG_LINK_UP)) {
+		ether_ifnet.flags |= IF_FLAG_LINK_UP;
+
+		if (ether_ifnet.flags & IF_FLAG_UP) {
+#if defined(_IP4_CFG) && defined(SUPPORT_ETHER)
+			/* ARP再構築？ */
+#endif /* #if defined(_IP4_CFG) && defined(SUPPORT_ETHER) */
+
+#ifdef SUPPORT_IGMP
+			/* IGMP参加 */
+#endif /* #ifdef SUPPORT_IGMP */
+			}
+		if (ether_ifnet.link_callback) {
+			(ether_ifnet.link_callback)(&ether_ifnet);
+			}
+		}
+	}
 
 /**
- * Called by a driver when its link goes down
- */
-void ether_set_link_down(T_IFNET *ether)
-{
-  if (ether->flags & IF_FLAG_LINK_UP) {
-    ether->flags &= ~IF_FLAG_LINK_UP;
-    if (ether->link_callback) {
-      (ether->link_callback)(ether);
-    }
-  }
-}
-
-/**
- * Set callback to be called when link is brought up/down
- */
-void ether_set_link_callback(ether_status_callback_fn link_callback)
+ * ether_set_link_up -- リンクが切断したときにNICから呼び出される
+ */
+void
+ether_set_link_down()
+{
+	if (ether_ifnet.flags & IF_FLAG_LINK_UP) {
+		ether_ifnet.flags &= ~IF_FLAG_LINK_UP;
+		if (ether_ifnet.link_callback) {
+			(ether_ifnet.link_callback)(&ether_ifnet);
+			}
+		}
+	}
+
+/*
+ * ether_set_up -- DHCPでアドレスが設定されたとき呼び出される
+ */
+
+void
+ether_set_up()
+{
+	if (!(ether_ifnet.flags & IF_FLAG_UP)) {
+		ether_ifnet.flags |= IF_FLAG_UP;
+		if (ether_ifnet.link_callback) {
+			(ether_ifnet.link_callback)(&ether_ifnet);
+			}
+		}
+	}
+
+/*
+ * ether_set_down -- DHCPでアドレスが解放されたとき呼び出される
+ */
+
+void
+ether_set_down()
+{
+	if (ether_ifnet.flags & IF_FLAG_UP) {
+		ether_ifnet.flags &= ~IF_FLAG_UP;
+		if (ether_ifnet.link_callback) {
+			(ether_ifnet.link_callback)(&ether_ifnet);
+			}
+		}
+	}
+
+/*
+ * ether_set_link_callback -- リンク状態変化時のコールバック登録
+ */
+
+void
+ether_set_link_callback(ether_status_callback_fn link_callback)
 {
 	ether_ifnet.link_callback = link_callback;
-}
+	if (ether_ifnet.link_callback) {
+		(ether_ifnet.link_callback)(&ether_ifnet);
+		}
+	}
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h	(revision 429)
@@ -99,6 +99,11 @@
 
 #if defined(__RX)
-
 #pragma pack
+#elif defined(_MSC_VER)
+#pragma pack(push, 1)
+#endif
+
+#if defined(__RX) || defined(_MSC_VER)
+
 typedef struct t_ether_header {
 
@@ -113,5 +118,4 @@
 	uint16_t	type;
 	} T_ETHER_HDR;
-#pragma packoption
 
 #elif defined(TOPPERS_S810_CLG3_85)	/* of #if defined(__RX) */
@@ -143,5 +147,5 @@
 	uint8_t		shost[ETHER_ADDR_LEN];
 	uint16_t	type;
-	} __attribute__((packed, aligned(2)))T_ETHER_HDR;
+	} __attribute__((packed, aligned(2))) T_ETHER_HDR;
 
 #endif	/* of #if defined(__RX) */
@@ -158,5 +162,11 @@
 typedef struct t_ether_addr {
 	uint8_t		lladdr[ETHER_ADDR_LEN];
-	} __attribute__((packed, aligned(2)))T_ETHER_ADDR;
+	} __attribute__((packed, aligned(2))) T_ETHER_ADDR;
+
+#if defined(__RX)
+#pragma packoption
+#elif defined(_MSC_VER)
+#pragma pack(pop)
+#endif
 
 /*
@@ -208,4 +218,7 @@
 							/* インタフェースのマルチキャストアドレスへの変換		*/
 
+#define IF_FLAG_UP				0x01U
+#define IF_FLAG_LINK_UP			0x10U
+
 /*
  *  前方参照
@@ -266,7 +279,4 @@
 #endif	/* of #ifdef T_IF_ETHER_NIC_SOFTC */
 
-#define IF_FLAG_UP				0x01U
-#define IF_FLAG_LINK_UP			0x10U
-
 /*
  *  変数
@@ -304,9 +314,10 @@
 extern uint32_t ether_srand (void);
 
-/** Function prototype for netif status- or link-callback functions. */
 typedef void (*ether_status_callback_fn)(T_IFNET *ether);
 extern void ether_set_link_callback(ether_status_callback_fn link_callback);
-extern void ether_set_link_up(T_IFNET *ether);
-extern void ether_set_link_down(T_IFNET *ether);
+extern void ether_set_link_up();
+extern void ether_set_link_down();
+extern void ether_set_up();
+extern void ether_set_down();
 
 #endif	/* of #ifdef SUPPORT_ETHER */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h	(revision 429)
@@ -91,5 +91,5 @@
 	uint8_t		proto_len;	/* プロトコル長			*/
 	uint16_t	opcode;		/* 命令コード			*/
-	} __attribute__((packed, aligned(2)))T_ARP_HDR;
+	} __attribute__((packed, aligned(2))) T_ARP_HDR;
 
 #define ARP_HDR_SIZE			(sizeof(T_ARP_HDR))
@@ -119,5 +119,5 @@
 typedef struct arpcom {
 	uint8_t		mac_addr[ETHER_ADDR_LEN];
-	} __attribute__((packed, aligned(2)))T_ARPCOM;
+	} __attribute__((packed, aligned(2))) T_ARPCOM;
 
 /*
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg	(revision 429)
@@ -41,4 +41,6 @@
 
 INCLUDE("net/net.cfg");
+
+#ifndef NOUSE_MPF_NET_BUF
 
 /*
@@ -169,2 +171,4 @@
 		});
 #endif	/* of #if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0 */
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.c	(revision 429)
@@ -68,4 +68,6 @@
 #include <netinet/tcp_var.h>
 
+#ifndef NOUSE_MPF_NET_BUF
+
 /*
  *  関数
@@ -226,5 +228,21 @@
 #endif	/* of #if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0 */
 
-#if defined(_IP4_CFG)
+#if defined(_IP6_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 */
+
+#endif	/* of #if defined(_IP6_CFG) */
 
 #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0
@@ -242,5 +260,5 @@
 #endif	/* of #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0 */
 
-#endif	/* of #if defined(_IP4_CFG) */
+#if defined(_IP4_CFG) && !defined(_IP6_CFG)
 
 #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0
@@ -257,4 +275,6 @@
 		},
 #endif	/* of #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 */
+
+#endif	/* of #if defined(_IP4_CFG) && !defined(_IP6_CFG) */
 
 	};
@@ -307,9 +327,11 @@
 
 	while (1) {
-		if ((error = tget_mpf((ID)net_buf_table[ix].index, (void*)buf, ix == 0 ? tmout : TMO_POL)) == E_OK) {
+		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;
-
+#ifdef IF_ETHER_MULTI_NIC
+			(*buf)->conn_pos = 0;
+#endif
 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
 			NET_COUNT_NET_BUF(net_buf_table[ix].allocs, 1);
@@ -318,7 +340,7 @@
 			return error;
 			}
-		else if (ix == 0 || net_buf_table[ix].size > maxlen)
+		ix --;
+		if (ix < 0 || net_buf_table[ix].size > maxlen)
 			break;
-		ix --;
 		}
 
@@ -349,9 +371,12 @@
 
 	while (1) {
-		if ((error = tget_mpf((ID)net_buf_table[ix].index, (void*)buf,
+		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;
+#ifdef IF_ETHER_MULTI_NIC
+			(*buf)->conn_pos = 0;
+#endif
 
 #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
@@ -450,9 +475,10 @@
 		/* 固定メモリプールに返す。*/
 
-#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);
+		int idix = buf->idix;
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+		net_buf_table[idix].busies --;
+#endif
+		if ((error = rel_mpf((ID)net_buf_table[idix].index, buf)) != E_OK) {
+			syslog(LOG_WARNING, "[NET BUF] %s, ID=%d.", itron_strerror(error), idix);
 			}
 		}
@@ -505,2 +531,63 @@
 	return (uint_t)net_buf_table[0].size;
 	}
+
+#else
+#include <stdlib.h>
+
+/*
+ *  tget_net_buf_ex -- ネットワークバッファを獲得する（拡張機能）。
+ */
+
+ER
+tget_net_buf_ex (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, ATR nbatr, TMO tmout)
+{
+	uint_t len = (minlen > maxlen) ? minlen : maxlen;
+	*buf = (T_NET_BUF *)malloc(sizeof(T_NET_BUF) - sizeof(((T_NET_BUF *)0)->buf) + len);
+	if (*buf == NULL)
+		return E_NOMEM;
+
+	(*buf)->idix = 0;
+	(*buf)->len = (uint16_t)len;
+	(*buf)->flags = 0;
+#ifdef IF_ETHER_MULTI_NIC
+	(*buf)->conn_pos = 0;
+#endif
+
+	return E_OK;
+	}
+
+/*
+ *  tget_net_buf -- ネットワークバッファを獲得する（互換）。
+ */
+
+ER
+tget_net_buf (T_NET_BUF **buf, uint_t len, TMO tmout)
+{
+	return tget_net_buf_ex(buf, len, len, NBA_SEARCH_ASCENT, tmout);
+	}
+
+
+/*
+ * rel_net_buf -- ネットワークバッファを返却する。
+ */
+
+ER
+rel_net_buf (T_NET_BUF *buf)
+{
+	free(buf);
+
+	return E_OK;
+	}
+
+
+/*
+ * net_buf_max_siz -- ネットワークバッファの最大サイズを返す。
+ */
+
+uint_t
+net_buf_max_siz (void)
+{
+	return (uint_t)IF_PDU_SIZE;
+	}
+
+#endif
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h	(revision 429)
@@ -55,4 +55,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -80,4 +83,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -97,4 +103,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -114,4 +123,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -131,4 +143,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -148,4 +163,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -167,4 +185,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.c	(revision 429)
@@ -222,5 +222,5 @@
 T_NET_COUNT	net_count_igmp;
 
-#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP4 */
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_IGMP */
 
 #endif	/* of #if defined(_IP4_CFG) */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h	(revision 429)
@@ -71,7 +71,7 @@
 #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 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
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp	(revision 429)
@@ -183,5 +183,5 @@
 		NETAPP_COBJS := $(NETAPP_COBJS) udp6_echo_cli.o
 		NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp6_echo_cli.cfg
-	
+
 		ifeq ($(SUPPORT_INET4),true)
 			ifeq ($(USE_UDP4_ECHO_CLI),true)
@@ -191,5 +191,5 @@
 			endif
 		endif
-        else
+		else
 		ifeq ($(SUPPORT_INET4),true)
 			SUPPORT_UDP = true
@@ -364,5 +364,5 @@
 ifeq ($(TARGET_KERNEL),ASP)
 
-	APPLDIR := $(APPLDIR) $(NETAPP_DIRS)
+	APPLDIRS := $(APPLDIRS) $(NETAPP_DIRS)
 	APPL_COBJS := $(APPL_COBJS) $(NETAPP_COBJS)
 	APPL_CFLAGS := $(APPL_CFLAGS) -fno-strict-aliasing
@@ -382,5 +382,5 @@
 ifeq ($(TARGET_KERNEL),ASP)
 
-	APPLDIR := $(APPLDIR) $(SRCDIR)/pdic/sc1602
+	APPLDIRS := $(APPLDIRS) $(SRCDIR)/pdic/sc1602
 
 endif
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.c	(revision 429)
@@ -666,5 +666,5 @@
 	            "IX Expire State      MAC Address       IP Address\n");
 
-	/* expire の単位は [ms]。*/
+	/* expire の単位は [us]。*/
 	get_tim(&now);
 	cache = nd6_get_cache();
@@ -705,5 +705,5 @@
 	            "IX Expire MAC Address       IP Address\n");
 
-	/* expire の単位は [ms]。*/
+	/* expire の単位は [us]。*/
 	cache = arp_get_cache();
 	for (ix = 0; ix < NUM_ARP_ENTRY; ix ++) {
@@ -753,5 +753,5 @@
 	WAI_NET_CONS_PRINTF();
 	get_tim(&now);
-	cons_printf(portid, "ネットワーク統計情報\t経過時間[ms]\t%lu\t", now);
+	cons_printf(portid, "ネットワーク統計情報\t経過時間[us]\t%lu\t", now);
 	if (now > (1000 * 3600 * 24))
 		cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n",
@@ -938,5 +938,5 @@
 		}
 
-	cons_printf(portid, "\nネットワーク統計情報\t経過時間[ms]\t%lu\t", now);
+	cons_printf(portid, "\nネットワーク統計情報\t経過時間[us]\t%lu\t", now);
 	if (now > (1000 * 3600 * 24))
 		cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n",
@@ -1065,5 +1065,5 @@
 	WAI_NET_CONS_PRINTF();
 	get_tim(&now);
-	cons_printf(portid, "ネットワークバッファ情報\t経過時間[ms]\t%u\n", now);
+	cons_printf(portid, "ネットワークバッファ情報\t経過時間[us]\t%u\n", now);
 
 #if NET_COUNT_ENABLE
@@ -1577,5 +1577,5 @@
 	cons_printf(portid, " IP Address\n");
 
-	/* expire の単位は [ms]。*/
+	/* expire の単位は [us]。*/
 	get_tim(&now);
 	dr = nd6_get_drl(&count);
@@ -2298,6 +2298,6 @@
 
 	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, "  TMO_ND6_RTR_SOL_DELAY:    %5d[us]\n", TMO_ND6_RTR_SOL_DELAY);
+	cons_printf(portid, "  TMO_ND6_RTR_SOL_INTERVAL: %5d[us]\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);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4.h	(revision 429)
@@ -93,5 +93,5 @@
 	uint8_t		file   [DHCP4_FILE_LEN];		/* boot file name		*/
 	uint8_t		options[DHCP4_DFLT_OPT_LEN];	/* optional parameters field	*/
-	} T_DHCP4_MSG;
+	} __attribute__((packed)) T_DHCP4_MSG;
 
 /* packet type ã®å®ç¾© */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.c	(revision 429)
@@ -206,4 +206,20 @@
 #endif
 
+#ifdef SEM_DHCP4_CLI_TIMER
+#define DHCP4_CLI_TIMER_LOCK() do { syscall(wai_sem(SEM_DHCP4_CLI_TIMER)); } while(0)
+#define DHCP4_CLI_TIMER_UNLOCK() do { syscall(sig_sem(SEM_DHCP4_CLI_TIMER)); } while(0)
+#else
+#define DHCP4_CLI_TIMER_LOCK() do { } while(0)
+#define DHCP4_CLI_TIMER_UNLOCK() do { } while(0)
+#endif
+
+#ifdef SEM_DHCP4_CLI_READY
+#define DHCP4_CLI_READY_WAIT(ct) do { syscall(wai_sem(SEM_DHCP4_CLI_READY)); } while(0)
+#define DHCP4_CLI_READY_SIGNAL(ct) do { syscall(sig_sem(SEM_DHCP4_CLI_READY)); } while(0)
+#else
+#define DHCP4_CLI_READY_WAIT(ct) do { } while(0)
+#define DHCP4_CLI_READY_SIGNAL(ct) do { ct->sig = 1; syscall(wup_tsk(ct->tskid)); } while(0)
+#endif
+
 /*
  *  dhcp4_cksum -- ãã§ãã¯ãµã ã®è¨ç®é¢æ°
@@ -381,5 +397,5 @@
 #endif	/* of #ifdef USE_LCD */
 #endif
-
+		ether_set_down();
 		}
 	}
@@ -508,7 +524,5 @@
 		lcd_putc(LCD_PORTID, '\n');
 #endif	/* of #ifdef USE_LCD */
-	if (ct->set_addr_callback != NULL)
-		ct->set_addr_callback();
-
+		ether_set_up();
 		}
 	}
@@ -951,8 +965,8 @@
 	int ix;
 
-	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_LOCK();
 	for (ix = NUM_DHCP4C_TIMERS; ix -- > 0; )
 		ct->timers[ix] = 0;
-	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_UNLOCK();
 	}
 
@@ -970,7 +984,7 @@
 
 	/* OFFER ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
-	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_LOCK();
 	ct->timers[DHCP4C_TIMER_RCV_OFFER] = SYSTIM2TIMER(TMO_DHCP4C_OFFER);
-	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_UNLOCK();
 
 	/* éä¿¡å
@@ -987,5 +1001,5 @@
 	/* DISCOVER ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
 	ct->flags |= DHCP4C_FLAG_TMOUT_SND_DISC;
-	syscall(sig_sem(SEM_DHCP4_CLI_READY));
+	DHCP4_CLI_READY_SIGNAL(ct);
 	}
 
@@ -1018,9 +1032,9 @@
 
 	/* EXPIREãRENEWãREBIND ã¿ã¤ãã¼ãè¨­å®ããã*/
-	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_LOCK();
 	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));
+	DHCP4_CLI_TIMER_UNLOCK();
 
 	/* BOUND ç¶æ
@@ -1048,7 +1062,7 @@
 ã RENEW ä»¥å¤ã§ã¯ ACK/NAK ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
 	if (fsm != DHCP4_FSM_RENEW) { 
-		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_LOCK();
 		ct->timers[DHCP4C_TIMER_RCV_ACK] = SYSTIM2TIMER(TMO_DHCP4C_ACK);
-		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_UNLOCK();
 		}
 
@@ -1073,5 +1087,5 @@
 	/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
 	ct->flags |= DHCP4C_FLAG_TMOUT_SND_REQ;
-	syscall(sig_sem(SEM_DHCP4_CLI_READY));
+	DHCP4_CLI_READY_SIGNAL(ct);
 	}
 
@@ -1103,5 +1117,5 @@
 	/* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
 	ct->flags |= DHCP4C_FLAG_TMOUT_SND_REL;
-	syscall(sig_sem(SEM_DHCP4_CLI_READY));
+	DHCP4_CLI_READY_SIGNAL(ct);
 	}
 
@@ -1116,5 +1130,5 @@
 	uint8_t	*option;
 
-	memset((void*)&ct->snd_msg->msg, sizeof(ct->snd_msg->msg), 0);
+	memset((void*)&ct->snd_msg->msg, 0, sizeof(ct->snd_msg->msg));
 	ct->snd_msg->len = sizeof(ct->snd_msg->msg);
 
@@ -1410,7 +1424,7 @@
 
 		/* REQUEST ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
-		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_LOCK();
 		ct->timers[DHCP4C_TIMER_SND_REQ] = 0;
-		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_UNLOCK();
 
 		/*
@@ -1464,7 +1478,7 @@
 
 		/* ACK/NAK ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
-		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_LOCK();
 		ct->timers[DHCP4C_TIMER_RCV_ACK] = 0;
-		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_UNLOCK();
 
 		/*
@@ -1544,7 +1558,7 @@
 
 	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
-	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_LOCK();
 	ct->timers[DHCP4C_TIMER_SND_REQ] = SYSTIM2TIMER(ct->interval);
-	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_UNLOCK();
 	}
 
@@ -1582,5 +1596,5 @@
 	/* ã¡ãã»ã¼ã¸éä¿¡å¾
 ã¡ãè¡ãã*/
-	syscall(wai_sem(SEM_DHCP4_CLI_READY));
+	DHCP4_CLI_READY_WAIT(ct);
 
 	/* SLEEP ç¶æ
@@ -1602,7 +1616,7 @@
 
 		/* DISCOVER ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
-		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_LOCK();
 		ct->timers[DHCP4C_TIMER_SND_DISC] = 0;
-		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_UNLOCK();
 
 		/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ REQUEST ç¶æ
@@ -1634,7 +1648,7 @@
 
 		/* OFFER ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
-		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_LOCK();
 		ct->timers[DHCP4C_TIMER_RCV_OFFER] = 0;
-		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+		DHCP4_CLI_TIMER_UNLOCK();
 
 		/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ REQUEST ç¶æ
@@ -1692,8 +1706,10 @@
 
 	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
-	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_LOCK();
 	ct->timers[DHCP4C_TIMER_SND_DISC] = SYSTIM2TIMER(ct->interval);
-	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
-	}
+	DHCP4_CLI_TIMER_UNLOCK();
+	}
+
+#ifdef DHCP4_CLI_TASK
 
 /*
@@ -1706,5 +1722,5 @@
 	int ix;
 
-	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_LOCK();
 	for (ix = NUM_DHCP4C_TIMERS; ix -- > 0; ) {
 		if (ct->timers[ix] != 0) {
@@ -1712,13 +1728,15 @@
 			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));
+				DHCP4_CLI_READY_SIGNAL(ct);
 				}
 			}
 		}
-	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+	DHCP4_CLI_TIMER_UNLOCK();
 
 	/* 1ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããã*/
 	timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ);
 	}
+
+#endif
 
 /*
@@ -1832,4 +1850,6 @@
 	}
 
+#ifdef DHCP4_CLI_TASK
+
 /*
  *  dispatch_event -- ã¤ãã³ãæ¯ã®å¦ç
@@ -1845,5 +1865,5 @@
 		/* ã¡ãã»ã¼ã¸ã®åä¿¡ã¨ã¿ã¤ã ã¢ã¦ããå¾
 ã¤ã*/
-		syscall(wai_sem(SEM_DHCP4_CLI_READY));
+		DHCP4_CLI_READY_WAIT(ct);
 
 		if (ct->flags & DHCP4C_FLAG_RCV_MSG) {
@@ -1863,4 +1883,6 @@
 	}
 
+#endif
+
 /*
  *  init_context -- DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½ãåæåããã
@@ -1868,12 +1890,12 @@
 
 static void
-init_context (T_DHCP4_CLI_CONTEXT *ct, ID cepid)
+init_context (T_DHCP4_CLI_CONTEXT *ct, ID tskid, ID cepid)
 {
   	memset(ct, 0, sizeof(*ct));
+	ct->tskid	= tskid;
 	ct->cepid	= cepid;
 	ct->sc		= IF_ETHER_NIC_GET_SOFTC();
 	ct->dst.portno	= DHCP4_SRV_CFG_PORTNO;
 	ct->dst.ipaddr	= IPV4_ADDRANY;
-	ct->set_addr_callback = DHCP4_CLI_SET_ADDR_CALLBACK;
 	}
 
@@ -1968,5 +1990,6 @@
 
 		/* SLEEP ãè§£é¤ããã*/
-		wup_tsk(DHCP4_CLI_TASK);
+		context.req = 1;
+		wup_tsk(context.tskid);
 		return E_OK;
 		}
@@ -2061,8 +2084,10 @@
 				}
 			}
-		syscall(sig_sem(SEM_DHCP4_CLI_READY));
+		DHCP4_CLI_READY_SIGNAL((&context));
 		}
 	return E_OK;
 	}
+
+#ifdef DHCP4_CLI_TASK
 
 /*
@@ -2075,5 +2100,5 @@
 	T_DHCP4_CLI_CONTEXT	*ct;
 	ID			tskid;
-	ER			error;
+	ER			error = E_OK;
 
 	dly_tsk(1000);
@@ -2084,31 +2109,8 @@
 
 	/* DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½ãåæåããã*/
-	init_context(ct, (ID)exinf);
+	init_context(ct, tskid, (ID)exinf);
+	ct->fsm = DHCP4_FSM_SLEEP;
 
 	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);
 
 		/* ãªã¼ã¹ãè§£æ¾å¾ãååå¾ãæå®ããã¦ããªããã°ä¼æ­¢ããã*/
@@ -2116,6 +2118,8 @@
 
 			/* ä¼æ­¢ããã*/
-			if (error == E_OK)
-				syslog(LOG_NOTICE, "[DHCP4C] lease released, go to sleep.");
+			if (error == E_OK) {
+				if (ct->fsm != DHCP4_FSM_SLEEP)
+					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));
@@ -2126,6 +2130,145 @@
 		ct->flags = 0;
 		ct->error = E_OK;
-		}
-	}
-
+
+		/* 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);
+		}
+	}
+
+#else
+
+T_DHCP4_CLI_CONTEXT *
+dhcp4_cli_initialize(ID tskid, ID cepid)
+{
+	T_DHCP4_CLI_CONTEXT *ct = &context;
+	/* DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½ãåæåããã*/
+	init_context(ct, tskid, cepid);
+	ct->fsm = DHCP4_FSM_SLEEP;
+	ct->timer = TMO_FEVR;
+	return ct;
+	}
+
+int
+dhcp4_cli_get_timer(T_DHCP4_CLI_CONTEXT *ct)
+{
+	if (ct->fsm == DHCP4_FSM_SLEEP)
+		return TMO_FEVR;
+
+	return ct->timer;
+	}
+
+void
+dhcp4_cli_progress(T_DHCP4_CLI_CONTEXT *ct, int elapse)
+{
+	int ix;
+
+	if ((ct->fsm == DHCP4_FSM_SLEEP) || (ct->timer == TMO_FEVR))
+		return;
+
+	ct->timer -= elapse;
+	if (ct->timer > 0)
+		return;
+
+	/* 1ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããããã«ã¿ã¤ãã¼ãè¨­å®ããã*/
+	ct->timer = 1000 * 1000;
+
+	for (ix = NUM_DHCP4C_TIMERS; ix-- > 0; ) {
+		if (ct->timers[ix] != 0) {
+			ct->timers[ix] --;
+			if (ct->timers[ix] <= 0) {
+				ct->timers[ix] = 0;
+				ct->flags = (ct->flags & ~DHCP4C_FLAG_TMOUT_MASK) | DHCP4C_FLAG_TMOUT_TIMER | ix;
+				DHCP4_CLI_READY_SIGNAL(ct);
+				}
+			}
+		}
+	}
+
+void
+dhcp4_cli_wakeup(T_DHCP4_CLI_CONTEXT *ct)
+{
+	if (ct->req) {
+		ct->req = 0;
+		if (ct->snd_msg == NULL) {
+			ct->flags = 0;
+			ct->error = E_OK;
+
+			/* ã¡ãã»ã¼ã¸æ§é ä½ãåæåããã*/
+			if ((ct->error = init_cli_msg(ct)) != E_OK)
+				return;
+
+			ct->timer = 1000 * 1000;
+
+			/* SELECT ç¶æ
+ã«é·ç§»ããã*/
+			start_select(ct);
+			}
+		}
+
+	if (!ct->sig)
+		return;
+	ct->sig = 0;
+
+	if (ct->flags & DHCP4C_FLAG_RCV_MSG) {
+		while (ct->val_lst != NULL) {
+			ct->error = eval_rcv_msg(ct);
+			}
+		ct->flags &= ~DHCP4C_FLAG_RCV_MSG;
+		}
+	}
+
+void
+dhcp4_cli_timeout(T_DHCP4_CLI_CONTEXT *ct)
+{
+	if (ct->flags & DHCP4C_FLAG_TMOUT_MASK)
+		ct->error = dispatch_timeout(ct);
+
+	if (ct->error != E_OK || ct->fsm == DHCP4_FSM_SLEEP) {
+		/* å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã*/
+		cancel_all_timers(ct);
+		ct->timer = TMO_FEVR;
+
+		/* ã¡ãã»ã¼ã¸æ§é ä½ãè§£æ¾ããã*/
+		rel_cli_msg(ct);
+
+		/* ãªã¼ã¹ãè§£æ¾å¾ãååå¾ãæå®ããã¦ããªããã°ä¼æ­¢ããã*/
+		if (!(ct->flags & DHCP4C_FLAG_RENEW)) {
+
+			/* ä¼æ­¢ããã*/
+			if (ct->error == E_OK) {
+				if (ct->fsm != DHCP4_FSM_SLEEP)
+					syslog(LOG_NOTICE, "[DHCP4C] lease released, go to sleep.");
+			}
+			else {
+				syslog(LOG_NOTICE, "[DHCP4C] server not available, go to sleep, error: %s.", itron_strerror(ct->error));
+				ct->error = E_OK;
+				ct->fsm = DHCP4_FSM_SLEEP;
+				}
+			}
+		}
+	}
+
+#endif /* DHCP4_CLI_TASK */
 #endif	/* of #ifdef DHCP4_CLI_CFG */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli.h	(revision 429)
@@ -206,14 +206,14 @@
 
 /* åä¿¡ã¿ã¤ã ã¢ã¦ã	*/
-#define TMO_DHCP4C_OFFER	ULONG_C(120*1000)	/* OFFER ã¡ãã»ã¼ã¸	*/
-#define TMO_DHCP4C_ACK		ULONG_C(60*1000)	/* ACK/NAK ã¡ãã»ã¼ã¸	*/
+#define TMO_DHCP4C_OFFER	(ULONG_C(120)*SYSTIM_HZ)	/* OFFER ã¡ãã»ã¼ã¸	*/
+#define TMO_DHCP4C_ACK		(ULONG_C(60)*SYSTIM_HZ)	/* 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_DEF_LEASE	(ULONG_C(12*60*60)*SYSTIM_HZ)	/* æ¨æºæé	*/
+#define TMO_DHCP4C_MIN_LEASE	(ULONG_C(60)*SYSTIM_HZ)	/* æå°æé	*/
 
 /* ã¡ãã»ã¼ã¸ã®éä¿¡å¨æ	*/
-#define TMO_DHCP4C_INIT_INTVL	ULONG_C(3*1000)		/* åæå¤	*/
-#define TMO_DHCP4C_MAX_BACKOFF	ULONG_C(15*1000)	/* å¶éå¤	*/
+#define TMO_DHCP4C_INIT_INTVL	(ULONG_C(3)*SYSTIM_HZ)		/* åæå¤	*/
+#define TMO_DHCP4C_MAX_BACKOFF	(ULONG_C(15)*SYSTIM_HZ)	/* å¶éå¤	*/
 
 /* DHCP ãµã¼ãã¸ã® UDP éä¿¡ã¿ã¤ã ã¢ã¦ã	*/
@@ -230,9 +230,4 @@
 ã¡æé	*/
 #define TMO_DHCP4C_SND_REL_WAIT	ULONG_C(1000000)	/* [us] */
-
-/* DHCP ã§ã¢ãã¬ã¹ãæ´æ°ãããæã«å¼ã³åºãã³ã¼ã«ããã¯é¢æ° */
-#ifndef DHCP4_CLI_SET_ADDR_CALLBACK
-#define DHCP4_CLI_SET_ADDR_CALLBACK NULL
-#endif
 
 #ifndef _MACRO_ONLY
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli_var.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dhcp4_cli_var.h	(revision 429)
@@ -181,5 +181,6 @@
 	RELTIM		interval;	/* éä¿¡éé			*/
 	ER_UINT		error;		/* ã¨ã©ã¼ã»ãã¼ã¿é·		*/
-	ID		cepid;		/* CEP ID			*/
+	ID			tskid;		/* ã¿ã¹ã¯ID */
+	ID			cepid;		/* CEP ID			*/
 	uint32_t	xid;		/* ãã©ã³ã¶ã¯ã·ã§ã³ ID		*/
 	uint16_t	flags;		/* åç¨®ãã©ã°			*/
@@ -188,5 +189,7 @@
 	uint8_t		fsm;		/* ç¾å¨ã®ç¶æ
 			*/
-	void (* set_addr_callback)();	/* ã¢ãã¬ã¹è¨­å®æã®ã³ã¼ã«ããã¯ */
+	uint8_t		req;
+	uint8_t		sig;
+	int timer;
 	} T_DHCP4_CLI_CONTEXT;
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.c	(revision 429)
@@ -44,5 +44,6 @@
 #include <sil.h>
 #include <syssvc/serial.h>
-#include <syssvc/logtask.h>
+#include <target_syssvc.h>
+#define LOGTASK_PORTID SIO_PORTID
 #include <t_syslog.h>
 #include "kernel_cfg.h"
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/resolver.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/resolver.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/resolver.c	(revision 429)
@@ -59,5 +59,6 @@
 #include <kernel.h>
 #include <t_syslog.h>
-#include <syssvc/logtask.h>
+#include <target_syssvc.h>
+#define LOGTASK_PORTID SIO_PORTID
 #include "kernel_cfg.h"
 #include "tinet_cfg.h"
@@ -253,5 +254,5 @@
 {
 	uint_t		label_len;
-	uint8_t		*tail;
+	char		*tail;
 
 	while (*name != '\0') {
@@ -265,5 +266,5 @@
 
 		/* ã©ãã«é·ãè¨­å®ããã*/
-		label_len = tail - (uint8_t*)name;
+		label_len = tail - name;
 		if (label_len > DNS_LABEL_LENGTH) {	/* 63 ãªã¯ããããè¶
 ããã¨ã¨ã©ã¼ */
@@ -421,5 +422,5 @@
 
 			/* ãã¡ã¤ã³åãè¿½å ããã*/
-			if ((offset = add_name(msg, msg_size, offset, dns_domain_name)) < 0)
+			if ((offset = add_name(msg, msg_size, offset, (char *)dns_domain_name)) < 0)
 				return offset;
 
@@ -1075,5 +1076,5 @@
 
 	if (new == NULL)
-		strcpy(dns_domain_name, RSLV_CFG_DNS_DOMAIN_NAME_STR);
+		strcpy((char *)dns_domain_name, RSLV_CFG_DNS_DOMAIN_NAME_STR);
 	else {
 		dst = dns_domain_name;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/resolver.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/resolver.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/resolver.h	(revision 429)
@@ -70,6 +70,6 @@
  */
 
-#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 TMO_DNS_UDP_SND		ULONG_C(1*1000*1000)	/* [us]ãDNS ãµã¼ãã¸ã®   UDP éä¿¡ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_DNS_UDP_RCV		ULONG_C(5*1000*1000)	/* [us]ãDNS ãµã¼ãããã® UDP åä¿¡ã¿ã¤ã ã¢ã¦ã	*/
 #define NUM_DNS_UDP_RETRY	1		/* ãªãã©ã¤åæ°					*/
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.c	(revision 429)
@@ -708,5 +708,5 @@
 	len += put_str(cepid, srbuf, response);
 	get_tim(&finish);
-	syslog(LOG_NOTICE, "[WWWn:%02u SND] send: index.html, len: %4u, time: %lu [ms]",
+	syslog(LOG_NOTICE, "[WWWn:%02u SND] send: index.html, len: %4u, time: %lu [us]",
 	                   cepid, len, (finish - start) * 1000 / SYSTIM_HZ);
 	return E_OK;
@@ -1609,5 +1609,5 @@
 
 	get_tim(&finish);
-	syslog(LOG_NOTICE, "[WWWn:%02u SND]send: stat.html,  len: %4u, time: %lu [ms]",
+	syslog(LOG_NOTICE, "[WWWn:%02u SND]send: stat.html,  len: %4u, time: %lu [us]",
 	                   cepid, len, (finish - start) * 1000 / SYSTIM_HZ);
 	return E_OK;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.c	(revision 429)
@@ -4,5 +4,5 @@
  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
- *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ *  Copyright (C) 2014-2019 Cores Co., Ltd. Japan
  * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
@@ -64,5 +64,5 @@
  * SUCH DAMAGE.
  * 
- * $FreeBSD: src/sys/i386/isa/if_mbed.c,v 1.148.2.4 1999/09/25 13:08:18 nyan Exp $
+ * $FreeBSD: src/sys/i386/isa/if_ed.c,v 1.148.2.4 1999/09/25 13:08:18 nyan Exp $
  */
 
@@ -200,5 +200,4 @@
 if_mbed_setrcr(T_IF_SOFTC *ic)
 {
-	T_MBED_SOFTC	*sc = ic->sc;
 }
 
@@ -318,6 +317,4 @@
 if_mbed_init(T_IF_SOFTC *ic)
 {
-	T_MBED_SOFTC *sc = ic->sc;
-
 	/* mbed_init 本体を呼び出す。*/
 	if_mbed_init_sub(ic);
@@ -347,5 +344,5 @@
 				}
 				if (link_mode_new != NEGO_FAIL) {
-					ethernetext_set_link_mode(link_mode_new);
+					ethernetext_set_link_mode(link_mode_new | PROMISCUOUS_MODE);
 					ETHER.EESIPR0 |= EDMAC_EESIPR_INI_TRANS;
 					ether_set_link_up(ether);
@@ -373,5 +370,4 @@
 if_mbed_read(T_IF_SOFTC *ic)
 {
-	T_MBED_SOFTC *sc = ic->sc;
 	T_NET_BUF *input = NULL;
 	uint_t align;
@@ -406,5 +402,4 @@
 if_mbed_start(T_IF_SOFTC *ic, T_NET_BUF *output)
 {
-	T_MBED_SOFTC *sc = ic->sc;
 	int32_t len, res, pos;
 
@@ -429,22 +424,27 @@
 if_mbed_eth_handler(void)
 {
-    uint32_t stat_edmac;
-    uint32_t stat_etherc;
-
-    /* Clear the interrupt request flag */
-    stat_edmac = (ETHER.EESR0 & ETHER.EESIPR0);       /* Targets are restricted to allowed interrupts */
-    ETHER.EESR0 = stat_edmac;
-    /* Reception-related */
-    if (stat_edmac & EDMAC_EESIPR_INI_RECV) {
-		isig_sem(if_softc.semid_rxb_ready);
-    }
+	uint32_t stat_edmac;
+	uint32_t stat_etherc;
+	ER ret;
+	
+	/* Clear the interrupt request flag */
+	stat_edmac = (ETHER.EESR0 & ETHER.EESIPR0);       /* Targets are restricted to allowed interrupts */
+	ETHER.EESR0 = stat_edmac;
+	/* Reception-related */
+	if (stat_edmac & EDMAC_EESIPR_INI_RECV) {
+		ret = isig_sem(if_softc.semid_rxb_ready);
+		if (ret != E_OK)
+			syslog(LOG_INFO, "semid_rxb_ready %d %x", ret, stat_edmac & EDMAC_EESIPR_INI_RECV);
+	}
 	if (stat_edmac & EDMAC_EESIPR_INI_TRANS) {
-		isig_sem(if_softc.semid_txb_ready);
-	}
-    /* E-MAC-related */
-    if (stat_edmac & EDMAC_EESIPR_INI_EtherC) {
-        /* Clear the interrupt request flag */
-        stat_etherc = (ETHER.ECSR0 & ETHER.ECSIPR0);  /* Targets are restricted to allowed interrupts */
-        ETHER.ECSR0  = stat_etherc;
-    }
-}
+		ret = isig_sem(if_softc.semid_txb_ready);
+		if (ret != E_OK)
+			syslog(LOG_INFO, "semid_txb_ready %d %x", ret, stat_edmac & EDMAC_EESIPR_INI_TRANS);
+	}
+	/* E-MAC-related */
+	if (stat_edmac & EDMAC_EESIPR_INI_EtherC) {
+		/* Clear the interrupt request flag */
+		stat_etherc = (ETHER.ECSR0 & ETHER.ECSIPR0);  /* Targets are restricted to allowed interrupts */
+		ETHER.ECSR0  = stat_etherc;
+	}
+}
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.cfg	(revision 429)
@@ -4,5 +4,5 @@
  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
- *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ *  Copyright (C) 2014-2019 Cores Co., Ltd. Japan
  * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.h	(revision 429)
@@ -4,5 +4,5 @@
  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
- *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ *  Copyright (C) 2014-2019 Cores Co., Ltd. Japan
  * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic.cfg	(revision 429)
@@ -4,5 +4,5 @@
  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
- *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ *  Copyright (C) 2014-2019 Cores Co., Ltd. Japan
  * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_asp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_asp.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_asp.cfg	(revision 429)
@@ -4,5 +4,5 @@
  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
- *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ *  Copyright (C) 2014-2019 Cores Co., Ltd. Japan
  * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_rename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_rename.h	(revision 429)
@@ -4,5 +4,5 @@
  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
- *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ *  Copyright (C) 2014-2019 Cores Co., Ltd. Japan
  * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_config.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_config.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_config.h	(revision 429)
@@ -4,5 +4,5 @@
  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
- *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ *  Copyright (C) 2014-2019 Cores Co., Ltd. Japan
  * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_defs.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_defs.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_defs.h	(revision 429)
@@ -4,5 +4,5 @@
  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
- *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ *  Copyright (C) 2014-2019 Cores Co., Ltd. Japan
  * 
  *  上記著作権者は，以下の(1)～(4)の条件を満たす場合に限り，本ソフトウェ
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp6.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp6.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp6.h	(revision 429)
@@ -291,6 +291,6 @@
 typedef struct t_router_advert_hdr {
 	T_ICMP6_HDR	hdr;
-	uint32_t	reachable;		/* [ms] 到達可能時間	*/
-	uint32_t	retransmit;		/* [ms] 近隣要請送信間隔	*/
+	uint32_t	reachable;		/* [us] 到達可能時間	*/
+	uint32_t	retransmit;		/* [us] 近隣要請送信間隔	*/
 	/* この後にオプションが続く */
 	} __attribute__((packed, aligned(2))) T_ROUTER_ADVERT_HDR;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in4_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in4_subr.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in4_subr.c	(revision 429)
@@ -115,4 +115,9 @@
 #include <net/if_var.h>
 
+#ifdef SUPPORT_IGMP
+#include <netinet/udp_var.h>
+#include <netinet/ip_igmp.h>
+#endif /* of #ifdef SUPPORT_IGMP */
+
 #if defined(_IP4_CFG)
 
@@ -294,6 +299,9 @@
 
 	/* IP ããããè¨­å®ããã*/
-	if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK)
+	if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK) {
+		syscall(rel_net_buf(*nbuf));
+		*nbuf = NULL;
 		return error;
+		}
 
 	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_itron.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_itron.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_itron.h	(revision 429)
@@ -62,5 +62,5 @@
 #define TFN_TCP_ALL		(0)
 
-#define TEV_TCP_RCV_OOB		(-0x201)
+#define TEV_TCP_RCV_OOB		(0x201)
 
 /* UDP 関係 */
@@ -75,5 +75,5 @@
 #define TFN_UDP_ALL		(0)
 
-#define TEV_UDP_RCV_DAT		(-0x221)
+#define TEV_UDP_RCV_DAT		(0x221)
 
 /* 一般 */
@@ -139,4 +139,7 @@
 extern ER	udp_cre_cep (ID cepid, T_UDP_CCEP *pk_ccep);
 
+extern ER	udp6_del_cep(ID cepid);
+extern ER	udp6_set_opt(ID cepid, int_t optname, void *optval, int_t optlen);
+extern ER	udp6_get_opt(ID cepid, int_t optname, void *optval, int_t optlen);
 extern ER	udp6_cre_cep (ID cepid, T_UDP6_CCEP *pk_ccep);
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_rename.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_rename.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_rename.h	(revision 429)
@@ -242,5 +242,6 @@
 #define arp_get_cache		_tinet_arp_get_cache
 
-#define ether_map_ipv4_multicast	_tinet_ether_map_ipv4_multicast
+#define ether_map_ipv4_multicast	\
+								_tinet_ether_map_ipv4_multicast
 
 /* netinet6/icmp6.c */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h	(revision 429)
@@ -141,5 +141,7 @@
 					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_IS_NET_ADDR_MULTICAST(nbuf)	(GET_IP_VER(input)==IPV6_VERSION	\
+					?IN_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)	\
+					:IN4_IS_ADDR_MULTICAST(ntohl(GET_IP4_HDR(input)->dst)))
 #define IN_ADDRWITHIFP(ifp,src,dst)	inn_addrwithifp(ifp,src,dst)
 #define IN_IS_ADDR_ANY(addr)		IN6_IS_ADDR_UNSPECIFIED(addr)
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip4_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip4_var.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip4_var.h	(revision 429)
@@ -106,4 +106,7 @@
 	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
 	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -124,4 +127,7 @@
 	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
 	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -178,4 +184,7 @@
 	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
 	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.c	(revision 429)
@@ -5,31 +5,39 @@
 *                   Tomakomai National College of Technology, JAPAN
 *
-*  ãLì ÒÍCÈºÌ (1)`(4) Ìð©CFree Software Foundation
-*  ÉæÁÄö\³êÄ¢é GNU General Public License Ì Version 2 ÉL
-*  q³êÄ¢éðð½·êÉÀèC{\tgEFAi{\tgEFA
-*  ðüÏµ½àÌðÜÞ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ðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
-*      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
-*      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
-*      Ì³ÛØKèðfÚ·é±ÆD
-*  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
-*      pÅ«È¢`ÅÄzz·éêÉÍCÌðð½·±ÆD
-*    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
-*        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
-*  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
-*      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+*  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation
+*  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+*  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+*  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+*  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+*  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+*      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+*      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+*  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+*      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+*      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+*      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+*  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+*      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+*    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+*        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+*  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+*      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
 *
-*  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
-*  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄC»ÌKpÂ\«à
-*  ÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌpÉæè¼
-*  ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCðíÈ¢D
+*  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+*  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+*  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+*  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
 *
 *  @(#) $Id$
@@ -88,5 +96,5 @@
 
 static bool_t igmp_send_report_v2(T_IN4_ADDR dst);
-static uint16_t igmp_get_timer(T_IGMP_ENTRY *entry);
+static int16_t igmp_get_timer(T_IGMP_ENTRY *entry);
 
 ER igmp_set_loop(T_UDP_CEP *cep, uint8_t optval)
@@ -155,5 +163,4 @@
 	T_IGMP_ENTRY *entry = NULL;
 	int		i;
-	uint16_t	min;
 	T_IFNET	*ifp = IF_GET_IFNET();
 	ER ret = E_NOMEM;
@@ -168,5 +175,5 @@
 		entry = &igmp_groups[i];
 		if (entry->timer == -1) {
-			entry->timer = igmp_get_timer(entry);
+			entry->timer = 0;
 			entry->ip_addr = optval->imr_multiaddr;
 			ret = E_OK;
@@ -184,5 +191,4 @@
 	T_IGMP_ENTRY *entry = NULL;
 	int		i;
-	uint16_t	min;
 	ER ret = E_PAR;
 	T_IFNET	*ifp = IF_GET_IFNET();
@@ -223,5 +229,4 @@
 	T_NET_BUF	*input = *inputp;
 	T_IGMPV2_HDR	*igmph;
-	T_IN4_ADDR	addr;
 	uint_t		len, align;
 	T_IP4_HDR	*ip4h;
@@ -234,5 +239,5 @@
 	NET_COUNT_IGMP(net_count_igmp.in_packets, 1);
 
-	/* ICMP wb_Ì·³ð`FbN·éB*/
+	/* ICMP ãããã®é·ãããã§ãã¯ããã*/
 	if (input->len < IF_IP4_IGMP_HDR_SIZE) {
 		NET_COUNT_IGMP(net_count_igmp.in_err_packets, 1);
@@ -243,13 +248,13 @@
 	igmph = (T_IGMPV2_HDR *)(input->buf + *offp);
 
-	/* 4 INebg«EÌf[^· */
+	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
 	len = input->len - *offp;
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 INebg«EÜÅpfBOÅßéB*/
+	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
 	if (align > len)
 		memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len));
 
-	/* `FbNTðvZ·éB*/
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
 	if (in_cksum(igmph, align) != 0) {
 		NET_COUNT_IGMP(net_count_igmp.in_err_packets, 1);
@@ -257,5 +262,5 @@
 	}
 
-	/* bZ[WÌ^Éæèªò·éB*/
+	/* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/
 	switch (igmph->type) {
 	case IGMP_MEMBERSHIP_QUERY:
@@ -263,10 +268,10 @@
 		ret = false;
 
-		/* QÁÌO[vAhX©çÌNG[Ìê */
+		/* åå ä¸­ã®ã°ã«ã¼ãã¢ãã¬ã¹ããã®ã¯ã¨ãªã¼ã®å ´å */
 		syscall(wai_sem(SEM_IGMP_GROUP_LOCK));
 
 		for (i = 0; i < NUM_IGMP_ENTRY; i++) {
 			entry = &igmp_groups[i];
-			if ((entry->timer >= 0) && (entry->ip_addr == addr)) {
+			if ((entry->timer >= 0) && (entry->ip_addr == igmph->addr)) {
 				entry->resptime = igmph->time;
 				ret = true;
@@ -278,5 +283,5 @@
 
 		if (ret) {
-			/* o[Vbv|[gðM */
+			/* ã¡ã³ãã¼ã·ãããªãã¼ããéä¿¡ */
 			igmp_send_report_v2(ip4h->src);
 		}
@@ -293,5 +298,5 @@
 	T_IGMPV2_HDR	*igmph;
 	T_NET_BUF		*output;
-	uint_t			len, align;
+	uint_t			len = 0, align;
 
 	if (in4_get_datagram(&output, (uint_t)(IF_IP4_IGMP_HDR_SIZE + len), 0,
@@ -300,23 +305,23 @@
 		return false;
 
-	/* IGMP wb_ðÝè·éB*/
+	/* IGMP ããããè¨­å®ããã*/
 	igmph = GET_IGMPV2_HDR(output, IF_IP4_IGMP_HDR_OFFSET);
 	igmph->type = IGMP_MEMBERSHIP_REPORT_V2;
 	igmph->time = 0;
-	igmph->addr = dst;
-
-	/* 4 INebg«EÌf[^· */
+	igmph->addr = htonl(dst);
+
+	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
 	align = (len + 3) >> 2 << 2;
 
-	/* 4 INebg«EÜÅpfBOÅßéB*/
+	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
 	if (align > len)
-		memset((uint8_t*)GET_IGMP_SDU(output, IF_IP4_IGMP_HDR_OFFSET) + IP4_HDR_SIZE + len,
+		memset((uint8_t*)GET_IGMP_SDU(output, IF_IP4_IGMP_HDR_OFFSET) + len,
 			0, (size_t)(align - len));
 
-	/* `FbNTðvZ·éB*/
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
 	igmph->sum = 0;
-	igmph->sum = in_cksum(igmph, (uint_t)(IF_IP4_IGMP_HDR_SIZE + align));
-
-	/* M·éB*/
+	igmph->sum = in_cksum(igmph, (uint_t)(IGMP_HDR_SIZE + align));
+
+	/* éä¿¡ããã*/
 	NET_COUNT_IGMP(net_count_igmp.out_octets,
 		output->len - GET_IF_IP4_HDR_SIZE(output));
@@ -330,5 +335,6 @@
 
 /*
-*  igmp_timer -- IGMP ¤Ê^C}[
+*  igmp_timer -- IGMP å
+±éã¿ã¤ãã¼
 */
 static void igmp_timer(void *ignore)
@@ -361,10 +367,9 @@
 
 /*
-*  igmp_init -- IGMP @\ðú»·éB
+*  igmp_init -- IGMP æ©è½ãåæåããã
 */
 
 void igmp_init(void)
 {
-	T_IGMP_ENTRY *entry = NULL;
 	int i;
 
@@ -397,12 +402,12 @@
 }
 
-uint16_t igmp_get_timer(T_IGMP_ENTRY *entry)
-{
-	uint16_t time = entry->resptime;
+int16_t igmp_get_timer(T_IGMP_ENTRY *entry)
+{
+	int16_t time = entry->resptime;
 
 	if (time == 0)
-		time = 10;
-
-	return net_rand() / (0x7fffffff / time);
+		time = 590;
+
+	return (int16_t)(net_rand() % time) + 10;
 }
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.cfg	(revision 429)
@@ -5,31 +5,39 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìð©CFree Software Foundation 
- *  ÉæÁÄö\³êÄ¢é GNU General Public License Ì Version 2 ÉL
- *  q³êÄ¢éðð½·êÉÀèC{\tgEFAi{\tgEFA
- *  ðüÏµ½àÌðÜÞ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ðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
  *
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄC»ÌKpÂ\«à
- *  ÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌpÉæè¼
- *  ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCðíÈ¢D
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
  * 
  *  @(#) $Id$
@@ -37,11 +45,10 @@
 
 /*
- *  IGMP RtBM
-[Vt@C
+ *  IGMP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
  */
 
 #if defined(_IP4_CFG) && defined(SUPPORT_IGMP)
 
-/* IGMP O[vXVpZ}tH */
+/* IGMP ã°ã«ã¼ãæ´æ°ç¨ã»ããã© */
 
 CRE_SEM(SEM_IGMP_GROUP_LOCK, { TA_TPRI, 1, 1 });
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_igmp.h	(revision 429)
@@ -5,31 +5,39 @@
  *                   Tomakomai National College of Technology, JAPAN
  *
- *  ãLì ÒÍCÈºÌ (1)`(4) Ìð©CFree Software Foundation
- *  ÉæÁÄö\³êÄ¢é GNU General Public License Ì Version 2 ÉL
- *  q³êÄ¢éðð½·êÉÀèC{\tgEFAi{\tgEFA
- *  ðüÏµ½àÌðÜÞ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ðCCu`®ÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«é`ÅÄzz·éêÉÍCÄzzÉº¤hL
-gip
- *      Ò}j
-AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL
- *      Ì³ÛØKèðfÚ·é±ÆD
- *  (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJ­Ég
- *      pÅ«È¢`ÅÄzz·éêÉÍCÌðð½·±ÆD
- *    (a) ÄzzÉº¤hL
-gipÒ}j
-AÈÇjÉCãLÌ
- *        ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
- *  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
- *      Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
  *
- *  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨
- *  æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄC»ÌKpÂ\«à
- *  ÜßÄC¢©ÈéÛØàsíÈ¢DÜ½C{\tgEFAÌpÉæè¼
- *  ÚIÜ½ÍÔÚIÉ¶¶½¢©Èé¹QÉÖµÄàC»ÌÓCðíÈ¢D
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
  *
  *  @(#) $Id$
@@ -39,77 +47,65 @@
 #define _IP_IGMP_H_
 
-#define NUM_IGMP_ENTRY				5	/* }`LXgO[vÌGg */
-
-#ifdef __CA850__
-#pragma pack(1)
-#elif __RX
-#pragma pack
-#elif _MSC_VER
-#pragma pack(push, 1)
-#endif
+#define NUM_IGMP_ENTRY				5	/* ãã«ãã­ã£ã¹ãã°ã«ã¼ãã®ã¨ã³ããªæ° */
 
  /*
-  *  IGMPv1 wb_Ìè`ARFC 1112
+  *  IGMPv1 ãããã®å®ç¾©ãRFC 1112
   */
 
 typedef struct t_igmpv1_hdr
 {
-	uint8_t		type;		/* bZ[WÌ^	*/
-	uint8_t		unused;		/* ¢gp			*/
-	uint16_t	sum;		/* `FbNT		*/
-	T_IN4_ADDR	addr;		/* O[vAhX */
-} T_IGMPV1_HDR;
+	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
+	uint8_t		unused;		/* æªä½¿ç¨			*/
+	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	T_IN4_ADDR	addr;		/* ã°ã«ã¼ãã¢ãã¬ã¹ */
+}  __attribute__((packed)) T_IGMPV1_HDR;
 
 /*
-*  IGMPv2 wb_Ìè`ARFC 2236
+*  IGMPv2 ãããã®å®ç¾©ãRFC 2236
 */
 
 typedef struct t_igmpv2_hdr
 {
-	uint8_t		type;		/* bZ[WÌ^	*/
-	uint8_t		time;		/* ÅåÔ		*/
-	uint16_t	sum;		/* `FbNT		*/
-	T_IN4_ADDR	addr;		/* O[vAhX */
-} T_IGMPV2_HDR;
+	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
+	uint8_t		time;		/* æå¤§å¿ç­æé		*/
+	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	T_IN4_ADDR	addr;		/* ã°ã«ã¼ãã¢ãã¬ã¹ */
+}  __attribute__((packed)) T_IGMPV2_HDR;
 
 typedef struct t_igmpv3_query_hdr
 {
-	uint8_t		type;		/* bZ[WÌ^	*/
-	uint8_t		time;		/* ÅåÔ		*/
-	uint16_t	sum;		/* `FbNT		*/
-	T_IN4_ADDR	grpaddr;	/* O[vAhX */
-	uint8_t		sqrv;		/* StOAQuerier Robustness Value */
+	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
+	uint8_t		time;		/* æå¤§å¿ç­æé		*/
+	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	T_IN4_ADDR	grpaddr;	/* ã°ã«ã¼ãã¢ãã¬ã¹ */
+	uint8_t		sqrv;		/* Sãã©ã°ãQuerier Robustness Value */
 	uint8_t		qqic;		/* Qurier's Query Interval Code */
-	uint16_t	num;		/* M³Ì */
-	T_IN4_ADDR	sdraddr;	/* M³AhX */
-} T_IGMPV3Q_HDR;
+	uint16_t	num;		/* éä¿¡å
+ã®æ° */
+	T_IN4_ADDR	sdraddr;	/* éä¿¡å
+ã¢ãã¬ã¹ */
+}  __attribute__((packed)) T_IGMPV3Q_HDR;
 
 typedef struct t_igmp_group_record
 {
-	uint8_t		type;		/* bZ[WÌ^	*/
-	uint8_t		len;		/* âf[^·		*/
-	uint16_t	num;		/* M³Ì */
-	T_IN4_ADDR	grpaddr;	/* O[vAhX */
-	T_IN4_ADDR	sdraddr;	/* M³AhX	*/
-							/* âf[^		*/
-} T_IGMP_GROUP_RECORD;
+	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
+	uint8_t		len;		/* è£å©ãã¼ã¿é·		*/
+	uint16_t	num;		/* éä¿¡å
+ã®æ° */
+	T_IN4_ADDR	grpaddr;	/* ã°ã«ã¼ãã¢ãã¬ã¹ */
+	T_IN4_ADDR	sdraddr;	/* éä¿¡å
+ã¢ãã¬ã¹	*/
+							/* è£å©ãã¼ã¿		*/
+}  __attribute__((packed)) T_IGMP_GROUP_RECORD;
 
 typedef struct t_igmpv3_report_hdr
 {
-	uint8_t		type;		/* bZ[WÌ^	*/
-	uint8_t		rsv1;		/* \ñ				*/
-	uint16_t	sum;		/* `FbNT		*/
-	uint16_t	rsv2;		/* \ñ				*/
-	uint16_t	num;		/* O[vR[hÌ */
-	T_IGMP_GROUP_RECORD record;	/* O[vR[h */
-} T_IGMPV3R_HDR;
-
-#ifdef __CA850__
-#pragma pack(8)
-#elif __RX
-#pragma unpack
-#elif _MSC_VER
-#pragma pack(pop)
-#endif
+	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
+	uint8_t		rsv1;		/* äºç´				*/
+	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	uint16_t	rsv2;		/* äºç´				*/
+	uint16_t	num;		/* ã°ã«ã¼ãã¬ã³ã¼ãã®æ° */
+	T_IGMP_GROUP_RECORD record;	/* ã°ã«ã¼ãã¬ã³ã¼ã */
+}  __attribute__((packed)) T_IGMPV3R_HDR;
 
 #define IGMP_HDR_SIZE			(sizeof(T_IGMPV1_HDR))
@@ -125,15 +121,15 @@
 
 /*
-*  bZ[WÌ^
+*  ã¡ãã»ã¼ã¸ã®å
 */
 
-#define IGMP_MEMBERSHIP_QUERY		0x11	/* o[VbvNG[		*/
-#define IGMP_MEMBERSHIP_REPORT		0x12	/* o[Vbv|[g		*/
-#define IGMP_MEMBERSHIP_REPORT_V2	0x16	/* o[Vbv|[g		*/
-#define IGMP_LEAVE_GROUP			0x17	/* [uO[v				*/
-#define IGMP_MEMBERSHIP_REPORT_V3	0x22	/* o[Vbv|[g		*/
+#define IGMP_MEMBERSHIP_QUERY		0x11	/* ã¡ã³ãã¼ã·ããã¯ã¨ãªã¼		*/
+#define IGMP_MEMBERSHIP_REPORT		0x12	/* ã¡ã³ãã¼ã·ããã¬ãã¼ã		*/
+#define IGMP_MEMBERSHIP_REPORT_V2	0x16	/* ã¡ã³ãã¼ã·ããã¬ãã¼ã		*/
+#define IGMP_LEAVE_GROUP			0x17	/* ãªã¼ãã°ã«ã¼ã				*/
+#define IGMP_MEMBERSHIP_REPORT_V3	0x22	/* ã¡ã³ãã¼ã·ããã¬ãã¼ã		*/
 
 /*
-*  UDPÊM[_IvV
+*  UDPéä¿¡ç«¯ç¹ãªãã·ã§ã³
 */
 
@@ -168,12 +164,12 @@
 
 /*
- *  IGMP O[vGg
+ *  IGMP ã°ã«ã¼ãã¨ã³ããª
  */
 
 typedef struct igmp_entry
 {
-	uint16_t	timer;		/* MÜÅÌÔ[b]	*/
-	uint16_t	resptime;	/* ÅåÔ[b]	*/
-	T_IN4_ADDR	ip_addr;	/* IP AhX			*/
+	int16_t		timer;		/* éä¿¡ã¾ã§ã®æé[ç§]	*/
+	int16_t		resptime;	/* æå¤§å¿ç­æé[ç§]	*/
+	T_IN4_ADDR	ip_addr;	/* IP ã¢ãã¬ã¹			*/
 } T_IGMP_ENTRY;
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_input.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_input.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_input.c	(revision 429)
@@ -521,5 +521,19 @@
 
 				/* 相手のアドレスをコピーする。*/
+
+#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)) {
@@ -847,5 +861,19 @@
 
 				/* 相手のアドレスをコピーする。*/
+
+#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)) {
@@ -1363,4 +1391,8 @@
 	NTOHS(tcph->sport);
 	NTOHS(tcph->dport);
+
+	/* SDU 長 より 緊急ポインタが大きい場合 */
+	if (tcph->urp > tcph->sum)
+		goto drop;
 
 find_cep:
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_output.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_output.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_output.c	(revision 429)
@@ -369,6 +369,8 @@
 		tcph->flags |= TCP_FLG_URG;
 		}
-	else
+	else {
+		tcph->urp = 0;
 		cep->snd_up  = cep->snd_una;
+		}
 
 #endif	/* of #ifdef TCP_CFG_EXTENTIONS */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr.c	(revision 429)
@@ -805,5 +805,5 @@
 
 T_TCP_CEP *
-tcp_drop (T_TCP_CEP *cep, ER errno)
+tcp_drop (T_TCP_CEP *cep, ER err)
 {
 #ifdef SUPPORT_MIB
@@ -815,5 +815,5 @@
 #endif	/* of #ifdef SUPPORT_MIB */
 
-	cep->error = errno;
+	cep->error = err;
 	if (TCP_FSM_HAVE_RCVD_SYN(cep->fsm_state)) {
 		cep->fsm_state = TCP_FSM_CLOSED;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.h	(revision 429)
@@ -86,8 +86,8 @@
  */
 
-#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_TMO		(ULONG_C(500000)/NET_TIMER_CYCLE)	/* 500,000 [us]	*/
+#define TCP_FAST_TMO		(ULONG_C(200000)/NET_TIMER_CYCLE)	/* 200,000 [us]	*/
 
-#define TCP_SLOW_HZ		(ULONG_C(1000)/TCP_SLOW_TMO/NET_TIMER_CYCLE)	/* Hz	*/
+#define TCP_SLOW_HZ		(ULONG_C(1000000)/TCP_SLOW_TMO/NET_TIMER_CYCLE)	/* Hz	*/
 
 /* TCP タイマ値 */
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.c	(revision 429)
@@ -897,5 +897,5 @@
 
 	/* tcp_rcv_buf の割当て長をリセットする。*/
-	cep->rcv_buf_len = 0;
+	cep->rcv_buf_len -= len;
 
 	/* 通信端点のロックを解除する。*/
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_var.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_var.h	(revision 429)
@@ -505,4 +505,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -817,5 +820,5 @@
 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 T_TCP_CEP *tcp_drop  (T_TCP_CEP *cep, ER err);
 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);
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcpn_usrreq.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcpn_usrreq.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcpn_usrreq.c	(revision 429)
@@ -689,10 +689,10 @@
 		cep->p_myaddr4    = p_myaddr;
 		cep->p_dstaddr    = NULL;
-		cep->p_myaddr     = NULL;
+		cep->p_myaddr     = NADR;
 
 #else	/* of #if API_PROTO == API_PROTO_IPV4 */
 
 		cep->p_dstaddr4   = NULL;
-		cep->p_myaddr4    = NULL;
+		cep->p_myaddr4    = NADR;
 		cep->p_dstaddr    = p_dstaddr;
 		cep->p_myaddr     = p_myaddr;
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_output.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_output.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_output.c	(revision 429)
@@ -182,5 +182,5 @@
 #if defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0
 
-		for (ix = tmax_udp6_cepid; ix -- > 0; ) {
+		for (ix = TNUM_UDP6_CEPID - 1; ix -- > 0; ) {
 
 			if (udp6_cep[ix].flags & UDP_CEP_FLG_POST_OUTPUT) {
@@ -194,5 +194,5 @@
 #if defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0
 
-		for (ix = tmax_udp4_cepid; ix -- > 0; ) {
+		for (ix = TNUM_UDP4_CEPID - 1; ix -- > 0; ) {
 
 			if (udp4_cep[ix].flags & UDP_CEP_FLG_POST_OUTPUT) {
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_subr.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_subr.c	(revision 429)
@@ -146,5 +146,5 @@
 #define UDP_FIND_CEP		udp6_find_cep
 #define UDP_NOTIFY		udp6_notify
-#define TMAX_UDP_CEPID		tmax_udp6_cepid
+#define TMAX_UDP_CEPID		(TNUM_UDP6_CEPID - 1)
 #define UDP_CEP			udp6_cep
 #define T_UDP_CEP		T_UDP6_CEP
@@ -183,5 +183,5 @@
 #define UDP_FIND_CEP		udp4_find_cep
 #define UDP_NOTIFY		udp4_notify
-#define TMAX_UDP_CEPID		tmax_udp4_cepid
+#define TMAX_UDP_CEPID		(TNUM_UDP4_CEPID - 1)
 #define T_UDP_CEP		T_UDP4_CEP
 #define UDP_CEP			udp4_cep
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h	(revision 429)
@@ -101,4 +101,14 @@
 typedef ER	(*t_udp_callback)(ID cepid, FN fncd, void *p_parblk);
 
+typedef struct t_udp_rcv_dat_para {
+	uint_t		len;
+	T_NET_BUF	*input;
+	uint_t		off;
+	union {
+		T_IPV4EP rep4;
+		T_IPV6EP rep6;
+	};
+	} T_UDP_RCV_DAT_PARA;
+
 /*
  *  UDP 通信端点
@@ -141,4 +151,10 @@
 #endif
 
+#ifdef SUPPORT_IGMP
+	bool_t igmp_loopback;
+	uint8_t igmp_ttl;
+	T_IN4_ADDR 	igmp_mcaddr;	/*  */
+#endif
+
 	} T_UDP6_CEP;
 
@@ -178,4 +194,5 @@
 	ER		error;		/* 待ち中に発生したエラー	*/
 #endif
+
 #ifdef SUPPORT_IGMP
 	bool_t igmp_loopback;
@@ -183,4 +200,5 @@
 	T_IN4_ADDR 	igmp_mcaddr;	/*  */
 #endif
+
 	} T_UDP4_CEP;
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_input.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_input.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_input.c	(revision 429)
@@ -88,8 +88,8 @@
 {
 	T_UDP_HDR	*udph;
-	uint_t		len;
+	T_UDP_RCV_DAT_PARA para;
 
 	udph = (T_UDP_HDR *)(input->buf + off);
-	len  = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE);
+	para.len  = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE);
 
 	if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
@@ -111,5 +111,5 @@
 		/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
 		memcpy(cep->rcv_data, GET_UDP_SDU(input, off),
-		       (size_t)(len < cep->rcv_len ? len : cep->rcv_len));
+		       (size_t)(para.len < cep->rcv_len ? para.len : cep->rcv_len));
 		syscall(rel_net_buf(input));
 
@@ -117,7 +117,7 @@
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
-			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)(uint32_t)len);
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)(uint32_t)para.len);
 #else
-			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)&len);
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)&para.len);
 #endif
 		else
@@ -134,7 +134,16 @@
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
-		(*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)(uint32_t)len);
+		(*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)(uint32_t)para.len);
 #else
-		(*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)&len);
+		para.input = input;
+		para.off = off;
+#if API_PROTO == API_PROTO_IPV4
+		para.rep4.portno = ntohs(udph->sport);
+		IN_COPY_TO_HOST(&para.rep4.ipaddr, input);
+#else
+		para.rep6.portno = ntohs(udph->sport);
+		IN_COPY_TO_HOST(&para.rep6.ipaddr, input);
+#endif
+		(*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)&para.len);
 #endif
 		/*
@@ -143,6 +152,9 @@
 		 *  ãã¼ã¿ãèª­ã¿åºããªãã£ããã¨ã«ãªãã®ã§ãæ¨ã¦ãã
 		 */
-		if (cep->cb_netbuf != NULL)
-			syscall(rel_net_buf(cep->cb_netbuf));
+		if (cep->cb_netbuf != NULL) {
+			if ((input->flags & NB_FLG_NOREL_IFOUT) == 0)
+				syscall(rel_net_buf(cep->cb_netbuf));
+			cep->cb_netbuf = NULL;
+			}
 		}
 	else {
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_usrreq.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_usrreq.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_usrreq.c	(revision 429)
@@ -322,17 +322,16 @@
 		else 
 			error = UDP_ALLOC_PORT(cep, pk_ccep->myaddr.portno);
-		
-                if (error == E_OK) {
-
-			/* UDP éä¿¡ç«¯ç¹çææ
+
+			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;
-			}
-		}
+				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;
+				}
+			}
 
 	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
@@ -426,6 +425,5 @@
 		return E_NOEXS;
 #if defined(SUPPORT_INET6)
-#endif
-#if defined(SUPPORT_INET4) && defined(SUPPORT_IGMP) && TNUM_UDP4_CEPID > 0
+#elif defined(SUPPORT_INET4) && defined(SUPPORT_IGMP) && TNUM_UDP4_CEPID > 0
 	switch (optname) {
 	case IP_MULTICAST_LOOP:
@@ -503,6 +501,5 @@
 		return E_NOEXS;
 #if defined(SUPPORT_INET6)
-#endif
-#if defined(SUPPORT_INET4) && defined(SUPPORT_IGMP) && TNUM_UDP4_CEPID > 0
+#elif defined(SUPPORT_INET4) && defined(SUPPORT_IGMP) && TNUM_UDP4_CEPID > 0
 	switch (optname) {
 	case IP_MULTICAST_LOOP:
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_usrreq_nblk.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_usrreq_nblk.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udpn_usrreq_nblk.c	(revision 429)
@@ -136,7 +136,7 @@
 
 #ifdef TCP_CFG_NON_BLOCKING_COMPAT14
-			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)error);
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_CAN_CEP, (void*)error);
 #else
-			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)&error);
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_CAN_CEP, (void*)&error);
 #endif
 		else
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_subr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_subr.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_subr.c	(revision 429)
@@ -369,6 +369,9 @@
 
 	/* IPv6 ヘッダを設定する。*/
-	if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK)
+	if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK) {
+		syscall(rel_net_buf(*nbuf));
+		*nbuf = NULL;
 		return error;
+		}
 
 	/* 4 オクテット境界までパディングで埋める。*/
@@ -662,5 +665,5 @@
  *  in6_rtredirect -- ルーティング表にエントリを登録する。
  *
- *    注意: 引数 tmo の単位は [ms]。
+ *    注意: 引数 tmo の単位は [us]。
  */
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_var.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_var.h	(revision 429)
@@ -184,6 +184,6 @@
 	 * vltime と pltime は、追加/変更してからの相対時間
 	 */
-	uint32_t	vltime;		/* 有効時間 [ms]			*/
-	uint32_t	pltime;		/* 推奨有効時間 [ms]		*/
+	uint32_t	vltime;		/* 有効時間 [us]			*/
+	uint32_t	pltime;		/* 推奨有効時間 [us]		*/
 	} __attribute__((packed, aligned(2)))T_IN6_ADDR_LIFETIME;
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_var.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_var.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_var.h	(revision 429)
@@ -152,4 +152,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		unit;	/* インタフェース番号	*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -172,4 +175,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
@@ -224,4 +230,7 @@
 	uint8_t		idix;	/* mpfid のインデックス	*/
 	uint8_t		flags;	/* フラグ		*/
+#ifdef IF_ETHER_MULTI_NIC
+	uint8_t		conn_pos;
+#endif
 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
 	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.c	(revision 429)
@@ -353,4 +353,5 @@
 			if (nd6_cache[mix].hold != NULL) {
 				syscall(rel_net_buf(nd6_cache[mix].hold));
+				nd6_cache[mix].hold = NULL;
 				}
 			fix = mix;
@@ -562,4 +563,5 @@
 			if (ln->hold != NULL) {
 				syscall(rel_net_buf(ln->hold));
+				ln->hold = NULL;
 				}
 
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h	(revision 429)
@@ -81,5 +81,5 @@
 	T_NET_BUF	*hold;
 	TMO		tmout;
-	SYSTIM		expire;		/* [ms] 有効時間が切れる時刻	*/
+	SYSTIM		expire;		/* [us] 有効時間が切れる時刻	*/
 	T_IF_ADDR	ifaddr;
 	uint8_t		state;
@@ -183,6 +183,6 @@
 typedef struct t_def_router {
 	T_IN6_ADDR	addr;
-	SYSTIM		expire;		/* [ms] 有効時間が切れる時刻	*/
-	uint32_t	lifetime;	/* [ms] 有効時間			*/
+	SYSTIM		expire;		/* [us] 有効時間が切れる時刻	*/
+	uint32_t	lifetime;	/* [us] 有効時間			*/
 	uint16_t	plistmap;	/* プレフィックスマップ		*/
 	uint8_t		flags;		/* ルータ通知のフラグ		*/
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.c	(revision 429)
@@ -999,9 +999,9 @@
 		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 = 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;
 
 	/* チェックサムを計算する。*/
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tcpip_sym.def
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tcpip_sym.def	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tcpip_sym.def	(revision 429)
@@ -15,4 +15,5 @@
 TMO_UDP_OUTPUT
 TMO_ICMP_OUTPUT
+TMO_IGMP_OUTPUT
 TMO_ND6_NS_OUTPUT
 TMO_ND6_NA_OUTPUT
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb	(revision 429)
@@ -124,4 +124,5 @@
 #include <net/ethernet.h>
 #include <net/net.h>
+#include <net/net_endian.h>
 #include <net/net_buf.h>
 #include <netinet/in.h>
@@ -142,7 +143,5 @@
 $tinetCfgC.add(" */")
 $tinetCfgC.add()
-$includeFiles.each do |file|
-  $tinetCfgC.add("#include #{file}")
-end
+GenerateIncludes($tinetCfgC)
 
 $tinetCfgC.add()
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp.cfg
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp.cfg	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp.cfg	(revision 429)
@@ -73,4 +73,5 @@
 INCLUDE("netinet/if_ether.cfg");
 INCLUDE("netinet/ip.cfg");
+INCLUDE("netinet/ip_igmp.cfg");
 INCLUDE("netinet/tcp.cfg");
 INCLUDE("netinet/udp.cfg");
Index: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp_configure
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp_configure	(revision 429)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp_configure	(revision 429)
@@ -0,0 +1,514 @@
+#! /usr/bin/perl
+#
+#   TINET (TCP/IP Protocol Stack)
+#  
+#  Copyright (C) 2001-2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2006-2008 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  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$
+# 
+
+require "getopt.pl";
+
+#  ãªãã·ã§ã³ã®å®ç¾©
+#
+#  -T <target>		ã¿ã¼ã²ããåï¼å¿
+é ï¼
+#  -A <applname>	ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã å
+#  -a <appldir>		ã¢ããªã±ã¼ã·ã§ã³ã®ãã£ã¬ã¯ããªå
+#  -U <applobjs>	ä»ã®ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ãã¡ã¤ã«
+#			ï¼.oãã¡ã¤ã«åã§æå®ï¼è¤æ°æå®å¯ï¼
+#  -L <kernel_lib>	ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå
+#			ï¼çç¥ããå ´åï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmakeããï¼
+#  -f			ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®æå®
+#  -D <srcdir>		ã«ã¼ãã«ç­ã®ã½ã¼ã¹ã®ç½®ããã¦ãããã£ã¬ã¯ããª
+#  -l <srclang>		ãã­ã°ã©ãã³ã°è¨èªï¼ç¾æç¹ã§ã¯cã¨c++ã®ã¿ãµãã¼ãï¼
+#  -t <templatedir>	ãã³ãã¬ã¼ããã£ã¬ã¯ããªãæå®ï¼ããã©ã«ãã¯tinet/asp_sampleï¼
+#  -d <dbgenv>		å®è¡ç°å¢ã®åç§°
+#  -r			ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããä½¿ç¨ãããã©ããã®æå®
+#  -p <perl>		perlã®ãã¹åï¼æç¤ºçã«æå®ããå ´åï¼
+#  -g <cfg>		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ã®ãã¹å
+#  -e <tinetdir>	TINET ã®ã½ã¼ã¹ã®ç½®ããã¦ãããã£ã¬ã¯ããª
+#  -i <net_if>		ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼å¿
+é ï¼
+#			etherãpppãloop ã®ä½ãããæå®ããã
+#  -v <net_dev>		ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ã
+#  			ï¼ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« ether ãæå®ããå ´åã¯å¿
+é ï¼
+#  -n <net_proto>	ãããã¯ã¼ã¯å±¤ãã­ãã³ã«ï¼å¿
+é ï¼
+#			inet6ãinet4ãinet6/inet4ãinet6mãinet6m/inet4 ã®ä½ãããæå®ããã
+#  -s <trans_proto>	ãã©ã³ã¹ãã¼ãå±¤ãã­ãã³ã«ï¼å¿
+é ï¼
+#			tcpãudpãtcp/udp ã®ä½ãããæå®ããã
+#  -m <asptemplatedir>	ASPãã³ãã¬ã¼ããã£ã¬ã¯ããªãæå®ï¼ããã©ã«ãã¯sampleï¼
+
+#  ä½¿ç¨ä¾(1)
+#
+#  % ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A echos4 -i ether -v if_ed -n inet4 -s tcp
+
+#
+#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®æ¡å¼µå­ãè¿ã
+#
+sub get_objext {
+	local(@uname);
+
+	use POSIX;
+	@uname = &uname();
+	if ($uname[0] =~ /^cygwin/i) {
+		return("exe");
+	}
+	else {
+		return("");
+	}
+}
+
+#
+#  ãã­ã°ã©ã ã®å ´æãæ¤ç´¢ãã
+#
+sub get_path {
+	local($progname, @pathlist) = @_;
+	local($path);
+
+	foreach $path (@pathlist) {
+		if (-x $path."/".$progname) {
+			return($path."/".$progname);
+		}
+	}
+	return("");
+}
+
+#
+#  Makefile ãå¤æãã
+#
+sub convMakefileSub {
+	local($infile, $outfile) = @_;
+	local($line, $varname, $varval);
+
+	unless (open(INFILE, $infile)) {
+		print STDERR "tinet_asp_configure: can't open $infile\n";
+		exit(1);
+	}
+	unless (open(OUTFILE, ">> ".$outfile)) {
+		print STDERR "tinet_asp_configure: can't open $outfile\n";
+		exit(1);
+	}
+
+	while ($line = <INFILE>) {
+		chop $line;
+		while ($line =~ /^(.*)\@\(([A-Za-z0-9_]+)\)(.*)$/) {
+			$line = $1.$vartable{$2}.$3;
+		}
+		print OUTFILE $line,"\n";
+	}
+
+	close(INFILE);
+	close(OUTFILE);
+}
+
+#
+#  Makefile ãå¤æãã
+#
+sub convMakefile {
+	local($infile, $copyright, $outfile) = @_;
+	local($aspMakefile);
+
+	# Mekfile æãã°ãªãã¼ã ããã
+	print STDERR "tinet_asp_configure: Generating $outfile from $infile.\n";
+	if (-f $outfile) {
+		print STDERR "tinet_asp_configure: $outfile exists.",
+						"  Save as $outfile.bak.\n";
+		rename($outfile, $outfile.".bak");
+	}
+
+	# TINET ã®ã³ãã¼ã©ã¤ããæ¸ãè¾¼ã
+	&convMakefileSub($copyright, $outfile);
+
+	# åºåãã Makefile ããªã¼ãã³ãã
+	unless (open(OUTFILE, ">> ".$outfile)) {
+		print STDERR "tinet_asp_configure: can't open $outfile\n";
+		exit(1);
+	}
+
+	# åç
+§ãã sample/Makefile ããªã¼ãã³ããã
+	$aspMakefile = $aspsampledir."/Makefile";
+	unless (open(ASPFILE, $aspMakefile)) {
+		print STDERR "tinet_asp_configure: can't open $aspMakefile\n";
+		exit(1);
+	}
+
+	# åç
+§ãã sample/Makefile ã®ã³ãã¼ã©ã¤ããèª­ã¿é£ã°ãã
+	while ($line = <ASPFILE>) {
+		chop $line;
+		if ($line !~ /^#/) {
+			print OUTFILE $line,"\n";
+			last;
+		}
+	}
+
+	# 'APPLNAME = @(APPLNAME)' ã®è¡ã¾ã§æ¸ãè¾¼ã
+	while ($line = <ASPFILE>) {
+		chop $line;
+		while ($line =~ /^(.*)\@\(([A-Za-z0-9_]+)\)(.*)$/) {
+			$line = $1.$vartable{$2}.$3;
+		}
+		print OUTFILE $line,"\n";
+		if ($line =~ /^APPLNAME = /) {
+			last;
+		}
+	}
+
+	# '#' åã®è¡ã¾ã§æ¸ãè¾¼ã
+	while ($line = <ASPFILE>) {
+		chop $line;
+		while ($line =~ /^(.*)\@\(([A-Za-z0-9_]+)\)(.*)$/) {
+			$line = $1.$vartable{$2}.$3;
+		}
+		if ($line =~ /^#/) {
+			last;
+		}
+		print OUTFILE $line,"\n";
+	}
+
+	# ä¸åº¦åºåãã Makefile ãã¯ã­ã¼ãºããã
+	close(OUTFILE);
+
+	# TINET ã® Makefile ãæ¸ãè¾¼ã
+	&convMakefileSub($infile, $outfile);
+
+	# ããä¸åº¦åºåãã Makefile ããªã¼ãã³ãã
+	unless (open(OUTFILE, ">> ".$outfile)) {
+		print STDERR "tinet_asp_configure: can't open $outfile\n";
+		exit(1);
+	}
+
+	# åç
+§ãã sample/Makefile ã®æçµè¡ã¾ã§æ¸ãè¾¼ã
+	while ($line = <ASPFILE>) {
+		chop $line;
+		while ($line =~ /^(.*)\@\(([A-Za-z0-9_]+)\)(.*)$/) {
+			$line = $1.$vartable{$2}.$3;
+		}
+		print OUTFILE $line,"\n";
+	}
+
+	close(OUTFILE);
+	close(ASPFILE);
+}
+
+#
+#  Makefile ãçæãã
+#
+sub genMakefile {
+	local($file, $mandatory) = @_;
+	local($path, $copyright);
+
+	$path = $sampledir.$file.".".$applname;
+	$copyright = $sampledir.$file.".copyright";
+	if (-f $path) {
+		&convMakefile($path, $copyright, $file);
+		return;
+	}	
+
+	$path = $sampledir.$file;
+	if ($mandatory || -f $path) {
+		&convMakefile($path, $copyright, $file);
+	}	
+}
+
+#
+#  ãã¡ã¤ã«ãå¤æãã
+#
+sub convert {
+	local($infile, $outfile) = @_;
+	local($line, $varname, $varval);
+
+	print STDERR "tinet_asp_configure: Generating $outfile from $infile.\n";
+	if (-f $outfile) {
+		print STDERR "tinet_asp_configure: $outfile exists.",
+						"  Save as $outfile.bak.\n";
+		rename($outfile, $outfile.".bak");
+	}
+	unless (open(INFILE, $infile)) {
+		print STDERR "tinet_asp_configure: can't open $infile\n";
+		exit(1);
+	}
+	unless (open(OUTFILE, "> ".$outfile)) {
+		print STDERR "tinet_asp_configure: can't open $outfile\n";
+		exit(1);
+	}
+
+	while ($line = <INFILE>) {
+		chop $line;
+		while ($line =~ /^(.*)\@\(([A-Za-z0-9_]+)\)(.*)$/) {
+			$line = $1.$vartable{$2}.$3;
+		}
+		print OUTFILE $line,"\n";
+	}
+
+	close(INFILE);
+	close(OUTFILE);
+}
+
+#
+#  ãµã³ãã«ãè¦ã¤ãã¦ãã¡ã¤ã«ãçæãã
+#
+sub generate {
+	local($file, $mandatory) = @_;
+	local($path);
+
+	$path = $sampledir.$file.".".$applname;
+	if (-f $path) {
+		&convert($path, $file);
+		return;
+	}	
+
+	$path = $sampledir.$file;
+	if ($mandatory || -f $path) {
+		&convert($path, $file);
+	}	
+}
+
+#
+#  ã¡ã¤ã³å¦ç
+#
+#  ãªãã·ã§ã³ã®å¦ç
+#
+&Getopt("TAaULDltdpgiensv");
+
+#
+#  å¤æ°ã®åæå
+#
+$perl = $opt_p ? $opt_p : &get_path("perl", ("/usr/local/bin", "/usr/bin"));
+$target = $opt_T;
+$applname = $opt_A ? $opt_A : "";
+$appldir = $opt_a ? $opt_a : "";
+$applobjs = $opt_U ? $opt_U : "";
+$kernel_lib = $opt_L ? $opt_L : "";
+$kernel_funcobjs = $opt_f ? "true" : "";
+$srclang = $opt_l ? $opt_l : "c";
+$templatedir = $opt_t ? $opt_t : "asp_sample";
+$dbgenv = $opt_d ? "TOPPERS_".$opt_d : "";
+$enable_trace = $opt_r ? "true" : "";
+$net_if = $opt_i;
+$net_dev = $opt_v;
+$net_proto = $opt_n;
+$trans_proto = $opt_s;
+$aspsampledir = $opt_m ? $opt_m : "sample";
+$cfg = $opt_g ? $opt_g : "\$(SRCDIR)/cfg/cfg/cfg";
+$cfgfile = $opt_g ? $opt_g : $srcdir."/cfg/cfg/cfg";
+
+#
+#  ãªãã·ã§ã³ã®ç¢ºèª
+#
+unless ($opt_T) {
+	print STDERR "tinet_asp_configure: -T option is mandatory\n";
+	print STDERR "Installed targets are:\n";
+	foreach $targetname (<$srcdir/target/[a-zA-Z1-9]*>) {
+		$targetname =~ s|$srcdir/target/||;
+		print STDERR "\t$targetname\n";
+	}
+	exit(1);
+}
+unless ($opt_i) {
+	print STDERR "tinet_asp_configure: -i option is mandatory\n";
+	exit(1);
+}
+else {
+	unless ($opt_v) {
+		print STDERR "tinet_asp_configure: -v option is mandatory\n";
+		exit(1);
+	}
+}
+if ($opt_n) {
+	unless ($opt_n eq "inet6" || $opt_n eq "inet4" || $opt_n eq "inet6/inet4" || $opt_n eq "inet6m" || $opt_n eq "inet6m/inet4") {
+		print STDERR "tinet_asp_configure: inet6, inet4, inet6/inet4, inet6m or inet6m/inet4 expected in -n option\n";
+		exit(1);
+	}
+}
+else {
+	print STDERR "tinet_asp_configure: -n option is mandatory\n";
+	exit(1);
+}
+if ($opt_s) {
+	unless ($opt_s eq "tcp" || $opt_s eq "udp" || $opt_s eq "tcp/udp") {
+		print STDERR "tinet_asp_configure: tcp, udp or tcp/udp expected in -s option\n";
+		exit(1);
+	}
+}
+else {
+	print STDERR "tinet_asp_configure: -s option is mandatory\n";
+	exit(1);
+}
+
+#
+#  TINET ã®ã½ã¼ã¹ãã£ã¬ã¯ããªåãåãåºã
+#
+$pwd = `pwd`; chop $pwd;
+if ($opt_e) {
+	$tinetabsdir = $tinetdir = $opt_e;
+}
+elsif ($0 =~ /(.*)\/tinet_asp_configure/) {
+	$tinetdir = $1;
+	if ($tinetdir =~ /^\//) {
+		$tinetabsdir = $tinetdir;
+	}
+	else {
+		$tinetabsdir = $pwd."/".$tinetdir;
+	}
+}
+else {
+	$tinetabsdir = $tinetdir = $pwd;
+}
+$sampledir = $tinetdir."/".$templatedir."/";
+
+#
+#  ã½ã¼ã¹ãã£ã¬ã¯ããªåãåãåºã
+#
+$pwd = `pwd`; chop $pwd;
+if ($opt_D) {
+	$srcabsdir = $srcdir = $opt_D;
+}
+elsif ($0 =~ /(.*)\/tinet\/tinet_asp_configure/) {
+	$srcdir = $1;
+	if ($srcdir =~ /^\//) {
+		$srcabsdir = $srcdir;
+	}
+	else {
+		$srcabsdir = $pwd."/".$srcdir;
+	}
+}
+else {
+	$srcabsdir = $srcdir = $pwd;
+}
+$aspsampledir = $srcdir."/".$aspsampledir;
+
+#
+#  å¤æ°ãã¼ãã«ã®ä½æ
+#
+%vartable = ();
+$vartable{"TARGET"} = $target;
+$vartable{"APPLNAME"} = $applname;
+$vartable{"APPLDIR"} = $appldir;
+$vartable{"APPLOBJS"} = $applobjs;
+$vartable{"KERNEL_LIB"} = $kernel_lib;
+$vartable{"KERNEL_FUNCOBJS"} = $kernel_funcobjs;
+$vartable{"SRCDIR"} = $srcdir;
+$vartable{"SRCABSDIR"} = $srcabsdir;
+$vartable{"SRCLANG"} = $srclang;
+$vartable{"DBGENV"} = $dbgenv;
+$vartable{"ENABLE_TRACE"} = $enable_trace;
+$vartable{"OBJEXT"} = &get_objext();
+$vartable{"PERL"} = $perl;
+$vartable{"CFG"} = $cfg;
+$vartable{"TINETDIR"} = $tinetdir;
+$vartable{"TINETABSDIR"} = $tinetabsdir;
+$vartable{"NET_IF"} = $net_if;
+$vartable{"NET_DEV"} = $net_dev;
+
+#
+#  -n ãªãã·ã§ã³ã®å¦ç
+#
+
+$vartable{"SUPPORT_INET6"} = "#SUPPORT_INET6 = true";
+$vartable{"SUPPORT_INET4"} = "#SUPPORT_INET4 = true";
+if ($net_proto eq "inet6" || $net_proto eq "inet6/inet4" || $net_proto eq "inet6m" || $net_proto eq "inet6m/inet4") {
+	$vartable{"SUPPORT_INET6"} = "SUPPORT_INET6 = true";
+}
+if ($net_proto eq "inet4" || $net_proto eq "inet6/inet4" || $net_proto eq "inet6m/inet4") {
+	$vartable{"SUPPORT_INET4"} = "SUPPORT_INET4 = true";
+}
+
+$vartable{"API_CFG_IP4MAPPED_ADDR"} = "#API_CFG_IP4MAPPED_ADDR = true";
+if ($net_proto eq "inet6m" || $net_proto eq "inet6m/inet4") {
+	$vartable{"API_CFG_IP4MAPPED_ADDR"} = "API_CFG_IP4MAPPED_ADDR = true";
+}
+
+#
+#  -s ãªãã·ã§ã³ã®å¦ç
+#
+
+$vartable{"SUPPORT_TCP"} = "#SUPPORT_TCP = true";
+$vartable{"SUPPORT_UDP"} = "#SUPPORT_UDP = true";
+if ($trans_proto eq "tcp" || $trans_proto eq "tcp/udp") {
+	$vartable{"SUPPORT_TCP"} = "SUPPORT_TCP = true";
+}
+if ($trans_proto eq "udp" || $trans_proto eq "tcp/udp") {
+	$vartable{"SUPPORT_UDP"} = "SUPPORT_UDP = true";
+}
+
+#
+#  ã¿ã¼ã²ãããã£ã¬ã¯ããªã®ãã§ãã¯
+#
+
+if (! -d $srcdir."/target/".$target) {
+	print STDERR "tinet_asp_configure: $srcdir/target/$target not exist\n";
+	exit(1);
+}
+
+#
+#  Makefile ã¨ã¢ããªã±ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ
+#
+
+&genMakefile("Makefile", 1);
+&generate($applname.".c", 0);
+&generate($applname.".cpp", 0);
+&generate($applname.".h", 0);
+&generate($applname.".cfg", 0);
+&generate("tinet_".$applname.".cfg", 0);
+&generate("route_cfg.c", 0);
+&generate("tinet_app_config.h", 0);
+
+#
+#  cfg ãã§ãã¦ãããã®ãã§ãã¯
+#
+
+if (!(-x ($objext == "" ? $cfgfile : $cfgfile.".".$objext))) {
+	print STDERR "Please compile the configurator (cfg).\n";
+}
Index: EcnlProtoTool/trunk/asp3_dcre/utils/applyrename.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/utils/applyrename.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/utils/applyrename.rb	(revision 429)
@@ -7,5 +7,5 @@
 #  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
+#  Copyright (C) 2004-2017 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -39,7 +39,8 @@
 #  の責任を負わない．
 # 
-#  $Id$
+#  $Id: applyrename.rb 852 2017-11-04 16:19:49Z ertl-hiro $
 # 
 
+Encoding.default_external = 'utf-8'
 require "fileutils"
 
Index: EcnlProtoTool/trunk/asp3_dcre/utils/genrename.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/utils/genrename.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/utils/genrename.rb	(revision 429)
@@ -7,5 +7,5 @@
 #  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
+#  Copyright (C) 2005-2017 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -39,6 +39,8 @@
 #  の責任を負わない．
 # 
-#  $Id$
+#  $Id: genrename.rb 852 2017-11-04 16:19:49Z ertl-hiro $
 # 
+
+Encoding.default_external = 'utf-8'
 
 #
@@ -132,4 +134,6 @@
     fileName = $1.sub(/([>"])$/, "_rename.h\\1")
     includes += "#include #{fileName}\n"
+  elsif /^(_+)(.*)$/ =~ sym
+    generateDefine(outFile, $2, $1)
   elsif sym != ""
     generateDefine(outFile, sym, "")
Index: EcnlProtoTool/trunk/asp3_dcre/utils/gentest.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/utils/gentest.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/utils/gentest.rb	(revision 429)
@@ -5,5 +5,5 @@
 #      Toyohashi Open Platform for Embedded Real-Time Systems
 # 
-#  Copyright (C) 2007-2016 by Embedded and Real-Time Systems Laboratory
+#  Copyright (C) 2007-2019 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -44,4 +44,8 @@
 #
 	
+Encoding.default_external = 'utf-8'
+require "pp"
+require "fileutils"
+
 #
 #  生成動作を決めるための設定
@@ -67,4 +71,5 @@
   "ref_mtx" => { 2 => "T_RMTX" },
   "ref_mbf" => { 2 => "T_RMBF" },
+  "ref_spn" => { 2 => "T_RSPN" },
   "get_mpf" => { 2 => "void *" },
   "pget_mpf" => { 2 => "void *" },
@@ -77,8 +82,10 @@
   "get_tid" => { 1 => "ID" },
   "get_did" => { 1 => "ID" },
+  "get_pid" => { 1 => "ID" },
   "get_lod" => { 2 => "uint_t" },
   "mget_lod" => { 3 => "uint_t" },
   "get_nth" => { 3 => "ID" },
   "mget_nth" => { 4 => "ID" },
+  "ref_mem" => { 2 => "T_RMEM" },
   "get_ipm" => { 1 => "PRI" },
   "get_som" => { 1 => "ID" }
@@ -86,5 +93,6 @@
 
 $functionParameters = {
-  "target_hrt_set_event" => "HRTCNT hrtcnt"
+  "target_hrt_set_event" => "HRTCNT hrtcnt",
+  "hook_hrt_set_event" => "HRTCNT hrtcnt"
 }
   
@@ -98,5 +106,6 @@
   
 $functionCheckParameter = {
-  "target_hrt_set_event" => "hrtcnt"
+  "target_hrt_set_event" => "hrtcnt",
+  "hook_hrt_set_event" => "hrtcnt"
 }
 
@@ -154,5 +163,5 @@
     lines.each do |line|
       @code[@currentCount].push(line)
-        end
+    end
   end
 
@@ -174,5 +183,5 @@
     # 処理カウント変数の生成
     if @countFlag
-      print("\nstatic uint_t\t#{@count_var} = 0;\n")
+      $outFile.print("\nstatic uint_t\t#{@count_var} = 0;\n")
     end
 
@@ -180,87 +189,87 @@
     case @puName
     when /^TASK([0-9]*)$/
-      print("\nvoid\n")
-      print("task#{$1}(intptr_t exinf)\n")
+      $outFile.print("\nvoid\n")
+      $outFile.print("task#{$1}(intptr_t exinf)\n")
     when /^CYC([0-9]*)$/
-      print("\nvoid\n")
-      print("cyclic#{$1}_handler(intptr_t exinf)\n")
+      $outFile.print("\nvoid\n")
+      $outFile.print("cyclic#{$1}_handler(intptr_t exinf)\n")
     when /^ALM([0-9]*)$/
-      print("\nvoid\n")
-      print("alarm#{$1}_handler(intptr_t exinf)\n")
+      $outFile.print("\nvoid\n")
+      $outFile.print("alarm#{$1}_handler(intptr_t exinf)\n")
     when /^OVR$/
-      print("\nvoid\n")
-      print("overrun_handler(ID tskid, intptr_t exinf)\n")
+      $outFile.print("\nvoid\n")
+      $outFile.print("overrun_handler(ID tskid, intptr_t exinf)\n")
     when /^ISR([0-9]*)$/
-      print("\nvoid\n")
-      print("isr#{$1}(intptr_t exinf)\n")
+      $outFile.print("\nvoid\n")
+      $outFile.print("isr#{$1}(intptr_t exinf)\n")
     when /^INTHDR([0-9]*)$/
-      print("\nvoid\n")
-      print("inthdr#{$1}_handler(void)\n")
+      $outFile.print("\nvoid\n")
+      $outFile.print("inthdr#{$1}_handler(void)\n")
     when /^CPUEXC([0-9]*)$/
-      print("\nvoid\n")
-      print("cpuexc#{$1}_handler(void *p_excinf)\n")
+      $outFile.print("\nvoid\n")
+      $outFile.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")
+      $outFile.print("\nER_UINT\n")
+      $outFile.print("extsvc#{$1}_routine")
+      $outFile.print("(intptr_t par1, intptr_t par2, intptr_t par3,\n")
+      $outFile.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")
+        $outFile.print("\n#{$functionValue[@puName]}\n")
       else
-        print("\nvoid\n")
-      end
-      print(@puName)
+        $outFile.print("\nvoid\n")
+      end
+      $outFile.print(@puName)
       if $functionParameters[@puName]
-        print("(#{$functionParameters[@puName]})\n")
+        $outFile.print("(#{$functionParameters[@puName]})\n")
       else
-        print("(void)\n")
-      end
-    end
-
-    print("{\n")
+        $outFile.print("(void)\n")
+      end
+    end
+
+    $outFile.print("{\n")
 
     @variableList.each do |varName, varType|
       if /^(.+)\w*\*$/ =~ varType
         varBaseType = $1
-        print("\t#{varBaseType}")
-        print(varBaseType.length < 4 ? "\t\t*" : "\t*")
+        $outFile.print("\t#{varBaseType}")
+        $outFile.print(varBaseType.length < 4 ? "\t\t*" : "\t*")
       else
-        print("\t#{varType}")
-        print(varType.length < 4 ? "\t\t" : "\t")
-      end
-      print("#{varName};\n")
+        $outFile.print("\t#{varType}")
+        $outFile.print(varType.length < 4 ? "\t\t" : "\t")
+      end
+      $outFile.print("#{varName};\n")
     end
     if @silFlag
-      print("\tSIL_PRE_LOC;\n")
-    end
-    print("\n")
+      $outFile.print("\tSIL_PRE_LOC;\n")
+    end
+    $outFile.print("\n")
 
     if @countFlag
-      print("\tswitch (++#{@count_var}) {\n")
+      $outFile.print("\tswitch (++#{@count_var}) {\n")
       @code.keys.sort_by { |c| c.to_i }.each do |count|
-        print("\tcase #{count}:\n")
+        $outFile.print("\tcase #{count}:\n")
         @code[count].each do |line|
-          print("\t",line) if line != ""
-          print("\n")
+          $outFile.print("\t",line) if line != ""
+          $outFile.print("\n")
         end
-        print("\t\tcheck_point(0);\n\n")
-      end
-      print("\tdefault:\n")
-      print("\t\tcheck_point(0);\n")
-      print("\t}\n")
+        $outFile.print("\t\tcheck_assert(false);\n\n")
+      end
+      $outFile.print("\tdefault:\n")
+      $outFile.print("\t\tcheck_assert(false);\n")
+      $outFile.print("\t}\n")
     else
       @code[""].each do |line|
-        print(line,"\n")
-      end
-    end
-
-    print("\tcheck_point(0);\n")
+        $outFile.print(line,"\n")
+      end
+    end
+
+    $outFile.print("\tcheck_assert(false);\n")
     if /^EXTSVC([0-9]*)$/ =~ @puName
-      print("\treturn(E_SYS);\n")
+      $outFile.print("\treturn(E_SYS);\n")
     elsif $functionReturn[@pu_nama]
-      print("\treturn(#{$functionReturn[@puName]});\n")
-    end
-    print("}\n")
+      $outFile.print("\treturn(#{$functionReturn[@puName]});\n")
+    end
+    $outFile.print("}\n")
   end
 end
@@ -303,7 +312,7 @@
 def testStartCode(pu)
   # テスト開始コードは一度のみ出力する
-  if $startFlag == 0
+  if !$startFlag
     pu.append("\ttest_start(__FILE__);", "")
-    $startFlag = 1
+    $startFlag = true
   end
 end
@@ -312,5 +321,5 @@
 #  ターゲット依存部関数の振る舞いの読み込み
 #
-def targetFunction(line, checkNum)
+def targetFunction(line, checkNum, prcid)
   if /^([a-zA-Z_]+)\s*(.*)$/ =~ line
     functionName = $1
@@ -333,5 +342,5 @@
   end
 
-  pu.append("\tcheck_point(#{checkNum});");
+  pu.append("\tcheck_point#{$cpSuffix[prcid]}(#{checkNum});");
   if param && $functionCheckParameter[functionName]
     pu.append(sprintf("\tcheck_assert(%s == %s);",
@@ -347,10 +356,24 @@
 
 #
+#  チェックポイント番号の処理
+#
+def procCheckPoint(prcid, originalCheckNum, oline_list)
+  checkNum = ($lastCheckPoint[prcid] += 1).to_s
+  oline_list.each do |oline|
+    oline.sub!(/#{originalCheckNum}/, "#{checkNum}:")
+  end
+  return(checkNum)
+end
+
+#
 #  テストスクリプトの読み込み
 #
-def parseLine(line)
-  if /^==\s*(([a-zA-Z_]+)[0-9]*)(.*)$/ =~ line
+def parseLine(line, prcid, oline_list)
+  if /^==\s*START(_[a-zA-Z0-9]+)?(.*)$/ =~ line
+    $procFlag = true unless $procFlagEnd
+    $cpSuffix[prcid] = $1
+  elsif /^==\s*(([a-zA-Z_]+)[0-9]*)(.*)$/ =~ line
     # 処理単位の開始
-    $procFlag = 1
+    $procFlag = true unless $procFlagEnd
     puName = $1
     line2 = $3
@@ -359,5 +382,5 @@
       pu = $puList[puName] = PUCode.new(puName)
     end
-    $currentPu = pu
+    $currentPu[prcid] = pu
 
     case line2
@@ -369,18 +392,16 @@
       pu.setCount("")
     end
-    testStartCode(pu) if /^START/ !~ puName
-  elsif $procFlag != 0
-    pu = $currentPu
+    testStartCode(pu)
+  elsif $procFlag
+    pu = $currentPu[prcid]
     if /^([0-9]+\:)\s*(.*)$/ =~ line
       # チェックポイント番号の処理
-      originalCheckNum = $1
       line = $2
-      checkNum = ($lastCheckPoint += 1).to_s
-      $outputLine.sub!(/#{originalCheckNum}/, "#{checkNum}:")
+      checkNum = procCheckPoint(prcid, $1, oline_list)
 
       case line
       when /^END$/
-        pu.append("\tcheck_finish(#{checkNum});")
-        $procFlag = 0
+        pu.append("\tcheck_finish#{$cpSuffix[prcid]}(#{checkNum});")
+        $procFlagEnd = true
         return
       when /^HOOK\((.*)\)$/
@@ -388,8 +409,8 @@
         return
       when /^\[(.*)\]$/
-        targetFunction($1, checkNum)
+        targetFunction($1, checkNum, prcid)
         return
       else
-        pu.append("\tcheck_point(#{checkNum});")
+        pu.append("\tcheck_point#{$cpSuffix[prcid]}(#{checkNum});")
       end
     end
@@ -402,4 +423,6 @@
       pu.append("\t#{call_string};", "")
       pu.useSil() if /^SIL_..._INT\(\)$/ =~ call_string
+    when /^VAR\(\s*(.*)\s+(.*)\s*\)$/
+      pu.addVariable($2, $1)
     when /^RETURN((\(.*\))?)$/
       pu.append("\treturn#{$1};", "")
@@ -409,4 +432,8 @@
     when /^LABEL\((.*)\)$/
       pu.append("#{$1}:", "")
+    when /^BARRIER\((.*)\)$/
+      pu.append("\ttest_barrier(#{$1});", "")
+    when /^((SET|RESET|WAIT|WAIT_WO_RESET|WAIT_RESET)\(.*\))$/
+      pu.append("\t#{$1};", "")
     when /^([a-z_]+\(.*\))\s*(\-\>\s*([A-Za-z0-9_]*))?\s*$/
       genServiceCall(pu, $1, $3)
@@ -428,39 +455,65 @@
 #
 inFileName = ARGV.shift
+outFileName = inFileName + ".new"
 
 #
 #  スクリプトファイル読み込み処理
 #
-$lastCheckPoint = 0		# 最後のチェックポイント番号
-$procFlag = 0				# スクリプト処理中フラグ
-$startFlag = 0			# テスト開始コードの出力フラグ
-$currentPu = nil			# 読み込み中の処理単位
-$puList = {}				# 処理単位のリスト
+$procFlag = false					# スクリプト処理中フラグ
+$procFlagEnd = false				# スクリプト処理終了フラグ
+$startFlag = false					# テスト開始コードの出力フラグ
+$currentPu = {}						# 読み込み中の処理単位
+$puList = {}						# 処理単位のリスト
+$outputLines = []					# 出力すべき行のリストのリスト
+$cpSuffix = Hash.new("")			# チェックポイント関数のサフィックス
+$lastCheckPoint = Hash.new(0)		# 最後のチェックポイント番号
 
 begin
   inFile = File.open(inFileName)
+  $outFile = File.open(outFileName, "w")
 rescue Errno::ENOENT, Errno::EACCES => ex
   abort(ex.message)
 end
 
+statements = Hash.new("")
+oline_lists = Hash.new([])
 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
+  line.chomp!									# 末尾の改行の削除
+  if /DO NOT DELETE THIS LINE/ =~ line
+    $outputLines.push([ line ])
+    break
+  elsif line =~ /^(\s*\*)(.*)$/					# 行頭のスペースと "*" の削除
+    outputLine = [ $1.dup ]
+    $2.split(/｜/, -1).each_with_index do |sline, index|
+      outLine = sline.dup
+      outputLine.push(outLine)
+      sline.sub!(/^\s*/, "")					# 先頭のスペースの削除
+      sline.sub!(/\/\/.*$/, "")					# // コメントの削除
+      sline.sub!(/\.\.\..*$/, "")				# ... コメントの削除
+
+      prcid = index + 1
+      statements[prcid] += sline
+      oline_lists[prcid].push(outLine)
+      next if statements[prcid].sub!(/\\\s*$/, "")		# 継続行の場合
+
+      statements[prcid].sub!(/\s*$/, "")		# 末尾のスペースの削除
+      if sline !~ /^\s*$/
+        parseLine(statements[prcid], prcid, oline_lists[prcid])
+      end
+      statements[prcid] = ""
+      oline_lists[prcid] = []
+    end
+    $outputLines.push(outputLine)
+    $procFlag = false if $procFlagEnd
+  else
+    $outputLines.push([ line ])
+  end
+end
+$outputLines.each do |outputLine|
+  outputLine.each_with_index do |sline, index|
+    $outFile.print("｜") if index > 1
+    $outFile.print(sline);
+  end
+  $outFile.print("\n");
 end
 
@@ -471,2 +524,8 @@
   $puList[puName].generateCode()
 end
+
+#
+#  ファイルの置き換え
+#
+FileUtils.move(inFileName, inFileName + ".bak")
+FileUtils.move(outFileName, inFileName)
Index: EcnlProtoTool/trunk/asp3_dcre/utils/makerelease.rb
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/utils/makerelease.rb	(revision 428)
+++ EcnlProtoTool/trunk/asp3_dcre/utils/makerelease.rb	(revision 429)
@@ -5,5 +5,5 @@
 #      Toyohashi Open Platform for Embedded Real-Time Systems
 # 
-#  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+#  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -40,5 +40,23 @@
 # 
 
+require "optparse"
+require "fileutils"
 require "shell"
+
+#
+#  オプションの定義
+#
+#  -e <dirname>			アーカイブファイルを展開して削除する．dirname
+#						は展開するディレクトリ名（省略可能）．
+
+#
+#  オプションの処理
+#
+OptionParser.new("Usage: makerelease.rb [options] MANIFEST-FILE") do |opt|
+  opt.on("-e [dirname]",	"expand archive file and delete") do |val|
+    $expandDirname = val
+  end
+  opt.parse!(ARGV)
+end
 
 #
@@ -108,6 +126,6 @@
     else
       fileName = $prefix + "/" + canonicalPath(baseDirectory + line)
-      if !File.file?("../" + fileName)
-        abort("#{fileName} is not a file.")
+      if !File.file?("../" + fileName) && !File.directory?("../" + fileName)
+        abort("#{fileName} is not a file or a directory.")
       elsif $fileList.index(fileName)
         abort("#{fileName} is duplicated.")
@@ -167,5 +185,24 @@
 archiveName = $package + "-" + $version + ".tar.gz"
 fileListStr = $fileList.join(" ")
-command = "tar cvfz RELEASE/#{archiveName} -C .. #{fileListStr}\n";
+command = "tar cvfz RELEASE/#{archiveName} -C .. #{fileListStr}";
 system(command)
-puts("== RELEASE/#{archiveName} is generated. ==\n")
+puts("== RELEASE/#{archiveName} is generated. ==")
+
+#
+#  アーカイブファイルの展開と削除
+#
+if defined?($expandDirname)
+  command = "tar xf RELEASE/#{archiveName}; rm RELEASE/#{archiveName}";
+  system(command)
+
+  dirname = $expandDirname || $prefix
+  if File.exist?(dirname)
+    File.rename(dirname, dirname + ".bak")
+    puts("== '#{dirname}' is renamed to '#{dirname}.bak'. ==")
+  end
+  if !$expandDirname.nil?
+    File.rename($prefix, $expandDirname)
+  end
+  puts("== RELEASE/#{archiveName} is expanded to '#{dirname}'. ==")
+  puts("== RELEASE/#{archiveName} is deleted. ==")
+end
Index: EcnlProtoTool/trunk/mbed_api/.cproject
===================================================================
--- EcnlProtoTool/trunk/mbed_api/.cproject	(revision 428)
+++ EcnlProtoTool/trunk/mbed_api/.cproject	(revision 429)
@@ -22,4 +22,5 @@
 				<option id="toolchain.id" value="gcc-arm-embedded"/>
 				<option id="toolchain.version" value="6.3.1.20170620"/>
+				<option id="toolchain.enable" value="false"/>
 			</storageModule>
 			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
@@ -68,6 +69,7 @@
 									<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/src&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/musl-1.1.18/include}&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/asp3_dcre/mbed}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/asp3_dcre/mbed/common}&quot;"/>
-									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/asp3_dcre/mbed/api}&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/asp3_dcre/mbed/platform}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/asp3_dcre/mbed/hal}&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/include}&quot;"/>
@@ -142,3 +144,4 @@
 		</configuration>
 	</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
 </cproject>
Index: EcnlProtoTool/trunk/mbed_api/src/mbed_api.c
===================================================================
--- EcnlProtoTool/trunk/mbed_api/src/mbed_api.c	(revision 428)
+++ EcnlProtoTool/trunk/mbed_api/src/mbed_api.c	(revision 429)
@@ -310,14 +310,38 @@
 }
 
-#include "assert.c"
-#include "board.c"
-#include "error.c"
-#include "gpio.c"
-#include "lp_ticker_api.c"
+void hal_critical_section_enter(void)
+{
+}
+
+void hal_critical_section_exit(void)
+{
+}
+
+void us_ticker_fire_interrupt(void)
+{
+}
+
+void us_ticker_free(void)
+{
+}
+
+//#include <pinmap.h>
+#define LED1 109
+#include "mbed_assert.c"
+#include "mbed_board.c"
+#include "mbed_critical.c"
+#include "mbed_error.c"
+#include "mbed_gpio.c"
+#include "mbed_lp_ticker_api.c"
 #include "mbed_interface.c"
-#include "pinmap_common.c"
-//#include "rtc_time.c"
-#include "semihost_api.c"
-#include "ticker_api.c"
-#include "us_ticker_api.c"
-#include "wait_api.c"
+#include "mbed_pinmap_common.c"
+//#include "mbed_rtc_time.c"
+#include "mbed_semihost_api.c"
+#include "mbed_ticker_api.c"
+#include "mbed_us_ticker_api.c"
+#include "mbed_wait_api_no_rtos.c"
+
+const ticker_info_t *us_ticker_get_info(void)
+{
+	return NULL;
+}
Index: EcnlProtoTool/trunk/ntshell/Debug/Makefile
===================================================================
--- EcnlProtoTool/trunk/ntshell/Debug/Makefile	(revision 428)
+++ EcnlProtoTool/trunk/ntshell/Debug/Makefile	(revision 429)
@@ -6,5 +6,5 @@
 #  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
 #                              Toyohashi Univ. of Technology, JAPAN
-#  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+#  Copyright (C) 2006-2019 by Embedded and Real-Time Systems Laboratory
 #              Graduate School of Information Science, Nagoya Univ., JAPAN
 # 
@@ -96,4 +96,10 @@
 
 #
+#  ã·ã¹ãã ãµã¼ãã¹ã³ã¼ã«ã©ã¤ãã©ãªï¼libsyssvc.aï¼ã®ãã£ã¬ã¯ããªå
+#  ï¼ã·ã¹ãã ãµã¼ãã¹ã³ã¼ã«ã©ã¤ãã©ãªãmakeå¯¾è±¡ã«ããæã¯ï¼ç©ºã«å®ç¾©ããï¼
+#
+SYSSVC_LIB = ../../asp3_dcre/Debug
+
+#
 #  ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®å®ç¾©
 #
@@ -104,4 +110,9 @@
 #
 OMIT_TECS = 
+
+#
+#  TECSé¢ä¿ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#
+TECSDIR = 
 
 #
@@ -134,7 +145,8 @@
 
 #
-#  ä¾å­é¢ä¿ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã®å®ç¾©
-#
-DEPDIR = deps
+#  ä¸­éãªãã¸ã§ã¯ããã¡ã¤ã«ã¨ä¾å­é¢ä¿ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã®å®ç¾©
+#
+OBJDIR = obj
+DEPDIR = obj
 
 #
@@ -165,4 +177,6 @@
 endif
 
+TINETDIR = tinet
+
 #
 #  mbedãµã¼ãã¹ã®å®ç¾©
@@ -175,5 +189,5 @@
 ±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©
 #
-COPTS := -g -std=gnu99 $(COPTS)
+COPTS := -g -std=gnu99 -ffunction-sections -fdata-sections $(COPTS)
 ifndef OMIT_WARNING_ALL
 	COPTS := -Wall $(COPTS)
@@ -207,5 +221,5 @@
 	APPL_COBJS := main.o fdtable.o io_stub.o socket_stub.o ffarch.o fftime.o tlsf.o diskio.o ff.o sdfs.o ccsbcs.o base64.o http-strings.o http_parser.o httpd.o httpd-fs.o sha1.o websocket.o websocket_fbs.o ntshell.o text_editor.o text_history.o usrcmd.o vtrecv.o vtsend.o ntlibc.o ntstdio.o ntopt.o syscall.o mbedcall.o
 endif
-APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
+APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o mbed_stub.o
 APPL_BINOBJS := httpd_fs.o
 APPL_CFLAGS := $(APPL_CFLAGS)
@@ -214,5 +228,4 @@
 endif
 
-TINETDIR = tinet
 ifdef TINETDIR
 	#
@@ -250,11 +263,27 @@
 #  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
 #
+ifdef TCINSTALL
+GCC_PATH = $(TCINSTALL)
+else
+GCC_PATH = $(shell which $(CC))/../../
+endif
+MALLOC_LIB = "${GCC_PATH}arm-none-eabi/lib/thumb/v7-ar/fpv3/hard/libc.a"
+MALLOC_OBJS = lib_a-reent.o lib_a-impure.o lib_a-malloc.o lib_a-mallocr.o lib_a-calloc.o lib_a-callocr.o lib_a-realloc.o lib_a-reallocr.o lib_a-sbrkr.o lib_a-freer.o
+
 SYSSVC_DIRS := $(TECSGENDIR) $(SRCDIR)/tecs_kernel \
 				$(SYSSVC_DIRS) $(SRCDIR)/syssvc
 SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
-SYSSVC_COBJS := $(INIT_TECS_COBJ) $(TECS_COBJS) $(SYSSVC_COBJS) \
-				 $(CXXRTS)
+SYSSVC_COBJS := $(SYSSVC_COBJS) $(TECS_COBJS) \
+				$(INIT_TECS_COBJ) $(CXXRTS)
 SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
-INCLUDES := $(INCLUDES) -I$(TECSGENDIR) -I$(SRCDIR)/tecs_kernel
+INCLUDES := $(INCLUDES) -I$(TECSGENDIR) -I$(SRCDIR)/tecs_kernel -I../../musl-1.1.18/include
+
+#
+#  ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã«é¢ããå®ç¾©
+#
+ifdef ENABLE_TRACE
+	COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
+	SYSSVC_DIRS := $(SYSSVC_DIRS) $(SRCDIR)/arch/tracelog
+endif
 
 #
@@ -263,5 +292,5 @@
 .PHONY: all
 ifndef OMIT_TECS
-all: tecs
+all: tecs | $(DEPDIR)
 #	@$(MAKE) check
 	@$(MAKE) check $(OBJNAME).bin
@@ -279,4 +308,5 @@
 #  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«é¢ããå®ç¾©
 #
+CFG_KERNEL := --kernel asp
 ifndef TINETDIR
   CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
@@ -287,12 +317,12 @@
   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 $(TINET_ROOT)/tcpip_sym.def \
 			--symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
 endif
 CFG_ASMOBJS := $(CFG_ASMOBJS)
 CFG_COBJS := kernel_cfg.o $(CFG_COBJS)
-CFG_OBJS := $(CFG_ASMOBJS) $(CFG_COBJS)
+CFG_CFLAGS := -DTOPPERS_CB_TYPE_ONLY $(CFG_CFLAGS)
+
 CFG2_OUT_SRCS := kernel_cfg.h kernel_cfg.c $(CFG2_OUT_SRCS)
-CFG_CFLAGS := -DTOPPERS_CB_TYPE_ONLY $(CFG_CFLAGS)
 
 #
@@ -325,7 +355,5 @@
 					$(foreach file,$(KERNEL_FCSRCS),$(file:.c=.o))
 endif
-ifdef OMIT_OFFSET_H
-	OFFSET_H =
-else
+ifdef TARGET_OFFSET_TRB
 	OFFSET_H = offset.h
 endif
@@ -343,5 +371,5 @@
 endif
 ifndef TARGET_TCPIP_TRB
-	TARGET_TCPIP_TRB := $(SRCDIR)/tinet/tinet.trb
+	TARGET_TCPIP_TRB := $(SRCDIR)/$(TINETDIR)/tinet.trb
 endif
 
@@ -356,9 +384,27 @@
 
 #
+#  ä¸­éãªãã¸ã§ã¯ããã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã®å¦ç
+#
+APPL_ASMOBJS   := $(addprefix $(OBJDIR)/, $(APPL_ASMOBJS))
+APPL_CXXOBJS   := $(addprefix $(OBJDIR)/, $(APPL_CXXOBJS))
+APPL_COBJS     := $(addprefix $(OBJDIR)/, $(APPL_COBJS))
+APPL_BINOBJS   := $(addprefix $(OBJDIR)/, $(APPL_BINOBJS))
+SYSSVC_ASMOBJS := $(addprefix $(OBJDIR)/, $(SYSSVC_ASMOBJS))
+SYSSVC_COBJS   := $(addprefix $(OBJDIR)/, $(SYSSVC_COBJS))
+KERNEL_ASMOBJS := $(addprefix $(OBJDIR)/, $(KERNEL_ASMOBJS))
+KERNEL_COBJS   := $(addprefix $(OBJDIR)/, $(KERNEL_COBJS))
+KERNEL_LCOBJS  := $(addprefix $(OBJDIR)/, $(KERNEL_LCOBJS))
+CFG_ASMOBJS    := $(addprefix $(OBJDIR)/, $(CFG_ASMOBJS))
+CFG_COBJS      := $(addprefix $(OBJDIR)/, $(CFG_COBJS))
+CFG_DMY        := $(addprefix $(OBJDIR)/, $(CFG_DMY))
+MALLOC_OBJS    := $(addprefix $(OBJDIR)/, $(MALLOC_OBJS))
+
+#
 #  ã³ã³ãã¤ã«ã®ããã®å¤æ°ã®å®ç¾©
 #
-KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
+APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS) $(APPL_BINOBJS)
 SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS) $(HIDDEN_OBJS)
-APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS) $(APPL_BINOBJS)
+KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS) $(MALLOC_OBJS)
+CFG_OBJS = $(CFG_ASMOBJS) $(CFG_COBJS)
 ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
 											$(END_OBJS) $(HIDDEN_OBJS)
@@ -372,4 +418,12 @@
 	OBJ_LDFLAGS := $(OBJ_LDFLAGS) -L.
 endif
+ifdef SYSSVC_LIB
+	LIBS_DEP := $(LIBS_DEP) $(SYSSVC_LIB)/libsyssvc.a
+	OBJ_LDFLAGS := $(OBJ_LDFLAGS) -L$(SYSSVC_LIB)
+	REALCLEAN_FILES := $(REALCLEAN_FILES) libsyssvc.a
+else
+	LIBS_DEP := $(LIBS_DEP) libsyssvc.a
+	OBJ_LDFLAGS := $(OBJ_LDFLAGS) -L.
+endif
 
 ifdef TEXT_START_ADDRESS
@@ -394,5 +448,5 @@
 tecs $(TECSGEN_SRCS) $(TECS_HEADERS): $(TECSGEN_TIMESTAMP) ;
 $(TECSGEN_TIMESTAMP): $(APPL_CDL) $(TECS_IMPORTS)
-	$(TECSGEN) $< -R $(INCLUDES) --cpp "$(TECS_CPP)" -g $(TECSGENDIR)
+	$(TECSGEN) $< -R $(INCLUDES) --cpp "$(subst ", \", $(TECS_CPP))" -g $(TECSGENDIR)
 
 #
@@ -401,11 +455,10 @@
 cfg1_out.c cfg1_out.db: cfg1_out.timestamp ;
 cfg1_out.timestamp: $(APPL_CFG) $(TECSGEN_TIMESTAMP)
-	echo $(CFG_TABS)
-	$(CFG) --pass 1 --kernel asp $(INCLUDES) $(CFG_TABS) \
+	$(CFG) --pass 1 $(CFG_KERNEL) $(INCLUDES) $(CFG_TABS) \
 						-M $(DEPDIR)/cfg1_out_c.d $(TARGET_KERNEL_CFG) $<
 
-$(CFG1_OUT): $(START_OBJS) cfg1_out.o $(CFG_DMY) $(END_OBJS) $(HIDDEN_OBJS)
+$(CFG1_OUT): $(START_OBJS) $(OBJDIR)/cfg1_out.o $(CFG_DMY) $(END_OBJS) $(HIDDEN_OBJS)
 	$(LINK) $(CFLAGS) $(LDFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
-						$(START_OBJS) cfg1_out.o $(CFG_DMY) $(END_OBJS)
+						$(START_OBJS) $(OBJDIR)/cfg1_out.o $(CFG_DMY) $(LIBS) $(END_OBJS) $(HIDDEN_OBJS)
 
 cfg1_out.syms: $(CFG1_OUT)
@@ -417,5 +470,5 @@
 $(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) --pass 2 $(CFG_KERNEL) $(INCLUDES) $(CFG_TRB)
 
 #
@@ -424,5 +477,5 @@
 $(OFFSET_H): offset.timestamp ;
 offset.timestamp: cfg1_out.db cfg1_out.syms cfg1_out.srec
-	$(CFG) --pass 2 -O --kernel asp $(INCLUDES) -T $(TARGET_OFFSET_TRB) \
+	$(CFG) --pass 2 -O $(CFG_KERNEL) $(INCLUDES) -T $(TARGET_OFFSET_TRB) \
 				--rom-symbol cfg1_out.syms --rom-image cfg1_out.srec
 
@@ -436,7 +489,23 @@
 
 #
+#  ã·ã¹ãã ãµã¼ãã¹ã³ã¼ã«ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ
+#
+libsyssvc.a: $(filter-out $(OBJDIR)/tBannerMain.o, $(SYSSVC_OBJS))
+	rm -f libsyssvc.a
+	$(AR) -rcs libsyssvc.a $(filter-out $(OBJDIR)/tBannerMain.o, $(SYSSVC_OBJS))
+	$(RANLIB) libsyssvc.a
+
+#
+#  ä¸¦åmakeã®ããã®ä¾å­é¢ä¿ã®å®ç¾©
+#
+$(APPL_OBJS) $(filter-out $(CFG_DMY), $(SYSSVC_OBJS)): | kernel_cfg.timestamp
+$(APPL_ASMOBJS) $(filter-out $(CFG_DMY), $(SYSSVC_ASMOBJS)) $(KERNEL_ASMOBJS) $(CFG_ASMOBJS): \
+														| offset.timestamp
+
+#
 #  ç¹å¥ãªä¾å­é¢ä¿ã®å®ç¾©
 #
-tBannerMain.o: $(filter-out tBannerMain.o,$(ALL_OBJS)) $(LIBS_DEP)
+$(OBJDIR)/tBannerMain.o: $(filter-out $(OBJDIR)/tBannerMain.o,$(ALL_OBJS)) \
+																$(LIBS_DEP)
 
 #
@@ -448,5 +517,11 @@
 			-Wl,-Map=$(OBJNAME).map,--cref -Wl,--gc-sections -Wl,-e_kernel__start,--gc-keep-exported=_kernel_istk \
 			$(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
-			$(ALL_LIBS) $(END_OBJS)
+			-Wl,--start-group $(ALL_LIBS) -Wl,--end-group $(END_OBJS)
+
+#
+#  ä¾å­é¢ä¿ãã©ã«ãã®ä½æ
+#
+$(DEPDIR):
+	mkdir $@
 
 #
@@ -476,5 +551,5 @@
 check: check.timestamp ;
 check.timestamp: cfg2_out.db $(OBJNAME).syms $(OBJNAME).srec
-	$(CFG) --pass 3 --kernel asp -O $(INCLUDES) -T $(TARGET_CHECK_TRB) \
+	$(CFG) --pass 3 $(CFG_KERNEL) -O $(INCLUDES) -T $(TARGET_CHECK_TRB) \
 				--rom-symbol $(OBJNAME).syms --rom-image $(OBJNAME).srec
 	@echo "configuration check passed"
@@ -485,5 +560,5 @@
 .PHONY: clean
 clean:
-	rm -f \#* *~ *.o $(DEPDIR)/*.d $(CLEAN_FILES) check.timestamp
+	rm -f \#* *~ $(OBJDIR)/*.o $(DEPDIR)/*.d $(CLEAN_FILES) check.timestamp
 	rm -f $(OBJFILE) $(OBJNAME).syms $(OBJNAME).srec $(OBJNAME).bin
 	rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS) cfg2_out.db
@@ -495,9 +570,18 @@
 	rm -f libkernel.a
 endif
+ifndef SYSSVC_LIB
+	rm -f libsyssvc.a
+endif
+	rm -f $(MALLOC_OBJS)
 
 .PHONY: cleankernel
 cleankernel:
 	rm -f $(OFFSET_H) $(KERNEL_LIB_OBJS)
-	rm -f $(KERNEL_LIB_OBJS:%.o=$(DEPDIR)/%.d)
+	rm -f $(KERNEL_LIB_OBJS:$(OBJDIR)/%.o=$(DEPDIR)/%.d)
+
+.PHONY: cleansyssvc
+cleansyssvc:
+	rm -f $(SYSSVC_OBJS)
+	rm -f $(SYSSVC_OBJS:$(OBJDIR)/%.o=$(DEPDIR)/%.d)
 
 .PHONY: realclean
@@ -512,15 +596,15 @@
 #  ã®ã¿ãä»ãã¦ã³ã³ãã¤ã«ããï¼
 #
-ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
+ALL_CFG_COBJS = $(CFG_COBJS) $(OBJDIR)/cfg1_out.o
 ALL_CFG_ASMOBJS = $(CFG_ASMOBJS)
 
-$(ALL_CFG_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
-
-$(ALL_CFG_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(CFG_CFLAGS) $<
-
-$(ALL_CFG_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
+$(ALL_CFG_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(CFG_CFLAGS) $<
 
 #
@@ -574,67 +658,71 @@
 #  ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
 #
-$(KERNEL_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_LCOBJS): %.o:
-	$(CC) -DTOPPERS_$(*F) -o $@ -c -MD -MP -MF $(DEPDIR)/$*.d \
+$(KERNEL_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_LCOBJS): $(OBJDIR)/%.o:
+	$(CC) -c -o $@ -DTOPPERS_$(*F) -MD -MP -MF $(DEPDIR)/$*.d \
 									$(CFLAGS) $(KERNEL_CFLAGS) $<
 
-$(KERNEL_LCOBJS:.o=.s): %.s:
-	$(CC) -DTOPPERS_$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(KERNEL_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
-
-$(SYSSVC_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(SYSSVC_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(SYSSVC_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
-
-$(APPL_COBJS): %.o: %.c
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_COBJS:.o=.s): %.s: %.c
-	$(CC) -S $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_CXXOBJS): %.o: %.cpp
-	$(CXX) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_CXXOBJS:.o=.s): %.s: %.cpp
-	$(CXX) -S $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_ASMOBJS): %.o: %.S
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
-
-$(APPL_BINOBJS): %.o: %.bin
-	$(OBJCOPY) -B arm -I binary -O elf32-littlearm --rename-section .data=.rodata $< $*.o
+$(KERNEL_LCOBJS:$(OBJDIR)/%.o=%.s): %.s:
+	$(CC) -S -o $@ -DTOPPERS_$(*F) $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(SYSSVC_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(APPL_COBJS): $(OBJDIR)/%.o: %.c
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_COBJS:$(OBJDIR)/%.o=%.s): %.s: %.c
+	$(CC) -S -o $@ $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS): $(OBJDIR)/%.o: %.cpp
+	$(CXX) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS:$(OBJDIR)/%.o=%.s): %.s: %.cpp
+	$(CXX) -S -o $@ $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_ASMOBJS): $(OBJDIR)/%.o: %.S
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_BINOBJS): $(OBJDIR)/%.o: %.bin
+	$(OBJCOPY) -B arm -I binary -O elf32-littlearm --rename-section .data=.rodata $< $(OBJDIR)/$*.o
+
+$(MALLOC_OBJS): $(OBJDIR)/%.o:
+	$(AR) x $(MALLOC_LIB) $(notdir $@)
+	mv $(notdir $@) $@
 
 #
 #  ããã©ã«ãã³ã³ãã¤ã«ã«ã¼ã«ãä¸æ¸ã
 #
-%.o: %.c
+$(OBJDIR)/%.o: %.c
 	@echo "*** Default compile rules should not be used."
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
 
 %.s: %.c
 	@echo "*** Default compile rules should not be used."
-	$(CC) -S $(CFLAGS) $<
-
-%.o: %.cpp
+	$(CC) -S -o $@ $(CFLAGS) $<
+
+$(OBJDIR)/%.o: %.cpp
 	@echo "*** Default compile rules should not be used."
-	$(CXX) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CXX) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
 
 %.s: %.cpp
 	@echo "*** Default compile rules should not be used."
-	$(CXX) -S $(CFLAGS) $<
-
-%.o: %.S
+	$(CXX) -S -o $@ $(CFLAGS) $<
+
+$(OBJDIR)/%.o: %.S
 	@echo "*** Default compile rules should not be used."
-	$(CC) -c -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
+	$(CC) -c -o $@ -MD -MP -MF $(DEPDIR)/$*.d $(CFLAGS) $<
Index: EcnlProtoTool/trunk/ntshell/fatfs/sdfs.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/fatfs/sdfs.c	(revision 428)
+++ EcnlProtoTool/trunk/ntshell/fatfs/sdfs.c	(revision 429)
@@ -116,5 +116,5 @@
 #include "sdfs.h"
 //#include "mbed_debug.h"
-#include "wait_api.h"
+#include "mbed_wait_api.h"
 
 #define debug(str, ...)
Index: EcnlProtoTool/trunk/ntshell/src/mbedcall.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/mbedcall.c	(revision 428)
+++ EcnlProtoTool/trunk/ntshell/src/mbedcall.c	(revision 429)
@@ -59,5 +59,5 @@
 #include "serial_api.h"
 #include "us_ticker_api.h"
-#include "wait_api.h"
+#include "mbed_wait_api.h"
 #include "../../mbed_api/src/mbedcall.h"
 
Index: EcnlProtoTool/trunk/ntshell/src/syscall.c
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/syscall.c	(revision 428)
+++ EcnlProtoTool/trunk/ntshell/src/syscall.c	(revision 429)
@@ -61,27 +61,28 @@
 // https://os.mbed.com/users/dkato/code/FlashAccess/#652a093cf264
 void flash_access_cache_control(void) {
-    unsigned int assoc;
-
-    /* ==== Cleaning and invalidation of the L1 data cache ==== */
-    __v7_all_cache(2);
-    __DSB();
-
-    /* ==== Cleaning and invalidation of the L2 cache ==== */
-    if (PL310->AUX_CNT & (1<<16)) {
-        assoc = 16;
-    } else {
-        assoc =  8;
-    }
-    PL310->INV_WAY = (1 << assoc) - 1;
-    while(PL310->INV_WAY & ((1 << assoc) - 1)); // poll invalidate
-    PL310->CACHE_SYNC = 0x0;
-
-    /* ==== Invalidate all TLB entries ==== */
-    __ca9u_inv_tlb_all();
-
-    /* ==== Invalidate the L1 instruction cache ==== */
-    __v7_inv_icache_all();
-    __DSB();
-    __ISB();
+	unsigned int assoc;
+
+	/* ==== Cleaning and invalidation of the L1 data cache ==== */
+	L1C_CleanInvalidateDCacheAll();
+	__DSB();
+
+	/* ==== Cleaning and invalidation of the L2 cache ==== */
+	if (L2C_310->AUX_CNT & (1 << 16)) {
+		assoc = 16;
+	}
+	else {
+		assoc = 8;
+	}
+	L2C_310->INV_WAY = (1 << assoc) - 1;
+	while (L2C_310->INV_WAY & ((1 << assoc) - 1)); // poll invalidate
+	L2C_310->CACHE_SYNC = 0x0;
+
+	/* ==== Invalidate all TLB entries ==== */
+	MMU_InvalidateTLB();
+
+	/* ==== Invalidate the L1 instruction cache ==== */
+	L1C_InvalidateICacheAll();
+	__DSB();
+	__ISB();
 }
 
Index: EcnlProtoTool/trunk/ntshell/src/tinet_main.cfg
===================================================================
--- EcnlProtoTool/trunk/ntshell/src/tinet_main.cfg	(revision 428)
+++ EcnlProtoTool/trunk/ntshell/src/tinet_main.cfg	(revision 429)
@@ -43,6 +43,4 @@
 #include "main.h"
 
-INCLUDE("netinet/ip_igmp.cfg");
-
 /* DHCP クライアント */
 /*INCLUDE("netapp/tinet_dhcp4_cli.cfg");*/
