Patchset for the OpenCSD 0v004 release.
Updates to allow decoder registration and decoder selection by name. Adds generic handling of decoders in the APIs. First stage in providing custom external decoder interface.
C API and decode tree API updates to use the new functionality.
Updated test programs. C-API test program re-written to use new API and re-names.
Deprecated functionality still available on conditional compile for regression testing.
Signed-off-by: Mike Leach mike.leach@linaro.org
Mike Leach (19): opencsd: Updated version numbers to 0v004. opencsd: Updated docs and help opencsd: Add .bash scripts - library testing in perf opencsd: bugfix - ETMv4, PTM - output packet error. opencsd: Add new base class for trace component config. opencsd: Adds abstract base class interface opencsd: adds classes to handle decoder registration and management opencsd: updates to code to utilize decoder registration. opencsd: Add protocol type ID to decoder manager opencsd: DecodeTree modifications - using new API fns. opencsd: bugfix - etmv4 trace info packet opencsd: Updates to decoder registration code opencsd: Update C API functions to reflect new create decoder API. opencsd: Rework memory accessor API on decode tree. opencsd: Udpated linux makefiles for recent code updates. opencsd: Bugfix - initialisation of associated component pointer opencsd: remove C API deprecated types. opencsd: Doxygen comment updates. opencsd: bugfix - extraction of multibyte payload values from packets.
HOWTO.md | 134 +++- README.md | 10 +- decoder/build/linux/makefile | 2 + decoder/build/linux/rctdl_c_api_lib/makefile | 3 +- decoder/build/linux/ref_trace_decode_lib/makefile | 1 + .../win/rctdl_c_api_lib/rctdl_c_api_lib.vcxproj | 2 + .../rctdl_c_api_lib.vcxproj.filters | 6 + .../ref_trace_decode_lib/ref_trace_decode_lib.sln | 25 +- .../ref_trace_decode_lib.vcxproj | 10 + .../ref_trace_decode_lib.vcxproj.filters | 30 + decoder/docs/doxygen_config.dox | 5 +- decoder/include/c_api/ocsd_c_api_deprc_fn.h | 233 ++++++ decoder/include/c_api/ocsd_c_api_types.h | 81 +- decoder/include/c_api/opencsd_c_api.h | 190 ++--- decoder/include/common/comp_attach_pt_t.h | 15 + decoder/include/common/ocsd_dcd_mngr.h | 397 ++++++++++ decoder/include/common/ocsd_dcd_mngr_i.h | 98 +++ decoder/include/common/ocsd_dcd_tree.h | 286 +++++-- decoder/include/common/ocsd_dcd_tree_elem.h | 169 ++--- decoder/include/common/ocsd_lib_dcd_register.h | 122 +++ decoder/include/common/trc_component.h | 22 +- decoder/include/common/trc_cs_config.h | 62 ++ decoder/include/common/trc_gen_elem.h | 6 + decoder/include/common/trc_pkt_decode_base.h | 36 +- decoder/include/common/trc_pkt_proc_base.h | 53 +- decoder/include/etmv3/trc_cmp_cfg_etmv3.h | 6 +- decoder/include/etmv3/trc_dcd_mngr_etmv3.h | 57 ++ decoder/include/etmv4/trc_cmp_cfg_etmv4.h | 102 +-- decoder/include/etmv4/trc_dcd_mngr_etmv4i.h | 31 + decoder/include/interfaces/trc_abs_typed_base_i.h | 58 ++ decoder/include/interfaces/trc_indexer_pkt_i.h | 4 +- decoder/include/interfaces/trc_pkt_in_i.h | 4 +- decoder/include/interfaces/trc_pkt_raw_in_i.h | 4 +- decoder/include/ocsd_if_types.h | 88 ++- decoder/include/opencsd.h | 6 +- decoder/include/ptm/trc_cmp_cfg_ptm.h | 55 +- decoder/include/ptm/trc_dcd_mngr_ptm.h | 57 ++ decoder/include/stm/trc_cmp_cfg_stm.h | 55 +- decoder/include/stm/trc_dcd_mngr_stm.h | 55 ++ decoder/include/trc_gen_elem_types.h | 4 +- decoder/source/c_api/ocsd_c_api.cpp | 546 +++++--------- decoder/source/c_api/ocsd_c_api_deprc_fn.cpp | 200 +++++ decoder/source/c_api/ocsd_c_api_obj.h | 57 ++ decoder/source/etmv3/trc_pkt_proc_etmv3.cpp | 2 +- decoder/source/etmv4/trc_cmp_cfg_etmv4.cpp | 40 +- decoder/source/etmv4/trc_pkt_decode_etmv4i.cpp | 14 +- decoder/source/etmv4/trc_pkt_proc_etmv4i_impl.cpp | 76 +- decoder/source/etmv4/trc_pkt_proc_etmv4i_impl.h | 22 +- decoder/source/ocsd_dcd_tree.cpp | 518 ++++--------- decoder/source/ocsd_error.cpp | 6 + decoder/source/ocsd_lib_dcd_register.cpp | 172 +++++ decoder/source/ptm/trc_cmp_cfg_ptm.cpp | 17 +- decoder/source/ptm/trc_pkt_decode_ptm.cpp | 11 +- decoder/source/trc_component.cpp | 1 + .../build/linux/c_api_pkt_print_test/makefile | 82 ++ .../c_api_pkt_print_test.vcxproj | 325 ++++++++ .../c_api_pkt_print_test.vcxproj.filters | 22 + .../tests/perf-test-scripts/perf-setup-env.bash | 42 ++ .../tests/perf-test-scripts/perf-test-report.bash | 14 + .../tests/perf-test-scripts/perf-test-script.bash | 11 + .../snapshot_parser_lib/source/ss_to_dcdtree.cpp | 65 +- decoder/tests/source/c_api_pkt_print_test.c | 825 +++++++++++++++++++++ decoder/tests/source/gen_elem_printer.h | 2 +- decoder/tests/source/simple_pkt_c_api.c | 1 + decoder/tests/source/trc_pkt_lister.cpp | 30 +- 65 files changed, 4294 insertions(+), 1391 deletions(-) create mode 100644 decoder/include/c_api/ocsd_c_api_deprc_fn.h create mode 100644 decoder/include/common/ocsd_dcd_mngr.h create mode 100644 decoder/include/common/ocsd_dcd_mngr_i.h create mode 100644 decoder/include/common/ocsd_lib_dcd_register.h create mode 100644 decoder/include/common/trc_cs_config.h create mode 100644 decoder/include/etmv3/trc_dcd_mngr_etmv3.h create mode 100644 decoder/include/etmv4/trc_dcd_mngr_etmv4i.h create mode 100644 decoder/include/interfaces/trc_abs_typed_base_i.h create mode 100644 decoder/include/ptm/trc_dcd_mngr_ptm.h create mode 100644 decoder/include/stm/trc_dcd_mngr_stm.h create mode 100644 decoder/source/c_api/ocsd_c_api_deprc_fn.cpp create mode 100644 decoder/source/ocsd_lib_dcd_register.cpp create mode 100644 decoder/tests/build/linux/c_api_pkt_print_test/makefile create mode 100644 decoder/tests/build/win/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj create mode 100644 decoder/tests/build/win/c_api_pkt_print_test/c_api_pkt_print_test.vcxproj.filters create mode 100755 decoder/tests/perf-test-scripts/perf-setup-env.bash create mode 100755 decoder/tests/perf-test-scripts/perf-test-report.bash create mode 100755 decoder/tests/perf-test-scripts/perf-test-script.bash create mode 100644 decoder/tests/source/c_api_pkt_print_test.c