@@ -31,6 +31,12 @@ struct tep_plugin_list *trace_load_plugins(struct tep_handle *tep, int flags);
int *tracecmd_add_id(int *list, int id, int len);
+#define FILE_VERSION_DEFAULT 6
+#define FILE_VERSION_MIN 6
+#define FILE_VERSION_MAX 7
+
+#define FILE_VERSION_SECTIONS 7
+
enum {
RINGBUF_TYPE_PADDING = 29,
RINGBUF_TYPE_TIME_EXTEND = 30,
@@ -14,13 +14,6 @@ void tracecmd_warning(const char *fmt, ...);
void tracecmd_critical(const char *fmt, ...);
void tracecmd_info(const char *fmt, ...);
-/* trace.dat file format version */
-#define FILE_VERSION 6
-
-#define _STR(x) #x
-#define STR(x) _STR(x)
-#define FILE_VERSION_STRING STR(FILE_VERSION)
-
#ifndef htonll
# if __BYTE_ORDER == __LITTLE_ENDIAN
#define htonll(x) __bswap_64(x)
@@ -83,6 +83,8 @@ struct list_event_system {
char *name;
};
+#define HAS_SECTIONS(H) ((H)->file_version >= FILE_VERSION_SECTIONS)
+
static stsize_t
do_write_check(struct tracecmd_output *handle, const void *data, tsize_t size)
{
@@ -919,7 +921,7 @@ struct tracecmd_output *tracecmd_output_allocate(int fd)
handle->fd = fd;
- handle->file_version = FILE_VERSION;
+ handle->file_version = FILE_VERSION_DEFAULT;
handle->page_size = getpagesize();
handle->big_endian = tracecmd_host_bigendian();
@@ -620,7 +620,7 @@ unsigned long long tracecmd_generate_traceid(void)
bool tracecmd_is_version_supported(unsigned int version)
{
- if (version <= FILE_VERSION)
+ if (version >= FILE_VERSION_MIN && version <= FILE_VERSION_MAX)
return true;
return false;
}
@@ -214,6 +214,7 @@ struct common_record_context {
int topt;
int run_command;
int saved_cmdlines_size;
+ int file_version;
};
static void add_reset_file(const char *file, const char *val, int prio)
@@ -5974,6 +5975,7 @@ static void init_common_record_context(struct common_record_context *ctx,
ctx->instance = &top_instance;
ctx->curr_cmd = curr_cmd;
local_cpu_count = tracecmd_count_cpus();
+ ctx->file_version = FILE_VERSION_DEFAULT;
init_top_instance();
}
Added a define for file version 7, but keep the default file version to 6. Defined the new file version as the first version that supports trace file sections. Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> --- lib/trace-cmd/include/private/trace-cmd-private.h | 6 ++++++ lib/trace-cmd/include/trace-cmd-local.h | 7 ------- lib/trace-cmd/trace-output.c | 4 +++- lib/trace-cmd/trace-util.c | 2 +- tracecmd/trace-record.c | 2 ++ 5 files changed, 12 insertions(+), 9 deletions(-)