From: Mathieu Desnoyers Date: Tue, 7 Feb 2012 14:38:58 +0000 (-0500) Subject: Remove all code that depends on trace collection directory structure X-Git-Tag: v0.10~4 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=5b80ddfb8dfa4db544efddcd8acaed1228f87daa Remove all code that depends on trace collection directory structure We now perform equivalent functionnality with environment within trace metadata. Signed-off-by: Mathieu Desnoyers --- diff --git a/converter/babeltrace.c b/converter/babeltrace.c index 0ca1313d..f75a7976 100644 --- a/converter/babeltrace.c +++ b/converter/babeltrace.c @@ -546,9 +546,8 @@ static int traverse_dir(const char *fpath, const struct stat *sb, } else { close(fd); close(dirfd); - td_read = fmt_read->open_trace(opt_input_path, - fpath, O_RDONLY, ctf_move_pos_slow, - NULL); + td_read = fmt_read->open_trace(fpath, O_RDONLY, + ctf_move_pos_slow, NULL); if (!td_read) { fprintf(stderr, "Error opening trace \"%s\" " "for reading.\n\n", fpath); @@ -634,7 +633,7 @@ int main(int argc, char **argv) fprintf(stderr, "Error allocating a new context\n"); goto error_td_read; } - td_write = fmt_write->open_trace(NULL, opt_output_path, O_RDWR, NULL, NULL); + td_write = fmt_write->open_trace(opt_output_path, O_RDWR, NULL, NULL); if (!td_write) { fprintf(stderr, "Error opening trace \"%s\" for writing.\n\n", opt_output_path ? : ""); diff --git a/formats/bt-dummy/bt-dummy.c b/formats/bt-dummy/bt-dummy.c index 821ee17d..d7f75fb1 100644 --- a/formats/bt-dummy/bt-dummy.c +++ b/formats/bt-dummy/bt-dummy.c @@ -39,8 +39,7 @@ int bt_dummy_write_event(struct stream_pos *ppos, } static -struct trace_descriptor *bt_dummy_open_trace(const char *collection_path, - const char *path, int flags, +struct trace_descriptor *bt_dummy_open_trace(const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp) { diff --git a/formats/ctf-text/ctf-text.c b/formats/ctf-text/ctf-text.c index b7889ec0..81dbb3eb 100644 --- a/formats/ctf-text/ctf-text.c +++ b/formats/ctf-text/ctf-text.c @@ -56,8 +56,7 @@ enum field_item { ITEM_PAYLOAD, }; -struct trace_descriptor *ctf_text_open_trace(const char *collection_path, - const char *path, int flags, +struct trace_descriptor *ctf_text_open_trace(const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp); void ctf_text_close_trace(struct trace_descriptor *descriptor); @@ -397,8 +396,7 @@ error: } -struct trace_descriptor *ctf_text_open_trace(const char *collection_path, - const char *path, int flags, +struct trace_descriptor *ctf_text_open_trace(const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp) { diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c index ab4945dd..f1c0de47 100644 --- a/formats/ctf/ctf.c +++ b/formats/ctf/ctf.c @@ -64,7 +64,7 @@ uint64_t opt_clock_offset; extern int yydebug; static -struct trace_descriptor *ctf_open_trace(const char *collection_path, const char *path, int flags, +struct trace_descriptor *ctf_open_trace(const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp); static @@ -1268,97 +1268,8 @@ error: return ret; } -static void -init_domain_name(struct ctf_trace *td) -{ - char *start, *end; - - start = td->path + strlen(td->collection_path); - while (start[0] == '/') - start++; /* skip / */ - end = strchr(start, '/'); - if (!end) - end = start + strlen(start); - memcpy(td->domain, start, end - start); - td->domain[end - start] = '\0'; -} - -static void -init_proc_name(struct ctf_trace *td) -{ - char buf[PATH_MAX]; - char *start, *end; - - if (td->domain[0] == '\0') - return; - memcpy(buf, td->path, PATH_MAX); - start = buf + strlen(td->collection_path); - while (start[0] == '/') - start++; /* skip / */ - start = strchr(start, '/'); /* get begin of domain content */ - if (!start) - return; - while (start[0] == '/') - start++; /* skip / */ - /* find last -, skips time */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - /* find previous -, skips date */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - /* find previous -, skips pid */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - - memcpy(td->procname, start, end - start); - td->procname[end - start] = '\0'; -} - -static void -init_vpid(struct ctf_trace *td) -{ - char buf[PATH_MAX]; - char *start, *end; - - if (td->domain[0] == '\0') - return; - memcpy(buf, td->path, PATH_MAX); - start = buf + strlen(td->collection_path); - while (start[0] == '/') - start++; /* skip / */ - start = strchr(start, '/'); /* get begin of domain content */ - if (!start) - return; - while (start[0] == '/') - start++; /* skip / */ - /* find last -, skips time */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - /* find previous -, skips date */ - end = strrchr(start, '-'); - if (!end) - return; - *end = '\0'; - /* find previous -, skips pid */ - start = strrchr(start, '-'); - if (!start) - return; - start++; /* skip - */ - - memcpy(td->vpid, start, end - start); - td->vpid[end - start] = '\0'; -} - static -int ctf_open_trace_read(struct ctf_trace *td, const char *collection_path, +int ctf_open_trace_read(struct ctf_trace *td, const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp) @@ -1367,7 +1278,6 @@ int ctf_open_trace_read(struct ctf_trace *td, const char *collection_path, struct dirent *dirent; struct dirent *diriter; size_t dirent_len; - char *respath, *rescolpath; td->flags = flags; @@ -1386,19 +1296,8 @@ int ctf_open_trace_read(struct ctf_trace *td, const char *collection_path, ret = -errno; goto error_dirfd; } - rescolpath = realpath(collection_path, td->collection_path); - if (!rescolpath) { - fprintf(stderr, "[error] collection path resolution failure\n"); - return -EINVAL; - } - respath = realpath(path, td->path); - if (!respath) { - fprintf(stderr, "[error] path resolution failure\n"); - return -EINVAL; - } - init_domain_name(td); - init_proc_name(td); - init_vpid(td); + strncpy(td->path, path, sizeof(td->path)); + td->path[sizeof(td->path) - 1] = '\0'; /* * Keep the metadata file separate. @@ -1454,7 +1353,7 @@ error: } static -struct trace_descriptor *ctf_open_trace(const char *collection_path, const char *path, int flags, +struct trace_descriptor *ctf_open_trace(const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp) { @@ -1469,7 +1368,7 @@ struct trace_descriptor *ctf_open_trace(const char *collection_path, const char fprintf(stderr, "[error] Path missing for input CTF trace.\n"); goto error; } - ret = ctf_open_trace_read(td, collection_path, path, flags, move_pos_slow, metadata_fp); + ret = ctf_open_trace_read(td, path, flags, move_pos_slow, metadata_fp); if (ret) goto error; break; diff --git a/include/babeltrace/ctf-ir/metadata.h b/include/babeltrace/ctf-ir/metadata.h index 699db2ee..d445a011 100644 --- a/include/babeltrace/ctf-ir/metadata.h +++ b/include/babeltrace/ctf-ir/metadata.h @@ -158,11 +158,7 @@ struct ctf_trace { /* Heap of streams, ordered to always get the lowest timestam */ struct ptr_heap *stream_heap; - char collection_path[PATH_MAX]; char path[PATH_MAX]; - char domain[PATH_MAX]; - char procname[PATH_MAX]; - char vpid[PATH_MAX]; }; #define CTF_STREAM_SET_FIELD(ctf_stream, field) \ diff --git a/include/babeltrace/format.h b/include/babeltrace/format.h index 93d1e251..526ab614 100644 --- a/include/babeltrace/format.h +++ b/include/babeltrace/format.h @@ -45,8 +45,7 @@ struct mmap_stream_list { struct format { GQuark name; - struct trace_descriptor *(*open_trace)(const char *collection_path, - const char *path, int flags, + struct trace_descriptor *(*open_trace)(const char *path, int flags, void (*move_pos_slow)(struct ctf_stream_pos *pos, size_t offset, int whence), FILE *metadata_fp); struct trace_descriptor *(*open_mmap_trace)(