X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=converter%2Fbabeltrace-log.c;h=14d46964da1b11d593ef5f02827bc0c1c9c997c1;hb=d77e781b20976f300278c2c5dd6e3d576951699c;hp=8d425be65f9615882ae3ee6d240d1609eca751f2;hpb=08c82b90d94a6dfee1f3da4ec06864c6045c07f7;p=babeltrace.git diff --git a/converter/babeltrace-log.c b/converter/babeltrace-log.c index 8d425be6..14d46964 100644 --- a/converter/babeltrace-log.c +++ b/converter/babeltrace-log.c @@ -17,6 +17,14 @@ * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * * Depends on glibc 2.10 for getline(). */ @@ -37,7 +45,7 @@ #include #include -#include +#include #include #define USEC_PER_SEC 1000000UL @@ -115,7 +123,7 @@ void write_packet_header(struct ctf_stream_pos *pos, unsigned char *uuid) ctf_align_pos(&dummy, sizeof(uint32_t) * CHAR_BIT); ctf_move_pos(&dummy, sizeof(uint32_t) * CHAR_BIT); assert(!ctf_pos_packet(&dummy)); - + ctf_align_pos(pos, sizeof(uint32_t) * CHAR_BIT); *(uint32_t *) ctf_get_pos_addr(pos) = 0xC1FC1FC1; ctf_move_pos(pos, sizeof(uint32_t) * CHAR_BIT); @@ -141,7 +149,7 @@ void write_packet_context(struct ctf_stream_pos *pos) ctf_align_pos(&dummy, sizeof(uint64_t) * CHAR_BIT); ctf_move_pos(&dummy, sizeof(uint64_t) * CHAR_BIT); assert(!ctf_pos_packet(&dummy)); - + ctf_align_pos(pos, sizeof(uint64_t) * CHAR_BIT); *(uint64_t *) ctf_get_pos_addr(pos) = ~0ULL; /* Not known yet */ pos->content_size_loc = (uint64_t *) ctf_get_pos_addr(pos); @@ -152,7 +160,7 @@ void write_packet_context(struct ctf_stream_pos *pos) ctf_align_pos(&dummy, sizeof(uint64_t) * CHAR_BIT); ctf_move_pos(&dummy, sizeof(uint64_t) * CHAR_BIT); assert(!ctf_pos_packet(&dummy)); - + ctf_align_pos(pos, sizeof(uint64_t) * CHAR_BIT); *(uint64_t *) ctf_get_pos_addr(pos) = pos->packet_size; ctf_move_pos(pos, sizeof(uint64_t) * CHAR_BIT); @@ -183,6 +191,11 @@ void write_event_header(struct ctf_stream_pos *pos, char *line, } *tlen = len + line - *tline; *ts = (uint64_t) sec * USEC_PER_SEC + (uint64_t) usec; + /* + * Default CTF clock has 1GHz frequency. Convert + * from usec to nsec. + */ + *ts *= 1000; } } /* timestamp */ @@ -239,7 +252,7 @@ void trace_text(FILE *input, int output) int ret; memset(&pos, 0, sizeof(pos)); - ret = ctf_init_pos(&pos, output, O_RDWR); + ret = ctf_init_pos(&pos, NULL, output, O_RDWR); if (ret) { fprintf(stderr, "Error in ctf_init_pos\n"); return; @@ -345,7 +358,7 @@ int main(int argc, char **argv) metadata_fd = openat(dir_fd, "metadata", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP); - if (fd < 0) { + if (metadata_fd < 0) { perror("openat"); goto error_closedatastream; }