In the trace-cmd library there are various APIs for allocating and initializing output handler to a trace file. The existing APIs are use case oriented, with a lot of parameters. Extending them for new use cases, adding more input parameters, will make the library more complex and not easy to use. Almost all use case oriented APIs for output handler creation are removed and replaced with new flow, which is easier to be extended with new parameters. Removed APIs: tracecmd_create_init_fd_msg() tracecmd_create_init_file_glob() tracecmd_create_init_fd_glob() tracecmd_create_init_file_override() New APIs: tracecmd_output_allocate() tracecmd_output_set_msg() tracecmd_output_set_trace_dir() tracecmd_output_set_kallsyms() tracecmd_output_set_from_input() tracecmd_output_write_init() tracecmd_output_write_headers() The new tracecmd_output_allocate() API allocates memory and performs minimal initialization of an output handler to a trace file. No data is written in the file. The tracecmd_output_set_...() APIs can be used to set various parameters to the newly allocated output handler, that affect the way the data is written into the file. When the output handler is configured for the desired use case, the tracecmd_output_write_init() is used to start writing to the file, it writes initial magic bytes. The tracecmd_output_write_headers() API is used to write the initial headers into the file. This patch-set depends on: "trace-cmd fixes and clean-ups" patch set. v2 changes: - Rebased on top of the latest master. Tzvetomir Stoyanov (VMware) (10): trace-cmd library: New API for allocating an output handler trace-cmd library: New API for setting a message context to an output handler trace-cmd library: New API for setting a custom trace directory to an output handler trace-cmd library: New API for setting a custom kallsyms to an output handler trace-cmd library: New API to inherit parameters from an existing trace file trace-cmd library: New API tracecmd_output_write_init trace-cmd library: New API to write headers of a trace file trace-cmd library: Use the new flow when creating output handler trace-cmd: Use the new flow when creating output handler trace-cmd library: Remove deprecated APIs for creating an output handler .../include/private/trace-cmd-private.h | 25 +- lib/trace-cmd/trace-output.c | 397 +++++++++++------- tracecmd/trace-record.c | 55 ++- tracecmd/trace-restore.c | 32 +- 4 files changed, 347 insertions(+), 162 deletions(-) -- 2.33.1