diff options
author | Ruslan Bukin <br@FreeBSD.org> | 2023-03-27 15:14:10 +0000 |
---|---|---|
committer | Ruslan Bukin <br@FreeBSD.org> | 2023-03-27 15:23:28 +0000 |
commit | 974000f192f9f74654b8835361cf35e606a10a76 (patch) | |
tree | c3aabe2b3d219cca63f0b426a2098bcdf9e9ac65 | |
parent | d7aa8d0a1f110421252d79f5acfb72d89187ad1f (diff) | |
download | src-vendor/opencsd.tar.gz src-vendor/opencsd.zip |
Update OpenCSD to v1.4.0.vendor/opencsd/v1.4.0vendor/opencsd
Sponsored by: UKRI
499 files changed, 94809 insertions, 424 deletions
diff --git a/.gitignore b/.gitignore index 54627e695ab4..9908c67a2fa9 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,9 @@ *.la *.lo +# gcc dependency files +*.d + # Shared objects (inc. Windows DLLs) *.dll *.so @@ -43,6 +46,7 @@ ipch/ *.pdb *.exp *.ilk +.vs/ # ignore emacs backup saves *~ @@ -74,3 +78,4 @@ decoder/docs/html/* *.VC.VC.opendb *.iobj *.ipdb +decoder/tests/results* diff --git a/README.md b/README.md index b8b13d57830e..450c8e3e53b8 100644 --- a/README.md +++ b/README.md @@ -27,11 +27,12 @@ Releases will appear on the master branch in the git repository with an appropri CoreSight Trace Component Support. ---------------------------------- -_Current Version 0.14.2_ +_Current Version 1.4.0_ ### Current support: -- ETMv4 (v4.5 [A/R profile] v4.4 [M profile]) instruction trace - packet processing and packet decode. +- ETE (v1.3) instruction trace - packet processing and packet decode. +- ETMv4 (v4.6 [A/R profile] v4.4 [M profile]) instruction trace - packet processing and packet decode. - PTM (v1.1) instruction trace - packet processing and packet decode. - ETMv3 (v3.5) instruction trace - packet processing and packet decode. - ETMv3 (v3.5) data trace - packet processing. @@ -211,6 +212,85 @@ Version and Modification Information - __Bugfix__: I-decode: Some Thumb instructions not correctly reported as implied returns. (github issue #24, submitted by kongy). +- _Version 0.14.3_: + - __Update__: Fix makefile to be compliant with RPM base distros. (github issue #26, submitted by jlinton) + - __Update__: Add section to autofdo document. + - __Bugfix__: STM: fix bug that was missing ASYNC packets. (github issue #27, reported by subhasish Karmakar) + +- _Version 0.14.4_: + - __Update__: makefile: Add DESTDIR to install targets. (github issue #30) + - __Update__: tests: add script to run single test only. + - __Update__: docs: update to location of ARM coresight driver backports directory. + - __Bugfix__: ETMv3: Fix missing comma in string list. (github issue #31) + - __Bugfix__: makefile: tests: Fix build race problem (github issue #32) + - __Bugfix__: tests: fix ignore tpiu command line options (github issue #28) + +- _Version 1.0.0_: + - __New Decode Protocol__: Support added for the ETE protocol, used by ARM PEs that implement the FEAT_ETE + feature. Supports new architectural features in this trace, including FEAT_TME. + - __Update__: Output Elememts: New protocol defines two new output elements. + - __Update__: Add support for WFIT / WFET instructions traced as P0 elements. + - __Update__: Architecture versioning. Arch v8 + PEs may add features in a flexible manner, and ARM also + declares future features ahead of architecture versions to allow support to be added. + APIs requiring an architecture version can now use ARCH_AA64 to declare a version of v8.3 + + additional features. This relaxes the strict versionnig rules that the decoder uses when + looking for Opcodes as trace waypoints. + - __Update__: docs: Add linux 'man' file and installation. + - __Bugfix__: build: Fix clean install, and remove static lib build test from main makefile to + dev makefile only. (github issue #33) + +- _Version 1.1.0_: + - __Update__: ETM v4.6 support. + - __Update__: C-API - add API functions to get last error and convert error code to string. + - __Bugfix__: ETMv4/ETE - fix loop problem in commit elements. + - __Bugfix__: ETMv4/ETE - make error handling consistent. + - __Bugfix__: Add Pull request #36 from github (Ross Burton) + - __Bugfix__: Add Pull request #37 from github (Ian Rogers) + +- _Version 1.1.1_: + - __Bugfix__: Fix include and install for ETE decoder headers. + +- _Version 1.2.0_: + - __Update__: Add API for counting packet decode statistics, and Frame debmux statistics. + - __Update__: Update test scripts to allow additional command line options to be passed. + - __Bugfix__: Fix various build warnings. + - __Bugfix__: Remove unused variable (github issue #38 from Yi Kong) + - __Bugfix__: Remove noisy printf (James Clark) + - __Bugfix__: Fix documentation issues (github issues #39 & #40 from rbresalier) + +- _Version 1.2.1_: + - __Bugfix__: ETM4x / ETE - output of context elements to client can in some circumstances + be delayed until after subsequent atoms have been processed leading to incorrect + memory decode access via the client callbacks. + Fixed to flush context elements immediately they are committed. + +- _Version 1.3.0_: + - __Admin__: Dev versions now have patch versions at least +100 from root public version + - __Update__: Add support for conditional branch (BC.cond) introduced for v8.8 / v9.3 architecture. + - __Update__: ETE: Add support for NSE bit - security state bit defining Root / Realm states in FEAT_RME. + +- _Version 1.3.1_: + - __Bugfix__: Add header file in snapshot parser - fix build for certain libc++ libs (github issue #43 from manojgupta) + - __Bugfix__: Fix typo in comment (github issue #42 from nothatDinger) + +- _Version 1.3.2_: + - __Bugfix__: ETM4x / ETE - 64 bit timestamp value - MS bit incorrectly masked to 1b0 during extraction from packet. + +- _Version 1.3.3_: + - __Update__: Add build directory for VS2022 build. + - __Update__: Add test program for Coresight Frame Demux code + - __Bugfix__: PTM: Fix incorrect extraction of Waypoint Address packet (github issue #48) + - __Bugfix__: Frame Demux: Fix HSYNC, FSYNC and 4xFSYNC handling that was causing out-of-bounds reads + on invalid data input. (issues #49, #50 and #51). Fixed error handling for incorrect + number of FSYNC packets in 4xFSYNC frame reset code that was not triggering an error + and allowing fun with mis-aligned input data. + - __Bugfix__: Fix silent failure if incorrect config flags set when setting up frame demux modes. + +- _Version 1.4.0_: + - __Update__: ETE: Add support for Arch v9.4 FEAT_ITE. ETE v1p3, sw trace instrumentation. + Adds in new generic output packet type: OCSD_GEN_TRC_ELEM_INSTRUMENTATION. + - __Bugfix__: Fix memory leak in mispredict handling (github issue #52 from yabinc) + Licence Information =================== diff --git a/decoder/build/linux/makefile b/decoder/build/linux/makefile index 659cf68c6376..5515737f0d00 100644 --- a/decoder/build/linux/makefile +++ b/decoder/build/linux/makefile @@ -65,9 +65,10 @@ export INSTALL=install # installation directory PREFIX ?=/usr LIB_PATH ?= lib -INSTALL_LIB_DIR=$(PREFIX)/$(LIB_PATH) -INSTALL_BIN_DIR=$(PREFIX)/bin -export INSTALL_INCLUDE_DIR=$(PREFIX)/include/ +INSTALL_LIB_DIR=$(DESTDIR)$(PREFIX)/$(LIB_PATH) +INSTALL_BIN_DIR=$(DESTDIR)$(PREFIX)/bin +export INSTALL_INCLUDE_DIR=$(DESTDIR)$(PREFIX)/include/ +INSTALL_MAN_DIR=$(DESTDIR)$(PREFIX)/share/man/man1 # compile flags CFLAGS += $(CPPFLAGS) -c -Wall -DLINUX -Wno-switch -Wlogical-op -fPIC @@ -114,19 +115,27 @@ all: libs tests libs: $(LIB_BASE_NAME)_lib $(LIB_CAPI_NAME)_lib +DEF_SO_PERM ?= 644 + install: libs tests mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_BIN_DIR) cp -d $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).so $(INSTALL_LIB_DIR)/ cp -d $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).so.$(SO_MAJOR_VER) $(INSTALL_LIB_DIR)/ - $(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).so.$(SO_VER) $(INSTALL_LIB_DIR)/ + $(INSTALL) --mode=$(DEF_SO_PERM) $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).so.$(SO_VER) $(INSTALL_LIB_DIR)/ cp -d $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).so $(INSTALL_LIB_DIR)/ cp -d $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).so.$(SO_MAJOR_VER) $(INSTALL_LIB_DIR)/ - $(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).so.$(SO_VER) $(INSTALL_LIB_DIR)/ + $(INSTALL) --mode=$(DEF_SO_PERM) $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).so.$(SO_VER) $(INSTALL_LIB_DIR)/ +ifndef DISABLE_STATIC $(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_BASE_NAME).a $(INSTALL_LIB_DIR)/ $(INSTALL) --mode=644 $(LIB_TARGET_DIR)/lib$(LIB_CAPI_NAME).a $(INSTALL_LIB_DIR)/ +endif cd $(OCSD_ROOT)/build/linux/rctdl_c_api_lib && make install_inc $(INSTALL) --mode=755 $(BIN_TEST_TARGET_DIR)/trc_pkt_lister $(INSTALL_BIN_DIR)/ +install_man: + mkdir -p $(INSTALL_MAN_DIR) + $(INSTALL) --mode=644 $(OCSD_ROOT)/docs/man/trc_pkt_lister.1 $(INSTALL_MAN_DIR)/ + ################################ # build OpenCSD trace decode library @@ -164,6 +173,7 @@ tests: libs cd $(OCSD_ROOT)/tests/build/linux/trc_pkt_lister && $(MAKE) cd $(OCSD_ROOT)/tests/build/linux/c_api_pkt_print_test && $(MAKE) cd $(OCSD_ROOT)/tests/build/linux/mem_buffer_eg && $(MAKE) + cd $(OCSD_ROOT)/tests/build/linux/frame_demux_test && $(MAKE) # # build docs @@ -189,6 +199,7 @@ clean_tests: cd $(OCSD_ROOT)/tests/build/linux/trc_pkt_lister && $(MAKE) clean cd $(OCSD_ROOT)/tests/build/linux/c_api_pkt_print_test && $(MAKE) clean cd $(OCSD_ROOT)/tests/build/linux/mem_buffer_eg && $(MAKE) clean + cd $(OCSD_ROOT)/tests/build/linux/frame_demux_test && $(MAKE) clean -rmdir $(OCSD_TESTS)/lib clean_docs: @@ -198,3 +209,5 @@ clean_install: -rm $(INSTALL_LIB_DIR)/lib$(LIB_BASE_NAME).* -rm $(INSTALL_LIB_DIR)/lib$(LIB_CAPI_NAME).* -rm -r $(INSTALL_INCLUDE_DIR)/$(LIB_UAPI_INC_DIR) + -rm $(INSTALL_BIN_DIR)/trc_pkt_lister + -rm $(INSTALL_MAN_DIR)/trc_pkt_lister.1 diff --git a/decoder/build/linux/makefile.dev b/decoder/build/linux/makefile.dev index 5eb1ec9557fa..aaaa983845cf 100644 --- a/decoder/build/linux/makefile.dev +++ b/decoder/build/linux/makefile.dev @@ -63,5 +63,8 @@ else PLAT_DIR=linux$(BIT_VARIANT)/$(BUILD_VARIANT) endif +# for dev env, enable static link build test +export TEST_STATIC_LINKING=1 + # include the main makefile include makefile diff --git a/decoder/build/linux/rctdl_c_api_lib/makefile b/decoder/build/linux/rctdl_c_api_lib/makefile index a0bd5a345f2f..7b4055dd7f6b 100644 --- a/decoder/build/linux/rctdl_c_api_lib/makefile +++ b/decoder/build/linux/rctdl_c_api_lib/makefile @@ -113,6 +113,8 @@ install_inc: $(INSTALL) --mode=0644 $(INST_INC_SRC)/etmv3/trc_pkt_types_etmv3.h $(INST_INC_DST)/etmv3/ $(INSTALL) -d --mode=0755 $(INST_INC_DST)/etmv4 $(INSTALL) --mode=0644 $(INST_INC_SRC)/etmv4/trc_pkt_types_etmv4.h $(INST_INC_DST)/etmv4/ + $(INSTALL) -d --mode=0755 $(INST_INC_DST)/ete + $(INSTALL) --mode=0644 $(INST_INC_SRC)/ete/trc_pkt_types_ete.h $(INST_INC_DST)/ete/ $(INSTALL) -d --mode=0755 $(INST_INC_DST)/c_api $(INSTALL) --mode=0644 $(INST_INC_SRC)/c_api/ocsd_c_api_types.h $(INST_INC_DST)/c_api/ $(INSTALL) --mode=0644 $(INST_INC_SRC)/c_api/opencsd_c_api.h $(INST_INC_DST)/c_api/ diff --git a/decoder/build/linux/ref_trace_decode_lib/makefile b/decoder/build/linux/ref_trace_decode_lib/makefile index 7087036cc62e..58d5c6ecbfce 100644 --- a/decoder/build/linux/ref_trace_decode_lib/makefile +++ b/decoder/build/linux/ref_trace_decode_lib/makefile @@ -41,6 +41,7 @@ BUILD_DIR=./$(PLAT_DIR) VPATH= $(OCSD_SOURCE) \ $(OCSD_SOURCE)/etmv3 \ $(OCSD_SOURCE)/etmv4 \ + $(OCSD_SOURCE)/ete \ $(OCSD_SOURCE)/ptm \ $(OCSD_SOURCE)/i_dec \ $(OCSD_SOURCE)/mem_acc \ @@ -59,10 +60,11 @@ ETMV3OBJ= $(BUILD_DIR)/trc_cmp_cfg_etmv3.o \ $(BUILD_DIR)/trc_pkt_proc_etmv3_impl.o ETMV4OBJ= $(BUILD_DIR)/trc_cmp_cfg_etmv4.o \ + $(BUILD_DIR)/trc_etmv4_stack_elem.o \ $(BUILD_DIR)/trc_pkt_proc_etmv4i.o \ $(BUILD_DIR)/trc_pkt_decode_etmv4i.o \ $(BUILD_DIR)/trc_pkt_elem_etmv4i.o \ - $(BUILD_DIR)/trc_etmv4_stack_elem.o + $(BUILD_DIR)/trc_cmp_cfg_ete.o PTMOBJ= $(BUILD_DIR)/trc_cmp_cfg_ptm.o \ $(BUILD_DIR)/trc_pkt_elem_ptm.o \ diff --git a/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj b/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj index f1aaece9b3ba..8dca67db3935 100644 --- a/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj +++ b/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj @@ -310,6 +310,7 @@ <None Include="..\..\..\..\TODO" /> <None Include="..\..\..\docs\build_libs.md" /> <None Include="..\..\..\docs\external_custom.md" /> + <None Include="..\..\..\docs\man\trc_pkt_lister.1" /> <None Include="..\..\..\docs\test_progs.md" /> </ItemGroup> <ItemGroup> @@ -339,6 +340,10 @@ <ClInclude Include="..\..\..\include\common\trc_printable_elem.h" /> <ClInclude Include="..\..\..\include\common\trc_ret_stack.h" /> <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_cache.h" /> + <ClInclude Include="..\..\..\include\opencsd\ete\ete_decoder.h" /> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_cmp_cfg_ete.h" /> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_dcd_mngr_ete.h" /> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_pkt_types_ete.h" /> <ClInclude Include="..\..\..\include\opencsd\etmv3\etmv3_decoder.h" /> <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_cmp_cfg_etmv3.h" /> <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_dcd_mngr_etmv3.h" /> @@ -354,6 +359,7 @@ <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_elem_etmv4d.h" /> <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_elem_etmv4i.h" /> <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_proc_etmv4.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_proc_etmv4i.h" /> <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_types_etmv4.h" /> <ClInclude Include="..\..\..\include\interfaces\trc_abs_typed_base_i.h" /> <ClInclude Include="..\..\..\include\interfaces\trc_data_rawframe_in_i.h" /> @@ -404,6 +410,7 @@ <ClInclude Include="..\..\..\source\trc_frame_deformatter_impl.h" /> </ItemGroup> <ItemGroup> + <ClCompile Include="..\..\..\source\ete\trc_cmp_cfg_ete.cpp" /> <ClCompile Include="..\..\..\source\etmv3\trc_cmp_cfg_etmv3.cpp" /> <ClCompile Include="..\..\..\source\etmv3\trc_pkt_decode_etmv3.cpp" /> <ClCompile Include="..\..\..\source\etmv3\trc_pkt_elem_etmv3.cpp" /> diff --git a/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj.filters b/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj.filters index cdb6f84f736d..47e9a3a64097 100644 --- a/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj.filters +++ b/decoder/build/win-vs2015/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj.filters @@ -64,6 +64,12 @@ <Filter Include="Source Files\pkt_printers"> <UniqueIdentifier>{baf047d0-0ff7-4502-b42b-4f1fda94d54b}</UniqueIdentifier> </Filter> + <Filter Include="Header Files\ete"> + <UniqueIdentifier>{3d119e90-c89b-4f27-8163-305924453e1f}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\ete"> + <UniqueIdentifier>{8cfdb19c-28fc-4e79-b8d5-4e54907b1f82}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> <None Include="..\..\..\..\LICENSE"> @@ -87,6 +93,9 @@ <None Include="..\..\..\docs\external_custom.md"> <Filter>docs-files</Filter> </None> + <None Include="..\..\..\docs\man\trc_pkt_lister.1"> + <Filter>docs-files</Filter> + </None> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\..\source\trc_frame_deformatter_impl.h"> @@ -356,6 +365,21 @@ <ClInclude Include="..\..\..\include\common\ocsd_gen_elem_stack.h"> <Filter>Header Files\common</Filter> </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_pkt_types_ete.h"> + <Filter>Header Files\ete</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_cmp_cfg_ete.h"> + <Filter>Header Files\ete</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_dcd_mngr_ete.h"> + <Filter>Header Files\ete</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ete\ete_decoder.h"> + <Filter>Header Files\ete</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_proc_etmv4i.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <ClCompile Include="..\..\..\source\trc_component.cpp"> @@ -484,5 +508,8 @@ <ClCompile Include="..\..\..\source\ocsd_gen_elem_stack.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="..\..\..\source\ete\trc_cmp_cfg_ete.cpp"> + <Filter>Source Files\ete</Filter> + </ClCompile> </ItemGroup> </Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/opencsd.props b/decoder/build/win-vs2022/opencsd.props new file mode 100644 index 000000000000..64b1268db436 --- /dev/null +++ b/decoder/build/win-vs2022/opencsd.props @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ImportGroup Label="PropertySheets" /> + <PropertyGroup Label="UserMacros"> + <LIB_BASE_NAME>opencsd</LIB_BASE_NAME> + <LIB_CAPI_NAME>opencsd_c_api</LIB_CAPI_NAME> + </PropertyGroup> + <PropertyGroup /> + <ItemDefinitionGroup /> + <ItemGroup> + <BuildMacro Include="LIB_BASE_NAME"> + <Value>$(LIB_BASE_NAME)</Value> + <EnvironmentVariable>true</EnvironmentVariable> + </BuildMacro> + <BuildMacro Include="LIB_CAPI_NAME"> + <Value>$(LIB_CAPI_NAME)</Value> + <EnvironmentVariable>true</EnvironmentVariable> + </BuildMacro> + </ItemGroup> +</Project> diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Debug-dll/libopencsd_c_api.dll.recipe b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Debug-dll/libopencsd_c_api.dll.recipe new file mode 100644 index 000000000000..d3b47221625c --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Debug-dll/libopencsd_c_api.dll.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\lib\win32\dbg\libopencsd_c_api.dll</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Debug-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Debug-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Debug-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/libopencsd_c_api.dll.recipe b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/libopencsd_c_api.dll.recipe new file mode 100644 index 000000000000..a52a3b5aa20a --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/libopencsd_c_api.dll.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\lib\win32\rel\libopencsd_c_api.dll</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/opencsd_c_api.dll.recipe b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/opencsd_c_api.dll.recipe new file mode 100644 index 000000000000..af2a94039ca8 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/opencsd_c_api.dll.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\lib\win32\rel\opencsd_c_api.dll</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release/libopencsd_c_api.lib.recipe b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release/libopencsd_c_api.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release/libopencsd_c_api.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/Win32/Release/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj b/decoder/build/win-vs2022/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj new file mode 100644 index 000000000000..e48ac6b9384f --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj @@ -0,0 +1,327 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-dll|Win32"> + <Configuration>Debug-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-dll|x64"> + <Configuration>Debug-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|Win32"> + <Configuration>Release-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|x64"> + <Configuration>Release-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{533F929A-A73B-46B6-9D5F-FFCD62F734E3}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>rctdl_c_api_lib</RootNamespace> + <ProjectName>ocsd_c_api_lib</ProjectName> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>lib$(LIB_CAPI_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>lib$(LIB_CAPI_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <TargetName>lib$(LIB_CAPI_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <TargetName>lib$(LIB_CAPI_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <TargetName>lib$(LIB_CAPI_NAME)</TargetName> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <TargetName>lib$(LIB_CAPI_NAME)</TargetName> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>lib$(LIB_CAPI_NAME)</TargetName> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>lib$(LIB_CAPI_NAME)</TargetName> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + <BasicRuntimeChecks /> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_OCSD_C_API_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_OCSD_C_API_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_OCSD_C_API_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_OCSD_C_API_DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="..\..\..\include\opencsd\c_api\ocsd_c_api_custom.h" /> + <ClInclude Include="..\..\..\include\opencsd\c_api\ocsd_c_api_cust_fact.h" /> + <ClInclude Include="..\..\..\include\opencsd\c_api\ocsd_c_api_cust_impl.h" /> + <ClInclude Include="..\..\..\include\opencsd\c_api\ocsd_c_api_types.h" /> + <ClInclude Include="..\..\..\include\opencsd\c_api\opencsd_c_api.h" /> + <ClInclude Include="..\..\..\source\c_api\ocsd_c_api_custom_obj.h" /> + <ClInclude Include="..\..\..\source\c_api\ocsd_c_api_obj.h" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\ref_trace_decode_lib\ref_trace_decode_lib.vcxproj"> + <Project>{7f500891-cc76-405f-933f-f682bc39f923}</Project> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\c_api\ocsd_c_api.cpp" /> + <ClCompile Include="..\..\..\source\c_api\ocsd_c_api_custom_obj.cpp" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj.filters b/decoder/build/win-vs2022/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj.filters new file mode 100644 index 000000000000..a9b05adfdf4c --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj.filters @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\include\opencsd\c_api\ocsd_c_api_types.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\c_api\opencsd_c_api.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\c_api\ocsd_c_api_obj.h"> + <Filter>Source Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\c_api\ocsd_c_api_custom.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\c_api\ocsd_c_api_custom_obj.h"> + <Filter>Source Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\c_api\ocsd_c_api_cust_fact.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\c_api\ocsd_c_api_cust_impl.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\c_api\ocsd_c_api.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\c_api\ocsd_c_api_custom_obj.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Debug-dll/libopencsd_c_api.dll.recipe b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Debug-dll/libopencsd_c_api.dll.recipe new file mode 100644 index 000000000000..93a8437a7efb --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Debug-dll/libopencsd_c_api.dll.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\lib\win64\dbg\libopencsd_c_api.dll</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Debug-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Debug-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Debug-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release-dll/libopencsd_c_api.dll.recipe b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release-dll/libopencsd_c_api.dll.recipe new file mode 100644 index 000000000000..e21549441a4f --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release-dll/libopencsd_c_api.dll.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\lib\win64\rel\libopencsd_c_api.dll</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release-dll/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release/libopencsd_c_api.lib.recipe b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release/libopencsd_c_api.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release/libopencsd_c_api.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/rctdl_c_api_lib/x64/Release/rctdl_c_api_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Debug-dll/libopencsd.dll.recipe b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Debug-dll/libopencsd.dll.recipe new file mode 100644 index 000000000000..46308c7be98f --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Debug-dll/libopencsd.dll.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\lib\win32\dbg\libopencsd.dll</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release-dll/libopencsd.lib.recipe b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release-dll/libopencsd.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release-dll/libopencsd.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release-dll/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release-dll/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release-dll/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release/libopencsd.lib.recipe b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release/libopencsd.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release/libopencsd.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/Win32/Release/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.sln b/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.sln new file mode 100644 index 000000000000..ce4ee29fd977 --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.sln @@ -0,0 +1,166 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.32929.387 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencsd_lib", "ref_trace_decode_lib.vcxproj", "{7F500891-CC76-405F-933F-F682BC39F923}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ocsd_c_api_lib", "..\rctdl_c_api_lib\rctdl_c_api_lib.vcxproj", "{533F929A-A73B-46B6-9D5F-FFCD62F734E3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "c_api_pkt_print_test", "..\..\..\tests\build\win-vs2022\c_api_pkt_print_test\c_api_pkt_print_test.vcxproj", "{3AC169DA-E156-4D16-95DF-73D7302A5606}" + ProjectSection(ProjectDependencies) = postProject + {46219A32-8178-41C1-B3B1-B5A6E547515F} = {46219A32-8178-41C1-B3B1-B5A6E547515F} + {533F929A-A73B-46B6-9D5F-FFCD62F734E3} = {533F929A-A73B-46B6-9D5F-FFCD62F734E3} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ext_dcd_echo_test", "..\..\..\tests\build\win-vs2022\ext_dcd_echo_test\ext_dcd_echo_test.vcxproj", "{46219A32-8178-41C1-B3B1-B5A6E547515F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mem-buffer-eg", "..\..\..\tests\build\win-vs2022\mem-buffer-eg\mem-buffer-eg.vcxproj", "{BC090130-2C53-4CF6-8AD4-37BF72B8D01A}" + ProjectSection(ProjectDependencies) = postProject + {7F500891-CC76-405F-933F-F682BC39F923} = {7F500891-CC76-405F-933F-F682BC39F923} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "snapshot_parser_lib", "..\..\..\tests\build\win-vs2022\snapshot_parser_lib\snapshot_parser_lib.vcxproj", "{DE1F395D-4F53-42FB-8AEF-993A4BF7E411}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "trc_pkt_lister", "..\..\..\tests\build\win-vs2022\trc_pkt_lister\trc_pkt_lister.vcxproj", "{18ABC652-AB11-4993-9491-1A7FB7117339}" + ProjectSection(ProjectDependencies) = postProject + {7F500891-CC76-405F-933F-F682BC39F923} = {7F500891-CC76-405F-933F-F682BC39F923} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "frame_demux_test", "..\..\..\tests\build\win-vs2022\frame_demux_test\frame_demux_test.vcxproj", "{98EE9884-A4EB-4C75-A911-DFEDF992754F}" + ProjectSection(ProjectDependencies) = postProject + {7F500891-CC76-405F-933F-F682BC39F923} = {7F500891-CC76-405F-933F-F682BC39F923} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Debug-dll|Win32 = Debug-dll|Win32 + Debug-dll|x64 = Debug-dll|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + Release-dll|Win32 = Release-dll|Win32 + Release-dll|x64 = Release-dll|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7F500891-CC76-405F-933F-F682BC39F923}.Debug|Win32.ActiveCfg = Debug|Win32 + {7F500891-CC76-405F-933F-F682BC39F923}.Debug|Win32.Build.0 = Debug|Win32 + {7F500891-CC76-405F-933F-F682BC39F923}.Debug|x64.ActiveCfg = Debug|x64 + {7F500891-CC76-405F-933F-F682BC39F923}.Debug|x64.Build.0 = Debug|x64 + {7F500891-CC76-405F-933F-F682BC39F923}.Debug-dll|Win32.ActiveCfg = Debug|Win32 + {7F500891-CC76-405F-933F-F682BC39F923}.Debug-dll|Win32.Build.0 = Debug|Win32 + {7F500891-CC76-405F-933F-F682BC39F923}.Debug-dll|x64.ActiveCfg = Debug|x64 + {7F500891-CC76-405F-933F-F682BC39F923}.Debug-dll|x64.Build.0 = Debug|x64 + {7F500891-CC76-405F-933F-F682BC39F923}.Release|Win32.ActiveCfg = Release|Win32 + {7F500891-CC76-405F-933F-F682BC39F923}.Release|Win32.Build.0 = Release|Win32 + {7F500891-CC76-405F-933F-F682BC39F923}.Release|x64.ActiveCfg = Release|x64 + {7F500891-CC76-405F-933F-F682BC39F923}.Release|x64.Build.0 = Release|x64 + {7F500891-CC76-405F-933F-F682BC39F923}.Release-dll|Win32.ActiveCfg = Release|Win32 + {7F500891-CC76-405F-933F-F682BC39F923}.Release-dll|Win32.Build.0 = Release|Win32 + {7F500891-CC76-405F-933F-F682BC39F923}.Release-dll|x64.ActiveCfg = Release|x64 + {7F500891-CC76-405F-933F-F682BC39F923}.Release-dll|x64.Build.0 = Release|x64 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Debug|Win32.ActiveCfg = Debug|Win32 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Debug|Win32.Build.0 = Debug|Win32 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Debug|x64.ActiveCfg = Debug|x64 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Debug|x64.Build.0 = Debug|x64 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Debug-dll|Win32.ActiveCfg = Debug-dll|Win32 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Debug-dll|Win32.Build.0 = Debug-dll|Win32 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Debug-dll|x64.ActiveCfg = Debug-dll|x64 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Debug-dll|x64.Build.0 = Debug-dll|x64 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Release|Win32.ActiveCfg = Release|Win32 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Release|Win32.Build.0 = Release|Win32 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Release|x64.ActiveCfg = Release|x64 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Release|x64.Build.0 = Release|x64 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Release-dll|Win32.ActiveCfg = Release-dll|Win32 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Release-dll|Win32.Build.0 = Release-dll|Win32 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Release-dll|x64.ActiveCfg = Release-dll|x64 + {533F929A-A73B-46B6-9D5F-FFCD62F734E3}.Release-dll|x64.Build.0 = Release-dll|x64 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Debug|Win32.ActiveCfg = Debug|Win32 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Debug|Win32.Build.0 = Debug|Win32 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Debug|x64.ActiveCfg = Debug|x64 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Debug|x64.Build.0 = Debug|x64 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Debug-dll|Win32.ActiveCfg = debug-dll|Win32 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Debug-dll|Win32.Build.0 = debug-dll|Win32 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Debug-dll|x64.ActiveCfg = debug-dll|x64 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Debug-dll|x64.Build.0 = debug-dll|x64 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Release|Win32.ActiveCfg = Release|Win32 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Release|Win32.Build.0 = Release|Win32 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Release|x64.ActiveCfg = Release|x64 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Release|x64.Build.0 = Release|x64 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Release-dll|Win32.ActiveCfg = Release-dll|Win32 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Release-dll|Win32.Build.0 = Release-dll|Win32 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Release-dll|x64.ActiveCfg = Release-dll|x64 + {3AC169DA-E156-4D16-95DF-73D7302A5606}.Release-dll|x64.Build.0 = Release-dll|x64 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Debug|Win32.ActiveCfg = Debug|Win32 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Debug|Win32.Build.0 = Debug|Win32 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Debug|x64.ActiveCfg = Debug|x64 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Debug|x64.Build.0 = Debug|x64 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Debug-dll|Win32.ActiveCfg = Debug|Win32 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Debug-dll|Win32.Build.0 = Debug|Win32 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Debug-dll|x64.ActiveCfg = Debug|x64 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Debug-dll|x64.Build.0 = Debug|x64 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Release|Win32.ActiveCfg = Release|Win32 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Release|Win32.Build.0 = Release|Win32 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Release|x64.ActiveCfg = Release|x64 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Release|x64.Build.0 = Release|x64 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Release-dll|Win32.ActiveCfg = Release|Win32 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Release-dll|Win32.Build.0 = Release|Win32 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Release-dll|x64.ActiveCfg = Release|x64 + {46219A32-8178-41C1-B3B1-B5A6E547515F}.Release-dll|x64.Build.0 = Release|x64 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Debug|Win32.ActiveCfg = Debug|Win32 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Debug|Win32.Build.0 = Debug|Win32 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Debug|x64.ActiveCfg = Debug|x64 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Debug|x64.Build.0 = Debug|x64 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Debug-dll|Win32.ActiveCfg = Debug|Win32 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Debug-dll|x64.ActiveCfg = Debug|x64 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Release|Win32.ActiveCfg = Release|Win32 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Release|Win32.Build.0 = Release|Win32 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Release|x64.ActiveCfg = Release|x64 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Release|x64.Build.0 = Release|x64 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Release-dll|Win32.ActiveCfg = Release|Win32 + {BC090130-2C53-4CF6-8AD4-37BF72B8D01A}.Release-dll|x64.ActiveCfg = Release|x64 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Debug|Win32.ActiveCfg = Debug|Win32 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Debug|Win32.Build.0 = Debug|Win32 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Debug|x64.ActiveCfg = Debug|x64 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Debug|x64.Build.0 = Debug|x64 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Debug-dll|Win32.ActiveCfg = Debug|Win32 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Debug-dll|x64.ActiveCfg = Debug|x64 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Release|Win32.ActiveCfg = Release|Win32 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Release|Win32.Build.0 = Release|Win32 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Release|x64.ActiveCfg = Release|x64 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Release|x64.Build.0 = Release|x64 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Release-dll|Win32.ActiveCfg = Release|Win32 + {DE1F395D-4F53-42FB-8AEF-993A4BF7E411}.Release-dll|x64.ActiveCfg = Release|x64 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Debug|Win32.ActiveCfg = Debug|Win32 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Debug|Win32.Build.0 = Debug|Win32 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Debug|x64.ActiveCfg = Debug|x64 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Debug|x64.Build.0 = Debug|x64 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Debug-dll|Win32.ActiveCfg = Debug|Win32 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Debug-dll|x64.ActiveCfg = Debug|x64 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Release|Win32.ActiveCfg = Release|Win32 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Release|Win32.Build.0 = Release|Win32 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Release|x64.ActiveCfg = Release|x64 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Release|x64.Build.0 = Release|x64 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Release-dll|Win32.ActiveCfg = Release|Win32 + {18ABC652-AB11-4993-9491-1A7FB7117339}.Release-dll|x64.ActiveCfg = Release|x64 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Debug|Win32.ActiveCfg = Debug|Win32 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Debug|Win32.Build.0 = Debug|Win32 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Debug|x64.ActiveCfg = Debug|x64 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Debug|x64.Build.0 = Debug|x64 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Debug-dll|Win32.ActiveCfg = Debug|Win32 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Debug-dll|x64.ActiveCfg = Debug|x64 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Release|Win32.ActiveCfg = Release|Win32 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Release|Win32.Build.0 = Release|Win32 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Release|x64.ActiveCfg = Release|x64 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Release|x64.Build.0 = Release|x64 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Release-dll|Win32.ActiveCfg = Release|Win32 + {98EE9884-A4EB-4C75-A911-DFEDF992754F}.Release-dll|x64.ActiveCfg = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8A5D77A4-7683-4395-84D4-9A22BD625E52} + EndGlobalSection +EndGlobal diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj b/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj new file mode 100644 index 000000000000..13d34ab12aca --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj @@ -0,0 +1,462 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-dll|Win32"> + <Configuration>Debug-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-dll|x64"> + <Configuration>Debug-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|Win32"> + <Configuration>Release-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|x64"> + <Configuration>Release-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{7F500891-CC76-405F-933F-F682BC39F923}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>ref_trace_decode_lib</RootNamespace> + <ProjectName>opencsd_lib</ProjectName> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <EnableASAN>true</EnableASAN> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\opencsd.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <TargetName>lib$(LIB_BASE_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <TargetName>lib$(LIB_BASE_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>lib$(LIB_BASE_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>lib$(LIB_BASE_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>lib$(LIB_BASE_NAME)</TargetName> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>lib$(LIB_BASE_NAME)</TargetName> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + <TargetName>lib$(LIB_BASE_NAME)</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + <TargetName>lib$(LIB_BASE_NAME)</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + <BasicRuntimeChecks>UninitializedLocalUsageCheck</BasicRuntimeChecks> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions);</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions);</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="..\..\..\..\HOWTO.md" /> + <None Include="..\..\..\..\LICENSE" /> + <None Include="..\..\..\..\README.md" /> + <None Include="..\..\..\..\TODO" /> + <None Include="..\..\..\docs\build_libs.md" /> + <None Include="..\..\..\docs\external_custom.md" /> + <None Include="..\..\..\docs\man\trc_pkt_lister.1" /> + <None Include="..\..\..\docs\test_progs.md" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\include\common\comp_attach_notifier_i.h" /> + <ClInclude Include="..\..\..\include\common\comp_attach_pt_t.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_code_follower.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_dcd_mngr.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_dcd_mngr_i.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_dcd_tree.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_dcd_tree_elem.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_error.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_error_logger.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_gen_elem_list.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_gen_elem_stack.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_lib_dcd_register.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_msg_logger.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_pe_context.h" /> + <ClInclude Include="..\..\..\include\common\ocsd_version.h" /> + <ClInclude Include="..\..\..\include\common\trc_component.h" /> + <ClInclude Include="..\..\..\include\common\trc_core_arch_map.h" /> + <ClInclude Include="..\..\..\include\common\trc_cs_config.h" /> + <ClInclude Include="..\..\..\include\common\trc_frame_deformatter.h" /> + <ClInclude Include="..\..\..\include\common\trc_gen_elem.h" /> + <ClInclude Include="..\..\..\include\common\trc_pkt_decode_base.h" /> + <ClInclude Include="..\..\..\include\common\trc_pkt_elem_base.h" /> + <ClInclude Include="..\..\..\include\common\trc_pkt_proc_base.h" /> + <ClInclude Include="..\..\..\include\common\trc_printable_elem.h" /> + <ClInclude Include="..\..\..\include\common\trc_ret_stack.h" /> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_cache.h" /> + <ClInclude Include="..\..\..\include\opencsd\ete\ete_decoder.h" /> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_cmp_cfg_ete.h" /> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_dcd_mngr_ete.h" /> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_pkt_types_ete.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv3\etmv3_decoder.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_cmp_cfg_etmv3.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_dcd_mngr_etmv3.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_pkt_decode_etmv3.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_pkt_elem_etmv3.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_pkt_proc_etmv3.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_pkt_types_etmv3.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\etmv4_decoder.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_cmp_cfg_etmv4.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_dcd_mngr_etmv4i.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_etmv4_stack_elem.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_decode_etmv4i.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_elem_etmv4d.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_elem_etmv4i.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_proc_etmv4.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_proc_etmv4i.h" /> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_types_etmv4.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_abs_typed_base_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_data_rawframe_in_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_data_raw_in_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_error_log_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_gen_elem_in_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_indexer_pkt_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_indexer_src_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_instr_decode_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_pkt_in_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_pkt_raw_in_i.h" /> + <ClInclude Include="..\..\..\include\interfaces\trc_tgt_mem_access_i.h" /> + <ClInclude Include="..\..\..\include\i_dec\trc_idec_arminst.h" /> + <ClInclude Include="..\..\..\include\i_dec\trc_i_decode.h" /> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc.h" /> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_base.h" /> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_bufptr.h" /> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_cb.h" /> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_cb_if.h" /> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_file.h" /> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_mapper.h" /> + <ClInclude Include="..\..\..\include\opencsd\ocsd_if_types.h" /> + <ClInclude Include="..\..\..\include\opencsd.h" /> + <ClInclude Include="..\..\..\include\opencsd\ocsd_if_version.h" /> + <ClInclude Include="..\..\..\include\pkt_printers\gen_elem_printer.h" /> + <ClInclude Include="..\..\..\include\pkt_printers\item_printer.h" /> + <ClInclude Include="..\..\..\include\pkt_printers\pkt_printer_t.h" /> + <ClInclude Include="..\..\..\include\pkt_printers\raw_frame_printer.h" /> + <ClInclude Include="..\..\..\include\pkt_printers\trc_pkt_printers.h" /> + <ClInclude Include="..\..\..\include\pkt_printers\trc_print_fact.h" /> + <ClInclude Include="..\..\..\include\opencsd\ptm\ptm_decoder.h" /> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_cmp_cfg_ptm.h" /> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_dcd_mngr_ptm.h" /> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_pkt_decode_ptm.h" /> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_pkt_elem_ptm.h" /> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_pkt_proc_ptm.h" /> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_pkt_types_ptm.h" /> + <ClInclude Include="..\..\..\include\opencsd\stm\stm_decoder.h" /> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_cmp_cfg_stm.h" /> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_dcd_mngr_stm.h" /> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_pkt_decode_stm.h" /> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_pkt_elem_stm.h" /> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_pkt_proc_stm.h" /> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_pkt_types_stm.h" /> + <ClInclude Include="..\..\..\include\opencsd\trc_gen_elem_types.h" /> + <ClInclude Include="..\..\..\include\opencsd\trc_pkt_types.h" /> + <ClInclude Include="..\..\..\source\etmv3\trc_pkt_proc_etmv3_impl.h" /> + <ClInclude Include="..\..\..\source\trc_frame_deformatter_impl.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\ete\trc_cmp_cfg_ete.cpp" /> + <ClCompile Include="..\..\..\source\etmv3\trc_cmp_cfg_etmv3.cpp" /> + <ClCompile Include="..\..\..\source\etmv3\trc_pkt_decode_etmv3.cpp" /> + <ClCompile Include="..\..\..\source\etmv3\trc_pkt_elem_etmv3.cpp" /> + <ClCompile Include="..\..\..\source\etmv3\trc_pkt_proc_etmv3.cpp" /> + <ClCompile Include="..\..\..\source\etmv3\trc_pkt_proc_etmv3_impl.cpp" /> + <ClCompile Include="..\..\..\source\etmv4\trc_cmp_cfg_etmv4.cpp" /> + <ClCompile Include="..\..\..\source\etmv4\trc_etmv4_stack_elem.cpp" /> + <ClCompile Include="..\..\..\source\etmv4\trc_pkt_decode_etmv4i.cpp" /> + <ClCompile Include="..\..\..\source\etmv4\trc_pkt_elem_etmv4i.cpp" /> + <ClCompile Include="..\..\..\source\etmv4\trc_pkt_proc_etmv4i.cpp" /> + <ClCompile Include="..\..\..\source\i_dec\trc_idec_arminst.cpp" /> + <ClCompile Include="..\..\..\source\i_dec\trc_i_decode.cpp" /> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_base.cpp" /> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_bufptr.cpp" /> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_cache.cpp" /> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_cb.cpp" /> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_file.cpp" /> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_mapper.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_code_follower.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_dcd_tree.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_error.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_error_logger.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_gen_elem_list.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_gen_elem_stack.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_lib_dcd_register.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_msg_logger.cpp" /> + <ClCompile Include="..\..\..\source\ocsd_version.cpp" /> + <ClCompile Include="..\..\..\source\pkt_printers\raw_frame_printer.cpp" /> + <ClCompile Include="..\..\..\source\pkt_printers\trc_print_fact.cpp" /> + <ClCompile Include="..\..\..\source\ptm\trc_cmp_cfg_ptm.cpp" /> + <ClCompile Include="..\..\..\source\ptm\trc_pkt_decode_ptm.cpp" /> + <ClCompile Include="..\..\..\source\ptm\trc_pkt_elem_ptm.cpp" /> + <ClCompile Include="..\..\..\source\ptm\trc_pkt_proc_ptm.cpp" /> + <ClCompile Include="..\..\..\source\stm\trc_pkt_decode_stm.cpp" /> + <ClCompile Include="..\..\..\source\stm\trc_pkt_elem_stm.cpp" /> + <ClCompile Include="..\..\..\source\stm\trc_pkt_proc_stm.cpp" /> + <ClCompile Include="..\..\..\source\trc_component.cpp" /> + <ClCompile Include="..\..\..\source\trc_core_arch_map.cpp" /> + <ClCompile Include="..\..\..\source\trc_frame_deformatter.cpp" /> + <ClCompile Include="..\..\..\source\trc_gen_elem.cpp" /> + <ClCompile Include="..\..\..\source\trc_printable_elem.cpp" /> + <ClCompile Include="..\..\..\source\trc_ret_stack.cpp" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj.filters b/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj.filters new file mode 100644 index 000000000000..47e9a3a64097 --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/ref_trace_decode_lib.vcxproj.filters @@ -0,0 +1,515 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + <Filter Include="interfaces"> + <UniqueIdentifier>{80012968-9f0d-4623-901a-c2fa5f1c0890}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\etmv3"> + <UniqueIdentifier>{98cd2a71-b44f-4884-bb8a-56c851cc8321}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\etmv4"> + <UniqueIdentifier>{dd155712-7990-4cdd-b9b0-299d97f625e4}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\ptm"> + <UniqueIdentifier>{9ec501e2-9ba4-4bad-a3d3-cdb604cc38b4}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\mem_acc"> + <UniqueIdentifier>{23a35c62-e38f-43f6-a03b-6f1287478a69}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\i_dec"> + <UniqueIdentifier>{f550018a-8974-4f8b-975a-bd8b86ae418f}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\stm"> + <UniqueIdentifier>{2c796b59-81f6-49c9-88cf-e90ed2e741a3}</UniqueIdentifier> + </Filter> + <Filter Include="docs-files"> + <UniqueIdentifier>{5ea7e02d-0667-4d2d-8c3d-039daf112edc}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\ptm"> + <UniqueIdentifier>{2aa8a97b-13da-4bd1-bdb5-02f3e1cf030b}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\etmv4"> + <UniqueIdentifier>{ff9157b6-ef07-41e4-8ff4-322c50ea6665}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\etmv3"> + <UniqueIdentifier>{0c2ba881-cc82-4567-ab59-d2363b4c3d1b}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\stm"> + <UniqueIdentifier>{73a56760-b7ff-4d56-88f0-13249201081c}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\i_dec"> + <UniqueIdentifier>{cb3682ee-abbd-44c3-a175-4522d76e2d68}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\mem_acc"> + <UniqueIdentifier>{eb9beab1-99c6-4eaa-88c0-893b05b2e673}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\common"> + <UniqueIdentifier>{58d2398e-efdd-45d9-b7be-fc6096f3bec2}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\pkt_printers"> + <UniqueIdentifier>{0e6e1f5d-465e-4f91-88a3-479952bbd316}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\pkt_printers"> + <UniqueIdentifier>{baf047d0-0ff7-4502-b42b-4f1fda94d54b}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files\ete"> + <UniqueIdentifier>{3d119e90-c89b-4f27-8163-305924453e1f}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\ete"> + <UniqueIdentifier>{8cfdb19c-28fc-4e79-b8d5-4e54907b1f82}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="..\..\..\..\LICENSE"> + <Filter>docs-files</Filter> + </None> + <None Include="..\..\..\..\README.md"> + <Filter>docs-files</Filter> + </None> + <None Include="..\..\..\..\TODO"> + <Filter>docs-files</Filter> + </None> + <None Include="..\..\..\docs\build_libs.md"> + <Filter>docs-files</Filter> + </None> + <None Include="..\..\..\docs\test_progs.md"> + <Filter>docs-files</Filter> + </None> + <None Include="..\..\..\..\HOWTO.md"> + <Filter>docs-files</Filter> + </None> + <None Include="..\..\..\docs\external_custom.md"> + <Filter>docs-files</Filter> + </None> + <None Include="..\..\..\docs\man\trc_pkt_lister.1"> + <Filter>docs-files</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\source\trc_frame_deformatter_impl.h"> + <Filter>Source Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_tgt_mem_access_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_pkt_raw_in_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_pkt_in_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_instr_decode_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_indexer_src_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_indexer_pkt_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_gen_elem_in_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_error_log_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_data_raw_in_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_data_rawframe_in_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv3\etmv3_decoder.h"> + <Filter>Header Files\etmv3</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_pkt_elem_etmv3.h"> + <Filter>Header Files\etmv3</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_cmp_cfg_etmv3.h"> + <Filter>Header Files\etmv3</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_pkt_proc_etmv3.h"> + <Filter>Header Files\etmv3</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_pkt_types_etmv3.h"> + <Filter>Header Files\etmv3</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_proc_etmv4.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_types_etmv4.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_elem_etmv4d.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_elem_etmv4i.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_cmp_cfg_etmv4.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\etmv4_decoder.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_pkt_elem_ptm.h"> + <Filter>Header Files\ptm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_cmp_cfg_ptm.h"> + <Filter>Header Files\ptm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_pkt_types_ptm.h"> + <Filter>Header Files\ptm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_pkt_proc_ptm.h"> + <Filter>Header Files\ptm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ptm\ptm_decoder.h"> + <Filter>Header Files\ptm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_base.h"> + <Filter>Header Files\mem_acc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_file.h"> + <Filter>Header Files\mem_acc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_bufptr.h"> + <Filter>Header Files\mem_acc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_mapper.h"> + <Filter>Header Files\mem_acc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\i_dec\trc_idec_arminst.h"> + <Filter>Header Files\i_dec</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\i_dec\trc_i_decode.h"> + <Filter>Header Files\i_dec</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_decode_etmv4i.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc.h"> + <Filter>Header Files\mem_acc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\stm\stm_decoder.h"> + <Filter>Header Files\stm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_pkt_elem_stm.h"> + <Filter>Header Files\stm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_cmp_cfg_stm.h"> + <Filter>Header Files\stm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_pkt_proc_stm.h"> + <Filter>Header Files\stm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_pkt_types_stm.h"> + <Filter>Header Files\stm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_pkt_decode_etmv3.h"> + <Filter>Header Files\etmv3</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_cb_if.h"> + <Filter>Header Files\mem_acc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_cb.h"> + <Filter>Header Files\mem_acc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_pkt_decode_ptm.h"> + <Filter>Header Files\ptm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\source\etmv3\trc_pkt_proc_etmv3_impl.h"> + <Filter>Source Files\etmv3</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\comp_attach_notifier_i.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\comp_attach_pt_t.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_dcd_tree.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_dcd_tree_elem.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_error.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_error_logger.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_msg_logger.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_version.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_component.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_core_arch_map.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_frame_deformatter.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_gen_elem.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_pkt_decode_base.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_pkt_proc_base.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_printable_elem.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_pe_context.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_code_follower.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_gen_elem_list.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_cs_config.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_dcd_mngr.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_dcd_mngr_i.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_lib_dcd_register.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\interfaces\trc_abs_typed_base_i.h"> + <Filter>interfaces</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_dcd_mngr_etmv4i.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv3\trc_dcd_mngr_etmv3.h"> + <Filter>Source Files\etmv3</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ptm\trc_dcd_mngr_ptm.h"> + <Filter>Header Files\ptm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_dcd_mngr_stm.h"> + <Filter>Header Files\stm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_pkt_elem_base.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\stm\trc_pkt_decode_stm.h"> + <Filter>Header Files\stm</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\pkt_printers\gen_elem_printer.h"> + <Filter>Header Files\pkt_printers</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\pkt_printers\item_printer.h"> + <Filter>Header Files\pkt_printers</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\pkt_printers\pkt_printer_t.h"> + <Filter>Header Files\pkt_printers</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\pkt_printers\raw_frame_printer.h"> + <Filter>Header Files\pkt_printers</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\pkt_printers\trc_pkt_printers.h"> + <Filter>Header Files\pkt_printers</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\pkt_printers\trc_print_fact.h"> + <Filter>Header Files\pkt_printers</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\trc_ret_stack.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_etmv4_stack_elem.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ocsd_if_types.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\trc_gen_elem_types.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\trc_pkt_types.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\mem_acc\trc_mem_acc_cache.h"> + <Filter>Header Files\mem_acc</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ocsd_if_version.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\common\ocsd_gen_elem_stack.h"> + <Filter>Header Files\common</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_pkt_types_ete.h"> + <Filter>Header Files\ete</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_cmp_cfg_ete.h"> + <Filter>Header Files\ete</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ete\trc_dcd_mngr_ete.h"> + <Filter>Header Files\ete</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\ete\ete_decoder.h"> + <Filter>Header Files\ete</Filter> + </ClInclude> + <ClInclude Include="..\..\..\include\opencsd\etmv4\trc_pkt_proc_etmv4i.h"> + <Filter>Header Files\etmv4</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\trc_component.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\trc_frame_deformatter.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\trc_core_arch_map.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\trc_printable_elem.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\trc_gen_elem.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ptm\trc_pkt_decode_ptm.cpp"> + <Filter>Source Files\ptm</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ptm\trc_pkt_elem_ptm.cpp"> + <Filter>Source Files\ptm</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ptm\trc_pkt_proc_ptm.cpp"> + <Filter>Source Files\ptm</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv4\trc_pkt_elem_etmv4i.cpp"> + <Filter>Source Files\etmv4</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv4\trc_pkt_decode_etmv4i.cpp"> + <Filter>Source Files\etmv4</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv3\trc_pkt_elem_etmv3.cpp"> + <Filter>Source Files\etmv3</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv3\trc_pkt_decode_etmv3.cpp"> + <Filter>Source Files\etmv3</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv3\trc_cmp_cfg_etmv3.cpp"> + <Filter>Source Files\etmv3</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv3\trc_pkt_proc_etmv3.cpp"> + <Filter>Source Files\etmv3</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv3\trc_pkt_proc_etmv3_impl.cpp"> + <Filter>Source Files\etmv3</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv4\trc_cmp_cfg_etmv4.cpp"> + <Filter>Source Files\etmv4</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ptm\trc_cmp_cfg_ptm.cpp"> + <Filter>Source Files\ptm</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\stm\trc_pkt_proc_stm.cpp"> + <Filter>Source Files\stm</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\stm\trc_pkt_elem_stm.cpp"> + <Filter>Source Files\stm</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\i_dec\trc_i_decode.cpp"> + <Filter>Source Files\i_dec</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\i_dec\trc_idec_arminst.cpp"> + <Filter>Source Files\i_dec</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_base.cpp"> + <Filter>Source Files\mem_acc</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_mapper.cpp"> + <Filter>Source Files\mem_acc</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_bufptr.cpp"> + <Filter>Source Files\mem_acc</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_cb.cpp"> + <Filter>Source Files\mem_acc</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_file.cpp"> + <Filter>Source Files\mem_acc</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_dcd_tree.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_error.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_error_logger.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_msg_logger.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_version.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_code_follower.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_gen_elem_list.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_lib_dcd_register.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\stm\trc_pkt_decode_stm.cpp"> + <Filter>Source Files\stm</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\pkt_printers\raw_frame_printer.cpp"> + <Filter>Source Files\pkt_printers</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\pkt_printers\trc_print_fact.cpp"> + <Filter>Source Files\pkt_printers</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\trc_ret_stack.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv4\trc_etmv4_stack_elem.cpp"> + <Filter>Source Files\etmv4</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\mem_acc\trc_mem_acc_cache.cpp"> + <Filter>Source Files\mem_acc</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\etmv4\trc_pkt_proc_etmv4i.cpp"> + <Filter>Source Files\etmv4</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ocsd_gen_elem_stack.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\source\ete\trc_cmp_cfg_ete.cpp"> + <Filter>Source Files\ete</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/x64/Release/libopencsd.lib.recipe b/decoder/build/win-vs2022/ref_trace_decode_lib/x64/Release/libopencsd.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/x64/Release/libopencsd.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/build/win-vs2022/ref_trace_decode_lib/x64/Release/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt b/decoder/build/win-vs2022/ref_trace_decode_lib/x64/Release/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/build/win-vs2022/ref_trace_decode_lib/x64/Release/ref_trace_decode_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/docs/build_libs.md b/decoder/docs/build_libs.md index dc7d85da9401..e3435a2a941c 100644 --- a/decoder/docs/build_libs.md +++ b/decoder/docs/build_libs.md @@ -18,7 +18,7 @@ Building the Library -------------------- The library and test programs are built from the library `./build/<platform>` directory, where -<platform> is either 'linux' or 'win-vs2015' +<platform> is either 'linux' or 'win-vs2015' / 'win-vs2022' See [`./docs/test_progs.md`](@ref test_progs) for further information on use of the test programs. @@ -86,6 +86,12 @@ The test programs are built to used the .so versions of the libraries. The test program build for `trc_pkt_lister` also builds an auxiliary library used by this program for test purposes only. This is the `libsnapshot_parser.a` library, delivered to the `./tests/lib/<tgt_dir>` directories. +**Note on Linux Build Directory Names** + +Due to tool limitations, the makefiles will not operate correctly if the path to the opencsd directories contains spaces. + +e.g. checking out the project into a directory such as ` /home/name/my opencsd/` will result in build failures. + __Installing on Linux__ The libraries can be installed on linux using the `make install` command. This will usually require root privileges. Installation will be the version in the `./lib/<tgt_dir>` directory, according to options chosen. diff --git a/decoder/docs/doxygen_config.dox b/decoder/docs/doxygen_config.dox index 3913d3ac5ea5..7590e47a7561 100644 --- a/decoder/docs/doxygen_config.dox +++ b/decoder/docs/doxygen_config.dox @@ -38,7 +38,7 @@ PROJECT_NAME = "OpenCSD - CoreSight Trace Decode Library" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.14.2 +PROJECT_NUMBER = 1.4.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -805,7 +805,8 @@ INPUT = ../include \ ./prog_guide \ ../include/opencsd \ ../include \ - ../tests/auto-fdo/autofdo.md + ../tests/auto-fdo/autofdo.md \ + ../include/opencsd/ete # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses diff --git a/decoder/docs/man/trc_pkt_lister.1 b/decoder/docs/man/trc_pkt_lister.1 new file mode 100644 index 000000000000..a2e26790d5f5 --- /dev/null +++ b/decoder/docs/man/trc_pkt_lister.1 @@ -0,0 +1,127 @@ +.\" Hey, EMACS: -*- nroff -*- +.TH TRC_PKT_LISTER 1 "2018-03-28" + +.SH NAME +trc_pkt_lister \- decodes captured CoreSight\*R trace +.SH SYNOPSIS +.RI trc_pkt_lister +[ \-ss_dir \fI<dir>\fP ] +[ -ss_verbose ] +[ \-id \fI<n>\fP ] +[ \-src_name \fI<name>\fP ] +[ \-decode ] +[ \-decode_only ] +[ \-src_addr_n ] +[ \-o_raw_packed ] +[ \-o_raw_unpacked ] +[ \-logstdout ] +[ \-logstderr ] +[ \-logfile ] +[ \-logfilename \fI<name>\fP ] +.br +.SH DESCRIPTION +.B trc_pkt_lister +is a tool that takes a snapshot directory as an input, and lists and/or +decodes all the trace packets for a single source, for any currently +supported protocol. +.PP +The output will be a list of discrete packets, generic output packets +and any error messages to file and/or screen as selected by the input +command line options. +.PP +By default the program will list packets only (no decode), for the +first discovered trace sink (ETB, ETF, ETR) in the snapshot directory, +with all streams output. +.SH OPTIONS +.SS Snapshot selection +The program defaults to \./ if no \-ss_dir option is given +.TP +.B \-ss\_dir <dir> +Set the directory path to a trace snapshot. +.TP +\fB\fC\-ss\_verbose\fR +Verbose output when reading the snapshot. +.SS Decode options +.TP +.B \-id <n> +Set an ID to list (may be used multiple times) \- default if no id set is for all IDs to be printed. +.TP +.B \-src\_name <name> +List packets from a given snapshot source name (defaults to first source found). +.TP +.B \-decode +Full decode of the packets from the trace snapshot (default is to list undecoded packets only. +.TP +.B \-decode_only +Does not list the undecoded packets, just the trace decode. +.TP +.B \-src\_addr\_n +In ETE protocol, indicate skipped N atoms in source address packet ranges by breaking the decode +range into multiple ranges on N atoms. +.TP +.B \-o\_raw\_packed +Output raw packed trace frames. +.TP +.B \-o\_raw\_unpacked +Output raw unpacked trace data per ID. +.SS Output options +Default is to output to file and stdout. Setting any option overrides and limits to only +the options set. +.TP +.B \-logstdout +output to stdout. +.TP +.B \-logstderr +output to stderr. +.TP +.B \-logfile +output to file using the default log file name. +.TP +.B \-logfilename <name> +change the name of the output log file. +.SH FILES +.B Trace Snapshot directory. +.PP +The \fR./tests/snapshots\fP directory contains a number of trace +snapshots used for testing the library. Trace snapshots are dumps of +captured binary trace data, CoreSight component configurations and +memory dumps to allow trace decode. +.PP +Snapshots are generated on ARM targets and can then be analysed +offline. The snapshot format is available in a separate document. +.SH EXAMPLE +Example command lines with short output excerpts. +.PP +.BI TC2 " ETMv3 packet processor output, raw packet output." +.br +Command line: +.br +.RI "trc\_pkt\_lister -ss\_dir ../../snapshots/TC2 -o_raw_unpacked" +.PP +Output: +.br +Frame Data; Index 17958; ID_DATA[0x11]; 16 04 c0 86 42 97 e1 c4 +.br +Idx:17945; ID:11; I_SYNC : Instruction Packet synchronisation.; (Periodic); Addr=0xc00 +416e2; S; ISA=Thumb2; +.br +Idx:17961; ID:11; P_HDR : Atom P-header.; WEN; Cycles=1 +.br +Frame Data; Index 17968; ID_DATA[0x11]; ce af 90 80 80 00 a4 84 a0 84 a4 88 +.br +Idx:17962; ID:11; TIMESTAMP : Timestamp Value.; TS=0x82f9d13097 (562536984727) +.br +Idx:17974; ID:11; P_HDR : Atom P-header.; WW; Cycles=2 +.PP +.BI Juno " ETB\_1 selected for STM packet output, raw packet output" +.br +Command line: +.br +.RI "trc\_pkt\_lister -ss\_dir ../../snapshots/juno_r1_1 -o\_raw\_unpacked -src\_name ETB\_1" +.PP +.BI Juno " ETMv4 full trace decode + packet monitor, source trace ID 0x10 only." +.br +Command line: +.br +.RI "trc\_pkt\_lister -ss\_dir ../../snapshots/juno\_r1\_1 -decode -id 0x10" + diff --git a/decoder/docs/prog_guide/prog_guide_generic_pkts.md b/decoder/docs/prog_guide/prog_guide_generic_pkts.md index e4d50b79fc80..aad15b847977 100644 --- a/decoder/docs/prog_guide/prog_guide_generic_pkts.md +++ b/decoder/docs/prog_guide/prog_guide_generic_pkts.md @@ -84,7 +84,11 @@ typedef struct _ocsd_generic_trace_elem { ocsd_swt_info_t sw_trace_info; /* software trace packet info */ uint32_t num_instr_range; /* number of instructions covered by range packet (for T32 this cannot be calculated from en-st/i_size) */ unsync_info_t unsync_eot_info; /* additional information for unsync / end-of-trace packets. */ - }; + trace_marker_payload_t sync_marker; /* marker element - sync later element to position in stream */ + trace_memtrans_t mem_trans; /* memory transaction packet - transaction event */ + trace_sw_ite_t sw_ite; /* PE sw instrumentation using FEAT_ITE */ + + }; const void *ptr_extended_data; /* pointer to extended data buffer (data trace, sw trace payload) / custom structure */ @@ -325,6 +329,58 @@ SW trace packets that have a payload will use the extended_data flag and pointer SW trace packets that include timestamp information will us the `has_ts` flag and fill in the timestamp value. +These packets are generated by memory writes to STM / ITM trace hardware. + +### OCSD_GEN_TRC_ELEM_SYNC_MARKER ### +__packet fields valid__: `sync_marker` + +Synchronisation marker - marks position in stream of an element that is output later. +e.g. a timestamp marker can be output to represent the correct position in the stream for a +timestamp packet the is output later. + +The `sync_marker` field has a structure as shown below. + +~~~{.c} +typedef enum _trace_sync_marker_t { + ELEM_MARKER_TS, /**< Marker for timestamp element */ +} trace_sync_marker_t; + +typedef struct _trace_marker_payload_t { + trace_sync_marker_t type; /**< type of sync marker */ + uint32_t value; /**< sync marker value - usage depends on type */ +} trace_marker_payload_t; +~~~ + +### OCSD_GEN_TRC_ELEM_MEMTRANS ### +__packet fields valid__: `mem_trans` + +Memory transaction elements may appear in the output stream, if they are not otherwise cancelled +by speculative trace packets. + +The memory transaction field has values as defined in the enum below:- + +~~~{.c} +typedef enum _memtrans_t { + OCSD_MEM_TRANS_TRACE_INIT,/* Trace started while PE in transactional state */ + OCSD_MEM_TRANS_START, /* Trace after this packet is part of a transactional memory sequence */ + OCSD_MEM_TRANS_COMMIT, /* Transactional memory sequence valid. */ + OCSD_MEM_TRANS_FAIL, /* Transactional memory sequence failed - operations since start of transaction have been unwound. */ +} trace_memtrans_t; +~~~ + +### OCSD_GEN_TRC_ELEM_INSTRUMENTATION ### +__packet fields valid__: `sw_ite` + +Software instrumentation packets generated by the PE `TRCIT` instruction (on cores with `FEAT_ITE`). + +The `sw_ite` structure has the fields defined below:- + +~~~{.c} +typedef struct _sw_ite_t { + uint8_t el; /* exception level for PE sw instrumentation instruction */ + uint64_t value; /* payload for PE sw instrumentation instruction */ +} trace_sw_ite_t; +~~~ ### OCSD_GEN_TRC_ELEM_CUSTOM ### __packet fields optional__: `extended_data -> ptr_extended_data`,_any others_ diff --git a/decoder/docs/prog_guide/prog_guide_main.md b/decoder/docs/prog_guide/prog_guide_main.md index 87afbf0225c6..9504bdc244d3 100644 --- a/decoder/docs/prog_guide/prog_guide_main.md +++ b/decoder/docs/prog_guide/prog_guide_main.md @@ -138,9 +138,17 @@ The error logger can be attached to an output logger - ocsdMsgLogger - which can error, or other error messages, out to screen or logging file. Errors can be filtered according to a severity rating, defined by @ref ocsd_err_severity_t. -The DecodeTree will use a default error logger from the library - with a message logger -that will output to `stderr`. Client applications can adjust the configuration of this error logger and -message logger, or provide their own configured error logger / message logger pair. +The DecodeTree can use a default error logger from the library - with a message logger that will output to `stderr`. + +Client applications can create and adjust the configuration of this error logger and message logger by getting and intialising + the logger. + +~~~{.cpp} + // ** Initialise default error logger. + DecodeTree::getDefaultErrorLogger()->initErrorLogger(verbosity,true); +~~~ + +Alternatively clients may provide their own configured error logger / message logger pair. The test program `trc_pkt_lister` provides a customised version of an `ocsdMsgLogger` / `ocsdDefaultErrorLogger` pair to ensure that messages and errors are logged to the screen and a file of its choice. This logger is eventually @@ -272,6 +280,7 @@ The different trace source types have different configuration structures, classe | protocol | config struct | class | name define | |:----------|:--------------------|:------------|:-----------------------------| +| __ETE__ | @ref ocsd_ete_cfg | ETEConfig | @ref OCSD_BUILTIN_DCD_ETE | | __ETMv4__ | @ref ocsd_etmv4_cfg | EtmV4Config | @ref OCSD_BUILTIN_DCD_ETMV4I | | __ETMv3__ | @ref ocsd_etmv3_cfg | EtmV3Config | @ref OCSD_BUILTIN_DCD_ETMV3 | | __PTM__ | @ref ocsd_ptm_cfg | PtmConfig | @ref OCSD_BUILTIN_DCD_PTM | @@ -300,15 +309,19 @@ types to be managed by a memory access mapper:- ~~~{.cpp} class DecodeTree { - ///... + // ... + ocsd_err_t createMemAccMapper(memacc_mapper_t type = MEMACC_MAP_GLOBAL); + // ... ocsd_err_t addBufferMemAcc(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t mem_space, const uint8_t *p_mem_buffer, const uint32_t mem_length); ocsd_err_t addBinFileMemAcc(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t mem_space, const std::string &filepath); ocsd_err_t addBinFileRegionMemAcc(const ocsd_file_mem_region_t *region_array, const int num_regions, const ocsd_mem_space_acc_t mem_space, const std::string &filepath); */ ocsd_err_t addCallbackMemAcc(const ocsd_vaddr_t st_address, const ocsd_vaddr_t en_address, const ocsd_mem_space_acc_t mem_space, Fn_MemAcc_CB p_cb_func, const void *p_context); - ///... + // ... } ~~~ +The `createMemAccMapper()` function must be called to create the mapper, before the `add...MemAcc()` calls are used. + It is further possible to differentiate between memory image access objects by the memory space for which they are valid. If it is known that a certain code image is present in secure EL3, then an image can be associated with the @ref ocsd_mem_space_acc_t type value @ref OCSD_MEM_SPACE_EL3, which will allow another image to be present at the same address but a different exception level. However, for the majority of systems, such detailed knowledge of the code is not available, or @@ -323,6 +336,7 @@ The C-API contains a similar set of calls to set up memory access objects:- OCSD_C_API ocsd_err_t ocsd_dt_add_callback_mem_acc(const dcd_tree_handle_t handle, const ocsd_vaddr_t st_address, const ocsd_vaddr_t en_address, const ocsd_mem_space_acc_t mem_space, Fn_MemAcc_CB p_cb_func, const void *p_context); ~~~ +Note that the C-API will automatically create a default mapper when the first memory access object is added. ### Adding the output callbacks ### diff --git a/decoder/docs/test_progs.md b/decoder/docs/test_progs.md index c02d02e96271..3af769244d0c 100644 --- a/decoder/docs/test_progs.md +++ b/decoder/docs/test_progs.md @@ -61,6 +61,8 @@ __Command Line Options__ - `-tpiu_hsync` : Input data is from a TPIU source that has both TPIU FSYNC and HSYNC packets present. - `-decode` : Full decode of the packets from the trace snapshot (default is to list undecoded packets only. - `-decode_only` : Does not list the undecoded packets, just the trace decode. +- `-src_addr_n` : ETE protocol; Indicate skipped N atoms in source address packet ranges by breaking the decode + range into multiple ranges on N atoms. - `-o_raw_packed` : Output raw packed trace frames. - `-o_raw_unpacked` : Output raw unpacked trace data per ID. diff --git a/decoder/include/common/ocsd_dcd_mngr.h b/decoder/include/common/ocsd_dcd_mngr.h index 3342eacb24ca..34c4ef1dc1c4 100644 --- a/decoder/include/common/ocsd_dcd_mngr.h +++ b/decoder/include/common/ocsd_dcd_mngr.h @@ -80,16 +80,16 @@ public: private: - ocsd_trace_protocol_t m_builtInProtocol; //!< Protocol ID if built in type. + const ocsd_trace_protocol_t m_builtInProtocol; //!< Protocol ID if built in type. }; template <class P, class Pt, class Pc> -DecoderMngrBase<P,Pt,Pc>::DecoderMngrBase(const std::string &decoderTypeName, ocsd_trace_protocol_t builtInProtocol) + DecoderMngrBase<P,Pt,Pc>::DecoderMngrBase(const std::string &decoderTypeName, ocsd_trace_protocol_t builtInProtocol) : + m_builtInProtocol(builtInProtocol) { OcsdLibDcdRegister *pDcdReg = OcsdLibDcdRegister::getDecoderRegister(); if(pDcdReg) pDcdReg->registerDecoderTypeByName(decoderTypeName,this); - m_builtInProtocol = builtInProtocol; } template <class P, class Pt, class Pc> @@ -362,6 +362,49 @@ public: } }; +/* full decode - extended config object - base + derived. */ +template< class P, // Packet class. + class Pt, // Packet enum type ID. + class Pc, // Processor config base class. + class PcEx, // Processor config derived class + class PcSt, // Processor config struct type + class PktProc, // Packet processor class. + class PktDcd> // Packet decoder class. + class DecodeMngrFullDcdExCfg : public DecoderMngrBase<P, Pt, Pc> +{ +public: + DecodeMngrFullDcdExCfg(const std::string &name, ocsd_trace_protocol_t builtInProtocol) + : DecoderMngrBase<P, Pt, Pc>(name, builtInProtocol) {}; + + virtual ~DecodeMngrFullDcdExCfg() {}; + + virtual TraceComponent *createPktProc(const bool useInstID, const int instID) + { + TraceComponent *pComp; + if (useInstID) + pComp = new (std::nothrow) PktProc(instID); + else + pComp = new (std::nothrow) PktProc(); + return pComp; + } + + virtual TraceComponent *createPktDecode(const bool useInstID, const int instID) + { + TraceComponent *pComp; + if (useInstID) + pComp = new (std::nothrow)PktDcd(instID); + else + pComp = new (std::nothrow)PktDcd(); + return pComp; + } + + virtual CSConfig *createConfig(const void *pDataStruct) + { + return new (std::nothrow) PcEx((PcSt *)pDataStruct); + } +}; + + /****************************************************************************************************/ /* Packet processor only, templated base for creating decoder objects */ /****************************************************************************************************/ diff --git a/decoder/include/common/ocsd_dcd_tree.h b/decoder/include/common/ocsd_dcd_tree.h index e4e74f2bc659..b1c3dc601cab 100644 --- a/decoder/include/common/ocsd_dcd_tree.h +++ b/decoder/include/common/ocsd_dcd_tree.h @@ -168,6 +168,30 @@ public: */ ocsd_err_t removeDecoder(const uint8_t CSID); + /*! + * Get the stats block for the channel indicated. + * Caller must check p_stats_block->version to esure that the block + * is filled in a compatible manner. + * + * @param CSID : Configured CoreSight trace ID for the decoder. + * @param p_stats_block: block pointer to set to reference the stats block. + * + * @return ocsd_err_t : Library error code - OCSD_OK if valid block pointer returned, + * OCSD_ERR_NOTINIT if decoder does not support stats counting. + */ + ocsd_err_t getDecoderStats(const uint8_t CSID, ocsd_decode_stats_t **p_stats_block); + + /*! + * Reset the stats block for the chosens decode channel. + * stats block is reset independently of the decoder reset to allow counts across + * multiple decode runs. + * + * @param handle : Handle to decode tree. + * @param CSID : Configured CoreSight trace ID for the decoder. + * + * @return ocsd_err_t : Library error code - OCSD_OK if successful. + */ + ocsd_err_t resetDecoderStats(const uint8_t CSID); /* get decoder elements currently in use */ @@ -387,7 +411,7 @@ private: void destroyMemAccMapper(); ocsd_err_t initCallbackMemAcc(const ocsd_vaddr_t st_address, const ocsd_vaddr_t en_address, const ocsd_mem_space_acc_t mem_space, void *p_cb_func, bool IDfn, const void *p_context); - + TrcPktProcI *getPktProcI(const uint8_t CSID); ocsd_dcd_tree_src_t m_dcd_tree_type; @@ -417,6 +441,9 @@ private: /**! default instruction decoder */ static TrcIDecode s_instruction_decoder; + + /**! demux stats block */ + ocsd_demux_stats_t m_demux_stats; }; /** @}*/ diff --git a/decoder/include/common/ocsd_error.h b/decoder/include/common/ocsd_error.h index e547f4878033..7c6ed3af141f 100644 --- a/decoder/include/common/ocsd_error.h +++ b/decoder/include/common/ocsd_error.h @@ -108,6 +108,17 @@ inline ocsdError& ocsdError::operator=(const ocsdError &err) return (*this = &err); } +/* class to get data path response values as strings */ +class ocsdDataRespStr +{ +public: + ocsdDataRespStr(ocsd_datapath_resp_t type) { m_type = type; } + ~ocsdDataRespStr() {}; + + const char* getStr(); +private: + ocsd_datapath_resp_t m_type; +}; /** @}*/ diff --git a/decoder/include/common/trc_core_arch_map.h b/decoder/include/common/trc_core_arch_map.h index b72b4b411fa4..aa976c39f908 100644 --- a/decoder/include/common/trc_core_arch_map.h +++ b/decoder/include/common/trc_core_arch_map.h @@ -53,7 +53,8 @@ * * Valid architecture profile names are:- * - ARMv7-A, ARMv7-R, ARMv7-M; - * - ARMv8-A, ARMv8.3A, ARMv8-R, ARMv8-M; + * - ARMv8-A, ARMv8.x-A, ARMv8-R, ARMv8-M; + * - ARM-AA64, ARM-aa64 * */ class CoreArchProfileMap @@ -65,36 +66,12 @@ public: ocsd_arch_profile_t getArchProfile(const std::string &coreName); private: + ocsd_arch_profile_t getPatternMatchCoreName(const std::string &coreName); std::map<std::string, ocsd_arch_profile_t> core_profiles; std::map<std::string, ocsd_arch_profile_t> arch_profiles; }; -inline ocsd_arch_profile_t CoreArchProfileMap::getArchProfile(const std::string &coreName) -{ - ocsd_arch_profile_t ap = { ARCH_UNKNOWN, profile_Unknown }; - bool bFound = false; - - std::map<std::string, ocsd_arch_profile_t>::const_iterator it; - - /* match against the core name map. */ - it = core_profiles.find(coreName); - if (it != core_profiles.end()) - { - ap = it->second; - bFound = true; - } - - /* scan architecture profiles on no core name match */ - if (!bFound) - { - it = arch_profiles.find(coreName); - if (it != arch_profiles.end()) - ap = it->second; - } - return ap; -} - #endif // ARM_TRC_CORE_ARCH_MAP_H_INCLUDED /* End of File trc_core_arch_map.h */ diff --git a/decoder/include/common/trc_frame_deformatter.h b/decoder/include/common/trc_frame_deformatter.h index e4297a41e8fd..cb2960fcdd07 100644 --- a/decoder/include/common/trc_frame_deformatter.h +++ b/decoder/include/common/trc_frame_deformatter.h @@ -73,6 +73,9 @@ public: componentAttachPt<ITraceErrorLog> *getErrLogAttachPt(); + /* init decoder implementation object */ + ocsd_err_t Init(); + /* configuration - set operational mode for incoming stream (has FSYNCS etc) */ ocsd_err_t Configure(uint32_t cfg_flags); const uint32_t getConfigFlags() const; @@ -85,9 +88,13 @@ public: ocsd_datapath_resp_t Reset(); /* reset the decode to the start state, drop partial data - propogate to attached components */ ocsd_datapath_resp_t Flush(); /* flush existing data if possible, retain state - propogate to attached components */ + /* demux stats */ + void SetDemuxStatsBlock(ocsd_demux_stats_t *pStatsBlock); + private: TraceFmtDcdImpl *m_pDecoder; int m_instNum; + }; /** @}*/ diff --git a/decoder/include/common/trc_gen_elem.h b/decoder/include/common/trc_gen_elem.h index 5d8983a8c274..405abfef8341 100644 --- a/decoder/include/common/trc_gen_elem.h +++ b/decoder/include/common/trc_gen_elem.h @@ -69,19 +69,22 @@ public: void setExcepMarker() { excep_data_marker = 1; }; void setExceptionNum(uint32_t excepNum) { exception_number = excepNum; }; - - void setTraceOnReason(const trace_on_reason_t reason); void setUnSyncEOTReason(const unsync_info_t reason); + void setTransactionType(const trace_memtrans_t trans) { mem_trans = trans; }; void setAddrRange(const ocsd_vaddr_t st_addr, const ocsd_vaddr_t en_addr, const int num_instr = 1); void setLastInstrInfo(const bool exec, const ocsd_instr_type last_i_type, const ocsd_instr_subtype last_i_subtype, const uint8_t size); - void setAddrStart(const ocsd_vaddr_t st_addr) { this->st_addr = st_addr; }; + void setAddrStart(const ocsd_vaddr_t st_addr) { this->st_addr = st_addr; }; void setLastInstrCond(const int is_cond) { this->last_instr_cond = is_cond; }; void setSWTInfo(const ocsd_swt_info_t swt_info) { sw_trace_info = swt_info; }; void setExtendedDataPtr(const void *data_ptr); + void setITEInfo(const trace_sw_ite_t sw_instrumentation) { sw_ite = sw_instrumentation; }; + + void setSyncMarker(const trace_marker_payload_t &marker); + // stringize the element virtual void toString(std::string &str) const; @@ -208,6 +211,11 @@ inline void OcsdTraceElement::setExtendedDataPtr(const void *data_ptr) ptr_extended_data = data_ptr; } +inline void OcsdTraceElement::setSyncMarker(const trace_marker_payload_t &marker) +{ + sync_marker = marker; +} + // set persistent data between output packets. inline void OcsdTraceElement::copyPersistentData(const OcsdTraceElement &src) { diff --git a/decoder/include/common/trc_pkt_decode_base.h b/decoder/include/common/trc_pkt_decode_base.h index da702068f372..24ea2b05a6f9 100644 --- a/decoder/include/common/trc_pkt_decode_base.h +++ b/decoder/include/common/trc_pkt_decode_base.h @@ -96,6 +96,7 @@ protected: /* target access */ ocsd_err_t accessMemory(const ocsd_vaddr_t address, const ocsd_mem_space_acc_t mem_space, uint32_t *num_bytes, uint8_t *p_buffer); + ocsd_err_t invalidateMemAccCache(); /* instruction decode */ ocsd_err_t instrDecode(ocsd_instr_info *instr_info); @@ -180,6 +181,14 @@ inline ocsd_err_t TrcPktDecodeI::accessMemory(const ocsd_vaddr_t address, const return OCSD_ERR_DCD_INTERFACE_UNUSED; } +inline ocsd_err_t TrcPktDecodeI::invalidateMemAccCache() +{ + if (!m_uses_memaccess) + return OCSD_ERR_DCD_INTERFACE_UNUSED; + m_mem_access.first()->InvalidateMemAccCache(getCoreSightTraceID()); + return OCSD_OK; +} + /**********************************************************************/ template <class P, class Pc> class TrcPktDecodeBase : public TrcPktDecodeI, public IPktDataIn<P> diff --git a/decoder/include/common/trc_pkt_proc_base.h b/decoder/include/common/trc_pkt_proc_base.h index 3098a3d0c0ea..8ed7d83b2d5a 100644 --- a/decoder/include/common/trc_pkt_proc_base.h +++ b/decoder/include/common/trc_pkt_proc_base.h @@ -43,6 +43,7 @@ #include "trc_component.h" #include "comp_attach_pt_t.h" +#include "opencsd/ocsd_if_version.h" /** @defgroup ocsd_pkt_proc OpenCSD Library : Packet Processors. @brief Classes providing Protocol Packet Processing capability. @@ -76,6 +77,8 @@ public: const uint8_t *pDataBlock, uint32_t *numBytesProcessed) = 0; + virtual ocsd_err_t getStatsBlock(ocsd_decode_stats_t **pp_stats) = 0; + virtual void resetStats() = 0; protected: /* implementation packet processing interface */ @@ -155,6 +158,10 @@ public: //!< Get the configuration for the decoder. virtual const Pc *getProtocolConfig() const { return m_config; }; +/* stats block access - derived class must init stats for the block to be returned. */ + virtual ocsd_err_t getStatsBlock(ocsd_decode_stats_t **pp_stats); + virtual void resetStats(); /* reset the counts - operates separately from decoder reset. */ + protected: /* data output functions */ @@ -183,6 +190,14 @@ protected: const bool checkInit(); // return true if init (configured and at least one output sink attached), false otherwise. + /* stats block updates - called by derived protocol specific decoder */ + void statsAddTotalCount(const uint64_t count) { m_stats.channel_total += count; }; + void statsAddUnsyncCount(const uint64_t count) { m_stats.channel_unsynced += count; }; + void statsAddBadSeqCount(const uint32_t count) { m_stats.bad_sequence_errs += count; }; + void statsAddBadHdrCount(const uint32_t count) { m_stats.bad_header_errs += count; }; + void statsInit() { m_stats_init = true; }; /* mark stats as in use */ + + private: /* decode control */ ocsd_datapath_resp_t Reset(const ocsd_trc_index_t index); @@ -195,20 +210,29 @@ private: componentAttachPt<ITrcPktIndexer<Pt>> m_pkt_indexer_i; bool m_b_is_init; + + /* decode statistics block */ + ocsd_decode_stats_t m_stats; + bool m_stats_init; /*< true if the specific decoder is using the stats */ + }; template<class P,class Pt, class Pc> TrcPktProcBase<P, Pt, Pc>::TrcPktProcBase(const char *component_name) : TrcPktProcI(component_name), m_config(0), - m_b_is_init(false) + m_b_is_init(false), + m_stats_init(false) { + resetStats(); } template<class P,class Pt, class Pc> TrcPktProcBase<P, Pt, Pc>::TrcPktProcBase(const char *component_name, int instIDNum) : TrcPktProcI(component_name, instIDNum), m_config(0), - m_b_is_init(false) + m_b_is_init(false), + m_stats_init(false) { + resetStats(); } template<class P,class Pt, class Pc> TrcPktProcBase<P, Pt, Pc>::~TrcPktProcBase() @@ -405,6 +429,26 @@ template<class P,class Pt, class Pc> const bool TrcPktProcBase<P, Pt, Pc>::check return m_b_is_init; } +template<class P,class Pt, class Pc> ocsd_err_t TrcPktProcBase<P, Pt, Pc>::getStatsBlock(ocsd_decode_stats_t **pp_stats) +{ + + *pp_stats = &m_stats; + return m_stats_init ? OCSD_OK : OCSD_ERR_NOT_INIT; +} + +template<class P,class Pt, class Pc> void TrcPktProcBase<P, Pt, Pc>::resetStats() +{ + m_stats.version = OCSD_VER_NUM; + m_stats.revision = OCSD_STATS_REVISION; + m_stats.channel_total = 0; + m_stats.channel_unsynced = 0; + m_stats.bad_header_errs = 0; + m_stats.bad_sequence_errs = 0; + m_stats.demux.frame_bytes = 0; + m_stats.demux.no_id_bytes = 0; + m_stats.demux.valid_id_bytes = 0; +} + /** @}*/ #endif // ARM_TRC_PKT_PROC_BASE_H_INCLUDED diff --git a/decoder/include/i_dec/trc_idec_arminst.h b/decoder/include/i_dec/trc_idec_arminst.h index 911b0cf7db95..e90ec04ae84d 100644 --- a/decoder/include/i_dec/trc_idec_arminst.h +++ b/decoder/include/i_dec/trc_idec_arminst.h @@ -44,7 +44,7 @@ /* supplementary decode information */ struct decode_info { - uint16_t arch_version; + ocsd_arch_version_t arch_version; ocsd_instr_subtype instr_sub_type; }; @@ -121,7 +121,8 @@ arm_barrier_t inst_A64_barrier(uint32_t inst); int inst_ARM_wfiwfe(uint32_t inst); int inst_Thumb_wfiwfe(uint32_t inst); -int inst_A64_wfiwfe(uint32_t inst); +int inst_A64_wfiwfe(uint32_t inst, struct decode_info *info); +int inst_A64_Tstart(uint32_t inst); /* Test whether an instruction is definitely undefined, e.g. because diff --git a/decoder/include/interfaces/trc_pkt_raw_in_i.h b/decoder/include/interfaces/trc_pkt_raw_in_i.h index 6f7b21383024..dfa7e057ca67 100644 --- a/decoder/include/interfaces/trc_pkt_raw_in_i.h +++ b/decoder/include/interfaces/trc_pkt_raw_in_i.h @@ -47,7 +47,7 @@ * * This interface provides a monitor point for the packet processor block. * The templated interface is called with a complete packet of the given - * type, plus the raw packet bytes. Use for tools which need to display compplete + * type, plus the raw packet bytes. Use for tools which need to display complete * packets or require additional processing on raw packet data. * * This interface is not part of the data decode path and cannot provide feedback. diff --git a/decoder/include/interfaces/trc_tgt_mem_access_i.h b/decoder/include/interfaces/trc_tgt_mem_access_i.h index effc9b5e161e..68a4e10055d4 100644 --- a/decoder/include/interfaces/trc_tgt_mem_access_i.h +++ b/decoder/include/interfaces/trc_tgt_mem_access_i.h @@ -83,6 +83,14 @@ public: const ocsd_mem_space_acc_t mem_space, uint32_t *num_bytes, uint8_t *p_buffer) = 0; + + /*! + * Invalidate any caching that the memory accessor functions are using. + * Generally called when a memory context changes in the trace. + * + * @param cs_trace_id : protocol source trace ID. + */ + virtual void InvalidateMemAccCache(const uint8_t cs_trace_id) = 0; }; diff --git a/decoder/include/mem_acc/trc_mem_acc_mapper.h b/decoder/include/mem_acc/trc_mem_acc_mapper.h index a700e9dbd07e..4a08498df14e 100644 --- a/decoder/include/mem_acc/trc_mem_acc_mapper.h +++ b/decoder/include/mem_acc/trc_mem_acc_mapper.h @@ -61,6 +61,8 @@ public: uint32_t *num_bytes, uint8_t *p_buffer); + virtual void InvalidateMemAccCache(const uint8_t cs_trace_id); + // mapper memory area configuration interface // add an accessor to this map diff --git a/decoder/include/opencsd.h b/decoder/include/opencsd.h index 615bbcafa2d9..8af4fd0df5ef 100644 --- a/decoder/include/opencsd.h +++ b/decoder/include/opencsd.h @@ -63,6 +63,7 @@ #include "opencsd/etmv4/etmv4_decoder.h" #include "opencsd/ptm/ptm_decoder.h" #include "opencsd/stm/stm_decoder.h" +#include "opencsd/ete/ete_decoder.h" /** C++ library object types */ #include "common/ocsd_error_logger.h" diff --git a/decoder/include/opencsd/c_api/ocsd_c_api_types.h b/decoder/include/opencsd/c_api/ocsd_c_api_types.h index cde351fc525f..7f9b4bab9494 100644 --- a/decoder/include/opencsd/c_api/ocsd_c_api_types.h +++ b/decoder/include/opencsd/c_api/ocsd_c_api_types.h @@ -46,6 +46,7 @@ #include "opencsd/etmv4/trc_pkt_types_etmv4.h" #include "opencsd/ptm/trc_pkt_types_ptm.h" #include "opencsd/stm/trc_pkt_types_stm.h" +#include "opencsd/ete/trc_pkt_types_ete.h" /** @ingroup lib_c_api @{*/ diff --git a/decoder/include/opencsd/c_api/opencsd_c_api.h b/decoder/include/opencsd/c_api/opencsd_c_api.h index 90201d436e08..ebbba87d952e 100644 --- a/decoder/include/opencsd/c_api/opencsd_c_api.h +++ b/decoder/include/opencsd/c_api/opencsd_c_api.h @@ -210,10 +210,36 @@ OCSD_C_API ocsd_err_t ocsd_dt_attach_packet_callback( const dcd_tree_handle_t h const void *p_context); +/*! + * Get the stats block for the channel indicated. + * Caller must check p_stats_block->version to esure that the block + * is filled in a compatible manner. + * + * @param handle : Handle to decode tree. + * @param CSID : Configured CoreSight trace ID for the decoder. + * @param p_stats_block: block pointer to set to reference the stats block. + * + * @return ocsd_err_t : Library error code - OCSD_OK if valid block pointer returned, + * OCSD_ERR_NOTINIT if decoder does not support stats counting. + */ +OCSD_C_API ocsd_err_t ocsd_dt_get_decode_stats( const dcd_tree_handle_t handle, + const unsigned char CSID, + ocsd_decode_stats_t **p_stats_block); + +/*! + * Reset the stats block for the chosens decode channel. + * stats block is reset independently of the decoder reset to allow counts across + * multiple decode runs. + * + * @param handle : Handle to decode tree. + * @param CSID : Configured CoreSight trace ID for the decoder. + * + * @return ocsd_err_t : Library error code - OCSD_OK if successful. + */ +OCSD_C_API ocsd_err_t ocsd_dt_reset_decode_stats( const dcd_tree_handle_t handle, + const unsigned char CSID); - - /** @}*/ /*---------------------- Memory Access for traced opcodes ----------------------------------------------------------------------------------*/ /** @name Library Memory Accessor configuration on decode tree. @@ -373,6 +399,28 @@ OCSD_C_API ocsd_err_t ocsd_def_errlog_set_strprint_cb(const dcd_tree_handle_t ha */ OCSD_C_API void ocsd_def_errlog_msgout(const char *msg); +/*! + * Convert an error code into a string. + * + * @param err : error code. + * @param buffer : buffer for return string + * @param buffer_size : length of buffer. + */ +OCSD_C_API void ocsd_err_str(const ocsd_err_t err, char *buffer, const int buffer_size); + +/*! + * returns the last error logged by the system, with the related trace byte index, trace channel id, + * and any error message related string. + * If index or channel ID are not valid these will return OCSD_BAD_TRC_INDEX and OCSD_BAD_CS_SRC_ID. + * + * return value is the error code of the last logged error, OCSD_OK for no error available. + * + * @param index : returns trace byte index relating to error, or OCSD_BAD_TRC_INDEX + * @param chan_id : returns trace channel ID relating to error, or OCSD_BAD_CS_SRC_ID + * @param message : buffer to copy the last error message. + * @param message_len: length of message buffer. + */ +OCSD_C_API ocsd_err_t ocsd_get_last_err(ocsd_trc_index_t *index, uint8_t *chan_id, char *message, const int message_len); /** @}*/ diff --git a/decoder/include/opencsd/ete/ete_decoder.h b/decoder/include/opencsd/ete/ete_decoder.h new file mode 100644 index 000000000000..ba0d718bfff1 --- /dev/null +++ b/decoder/include/opencsd/ete/ete_decoder.h @@ -0,0 +1,47 @@ +/* +* \file ete_decoder.h +* \brief OpenCSD : Top level header file for ETE decoder. +* +* \copyright Copyright (c) 2019, ARM Limited. All Rights Reserved. +*/ + +/* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* 3. Neither the name of the copyright holder 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 ARM_ETE_DECODER_H_INCLUDED +#define ARM_ETE_DECODER_H_INCLUDED + +// ETE actually uses extended ETMv4 packet processor and decode +// ETE specifics limited to configuration +// +#include "trc_cmp_cfg_ete.h" +#include "trc_pkt_types_ete.h" + +#endif // ARM_ETE_DECODER_H_INCLUDED + +/* End of File ete_decoder.h */ + diff --git a/decoder/include/opencsd/ete/trc_cmp_cfg_ete.h b/decoder/include/opencsd/ete/trc_cmp_cfg_ete.h new file mode 100644 index 000000000000..8365ffa88460 --- /dev/null +++ b/decoder/include/opencsd/ete/trc_cmp_cfg_ete.h @@ -0,0 +1,81 @@ +/* +* \file trc_cmp_cfg_ete.h +* \brief OpenCSD : ETE configuration +* +* \copyright Copyright (c) 2019, ARM Limited. All Rights Reserved. +*/ + +/* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* 3. Neither the name of the copyright holder 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 ARM_TRC_CMP_CFG_ETE_H_INCLUDED +#define ARM_TRC_CMP_CFG_ETE_H_INCLUDED + +#include "trc_pkt_types_ete.h" +#include "opencsd/etmv4/trc_cmp_cfg_etmv4.h" + +/** @addtogroup ocsd_protocol_cfg +@{*/ + +/** @name ETE configuration +@{*/ + +/*! + * @class ETEConfig + * @brief Interpreter class for ETE config structure + * + * ETE trace and config are a superset of ETMv4 trace and config - hence + * use the EtmV4Config class as a base. + */ +class ETEConfig : public EtmV4Config +{ +public: + ETEConfig(); + ETEConfig(const ocsd_ete_cfg *cfg_regs); + ~ETEConfig(); + + //! copy assignment operator for base structure into class. + ETEConfig & operator=(const ocsd_ete_cfg *p_cfg); + + //! cast operator returning struct const reference + operator const ocsd_ete_cfg &() const { return m_ete_cfg; }; + //! cast operator returning struct const pointer + operator const ocsd_ete_cfg *() const { return &m_ete_cfg; }; + +private: + void copyV4(); // copy relevent config to underlying structure. + + ocsd_ete_cfg m_ete_cfg; +}; + + +/** @}*/ +/** @}*/ + +#endif // ARM_TRC_CMP_CFG_ETE_H_INCLUDED + +/* End of File trc_cmp_cfg_ete.h */ diff --git a/decoder/include/opencsd/ete/trc_dcd_mngr_ete.h b/decoder/include/opencsd/ete/trc_dcd_mngr_ete.h new file mode 100644 index 000000000000..7b0c134b20c5 --- /dev/null +++ b/decoder/include/opencsd/ete/trc_dcd_mngr_ete.h @@ -0,0 +1,58 @@ +/* +* \file trc_dcd_mngr_ete.h +* \brief OpenCSD : ETE decoder creation. +* +* \copyright Copyright (c) 2019, ARM Limited. All Rights Reserved. +*/ + +/* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* 3. Neither the name of the copyright holder 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 ARM_TRC_DCD_MNGR_ETE_H_INCLUDED +#define ARM_TRC_DCD_MNGR_ETE_H_INCLUDED + +#include "common/ocsd_dcd_mngr.h" +#include "trc_cmp_cfg_ete.h" +#include "opencsd/etmv4/trc_pkt_decode_etmv4i.h" +#include "opencsd/etmv4/trc_pkt_proc_etmv4.h" + +class DecoderMngrETE : public DecodeMngrFullDcdExCfg< EtmV4ITrcPacket, + ocsd_etmv4_i_pkt_type, + EtmV4Config, + ETEConfig, + ocsd_ete_cfg, + TrcPktProcEtmV4I, + TrcPktDecodeEtmV4I> +{ +public: + DecoderMngrETE(const std::string &name) : DecodeMngrFullDcdExCfg(name, OCSD_PROTOCOL_ETE) {}; + virtual ~DecoderMngrETE() {}; +}; + +#endif // ARM_TRC_DCD_MNGR_ETE_H_INCLUDED + +/* End of File trc_dcd_mngr_ete.h */ diff --git a/decoder/include/opencsd/ete/trc_pkt_types_ete.h b/decoder/include/opencsd/ete/trc_pkt_types_ete.h new file mode 100644 index 000000000000..f87d454605fd --- /dev/null +++ b/decoder/include/opencsd/ete/trc_pkt_types_ete.h @@ -0,0 +1,66 @@ +/* + * \file trc_pkt_types_ete.h + * \brief OpenCSD : ETE types + * + * \copyright Copyright (c) 2019, ARM Limited. All Rights Reserved. + */ + +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder 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 ARM_TRC_PKT_TYPES_ETE_H_INCLUDED +#define ARM_TRC_PKT_TYPES_ETE_H_INCLUDED + +#include "opencsd/trc_pkt_types.h" +#include "opencsd/etmv4/trc_pkt_types_etmv4.h" + /** @addtogroup trc_pkts + @{*/ + + /** @name ETE config Types + @{*/ + + +typedef struct _ocsd_ete_cfg +{ + uint32_t reg_idr0; /**< ID0 register */ + uint32_t reg_idr1; /**< ID1 register */ + uint32_t reg_idr2; /**< ID2 register */ + uint32_t reg_idr8; /**< ID8 - maxspec */ + uint32_t reg_devarch; /**< DevArch register */ + uint32_t reg_configr; /**< Config Register */ + uint32_t reg_traceidr; /**< Trace Stream ID register */ + ocsd_arch_version_t arch_ver; /**< Architecture version */ + ocsd_core_profile_t core_prof; /**< Core Profile */ +} ocsd_ete_cfg; + + +/** @}*/ +/** @}*/ + +#endif // ARM_TRC_PKT_TYPES_ETE_H_INCLUDED + +/* End of File trc_pkt_types_ete.h */ diff --git a/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h b/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h index 1d72d97afe59..223dbda44510 100644 --- a/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h +++ b/decoder/include/opencsd/etmv4/trc_cmp_cfg_etmv4.h @@ -81,6 +81,7 @@ public: const bool hasCycleCountI() const; const bool hasRetStack() const; const uint8_t numEvents() const; + const bool eteHasTSMarker() const; typedef enum _condType { COND_PASS_FAIL, @@ -104,6 +105,7 @@ public: const uint32_t TimeStampSize() const; const bool commitOpt1() const; + const bool commTransP0() const; /* idr 1 */ const uint8_t MajVersion() const; @@ -151,6 +153,7 @@ public: const bool enabledCCI() const; const bool enabledCID() const; const bool enabledVMID() const; + const bool enabledVMIDOpt() const; typedef enum { COND_TR_DIS, @@ -253,6 +256,11 @@ inline const bool EtmV4Config::hasTrcExcpData() const return (bool)((m_cfg.reg_idr0 & 0x20000) == 0x20000); } +inline const bool EtmV4Config::eteHasTSMarker() const +{ + return (FullVersion() >= 0x51) && ((m_cfg.reg_idr0 & 0x800000) == 0x800000); +} + inline const uint32_t EtmV4Config::TimeStampSize() const { uint32_t tsSizeF = (m_cfg.reg_idr0 >> 24) & 0x1F; @@ -268,6 +276,11 @@ inline const bool EtmV4Config::commitOpt1() const return (bool)((m_cfg.reg_idr0 & 0x20000000) == 0x20000000) && hasCycleCountI(); } +inline const bool EtmV4Config::commTransP0() const +{ + return (bool)((m_cfg.reg_idr0 & 0x40000000) == 0x0); +} + /* idr 1 */ inline const uint8_t EtmV4Config::MajVersion() const { @@ -424,6 +437,20 @@ inline const bool EtmV4Config::enabledVMID() const return ((m_cfg.reg_configr & (0x1 << 7)) != 0); } +inline const bool EtmV4Config::enabledVMIDOpt() const +{ + bool vmidOptVal = ((m_cfg.reg_configr & (0x1 << 15)) != 0); + /* TRIDR2.VMIDOPT[30:29] determine value used */ + if (!vmidOpt()) { /* [29] = 1'b0 */ + vmidOptVal = false; /* res0 */ + if (FullVersion() >= 0x45) { + /* umless version > 4.5 in which case [30] determines res val */ + vmidOptVal = ((m_cfg.reg_idr2 & (0x1 << 30)) != 0); + } + } + return vmidOptVal; +} + inline const EtmV4Config::CondITrace_t EtmV4Config::enabledCondITrace() { if(!m_condTraceCalc) diff --git a/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h b/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h index 5a283c541f3e..21bd7af434de 100644 --- a/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h +++ b/decoder/include/opencsd/etmv4/trc_etmv4_stack_elem.h @@ -34,6 +34,7 @@ #define ARM_TRC_ETMV4_STACK_ELEM_H_INCLUDED #include "opencsd/etmv4/trc_pkt_types_etmv4.h" +#include "opencsd/trc_gen_elem_types.h" #include <deque> #include <vector> @@ -56,9 +57,16 @@ typedef enum _p0_elem_t P0_TS, P0_CC, P0_TS_CC, + P0_MARKER, P0_Q, P0_OVERFLOW, P0_FUNC_RET, + P0_SRC_ADDR, + P0_TRANS_TRACE_INIT, + P0_TRANS_START, + P0_TRANS_COMMIT, + P0_TRANS_FAIL, + P0_ITE, } p0_elem_t; @@ -101,6 +109,7 @@ class TrcStackElemAddr : public TrcStackElem { protected: TrcStackElemAddr(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index); + TrcStackElemAddr(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const bool src_addr); virtual ~TrcStackElemAddr() {}; friend class EtmV4P0Stack; @@ -120,6 +129,14 @@ inline TrcStackElemAddr::TrcStackElemAddr(const ocsd_etmv4_i_pkt_type root_pkt, m_addr_val.isa = 0; } +inline TrcStackElemAddr::TrcStackElemAddr(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const bool src_addr) : + TrcStackElem(src_addr ? P0_SRC_ADDR : P0_ADDR, false, root_pkt, root_index) +{ + m_addr_val.val = 0; + m_addr_val.isa = 0; +} + + /************************************************************/ /** Q element */ class TrcStackQElem : public TrcStackElem @@ -295,6 +312,55 @@ inline TrcStackElemParam::TrcStackElemParam(const p0_elem_t p0_type, const bool } /************************************************************/ +/** Marker element */ + +class TrcStackElemMarker : public TrcStackElem +{ +protected: + TrcStackElemMarker(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index); + virtual ~TrcStackElemMarker() {}; + + friend class EtmV4P0Stack; + +public: + void setMarker(const trace_marker_payload_t &marker) { m_marker = marker; }; + const trace_marker_payload_t &getMarker() const { return m_marker; }; + +private: + trace_marker_payload_t m_marker; +}; + +inline TrcStackElemMarker::TrcStackElemMarker(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index) : + TrcStackElem(P0_MARKER, false, root_pkt, root_index) +{ +} + +/************************************************************/ +/* Instrumentation element + */ + +class TrcStackElemITE : public TrcStackElem +{ +protected: + TrcStackElemITE(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index); + virtual ~TrcStackElemITE() {}; + + friend class EtmV4P0Stack; + +public: + void setITE(const trace_sw_ite_t &ite) { m_ite = ite; }; + const trace_sw_ite_t &getITE() { return m_ite; }; + +private: + trace_sw_ite_t m_ite; +}; + +inline TrcStackElemITE::TrcStackElemITE(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index) : + TrcStackElem(P0_ITE, false, root_pkt, root_index) +{ +} + +/************************************************************/ /* P0 element stack that allows push of elements, and deletion of elements when done. */ class EtmV4P0Stack @@ -329,6 +395,10 @@ public: TrcStackElemCtxt *createContextElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const etmv4_context_t &context, const uint8_t IS, const bool back = false); TrcStackElemAddr *createAddrElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const etmv4_addr_val_t &addr_val); TrcStackQElem *createQElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const int count); + TrcStackElemMarker *createMarkerElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const trace_marker_payload_t &marker); + TrcStackElemAddr *createSrcAddrElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const etmv4_addr_val_t &addr_val); + TrcStackElemITE *createITEElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const trace_sw_ite_t &ite); + private: std::deque<TrcStackElem *> m_P0_stack; //!< P0 decode element stack std::vector<TrcStackElem *> m_popped_elem; //!< save list of popped but not deleted elements. diff --git a/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h b/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h index 419cd828928c..7838ece04e57 100644 --- a/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h +++ b/decoder/include/opencsd/etmv4/trc_pkt_decode_etmv4i.h @@ -88,11 +88,29 @@ protected: // process Q element ocsd_err_t processQElement(); + // process a source address element + ocsd_err_t processSourceAddress(); + // process an element that cannot be cancelled / discarded ocsd_err_t processTS_CC_EventElem(TrcStackElem *pElem); + // process marker elements + ocsd_err_t processMarkerElem(TrcStackElem *pElem); + + // process a transaction element + ocsd_err_t processTransElem(TrcStackElem *pElem); + + // process an Instrumentation element + ocsd_err_t processITEElem(TrcStackElem *pElem); + // process a bad packet - ocsd_err_t handleBadPacket(const char *reason); + ocsd_err_t handleBadPacket(const char *reason, ocsd_trc_index_t index = OCSD_BAD_TRC_INDEX); + + // sequencing error on packet processing - optionally continue + ocsd_err_t handlePacketSeqErr(ocsd_err_t err, ocsd_trc_index_t index, const char *reason); + + // common packet error routine + ocsd_err_t handlePacketErr(ocsd_err_t err, ocsd_err_severity_t sev, ocsd_trc_index_t index, const char *reason); ocsd_err_t addElemCC(TrcStackElemParam *pParamElem); ocsd_err_t addElemTS(TrcStackElemParam *pParamElem, bool withCC); @@ -127,6 +145,13 @@ private: ocsd_err_t returnStackPop(); // pop return stack and update instruction address. void setElemTraceRange(OcsdTraceElement &elemIn, const instr_range_t &addr_range, const bool executed, ocsd_trc_index_t index); + void setElemTraceRangeInstr(OcsdTraceElement &elemIn, const instr_range_t &addr_range, + const bool executed, ocsd_trc_index_t index, ocsd_instr_info &instr); + + // true if we are ETE configured. + inline bool isETEConfig() { + return (m_config->MajVersion() >= ETE_ARCH_VERSION); + } ocsd_mem_space_acc_t getCurrMemSpace(); @@ -134,6 +159,7 @@ private: // timestamping uint64_t m_timestamp; // last broadcast global Timestamp. + bool m_ete_first_ts_marker; // state and context uint32_t m_context_id; // most recent context ID diff --git a/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h b/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h index 8ccf36b373db..02404749718d 100644 --- a/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h +++ b/decoder/include/opencsd/etmv4/trc_pkt_elem_etmv4i.h @@ -145,7 +145,7 @@ public: void setCondRF3(const uint16_t tokens); void setCondRF4(const uint8_t token); - void setContextInfo(const bool update, const uint8_t EL = 0, const uint8_t NS = 0, const uint8_t SF = 0); + void setContextInfo(const bool update, const uint8_t EL = 0, const uint8_t NS = 0, const uint8_t SF = 0, const uint8_t NSE = 0); void setContextVMID(const uint32_t VMID); void setContextCID(const uint32_t CID); @@ -160,6 +160,7 @@ public: void setEvent(const uint8_t event_val); void setQType(const bool has_count, const uint32_t count, const bool has_addr, const bool addr_match, const uint8_t type); + void setITE(const uint8_t el, const uint64_t value); // packet status interface - get packet info. const ocsd_etmv4_i_pkt_type getType() const { return type; }; @@ -200,6 +201,10 @@ public: const int getCommitElem() const { return commit_elements; }; const int getCancelElem() const { return cancel_elements; }; + // ITE + const uint8_t getITE_EL() const { return ite_pkt.el; }; + const uint64_t getITE_value() const { return ite_pkt.value; }; + // packet type const bool isBadPacket() const; @@ -207,6 +212,8 @@ public: virtual void toString(std::string &str) const; virtual void toStringFmt(const uint32_t fmtFlags, std::string &str) const; + void setProtocolVersion(const uint8_t version) { protocol_version = version; }; + private: const char *packetTypeName(const ocsd_etmv4_i_pkt_type type, const char **pDesc) const; void contextStr(std::string &ctxtStr) const; @@ -217,6 +224,8 @@ private: void push_vaddr(); void pop_vaddr_idx(const uint8_t idx); + const bool isETE() const { return (protocol_version & 0xF0) == 0x50; }; + Etmv4PktAddrStack m_addr_stack; }; @@ -412,7 +421,7 @@ inline void EtmV4ITrcPacket::setCondRF4(const uint8_t token) cond_result.f2f4_token = token; } -inline void EtmV4ITrcPacket::setContextInfo(const bool update, const uint8_t EL, const uint8_t NS, const uint8_t SF) +inline void EtmV4ITrcPacket::setContextInfo(const bool update, const uint8_t EL, const uint8_t NS, const uint8_t SF, const uint8_t NSE) { pkt_valid.bits.context_valid = 1; if(update) @@ -421,6 +430,7 @@ inline void EtmV4ITrcPacket::setContextInfo(const bool update, const uint8_t EL, context.EL = EL; context.NS = NS; context.SF = SF; + context.NSE = NSE; } } @@ -534,6 +544,12 @@ inline void EtmV4ITrcPacket::pop_vaddr_idx(const uint8_t idx) m_addr_stack.get_idx(idx, v_addr, v_addr_ISA); } +inline void EtmV4ITrcPacket::setITE(const uint8_t el, const uint64_t value) +{ + ite_pkt.el = el; + ite_pkt.value = value; +} + /** @}*/ #endif // ARM_TRC_PKT_ELEM_ETMV4I_H_INCLUDED diff --git a/decoder/include/opencsd/etmv4/trc_pkt_proc_etmv4i.h b/decoder/include/opencsd/etmv4/trc_pkt_proc_etmv4i.h index abc322654b8d..58c0d78806c3 100644 --- a/decoder/include/opencsd/etmv4/trc_pkt_proc_etmv4i.h +++ b/decoder/include/opencsd/etmv4/trc_pkt_proc_etmv4i.h @@ -117,6 +117,7 @@ private: #define TINFO_KEY_SECT 0x02 #define TINFO_SPEC_SECT 0x04 #define TINFO_CYCT_SECT 0x08 + #define TINFO_WNDW_SECT 0x10 #define TINFO_CTRL 0x20 #define TINFO_ALL_SECT 0x1F #define TINFO_ALL 0x3F @@ -178,9 +179,10 @@ private: void iPktQ(const uint8_t lastByte); void iAtom(const uint8_t lastByte); void iPktInvalidCfg(const uint8_t lastByte); // packet invalid in current config. + void iPktITE(const uint8_t lastByte); unsigned extractContField(const std::vector<uint8_t> &buffer, const unsigned st_idx, uint32_t &value, const unsigned byte_limit = 5); - unsigned extractContField64(const std::vector<uint8_t> &buffer, const unsigned st_idx, uint64_t &value, const unsigned byte_limit = 9); + unsigned extractTSField64(const std::vector<uint8_t> &buffer, const unsigned st_idx, uint64_t &value); unsigned extractCondResult(const std::vector<uint8_t> &buffer, const unsigned st_idx, uint32_t& key, uint8_t &result); void extractAndSetContextInfo(const std::vector<uint8_t> &buffer, const int st_idx); int extract64BitLongAddr(const std::vector<uint8_t> &buffer, const int st_idx, const uint8_t IS, uint64_t &value); diff --git a/decoder/include/opencsd/etmv4/trc_pkt_types_etmv4.h b/decoder/include/opencsd/etmv4/trc_pkt_types_etmv4.h index 7e98050c77c4..2a03b088c043 100644 --- a/decoder/include/opencsd/etmv4/trc_pkt_types_etmv4.h +++ b/decoder/include/opencsd/etmv4/trc_pkt_types_etmv4.h @@ -1,8 +1,8 @@ /* * \file trc_pkt_types_etmv4.h - * \brief OpenCSD : ETMv4 packet info + * \brief OpenCSD : ETMv4 / ETE packet info * - * \copyright Copyright (c) 2015,2019 ARM Limited. All Rights Reserved. + * \copyright Copyright (c) 2015,2019,2022 ARM Limited. All Rights Reserved. */ @@ -41,7 +41,7 @@ /** @addtogroup trc_pkts @{*/ -/** @name ETMv4 Packet Types +/** @name ETMv4 Packet Types, ETE packet Types @{*/ /** I stream packets. */ @@ -70,9 +70,12 @@ typedef enum _ocsd_etmv4_i_pkt_type ETM4_PKT_I_FUNC_RET = 0x05, /*!< b00000101 (V8M only) */ // Exceptions ETM4_PKT_I_EXCEPT = 0x06, /*!< b00000110 */ - ETM4_PKT_I_EXCEPT_RTN = 0x07, /*!< b00000111 */ + ETM4_PKT_I_EXCEPT_RTN = 0x07, /*!< b00000111 (ETE invalid) */ - /* unused encodings 0x08-0xB b00001000 to b00001011 */ + /* unused encoding 0x08 b00001000 */ + ETE_PKT_I_ITE = 0x09, /*! b00001001 (ETE only) */ + ETE_PKT_I_TRANS_ST = 0x0A, /*! b00001010 (ETE only) */ + ETE_PKT_I_TRANS_COMMIT = 0x0B, /*! b00001011 (ETE only) */ /* cycle count packets */ ETM4_PKT_I_CCNT_F2 = 0x0C, /*!< b0000110x */ @@ -91,7 +94,7 @@ typedef enum _ocsd_etmv4_i_pkt_type ETM4_PKT_I_CANCEL_F2 = 0x34, /*!< b001101xx */ ETM4_PKT_I_CANCEL_F3 = 0x38, /*!< b00111xxx */ - /* conditional instruction tracing */ + /* conditional instruction tracing - (reserved encodings ETE) */ ETM4_PKT_I_COND_I_F2 = 0x40, /*!< b01000000 - b01000010 */ ETM4_PKT_I_COND_FLUSH = 0x43, /*!< b01000011 */ ETM4_PKT_I_COND_RES_F4 = 0x44, /*!< b0100010x, b01000110 */ @@ -116,7 +119,8 @@ typedef enum _ocsd_etmv4_i_pkt_type ETM4_PKT_I_ADDR_CTXT_L_64IS0 = 0x85, /*!< b10000101 */ ETM4_PKT_I_ADDR_CTXT_L_64IS1, /*!< b10000110 */ /* unused encoding 0x87 b10000111 */ - /* unused encodings 0x88-0x8F b10001xxx */ + ETE_PKT_I_TS_MARKER = 0x88, /*!< b10001000 */ + /* unused encodings 0x89-0x8F b10001001 to b10001111 */ ETM4_PKT_I_ADDR_MATCH = 0x90, /*!< b10010000 to b10010010 0x92 */ /* unused encodings 0x93-0x94 b10010011 to b10010010 */ ETM4_PKT_I_ADDR_S_IS0 = 0x95, /*!< b10010101 */ @@ -132,7 +136,15 @@ typedef enum _ocsd_etmv4_i_pkt_type /* Q packets */ ETM4_PKT_I_Q = 0xA0, /*!< b1010xxxx */ - /* unused encodings 0xB0-0xBF b1011xxxx */ + /* ETE source address packets, unused ETMv4 */ + ETE_PKT_I_SRC_ADDR_MATCH = 0xB0, /*!< b101100xx */ + ETE_PKT_I_SRC_ADDR_S_IS0 = 0xB4, /*!< b10110100 */ + ETE_PKT_I_SRC_ADDR_S_IS1 = 0xB5, /*!< b10110101 */ + ETE_PKT_I_SRC_ADDR_L_32IS0 = 0xB6, /*!< b10110110 */ + ETE_PKT_I_SRC_ADDR_L_32IS1 = 0xB7, /*!< b10110111 */ + ETE_PKT_I_SRC_ADDR_L_64IS0 = 0xB8, /*!< b10111000 */ + ETE_PKT_I_SRC_ADDR_L_64IS1 = 0xB9, /*!< b10111001 */ + /* unused encodings 0xBA-0xBF b10111010 - b10111111 */ /* Atom packets */ ETM4_PKT_I_ATOM_F6 = 0xC0, /*!< b11000000 - b11010100 0xC0 - 0xD4, b11100000 - b11110100 0xE0 - 0xF4 */ @@ -147,15 +159,20 @@ typedef enum _ocsd_etmv4_i_pkt_type ETM4_PKT_I_DISCARD = 0x103, //!< b00000011 ETM4_PKT_I_OVERFLOW = 0x105, //!< b00000101 + // ETE extended types + ETE_PKT_I_PE_RESET = 0x400, // base type is exception packet. + ETE_PKT_I_TRANS_FAIL = 0x401, // base type is exception packet. + } ocsd_etmv4_i_pkt_type; typedef union _etmv4_trace_info_t { uint32_t val; //!< trace info full value. struct { uint32_t cc_enabled:1; //!< 1 if cycle count enabled - uint32_t cond_enabled:3; //!< conditional trace enabeld type + uint32_t cond_enabled:3; //!< conditional trace enabled type. uint32_t p0_load:1; //!< 1 if tracing with P0 load elements (for data trace) uint32_t p0_store:1; //!< 1 if tracing with P0 store elements (for data trace) + uint32_t in_trans_state:1; //!< 1 if starting trace when in a transactional state (ETE trace). } bits; //!< bitfields for trace info value. } etmv4_trace_info_t; @@ -167,6 +184,7 @@ typedef struct _etmv4_context_t { uint32_t updated:1; //!< updated this context packet (otherwise same as last time) uint32_t updated_c:1; //!< updated CtxtID uint32_t updated_v:1; //!< updated VMID + uint32_t NSE:1; //!< PE FEAT_RME: root / realm indicator }; uint32_t ctxtID; //!< Current ctxtID uint32_t VMID; //!< current VMID @@ -256,6 +274,11 @@ typedef struct _ocsd_etmv4_i_pkt }; } Q_pkt; + struct { + uint8_t el; + uint64_t value; + } ite_pkt; + //! valid bits for packet elements (addresses have their own valid bits). union { uint32_t val; @@ -277,6 +300,9 @@ typedef struct _ocsd_etmv4_i_pkt ocsd_etmv4_i_pkt_type err_type; uint8_t err_hdr_val; + // protocol version - validity of ETE specific fields 0xMm == v Major.minor + uint8_t protocol_version; + } ocsd_etmv4_i_pkt; @@ -359,6 +385,9 @@ typedef struct _ocsd_etmv4_cfg ocsd_core_profile_t core_prof; /**< Core Profile */ } ocsd_etmv4_cfg; +#define ETE_ARCH_VERSION 0x5 + +#define ETE_OPFLG_PKTDEC_SRCADDR_N_ATOMS 0x00010000 /**< Split source address output ranges for N-atoms */ /** @}*/ /** @}*/ diff --git a/decoder/include/opencsd/ocsd_if_types.h b/decoder/include/opencsd/ocsd_if_types.h index 23087ee694b1..f5ff6ac6c530 100644 --- a/decoder/include/opencsd/ocsd_if_types.h +++ b/decoder/include/opencsd/ocsd_if_types.h @@ -278,11 +278,13 @@ typedef enum _ocsd_arch_version { ARCH_V7 = 0x0700, /**< V7 architecture */ ARCH_V8 = 0x0800, /**< V8 architecture */ ARCH_V8r3 = 0x0803, /**< V8.3 architecture */ + ARCH_AA64 = 0x0864, /**< Min v8r3 plus additional AA64 PE features */ + ARCH_V8_max = ARCH_AA64, } ocsd_arch_version_t; // macros for arch version comparisons. -#define OCSD_IS_V8_ARCH(arch) ((arch >= ARCH_V8) && (arch <= ARCH_V8r3)) -#define OCSD_MIN_V8_ARCH(arch) (arch >= ARCH_V8) +#define OCSD_IS_V8_ARCH(arch) ((arch >= ARCH_V8) && (arch <= ARCH_V8_max)) +#define OCSD_IS_ARCH_MINVER(arch, min_arch) (arch >= min_arch) /** Core Profile */ typedef enum _ocsd_core_profile { @@ -336,8 +338,10 @@ typedef enum _ocsd_isa */ typedef enum _ocsd_sec_level { - ocsd_sec_secure, /**< Core is in secure state */ - ocsd_sec_nonsecure /**< Core is in non-secure state */ + ocsd_sec_secure, /**< Core is in secure state */ + ocsd_sec_nonsecure, /**< Core is in non-secure state */ + ocsd_sec_root, /**< PE FEAT_RME: Core is in root state. */ + ocsd_sec_realm, /**< PE FEAT_RME: Core is in realm state. */ } ocsd_sec_level ; /** Exception level type @@ -352,7 +356,7 @@ typedef enum _ocsd_ex_level } ocsd_ex_level; -/** instruction types - significant for waypoint calculaitons */ +/** instruction types - significant for waypoint calculations */ typedef enum _ocsd_instr_type { OCSD_INSTR_OTHER, /**< Other instruction - not significant for waypoints. */ OCSD_INSTR_BR, /**< Immediate Branch instruction */ @@ -360,6 +364,7 @@ typedef enum _ocsd_instr_type { OCSD_INSTR_ISB, /**< Barrier : ISB instruction */ OCSD_INSTR_DSB_DMB, /**< Barrier : DSB or DMB instruction */ OCSD_INSTR_WFI_WFE, /**< WFI or WFE traced as direct branch */ + OCSD_INSTR_TSTART, /**< PE Arch feature FEAT_TME - TSTART instruction */ } ocsd_instr_type; /** instruction sub types - addiitonal information passed to the output packets @@ -521,10 +526,11 @@ typedef struct _ocsd_file_mem_region { (common flags share bitfield with pkt processor common flags and create flags) @{*/ -#define OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS 0x00000100 /**< throw error on bad packets input (default is to unsync and wait) */ +#define OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS 0x00000100 /**< throw error on bad packets input (default is to warn) */ +#define OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS 0x00000200 /**< halt decoder on bad packets (default is to log error and continue by resetting decoder and wait for sync */ /** mask to combine all common packet processor operational control flags */ -#define OCSD_OPFLG_PKTDEC_COMMON (OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS) +#define OCSD_OPFLG_PKTDEC_COMMON (OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS | OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS) /** @}*/ @@ -547,6 +553,7 @@ typedef struct _ocsd_file_mem_region { #define OCSD_BUILTIN_DCD_ETMV4I "ETMV4I" /**< ETMv4 instruction decoder */ #define OCSD_BUILTIN_DCD_ETMV4D "ETMV4D" /**< ETMv4 data decoder */ #define OCSD_BUILTIN_DCD_PTM "PTM" /**< PTM decoder */ +#define OCSD_BUILTIN_DCD_ETE "ETE" /**< ETE decoder */ /*! Trace Protocol Builtin Types + extern */ @@ -559,6 +566,7 @@ typedef enum _ocsd_trace_protocol_t { OCSD_PROTOCOL_ETMV4D, /**< ETMV4 data trace protocol decoder. */ OCSD_PROTOCOL_PTM, /**< PTM program flow instruction trace protocol decoder. */ OCSD_PROTOCOL_STM, /**< STM system trace protocol decoder. */ + OCSD_PROTOCOL_ETE, /**< ETE trace protocol decoder */ /* others to be added here */ OCSD_PROTOCOL_BUILTIN_END, /**< Invalid protocol - built-in protocol types end marker */ @@ -627,6 +635,56 @@ typedef struct _ocsd_swt_info { /** @}*/ +/** @name Demux Statistics + + Contains statistics for the CoreSight frame demultiplexor. + + Counts total bytes sent to decoders registered against a trace ID, bytes in the input stream that are + associated with a trace ID that has no registered decoder, and frame bytes that are not trace data, but + are used to decode the frames - ID bytes, sync bytes etc. +@{*/ + +typedef struct _ocsd_demux_stats { + uint64_t valid_id_bytes; /**< number of bytes associated with an ID that has a registered decoder */ + uint64_t no_id_bytes; /**< number of bytes associated with an ID that has no decoder */ + uint64_t reserved_id_bytes; /**< number of bytes associated with reserved IDs */ + uint64_t unknown_id_bytes; /**< bytes processed before ID seen in input frames */ + uint64_t frame_bytes; /**< number of non-data bytes used for frame de-mux - ID bytes, sync etc */ +} ocsd_demux_stats_t; + +/** @}*/ + +/** @name Decode statistics + + Contains statistics for bytes decoded by the packet decoder, if statistics are supported. + + Stats block instantiated in the base class - derived protocol specific decoder must initialise and + use as required. + + The single channel block contains the stats for the requested channel via the API call. + + The global demux block contains the totals for all channels and non-data bytes used in CoreSight + frame demux. This block will show identical data for every requested channel via the API. + +@{*/ + +typedef struct _ocsd_decode_stats { + uint32_t version; /**< library version number */ + uint16_t revision; /**< revision number - defines the structure version for the stats. */ + /* single channel block */ + uint64_t channel_total; /**< total bytes processed for this channel */ + uint64_t channel_unsynced; /**< number of unsynced bytes processed on this channel */ + uint32_t bad_header_errs; /**< number of bad packet header errors */ + uint32_t bad_sequence_errs; /**< number of bad packet sequence errors */ + + ocsd_demux_stats_t demux; /**< global demux stats block */ +} ocsd_decode_stats_t; + +#define OCSD_STATS_REVISION 0x1 + +/** @}*/ + + /** @}*/ #endif // ARM_OCSD_IF_TYPES_H_INCLUDED diff --git a/decoder/include/opencsd/ocsd_if_version.h b/decoder/include/opencsd/ocsd_if_version.h index 38baa02e8b48..41033f0675ed 100644 --- a/decoder/include/opencsd/ocsd_if_version.h +++ b/decoder/include/opencsd/ocsd_if_version.h @@ -42,9 +42,9 @@ /** @name Library Versioning @{*/ -#define OCSD_VER_MAJOR 0x0 /**< Library Major Version */ -#define OCSD_VER_MINOR 0xE /**< Library Minor Version */ -#define OCSD_VER_PATCH 0x2 /**< Library Patch Version */ +#define OCSD_VER_MAJOR 0x1 /**< Library Major Version */ +#define OCSD_VER_MINOR 0x4 /**< Library Minor Version */ +#define OCSD_VER_PATCH 0x0 /**< Library Patch Version */ /** Library version number - MMMMnnpp format. MMMM = major version, @@ -53,7 +53,7 @@ */ #define OCSD_VER_NUM ((OCSD_VER_MAJOR << 16) | (OCSD_VER_MINOR << 8) | OCSD_VER_PATCH) -#define OCSD_VER_STRING "0.14.2" /**< Library Version string */ +#define OCSD_VER_STRING "1.4.0" /**< Library Version string */ #define OCSD_LIB_NAME "OpenCSD Library" /**< Library name string */ #define OCSD_LIB_SHORT_NAME "OCSD" /**< Library Short name string */ /** @}*/ diff --git a/decoder/include/opencsd/stm/trc_pkt_proc_stm.h b/decoder/include/opencsd/stm/trc_pkt_proc_stm.h index 909ac0cb0566..bc4391bfebfb 100644 --- a/decoder/include/opencsd/stm/trc_pkt_proc_stm.h +++ b/decoder/include/opencsd/stm/trc_pkt_proc_stm.h @@ -239,7 +239,8 @@ inline void TrcPktProcStm::checkSyncNibble() if((m_nibble == 0) && (m_num_F_nibbles >= 21)) { - m_is_sync = true; //this nibble marks a sync sequence - keep the F nibble count + m_is_sync = true; //this nibble marks a sync sequence + m_num_F_nibbles = 21; // set the F nibble count - lose any extra as unsynced data. } else { diff --git a/decoder/include/opencsd/trc_gen_elem_types.h b/decoder/include/opencsd/trc_gen_elem_types.h index 1a285a064b63..99194d118438 100644 --- a/decoder/include/opencsd/trc_gen_elem_types.h +++ b/decoder/include/opencsd/trc_gen_elem_types.h @@ -60,7 +60,10 @@ typedef enum _ocsd_gen_trc_elem_t OCSD_GEN_TRC_ELEM_TIMESTAMP, /*!< Timestamp - preceding elements happeded before this time. */ OCSD_GEN_TRC_ELEM_CYCLE_COUNT, /*!< Cycle count - cycles since last cycle count value - associated with a preceding instruction range. */ OCSD_GEN_TRC_ELEM_EVENT, /*!< Event - trigger or numbered event */ - OCSD_GEN_TRC_ELEM_SWTRACE, /*!< Software trace packet - may contain data payload. */ + OCSD_GEN_TRC_ELEM_SWTRACE, /*!< Software trace packet - may contain data payload. STM / ITM hardware trace with channel protocol */ + OCSD_GEN_TRC_ELEM_SYNC_MARKER, /*!< Synchronisation marker - marks position in stream of an element that is output later. */ + OCSD_GEN_TRC_ELEM_MEMTRANS, /*!< Trace indication of transactional memory operations. */ + OCSD_GEN_TRC_ELEM_INSTRUMENTATION, /*!< PE instrumentation trace - PE generated SW trace, application dependent protocol. */ OCSD_GEN_TRC_ELEM_CUSTOM, /*!< Fully custom packet type - used by none-ARM architecture decoders */ } ocsd_gen_trc_elem_t; @@ -86,6 +89,27 @@ typedef enum _unsync_info_t { UNSYNC_EOT, /**< end of trace - no additional info */ } unsync_info_t; +typedef enum _trace_sync_marker_t { + ELEM_MARKER_TS, /**< Marker for timestamp element */ +} trace_sync_marker_t; + +typedef struct _trace_marker_payload_t { + trace_sync_marker_t type; /**< type of sync marker */ + uint32_t value; /**< sync marker value - usage depends on type */ +} trace_marker_payload_t; + +typedef enum _memtrans_t { + OCSD_MEM_TRANS_TRACE_INIT,/**< Trace started while PE in transactional state */ + OCSD_MEM_TRANS_START, /**< Trace after this packet is part of a transactional memory sequence */ + OCSD_MEM_TRANS_COMMIT, /**< Transactional memory sequence valid. */ + OCSD_MEM_TRANS_FAIL, /**< Transactional memory sequence failed - operations since start of transaction have been unwound. */ +} trace_memtrans_t; + +typedef struct _sw_ite_t { + uint8_t el; /**< exception level for PE sw instrumentation instruction */ + uint64_t value; /**< payload for PE sw instrumentation instruction */ +} trace_sw_ite_t; + typedef struct _ocsd_generic_trace_elem { ocsd_gen_trc_elem_t elem_type; /**< Element type - remaining data interpreted according to this value */ ocsd_isa isa; /**< instruction set for executed instructions */ @@ -122,6 +146,9 @@ typedef struct _ocsd_generic_trace_elem { ocsd_swt_info_t sw_trace_info; /**< software trace packet info */ uint32_t num_instr_range; /**< number of instructions covered by range packet (for T32 this cannot be calculated from en-st/i_size) */ unsync_info_t unsync_eot_info; /**< additional information for unsync / end-of-trace packets. */ + trace_marker_payload_t sync_marker; /**< marker element - sync later element to position in stream */ + trace_memtrans_t mem_trans; /**< memory transaction packet - transaction event */ + trace_sw_ite_t sw_ite; /**< PE sw instrumentation using FEAT_ITE */ }; const void *ptr_extended_data; /**< pointer to extended data buffer (data trace, sw trace payload) / custom structure */ diff --git a/decoder/source/c_api/ocsd_c_api.cpp b/decoder/source/c_api/ocsd_c_api.cpp index 4824c427e3d1..750c847e78c8 100644 --- a/decoder/source/c_api/ocsd_c_api.cpp +++ b/decoder/source/c_api/ocsd_c_api.cpp @@ -234,8 +234,24 @@ OCSD_C_API ocsd_err_t ocsd_dt_attach_packet_callback( const dcd_tree_handle_t h return err; } -/*** Decode tree set element output */ +OCSD_C_API ocsd_err_t ocsd_dt_get_decode_stats(const dcd_tree_handle_t handle, + const unsigned char CSID, + ocsd_decode_stats_t **p_stats_block) +{ + DecodeTree *pDT = static_cast<DecodeTree *>(handle); + + return pDT->getDecoderStats(CSID, p_stats_block); +} + +OCSD_C_API ocsd_err_t ocsd_dt_reset_decode_stats(const dcd_tree_handle_t handle, + const unsigned char CSID) +{ + DecodeTree *pDT = static_cast<DecodeTree *>(handle); + + return pDT->resetDecoderStats(CSID); +} +/*** Decode tree set element output */ OCSD_C_API ocsd_err_t ocsd_dt_set_gen_elem_outfn(const dcd_tree_handle_t handle, FnTraceElemIn pFn, const void *p_context) { @@ -470,6 +486,39 @@ OCSD_C_API ocsd_err_t ocsd_dt_set_pkt_protocol_printer(const dcd_tree_handle_t h return err; } +OCSD_C_API void ocsd_err_str(const ocsd_err_t err, char *buffer, const int buffer_size) +{ + std::string err_str; + err_str = ocsdError::getErrorString(ocsdError(OCSD_ERR_SEV_ERROR, err)); + strncpy(buffer, err_str.c_str(), buffer_size - 1); + buffer[buffer_size - 1] = 0; +} + +OCSD_C_API ocsd_err_t ocsd_get_last_err(ocsd_trc_index_t *index, uint8_t *chan_id, char *message, const int message_len) +{ + ocsdError *p_err; + ocsd_err_t err = OCSD_OK; + std::string err_str; + + p_err = DecodeTree::getDefaultErrorLogger()->GetLastError(); + if (p_err) + { + *index = p_err->getErrorIndex(); + *chan_id = p_err->getErrorChanID(); + err_str = p_err->getErrorString(ocsdError(p_err)); + strncpy(message, err_str.c_str(), message_len - 1); + message[message_len - 1] = 0; + err = p_err->getErrorCode(); + } + else + { + message[0] = 0; + *index = OCSD_BAD_TRC_INDEX; + *chan_id = OCSD_BAD_CS_SRC_ID; + } + return err; +} + /*******************************************************************************/ /* C API local fns */ /*******************************************************************************/ diff --git a/decoder/source/ete/trc_cmp_cfg_ete.cpp b/decoder/source/ete/trc_cmp_cfg_ete.cpp new file mode 100644 index 000000000000..474cb2f7914a --- /dev/null +++ b/decoder/source/ete/trc_cmp_cfg_ete.cpp @@ -0,0 +1,98 @@ +/* +* \file trc_cmp_cfg_ete.cpp +* \brief OpenCSD : ETE config class +* +* \copyright Copyright (c) 2019, ARM Limited. All Rights Reserved. +*/ + +/* +* Redistribution and use in source and binary forms, with or without modification, +* are permitted provided that the following conditions are met: +* +* 1. Redistributions of source code must retain the above copyright notice, +* this list of conditions and the following disclaimer. +* +* 2. Redistributions in binary form must reproduce the above copyright notice, +* this list of conditions and the following disclaimer in the documentation +* and/or other materials provided with the distribution. +* +* 3. Neither the name of the copyright holder 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 "opencsd/ete/trc_cmp_cfg_ete.h" + +ETEConfig::ETEConfig() : EtmV4Config() +{ + m_ete_cfg.reg_idr0 = 0x28000EA1; + m_ete_cfg.reg_idr1 = 0x4100FFF3; + m_ete_cfg.reg_idr2 = 0x00000488; + m_ete_cfg.reg_idr8 = 0; + m_ete_cfg.reg_configr = 0xC1; + m_ete_cfg.reg_traceidr = 0; + m_ete_cfg.arch_ver = ARCH_AA64; + m_ete_cfg.core_prof = profile_CortexA; + m_ete_cfg.reg_devarch = 0x47705A13; + copyV4(); +} + +ETEConfig::ETEConfig(const ocsd_ete_cfg *cfg_regs) : EtmV4Config() +{ + m_ete_cfg = *cfg_regs; + copyV4(); +} + +ETEConfig::~ETEConfig() +{ + +} + +//! copy assignment operator for base structure into class. +ETEConfig & ETEConfig::operator=(const ocsd_ete_cfg *p_cfg) +{ + m_ete_cfg = *p_cfg; + copyV4(); + return *this; +} + +//! cast operator returning struct const reference +//operator const ocsd_ete_cfg &() const { return m_ete_cfg; }; +//! cast operator returning struct const pointer +//operator const ocsd_ete_cfg *() const { return &m_ete_cfg; }; + +// ete superset of etmv4 - move info to underlying structure. +void ETEConfig::copyV4() +{ + // copy over 1:1 regs + m_cfg.reg_idr0 = m_ete_cfg.reg_idr0; + m_cfg.reg_idr1 = m_ete_cfg.reg_idr1; + m_cfg.reg_idr2 = m_ete_cfg.reg_idr2; + m_cfg.reg_idr8 = m_ete_cfg.reg_idr8; + m_cfg.reg_idr9 = 0; + m_cfg.reg_idr10 = 0; + m_cfg.reg_idr11 = 0; + m_cfg.reg_idr12 = 0; + m_cfg.reg_idr13 = 0; + m_cfg.reg_configr = m_ete_cfg.reg_configr; + m_cfg.reg_traceidr = m_ete_cfg.reg_traceidr; + m_cfg.core_prof = m_ete_cfg.core_prof; + m_cfg.arch_ver = m_ete_cfg.arch_ver; + + // override major / minor version as part of devarch + m_MajVer = (uint8_t)((m_ete_cfg.reg_devarch & 0xF000) >> 12); + m_MinVer = (uint8_t)((m_ete_cfg.reg_devarch & 0xF0000) >> 16); +} + +/* End of File trc_cmp_cfg_ete.cpp */ diff --git a/decoder/source/etmv3/trc_pkt_elem_etmv3.cpp b/decoder/source/etmv3/trc_pkt_elem_etmv3.cpp index f1e411f72423..74034c3c3e8f 100644 --- a/decoder/source/etmv3/trc_pkt_elem_etmv3.cpp +++ b/decoder/source/etmv3/trc_pkt_elem_etmv3.cpp @@ -659,7 +659,7 @@ void EtmV3TrcPacket::getExcepStr(std::string &excepStr) const "IRQ4", "IRQ5", "IRQ6", "IRQ7", "IRQ0","usage Fault","NMI","SVC", "DebugMonitor", "Mem Manage","PendSV","SysTick", - "Reserved","PE Reset","Reserved","HardFault" + "Reserved","PE Reset","Reserved","HardFault", "Reserved","BusFault","Reserved","Reserved" }; diff --git a/decoder/source/etmv4/trc_cmp_cfg_etmv4.cpp b/decoder/source/etmv4/trc_cmp_cfg_etmv4.cpp index 9f5b37396b46..6f8bf790d293 100644 --- a/decoder/source/etmv4/trc_cmp_cfg_etmv4.cpp +++ b/decoder/source/etmv4/trc_cmp_cfg_etmv4.cpp @@ -98,7 +98,7 @@ void EtmV4Config::CalcVMIDSize() uint32_t vmidszF = (m_cfg.reg_idr2 >> 10) & 0x1F; if(vmidszF == 1) m_VMIDSize = 8; - else if(MinVersion() > 0) + else if(FullVersion() > 0x40) { if(vmidszF == 2) m_VMIDSize = 16; diff --git a/decoder/source/etmv4/trc_etmv4_stack_elem.cpp b/decoder/source/etmv4/trc_etmv4_stack_elem.cpp index 8e9ba9ac43ca..a5d889413eb2 100644 --- a/decoder/source/etmv4/trc_etmv4_stack_elem.cpp +++ b/decoder/source/etmv4/trc_etmv4_stack_elem.cpp @@ -128,6 +128,40 @@ TrcStackQElem *EtmV4P0Stack::createQElem(const ocsd_etmv4_i_pkt_type root_pkt, c return pElem; } +TrcStackElemMarker *EtmV4P0Stack::createMarkerElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const trace_marker_payload_t &marker) +{ + TrcStackElemMarker *pElem = new (std::nothrow) TrcStackElemMarker(root_pkt, root_index); + if (pElem) + { + pElem->setMarker(marker); + push_front(pElem); + } + return pElem; +} + +TrcStackElemAddr *EtmV4P0Stack::createSrcAddrElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const etmv4_addr_val_t &addr_val) +{ + TrcStackElemAddr *pElem = new (std::nothrow) TrcStackElemAddr(root_pkt, root_index, true); + if (pElem) + { + pElem->setAddr(addr_val); + push_front(pElem); + } + return pElem; +} + +TrcStackElemITE *EtmV4P0Stack::createITEElem(const ocsd_etmv4_i_pkt_type root_pkt, const ocsd_trc_index_t root_index, const trace_sw_ite_t &ite) +{ + TrcStackElemITE *pElem = new (std::nothrow) TrcStackElemITE(root_pkt, root_index); + if (pElem) + { + pElem->setITE(ite); + push_front(pElem); + } + return pElem; +} + + // iteration functions void EtmV4P0Stack::from_front_init() { @@ -150,6 +184,10 @@ void EtmV4P0Stack::erase_curr_from_front() erase_iter = m_iter; erase_iter--; m_P0_stack.erase(erase_iter); + + // explicitly delete the item here as the caller can no longer reference it. + // fixes memory leak from github issue #52 + delete *erase_iter; } diff --git a/decoder/source/etmv4/trc_pkt_decode_etmv4i.cpp b/decoder/source/etmv4/trc_pkt_decode_etmv4i.cpp index 393046ba23d1..89c45052868c 100644 --- a/decoder/source/etmv4/trc_pkt_decode_etmv4i.cpp +++ b/decoder/source/etmv4/trc_pkt_decode_etmv4i.cpp @@ -39,7 +39,8 @@ #define DCD_NAME "DCD_ETMV4" -static const uint32_t ETMV4_SUPPORTED_DECODE_OP_FLAGS = OCSD_OPFLG_PKTDEC_COMMON; +static const uint32_t ETMV4_SUPPORTED_DECODE_OP_FLAGS = OCSD_OPFLG_PKTDEC_COMMON | + ETE_OPFLG_PKTDEC_SRCADDR_N_ATOMS; TrcPktDecodeEtmV4I::TrcPktDecodeEtmV4I() : TrcPktDecodeBase(DCD_NAME) @@ -101,6 +102,14 @@ ocsd_datapath_resp_t TrcPktDecodeEtmV4I::processPacket() m_curr_state = DECODE_PKTS; m_return_stack.flush(); } + /* ETE spec allows early event packets. */ + else if ((m_config->MajVersion() >= 0x5) && + (m_curr_packet_in->getType() == ETM4_PKT_I_EVENT)) + { + err = decodePacket(); + if (err) + resp = OCSD_RESP_FATAL_INVALID_DATA; + } bPktDone = true; break; @@ -261,6 +270,7 @@ void TrcPktDecodeEtmV4I::resetDecoder() m_out_elem.resetElemStack(); m_last_IS = 0; clearElemRes(); + m_ete_first_ts_marker = false; // elements associated with data trace #ifdef DATA_TRACE_SUPPORTED @@ -358,7 +368,25 @@ ocsd_err_t TrcPktDecodeEtmV4I::decodePacket() if (m_P0_stack.createAddrElem(m_curr_packet_in->getType(), m_index_curr_pkt, addr) == 0) bAllocErr = true; - is_addr = true; + is_addr = true; // may be waiting for target address from indirect branch + } + break; + + case ETE_PKT_I_SRC_ADDR_MATCH: + case ETE_PKT_I_SRC_ADDR_S_IS0: + case ETE_PKT_I_SRC_ADDR_S_IS1: + case ETE_PKT_I_SRC_ADDR_L_32IS0: + case ETE_PKT_I_SRC_ADDR_L_32IS1: + case ETE_PKT_I_SRC_ADDR_L_64IS0: + case ETE_PKT_I_SRC_ADDR_L_64IS1: + { + etmv4_addr_val_t addr; + + addr.val = m_curr_packet_in->getAddrVal(); + addr.isa = m_curr_packet_in->getAddrIS(); + if (m_P0_stack.createSrcAddrElem(m_curr_packet_in->getType(), m_index_curr_pkt, addr) == 0) + bAllocErr = true; + m_curr_spec_depth++; } break; @@ -438,16 +466,26 @@ ocsd_err_t TrcPktDecodeEtmV4I::decodePacket() } break; + case ETE_PKT_I_TS_MARKER: + { + trace_marker_payload_t marker; + marker.type = ELEM_MARKER_TS; + marker.value = 0; + if (m_P0_stack.createMarkerElem(m_curr_packet_in->getType(), m_index_curr_pkt, marker) == 0) + bAllocErr = true; + } + break; + case ETM4_PKT_I_BAD_SEQUENCE: - err = handleBadPacket("Bad byte sequence in packet."); + err = handleBadPacket("Bad byte sequence in packet.", m_index_curr_pkt); break; case ETM4_PKT_I_BAD_TRACEMODE: - err = handleBadPacket("Invalid packet type for trace mode."); + err = handleBadPacket("Invalid packet type for trace mode.", m_index_curr_pkt); break; case ETM4_PKT_I_RESERVED: - err = handleBadPacket("Reserved packet header"); + err = handleBadPacket("Reserved packet header", m_index_curr_pkt); break; // speculation @@ -502,8 +540,44 @@ ocsd_err_t TrcPktDecodeEtmV4I::decodePacket() } break; + /* transactional memory packets */ + case ETE_PKT_I_TRANS_ST: + { + if (m_P0_stack.createParamElemNoParam(P0_TRANS_START, m_config->commTransP0(), m_curr_packet_in->getType(), m_index_curr_pkt) == 0) + bAllocErr = true; + if (m_config->commTransP0()) + m_curr_spec_depth++; + } + break; + + case ETE_PKT_I_TRANS_COMMIT: + { + if (m_P0_stack.createParamElemNoParam(P0_TRANS_COMMIT, false, m_curr_packet_in->getType(), m_index_curr_pkt) == 0) + bAllocErr = true; + } + break; + + case ETE_PKT_I_TRANS_FAIL: + { + if (m_P0_stack.createParamElemNoParam(P0_TRANS_FAIL, false, m_curr_packet_in->getType(), m_index_curr_pkt) == 0) + bAllocErr = true; + } + break; + + /* PE Instrumentation packet */ + case ETE_PKT_I_ITE: + { + trace_sw_ite_t ite_pkt; + + ite_pkt.el = m_curr_packet_in->getITE_EL(); + ite_pkt.value = m_curr_packet_in->getITE_value(); + if (m_P0_stack.createITEElem(m_curr_packet_in->getType(), m_index_curr_pkt, ite_pkt) == 0) + bAllocErr = true; + } + break; + /*** presently unsupported packets ***/ - /* conditional instruction tracing */ + /* conditional instruction tracing */ case ETM4_PKT_I_COND_FLUSH: case ETM4_PKT_I_COND_I_F1: case ETM4_PKT_I_COND_I_F2: @@ -525,14 +599,16 @@ ocsd_err_t TrcPktDecodeEtmV4I::decodePacket() //resp = OCSD_RESP_FATAL_INVALID_DATA; #endif err = OCSD_ERR_UNSUPP_DECODE_PKT; - LogError(ocsdError(sev, err, "Data trace releated, unsupported packet type.")); + if (sev == OCSD_ERR_SEV_WARN) + LogError(ocsdError(sev, err, "Data trace related, unsupported packet type.")); + else + err = handlePacketSeqErr(err, m_index_curr_pkt, "Data trace related, unsupported packet type."); } break; default: // any other packet - bad packet error - err = OCSD_ERR_BAD_DECODE_PKT; - LogError(ocsdError(OCSD_ERR_SEV_ERROR,err,"Unknown packet type.")); + err = handleBadPacket("Unknown packet type.", m_index_curr_pkt); break; } @@ -566,6 +642,9 @@ void TrcPktDecodeEtmV4I::doTraceInfoPacket() m_trace_info = m_curr_packet_in->getTraceInfo(); m_cc_threshold = m_curr_packet_in->getCCThreshold(); m_curr_spec_depth = m_curr_packet_in->getCurrSpecDepth(); + /* put a trans marker in stack if started in trans state */ + if (m_trace_info.bits.in_trans_state) + m_P0_stack.createParamElemNoParam(P0_TRANS_TRACE_INIT, false, m_curr_packet_in->getType(), m_index_curr_pkt); // elements associated with data trace #ifdef DATA_TRACE_SUPPORTED @@ -592,14 +671,18 @@ ocsd_datapath_resp_t TrcPktDecodeEtmV4I::resolveElements() if (m_elem_res.P0_commit) err = commitElements(); - if (!err && m_elem_res.P0_cancel) - err = cancelElements(); + // allow for early flush on context element + if (!m_elem_res.P0_commit) { - if (!err && m_elem_res.mispredict) - err = mispredictAtom(); - - if (!err && m_elem_res.discard) - err = discardElements(); + if (!err && m_elem_res.P0_cancel) + err = cancelElements(); + + if (!err && m_elem_res.mispredict) + err = mispredictAtom(); + + if (!err && m_elem_res.discard) + err = discardElements(); + } if (err != OCSD_OK) resp = OCSD_RESP_FATAL_INVALID_DATA; @@ -634,10 +717,11 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElements() int num_commit_req = m_elem_res.P0_commit; ocsd_trc_index_t err_idx = 0; TrcStackElem *pElem = 0; // stacked element pointer + bool contextFlush = false; err = m_out_elem.resetElemStack(); - while(m_elem_res.P0_commit && !err) + while(m_elem_res.P0_commit && !err && !contextFlush) { if (m_P0_stack.size() > 0) { @@ -646,7 +730,7 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElements() switch (pElem->getP0Type()) { - // indicates a trace restart - beginning of trace or discontinuiuty + // indicates a trace restart - beginning of trace or discontinuiuty case P0_TRC_ON: err = m_out_elem.addElemType(pElem->getRootIndex(), OCSD_GEN_TRC_ELEM_TRACE_ON); if (!err) @@ -661,7 +745,7 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElements() { TrcStackElemAddr *pAddrElem = dynamic_cast<TrcStackElemAddr *>(pElem); m_return_stack.clear_pop_pending(); // address removes the need to pop the indirect address target from the stack - if(pAddrElem) + if (pAddrElem) { SetInstrInfoInAddrISA(pAddrElem->getAddr().val, pAddrElem->getAddr().isa); m_need_addr = false; @@ -672,15 +756,24 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElements() case P0_CTXT: { TrcStackElemCtxt *pCtxtElem = dynamic_cast<TrcStackElemCtxt *>(pElem); - if(pCtxtElem) + if (pCtxtElem) { etmv4_context_t ctxt = pCtxtElem->getContext(); // check this is an updated context if(ctxt.updated) { err = m_out_elem.addElem(pElem->getRootIndex()); - if (!err) + if (!err) { updateContext(pCtxtElem, outElem()); + + // updated context - need to force this to be output to the client so correct memory + // context can be used. + contextFlush = true; + + // invalidate memory accessor cacheing - force next memory access out to client to + // ensure that the correct memory context is in play when decoding subsequent atoms. + invalidateMemAccCache(); + } } } } @@ -693,11 +786,15 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElements() err = processTS_CC_EventElem(pElem); break; + case P0_MARKER: + err = processMarkerElem(pElem); + break; + case P0_ATOM: { TrcStackElemAtom *pAtomElem = dynamic_cast<TrcStackElemAtom *>(pElem); - if(pAtomElem) + if (pAtomElem) { while(!pAtomElem->isEmpty() && m_elem_res.P0_commit && !err) { @@ -709,13 +806,13 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElements() // if address and context do instruction trace follower. // otherwise skip atom and reduce committed elements - if(!m_need_ctxt && !m_need_addr) + if (!m_need_ctxt && !m_need_addr) { err = processAtom(atom); } m_elem_res.P0_commit--; // mark committed } - if(!pAtomElem->isEmpty()) + if (!pAtomElem->isEmpty()) bPopElem = false; // don't remove if still atoms to process. } } @@ -746,9 +843,27 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElements() m_elem_res.P0_commit--; break; + case P0_SRC_ADDR: + err = processSourceAddress(); + m_elem_res.P0_commit--; + break; + case P0_Q: err = processQElement(); m_elem_res.P0_commit--; + break; + + case P0_TRANS_START: + if (m_config->commTransP0()) + m_elem_res.P0_commit--; + case P0_TRANS_COMMIT: + case P0_TRANS_FAIL: + case P0_TRANS_TRACE_INIT: + err = processTransElem(pElem); + break; + + case P0_ITE: + err = processITEElem(pElem); break; } @@ -757,9 +872,8 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElements() } else { - // too few elements for commit operation - decode error. - err = OCSD_ERR_COMMIT_PKT_OVERRUN; - LogError(ocsdError(OCSD_ERR_SEV_ERROR,OCSD_ERR_COMMIT_PKT_OVERRUN,err_idx,m_CSID,"Not enough elements to commit")); + // too few elements for commit operation - decode error. + err = handlePacketSeqErr(OCSD_ERR_COMMIT_PKT_OVERRUN, err_idx, "Not enough elements to commit"); } } @@ -779,7 +893,7 @@ ocsd_err_t TrcPktDecodeEtmV4I::returnStackPop() if (m_return_stack.overflow()) { err = OCSD_ERR_RET_STACK_OVERFLOW; - LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, "Trace Return Stack Overflow.")); + err = handlePacketSeqErr(err, OCSD_BAD_TRC_INDEX, "Trace Return Stack Overflow."); } else { @@ -824,6 +938,25 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElemOnEOT() case P0_CTXT: break; + // trans + // P0 trans - clear and stop, otherwise skip + case P0_TRANS_START: + if (m_config->commTransP0()) + m_P0_stack.delete_all(); + break; + + // non-speculative trans fail / commit - could appear at EoT after valid trace + // but without a subsequent P0 that would force output. + case P0_TRANS_FAIL: + case P0_TRANS_COMMIT: + if (m_max_spec_depth == 0 || m_curr_spec_depth == 0) + err = processTransElem(pElem); + break; + + // others - skip non P0 + case P0_TRANS_TRACE_INIT: + break; + // output case P0_EVENT: case P0_TS: @@ -831,6 +964,14 @@ ocsd_err_t TrcPktDecodeEtmV4I::commitElemOnEOT() case P0_TS_CC: err = processTS_CC_EventElem(pElem); break; + + case P0_MARKER: + err = processMarkerElem(pElem); + break; + + case P0_ITE: + err = processITEElem(pElem); + break; } m_P0_stack.delete_back(); } @@ -886,6 +1027,8 @@ ocsd_err_t TrcPktDecodeEtmV4I::cancelElements() case P0_TS: case P0_CC: case P0_TS_CC: + case P0_MARKER: + case P0_ITE: m_P0_stack.pop_front(false); temp.push_back(pElem); break; @@ -895,6 +1038,8 @@ ocsd_err_t TrcPktDecodeEtmV4I::cancelElements() break; } } + if (m_P0_stack.size() == 0) + P0StackDone = true; } } // may have some unseen elements @@ -908,21 +1053,23 @@ ocsd_err_t TrcPktDecodeEtmV4I::cancelElements() { // too few elements for commit operation - decode error. err = OCSD_ERR_COMMIT_PKT_OVERRUN; - LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, m_index_curr_pkt, m_CSID, "Not enough elements to cancel")); + err = handlePacketSeqErr(err, m_index_curr_pkt, "Not enough elements to cancel"); m_elem_res.P0_cancel = 0; break; } - - if (temp.size()) + } + + /* restore any saved elements that are unaffected by cancel. */ + if (temp.size()) + { + while (temp.size()) { - while (temp.size()) - { - pElem = temp.back(); - m_P0_stack.push_front(pElem); - temp.pop_back(false); - } + pElem = temp.back(); + m_P0_stack.push_front(pElem); + temp.pop_back(false); } } + m_curr_spec_depth -= num_cancel_req - m_elem_res.P0_cancel; return err; } @@ -964,7 +1111,8 @@ ocsd_err_t TrcPktDecodeEtmV4I::mispredictAtom() if (!bFoundAtom && !m_unseen_spec_elem) { err = OCSD_ERR_COMMIT_PKT_OVERRUN; - LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, m_index_curr_pkt, m_CSID, "Not found mispredict atom")); + err = handlePacketSeqErr(err, m_index_curr_pkt, "Not found mispredict atom"); + //LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, m_index_curr_pkt, m_CSID, "Not found mispredict atom")); } m_elem_res.mispredict = false; return err; @@ -980,7 +1128,12 @@ ocsd_err_t TrcPktDecodeEtmV4I::discardElements() while ((m_P0_stack.size() > 0) && !err) { pElem = m_P0_stack.back(); - err = processTS_CC_EventElem(pElem); + if (pElem->getP0Type() == P0_MARKER) + err = processMarkerElem(pElem); + else if (pElem->getP0Type() == P0_MARKER) + err = processITEElem(pElem); + else + err = processTS_CC_EventElem(pElem); m_P0_stack.delete_back(); } @@ -1002,6 +1155,8 @@ ocsd_err_t TrcPktDecodeEtmV4I::discardElements() ocsd_err_t TrcPktDecodeEtmV4I::processTS_CC_EventElem(TrcStackElem *pElem) { ocsd_err_t err = OCSD_OK; + // ignore ts for ETE if not seen first TS marker on systems that use this. + bool bPermitTS = !m_config->eteHasTSMarker() || m_ete_first_ts_marker; switch (pElem->getP0Type()) { @@ -1016,7 +1171,7 @@ ocsd_err_t TrcPktDecodeEtmV4I::processTS_CC_EventElem(TrcStackElem *pElem) case P0_TS: { TrcStackElemParam *pParamElem = dynamic_cast<TrcStackElemParam *>(pElem); - if (pParamElem) + if (pParamElem && bPermitTS) err = addElemTS(pParamElem, false); } break; @@ -1032,7 +1187,7 @@ ocsd_err_t TrcPktDecodeEtmV4I::processTS_CC_EventElem(TrcStackElem *pElem) case P0_TS_CC: { TrcStackElemParam *pParamElem = dynamic_cast<TrcStackElemParam *>(pElem); - if (pParamElem) + if (pParamElem && bPermitTS) err = addElemTS(pParamElem, true); } break; @@ -1041,6 +1196,46 @@ ocsd_err_t TrcPktDecodeEtmV4I::processTS_CC_EventElem(TrcStackElem *pElem) } +ocsd_err_t TrcPktDecodeEtmV4I::processMarkerElem(TrcStackElem *pElem) +{ + ocsd_err_t err = OCSD_OK; + TrcStackElemMarker *pMarkerElem = dynamic_cast<TrcStackElemMarker *>(pElem); + + if (m_config->eteHasTSMarker() && (pMarkerElem->getMarker().type == ELEM_MARKER_TS)) + m_ete_first_ts_marker = true; + + if (!err) + { + err = m_out_elem.addElemType(pElem->getRootIndex(), OCSD_GEN_TRC_ELEM_SYNC_MARKER); + if (!err) + m_out_elem.getCurrElem().setSyncMarker(pMarkerElem->getMarker()); + } + return err; +} + +ocsd_err_t TrcPktDecodeEtmV4I::processTransElem(TrcStackElem *pElem) +{ + ocsd_err_t err = m_out_elem.addElemType(pElem->getRootIndex(), OCSD_GEN_TRC_ELEM_MEMTRANS); + if (!err) + { + outElem().setTransactionType((trace_memtrans_t)((int)OCSD_MEM_TRANS_FAIL - + ((int)P0_TRANS_FAIL - (int)pElem->getP0Type()))); + } + return err; +} + +ocsd_err_t TrcPktDecodeEtmV4I::processITEElem(TrcStackElem *pElem) +{ + ocsd_err_t err = OCSD_OK; + TrcStackElemITE *pITEElem = dynamic_cast<TrcStackElemITE *>(pElem); + + err = m_out_elem.addElemType(pElem->getRootIndex(), OCSD_GEN_TRC_ELEM_INSTRUMENTATION); + if (!err) { + outElem().setITEInfo(pITEElem->getITE()); + } + return err; +} + ocsd_err_t TrcPktDecodeEtmV4I::addElemCC(TrcStackElemParam *pParamElem) { ocsd_err_t err = OCSD_OK; @@ -1078,16 +1273,22 @@ ocsd_err_t TrcPktDecodeEtmV4I::addElemEvent(TrcStackElemParam *pParamElem) return err; } -void TrcPktDecodeEtmV4I::setElemTraceRange(OcsdTraceElement &elemIn, const instr_range_t &addr_range, - const bool executed, ocsd_trc_index_t index) +void TrcPktDecodeEtmV4I::setElemTraceRange(OcsdTraceElement &elemIn, const instr_range_t &addr_range, + const bool executed, ocsd_trc_index_t index) +{ + setElemTraceRangeInstr(elemIn, addr_range, executed, index, m_instr_info); +} + +void TrcPktDecodeEtmV4I::setElemTraceRangeInstr(OcsdTraceElement &elemIn, const instr_range_t &addr_range, + const bool executed, ocsd_trc_index_t index, ocsd_instr_info &instr) { elemIn.setType(OCSD_GEN_TRC_ELEM_INSTR_RANGE); - elemIn.setLastInstrInfo(executed, m_instr_info.type, m_instr_info.sub_type, m_instr_info.instr_size); - elemIn.setISA(m_instr_info.isa); - elemIn.setLastInstrCond(m_instr_info.is_conditional); + elemIn.setLastInstrInfo(executed, instr.type, instr.sub_type, instr.instr_size); + elemIn.setISA(instr.isa); + elemIn.setLastInstrCond(instr.is_conditional); elemIn.setAddrRange(addr_range.st_addr, addr_range.en_addr, addr_range.num_instr); if (executed) - m_instr_info.isa = m_instr_info.next_isa; + instr.isa = instr.next_isa; } ocsd_err_t TrcPktDecodeEtmV4I::processAtom(const ocsd_atm_val atom) @@ -1096,6 +1297,7 @@ ocsd_err_t TrcPktDecodeEtmV4I::processAtom(const ocsd_atm_val atom) TrcStackElem *pElem = m_P0_stack.back(); // get the atom element WP_res_t WPRes; instr_range_t addr_range; + bool ETE_ERET = false; // new element for this processed atom if ((err = m_out_elem.addElem(pElem->getRootIndex())) != OCSD_OK) @@ -1114,7 +1316,8 @@ ocsd_err_t TrcPktDecodeEtmV4I::processAtom(const ocsd_atm_val atom) } else { - LogError(ocsdError(OCSD_ERR_SEV_ERROR,err,pElem->getRootIndex(),m_CSID,"Error processing atom packet.")); + err = handlePacketSeqErr(err, pElem->getRootIndex(), "Error processing atom packet."); + //LogError(ocsdError(OCSD_ERR_SEV_ERROR,err,pElem->getRootIndex(),m_CSID,"Error processing atom packet.")); return err; } } @@ -1144,10 +1347,22 @@ ocsd_err_t TrcPktDecodeEtmV4I::processAtom(const ocsd_atm_val atom) if (m_instr_info.is_link) m_return_stack.push(nextAddr,m_instr_info.isa); m_return_stack.set_pop_pending(); // need to know next packet before we know what is to happen + + /* ETE does not have ERET trace packets - however to maintain the illusion if we see an ERET + output a gen elem ERET packet */ + if (isETEConfig() && (m_instr_info.sub_type == OCSD_S_INSTR_V8_ERET)) + ETE_ERET = true; } break; } setElemTraceRange(outElem(), addr_range, (atom == ATOM_E), pElem->getRootIndex()); + + if (ETE_ERET) + { + err = m_out_elem.addElemType(pElem->getRootIndex(), OCSD_GEN_TRC_ELEM_EXCEPTION_RET); + if (err) + return err; + } } else { @@ -1182,55 +1397,64 @@ ocsd_err_t TrcPktDecodeEtmV4I::processException() TrcStackElemAddr *pAddressElem = 0; TrcStackElemCtxt *pCtxtElem = 0; bool branch_target = false; // exception address implies prior branch target address - ocsd_vaddr_t excep_ret_addr; + ocsd_vaddr_t excep_ret_addr = 0; ocsd_trc_index_t excep_pkt_index; WP_res_t WPRes = WP_NOT_FOUND; + bool ETE_resetPkt = false; // grab the exception element off the stack pExceptElem = dynamic_cast<TrcStackElemExcept *>(m_P0_stack.back()); // get the exception element excep_pkt_index = pExceptElem->getRootIndex(); branch_target = pExceptElem->getPrevSame(); + if (pExceptElem->getRootPkt() == ETE_PKT_I_PE_RESET) + ETE_resetPkt = true; m_P0_stack.pop_back(); // remove the exception element - pElem = m_P0_stack.back(); // look at next element. - if(pElem->getP0Type() == P0_CTXT) + // ETE reset has no follow up address, the rest of the exceptions do.... + if (!ETE_resetPkt) { - pCtxtElem = dynamic_cast<TrcStackElemCtxt *>(pElem); - m_P0_stack.pop_back(); // remove the context element - pElem = m_P0_stack.back(); // next one should be an address element - } - - if(pElem->getP0Type() != P0_ADDR) - { - // no following address element - indicate processing error. - LogError(ocsdError(OCSD_ERR_SEV_ERROR,OCSD_ERR_BAD_PACKET_SEQ, excep_pkt_index,m_CSID,"Address missing in exception packet.")); - return OCSD_ERR_BAD_PACKET_SEQ; - } - else - { - // extract address - pAddressElem = static_cast<TrcStackElemAddr *>(pElem); - excep_ret_addr = pAddressElem->getAddr().val; - - // see if there is an address + optional context element implied - // prior to the exception. - if (branch_target) + pElem = m_P0_stack.back(); // look at next element. + if (pElem->getP0Type() == P0_CTXT) { - // this was a branch target address - update current setting - bool b64bit = m_instr_info.isa == ocsd_isa_aarch64; - if (pCtxtElem) { - b64bit = pCtxtElem->getContext().SF; - } + pCtxtElem = dynamic_cast<TrcStackElemCtxt *>(pElem); + m_P0_stack.pop_back(); // remove the context element + pElem = m_P0_stack.back(); // next one should be an address element + } - // as the exception address was also a branch target address then update the - // current maintained address value. This also means that there is no range to - // output before the exception packet. - m_instr_info.instr_addr = excep_ret_addr; - m_instr_info.isa = (pAddressElem->getAddr().isa == 0) ? + if (pElem->getP0Type() != P0_ADDR) + { + // no following address element - indicate processing error. + + err = handlePacketSeqErr(OCSD_ERR_BAD_PACKET_SEQ, m_index_curr_pkt, "Address missing in exception packet."); + //LogError(ocsdError(OCSD_ERR_SEV_ERROR, OCSD_ERR_BAD_PACKET_SEQ, excep_pkt_index, m_CSID, "Address missing in exception packet.")); + return err; + } + else + { + // extract address + pAddressElem = static_cast<TrcStackElemAddr *>(pElem); + excep_ret_addr = pAddressElem->getAddr().val; + + // see if there is an address + optional context element implied + // prior to the exception. + if (branch_target) + { + // this was a branch target address - update current setting + bool b64bit = m_instr_info.isa == ocsd_isa_aarch64; + if (pCtxtElem) { + b64bit = pCtxtElem->getContext().SF; + } + + // as the exception address was also a branch target address then update the + // current maintained address value. This also means that there is no range to + // output before the exception packet. + m_instr_info.instr_addr = excep_ret_addr; + m_instr_info.isa = (pAddressElem->getAddr().isa == 0) ? (b64bit ? ocsd_isa_aarch64 : ocsd_isa_arm) : ocsd_isa_thumb2; - m_need_addr = false; + m_need_addr = false; + } } - } + } // need to output something - set up an element if ((err = m_out_elem.addElem(excep_pkt_index))) @@ -1246,69 +1470,72 @@ ocsd_err_t TrcPktDecodeEtmV4I::processException() return err; } - // if the preferred return address is not the end of the last output range... - if (m_instr_info.instr_addr != excep_ret_addr) - { - bool range_out = false; - instr_range_t addr_range; + if (!ETE_resetPkt) + { + // if the preferred return address is not the end of the last output range... + if (m_instr_info.instr_addr != excep_ret_addr) + { + bool range_out = false; + instr_range_t addr_range; - // look for match to return address. - err = traceInstrToWP(addr_range, WPRes, true, excep_ret_addr); + // look for match to return address. + err = traceInstrToWP(addr_range, WPRes, true, excep_ret_addr); - if(err != OCSD_OK) - { - if(err == OCSD_ERR_UNSUPPORTED_ISA) + if (err != OCSD_OK) { - m_need_addr = true; - m_need_ctxt = true; - LogError(ocsdError(OCSD_ERR_SEV_WARN,err, excep_pkt_index,m_CSID,"Warning: unsupported instruction set processing exception packet.")); + if (err == OCSD_ERR_UNSUPPORTED_ISA) + { + m_need_addr = true; + m_need_ctxt = true; + LogError(ocsdError(OCSD_ERR_SEV_WARN, err, excep_pkt_index, m_CSID, "Warning: unsupported instruction set processing exception packet.")); + } + else + { + LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, excep_pkt_index, m_CSID, "Error processing exception packet.")); + } + return err; + } + + if (WPFound(WPRes)) + { + // waypoint address found - output range + setElemTraceRange(outElem(), addr_range, true, excep_pkt_index); + range_out = true; } else { - LogError(ocsdError(OCSD_ERR_SEV_ERROR,err, excep_pkt_index,m_CSID,"Error processing exception packet.")); + // no waypoint - likely inaccessible memory range. + m_need_addr = true; // need an address update + + if (addr_range.st_addr != addr_range.en_addr) + { + // some trace before we were out of memory access range + setElemTraceRange(outElem(), addr_range, true, excep_pkt_index); + range_out = true; + } } - return err; - } - if(WPFound(WPRes)) - { - // waypoint address found - output range - setElemTraceRange(outElem(), addr_range, true, excep_pkt_index); - range_out = true; - } - else - { - // no waypoint - likely inaccessible memory range. - m_need_addr = true; // need an address update - - if(addr_range.st_addr != addr_range.en_addr) + // used the element need another for NACC or EXCEP. + if (range_out) { - // some trace before we were out of memory access range - setElemTraceRange(outElem(), addr_range, true, excep_pkt_index); - range_out = true; + if ((err = m_out_elem.addElem(excep_pkt_index))) + return err; } } - // used the element need another for NACC or EXCEP. - if (range_out) + // watchpoint walk resulted in inaccessible memory call... + if (WPNacc(WPRes)) { + + outElem().setType(OCSD_GEN_TRC_ELEM_ADDR_NACC); + outElem().st_addr = m_instr_info.instr_addr; + + // used the element - need another for the final exception packet. if ((err = m_out_elem.addElem(excep_pkt_index))) return err; } } - - // watchpoint walk resulted in inaccessible memory call... - if (WPNacc(WPRes)) - { - - outElem().setType(OCSD_GEN_TRC_ELEM_ADDR_NACC); - outElem().st_addr = m_instr_info.instr_addr; - // used the element - need another for the final exception packet. - if ((err = m_out_elem.addElem(excep_pkt_index))) - return err; - } - // output exception element. outElem().setType(OCSD_GEN_TRC_ELEM_EXCEPTION); @@ -1453,6 +1680,163 @@ ocsd_err_t TrcPktDecodeEtmV4I::processQElement() return err; } +ocsd_err_t TrcPktDecodeEtmV4I::processSourceAddress() +{ + ocsd_err_t err = OCSD_OK; + TrcStackElemAddr *pElem = dynamic_cast<TrcStackElemAddr *>(m_P0_stack.back()); // get the address element + etmv4_addr_val_t srcAddr = pElem->getAddr(); + uint32_t opcode, bytesReq = 4; + ocsd_vaddr_t currAddr = m_instr_info.instr_addr; // get the latest decoded address. + instr_range_t out_range; + bool bSplitRangeOnN = getComponentOpMode() & ETE_OPFLG_PKTDEC_SRCADDR_N_ATOMS ? true : false; + + // check we can read instruction @ source address + err = accessMemory(srcAddr.val, getCurrMemSpace(), &bytesReq, (uint8_t *)&opcode); + if (err != OCSD_OK) + { + LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, pElem->getRootIndex(), m_CSID, "Mem access error processing source address packet.")); + return err; + } + + if (bytesReq != 4) + { + // can't access - no bytes returned - output nacc. + err = m_out_elem.addElemType(pElem->getRootIndex(), OCSD_GEN_TRC_ELEM_ADDR_NACC); + outElem().setAddrStart(srcAddr.val); + return err; + } + + // analyze opcode @ source address. + m_instr_info.opcode = opcode; + m_instr_info.instr_addr = srcAddr.val; + err = instrDecode(&m_instr_info); + if (err != OCSD_OK) + { + LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, pElem->getRootIndex(), m_CSID, "Instruction decode error processing source address packet.")); + return err; + } + m_instr_info.instr_addr += m_instr_info.instr_size; + + // initial instruction count for the range. + out_range.num_instr = 1; + + // calculate range traced... + if (m_need_addr || (currAddr > srcAddr.val)) + { + // we were waiting for a target address, or missing trace + // that indicates how we got to the source address. + m_need_addr = false; + out_range.st_addr = srcAddr.val; + } + else + out_range.st_addr = currAddr; + out_range.en_addr = m_instr_info.instr_addr; + + // count instructions + if (out_range.en_addr - out_range.st_addr > m_instr_info.instr_size) + { + if ((m_instr_info.isa != ocsd_isa_thumb2) && !bSplitRangeOnN) + { + // all 4 byte instructions - just calculate... + out_range.num_instr = (uint32_t)(out_range.en_addr - out_range.st_addr) / 4; + } + else + { + // need to count T32 - 2 or 4 byte instructions or we are spotting N atoms + ocsd_instr_info instr; // going back to start of range so make a copy of info. + bool bMemAccErr = false; + + instr.instr_addr = out_range.st_addr; + instr.isa = m_instr_info.isa; + instr.pe_type = m_instr_info.pe_type; + instr.dsb_dmb_waypoints = m_instr_info.dsb_dmb_waypoints; + instr.wfi_wfe_branch = m_instr_info.wfi_wfe_branch; + out_range.num_instr = 0; + + while ((instr.instr_addr < out_range.en_addr) && !bMemAccErr) + { + bytesReq = 4; + err = accessMemory(instr.instr_addr, getCurrMemSpace(), &bytesReq, (uint8_t *)&opcode); + if (err != OCSD_OK) + { + LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, pElem->getRootIndex(), m_CSID, "Mem access error processing source address packet.")); + return err; + } + + if (bytesReq == 4) + { + instr.opcode = opcode; + err = instrDecode(&instr); + if (err != OCSD_OK) + { + LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, pElem->getRootIndex(), m_CSID, "Instruction decode error processing source address packet.")); + return err; + } + + instr.instr_addr += instr.instr_size; + out_range.num_instr++; + + /* if we are doing N atom ranges ...*/ + if (bSplitRangeOnN && (instr.instr_addr < out_range.en_addr)) + { + if (instr.type != OCSD_INSTR_OTHER) + { + instr_range_t mid_range = out_range; + mid_range.en_addr = instr.instr_addr; + + err = m_out_elem.addElem(pElem->getRootIndex()); + if (err) + return err; + setElemTraceRangeInstr(outElem(), mid_range, false, pElem->getRootIndex(), instr); + + out_range.st_addr = mid_range.en_addr; + out_range.num_instr = 0; + } + } + } + else + { + // something inaccessible between last and current... + bMemAccErr = true; + + err = m_out_elem.addElemType(pElem->getRootIndex(), OCSD_GEN_TRC_ELEM_ADDR_NACC); + if (err) + return err; + outElem().setAddrStart(srcAddr.val); + + // force range to the one instruction + out_range.num_instr = 1; + out_range.st_addr = srcAddr.val; + out_range.en_addr = m_instr_info.instr_addr; // instr after the decoded instruction @ srcAddr. + } + } + } + } + + // got to the source address - output trace range, and instruction as E atom. + switch (m_instr_info.type) + { + case OCSD_INSTR_BR: + if (m_instr_info.is_link) + m_return_stack.push(m_instr_info.instr_addr, m_instr_info.isa); + m_instr_info.instr_addr = m_instr_info.branch_addr; + break; + + case OCSD_INSTR_BR_INDIRECT: + m_need_addr = true; // indirect branch taken - need new address. + if (m_instr_info.is_link) + m_return_stack.push(m_instr_info.instr_addr, m_instr_info.isa); + m_return_stack.set_pop_pending(); // need to know next packet before we know what is to happen + break; + } + m_instr_info.isa = m_instr_info.next_isa; + + // set the trace range element. + m_out_elem.addElem(pElem->getRootIndex()); + setElemTraceRange(outElem(), out_range, true, pElem->getRootIndex()); + return err; +} + void TrcPktDecodeEtmV4I::SetInstrInfoInAddrISA(const ocsd_vaddr_t addr_val, const uint8_t isa) { m_instr_info.instr_addr = addr_val; @@ -1518,7 +1902,10 @@ void TrcPktDecodeEtmV4I::updateContext(TrcStackElemCtxt *pCtxtElem, OcsdTraceEle m_is_64bit = (ctxt.SF != 0); elem.context.bits64 = ctxt.SF; m_is_secure = (ctxt.NS == 0); - elem.context.security_level = ctxt.NS ? ocsd_sec_nonsecure : ocsd_sec_secure; + if (ctxt.NSE) + elem.context.security_level = ctxt.NS ? ocsd_sec_realm : ocsd_sec_root; + else + elem.context.security_level = ctxt.NS ? ocsd_sec_nonsecure : ocsd_sec_secure; elem.context.exception_level = (ocsd_ex_level)ctxt.EL; elem.context.el_valid = 1; if(ctxt.updated_c) @@ -1537,27 +1924,42 @@ void TrcPktDecodeEtmV4I::updateContext(TrcStackElemCtxt *pCtxtElem, OcsdTraceEle m_need_ctxt = false; } -ocsd_err_t TrcPktDecodeEtmV4I::handleBadPacket(const char *reason) +ocsd_err_t TrcPktDecodeEtmV4I::handleBadPacket(const char *reason, ocsd_trc_index_t index /* = OCSD_BAD_TRC_INDEX */) { - ocsd_err_t err = OCSD_OK; + ocsd_err_severity_t sev = OCSD_ERR_SEV_WARN; + if (getComponentOpMode() & OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS) + sev = OCSD_ERR_SEV_ERROR; - if(getComponentOpMode() & OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS) - { - // error out - stop decoding - err = OCSD_ERR_BAD_DECODE_PKT; - LogError(ocsdError(OCSD_ERR_SEV_ERROR,err,reason)); - } - else + return handlePacketErr(OCSD_ERR_BAD_DECODE_PKT, sev, index, reason); +} + +ocsd_err_t TrcPktDecodeEtmV4I::handlePacketSeqErr(ocsd_err_t err, ocsd_trc_index_t index, const char *reason) +{ + return handlePacketErr(err, OCSD_ERR_SEV_ERROR, index, reason); +} + +ocsd_err_t TrcPktDecodeEtmV4I::handlePacketErr(ocsd_err_t err, ocsd_err_severity_t sev, ocsd_trc_index_t index, const char *reason) +{ + bool resetOnBadPackets = true; + + if(getComponentOpMode() & OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS) + resetOnBadPackets = false; + + LogError(ocsdError(sev, err, index, getCoreSightTraceID(), reason)); + + if (resetOnBadPackets) { - LogError(ocsdError(OCSD_ERR_SEV_WARN, OCSD_ERR_BAD_DECODE_PKT, reason)); // switch to unsync - clear decode state resetDecoder(); m_curr_state = NO_SYNC; m_unsync_eot_info = UNSYNC_BAD_PACKET; + err = OCSD_OK; } return err; + } + inline ocsd_mem_space_acc_t TrcPktDecodeEtmV4I::getCurrMemSpace() { static ocsd_mem_space_acc_t SMemSpace[] = { diff --git a/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp b/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp index 853fde499a1b..825b5f79e41b 100644 --- a/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp +++ b/decoder/source/etmv4/trc_pkt_elem_etmv4i.cpp @@ -38,6 +38,7 @@ EtmV4ITrcPacket::EtmV4ITrcPacket() { + protocol_version = 0x42; // min protocol version. } EtmV4ITrcPacket::~EtmV4ITrcPacket() @@ -101,6 +102,8 @@ void EtmV4ITrcPacket::toString(std::string &str) const contextStr(ctxtStr); case ETM4_PKT_I_ADDR_L_32IS0: case ETM4_PKT_I_ADDR_L_32IS1: + case ETE_PKT_I_SRC_ADDR_L_32IS0: + case ETE_PKT_I_SRC_ADDR_L_32IS1: trcPrintableElem::getValStr(valStr, (v_addr.size == VA_64BIT) ? 64 : 32, v_addr.valid_bits, v_addr.val, true, (v_addr.pkt_bits < 32) ? v_addr.pkt_bits : 0); str += "; Addr=" + valStr + "; " + ctxtStr; break; @@ -110,6 +113,8 @@ void EtmV4ITrcPacket::toString(std::string &str) const contextStr(ctxtStr); case ETM4_PKT_I_ADDR_L_64IS0: case ETM4_PKT_I_ADDR_L_64IS1: + case ETE_PKT_I_SRC_ADDR_L_64IS0: + case ETE_PKT_I_SRC_ADDR_L_64IS1: trcPrintableElem::getValStr(valStr, (v_addr.size == VA_64BIT) ? 64 : 32, v_addr.valid_bits, v_addr.val, true, (v_addr.pkt_bits < 64) ? v_addr.pkt_bits : 0); str += "; Addr=" + valStr + "; " + ctxtStr; break; @@ -121,11 +126,14 @@ void EtmV4ITrcPacket::toString(std::string &str) const case ETM4_PKT_I_ADDR_S_IS0: case ETM4_PKT_I_ADDR_S_IS1: + case ETE_PKT_I_SRC_ADDR_S_IS0: + case ETE_PKT_I_SRC_ADDR_S_IS1: trcPrintableElem::getValStr(valStr, (v_addr.size == VA_64BIT) ? 64 : 32, v_addr.valid_bits, v_addr.val, true, v_addr.pkt_bits); str += "; Addr=" + valStr; break; case ETM4_PKT_I_ADDR_MATCH: + case ETE_PKT_I_SRC_ADDR_MATCH: addrMatchIdx(valStr); str += ", " + valStr; trcPrintableElem::getValStr(valStr, (v_addr.size == VA_64BIT) ? 64 : 32, v_addr.valid_bits, v_addr.val, true); @@ -161,7 +169,10 @@ void EtmV4ITrcPacket::toString(std::string &str) const { std::ostringstream oss; oss << "; INFO=" << std::hex << "0x" << trace_info.val; - oss << " { CC." << std::dec << trace_info.bits.cc_enabled << " }"; + oss << " { CC." << std::dec << trace_info.bits.cc_enabled; + if (isETE()) + oss << ", TSTATE." << std::dec << trace_info.bits.in_trans_state; + oss << " }"; if (trace_info.bits.cc_enabled) oss << "; CC_THRESHOLD=" << std::hex << "0x" << cc_threshold; str += oss.str(); @@ -264,6 +275,14 @@ void EtmV4ITrcPacket::toString(std::string &str) const } } break; + + case ETE_PKT_I_ITE: + { + std::ostringstream oss; + oss << "; EL" << std::dec << (int)ite_pkt.el << "; Payload=0x" << std::hex << ite_pkt.value; + str += oss.str(); + } + break; } } @@ -349,6 +368,16 @@ const char *EtmV4ITrcPacket::packetTypeName(const ocsd_etmv4_i_pkt_type type, co pName = "I_EXCEPT_RTN"; pDesc = "Exception Return."; break; + + case ETE_PKT_I_TRANS_ST: + pName = "I_TRANS_ST"; + pDesc = "Transaction Start."; + break; + + case ETE_PKT_I_TRANS_COMMIT: + pName = "I_TRANS_COMMIT"; + pDesc = "Transaction Commit."; + break; case ETM4_PKT_I_CCNT_F1: pName = "I_CCNT_F1"; @@ -481,6 +510,11 @@ const char *EtmV4ITrcPacket::packetTypeName(const ocsd_etmv4_i_pkt_type type, co pDesc = "Address & Context, Long, 64 bit, IS1."; break; + case ETE_PKT_I_TS_MARKER: + pName = "I_TS_MARKER"; + pDesc = "Timestamp Marker"; + break; + case ETM4_PKT_I_ADDR_MATCH: pName = "I_ADDR_MATCH"; pDesc = "Exact Address Match."; @@ -521,6 +555,41 @@ const char *EtmV4ITrcPacket::packetTypeName(const ocsd_etmv4_i_pkt_type type, co pDesc = "Q Packet."; break; + case ETE_PKT_I_SRC_ADDR_MATCH: + pName = "I_SRC_ADDR_MATCH"; + pDesc = "Exact Source Address Match."; + break; + + case ETE_PKT_I_SRC_ADDR_S_IS0: + pName = "I_SRC_ADDR_S_IS0"; + pDesc = "Source Address, Short, IS0."; + break; + + case ETE_PKT_I_SRC_ADDR_S_IS1: + pName = "I_SRC_ADDR_S_IS1"; + pDesc = "Source Address, Short, IS1."; + break; + + case ETE_PKT_I_SRC_ADDR_L_32IS0: + pName = "I_SCR_ADDR_L_32IS0"; + pDesc = "Source Address, Long, 32 bit, IS0."; + break; + + case ETE_PKT_I_SRC_ADDR_L_32IS1: + pName = "I_SRC_ADDR_L_32IS1"; + pDesc = "Source Address, Long, 32 bit, IS1."; + break; + + case ETE_PKT_I_SRC_ADDR_L_64IS0: + pName = "I_SRC_ADDR_L_64IS0"; + pDesc = "Source Address, Long, 64 bit, IS0."; + break; + + case ETE_PKT_I_SRC_ADDR_L_64IS1: + pName = "I_SRC_ADDR_L_64IS1"; + pDesc = "Source Address, Long, 64 bit, IS1."; + break; + case ETM4_PKT_I_ATOM_F6: pName = "I_ATOM_F6"; pDesc = "Atom format 6."; @@ -566,6 +635,21 @@ const char *EtmV4ITrcPacket::packetTypeName(const ocsd_etmv4_i_pkt_type type, co pDesc = "Overflow."; break; + case ETE_PKT_I_PE_RESET: + pName = "I_PE_RESET"; + pDesc = "PE Reset."; + break; + + case ETE_PKT_I_TRANS_FAIL: + pName = "I_TRANS_FAIL"; + pDesc = "Transaction Fail."; + break; + + case ETE_PKT_I_ITE: + pName = "I_ITE"; + pDesc = "Instrumentation"; + break; + default: break; } diff --git a/decoder/source/etmv4/trc_pkt_proc_etmv4i.cpp b/decoder/source/etmv4/trc_pkt_proc_etmv4i.cpp index d8c7d84667d1..d767bdc85643 100644 --- a/decoder/source/etmv4/trc_pkt_proc_etmv4i.cpp +++ b/decoder/source/etmv4/trc_pkt_proc_etmv4i.cpp @@ -45,6 +45,9 @@ static const uint32_t ETMV4_SUPPORTED_OP_FLAGS = OCSD_OPFLG_PKTPROC_COMMON; +// test defines - if testing with ETMv4 sources, disable error on ERET. +// #define ETE_TRACE_ERET_AS_IGNORE + /* trace etmv4 packet processing class */ TrcPktProcEtmV4I::TrcPktProcEtmV4I() : TrcPktProcBase(ETMV4I_PKTS_NAME), m_isInit(false), @@ -70,7 +73,9 @@ ocsd_err_t TrcPktProcEtmV4I::onProtocolConfig() InitProcessorState(); m_config = *TrcPktProcBase::getProtocolConfig(); BuildIPacketTable(); // packet table based on config + m_curr_packet.setProtocolVersion(m_config.FullVersion()); m_isInit = true; + statsInit(); return OCSD_OK; } @@ -152,6 +157,10 @@ ocsd_datapath_resp_t TrcPktProcEtmV4I::processData( const ocsd_trc_index_t inde (err.getErrorCode() == OCSD_ERR_INVALID_PCKT_HDR)) { // send invalid packets up the pipe to let the next stage decide what to do. + if (err.getErrorCode() == OCSD_ERR_INVALID_PCKT_HDR) + statsAddBadHdrCount(1); + else + statsAddBadSeqCount(1); m_process_state = SEND_PKT; done = false; } @@ -171,6 +180,7 @@ ocsd_datapath_resp_t TrcPktProcEtmV4I::processData( const ocsd_trc_index_t inde } } while (!done); + statsAddTotalCount(m_trcIn.processed()); *numBytesProcessed = m_trcIn.processed(); return resp; } @@ -241,8 +251,8 @@ ocsd_datapath_resp_t TrcPktProcEtmV4I::outputUnsyncedRawPacket() { ocsd_datapath_resp_t resp = OCSD_RESP_CONT; - - outputRawPacketToMonitor(m_packet_index,&m_curr_packet,m_dump_unsynced_bytes,&m_currPacketData[0]); + statsAddUnsyncCount(m_dump_unsynced_bytes); + outputRawPacketToMonitor(m_packet_index,&m_curr_packet,m_dump_unsynced_bytes,&m_currPacketData[0]); if(!m_sent_notsync_packet) { @@ -290,6 +300,7 @@ void TrcPktProcEtmV4I::iPktNoPayload(const uint8_t lastByte) switch(m_curr_packet.type) { case ETM4_PKT_I_ADDR_MATCH: + case ETE_PKT_I_SRC_ADDR_MATCH: m_curr_packet.setAddressExactMatch(lastByte & 0x3); break; @@ -307,6 +318,8 @@ void TrcPktProcEtmV4I::iPktNoPayload(const uint8_t lastByte) case ETM4_PKT_I_EXCEPT_RTN: case ETM4_PKT_I_TRACE_ON: case ETM4_PKT_I_FUNC_RET: + case ETE_PKT_I_TRANS_ST: + case ETE_PKT_I_TRANS_COMMIT: case ETM4_PKT_I_IGNORE: default: break; } @@ -437,6 +450,8 @@ void TrcPktProcEtmV4I::iPktTraceInfo(const uint8_t lastByte) m_tinfo_sections.sectFlags |= (lastByte & 0x80) ? 0 : TINFO_SPEC_SECT; else if(!(m_tinfo_sections.sectFlags & TINFO_CYCT_SECT)) m_tinfo_sections.sectFlags |= (lastByte & 0x80) ? 0 : TINFO_CYCT_SECT; + else if (!(m_tinfo_sections.sectFlags & TINFO_WNDW_SECT)) + m_tinfo_sections.sectFlags |= (lastByte & 0x80) ? 0 : TINFO_WNDW_SECT; } // all sections accounted for? @@ -469,6 +484,11 @@ void TrcPktProcEtmV4I::iPktTraceInfo(const uint8_t lastByte) idx += extractContField(m_currPacketData,idx,fieldVal); m_curr_packet.setTraceInfoCyct(fieldVal); } + if ((presSect & TINFO_WNDW_SECT) && (idx < m_currPacketData.size())) + { + idx += extractContField(m_currPacketData, idx, fieldVal); + /* Trace commit window unsupported in current ETE versions */ + } m_process_state = SEND_PKT; m_first_trace_info = true; } @@ -502,8 +522,11 @@ void TrcPktProcEtmV4I::iPktTimestamp(const uint8_t lastByte) { int idx = 1; uint64_t tsVal; - int ts_bytes = extractContField64(m_currPacketData, idx, tsVal); - int ts_bits = ts_bytes < 7 ? ts_bytes * 7 : 64; + int ts_bytes = extractTSField64(m_currPacketData, idx, tsVal); + int ts_bits; + + // if ts_bytes 8 or less, then cont bits on each byte, otherwise full 64 bit value for 9 bytes + ts_bits = ts_bytes < 9 ? ts_bytes * 7 : 64; if(!m_curr_packet.pkt_valid.bits.ts_valid && m_first_trace_info) ts_bits = 64; // after trace info, missing bits are all 0. @@ -534,6 +557,13 @@ void TrcPktProcEtmV4I::iPktException(const uint8_t lastByte) case 1: m_excep_size = 3; break; case 2: if((lastByte & 0x80) == 0x00) m_excep_size = 2; + // ETE exception reset or trans failed + if (m_config.MajVersion() >= 0x5) + { + excep_type = (m_currPacketData[1] >> 1) & 0x1F; + if ((excep_type == 0x0) || (excep_type == 0x18)) + m_excep_size = 3; + } break; } @@ -553,6 +583,18 @@ void TrcPktProcEtmV4I::iPktException(const uint8_t lastByte) m_curr_packet.setExceptionInfo(excep_type,addr_interp,m_fault_pending, m_type); m_process_state = SEND_PKT; + // ETE exception reset or trans failed + if (m_config.MajVersion() >= 0x5) + { + if ((excep_type == 0x0) || (excep_type == 0x18)) + { + m_curr_packet.set64BitAddress(0, 0); + if (excep_type == 0x18) + m_curr_packet.setType(ETE_PKT_I_TRANS_FAIL); + else + m_curr_packet.setType(ETE_PKT_I_PE_RESET); + } + } // allow the standard address packet handlers to process the address packet field for the exception. } } @@ -833,7 +875,7 @@ void TrcPktProcEtmV4I::extractAndSetContextInfo(const std::vector<uint8_t> &buff // on input, buffer index points at the info byte - always present uint8_t infoByte = m_currPacketData[st_idx]; - m_curr_packet.setContextInfo(true, (infoByte & 0x3), (infoByte >> 5) & 0x1, (infoByte >> 4) & 0x1); + m_curr_packet.setContextInfo(true, (infoByte & 0x3), (infoByte >> 5) & 0x1, (infoByte >> 4) & 0x1, (infoByte >> 3) & 0x1); // see if there are VMID and CID bytes, and how many. int nVMID_bytes = ((infoByte & 0x40) == 0x40) ? (m_config.vmidSize()/8) : 0; @@ -937,7 +979,8 @@ void TrcPktProcEtmV4I::iPktShortAddr(const uint8_t lastByte) { m_addr_done = false; m_addrIS = 0; - if (lastByte == ETM4_PKT_I_ADDR_S_IS1) + if ((lastByte == ETM4_PKT_I_ADDR_S_IS1) || + (lastByte == ETE_PKT_I_SRC_ADDR_S_IS1)) m_addrIS = 1; } else if(!m_addr_done) @@ -988,14 +1031,18 @@ void TrcPktProcEtmV4I::iPktLongAddr(const uint8_t lastByte) switch(m_curr_packet.type) { case ETM4_PKT_I_ADDR_L_32IS1: + case ETE_PKT_I_SRC_ADDR_L_32IS1: m_addrIS = 1; case ETM4_PKT_I_ADDR_L_32IS0: + case ETE_PKT_I_SRC_ADDR_L_32IS0: m_addrBytes = 4; break; case ETM4_PKT_I_ADDR_L_64IS1: + case ETE_PKT_I_SRC_ADDR_L_64IS1: m_addrIS = 1; case ETM4_PKT_I_ADDR_L_64IS0: + case ETE_PKT_I_SRC_ADDR_L_64IS0: m_addrBytes = 8; m_bAddr64bit = true; break; @@ -1203,6 +1250,23 @@ void TrcPktProcEtmV4I::iAtom(const uint8_t lastByte) m_process_state = SEND_PKT; } +void TrcPktProcEtmV4I::iPktITE(const uint8_t /* lastByte */) +{ + uint64_t value; + int shift = 0; + + /* packet is always 10 bytes, Header, EL info byte, 8 bytes payload */ + if (m_currPacketData.size() == 10) { + value = 0; + for (int i = 2; i < 10; i++) { + value |= ((uint64_t)m_currPacketData[i]) << shift; + shift += 8; + } + m_curr_packet.setITE(m_currPacketData[1], value); + m_process_state = SEND_PKT; + } +} + // header byte processing is table driven. void TrcPktProcEtmV4I::BuildIPacketTable() { @@ -1247,7 +1311,35 @@ void TrcPktProcEtmV4I::BuildIPacketTable() // b0000 0111 - exception return m_i_table[0x07].pkt_type = ETM4_PKT_I_EXCEPT_RTN; - m_i_table[0x07].pptkFn = &TrcPktProcEtmV4I::iPktNoPayload; + if (m_config.MajVersion() >= 0x5) // not valid for ETE + { +#ifdef ETE_TRACE_ERET_AS_IGNORE + m_i_table[0x07].pkt_type = ETM4_PKT_I_IGNORE; + m_i_table[0x07].pptkFn = &EtmV4IPktProcImpl::iPktNoPayload; +#else + m_i_table[0x07].pptkFn = &TrcPktProcEtmV4I::iPktInvalidCfg; +#endif + } + else + m_i_table[0x07].pptkFn = &TrcPktProcEtmV4I::iPktNoPayload; + + // b00001010, b00001011 ETE TRANS packets + // b00001001 - ETE sw instrumentation packet + if (m_config.MajVersion() >= 0x5) + { + m_i_table[0x0A].pkt_type = ETE_PKT_I_TRANS_ST; + m_i_table[0x0A].pptkFn = &TrcPktProcEtmV4I::iPktNoPayload; + + m_i_table[0x0B].pkt_type = ETE_PKT_I_TRANS_COMMIT; + m_i_table[0x0B].pptkFn = &TrcPktProcEtmV4I::iPktNoPayload; + + // FEAT_ITE - sw instrumentation packet + if (m_config.MinVersion() >= 0x3) + { + m_i_table[0x09].pkt_type = ETE_PKT_I_ITE; + m_i_table[0x09].pptkFn = &TrcPktProcEtmV4I::iPktITE; + } + } // b0000 110x - cycle count f2 // b0000 111x - cycle count f1 @@ -1443,6 +1535,12 @@ void TrcPktProcEtmV4I::BuildIPacketTable() m_i_table[0x85+i].pptkFn = &TrcPktProcEtmV4I::iPktAddrCtxt; } + // 0b1000 1000 - ETE 1.1 TS Marker. also ETMv4.6 + if(m_config.FullVersion() >= 0x46) + { + m_i_table[0x88].pkt_type = ETE_PKT_I_TS_MARKER; + m_i_table[0x88].pptkFn = &TrcPktProcEtmV4I::iPktNoPayload; + } // 0b1001 0000 to b1001 0010 - exact match addr for(int i = 0; i < 3; i++) { @@ -1492,6 +1590,30 @@ void TrcPktProcEtmV4I::BuildIPacketTable() } } + // b10110000 - b10111001 - ETE src address packets + if (m_config.FullVersion() >= 0x50) + { + for (int i = 0; i < 3; i++) + { + m_i_table[0xB0 + i].pkt_type = ETE_PKT_I_SRC_ADDR_MATCH; + m_i_table[0xB0 + i].pptkFn = &TrcPktProcEtmV4I::iPktNoPayload; + } + + m_i_table[0xB4].pkt_type = ETE_PKT_I_SRC_ADDR_S_IS0; + m_i_table[0xB4].pptkFn = &TrcPktProcEtmV4I::iPktShortAddr; + m_i_table[0xB5].pkt_type = ETE_PKT_I_SRC_ADDR_S_IS1; + m_i_table[0xB5].pptkFn = &TrcPktProcEtmV4I::iPktShortAddr; + + m_i_table[0xB6].pkt_type = ETE_PKT_I_SRC_ADDR_L_32IS0; + m_i_table[0xB6].pptkFn = &TrcPktProcEtmV4I::iPktLongAddr; + m_i_table[0xB7].pkt_type = ETE_PKT_I_SRC_ADDR_L_32IS1; + m_i_table[0xB7].pptkFn = &TrcPktProcEtmV4I::iPktLongAddr; + m_i_table[0xB8].pkt_type = ETE_PKT_I_SRC_ADDR_L_64IS0; + m_i_table[0xB8].pptkFn = &TrcPktProcEtmV4I::iPktLongAddr; + m_i_table[0xB9].pkt_type = ETE_PKT_I_SRC_ADDR_L_64IS1; + m_i_table[0xB9].pptkFn = &TrcPktProcEtmV4I::iPktLongAddr; + } + // Atom Packets - all no payload but have specific pattern generation fn for(int i = 0xC0; i <= 0xD4; i++) // atom f6 { @@ -1559,20 +1681,33 @@ void TrcPktProcEtmV4I::BuildIPacketTable() return idx; } -unsigned TrcPktProcEtmV4I::extractContField64(const std::vector<uint8_t> &buffer, const unsigned st_idx, uint64_t &value, const unsigned byte_limit /*= 9*/) +unsigned TrcPktProcEtmV4I::extractTSField64(const std::vector<uint8_t> &buffer, const unsigned st_idx, uint64_t &value) { + const unsigned max_byte_idx = 8; /* the 9th byte, index 8, will use full 8 bits for value */ unsigned idx = 0; bool lastByte = false; uint8_t byteVal; + uint8_t byteValMask = 0x7f; + + /* init value */ value = 0; - while(!lastByte && (idx < byte_limit)) // max 9 bytes for 64 bit value; + while(!lastByte) // max 9 bytes for 64 bit value; { if(buffer.size() > (st_idx + idx)) { // each byte has seven bits + cont bit byteVal = buffer[(st_idx + idx)]; - lastByte = (byteVal & 0x80) != 0x80; - value |= ((uint64_t)(byteVal & 0x7F)) << (idx * 7); + + /* detect the final byte - which uses full 8 bits as value */ + if (idx == max_byte_idx) + { + byteValMask = 0xFF; /* last byte of 9, no cont bit */ + lastByte = true; + } + else + lastByte = (byteVal & 0x80) != 0x80; + + value |= ((uint64_t)(byteVal & byteValMask)) << (idx * 7); idx++; } else @@ -1580,6 +1715,7 @@ unsigned TrcPktProcEtmV4I::extractContField64(const std::vector<uint8_t> &buffer throwBadSequenceError("Invalid 64 bit continuation fields in packet"); } } + // index is the count of bytes used here. return idx; } diff --git a/decoder/source/i_dec/trc_i_decode.cpp b/decoder/source/i_dec/trc_i_decode.cpp index 614fc1d8b45c..0e0589512002 100644 --- a/decoder/source/i_dec/trc_i_decode.cpp +++ b/decoder/source/i_dec/trc_i_decode.cpp @@ -42,7 +42,7 @@ ocsd_err_t TrcIDecode::DecodeInstruction(ocsd_instr_info *instr_info) struct decode_info info; info.instr_sub_type = OCSD_S_INSTR_NONE; - info.arch_version = (uint16_t)(instr_info->pe_type.arch); + info.arch_version = instr_info->pe_type.arch; switch(instr_info->isa) { @@ -136,14 +136,12 @@ ocsd_err_t TrcIDecode::DecodeA64(ocsd_instr_info *instr_info, struct decode_info if(inst_A64_is_indirect_branch_link(instr_info->opcode, &instr_info->is_link, info)) { instr_info->type = OCSD_INSTR_BR_INDIRECT; -// instr_info->is_link = inst_A64_is_branch_and_link(instr_info->opcode); } else if(inst_A64_is_direct_branch_link(instr_info->opcode, &instr_info->is_link, info)) { inst_A64_branch_destination(instr_info->instr_addr,instr_info->opcode,&branchAddr); instr_info->type = OCSD_INSTR_BR; instr_info->branch_addr = (ocsd_vaddr_t)branchAddr; -// instr_info->is_link = inst_A64_is_branch_and_link(instr_info->opcode); } else if((barrier = inst_A64_barrier(instr_info->opcode)) != ARM_BARRIER_NONE) { @@ -160,12 +158,15 @@ ocsd_err_t TrcIDecode::DecodeA64(ocsd_instr_info *instr_info, struct decode_info break; } } - else if (instr_info->wfi_wfe_branch) + else if (instr_info->wfi_wfe_branch && + inst_A64_wfiwfe(instr_info->opcode, info)) { - if (inst_A64_wfiwfe(instr_info->opcode)) - { - instr_info->type = OCSD_INSTR_WFI_WFE; - } + instr_info->type = OCSD_INSTR_WFI_WFE; + } + else if (OCSD_IS_ARCH_MINVER(info->arch_version, ARCH_AA64)) + { + if (inst_A64_Tstart(instr_info->opcode)) + instr_info->type = OCSD_INSTR_TSTART; } instr_info->is_conditional = inst_A64_is_conditional(instr_info->opcode); diff --git a/decoder/source/i_dec/trc_idec_arminst.cpp b/decoder/source/i_dec/trc_idec_arminst.cpp index 3652e84921f3..76951fd38183 100644 --- a/decoder/source/i_dec/trc_idec_arminst.cpp +++ b/decoder/source/i_dec/trc_idec_arminst.cpp @@ -244,8 +244,9 @@ int inst_A64_is_direct_branch_link(uint32_t inst, uint8_t *is_link, struct decod int is_direct_branch = 1; if ((inst & 0x7c000000) == 0x34000000) { /* CB, TB */ - } else if ((inst & 0xff000010) == 0x54000000) { + } else if ((inst & 0xff000000) == 0x54000000) { /* B<cond> */ + /* BC<cond> 8.8 / 9.3 arch - bit 4 = 1'b1 */ } else if ((inst & 0x7c000000) == 0x14000000) { /* B, BL imm */ if (inst & 0x80000000) { @@ -258,11 +259,26 @@ int inst_A64_is_direct_branch_link(uint32_t inst, uint8_t *is_link, struct decod return is_direct_branch; } -int inst_A64_wfiwfe(uint32_t inst) +int inst_A64_wfiwfe(uint32_t inst, struct decode_info *info) { /* WFI, WFE may be traced as branches in etm 4.3++ */ if ((inst & 0xffffffdf) == 0xd503205f) return 1; + + /* new feature introduced post v8.3 */ + if (OCSD_IS_ARCH_MINVER(info->arch_version, ARCH_AA64)) + { + /* WFIT / WFET for later archs */ + if ((inst & 0xffffffc0) == 0xd5031000) + return 1; + } + return 0; +} + +int inst_A64_Tstart(uint32_t inst) +{ + if ((inst & 0xffffffe0) == 0xd5233060) + return 1; return 0; } @@ -288,7 +304,7 @@ int inst_A64_is_indirect_branch_link(uint32_t inst, uint8_t *is_link, struct dec } else if ((inst & 0xffffffff) == 0xd69f03e0) { /* ERET */ info->instr_sub_type = OCSD_S_INSTR_V8_ERET; - } else if (info->arch_version >= 0x0803) { + } else if (OCSD_IS_ARCH_MINVER(info->arch_version, ARCH_V8r3)) { /* new pointer auth instr for v8.3 arch */ if ((inst & 0xffdff800) == 0xd71f0800) { /* BRAA, BRAB, BLRAA, BLRBB */ @@ -399,8 +415,9 @@ int inst_A64_branch_destination(uint64_t addr, uint32_t inst, uint64_t *pnpc) { uint64_t npc; int is_direct_branch = 1; - if ((inst & 0xff000010) == 0x54000000) { + if ((inst & 0xff000000) == 0x54000000) { /* B<cond> */ + /* BC<cond> */ npc = addr + ((int32_t)((inst & 0x00ffffe0) << 8) >> 11); } else if ((inst & 0x7c000000) == 0x14000000) { /* B, BL imm */ @@ -484,7 +501,7 @@ int inst_A64_is_branch_and_link(uint32_t inst, struct decode_info *info) } else if ((inst & 0xfc000000) == 0x94000000) { /* BL */ info->instr_sub_type = OCSD_S_INSTR_BR_LINK; - } else if (info->arch_version >= 0x0803) { + } else if (OCSD_IS_ARCH_MINVER(info->arch_version, ARCH_V8r3)) { /* new pointer auth instr for v8.3 arch */ if ((inst & 0xfffff800) == 0xd73f0800) { /* BLRAA, BLRBB */ @@ -553,8 +570,9 @@ int inst_A64_is_conditional(uint32_t inst) if ((inst & 0x7c000000) == 0x34000000) { /* CB, TB */ return 1; - } else if ((inst & 0xff000010) == 0x54000000) { + } else if ((inst & 0xff000000) == 0x54000000) { /* B.cond */ + /* BC.cond */ return 1; } return 0; diff --git a/decoder/source/mem_acc/trc_mem_acc_mapper.cpp b/decoder/source/mem_acc/trc_mem_acc_mapper.cpp index 53edfe1a1616..dc07a1ed5a25 100644 --- a/decoder/source/mem_acc/trc_mem_acc_mapper.cpp +++ b/decoder/source/mem_acc/trc_mem_acc_mapper.cpp @@ -119,6 +119,14 @@ ocsd_err_t TrcMemAccMapper::ReadTargetMemory(const ocsd_vaddr_t address, const u return err; } +void TrcMemAccMapper::InvalidateMemAccCache(const uint8_t /* cs_trace_id */) +{ + // default mapper does not use cs_trace_id for cache invalidation. + if (m_cache.enabled()) + m_cache.invalidateAll(); + m_acc_curr = 0; +} + void TrcMemAccMapper::RemoveAllAccessors() { TrcMemAccessorBase *pAcc = 0; diff --git a/decoder/source/ocsd_dcd_tree.cpp b/decoder/source/ocsd_dcd_tree.cpp index be15e36e9cb3..8e29269d1690 100644 --- a/decoder/source/ocsd_dcd_tree.cpp +++ b/decoder/source/ocsd_dcd_tree.cpp @@ -101,6 +101,13 @@ DecodeTree::DecodeTree() : { for(int i = 0; i < 0x80; i++) m_decode_elements[i] = 0; + + // reset the global demux stats. + m_demux_stats.frame_bytes = 0; + m_demux_stats.no_id_bytes = 0; + m_demux_stats.valid_id_bytes = 0; + m_demux_stats.unknown_id_bytes = 0; + m_demux_stats.reserved_id_bytes = 0; } DecodeTree::~DecodeTree() @@ -486,6 +493,62 @@ ocsd_err_t DecodeTree::removeDecoder(const uint8_t CSID) return err; } +ocsd_err_t DecodeTree::getDecoderStats(const uint8_t CSID, ocsd_decode_stats_t **p_stats_block) +{ + ocsd_err_t err = OCSD_OK; + TrcPktProcI *pPktProc = getPktProcI(CSID); + if (!pPktProc) + return OCSD_ERR_INVALID_PARAM_VAL; + err = pPktProc->getStatsBlock(p_stats_block); + if (err == OCSD_OK) { + // copy in the global demux stats. + (*p_stats_block)->demux.frame_bytes = m_demux_stats.frame_bytes; + (*p_stats_block)->demux.no_id_bytes = m_demux_stats.no_id_bytes; + (*p_stats_block)->demux.valid_id_bytes = m_demux_stats.valid_id_bytes; + (*p_stats_block)->demux.unknown_id_bytes = m_demux_stats.unknown_id_bytes; + (*p_stats_block)->demux.reserved_id_bytes = m_demux_stats.reserved_id_bytes; + } + return err; +} + +ocsd_err_t DecodeTree::resetDecoderStats(const uint8_t CSID) +{ + TrcPktProcI *pPktProc = getPktProcI(CSID); + if (!pPktProc) + return OCSD_ERR_INVALID_PARAM_VAL; + pPktProc->resetStats(); + + // reset the global demux stats. + m_demux_stats.frame_bytes = 0; + m_demux_stats.no_id_bytes = 0; + m_demux_stats.valid_id_bytes = 0; + m_demux_stats.unknown_id_bytes = 0; + m_demux_stats.reserved_id_bytes = 0; + return OCSD_OK; +} + +TrcPktProcI *DecodeTree::getPktProcI(const uint8_t CSID) +{ + TrcPktProcI *pPktProc = 0; + TraceComponent *pComp, *pAssoc; + DecodeTreeElement *pElem = getDecoderElement(CSID); + + if (pElem) + { + pComp = pElem->getDecoderHandle(); + if (pComp) + { + /* if this is a full decoder then the associated component is the packet processor */ + pAssoc = pComp->getAssocComponent(); + if (pAssoc) + pPktProc = dynamic_cast<TrcPktProcI *>(pAssoc); + else + pPktProc = dynamic_cast<TrcPktProcI *>(pComp); + } + } + return pPktProc; +} + DecodeTreeElement * DecodeTree::getDecoderElement(const uint8_t CSID) const { DecodeTreeElement *ret_elem = 0; @@ -511,7 +574,7 @@ DecodeTreeElement *DecodeTree::getNextElement(uint8_t &elemID) if(m_decode_elem_iter < 0x80) { // find a none zero entry or end of range - while((m_decode_elements[m_decode_elem_iter] == 0) && (m_decode_elem_iter < 0x80)) + while((m_decode_elem_iter < 0x80) && (m_decode_elements[m_decode_elem_iter] == 0)) m_decode_elem_iter++; // return entry unless end of range @@ -527,7 +590,7 @@ DecodeTreeElement *DecodeTree::getNextElement(uint8_t &elemID) bool DecodeTree::initialise(const ocsd_dcd_tree_src_t type, uint32_t formatterCfgFlags) { - bool initOK = true; + ocsd_err_t err; m_dcd_tree_type = type; if(type == OCSD_TRC_SRC_FRAME_FORMATTED) { @@ -535,14 +598,19 @@ bool DecodeTree::initialise(const ocsd_dcd_tree_src_t type, uint32_t formatterCf m_frame_deformatter_root = new (std::nothrow) TraceFormatterFrameDecoder(); if(m_frame_deformatter_root) { - m_frame_deformatter_root->Configure(formatterCfgFlags); + if (m_frame_deformatter_root->Init() != OCSD_OK) + return false; m_frame_deformatter_root->getErrLogAttachPt()->attach(DecodeTree::s_i_error_logger); + err = m_frame_deformatter_root->Configure(formatterCfgFlags); + if (err != OCSD_OK) + return false; m_i_decoder_root = dynamic_cast<ITrcDataIn*>(m_frame_deformatter_root); + m_frame_deformatter_root->SetDemuxStatsBlock(&m_demux_stats); } else - initOK = false; + return false; } - return initOK; + return true; } void DecodeTree::setSingleRoot(TrcPktProcI *pComp) @@ -621,6 +689,7 @@ ocsd_err_t DecodeTree::addPacketPrinter(uint8_t CSID, bool bMonitor, ItemPrinter switch (protocol) { case OCSD_PROTOCOL_ETMV4I: + case OCSD_PROTOCOL_ETE: { PacketPrinter<EtmV4ITrcPacket> *pTPrinter = dynamic_cast<PacketPrinter<EtmV4ITrcPacket> *>(pPrinter); if (bMonitor) diff --git a/decoder/source/ocsd_error.cpp b/decoder/source/ocsd_error.cpp index 74e9e4977f60..ee01064a3476 100644 --- a/decoder/source/ocsd_error.cpp +++ b/decoder/source/ocsd_error.cpp @@ -229,4 +229,25 @@ void ocsdError::appendErrorDetails(std::string &errStr, const ocsdError &error) errStr = oss.str(); } + +const char* ocsdDataRespStr::getStr() +{ + static const char* szRespStr[] = { + "OCSD_RESP_CONT: Continue processing.", + "OCSD_RESP_WARN_CONT: Continue processing -> a component logged a warning.", + "OCSD_RESP_ERR_CONT: Continue processing -> a component logged an error.", + "OCSD_RESP_WAIT: Pause processing", + "OCSD_RESP_WARN_WAIT: Pause processing -> a component logged a warning.", + "OCSD_RESP_ERR_WAIT: Pause processing -> a component logged an error.", + "OCSD_RESP_FATAL_NOT_INIT: Processing Fatal Error : component unintialised.", + "OCSD_RESP_FATAL_INVALID_OP: Processing Fatal Error : invalid data path operation.", + "OCSD_RESP_FATAL_INVALID_PARAM: Processing Fatal Error : invalid parameter in datapath call.", + "OCSD_RESP_FATAL_INVALID_DATA: Processing Fatal Error : invalid trace data.", + "OCSD_RESP_FATAL_SYS_ERR: Processing Fatal Error : internal system error." + }; + if ((m_type < OCSD_RESP_CONT) || (m_type > OCSD_RESP_FATAL_SYS_ERR)) + return "Unknown OCSD_RESP type."; + return szRespStr[m_type]; +} + /* End of File ocsd_error.cpp */ diff --git a/decoder/source/ocsd_gen_elem_stack.cpp b/decoder/source/ocsd_gen_elem_stack.cpp index bb758427a9b8..66fe75d9899a 100644 --- a/decoder/source/ocsd_gen_elem_stack.cpp +++ b/decoder/source/ocsd_gen_elem_stack.cpp @@ -42,6 +42,7 @@ OcsdGenElemStack::OcsdGenElemStack() : m_curr_elem_idx(0), m_send_elem_idx(0), m_CSID(0), + m_sendIf(NULL), m_is_init(false) { diff --git a/decoder/source/ocsd_lib_dcd_register.cpp b/decoder/source/ocsd_lib_dcd_register.cpp index adb042dcadff..0233c89eaa06 100644 --- a/decoder/source/ocsd_lib_dcd_register.cpp +++ b/decoder/source/ocsd_lib_dcd_register.cpp @@ -39,13 +39,15 @@ #include "opencsd/etmv3/trc_dcd_mngr_etmv3.h" #include "opencsd/ptm/trc_dcd_mngr_ptm.h" #include "opencsd/stm/trc_dcd_mngr_stm.h" +#include "opencsd/ete/trc_dcd_mngr_ete.h" // create array of built-in decoders to register with library static built_in_decoder_info_t sBuiltInArray[] = { CREATE_BUILTIN_ENTRY(DecoderMngrEtmV4I,OCSD_BUILTIN_DCD_ETMV4I), CREATE_BUILTIN_ENTRY(DecoderMngrEtmV3, OCSD_BUILTIN_DCD_ETMV3), CREATE_BUILTIN_ENTRY(DecoderMngrPtm, OCSD_BUILTIN_DCD_PTM), - CREATE_BUILTIN_ENTRY(DecoderMngrStm, OCSD_BUILTIN_DCD_STM) + CREATE_BUILTIN_ENTRY(DecoderMngrStm, OCSD_BUILTIN_DCD_STM), + CREATE_BUILTIN_ENTRY(DecoderMngrETE, OCSD_BUILTIN_DCD_ETE) //{ 0, 0, 0} }; @@ -90,7 +92,6 @@ OcsdLibDcdRegister::~OcsdLibDcdRegister() m_pLastTypedDecoderMngr = 0; } - const ocsd_err_t OcsdLibDcdRegister::registerDecoderTypeByName(const std::string &name, IDecoderMngr *p_decoder_fact) { if(isRegisteredDecoder(name)) diff --git a/decoder/source/pkt_printers/trc_print_fact.cpp b/decoder/source/pkt_printers/trc_print_fact.cpp index 52dcb6b3e1ac..6b5df1f472e0 100644 --- a/decoder/source/pkt_printers/trc_print_fact.cpp +++ b/decoder/source/pkt_printers/trc_print_fact.cpp @@ -55,8 +55,9 @@ ItemPrinter *PktPrinterFact::createProtocolPrinter(std::vector<ItemPrinter *> &p { ItemPrinter *pPrinter = 0; switch (protocol) - { + { case OCSD_PROTOCOL_ETMV4I: + case OCSD_PROTOCOL_ETE: pPrinter = new (std::nothrow) PacketPrinter<EtmV4ITrcPacket>(CSID); break; case OCSD_PROTOCOL_ETMV3: diff --git a/decoder/source/ptm/trc_pkt_proc_ptm.cpp b/decoder/source/ptm/trc_pkt_proc_ptm.cpp index 7c90b62e6413..668a14b73df0 100644 --- a/decoder/source/ptm/trc_pkt_proc_ptm.cpp +++ b/decoder/source/ptm/trc_pkt_proc_ptm.cpp @@ -224,6 +224,7 @@ void TrcPktProcPtm::InitProcessorState() m_waitASyncSOPkt = false; m_bAsyncRawOp = false; m_bOPNotSyncPkt = false; + m_excepAltISA = 0; m_curr_packet.ResetState(); InitPacketState(); @@ -559,7 +560,7 @@ void TrcPktProcPtm::pktWPointUpdate() m_gotExcepBytes = false; // mark as not got all required exception bytes thus far m_numExcepBytes = 0; // 0 read in - m_addrPktIsa = ocsd_isa_unknown; // not set by this packet as yet + m_addrPktIsa = ocsd_isa_unknown; // not set by this packet as yet } // collect all the bytes needed @@ -567,10 +568,12 @@ void TrcPktProcPtm::pktWPointUpdate() { if(readByte(currByte)) { + byteIdx = m_currPacketData.size() - 1; if(!m_gotAddrBytes) { - if(byteIdx < 4) + // byteIdx for address byte will run from 1 to 5 - first 4 my have continuation or not. + if(byteIdx <= 4) { // address bytes 1 - 4; // ISA stays the same diff --git a/decoder/source/trc_core_arch_map.cpp b/decoder/source/trc_core_arch_map.cpp index a26f79db996e..f25ab1e5ddfa 100644 --- a/decoder/source/trc_core_arch_map.cpp +++ b/decoder/source/trc_core_arch_map.cpp @@ -72,17 +72,6 @@ static ap_map_elem_t ap_map_array[] = { "Cortex-M4", { ARCH_V7, profile_CortexM } } }; -static ap_map_elem_t arch_map_array[] = -{ - { "ARMv7-A", { ARCH_V7, profile_CortexA } }, - { "ARMv7-R", { ARCH_V7, profile_CortexR } }, - { "ARMv7-M", { ARCH_V7, profile_CortexM } }, - { "ARMv8-A", { ARCH_V8, profile_CortexA } }, - { "ARMv8.3-A", { ARCH_V8r3, profile_CortexA } }, - { "ARMv8-R", { ARCH_V8, profile_CortexR } }, - { "ARMv8-M", { ARCH_V8, profile_CortexM } }, -}; - CoreArchProfileMap::CoreArchProfileMap() { unsigned i; @@ -90,10 +79,99 @@ CoreArchProfileMap::CoreArchProfileMap() { core_profiles[ap_map_array[i].name] = ap_map_array[i].ap; } - for (i = 0; i < sizeof(arch_map_array) / sizeof(_ap_map_elements); i++) +} + +ocsd_arch_profile_t CoreArchProfileMap::getArchProfile(const std::string &coreName) +{ + ocsd_arch_profile_t ap = { ARCH_UNKNOWN, profile_Unknown }; + bool bFound = false; + + std::map<std::string, ocsd_arch_profile_t>::const_iterator it; + + /* match against the core name map. */ + it = core_profiles.find(coreName); + if (it != core_profiles.end()) { - arch_profiles[arch_map_array[i].name] = arch_map_array[i].ap; + ap = it->second; + bFound = true; } + + /* try a pattern match on core name - pick up ARMvM[.m]-P and ARM-{aa|AA}64[-P] */ + if (!bFound) + ap = getPatternMatchCoreName(coreName); + + return ap; } +ocsd_arch_profile_t CoreArchProfileMap::getPatternMatchCoreName(const std::string &coreName) +{ + ocsd_arch_profile_t ap = { ARCH_UNKNOWN, profile_Unknown }; + size_t pos; + /* look for ARMvM[.m]-P */ + pos = coreName.find("ARMv"); + if (pos == 0) + { + int majver = coreName[4] - '0'; + int minver = 0; + int dotoffset = 0; + + pos = coreName.find_first_of("."); + if (pos == 5) { + minver = coreName[6] - '0'; + dotoffset = 2; + } + else if (pos != std::string::npos) + return ap; + + if (majver == 7) + ap.arch = ARCH_V7; + else if (majver >= 8) { + ap.arch = ARCH_AA64; /* default to 8.3+*/ + if (majver == 8) { + if (minver < 3) + ap.arch = ARCH_V8; + else if (minver == 3) + ap.arch = ARCH_V8r3; + } + } + else + return ap; /* no valid version - return unknown */ + + if (coreName.find_first_of("-", 4) == (size_t)(5 + dotoffset)) { + int profile_idx = 6 + dotoffset; + if (coreName[profile_idx] == 'A') + ap.profile = profile_CortexA; + else if (coreName[profile_idx] == 'R') + ap.profile = profile_CortexR; + else if (coreName[profile_idx] == 'M') + ap.profile = profile_CortexM; + else + ap.arch = ARCH_UNKNOWN; /*reset arch, return unknown*/ + } + else + ap.arch = ARCH_UNKNOWN; /*reset arch, return unknown*/ + return ap; + } + + /* look for ARM-{AA|aa}64[-P] */ + pos = coreName.find("ARM-"); + if (pos == 0) + { + pos = coreName.find("aa64"); + if (pos != 4) + pos = coreName.find("AA64"); + if (pos == 4) + { + ap.arch = ARCH_AA64; + ap.profile = profile_CortexA; + if (coreName.find_first_of("-", 7) == 8) { + if (coreName[9] == 'R') + ap.profile = profile_CortexR; + else if (coreName[9] == 'M') + ap.profile = profile_CortexM; + } + } + } + return ap; +} /* End of File trc_core_arch_map.cpp */ diff --git a/decoder/source/trc_frame_deformatter.cpp b/decoder/source/trc_frame_deformatter.cpp index 4d46854a655b..3b2aead875ca 100644 --- a/decoder/source/trc_frame_deformatter.cpp +++ b/decoder/source/trc_frame_deformatter.cpp @@ -54,7 +54,8 @@ TraceFmtDcdImpl::TraceFmtDcdImpl() : TraceComponent(DEFORMATTER_NAME), m_use_force_sync(false), m_alignment(16), // assume frame aligned data as default. m_b_output_packed_raw(false), - m_b_output_unpacked_raw(false) + m_b_output_unpacked_raw(false), + m_pStatsBlock(0) { resetStateParams(); @@ -244,7 +245,12 @@ ocsd_datapath_resp_t TraceFmtDcdImpl::processTraceData( if(m_trc_curr_idx != index) // none continuous trace data - throw an error. throw ocsdError(OCSD_ERR_SEV_ERROR,OCSD_ERR_DFMTR_NOTCONTTRACE,index); } - + + // record the incoming block for extraction routines to use. + m_in_block_base = pDataBlock; + m_in_block_size = dataBlockSize; + m_in_block_processed = 0; + if(dataBlockSize % m_alignment) // must be correctly aligned data { ocsdError err(OCSD_ERR_SEV_ERROR, OCSD_ERR_INVALID_PARAM_VAL); @@ -254,11 +260,6 @@ ocsd_datapath_resp_t TraceFmtDcdImpl::processTraceData( throw ocsdError(&err); } - // record the incoming block for extraction routines to use. - m_in_block_base = pDataBlock; - m_in_block_size = dataBlockSize; - m_in_block_processed = 0; - // processing loop... if(checkForSync()) { @@ -324,12 +325,18 @@ ocsd_err_t TraceFmtDcdImpl::DecodeConfigure(uint32_t flags) } else { + // alightment is the multiple of bytes the buffer size must be. m_cfgFlags = flags; + + // using memory aligned buffers, the formatter always outputs 16 byte frames so enforce + // this on the input m_alignment = 16; - if(flags & OCSD_DFRMTR_HAS_FSYNCS) - m_alignment = 4; - else if(flags & OCSD_DFRMTR_HAS_HSYNCS) + // if we have HSYNCS then always align to 2 byte buffers + if(flags & OCSD_DFRMTR_HAS_HSYNCS) m_alignment = 2; + // otherwise FSYNCS only can have 4 byte aligned buffers. + else if(flags & OCSD_DFRMTR_HAS_FSYNCS) + m_alignment = 4; } return err; } @@ -344,6 +351,7 @@ void TraceFmtDcdImpl::resetStateParams() // current frame processing m_ex_frm_n_bytes = 0; + m_b_fsync_start_eob = false; m_trc_curr_idx_sof = OCSD_BAD_TRC_INDEX; } @@ -415,20 +423,23 @@ void TraceFmtDcdImpl::outputUnsyncedBytes(uint32_t /*num_bytes*/) //**TBD: } -int TraceFmtDcdImpl::checkForResetFSyncPatterns() +ocsd_err_t TraceFmtDcdImpl::checkForResetFSyncPatterns(uint32_t &f_sync_bytes) { const uint32_t FSYNC_PATTERN = 0x7FFFFFFF; // LE host pattern for FSYNC bool check_for_fsync = true; int num_fsyncs = 0; - const uint8_t *dataPtr = m_in_block_base + m_in_block_processed; + uint32_t bytes_processed = m_in_block_processed; + const uint8_t *dataPtr = m_in_block_base + bytes_processed; + ocsd_err_t err = OCSD_OK; - while (check_for_fsync && (m_in_block_processed < m_in_block_size)) + while (check_for_fsync && (bytes_processed < m_in_block_size)) { // look for consecutive fsyncs as padding or for reset downstream - both cases will reset downstream.... if (*((uint32_t *)(dataPtr)) == FSYNC_PATTERN) { dataPtr += sizeof(uint32_t); - num_fsyncs++; + num_fsyncs++; + bytes_processed += sizeof(uint32_t); } else check_for_fsync = false; @@ -436,7 +447,6 @@ int TraceFmtDcdImpl::checkForResetFSyncPatterns() if (num_fsyncs) { - printf("Frame deformatter: Found %d FSYNCS\n",num_fsyncs); if ((num_fsyncs % 4) == 0) { // reset the upstream decoders @@ -449,32 +459,40 @@ int TraceFmtDcdImpl::checkForResetFSyncPatterns() } else { - // TBD: throw processing error, none frame size block of fsyncs + err = OCSD_ERR_DFMTR_BAD_FHSYNC; } } - return num_fsyncs * 4; + f_sync_bytes += num_fsyncs * 4; + return err; } - +/* Extract a single frame from the input buffer. */ bool TraceFmtDcdImpl::extractFrame() { const uint32_t FSYNC_PATTERN = 0x7FFFFFFF; // LE host pattern for FSYNC const uint16_t HSYNC_PATTERN = 0x7FFF; // LE host pattern for HSYNC + const uint16_t FSYNC_START = 0xFFFF; // LE host pattern for start 2 bytes of fsync - - bool cont_process = true; // continue processing after extraction. + ocsd_err_t err; uint32_t f_sync_bytes = 0; // skipped f sync bytes uint32_t h_sync_bytes = 0; // skipped h sync bytes uint32_t ex_bytes = 0; // extracted this pass (may be filling out part frame) + uint32_t buf_left = m_in_block_size - m_in_block_processed; // bytes remaining in buffer this pass. - // memory aligned sources are always multiples of frames, aligned to start. + // last call was end of input block - but carried on to process full frame. + // exit early here. + if (!buf_left) + return false; + + // memory aligned input data is forced to be always multiples of 16 byte frames, aligned to start. if( m_cfgFlags & OCSD_DFRMTR_FRAME_MEM_ALIGN) { // some linux drivers (e.g. for perf) will insert FSYNCS to pad or differentiate - // between blocks of aligned data, always in frame aligned complete 16 byte frames. + // between blocks of aligned data, always in frame aligned complete 16 byte frames. + // we need to skip past these frames, resetting as we go. if (m_cfgFlags & OCSD_DFRMTR_RESET_ON_4X_FSYNC) { - f_sync_bytes = checkForResetFSyncPatterns(); + err = checkForResetFSyncPatterns(f_sync_bytes); /* in this case the FSYNC pattern is output on both packed and unpacked cases */ if (f_sync_bytes && (m_b_output_packed_raw || m_b_output_unpacked_raw)) @@ -486,77 +504,96 @@ bool TraceFmtDcdImpl::extractFrame() m_in_block_base + m_in_block_processed, 0); } + + // throw processing error, none frame size block of fsyncs + if (err) + throw ocsdError(OCSD_ERR_SEV_ERROR, err, m_trc_curr_idx, "Incorrect FSYNC frame reset pattern"); + + buf_left -= f_sync_bytes; } - if((m_in_block_processed+f_sync_bytes) == m_in_block_size) + if (buf_left) { - m_ex_frm_n_bytes = 0; - cont_process = false; // end of input data. - } - else - { - // always a complete frame. - m_ex_frm_n_bytes = OCSD_DFRMTR_FRAME_SIZE; - memcpy(m_ex_frm_data, m_in_block_base + m_in_block_processed + f_sync_bytes, m_ex_frm_n_bytes); - m_trc_curr_idx_sof = m_trc_curr_idx + f_sync_bytes; - ex_bytes = OCSD_DFRMTR_FRAME_SIZE; + // always a complete frame - the input data has to be 16 byte multiple alignment. + m_ex_frm_n_bytes = OCSD_DFRMTR_FRAME_SIZE; + memcpy(m_ex_frm_data, m_in_block_base + m_in_block_processed + f_sync_bytes, m_ex_frm_n_bytes); + m_trc_curr_idx_sof = m_trc_curr_idx + f_sync_bytes; + ex_bytes = OCSD_DFRMTR_FRAME_SIZE; } } else { // extract data accounting for frame syncs and hsyncs if present. // we know we are aligned at this point - could be FSYNC or HSYNCs here. + // HSYNC present, library forces input to be aligned 2 byte multiples + // FSYNC - w/o HSYNCs, forces input to be aligned 4 byte multiples. // check what we a looking for - bool hasFSyncs = ((m_cfgFlags & OCSD_DFRMTR_HAS_FSYNCS) == OCSD_DFRMTR_HAS_FSYNCS); - bool hasHSyncs = ((m_cfgFlags & OCSD_DFRMTR_HAS_HSYNCS) == OCSD_DFRMTR_HAS_HSYNCS); + bool hasFSyncs = ((m_cfgFlags & OCSD_DFRMTR_HAS_FSYNCS) == OCSD_DFRMTR_HAS_FSYNCS); + bool hasHSyncs = ((m_cfgFlags & OCSD_DFRMTR_HAS_HSYNCS) == OCSD_DFRMTR_HAS_HSYNCS); + + const uint8_t* dataPtr = m_in_block_base + m_in_block_processed; + uint16_t data_pair_val; - const uint8_t *dataPtr = m_in_block_base+m_in_block_processed; - const uint8_t *eodPtr = m_in_block_base+m_in_block_size; - - cont_process = (bool)(dataPtr < eodPtr); - // can have FSYNCS at start of frame (in middle is an error). - if(hasFSyncs && cont_process && (m_ex_frm_n_bytes == 0)) + if (hasFSyncs && (m_ex_frm_n_bytes == 0)) { - while((*((uint32_t *)(dataPtr)) == FSYNC_PATTERN) && cont_process) + // was there an fsync start at the end of the last buffer? + if (m_b_fsync_start_eob) { + // last 2 of FSYNC look like HSYNC + if (*(uint16_t*)(dataPtr) != HSYNC_PATTERN) + { + // this means 0xFFFF followed by something else - invalid ID + ???? + throw ocsdError(OCSD_ERR_SEV_ERROR, OCSD_ERR_DFMTR_BAD_FHSYNC, m_trc_curr_idx, "Bad FSYNC pattern before frame or invalid ID.(0x7F)"); + } + else + { + f_sync_bytes += 2; + buf_left -= 2; + dataPtr += 2; + } + m_b_fsync_start_eob = false; + } + + // regular fsync checks + while ((buf_left >= 4) && (*((uint32_t*)(dataPtr)) == FSYNC_PATTERN)) { f_sync_bytes += 4; dataPtr += 4; - cont_process = (bool)(dataPtr < eodPtr); + buf_left -= 4; } - } - // not an FSYNC - while((m_ex_frm_n_bytes < OCSD_DFRMTR_FRAME_SIZE) && cont_process) - { - // check for illegal out of sequence FSYNC - if((m_ex_frm_n_bytes % 4) == 0) + // handle possible part fsync at the end of a buffer + if (buf_left == 2) { - if(*((uint32_t *)(dataPtr)) == FSYNC_PATTERN) + if (*(uint16_t*)(dataPtr) == FSYNC_START) { - // throw an illegal FSYNC error - throw ocsdError(OCSD_ERR_SEV_ERROR, OCSD_ERR_DFMTR_BAD_FHSYNC, m_trc_curr_idx, "Bad FSYNC in frame."); + f_sync_bytes += 2; + buf_left -= 2; + dataPtr += 2; + m_b_fsync_start_eob = true; } } + } + // process remaining data in pairs of bytes + while ((m_ex_frm_n_bytes < OCSD_DFRMTR_FRAME_SIZE) && buf_left) + { // mark start of frame after FSyncs - if(m_ex_frm_n_bytes == 0) + if (m_ex_frm_n_bytes == 0) m_trc_curr_idx_sof = m_trc_curr_idx + f_sync_bytes; m_ex_frm_data[m_ex_frm_n_bytes] = dataPtr[0]; - m_ex_frm_data[m_ex_frm_n_bytes+1] = dataPtr[1]; - m_ex_frm_n_bytes+=2; - ex_bytes +=2; + m_ex_frm_data[m_ex_frm_n_bytes + 1] = dataPtr[1]; + + data_pair_val = *((uint16_t*)(dataPtr)); // check pair is not HSYNC - if(*((uint16_t *)(dataPtr)) == HSYNC_PATTERN) + if (data_pair_val == HSYNC_PATTERN) { - if(hasHSyncs) + if (hasHSyncs) { - m_ex_frm_n_bytes-=2; - ex_bytes -= 2; - h_sync_bytes+=2; + h_sync_bytes += 2; } else { @@ -564,22 +601,27 @@ bool TraceFmtDcdImpl::extractFrame() throw ocsdError(OCSD_ERR_SEV_ERROR, OCSD_ERR_DFMTR_BAD_FHSYNC, m_trc_curr_idx, "Bad HSYNC in frame."); } } + // can't have a start of FSYNC here / illegal trace ID + else if (data_pair_val == FSYNC_START) + { + throw ocsdError(OCSD_ERR_SEV_ERROR, OCSD_ERR_DFMTR_BAD_FHSYNC, m_trc_curr_idx, "Bad FSYNC start in frame or invalid ID (0x7F)."); + } + else + { + m_ex_frm_n_bytes += 2; + ex_bytes += 2; + } + buf_left -= 2; dataPtr += 2; - cont_process = (bool)(dataPtr < eodPtr); } - - // if we hit the end of data but still have a complete frame waiting, - // need to continue processing to allow it to be used. - if(!cont_process && (m_ex_frm_n_bytes == OCSD_DFRMTR_FRAME_SIZE)) - cont_process = true; } // total bytes processed this pass uint32_t total_processed = ex_bytes + f_sync_bytes + h_sync_bytes; // output raw data on raw frame channel - packed raw. - if (((m_ex_frm_n_bytes == OCSD_DFRMTR_FRAME_SIZE) || !cont_process) && m_b_output_packed_raw) + if (((m_ex_frm_n_bytes == OCSD_DFRMTR_FRAME_SIZE) || (buf_left == 0)) && m_b_output_packed_raw) { outputRawMonBytes( OCSD_OP_DATA, m_trc_curr_idx, @@ -595,7 +637,11 @@ bool TraceFmtDcdImpl::extractFrame() // update index past the processed data m_trc_curr_idx += total_processed; - return cont_process; + // update any none trace data byte stats + addToFrameStats((uint64_t)(f_sync_bytes + h_sync_bytes)); + + // if we are exiting with a full frame then signal processing to continue + return (bool)(m_ex_frm_n_bytes == OCSD_DFRMTR_FRAME_SIZE); } bool TraceFmtDcdImpl::unpackFrame() @@ -604,6 +650,7 @@ bool TraceFmtDcdImpl::unpackFrame() uint8_t frameFlagBit = 0x1; uint8_t newSrcID = OCSD_BAD_CS_SRC_ID; bool PrevIDandIDChange = false; + uint64_t noneDataBytes = 0; // init output processing m_out_data_idx = 0; @@ -650,6 +697,7 @@ bool TraceFmtDcdImpl::unpackFrame() /// TBD - ID indexing in here. } + noneDataBytes++; } else // it's just data @@ -671,6 +719,7 @@ bool TraceFmtDcdImpl::unpackFrame() { // no matter if change or not, no associated data in byte 15 anyway so just set. m_curr_src_ID = (m_ex_frm_data[14] >> 1) & 0x7f; + noneDataBytes++; } // it's data else @@ -678,6 +727,9 @@ bool TraceFmtDcdImpl::unpackFrame() m_out_data[m_out_data_idx].data[m_out_data[m_out_data_idx].valid++] = m_ex_frm_data[14] | ((frameFlagBit & m_ex_frm_data[15]) ? 0x1 : 0x0); } m_ex_frm_n_bytes = 0; // mark frame as empty; + + noneDataBytes++; // byte 15 is always non-data. + addToFrameStats(noneDataBytes); // update the non data byte stats. return true; } @@ -716,6 +768,8 @@ bool TraceFmtDcdImpl::outputFrame() m_out_data[m_out_processed].data + m_out_data[m_out_processed].used, &bytes_used)); + addToIDStats((uint64_t)bytes_used); + if(!dataPathCont()) { cont_processing = false; @@ -739,7 +793,12 @@ bool TraceFmtDcdImpl::outputFrame() m_out_data[m_out_processed].valid, m_out_data[m_out_processed].data, m_out_data[m_out_processed].id); - } + } + + if (isReservedID(m_out_data[m_out_processed].id)) + addToReservedIDStats((uint64_t)m_out_data[m_out_processed].valid); + else + addToNoIDStats((uint64_t)m_out_data[m_out_processed].valid); m_out_processed++; // skip past this data. } } @@ -754,13 +813,44 @@ bool TraceFmtDcdImpl::outputFrame() m_out_data[m_out_processed].valid, m_out_data[m_out_processed].data, m_out_data[m_out_processed].id); - } + } + addToUnknownIDStats((uint64_t)m_out_data[m_out_processed].valid); m_out_processed++; // skip past this data. } } return cont_processing; } + +void TraceFmtDcdImpl::addToIDStats(uint64_t val) +{ + if (m_pStatsBlock) + m_pStatsBlock->valid_id_bytes += val; +} + +void TraceFmtDcdImpl::addToNoIDStats(uint64_t val) +{ + if (m_pStatsBlock) + m_pStatsBlock->no_id_bytes += val; +} + +void TraceFmtDcdImpl::addToFrameStats(uint64_t val) +{ + if (m_pStatsBlock) + m_pStatsBlock->frame_bytes += val; +} + +void TraceFmtDcdImpl::addToUnknownIDStats(uint64_t val) +{ + if (m_pStatsBlock) + m_pStatsBlock->unknown_id_bytes += val; +} +void TraceFmtDcdImpl::addToReservedIDStats(uint64_t val) +{ + if (m_pStatsBlock) + m_pStatsBlock->reserved_id_bytes += val; +} + /***************************************************************/ /* interface */ /***************************************************************/ @@ -819,21 +909,27 @@ componentAttachPt<ITraceErrorLog> *TraceFormatterFrameDecoder::getErrLogAttachPt return (m_pDecoder != 0) ? m_pDecoder->getErrorLogAttachPt() : 0; } -/* configuration - set operational mode for incoming stream (has FSYNCS etc) */ -ocsd_err_t TraceFormatterFrameDecoder::Configure(uint32_t cfg_flags) +ocsd_err_t TraceFormatterFrameDecoder::Init() { - if(!m_pDecoder) - { - if(m_instNum >= 0) + if (!m_pDecoder) + { + if (m_instNum >= 0) m_pDecoder = new (std::nothrow) TraceFmtDcdImpl(m_instNum); else m_pDecoder = new (std::nothrow) TraceFmtDcdImpl(); - if(!m_pDecoder) return OCSD_ERR_MEM; + if (!m_pDecoder) return OCSD_ERR_MEM; } - m_pDecoder->DecodeConfigure(cfg_flags); return OCSD_OK; } +/* configuration - set operational mode for incoming stream (has FSYNCS etc) */ +ocsd_err_t TraceFormatterFrameDecoder::Configure(uint32_t cfg_flags) +{ + if (!m_pDecoder) + return OCSD_ERR_NOT_INIT; + return m_pDecoder->DecodeConfigure(cfg_flags); +} + const uint32_t TraceFormatterFrameDecoder::getConfigFlags() const { uint32_t flags = 0; @@ -865,5 +961,10 @@ ocsd_datapath_resp_t TraceFormatterFrameDecoder::Flush() return (m_pDecoder == 0) ? OCSD_RESP_FATAL_NOT_INIT : m_pDecoder->Flush(); } +void TraceFormatterFrameDecoder::SetDemuxStatsBlock(ocsd_demux_stats_t *pStatsBlock) +{ + if (m_pDecoder) + m_pDecoder->SetDemuxStatsBlock(pStatsBlock); +} /* End of File trc_frame_deformatter.cpp */ diff --git a/decoder/source/trc_frame_deformatter_impl.h b/decoder/source/trc_frame_deformatter_impl.h index e1fc17ab259f..3571d5f2fc47 100644 --- a/decoder/source/trc_frame_deformatter_impl.h +++ b/decoder/source/trc_frame_deformatter_impl.h @@ -75,6 +75,8 @@ private: ocsd_err_t DecodeConfigure(uint32_t flags); ocsd_err_t SetForcedSyncIndex(ocsd_trc_index_t index, bool bSet); + void SetDemuxStatsBlock(ocsd_demux_stats_t *pStatsBlock) { m_pStatsBlock = pStatsBlock; }; + private: ocsd_datapath_resp_t executeNoneDataOpAllIDs(ocsd_datapath_op_t op, const ocsd_trc_index_t index = 0); ocsd_datapath_resp_t processTraceData(const ocsd_trc_index_t index, @@ -113,12 +115,20 @@ private: void setRawChanFilterAll(bool bEnable); const bool rawChanEnabled(const uint8_t id) const; - int checkForResetFSyncPatterns(); + ocsd_err_t checkForResetFSyncPatterns(uint32_t &f_sync_bytes); friend class TraceFormatterFrameDecoder; - // attachment points + // stats updates + void addToIDStats(uint64_t val); + void addToNoIDStats(uint64_t val); + void addToFrameStats(uint64_t val); + void addToUnknownIDStats(uint64_t val); + void addToReservedIDStats(uint64_t val); + + bool isReservedID(uint8_t ID) { return ((ID == 0) || (ID >= 0x70)); }; + // attachment points componentAttachPt<ITrcDataIn> m_IDStreams[128]; componentAttachPt<ITrcRawFrameIn> m_RawTraceFrame; @@ -142,12 +152,18 @@ private: // incoming frame buffer uint8_t m_ex_frm_data[OCSD_DFRMTR_FRAME_SIZE]; // buffer the current frame in case we have to stop part way through int m_ex_frm_n_bytes; // number of valid bytes in the current frame (extraction) + bool m_b_fsync_start_eob; // flag to indicate that the end of the last buffer was a pair of bytes + // (0xffff) that could only validly be the start and FSYNC. ocsd_trc_index_t m_trc_curr_idx_sof; // trace source index at start of frame. - // channel output data - can never be more than a frame of data for a single ID. - out_chan_data m_out_data[7]; // can only be 8 ID changes in a frame, but last on has no associated data so 7 possible data blocks + /* channel output data - can never be more than a frame of data for a single ID. + * 8 possible ID changes per frame. Although the final one can have no associated data, a pathological + * case exists with 7 ID changes, all data associated with a previous frame, except for last + * ID / data byte which is data. Not possible with normal hardware but guard against corrupt input. + */ + out_chan_data m_out_data[8]; // output data for a given ID int m_out_data_idx; // number of out_chan_data frames used. - int m_out_processed; // number of complete out_chan_data frames output. + int m_out_processed; // number of complete out_chan_data frames output. /* local copy of input buffer pointers*/ const uint8_t *m_in_block_base; @@ -159,6 +175,8 @@ private: bool m_b_output_unpacked_raw; bool m_raw_chan_enable[128]; + + ocsd_demux_stats_t *m_pStatsBlock; }; diff --git a/decoder/source/trc_gen_elem.cpp b/decoder/source/trc_gen_elem.cpp index e1774203ebc5..c94c5a7c6848 100644 --- a/decoder/source/trc_gen_elem.cpp +++ b/decoder/source/trc_gen_elem.cpp @@ -54,7 +54,10 @@ static const char *s_elem_descs[][2] = {"OCSD_GEN_TRC_ELEM_TIMESTAMP","Timestamp - preceding elements happeded before this time."}, {"OCSD_GEN_TRC_ELEM_CYCLE_COUNT","Cycle count - cycles since last cycle count value - associated with a preceding instruction range."}, {"OCSD_GEN_TRC_ELEM_EVENT","Event - numbered event or trigger"}, - {"OCSD_GEN_TRC_ELEM_SWTRACE","Software trace packet - may contain data payload."}, + {"OCSD_GEN_TRC_ELEM_SWTRACE","Software trace packet - may contain data payload. STM / ITM hardware trace with channel protocol."}, + {"OCSD_GEN_TRC_ELEM_SYNC_MARKER","Synchronisation marker - marks position in stream of an element that is output later."}, + {"OCSD_GEN_TRC_ELEM_MEMTRANS","Trace indication of transactional memory operations."}, + {"OCSD_GEN_TRC_ELEM_INSTRUMENTATION", "PE instrumentation trace - PE generated SW trace, application dependent protocol."}, {"OCSD_GEN_TRC_ELEM_CUSTOM","Fully custom packet type."} }; @@ -64,7 +67,8 @@ static const char *instr_type[] = { "iBR ", "ISB ", "DSB.DMB", - "WFI.WFE" + "WFI.WFE", + "TSTART" }; #define T_SIZE (sizeof(instr_type) / sizeof(const char *)) @@ -105,6 +109,16 @@ static const char *s_unsync_reason[] = { "bad-packet", // UNSYNC_BAD_PACKET - bad packet at input - resync to restart. "end-of-trace", // UNSYNC_EOT - end of trace info. }; +static const char *s_transaction_type[] = { + "Init", + "Start", + "Commit", + "Fail" +}; + +static const char *s_marker_t[] = { + "Timestamp marker", // ELEM_MARKER_TS +}; void OcsdTraceElement::toString(std::string &str) const { @@ -158,7 +172,14 @@ void OcsdTraceElement::toString(std::string &str) const { oss << "EL" << std::dec << (int)(context.exception_level); } - oss << (context.security_level == ocsd_sec_secure ? "S; " : "N; ") << (context.bits64 ? "64-bit; " : "32-bit; "); + switch (context.security_level) + { + case ocsd_sec_secure: oss << "S; "; break; + case ocsd_sec_nonsecure: oss << "N; "; break; + case ocsd_sec_root: oss << "Root; "; break; + case ocsd_sec_realm: oss << "Realm; "; break; + } + oss << (context.bits64 ? "64-bit; " : "32-bit; "); if(context.vmid_valid) oss << "VMID=0x" << std::hex << context.vmid << "; "; if(context.ctxt_id_valid) @@ -190,6 +211,19 @@ void OcsdTraceElement::toString(std::string &str) const oss << " [" << s_unsync_reason[unsync_eot_info] << "]"; break; + case OCSD_GEN_TRC_ELEM_SYNC_MARKER: + oss << " [" << s_marker_t[sync_marker.type] << "(0x" << std::setfill('0') << std::setw(8) << std::hex << sync_marker.value << ")]"; + break; + + case OCSD_GEN_TRC_ELEM_MEMTRANS: + if (mem_trans <= OCSD_MEM_TRANS_FAIL) + oss << s_transaction_type[mem_trans]; + break; + + case OCSD_GEN_TRC_ELEM_INSTRUMENTATION: + oss << "EL" << std::dec << (int)sw_ite.el << "; 0x" << std::setfill('0') << std::setw(16) << std::hex << sw_ite.value; + break; + default: break; } if(has_cc) diff --git a/decoder/source/trc_printable_elem.cpp b/decoder/source/trc_printable_elem.cpp index 88c7bb226f41..2b60c030d53f 100644 --- a/decoder/source/trc_printable_elem.cpp +++ b/decoder/source/trc_printable_elem.cpp @@ -52,8 +52,6 @@ void trcPrintableElem::getValStr(std::string &valStr, const int valTotalBitSize, assert((valTotalBitSize >= 4) && (valTotalBitSize <= 64)); - uint64_t LimitMask = ~0ULL; - LimitMask >>= 64-valTotalBitSize; valStr = "0x"; if(asHex) diff --git a/decoder/tests/auto-fdo/autofdo.md b/decoder/tests/auto-fdo/autofdo.md index 69ed1520eda8..5d55cd05db77 100644 --- a/decoder/tests/auto-fdo/autofdo.md +++ b/decoder/tests/auto-fdo/autofdo.md @@ -87,12 +87,12 @@ kernel and many targets are using older kernels. To enable CoreSight trace on these targets, Arm have provided backports of the latest CoreSight drivers and ETM strobing patch at: - <http://linux-arm.org/git?p=linux-coresight-backports.git> + <https://gitlab.arm.com/linux-arm/linux-coresight-backports> This repository can be cloned with: ``` -git clone git://linux-arm.org/linux-coresight-backports.git +git clone https://git.gitlab.arm.com/linux-arm/linux-coresight-backports.git ``` You can include these backports in your kernel by either merging the @@ -433,10 +433,50 @@ sudo ./set_strobing.sh 5000 10000 perf record -e cs_etm/@tmc_etr0/u --per-thread -- <your app>" perf inject -i perf.data -o inj.data --itrace=i100000il create_llvm_prof -binary=/path/to/binary -profile=inj.data -out=program.llvmprof +clang -O2 -fprofile-sample-use=program.llvmprof -o program program.c ``` Use `create_gcov` for gcc. +## High Level Summary for recoding on Arm board and decoding on different host + +1. (on Arm board) + + sudo ./set_strobing.sh 5000 10000 + perf record -e cs_etm/@tmc_etr0/u --per-thread -- <your app>. + If you specify `-N, --no-buildid-cache`, perf will just take care of recording the target binary and nothing will be copied.<br> If you don't specify it, any recorded dynamic library will be copied to ~/.debug in the board. + +2. (on Arm board) `perf archive` which saves all the found libraries in a tar (internally, it looks into perf.data file and performs a lookup using perf-buildid-list --with-hits) +3. (on host) `scp` to copy perf.data and the .tar file generated from `perf archive`. +4. (on host) Run `tar xvf perf_data.tar.bz2 -C ~/.debug` to populate the buildid-cache +5. (on host) Double check the setup is correct: + + a. `perf buildid-list -i perf.data` gives you the list of dynamic libraries buildids whose trace has been recorded and saved in perf.data. + b. `perf buildid-cache --list` lists the dynamic libraries in the buildid cache that will be used by `perf inject`. + Make sure the output of (a) and (b) overlaps as in buildid value for those binaries you are interested into optimizing with afdo. + +6. (on host) `perf inject -i perf.data -o inj.data --itrace=i100000il` will check for the dynamic libraries using the buildid inside the buildid-cache and post-process the trace.<br> buildids have to be the same, otherwise it won't be possible to post-process the trace. + +7. (on host) `create_llvm_prof -binary=/path/to/binary -profile=inj.data -out=program.llvmprof` takes the output from perf-inject and tranforms it into a format that the compiler can read. +8. (on host) `clang -O2 -fprofile-sample-use=program.llvmprof -o program program.c` to make clang use the produced profile.<br> + If you are confident enough that your profile is accurate, you can add the `-fprofile-sample-accurate` flag, which will penalize all the callsites without corresponding profile, marking them as cold. + +If you are using the same host for both building the binary to be traced and re-building it with afdo: + +1. You won't need to copy back any dynamic libraries from the board (since you already have them), and can use `--no-buildid-cache` when recording +2. You have to make sure the relevant dynamic libraries to be optimized are present in the buildid-cache. + +You can easily add a dynamic library manually into the build-id cache by running: + +`perf buildid-cache --add <path/to/library/or/binary> -vvv` + +You can easily check what is currently contained in you buildid-cache by running: + +`perf buildid-cache --list` + +You can check the buildid of a given binary/dynamic library: + +`file <path/to/dynamic/library>` ## References diff --git a/decoder/tests/build/linux/c_api_pkt_print_test/makefile b/decoder/tests/build/linux/c_api_pkt_print_test/makefile index b0b56044e032..f1108e4d3439 100644 --- a/decoder/tests/build/linux/c_api_pkt_print_test/makefile +++ b/decoder/tests/build/linux/c_api_pkt_print_test/makefile @@ -51,12 +51,12 @@ OBJECTS = $(BUILD_DIR)/c_api_pkt_print_test.o LIBS = -L$(LIB_TARGET_DIR) -l$(LIB_BASE_NAME) -l$(LIB_CAPI_NAME) \ -L$(LIB_TEST_TARGET_DIR) -l_echo_test_dcd -all: build_dir copy_libs +all: copy_libs test_app: $(BIN_TEST_TARGET_DIR)/$(PROG) - $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) + $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) | build_dir mkdir -p $(BIN_TEST_TARGET_DIR) $(LINKER) $(LDFLAGS) $(OBJECTS) -Wl,--start-group $(LIBS) -Wl,--end-group -o $(BIN_TEST_TARGET_DIR)/$(PROG) cp $(LIB_TARGET_DIR)/*.so . @@ -77,7 +77,7 @@ DEPS := $(OBJECTS:%.o=%.d) -include $(DEPS) ## object compile -$(BUILD_DIR)/%.o : %.c +$(BUILD_DIR)/%.o : %.c | build_dir $(CC) $(CFLAGS) $(CC_INCLUDES) -MMD $< -o $@ #### clean diff --git a/decoder/tests/build/linux/echo_test_dcd_lib/makefile b/decoder/tests/build/linux/echo_test_dcd_lib/makefile index 31ca38fe12ed..8c255a85aba2 100644 --- a/decoder/tests/build/linux/echo_test_dcd_lib/makefile +++ b/decoder/tests/build/linux/echo_test_dcd_lib/makefile @@ -48,9 +48,9 @@ CC_INCLUDES = \ OBJECTS = $(BUILD_DIR)/ext_dcd_echo_test.o \ $(BUILD_DIR)/ext_dcd_echo_test_fact.o -all: build_dir $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a +all: $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a -$(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS) +$(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS) | build_dir mkdir -p $(LIB_TEST_TARGET_DIR) $(LIB) $(ARFLAGS) $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a $(OBJECTS) @@ -64,7 +64,7 @@ DEPS := $(OBJECTS:%.o=%.d) -include $(DEPS) ## object compile -$(BUILD_DIR)/%.o : %.c +$(BUILD_DIR)/%.o : %.c | build_dir $(CC) $(CFLAGS) $(CC_INCLUDES) -MMD $< -o $@ #### clean diff --git a/decoder/tests/build/linux/frame_demux_test/makefile b/decoder/tests/build/linux/frame_demux_test/makefile new file mode 100644 index 000000000000..29c75a00138a --- /dev/null +++ b/decoder/tests/build/linux/frame_demux_test/makefile @@ -0,0 +1,88 @@ +######################################################## +# Copyright 2022 ARM Limited. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder 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. +# +################################################################################# + +######## +# opencsd: makefile for the frame demux test program +# + +CXX := $(MASTER_CXX) +LINKER := $(MASTER_LINKER) + +PROG = frame-demux-test + +BUILD_DIR=./$(PLAT_DIR) + +VPATH = $(OCSD_TESTS)/source + +CXX_INCLUDES = \ + -I$(OCSD_TESTS)/source \ + -I$(OCSD_INCLUDE) + +OBJECTS = $(BUILD_DIR)/frame_demux_test.o + +LIBS = -L$(LIB_TEST_TARGET_DIR) -L$(LIB_TARGET_DIR) -l$(LIB_BASE_NAME) + +all: copy_libs + +test_app: $(BIN_TEST_TARGET_DIR)/$(PROG) + + + $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) | build_dir + mkdir -p $(BIN_TEST_TARGET_DIR) + $(LINKER) $(LDFLAGS) $(OBJECTS) -Wl,--start-group $(LIBS) -Wl,--end-group -o $(BIN_TEST_TARGET_DIR)/$(PROG) + +build_dir: + mkdir -p $(BUILD_DIR) + +.PHONY: copy_libs +copy_libs: $(BIN_TEST_TARGET_DIR)/$(PROG) + cp $(LIB_TARGET_DIR)/*.so* $(BIN_TEST_TARGET_DIR)/. + + + +#### build rules +## object dependencies +DEPS := $(OBJECTS:%.o=%.d) + +-include $(DEPS) + +## object compile +$(BUILD_DIR)/%.o : %.cpp | build_dir + $(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -MMD $< -o $@ + +#### clean +.PHONY: clean +clean : + -rm $(BIN_TEST_TARGET_DIR)/$(PROG) $(OBJECTS) + -rm $(DEPS) + -rm $(BIN_TEST_TARGET_DIR)/*.so* + -rmdir $(BUILD_DIR) + +# end of file makefile diff --git a/decoder/tests/build/linux/mem_buffer_eg/makefile b/decoder/tests/build/linux/mem_buffer_eg/makefile index 850ed497dafa..79395217a3c0 100644 --- a/decoder/tests/build/linux/mem_buffer_eg/makefile +++ b/decoder/tests/build/linux/mem_buffer_eg/makefile @@ -51,12 +51,12 @@ OBJECTS = $(BUILD_DIR)/mem_buff_demo.o LIBS = -L$(LIB_TEST_TARGET_DIR) -lsnapshot_parser \ -L$(LIB_TARGET_DIR) -l$(LIB_BASE_NAME) -all: build_dir copy_libs +all: copy_libs test_app: $(BIN_TEST_TARGET_DIR)/$(PROG) - $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) + $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) | build_dir mkdir -p $(BIN_TEST_TARGET_DIR) $(LINKER) $(LDFLAGS) $(OBJECTS) -Wl,--start-group $(LIBS) -Wl,--end-group -o $(BIN_TEST_TARGET_DIR)/$(PROG) @@ -76,7 +76,7 @@ DEPS := $(OBJECTS:%.o=%.d) -include $(DEPS) ## object compile -$(BUILD_DIR)/%.o : %.cpp +$(BUILD_DIR)/%.o : %.cpp | build_dir $(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -MMD $< -o $@ #### clean diff --git a/decoder/tests/build/linux/snapshot_parser_lib/makefile b/decoder/tests/build/linux/snapshot_parser_lib/makefile index 295bab61780e..ae566eba98e5 100644 --- a/decoder/tests/build/linux/snapshot_parser_lib/makefile +++ b/decoder/tests/build/linux/snapshot_parser_lib/makefile @@ -63,9 +63,9 @@ OBJECTS=$(BUILD_DIR)/device_info.o \ $(BUILD_DIR)/snapshot_reader.o \ $(BUILD_DIR)/ss_to_dcdtree.o -all: build_dir $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a +all: $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a -$(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS) +$(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a: $(OBJECTS) | build_dir mkdir -p $(LIB_TEST_TARGET_DIR) $(LIB) $(ARFLAGS) $(LIB_TEST_TARGET_DIR)/$(LIB_NAME).a $(OBJECTS) @@ -80,7 +80,7 @@ DEPS := $(OBJECTS:%.o=%.d) -include $(DEPS) ## object compile -$(BUILD_DIR)/%.o : %.cpp +$(BUILD_DIR)/%.o : %.cpp | build_dir $(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -MMD $< -o $@ ### clean diff --git a/decoder/tests/build/linux/trc_pkt_lister/makefile b/decoder/tests/build/linux/trc_pkt_lister/makefile index 54ce27d351a6..df0af0a10737 100644 --- a/decoder/tests/build/linux/trc_pkt_lister/makefile +++ b/decoder/tests/build/linux/trc_pkt_lister/makefile @@ -36,6 +36,7 @@ CXX := $(MASTER_CXX) LINKER := $(MASTER_LINKER) PROG = trc_pkt_lister +PROG_S = trc_pkt_lister_s BUILD_DIR=./$(PLAT_DIR) @@ -51,19 +52,28 @@ OBJECTS = $(BUILD_DIR)/trc_pkt_lister.o LIBS = -L$(LIB_TEST_TARGET_DIR) -lsnapshot_parser \ -L$(LIB_TARGET_DIR) -l$(LIB_BASE_NAME) -all: build_dir copy_libs +all: copy_libs test_app: $(BIN_TEST_TARGET_DIR)/$(PROG) - $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) + $(BIN_TEST_TARGET_DIR)/$(PROG): $(OBJECTS) | build_dir mkdir -p $(BIN_TEST_TARGET_DIR) $(LINKER) $(LDFLAGS) $(OBJECTS) -Wl,--start-group $(LIBS) -Wl,--end-group -o $(BIN_TEST_TARGET_DIR)/$(PROG) +$(BIN_TEST_TARGET_DIR)/$(PROG_S): $(OBJECTS) | build_dir + mkdir -p $(BIN_TEST_TARGET_DIR) + $(LINKER) -static $(LDFLAGS) $(OBJECTS) -Wl,--start-group $(LIBS) -Wl,--end-group -o $(BIN_TEST_TARGET_DIR)/$(PROG_S) + + + build_dir: mkdir -p $(BUILD_DIR) .PHONY: copy_libs +ifdef TEST_STATIC_LINKING +copy_libs: $(BIN_TEST_TARGET_DIR)/$(PROG_S) +endif copy_libs: $(BIN_TEST_TARGET_DIR)/$(PROG) cp $(LIB_TARGET_DIR)/*.so* $(BIN_TEST_TARGET_DIR)/. @@ -76,13 +86,16 @@ DEPS := $(OBJECTS:%.o=%.d) -include $(DEPS) ## object compile -$(BUILD_DIR)/%.o : %.cpp +$(BUILD_DIR)/%.o : %.cpp | build_dir $(CXX) $(CXXFLAGS) $(CXX_INCLUDES) -MMD $< -o $@ #### clean .PHONY: clean clean : -rm $(BIN_TEST_TARGET_DIR)/$(PROG) $(OBJECTS) +ifdef TEST_STATIC_LINKING + -rm $(BIN_TEST_TARGET_DIR)/$(PROG_S) +endif -rm $(DEPS) -rm $(BIN_TEST_TARGET_DIR)/*.so* -rmdir $(BUILD_DIR) diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test-dl.exe.recipe b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test-dl.exe.recipe new file mode 100644 index 000000000000..2e84a2a7e0ae --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test-dl.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win32\rel\c_api_pkt_print_test-dl.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test.exe.recipe b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test.exe.recipe new file mode 100644 index 000000000000..d6a9f40abd65 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win32\rel\c_api_pkt_print_test.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test_dll.exe.recipe b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test_dll.exe.recipe new file mode 100644 index 000000000000..9607cfe1b87e --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release-dll/c_api_pkt_print_test_dll.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win32\rel\c_api_pkt_print_test_dll.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release/c_api_pkt_print_test.exe.recipe b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release/c_api_pkt_print_test.exe.recipe new file mode 100644 index 000000000000..d6a9f40abd65 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release/c_api_pkt_print_test.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win32\rel\c_api_pkt_print_test.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/Release/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj new file mode 100644 index 000000000000..985a84e709c2 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj @@ -0,0 +1,347 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="debug-dll|Win32"> + <Configuration>debug-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="debug-dll|x64"> + <Configuration>debug-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|Win32"> + <Configuration>Release-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|x64"> + <Configuration>Release-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\c_api_pkt_print_test.c" /> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{3AC169DA-E156-4D16-95DF-73D7302A5606}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>c_api_pkt_print_test</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug-dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <EnableASAN>true</EnableASAN> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug-dll|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='debug-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug-dll|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + <TargetName>$(ProjectName)_dll</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug-dll|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + <TargetName>$(ProjectName)_dll</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>$(ProjectName)_dll</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + <TargetName>$(ProjectName)_dll</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;OCSD_USE_STATIC_C_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\tests\ext_dcd_test_eg\c_api_echo_test</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_CAPI_NAME).lib;lib$(LIB_BASE_NAME).lib;ext_dcd_echo_test.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command> + </Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug-dll|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\tests\ext_dcd_test_eg\c_api_echo_test</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_CAPI_NAME).lib;ext_dcd_echo_test.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <PostBuildEvent> + <Command>copy ..\..\..\..\lib\win32\dbg\*.dll ..\..\..\bin\win32\dbg\.</Command> + </PostBuildEvent> + <ProjectReference> + <LinkLibraryDependencies>false</LinkLibraryDependencies> + </ProjectReference> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;OCSD_USE_STATIC_C_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\tests\ext_dcd_test_eg\c_api_echo_test</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>lib$(LIB_CAPI_NAME).lib;lib$(LIB_BASE_NAME).lib;ext_dcd_echo_test.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='debug-dll|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\tests\ext_dcd_test_eg\c_api_echo_test</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>lib$(LIB_CAPI_NAME).lib;ext_dcd_echo_test.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + </Link> + <ProjectReference> + <LinkLibraryDependencies>false</LinkLibraryDependencies> + </ProjectReference> + <PostBuildEvent> + <Command>copy ..\..\..\..\lib\win64\dbg\*.dll ..\..\..\bin\win64\dbg\.</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;OCSD_USE_STATIC_C_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\tests\ext_dcd_test_eg\c_api_echo_test</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_CAPI_NAME).lib;lib$(LIB_BASE_NAME).lib;ext_dcd_echo_test.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\tests\ext_dcd_test_eg\c_api_echo_test</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_CAPI_NAME).lib;ext_dcd_echo_test.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <ProjectReference> + <LinkLibraryDependencies>false</LinkLibraryDependencies> + </ProjectReference> + <PostBuildEvent> + <Command>copy ..\..\..\..\lib\win32\rel\*.dll ..\..\..\bin\win32\rel\.</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;OCSD_USE_STATIC_C_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\tests\ext_dcd_test_eg\c_api_echo_test</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_CAPI_NAME).lib;lib$(LIB_BASE_NAME).lib;ext_dcd_echo_test.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\..\tests\ext_dcd_test_eg\c_api_echo_test</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_CAPI_NAME).lib;ext_dcd_echo_test.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <ProjectReference> + <LinkLibraryDependencies>false</LinkLibraryDependencies> + </ProjectReference> + <PostBuildEvent> + <Command>copy ..\..\..\..\lib\win64\rel\*.dll ..\..\..\bin\win64\rel\.</Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj.filters b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj.filters new file mode 100644 index 000000000000..e8fc90b49ed5 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\c_api_pkt_print_test.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/debug-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/debug-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/debug-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/debug-dll/c_api_pkt_print_test_dll.exe.recipe b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/debug-dll/c_api_pkt_print_test_dll.exe.recipe new file mode 100644 index 000000000000..96aa2daede23 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/debug-dll/c_api_pkt_print_test_dll.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win32\dbg\c_api_pkt_print_test_dll.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release-dll/c_api_pkt_print_test_dll.exe.recipe b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release-dll/c_api_pkt_print_test_dll.exe.recipe new file mode 100644 index 000000000000..35c848c55b0d --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release-dll/c_api_pkt_print_test_dll.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win64\rel\c_api_pkt_print_test_dll.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release/c_api_pkt_print_test.exe.recipe b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release/c_api_pkt_print_test.exe.recipe new file mode 100644 index 000000000000..6707fc0fedbb --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release/c_api_pkt_print_test.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win64\rel\c_api_pkt_print_test.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/Release/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/debug-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/debug-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/debug-dll/c_api_pkt_print_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/debug-dll/c_api_pkt_print_test_dll.exe.recipe b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/debug-dll/c_api_pkt_print_test_dll.exe.recipe new file mode 100644 index 000000000000..63d719b6744f --- /dev/null +++ b/decoder/tests/build/win-vs2022/c_api_pkt_print_test/x64/debug-dll/c_api_pkt_print_test_dll.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win64\dbg\c_api_pkt_print_test_dll.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/ext_dcd_echo_test/Release/ext_dcd_echo_test.lib.recipe b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/Release/ext_dcd_echo_test.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/Release/ext_dcd_echo_test.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/ext_dcd_echo_test/Release/ext_dcd_echo_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/Release/ext_dcd_echo_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/Release/ext_dcd_echo_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/ext_dcd_echo_test/ext_dcd_echo_test.vcxproj b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/ext_dcd_echo_test.vcxproj new file mode 100644 index 000000000000..74b8e1ad40ed --- /dev/null +++ b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/ext_dcd_echo_test.vcxproj @@ -0,0 +1,291 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-dll|Win32"> + <Configuration>Debug-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-dll|x64"> + <Configuration>Debug-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|Win32"> + <Configuration>Release-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|x64"> + <Configuration>Release-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{46219A32-8178-41C1-B3B1-B5A6E547515F}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>ext_dcd_echo_test</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ExceptionHandling>false</ExceptionHandling> + <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ExceptionHandling>false</ExceptionHandling> + <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClInclude Include="..\..\..\ext_dcd_test_eg\c_api_echo_test\ext_dcd_echo_test.h" /> + <ClInclude Include="..\..\..\ext_dcd_test_eg\c_api_echo_test\ext_dcd_echo_test_fact.h" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\ext_dcd_test_eg\c_api_echo_test\ext_dcd_echo_test.c" /> + <ClCompile Include="..\..\..\ext_dcd_test_eg\c_api_echo_test\ext_dcd_echo_test_fact.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/ext_dcd_echo_test/ext_dcd_echo_test.vcxproj.filters b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/ext_dcd_echo_test.vcxproj.filters new file mode 100644 index 000000000000..10fc54c1caa4 --- /dev/null +++ b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/ext_dcd_echo_test.vcxproj.filters @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\ext_dcd_test_eg\c_api_echo_test\ext_dcd_echo_test_fact.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\ext_dcd_test_eg\c_api_echo_test\ext_dcd_echo_test.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\ext_dcd_test_eg\c_api_echo_test\ext_dcd_echo_test_fact.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\ext_dcd_test_eg\c_api_echo_test\ext_dcd_echo_test.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/ext_dcd_echo_test/x64/Release/ext_dcd_echo_test.lib.recipe b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/x64/Release/ext_dcd_echo_test.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/x64/Release/ext_dcd_echo_test.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/ext_dcd_echo_test/x64/Release/ext_dcd_echo_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/x64/Release/ext_dcd_echo_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/ext_dcd_echo_test/x64/Release/ext_dcd_echo_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/frame_demux_test/Win32/Release/frame_demux_test.exe.recipe b/decoder/tests/build/win-vs2022/frame_demux_test/Win32/Release/frame_demux_test.exe.recipe new file mode 100644 index 000000000000..b85a437eb594 --- /dev/null +++ b/decoder/tests/build/win-vs2022/frame_demux_test/Win32/Release/frame_demux_test.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win32\rel\frame_demux_test.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/frame_demux_test/Win32/Release/frame_demux_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/frame_demux_test/Win32/Release/frame_demux_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/frame_demux_test/Win32/Release/frame_demux_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/frame_demux_test/frame_demux_test.vcxproj b/decoder/tests/build/win-vs2022/frame_demux_test/frame_demux_test.vcxproj new file mode 100644 index 000000000000..117f9f94e062 --- /dev/null +++ b/decoder/tests/build/win-vs2022/frame_demux_test/frame_demux_test.vcxproj @@ -0,0 +1,172 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <VCProjectVersion>16.0</VCProjectVersion> + <Keyword>Win32Proj</Keyword> + <ProjectGuid>{98ee9884-a4eb-4c75-a911-dfedf992754f}</ProjectGuid> + <RootNamespace>framedemuxtest</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + <EnableASAN>true</EnableASAN> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>false</SDLCheck> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <BasicRuntimeChecks> + </BasicRuntimeChecks> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\frame_demux_test.cpp" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/frame_demux_test/frame_demux_test.vcxproj.filters b/decoder/tests/build/win-vs2022/frame_demux_test/frame_demux_test.vcxproj.filters new file mode 100644 index 000000000000..8069d24a8e06 --- /dev/null +++ b/decoder/tests/build/win-vs2022/frame_demux_test/frame_demux_test.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\frame_demux_test.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/frame_demux_test/x64/Release/frame_demux_test.exe.recipe b/decoder/tests/build/win-vs2022/frame_demux_test/x64/Release/frame_demux_test.exe.recipe new file mode 100644 index 000000000000..c98207c230e7 --- /dev/null +++ b/decoder/tests/build/win-vs2022/frame_demux_test/x64/Release/frame_demux_test.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win64\rel\frame_demux_test.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/frame_demux_test/x64/Release/frame_demux_test.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/frame_demux_test/x64/Release/frame_demux_test.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/frame_demux_test/x64/Release/frame_demux_test.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/mem-buffer-eg/Win32/Release/mem-buffer-eg.exe.recipe b/decoder/tests/build/win-vs2022/mem-buffer-eg/Win32/Release/mem-buffer-eg.exe.recipe new file mode 100644 index 000000000000..f1b64a06e5aa --- /dev/null +++ b/decoder/tests/build/win-vs2022/mem-buffer-eg/Win32/Release/mem-buffer-eg.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win32\rel\mem-buffer-eg.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/mem-buffer-eg/Win32/Release/mem-buffer-eg.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/mem-buffer-eg/Win32/Release/mem-buffer-eg.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/mem-buffer-eg/Win32/Release/mem-buffer-eg.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/mem-buffer-eg/mem-buffer-eg.vcxproj b/decoder/tests/build/win-vs2022/mem-buffer-eg/mem-buffer-eg.vcxproj new file mode 100644 index 000000000000..66de3347413f --- /dev/null +++ b/decoder/tests/build/win-vs2022/mem-buffer-eg/mem-buffer-eg.vcxproj @@ -0,0 +1,293 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-dll|Win32"> + <Configuration>Debug-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-dll|x64"> + <Configuration>Debug-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|Win32"> + <Configuration>Release-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|x64"> + <Configuration>Release-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\mem_buff_demo.cpp" /> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{BC090130-2C53-4CF6-8AD4-37BF72B8D01A}</ProjectGuid> + <RootNamespace>membuffereg</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck> + </SDLCheck> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck> + </SDLCheck> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck>false</SDLCheck> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck>false</SDLCheck> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck> + </SDLCheck> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck> + </SDLCheck> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>false</SDLCheck> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>false</SDLCheck> + <AdditionalIncludeDirectories>..\..\..\..\include</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + <Link> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/mem-buffer-eg/mem-buffer-eg.vcxproj.filters b/decoder/tests/build/win-vs2022/mem-buffer-eg/mem-buffer-eg.vcxproj.filters new file mode 100644 index 000000000000..ce99a9eb1d73 --- /dev/null +++ b/decoder/tests/build/win-vs2022/mem-buffer-eg/mem-buffer-eg.vcxproj.filters @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\mem_buff_demo.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/mem-buffer-eg/x64/Release/mem-buffer-eg.exe.recipe b/decoder/tests/build/win-vs2022/mem-buffer-eg/x64/Release/mem-buffer-eg.exe.recipe new file mode 100644 index 000000000000..1f4bcbb09bff --- /dev/null +++ b/decoder/tests/build/win-vs2022/mem-buffer-eg/x64/Release/mem-buffer-eg.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win64\rel\mem-buffer-eg.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/mem-buffer-eg/x64/Release/mem-buffer-eg.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/mem-buffer-eg/x64/Release/mem-buffer-eg.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/mem-buffer-eg/x64/Release/mem-buffer-eg.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/snapshot_parser_lib/Release-dll/snapshot_parser_lib.lib.recipe b/decoder/tests/build/win-vs2022/snapshot_parser_lib/Release-dll/snapshot_parser_lib.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/tests/build/win-vs2022/snapshot_parser_lib/Release-dll/snapshot_parser_lib.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/snapshot_parser_lib/Release-dll/snapshot_parser_lib.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/snapshot_parser_lib/Release-dll/snapshot_parser_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/snapshot_parser_lib/Release-dll/snapshot_parser_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/snapshot_parser_lib/Win32/Release/snapshot_parser_lib.lib.recipe b/decoder/tests/build/win-vs2022/snapshot_parser_lib/Win32/Release/snapshot_parser_lib.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/tests/build/win-vs2022/snapshot_parser_lib/Win32/Release/snapshot_parser_lib.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/snapshot_parser_lib/Win32/Release/snapshot_parser_lib.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/snapshot_parser_lib/Win32/Release/snapshot_parser_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/snapshot_parser_lib/Win32/Release/snapshot_parser_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/snapshot_parser_lib/snapshot_parser_lib.vcxproj b/decoder/tests/build/win-vs2022/snapshot_parser_lib/snapshot_parser_lib.vcxproj new file mode 100644 index 000000000000..0b67d0c90a42 --- /dev/null +++ b/decoder/tests/build/win-vs2022/snapshot_parser_lib/snapshot_parser_lib.vcxproj @@ -0,0 +1,316 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-dll|Win32"> + <Configuration>Debug-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-dll|x64"> + <Configuration>Debug-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|Win32"> + <Configuration>Release-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|x64"> + <Configuration>Release-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{DE1F395D-4F53-42FB-8AEF-993A4BF7E411}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>snapshot_parser_lib</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="Configuration"> + <ConfigurationType>StaticLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <OutDir>..\..\..\lib\win$(PlatformArchitecture)\rel\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>../../../snapshot_parser_lib/include;../../../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>../../../snapshot_parser_lib/include;../../../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>../../../snapshot_parser_lib/include;../../../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ShowIncludes>false</ShowIncludes> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>../../../snapshot_parser_lib/include;../../../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ShowIncludes>false</ShowIncludes> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>../../../snapshot_parser_lib/include;../../../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>../../../snapshot_parser_lib/include;../../../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>../../../snapshot_parser_lib/include;../../../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>../../../snapshot_parser_lib/include;../../../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <ProgramDataBaseFileName>$(OutDir)$(TargetName)_vc$(PlatformToolsetVersion).pdb</ProgramDataBaseFileName> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="ReadMe.txt" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\device_info.cpp" /> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\device_parser.cpp" /> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\snapshot_parser.cpp" /> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\snapshot_parser_util.cpp" /> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\snapshot_reader.cpp" /> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\ss_to_dcdtree.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\device_info.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\device_parser.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\ini_section_names.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\snapshot_info.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\snapshot_parser.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\snapshot_parser_util.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\snapshot_reader.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\ss_key_value_names.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\ss_to_dcdtree.h" /> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\trace_snapshots.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/snapshot_parser_lib/snapshot_parser_lib.vcxproj.filters b/decoder/tests/build/win-vs2022/snapshot_parser_lib/snapshot_parser_lib.vcxproj.filters new file mode 100644 index 000000000000..86d406797c3e --- /dev/null +++ b/decoder/tests/build/win-vs2022/snapshot_parser_lib/snapshot_parser_lib.vcxproj.filters @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="ReadMe.txt" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\device_info.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\device_parser.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\snapshot_parser.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\snapshot_parser_util.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\snapshot_reader.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\snapshot_parser_lib\source\ss_to_dcdtree.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\device_info.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\device_parser.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\ini_section_names.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\snapshot_info.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\snapshot_parser.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\snapshot_parser_util.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\snapshot_reader.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\trace_snapshots.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\ss_to_dcdtree.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\..\snapshot_parser_lib\include\ss_key_value_names.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/snapshot_parser_lib/x64/Release/snapshot_parser_lib.lib.recipe b/decoder/tests/build/win-vs2022/snapshot_parser_lib/x64/Release/snapshot_parser_lib.lib.recipe new file mode 100644 index 000000000000..a53f9611dce7 --- /dev/null +++ b/decoder/tests/build/win-vs2022/snapshot_parser_lib/x64/Release/snapshot_parser_lib.lib.recipe @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs /> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/snapshot_parser_lib/x64/Release/snapshot_parser_lib.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/snapshot_parser_lib/x64/Release/snapshot_parser_lib.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/snapshot_parser_lib/x64/Release/snapshot_parser_lib.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/trc_pkt_lister/Release-dll/trc_pkt_lister.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/trc_pkt_lister/Release-dll/trc_pkt_lister.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/trc_pkt_lister/Release-dll/trc_pkt_lister.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/trc_pkt_lister/Win32/Release/trc_pkt_lister.exe.recipe b/decoder/tests/build/win-vs2022/trc_pkt_lister/Win32/Release/trc_pkt_lister.exe.recipe new file mode 100644 index 000000000000..7aa56e8c0be9 --- /dev/null +++ b/decoder/tests/build/win-vs2022/trc_pkt_lister/Win32/Release/trc_pkt_lister.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win32\rel\trc_pkt_lister.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/trc_pkt_lister/Win32/Release/trc_pkt_lister.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/trc_pkt_lister/Win32/Release/trc_pkt_lister.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/trc_pkt_lister/Win32/Release/trc_pkt_lister.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/build/win-vs2022/trc_pkt_lister/trc_pkt_lister.vcxproj b/decoder/tests/build/win-vs2022/trc_pkt_lister/trc_pkt_lister.vcxproj new file mode 100644 index 000000000000..e1daff7a9c4f --- /dev/null +++ b/decoder/tests/build/win-vs2022/trc_pkt_lister/trc_pkt_lister.vcxproj @@ -0,0 +1,327 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug-dll|Win32"> + <Configuration>Debug-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug-dll|x64"> + <Configuration>Debug-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|Win32"> + <Configuration>Release-dll</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release-dll|x64"> + <Configuration>Release-dll</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{18ABC652-AB11-4993-9491-1A7FB7117339}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>trc_pkt_lister</RootNamespace> + <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + <EnableASAN>false</EnableASAN> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v143</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + <Import Project="..\..\..\..\build\win-vs2022\opencsd.props" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\dbg\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + <IntDir>$(Platform)\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\bin\win$(PlatformArchitecture)\rel\</OutDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\snapshot_parser_lib\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\snapshot_parser_lib\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\snapshot_parser_lib\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\snapshot_parser_lib\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\dbg\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\dbg\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\snapshot_parser_lib\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\snapshot_parser_lib\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\snapshot_parser_lib\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\snapshot_parser_lib\include</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>lib$(LIB_BASE_NAME).lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalLibraryDirectories>..\..\..\..\lib\win$(PlatformArchitecture)\rel\;..\..\..\..\tests\lib\win$(PlatformArchitecture)\rel\</AdditionalLibraryDirectories> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\trc_pkt_lister.cpp" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\snapshot_parser_lib\snapshot_parser_lib.vcxproj"> + <Project>{de1f395d-4f53-42fb-8aef-993a4bf7e411}</Project> + </ProjectReference> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\..\include\pkt_printers\trc_pkt_printers.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/trc_pkt_lister/trc_pkt_lister.vcxproj.filters b/decoder/tests/build/win-vs2022/trc_pkt_lister/trc_pkt_lister.vcxproj.filters new file mode 100644 index 000000000000..9f44406f52d6 --- /dev/null +++ b/decoder/tests/build/win-vs2022/trc_pkt_lister/trc_pkt_lister.vcxproj.filters @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\..\source\trc_pkt_lister.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\..\..\include\pkt_printers\trc_pkt_printers.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/trc_pkt_lister/x64/Release/trc_pkt_lister.exe.recipe b/decoder/tests/build/win-vs2022/trc_pkt_lister/x64/Release/trc_pkt_lister.exe.recipe new file mode 100644 index 000000000000..69966dcb8834 --- /dev/null +++ b/decoder/tests/build/win-vs2022/trc_pkt_lister/x64/Release/trc_pkt_lister.exe.recipe @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project> + <ProjectOutputs> + <ProjectOutput> + <FullPath>C:\work\OpenCSD\ocsd-linaro\decoder\tests\bin\win64\rel\trc_pkt_lister.exe</FullPath> + </ProjectOutput> + </ProjectOutputs> + <ContentFiles /> + <SatelliteDlls /> + <NonRecipeFileRefs /> +</Project>
\ No newline at end of file diff --git a/decoder/tests/build/win-vs2022/trc_pkt_lister/x64/Release/trc_pkt_lister.vcxproj.FileListAbsolute.txt b/decoder/tests/build/win-vs2022/trc_pkt_lister/x64/Release/trc_pkt_lister.vcxproj.FileListAbsolute.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/decoder/tests/build/win-vs2022/trc_pkt_lister/x64/Release/trc_pkt_lister.vcxproj.FileListAbsolute.txt diff --git a/decoder/tests/run_pkt_decode_single.bash b/decoder/tests/run_pkt_decode_single.bash new file mode 100755 index 000000000000..30252402fdf9 --- /dev/null +++ b/decoder/tests/run_pkt_decode_single.bash @@ -0,0 +1,77 @@ +#!/bin/bash +################################################################################# +# Copyright 2018 ARM. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder 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. +# +################################################################################# +# OpenCSD library: run single test +# +# +################################################################################# +# Usage options:- +# * default: run test on binary + libs in ./bin/linux64/rel +# run_pkt_decode_tests.bash <test> <options> +# +# * use installed opencsd libraries & program +# run_pkt_decode_tests.bash use-installed <test> <options> +# +# + +OUT_DIR=./results +SNAPSHOT_DIR=./snapshots +BIN_DIR=./bin/linux64/rel/ + +TEST="a57_single_step" + +mkdir -p ${OUT_DIR} + +if [ "$1" == "use-installed" ]; then + BIN_DIR="" + shift +fi + +if [ "$1" != "" ]; then + TEST=$1 + shift +fi + +echo "Running trc_pkt_lister on single snapshot ${TEST}" + + +if [ "${BIN_DIR}" != "" ]; then + echo "Tests using BIN_DIR = ${BIN_DIR}" + export LD_LIBRARY_PATH=${BIN_DIR}. + echo "LD_LIBRARY_PATH set to ${BIN_DIR}" +else + echo "Tests using installed binaries" +fi + +# === test the decode set === +${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/${TEST}" $@ -decode -logfilename "${OUT_DIR}/${TEST}.ppl" +echo "Done : Return $?" + + diff --git a/decoder/tests/run_pkt_decode_tests-ete.bash b/decoder/tests/run_pkt_decode_tests-ete.bash new file mode 100755 index 000000000000..a9fe0cc36e07 --- /dev/null +++ b/decoder/tests/run_pkt_decode_tests-ete.bash @@ -0,0 +1,117 @@ +#!/bin/bash +################################################################################# +# Copyright 2019 ARM. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# 3. Neither the name of the copyright holder 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. +# +################################################################################# +# OpenCSD library: Test script. +# +# Test script to run packet lister on each of the snapshots retained with the repository. +# No attempt is made to compare output results to previous versions, (output formatting +# may change due to bugfix / enhancements) or assess the validity of the trace output. +# +################################################################################# +# Usage options:- +# * default: run tests on binary + libs in ./bin/linux64/rel +# run_pkt_decode_tests.bash +# +# * use installed opencsd libraries & program +# run_pkt_decode_tests.bash use-installed +# +# * use supplied path for binary + libs (must have trailing /) +# run_pkt_decode_tests.bash <custom>/<path>/ +# + +OUT_DIR=./results-ete +SNAPSHOT_DIR=./snapshots-ete +BIN_DIR=./bin/linux64/rel/ + +# directories for tests using full decode +declare -a test_dirs_decode=( "001-ack_test" + "002-ack_test_scr" + "ete-bc-instr" + "ete_ip" + "ete-ite-instr" + "ete_mem" + "ete_spec_1" + "ete_spec_2" + "ete_spec_3" + "event_test" + "infrastructure" + "q_elem" + "src_addr" + "tme_simple" + "tme_tcancel" + "tme_test" + "trace_file_cid_vmid" + "trace_file_vmid" + "ts_bit64_set" + "ts_marker" + ) + + +# directories for tests using I_SRC_ADDR_range option +declare -a test_dirs_decode_src_addr_opt=( "002-ack_test_scr" + "ete_ip" + "src_addr" + ) + + +echo "Running trc_pkt_lister on snapshot directories." + +mkdir -p ${OUT_DIR} + +if [ "$1" == "use-installed" ]; then + BIN_DIR="" + shift +elif [ "$1" == "-bindir" ]; then + BIN_DIR=$2 + shift + shift +fi + +echo "Tests using BIN_DIR = ${BIN_DIR}" + +if [ "${BIN_DIR}" != "" ]; then + export LD_LIBRARY_PATH=${BIN_DIR}. + echo "LD_LIBRARY_PATH set to ${BIN_DIR}" +fi + +# === test the decode set === +for test_dir in "${test_dirs_decode[@]}" +do + echo "Testing $test_dir..." + ${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/$test_dir" $@ -decode -logfilename "${OUT_DIR}/$test_dir.ppl" + echo "Done : Return $?" +done + +for test_dir_n in "${test_dirs_decode_src_addr_opt[@]}" +do + echo "Testing with -src_addr_n $test_dir_n..." + ${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/$test_dir_n" $@ -decode -src_addr_n -logfilename "${OUT_DIR}/${test_dir_n}_src_addr_N.ppl" + echo "Done : Return $?" +done diff --git a/decoder/tests/run_pkt_decode_tests.bash b/decoder/tests/run_pkt_decode_tests.bash index 09f642b097c8..27a855e92899 100755 --- a/decoder/tests/run_pkt_decode_tests.bash +++ b/decoder/tests/run_pkt_decode_tests.bash @@ -40,10 +40,10 @@ # run_pkt_decode_tests.bash # # * use installed opencsd libraries & program -# run_pkt_decode_tests.bash use-installed +# run_pkt_decode_tests.bash use-installed <options> # # * use supplied path for binary + libs (must have trailing /) -# run_pkt_decode_tests.bash <custom>/<path>/ +# run_pkt_decode_tests.bash -bindir <custom>/<path>/ <options> # OUT_DIR=./results @@ -62,6 +62,7 @@ declare -a test_dirs_decode=( "juno-ret-stck" "stm_only" "stm_only-2" "stm_only-juno" + "stm-issue-27" "TC2" "Snowball" "test-file-mem-offsets" @@ -74,8 +75,11 @@ mkdir -p ${OUT_DIR} if [ "$1" == "use-installed" ]; then BIN_DIR="" -elif [ "$1" != "" ]; then - BIN_DIR=$1 + shift +elif [ "$1" == "-bindir" ]; then + BIN_DIR=$2 + shift + shift fi echo "Tests using BIN_DIR = ${BIN_DIR}" @@ -89,17 +93,17 @@ fi for test_dir in "${test_dirs_decode[@]}" do echo "Testing $test_dir..." - ${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/$test_dir" -decode -logfilename "${OUT_DIR}/$test_dir.ppl" + ${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/$test_dir" $@ -decode -logfilename "${OUT_DIR}/$test_dir.ppl" echo "Done : Return $?" done # === test a packet only example === echo "Testing init-short-addr..." -${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/init-short-addr" -pkt_mon -logfilename "${OUT_DIR}/init-short-addr.ppl" +${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/init-short-addr" $@ -pkt_mon -logfilename "${OUT_DIR}/init-short-addr.ppl" # === test the TPIU deformatter === echo "Testing a55-test-tpiu..." -${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/a55-test-tpiu" -dstream_format -o_raw_packed -o_raw_unpacked -logfilename "${OUT_DIR}/a55-test-tpiu.ppl" +${BIN_DIR}trc_pkt_lister -ss_dir "${SNAPSHOT_DIR}/a55-test-tpiu" $@ -dstream_format -o_raw_packed -o_raw_unpacked -logfilename "${OUT_DIR}/a55-test-tpiu.ppl" echo "Done : Return $?" # === test the C-API lib - this test prog is not installed === @@ -110,3 +114,12 @@ if [ "$1" != "use-installed" ]; then echo "moving result file." mv ./c_api_test.log ./${OUT_DIR}/c_api_test.ppl fi + +# === run the Frame decoder test - program not installed === +if [ "$1" != "use-installed" ]; then + echo "Running Frame demux test" + ${BIN_DIR}frame-demux-test > /dev/null + echo "Done : Return $?" + echo "moving result file." + mv ./frame_demux_test.ppl ./${OUT_DIR}/. +fi diff --git a/decoder/tests/snapshot_parser_lib/include/snapshot_parser.h b/decoder/tests/snapshot_parser_lib/include/snapshot_parser.h index 8b9171255d0c..9e5b37189099 100644 --- a/decoder/tests/snapshot_parser_lib/include/snapshot_parser.h +++ b/decoder/tests/snapshot_parser_lib/include/snapshot_parser.h @@ -135,9 +135,9 @@ namespace Parser std::vector<std::string> GetBufferNameList(ParsedTrace &metadata); - static ITraceErrorLog *s_pErrorLogger = 0; - static ocsd_hndl_err_log_t s_errlog_handle = 0; - static bool s_verbose_logging = true; + //static ITraceErrorLog *s_pErrorLogger = 0; + //static ocsd_hndl_err_log_t s_errlog_handle = 0; + //static bool s_verbose_logging = true; void SetIErrorLogger(ITraceErrorLog *i_err_log); void SetVerboseLogging(bool verbose); diff --git a/decoder/tests/snapshot_parser_lib/include/snapshot_parser_util.h b/decoder/tests/snapshot_parser_lib/include/snapshot_parser_util.h index 815afe9267d9..d4fd6cd952ad 100644 --- a/decoder/tests/snapshot_parser_lib/include/snapshot_parser_util.h +++ b/decoder/tests/snapshot_parser_lib/include/snapshot_parser_util.h @@ -35,6 +35,7 @@ #ifndef ARM_SNAPSHOT_PARSER_UTIL_H_INCLUDED #define ARM_SNAPSHOT_PARSER_UTIL_H_INCLUDED +#include <algorithm> #include <string> #include <sstream> #include <iomanip> diff --git a/decoder/tests/snapshot_parser_lib/include/ss_key_value_names.h b/decoder/tests/snapshot_parser_lib/include/ss_key_value_names.h index 6e3a301dae50..ad0823b556a0 100644 --- a/decoder/tests/snapshot_parser_lib/include/ss_key_value_names.h +++ b/decoder/tests/snapshot_parser_lib/include/ss_key_value_names.h @@ -58,6 +58,10 @@ const char * const ETMv4RegIDR11("TRCIDR11"); const char * const ETMv4RegIDR12("TRCIDR12"); const char * const ETMv4RegIDR13("TRCIDR13"); +/*** ETE ***/ +const char *const ETEProtocol("ETE"); +const char *const ETERegDevArch("TRCDEVARCH"); + /*** ETMv3/PTM ***/ const char * const ETMv3Protocol("ETM3"); const char * const PTMProtocol("PTM1"); diff --git a/decoder/tests/snapshot_parser_lib/include/ss_to_dcdtree.h b/decoder/tests/snapshot_parser_lib/include/ss_to_dcdtree.h index a84e1843881f..3c85f9d152da 100644 --- a/decoder/tests/snapshot_parser_lib/include/ss_to_dcdtree.h +++ b/decoder/tests/snapshot_parser_lib/include/ss_to_dcdtree.h @@ -52,7 +52,7 @@ public: void initialise(SnapShotReader *m_pReader, ITraceErrorLog *m_pErrLogInterface); - bool createDecodeTree(const std::string &SourceBufferName, bool bPacketProcOnly); + bool createDecodeTree(const std::string &SourceBufferName, bool bPacketProcOnly, uint32_t add_create_flags = 0); void destroyDecodeTree(); DecodeTree *getDecodeTree() const { return m_pDecodeTree; }; const char *getBufferFileName() const { return m_BufferFileName.c_str(); }; @@ -66,6 +66,7 @@ private: bool createETMv4Decoder(const std::string &coreName, Parser::Parsed *devSrc, const bool bDataChannel = false); bool createETMv3Decoder(const std::string &coreName, Parser::Parsed *devSrc); bool createPTMDecoder(const std::string &coreName, Parser::Parsed *devSrc); + bool createETEDecoder(const std::string &coreName, Parser::Parsed *devSrc); // TBD add etmv4d // create a decoder related to a software trace source (ITM, STM) @@ -91,7 +92,7 @@ private: void processDumpfiles(std::vector<Parser::DumpDef> &dumps); - + uint32_t m_add_create_flags; bool m_bInit; DecodeTree *m_pDecodeTree; diff --git a/decoder/tests/snapshot_parser_lib/source/snapshot_parser.cpp b/decoder/tests/snapshot_parser_lib/source/snapshot_parser.cpp index 6e62d1e200c2..4570700dd4c8 100644 --- a/decoder/tests/snapshot_parser_lib/source/snapshot_parser.cpp +++ b/decoder/tests/snapshot_parser_lib/source/snapshot_parser.cpp @@ -49,6 +49,10 @@ using namespace Parser; #include "opencsd.h" +static ITraceErrorLog *s_pErrorLogger = 0; +static ocsd_hndl_err_log_t s_errlog_handle = 0; +static bool s_verbose_logging = true; + /************************************************************************* * Note, this file handles the parsring of the general (device specific) * ini file and the (much smaller) device_list file diff --git a/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp b/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp index 4eeec732c15b..902ce566f44e 100644 --- a/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp +++ b/decoder/tests/snapshot_parser_lib/source/ss_to_dcdtree.cpp @@ -45,6 +45,7 @@ CreateDcdTreeFromSnapShot::CreateDcdTreeFromSnapShot() : m_BufferFileName("") { m_errlog_handle = 0; + m_add_create_flags = 0; } CreateDcdTreeFromSnapShot::~CreateDcdTreeFromSnapShot() @@ -63,8 +64,9 @@ void CreateDcdTreeFromSnapShot::initialise(SnapShotReader *pReader, ITraceErrorL } } -bool CreateDcdTreeFromSnapShot::createDecodeTree(const std::string &SourceName, bool bPacketProcOnly) +bool CreateDcdTreeFromSnapShot::createDecodeTree(const std::string &SourceName, bool bPacketProcOnly, uint32_t add_create_flags) { + m_add_create_flags = add_create_flags; if(m_bInit) { if(!m_pReader->snapshotReadOK()) @@ -236,6 +238,10 @@ bool CreateDcdTreeFromSnapShot::createPEDecoder(const std::string &coreName, Par { bCreatedDecoder = createPTMDecoder(coreName,devSrc); } + else if (devTypeName == ETEProtocol) + { + bCreatedDecoder = createETEDecoder(coreName, devSrc); + } return bCreatedDecoder; } @@ -277,7 +283,7 @@ bool CreateDcdTreeFromSnapShot::createETMv4Decoder(const std::string &coreName, EtmV4Config configObj(&config); const char *decoderName = bDataChannel ? OCSD_BUILTIN_DCD_ETMV4D : OCSD_BUILTIN_DCD_ETMV4I; - err = m_pDecodeTree->createDecoder(decoderName, m_bPacketProcOnly ? OCSD_CREATE_FLG_PACKET_PROC : OCSD_CREATE_FLG_FULL_DECODER,&configObj); + err = m_pDecodeTree->createDecoder(decoderName, m_add_create_flags | (m_bPacketProcOnly ? OCSD_CREATE_FLG_PACKET_PROC : OCSD_CREATE_FLG_FULL_DECODER),&configObj); if(err == OCSD_OK) createdDecoder = true; @@ -291,6 +297,53 @@ bool CreateDcdTreeFromSnapShot::createETMv4Decoder(const std::string &coreName, return createdDecoder; } +bool CreateDcdTreeFromSnapShot::createETEDecoder(const std::string &coreName, Parser::Parsed *devSrc) +{ + bool createdDecoder = false; + bool configOK = true; + + // generate the config data from the device data. + ocsd_ete_cfg config; + + // ete regs are same names Etmv4 in places... + regs_to_access_t regs_to_access[] = { + { ETMv4RegCfg, true, &config.reg_configr, 0 }, + { ETMv4RegIDR, true, &config.reg_traceidr, 0 }, + { ETMv4RegIDR0, true, &config.reg_idr0, 0 }, + { ETMv4RegIDR1, false, &config.reg_idr1, 0x4100F403 }, + { ETMv4RegIDR2, true, &config.reg_idr2, 0 }, + { ETMv4RegIDR8, false, &config.reg_idr8, 0 }, + { ETERegDevArch, false, &config.reg_devarch, 0x47705A13 }, + }; + + // extract registers + configOK = getRegisters(devSrc->regDefs, sizeof(regs_to_access) / sizeof(regs_to_access_t), regs_to_access); + + // extract core profile + if (configOK) + configOK = getCoreProfile(coreName, config.arch_ver, config.core_prof); + + // good config - generate the decoder on the tree. + if (configOK) + { + ocsd_err_t err = OCSD_OK; + ETEConfig configObj(&config); + const char *decoderName = OCSD_BUILTIN_DCD_ETE; + + err = m_pDecodeTree->createDecoder(decoderName, m_add_create_flags | (m_bPacketProcOnly ? OCSD_CREATE_FLG_PACKET_PROC : OCSD_CREATE_FLG_FULL_DECODER), &configObj); + + if (err == OCSD_OK) + createdDecoder = true; + else + { + std::string msg = "Snapshot processor : failed to create " + (std::string)decoderName + " decoder on decode tree."; + LogError(ocsdError(OCSD_ERR_SEV_ERROR, err, msg)); + } + } + + return createdDecoder; +} + // create an ETMv3 decoder based on the register values in the deviceN.ini file. bool CreateDcdTreeFromSnapShot::createETMv3Decoder(const std::string &coreName, Parser::Parsed *devSrc) { diff --git a/decoder/tests/snapshots-ete/001-ack_test/ETE_0_s1.ini b/decoder/tests/snapshots-ete/001-ack_test/ETE_0_s1.ini new file mode 100644 index 000000000000..85938730c344 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/ETE_0_s1.ini @@ -0,0 +1,15 @@ +[device] +name=ETE_0_s1 +class=trace_source +type=ETE + + +[regs] +TRCCONFIGR=0x1 +TRCTRACEIDR=0x2 +TRCDEVARCH=0x47705a13 +TRCIDR0=0x8000aa1 +TRCIDR1=0x4100fff0 +TRCIDR2=0xc0001088 +TRCIDR8=0x000 + diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/OTHERS_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/OTHERS_exec Binary files differnew file mode 100644 index 000000000000..84f1043736bc --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/OTHERS_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/VAL_NON_DET_CODE_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/VAL_NON_DET_CODE_exec Binary files differnew file mode 100644 index 000000000000..a77033e7a008 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/VAL_NON_DET_CODE_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_124_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_124_0_exec Binary files differnew file mode 100644 index 000000000000..20d5cb86e6df --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_124_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_125_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_125_0_exec Binary files differnew file mode 100644 index 000000000000..4280423b8d28 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_125_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_126_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_126_0_exec Binary files differnew file mode 100644 index 000000000000..6dc3cfa9466a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_126_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_127_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_127_0_exec Binary files differnew file mode 100644 index 000000000000..2f59ec49df25 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_127_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_128_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_128_0_exec Binary files differnew file mode 100644 index 000000000000..a50640442a11 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_128_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_129_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_129_0_exec Binary files differnew file mode 100644 index 000000000000..2f59ec49df25 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_129_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_130_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_130_0_exec Binary files differnew file mode 100644 index 000000000000..69d157136e6c --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_130_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_131_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_131_0_exec Binary files differnew file mode 100644 index 000000000000..8d0942b9794a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/checkpoint_131_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_100_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_100_0_exec Binary files differnew file mode 100644 index 000000000000..daeccdfcab83 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_100_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_101_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_101_0_exec Binary files differnew file mode 100644 index 000000000000..e94b3cbc412a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_101_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_102_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_102_0_exec Binary files differnew file mode 100644 index 000000000000..159234ce7bd1 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_102_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_103_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_103_0_exec Binary files differnew file mode 100644 index 000000000000..3051fd0e803f --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_103_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_104_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_104_0_exec Binary files differnew file mode 100644 index 000000000000..159234ce7bd1 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_104_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_105_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_105_0_exec Binary files differnew file mode 100644 index 000000000000..20277f9c015c --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_105_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_106_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_106_0_exec Binary files differnew file mode 100644 index 000000000000..835c1e221111 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_106_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_107_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_107_0_exec Binary files differnew file mode 100644 index 000000000000..10ce6bb72989 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_107_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_107_1_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_107_1_exec Binary files differnew file mode 100644 index 000000000000..ed1ffc5dc2ce --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_107_1_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_108_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_108_0_exec Binary files differnew file mode 100644 index 000000000000..63554078d866 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_108_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_109_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_109_0_exec Binary files differnew file mode 100644 index 000000000000..f3b73b5b253a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_109_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_110_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_110_0_exec Binary files differnew file mode 100644 index 000000000000..f4562f7b1385 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_110_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_111_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_111_0_exec Binary files differnew file mode 100644 index 000000000000..1a2f9b9f261a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_111_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_112_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_112_0_exec Binary files differnew file mode 100644 index 000000000000..6453a68120c4 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_112_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_113_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_113_0_exec Binary files differnew file mode 100644 index 000000000000..db99b24badbb --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_113_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_113_1_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_113_1_exec Binary files differnew file mode 100644 index 000000000000..1f074eba875e --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_113_1_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_114_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_114_0_exec Binary files differnew file mode 100644 index 000000000000..8af272bf0069 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_114_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_115_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_115_0_exec Binary files differnew file mode 100644 index 000000000000..dfde5fd6b2bc --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_115_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_116_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_116_0_exec Binary files differnew file mode 100644 index 000000000000..af25be39c6f7 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_116_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_117_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_117_0_exec Binary files differnew file mode 100644 index 000000000000..728848910f32 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_117_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_118_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_118_0_exec Binary files differnew file mode 100644 index 000000000000..3cb39df5cdad --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_118_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_119_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_119_0_exec Binary files differnew file mode 100644 index 000000000000..c35c5bc81f9a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_119_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_11_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_11_0_exec Binary files differnew file mode 100644 index 000000000000..d97374f87d5c --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_11_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_120_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_120_0_exec Binary files differnew file mode 100644 index 000000000000..50119a7845c6 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_120_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_121_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_121_0_exec Binary files differnew file mode 100644 index 000000000000..159234ce7bd1 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_121_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_122_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_122_0_exec Binary files differnew file mode 100644 index 000000000000..d2f6ea94a983 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_122_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_123_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_123_0_exec new file mode 100644 index 000000000000..1bc61162320b --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_123_0_exec @@ -0,0 +1 @@ +Ld—
\ No newline at end of file diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_13_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_13_0_exec Binary files differnew file mode 100644 index 000000000000..eb3cd69bd97f --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_13_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_15_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_15_0_exec Binary files differnew file mode 100644 index 000000000000..69ebe2e116a6 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_15_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_16_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_16_0_exec Binary files differnew file mode 100644 index 000000000000..7b2bb450d4b2 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_16_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_17_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_17_0_exec Binary files differnew file mode 100644 index 000000000000..4d6dd472bc1f --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_17_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_18_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_18_0_exec Binary files differnew file mode 100644 index 000000000000..52da2c78538d --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_18_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_19_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_19_0_exec Binary files differnew file mode 100644 index 000000000000..68af984ec7c2 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_19_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_20_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_20_0_exec Binary files differnew file mode 100644 index 000000000000..30766d3c8a14 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_20_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_21_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_21_0_exec Binary files differnew file mode 100644 index 000000000000..37e430f77c24 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_21_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_22_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_22_0_exec Binary files differnew file mode 100644 index 000000000000..f76aea502f6c --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_22_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_23_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_23_0_exec Binary files differnew file mode 100644 index 000000000000..57c56561882a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_23_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_24_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_24_0_exec Binary files differnew file mode 100644 index 000000000000..70fd92408c14 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_24_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_25_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_25_0_exec Binary files differnew file mode 100644 index 000000000000..f1d2b80bb9e9 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_25_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_26_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_26_0_exec Binary files differnew file mode 100644 index 000000000000..43d864fdc5ff --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_26_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_27_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_27_0_exec Binary files differnew file mode 100644 index 000000000000..b5e3dcc598c6 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_27_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_28_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_28_0_exec Binary files differnew file mode 100644 index 000000000000..883bcbcdb88a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_28_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_29_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_29_0_exec Binary files differnew file mode 100644 index 000000000000..384f0ddacb55 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_29_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_30_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_30_0_exec Binary files differnew file mode 100644 index 000000000000..da340de59064 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_30_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_31_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_31_0_exec Binary files differnew file mode 100644 index 000000000000..86a319bd1f7e --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_31_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_32_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_32_0_exec Binary files differnew file mode 100644 index 000000000000..492eab17f10c --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_32_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_33_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_33_0_exec Binary files differnew file mode 100644 index 000000000000..806554610e54 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_33_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_34_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_34_0_exec Binary files differnew file mode 100644 index 000000000000..c793bd9f278c --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_34_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_35_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_35_0_exec Binary files differnew file mode 100644 index 000000000000..305bb417aa5f --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_35_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_36_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_36_0_exec Binary files differnew file mode 100644 index 000000000000..4df1aad0790a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_36_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_37_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_37_0_exec Binary files differnew file mode 100644 index 000000000000..384f0ddacb55 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_37_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_38_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_38_0_exec Binary files differnew file mode 100644 index 000000000000..37e430f77c24 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_38_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_39_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_39_0_exec Binary files differnew file mode 100644 index 000000000000..374c95086409 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_39_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_40_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_40_0_exec Binary files differnew file mode 100644 index 000000000000..05de09c098ad --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_40_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_41_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_41_0_exec Binary files differnew file mode 100644 index 000000000000..d452803a1de7 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_41_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_42_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_42_0_exec Binary files differnew file mode 100644 index 000000000000..8e2fd2a575cb --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_42_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_43_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_43_0_exec Binary files differnew file mode 100644 index 000000000000..88814cc43a66 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_43_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_44_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_44_0_exec Binary files differnew file mode 100644 index 000000000000..cb6e0316205b --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_44_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_45_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_45_0_exec Binary files differnew file mode 100644 index 000000000000..612c0bd7fac6 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_45_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_46_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_46_0_exec Binary files differnew file mode 100644 index 000000000000..159234ce7bd1 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_46_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_47_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_47_0_exec Binary files differnew file mode 100644 index 000000000000..0d070b2e7d43 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_47_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_48_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_48_0_exec Binary files differnew file mode 100644 index 000000000000..fcbef536680e --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_48_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_48_1_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_48_1_exec Binary files differnew file mode 100644 index 000000000000..ab4d602386cd --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_48_1_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_49_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_49_0_exec Binary files differnew file mode 100644 index 000000000000..579bc330d9a3 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_49_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_50_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_50_0_exec Binary files differnew file mode 100644 index 000000000000..f26e09042165 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_50_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_51_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_51_0_exec Binary files differnew file mode 100644 index 000000000000..35a17ee94f31 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_51_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_52_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_52_0_exec Binary files differnew file mode 100644 index 000000000000..80c21fc89683 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_52_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_53_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_53_0_exec Binary files differnew file mode 100644 index 000000000000..31bdedc1a656 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_53_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_54_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_54_0_exec Binary files differnew file mode 100644 index 000000000000..159234ce7bd1 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_54_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_55_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_55_0_exec Binary files differnew file mode 100644 index 000000000000..d9ee8929e7e8 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_55_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_56_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_56_0_exec Binary files differnew file mode 100644 index 000000000000..eaa60bc3d30e --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_56_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_57_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_57_0_exec Binary files differnew file mode 100644 index 000000000000..6c04dbf07a0c --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_57_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_58_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_58_0_exec Binary files differnew file mode 100644 index 000000000000..2ef258249622 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_58_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_59_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_59_0_exec Binary files differnew file mode 100644 index 000000000000..a651035f0b2b --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_59_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_60_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_60_0_exec Binary files differnew file mode 100644 index 000000000000..25c54238c0d7 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_60_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_60_1_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_60_1_exec Binary files differnew file mode 100644 index 000000000000..67da9e2e646a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_60_1_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_61_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_61_0_exec Binary files differnew file mode 100644 index 000000000000..9b84496101bc --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_61_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_62_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_62_0_exec Binary files differnew file mode 100644 index 000000000000..159234ce7bd1 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_62_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_63_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_63_0_exec Binary files differnew file mode 100644 index 000000000000..f7db780a4821 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_63_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_64_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_64_0_exec Binary files differnew file mode 100644 index 000000000000..11fb2abbb72c --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_64_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_65_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_65_0_exec Binary files differnew file mode 100644 index 000000000000..75e74258770f --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_65_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_66_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_66_0_exec Binary files differnew file mode 100644 index 000000000000..9bc68b74bc0e --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_66_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_67_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_67_0_exec Binary files differnew file mode 100644 index 000000000000..def3c8fe342a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_67_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_68_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_68_0_exec Binary files differnew file mode 100644 index 000000000000..02a0d2cf6de6 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_68_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_69_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_69_0_exec Binary files differnew file mode 100644 index 000000000000..ccf8baae5313 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_69_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_70_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_70_0_exec Binary files differnew file mode 100644 index 000000000000..4b20c1f66dae --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_70_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_71_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_71_0_exec Binary files differnew file mode 100644 index 000000000000..37e430f77c24 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_71_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_72_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_72_0_exec Binary files differnew file mode 100644 index 000000000000..5979ee760279 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_72_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_73_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_73_0_exec Binary files differnew file mode 100644 index 000000000000..d70b2e550934 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_73_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_74_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_74_0_exec Binary files differnew file mode 100644 index 000000000000..62b840be91a5 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_74_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_75_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_75_0_exec Binary files differnew file mode 100644 index 000000000000..f32ad0472da3 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_75_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_76_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_76_0_exec Binary files differnew file mode 100644 index 000000000000..4018c771c62b --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_76_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_77_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_77_0_exec Binary files differnew file mode 100644 index 000000000000..947157ad67cc --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_77_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_78_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_78_0_exec Binary files differnew file mode 100644 index 000000000000..9cf3cbb5ee3a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_78_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_79_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_79_0_exec Binary files differnew file mode 100644 index 000000000000..b501b08d7dc1 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_79_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_80_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_80_0_exec Binary files differnew file mode 100644 index 000000000000..a6007d93a6f5 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_80_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_81_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_81_0_exec Binary files differnew file mode 100644 index 000000000000..384f0ddacb55 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_81_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_82_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_82_0_exec Binary files differnew file mode 100644 index 000000000000..1f0d97c9c260 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_82_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_83_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_83_0_exec Binary files differnew file mode 100644 index 000000000000..7ea63460f6be --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_83_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_84_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_84_0_exec Binary files differnew file mode 100644 index 000000000000..ffdb83e3b763 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_84_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_85_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_85_0_exec Binary files differnew file mode 100644 index 000000000000..15b981f38e57 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_85_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_86_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_86_0_exec Binary files differnew file mode 100644 index 000000000000..bd9b4932d89e --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_86_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_87_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_87_0_exec Binary files differnew file mode 100644 index 000000000000..aad6a62de9a8 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_87_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_88_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_88_0_exec Binary files differnew file mode 100644 index 000000000000..718f1ad950e0 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_88_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_89_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_89_0_exec Binary files differnew file mode 100644 index 000000000000..cd3fe038cc16 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_89_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_90_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_90_0_exec Binary files differnew file mode 100644 index 000000000000..7c4db9c1791a --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_90_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_91_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_91_0_exec Binary files differnew file mode 100644 index 000000000000..384f0ddacb55 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_91_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_92_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_92_0_exec Binary files differnew file mode 100644 index 000000000000..37e430f77c24 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_92_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_93_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_93_0_exec Binary files differnew file mode 100644 index 000000000000..996519d18a51 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_93_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_94_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_94_0_exec Binary files differnew file mode 100644 index 000000000000..a0ab1ae40789 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_94_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_95_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_95_0_exec Binary files differnew file mode 100644 index 000000000000..a88820c9afe5 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_95_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_96_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_96_0_exec Binary files differnew file mode 100644 index 000000000000..91c5d2adfdba --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_96_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_97_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_97_0_exec Binary files differnew file mode 100644 index 000000000000..d452803a1de7 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_97_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_98_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_98_0_exec Binary files differnew file mode 100644 index 000000000000..621ff98f3156 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_98_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/bindir/code_99_0_exec b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_99_0_exec Binary files differnew file mode 100644 index 000000000000..eead23d51e3b --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/bindir/code_99_0_exec diff --git a/decoder/tests/snapshots-ete/001-ack_test/cpu_0.ini b/decoder/tests/snapshots-ete/001-ack_test/cpu_0.ini new file mode 100644 index 000000000000..7cdb78261f28 --- /dev/null +++ b/decoder/tests/snapshots-ete/001-ack_test/cpu_0.ini @@ -0,0 +1,637 @@ +[device] +name=cpu_0 +class=core +type=Cortex-A53 + +[regs] +PC(size:64)=0xFFFFFFC000081000 +SP(size:64)=0 +SCTLR_EL1=0x1007 +CPSR=0x1C5 + + +[dump1] +file=bindir/code_91_0_exec +address=0x010029d8 +length=0x14 + +[dump2] +file=bindir/code_107_0_exec +address=0x01002d50 +length=0x2b0 + +[dump3] +file=bindir/OTHERS_exec +address=0x00010000 +length=0x422a4 + +[dump4] +file=bindir/code_42_0_exec +address=0x01000b08 +length=0x18 + +[dump5] +file=bindir/code_18_0_exec +address=0x01000218 +length=0xdc + +[dump6] +file=bindir/code_83_0_exec +address=0x01002750 +length=0x94 + +[dump7] +file=bindir/code_92_0_exec +address=0x010029f0 +length=0x14 + +[dump8] +file=bindir/code_113_0_exec +address=0x01003d64 +length=0x29c + +[dump9] +file=bindir/code_38_0_exec +address=0x01000930 +length=0x14 + +[dump10] +file=bindir/code_123_0_exec +address=0x01004678 +length=0x4 + +[dump11] +file=bindir/code_117_0_exec +address=0x010045a0 +length=0x28 + +[dump12] +file=bindir/code_71_0_exec +address=0x010023ac +length=0x14 + +[dump13] +file=bindir/code_80_0_exec +address=0x0100266c +length=0x48 + +[dump14] +file=bindir/code_43_0_exec +address=0x01000b24 +length=0x24 + +[dump15] +file=bindir/code_64_0_exec +address=0x0100207c +length=0x58 + +[dump16] +file=bindir/code_29_0_exec +address=0x01000654 +length=0x14 + +[dump17] +file=bindir/code_16_0_exec +address=0x010000b8 +length=0x80 + +[dump18] +file=bindir/code_106_0_exec +address=0x01002d18 +length=0x34 + +[dump19] +file=bindir/code_96_0_exec +address=0x01002ba0 +length=0x78 + +[dump20] +file=bindir/code_122_0_exec +address=0x01004654 +length=0x24 + +[dump21] +file=bindir/code_113_1_exec +address=0x01004000 +length=0x500 + +[dump22] +file=bindir/code_41_0_exec +address=0x01000af0 +length=0x14 + +[dump23] +file=bindir/code_17_0_exec +address=0x0100013c +length=0xd8 + +[dump24] +file=bindir/checkpoint_127_0_exec +address=0x028003d8 +length=0x38 + +[dump25] +file=bindir/code_57_0_exec +address=0x01001a94 +length=0x24 + +[dump26] +file=bindir/code_90_0_exec +address=0x01002978 +length=0x5c + +[dump27] +file=bindir/code_89_0_exec +address=0x01002954 +length=0x24 + +[dump28] +file=bindir/code_46_0_exec +address=0x01000b9c +length=0x4 + +[dump29] +file=bindir/code_53_0_exec +address=0x01001540 +length=0x24 + +[dump30] +file=bindir/code_79_0_exec +address=0x01002648 +length=0x24 + +[dump31] +file=bindir/checkpoint_125_0_exec +address=0x02800008 +length=0x380 + +[dump32] +file=bindir/code_25_0_exec +address=0x01000580 +length=0x24 + +[dump33] +file=bindir/code_99_0_exec +address=0x01002c50 +length=0x24 + +[dump34] +file=bindir/code_37_0_exec +address=0x01000918 +length=0x14 + +[dump35] +file=bindir/code_54_0_exec +address=0x01001564 +length=0x4 + +[dump36] +file=bindir/code_58_0_exec +address=0x01001ab8 +length=0x28c + +[dump37] +file=bindir/code_44_0_exec +address=0x01000b4c +length=0x2c + +[dump38] +file=bindir/code_24_0_exec +address=0x01000564 +length=0x18 + +[dump39] +file=bindir/code_77_0_exec +address=0x010025f4 +length=0x24 + +[dump40] +file=bindir/code_62_0_exec +address=0x01002054 +length=0x4 + +[dump41] +file=bindir/code_11_0_exec +address=0x01000000 +length=0x84 + +[dump42] +file=bindir/code_13_0_exec +address=0x01000090 +length=0x10 + +[dump43] +file=bindir/checkpoint_126_0_exec +address=0x02800388 +length=0x50 + +[dump44] +file=bindir/code_78_0_exec +address=0x0100261c +length=0x2c + +[dump45] +file=bindir/code_28_0_exec +address=0x010005f8 +length=0x58 + +[dump46] +file=bindir/code_94_0_exec +address=0x01002a88 +length=0x94 + +[dump47] +file=bindir/code_61_0_exec +address=0x01002030 +length=0x24 + +[dump48] +file=bindir/VAL_NON_DET_CODE_exec +address=0x00090000 +length=0x17db0 + +[dump49] +file=bindir/code_115_0_exec +address=0x01004510 +length=0x24 + +[dump50] +file=bindir/checkpoint_130_0_exec +address=0x02800468 +length=0x10 + +[dump51] +file=bindir/code_40_0_exec +address=0x01000a24 +length=0xc8 + +[dump52] +file=bindir/code_98_0_exec +address=0x01002c34 +length=0x18 + +[dump53] +file=bindir/code_15_0_exec +address=0x010000a8 +length=0x4 + +[dump54] +file=bindir/code_72_0_exec +address=0x010023c4 +length=0x7c + +[dump55] +file=bindir/code_36_0_exec +address=0x010008a8 +length=0x6c + +[dump56] +file=bindir/code_73_0_exec +address=0x01002444 +length=0x94 + +[dump57] +file=bindir/code_110_0_exec +address=0x01003ce4 +length=0xc + +[dump58] +file=bindir/code_100_0_exec +address=0x01002c78 +length=0x2c + +[dump59] +file=bindir/code_97_0_exec +address=0x01002c1c +length=0x14 + +[dump60] +file=bindir/code_105_0_exec +address=0x01002cf4 +length=0x24 + +[dump61] +file=bindir/code_88_0_exec +address=0x01002928 +length=0x2c + +[dump62] +file=bindir/checkpoint_124_0_exec +address=0x02800000 +length=0x8 + +[dump63] +file=bindir/code_84_0_exec +address=0x010027e8 +length=0x7c + +[dump64] +file=bindir/code_49_0_exec +address=0x0100104c +length=0x24 + +[dump65] +file=bindir/code_50_0_exec +address=0x01001070 +length=0x238 + +[dump66] +file=bindir/code_76_0_exec +address=0x010025d8 +length=0x18 + +[dump67] +file=bindir/checkpoint_131_0_exec +address=0x02800478 +length=0xe0 + +[dump68] +file=bindir/code_48_1_exec +address=0x01001000 +length=0x4c + +[dump69] +file=bindir/code_75_0_exec +address=0x0100255c +length=0x78 + +[dump70] +file=bindir/code_32_0_exec +address=0x01000814 +length=0x18 + +[dump71] +file=bindir/code_87_0_exec +address=0x01002900 +length=0x24 + +[dump72] +file=bindir/code_34_0_exec +address=0x01000858 +length=0x2c + +[dump73] +file=bindir/code_23_0_exec +address=0x01000498 +length=0xc8 + +[dump74] +file=bindir/code_108_0_exec +address=0x010034ec +length=0x54 + +[dump75] +file=bindir/code_48_0_exec +address=0x01000bc4 +length=0x43c + +[dump76] +file=bindir/code_112_0_exec +address=0x01003d14 +length=0x4c + +[dump77] +file=bindir/code_69_0_exec +address=0x01002310 +length=0x24 + +[dump78] +file=bindir/code_63_0_exec +address=0x01002058 +length=0x24 + +[dump79] +file=bindir/code_33_0_exec +address=0x01000830 +length=0x24 + +[dump80] +file=bindir/code_103_0_exec +address=0x01002ccc +length=0x24 + +[dump81] +file=bindir/code_81_0_exec +address=0x010026b8 +length=0x14 + +[dump82] +file=bindir/code_47_0_exec +address=0x01000ba0 +length=0x24 + +[dump83] +file=bindir/code_82_0_exec +address=0x010026d0 +length=0x7c + +[dump84] +file=bindir/code_95_0_exec +address=0x01002b20 +length=0x7c + +[dump85] +file=bindir/code_120_0_exec +address=0x0100462c +length=0x24 + +[dump86] +file=bindir/code_35_0_exec +address=0x01000884 +length=0x24 + +[dump87] +file=bindir/code_107_1_exec +address=0x01003000 +length=0x4e8 + +[dump88] +file=bindir/code_109_0_exec +address=0x01003544 +length=0x79c + +[dump89] +file=bindir/code_56_0_exec +address=0x0100158c +length=0x508 + +[dump90] +file=bindir/code_19_0_exec +address=0x010002f8 +length=0x24 + +[dump91] +file=bindir/code_31_0_exec +address=0x01000748 +length=0xc8 + +[dump92] +file=bindir/code_114_0_exec +address=0x01004504 +length=0xc + +[dump93] +file=bindir/code_27_0_exec +address=0x010005d4 +length=0x24 + +[dump94] +file=bindir/code_55_0_exec +address=0x01001568 +length=0x24 + +[dump95] +file=bindir/code_93_0_exec +address=0x01002a08 +length=0x7c + +[dump96] +file=bindir/code_119_0_exec +address=0x010045e0 +length=0x4c + +[dump97] +file=bindir/code_30_0_exec +address=0x0100066c +length=0xd8 + +[dump98] +file=bindir/code_20_0_exec +address=0x01000320 +length=0x80 + +[dump99] +file=bindir/checkpoint_128_0_exec +address=0x02800410 +length=0x20 + +[dump100] +file=bindir/code_26_0_exec +address=0x010005a8 +length=0x2c + +[dump101] +file=bindir/code_101_0_exec +address=0x01002ca4 +length=0x24 + +[dump102] +file=bindir/code_22_0_exec +address=0x010003bc +length=0xd8 + +[dump103] +file=bindir/code_59_0_exec +address=0x01001d44 +length=0x24 + +[dump104] +file=bindir/code_121_0_exec +address=0x01004650 +length=0x4 + +[dump105] +file=bindir/code_65_0_exec +address=0x010020d8 +length=0x7c + +[dump106] +file=bindir/code_118_0_exec +address=0x010045cc +length=0x10 + +[dump107] +file=bindir/code_70_0_exec +address=0x01002338 +length=0x70 + +[dump108] +file=bindir/code_102_0_exec +address=0x01002cc8 +length=0x4 + +[dump109] +file=bindir/code_68_0_exec +address=0x01002270 +length=0x9c + +[dump110] +file=bindir/code_60_0_exec +address=0x01001d68 +length=0x298 + |