projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove stale local .c struct declarations (unused)
[babeltrace.git]
/
converter
/
babeltrace-log.c
diff --git
a/converter/babeltrace-log.c
b/converter/babeltrace-log.c
index b2935ac9fa488cc3406549df69eebea9cf035c47..9ca2b479f398f62dfa42d64e33e011eb556bcf97 100644
(file)
--- a/
converter/babeltrace-log.c
+++ b/
converter/babeltrace-log.c
@@
-3,7
+3,9
@@
*
* BabelTrace - Convert Text Log to CTF
*
*
* BabelTrace - Convert Text Log to CTF
*
- * Copyright 2010, 2011 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright 2010-2011 EfficiOS Inc. and Linux Foundation
+ *
+ * Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@
-18,6
+20,7
@@
* Depends on glibc 2.10 for getline().
*/
* Depends on glibc 2.10 for getline().
*/
+#include <config.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@
-32,10
+35,10
@@
#include <string.h>
#include <endian.h>
#include <string.h>
#include <endian.h>
-#include <babeltrace/babeltrace.h>
+#include <babeltrace/babeltrace
-internal
.h>
#include <babeltrace/ctf/types.h>
#include <babeltrace/ctf/types.h>
-#define
N
SEC_PER_SEC 1000000UL
+#define
U
SEC_PER_SEC 1000000UL
#ifndef UUID_STR_LEN
#define UUID_STR_LEN 37 /* With \0 */
#ifndef UUID_STR_LEN
#define UUID_STR_LEN 37 /* With \0 */
@@
-45,10
+48,12
@@
int babeltrace_debug, babeltrace_verbose;
static char *s_outputname;
static int s_timestamp;
static char *s_outputname;
static int s_timestamp;
+static int s_help;
static uuid_t s_uuid;
/* Metadata format string */
static const char metadata_fmt[] =
static uuid_t s_uuid;
/* Metadata format string */
static const char metadata_fmt[] =
+"/* CTF 1.8 */\n"
"typealias integer { size = 8; align = 8; signed = false; } := uint8_t;\n"
"typealias integer { size = 32; align = 32; signed = false; } := uint32_t;\n"
"\n"
"typealias integer { size = 8; align = 8; signed = false; } := uint8_t;\n"
"typealias integer { size = 32; align = 32; signed = false; } := uint32_t;\n"
"\n"
@@
-59,7
+64,7
@@
static const char metadata_fmt[] =
" byte_order = %s;\n" /* be or le */
" packet.header := struct {\n"
" uint32_t magic;\n"
" byte_order = %s;\n" /* be or le */
" packet.header := struct {\n"
" uint32_t magic;\n"
-" uint8_t
trace_
uuid[16];\n"
+" uint8_t uuid[16];\n"
" };\n"
"};\n"
"\n"
" };\n"
"};\n"
"\n"
@@
-86,11
+91,16
@@
static
void print_metadata(FILE *fp)
{
char uuid_str[UUID_STR_LEN];
void print_metadata(FILE *fp)
{
char uuid_str[UUID_STR_LEN];
+ unsigned int major = 0, minor = 0;
+ int ret;
+ ret = sscanf(VERSION, "%u.%u", &major, &minor);
+ if (ret != 2)
+ fprintf(stderr, "[warning] Incorrect babeltrace version format\n.");
uuid_unparse(s_uuid, uuid_str);
fprintf(fp, metadata_fmt,
uuid_unparse(s_uuid, uuid_str);
fprintf(fp, metadata_fmt,
-
BABELTRACE_VERSION_MAJOR
,
-
BABELTRACE_VERSION_MINOR
,
+
major
,
+
minor
,
uuid_str,
BYTE_ORDER == LITTLE_ENDIAN ? "le" : "be",
s_timestamp ? metadata_stream_event_header_timestamp : "");
uuid_str,
BYTE_ORDER == LITTLE_ENDIAN ? "le" : "be",
s_timestamp ? metadata_stream_event_header_timestamp : "");
@@
-111,7
+121,7
@@
void write_packet_header(struct ctf_stream_pos *pos, uuid_t uuid)
*(uint32_t *) ctf_get_pos_addr(pos) = 0xC1FC1FC1;
ctf_move_pos(pos, sizeof(uint32_t) * CHAR_BIT);
*(uint32_t *) ctf_get_pos_addr(pos) = 0xC1FC1FC1;
ctf_move_pos(pos, sizeof(uint32_t) * CHAR_BIT);
- /*
trace_
uuid */
+ /* uuid */
ctf_dummy_pos(pos, &dummy);
ctf_align_pos(&dummy, sizeof(uint8_t) * CHAR_BIT);
ctf_move_pos(&dummy, 16 * CHAR_BIT);
ctf_dummy_pos(pos, &dummy);
ctf_align_pos(&dummy, sizeof(uint8_t) * CHAR_BIT);
ctf_move_pos(&dummy, 16 * CHAR_BIT);
@@
-154,7
+164,7
@@
void write_event_header(struct ctf_stream_pos *pos, char *line,
char **tline, size_t len, size_t *tlen,
uint64_t *ts)
{
char **tline, size_t len, size_t *tlen,
uint64_t *ts)
{
- unsigned long sec,
n
sec;
+ unsigned long sec,
u
sec;
int ret;
if (!s_timestamp)
int ret;
if (!s_timestamp)
@@
-163,19
+173,22
@@
void write_event_header(struct ctf_stream_pos *pos, char *line,
/* Only need to be executed on first pass (dummy) */
if (pos->dummy) {
/* Extract time from input line */
/* Only need to be executed on first pass (dummy) */
if (pos->dummy) {
/* Extract time from input line */
- ret = sscanf(line, "[%lu.%lu] ", &sec, &
n
sec);
+ ret = sscanf(line, "[%lu.%lu] ", &sec, &
u
sec);
if (ret == 2) {
*tline = strchr(line, ']');
if (ret == 2) {
*tline = strchr(line, ']');
- if ((*tline)[1] == ' ')
+ assert(*tline);
+ (*tline)++;
+ if ((*tline)[0] == ' ') {
(*tline)++;
(*tline)++;
+ }
*tlen = len + line - *tline;
*tlen = len + line - *tline;
- *ts = (uint64_t) sec *
NSEC_PER_SEC + (uint64_t) n
sec;
+ *ts = (uint64_t) sec *
USEC_PER_SEC + (uint64_t) u
sec;
}
}
/* timestamp */
ctf_align_pos(pos, sizeof(uint64_t) * CHAR_BIT);
if (!pos->dummy)
}
}
/* timestamp */
ctf_align_pos(pos, sizeof(uint64_t) * CHAR_BIT);
if (!pos->dummy)
- *(uint
32
_t *) ctf_get_pos_addr(pos) = *ts;
+ *(uint
64
_t *) ctf_get_pos_addr(pos) = *ts;
ctf_move_pos(pos, sizeof(uint64_t) * CHAR_BIT);
}
ctf_move_pos(pos, sizeof(uint64_t) * CHAR_BIT);
}
@@
-239,16
+252,16
@@
void trace_text(FILE *input, int output)
static
void usage(FILE *fp)
{
static
void usage(FILE *fp)
{
- fprintf(fp, "BabelTrace Log Converter %u.%u\n",
- BABELTRACE_VERSION_MAJOR,
- BABELTRACE_VERSION_MINOR);
+ fprintf(fp, "BabelTrace Log Converter %s\n", VERSION);
fprintf(fp, "\n");
fprintf(fp, "Convert for a text log (read from standard input) to CTF.\n");
fprintf(fp, "\n");
fprintf(fp, "\n");
fprintf(fp, "Convert for a text log (read from standard input) to CTF.\n");
fprintf(fp, "\n");
- fprintf(fp, "usage : babeltrace-log OUTPUT\n");
+ fprintf(fp, "usage : babeltrace-log
[OPTIONS]
OUTPUT\n");
fprintf(fp, "\n");
fprintf(fp, " OUTPUT Output trace path\n");
fprintf(fp, "\n");
fprintf(fp, "\n");
fprintf(fp, " OUTPUT Output trace path\n");
fprintf(fp, "\n");
+ fprintf(fp, " -t With timestamps (format: [sec.usec] string\\n)\n");
+ fprintf(fp, "\n");
}
static
}
static
@@
-259,6
+272,11
@@
int parse_args(int argc, char **argv)
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-t"))
s_timestamp = 1;
for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-t"))
s_timestamp = 1;
+ else if (!strcmp(argv[i], "-h")) {
+ s_help = 1;
+ return 0;
+ } else if (argv[i][0] == '-')
+ return -EINVAL;
else
s_outputname = argv[i];
}
else
s_outputname = argv[i];
}
@@
-276,10
+294,16
@@
int main(int argc, char **argv)
ret = parse_args(argc, argv);
if (ret) {
ret = parse_args(argc, argv);
if (ret) {
+ fprintf(stdout, "Error: invalid argument.\n");
usage(stdout);
goto error;
}
usage(stdout);
goto error;
}
+ if (s_help) {
+ usage(stdout);
+ exit(EXIT_SUCCESS);
+ }
+
ret = mkdir(s_outputname, S_IRWXU|S_IRWXG);
if (ret) {
perror("mkdir");
ret = mkdir(s_outputname, S_IRWXU|S_IRWXG);
if (ret) {
perror("mkdir");
This page took
0.027235 seconds
and
4
git commands to generate.