X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=src%2Fctfser%2Fctfser.h;h=cf9941bc225ee843e95c0f7f76f556091f3969b5;hb=2a02ed9335ef344015646bca54ad7a2a65ec01c4;hp=c270faf93e3a306b14dabf158f91b957464e319b;hpb=57952005b6a6a0aeb1e4ecb0d7ac0c6786d23dba;p=babeltrace.git diff --git a/src/ctfser/ctfser.h b/src/ctfser/ctfser.h index c270faf9..cf9941bc 100644 --- a/src/ctfser/ctfser.h +++ b/src/ctfser/ctfser.h @@ -41,6 +41,7 @@ #include "common/mmap-align.h" #include #include "common/assert.h" +#include "common/macros.h" #include "compat/bitfield.h" #include @@ -71,6 +72,9 @@ struct bt_ctfser { /* Stream file's path (for debugging) */ GString *path; + + /* Serializer's log level */ + int log_level; }; /* @@ -79,7 +83,8 @@ struct bt_ctfser { * This function opens the file `path` for writing. */ BT_HIDDEN -int bt_ctfser_init(struct bt_ctfser *ctfser, const char *path); +int bt_ctfser_init(struct bt_ctfser *ctfser, const char *path, + int log_level); /* * Finalizes a CTF serializer. @@ -140,13 +145,13 @@ bool _bt_ctfser_has_space_left(struct bt_ctfser *ctfser, uint64_t size_bits) { bool has_space_left = true; - if (unlikely((ctfser->offset_in_cur_packet_bits + size_bits > + if (G_UNLIKELY((ctfser->offset_in_cur_packet_bits + size_bits > _bt_ctfser_cur_packet_size_bits(ctfser)))) { has_space_left = false; goto end; } - if (unlikely(size_bits > UINT64_MAX - ctfser->offset_in_cur_packet_bits)) { + if (G_UNLIKELY(size_bits > UINT64_MAX - ctfser->offset_in_cur_packet_bits)) { has_space_left = false; goto end; } @@ -177,9 +182,9 @@ int bt_ctfser_align_offset_in_current_packet(struct bt_ctfser *ctfser, align_size_bits = ALIGN(ctfser->offset_in_cur_packet_bits, alignment_bits) - ctfser->offset_in_cur_packet_bits; - if (unlikely(!_bt_ctfser_has_space_left(ctfser, align_size_bits))) { + if (G_UNLIKELY(!_bt_ctfser_has_space_left(ctfser, align_size_bits))) { ret = _bt_ctfser_increase_cur_packet_size(ctfser); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } } @@ -328,20 +333,20 @@ int bt_ctfser_write_byte_aligned_unsigned_int(struct bt_ctfser *ctfser, BT_ASSERT(alignment_bits % 8 == 0); ret = bt_ctfser_align_offset_in_current_packet(ctfser, alignment_bits); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } - if (unlikely(!_bt_ctfser_has_space_left(ctfser, size_bits))) { + if (G_UNLIKELY(!_bt_ctfser_has_space_left(ctfser, size_bits))) { ret = _bt_ctfser_increase_cur_packet_size(ctfser); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } } ret = _bt_ctfser_write_byte_aligned_unsigned_int_no_align(ctfser, value, size_bits, byte_order); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } @@ -363,20 +368,20 @@ int bt_ctfser_write_byte_aligned_signed_int(struct bt_ctfser *ctfser, BT_ASSERT(alignment_bits % 8 == 0); ret = bt_ctfser_align_offset_in_current_packet(ctfser, alignment_bits); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } - if (unlikely(!_bt_ctfser_has_space_left(ctfser, size_bits))) { + if (G_UNLIKELY(!_bt_ctfser_has_space_left(ctfser, size_bits))) { ret = _bt_ctfser_increase_cur_packet_size(ctfser); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } } ret = _bt_ctfser_write_byte_aligned_signed_int_no_align(ctfser, value, size_bits, byte_order); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } @@ -396,13 +401,13 @@ int bt_ctfser_write_unsigned_int(struct bt_ctfser *ctfser, uint64_t value, int ret = 0; ret = bt_ctfser_align_offset_in_current_packet(ctfser, alignment_bits); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } - if (unlikely(!_bt_ctfser_has_space_left(ctfser, size_bits))) { + if (G_UNLIKELY(!_bt_ctfser_has_space_left(ctfser, size_bits))) { ret = _bt_ctfser_increase_cur_packet_size(ctfser); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } } @@ -441,13 +446,13 @@ int bt_ctfser_write_signed_int(struct bt_ctfser *ctfser, int64_t value, int ret = 0; ret = bt_ctfser_align_offset_in_current_packet(ctfser, alignment_bits); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } - if (unlikely(!_bt_ctfser_has_space_left(ctfser, size_bits))) { + if (G_UNLIKELY(!_bt_ctfser_has_space_left(ctfser, size_bits))) { ret = _bt_ctfser_increase_cur_packet_size(ctfser); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } } @@ -502,10 +507,10 @@ int bt_ctfser_write_float64(struct bt_ctfser *ctfser, double value, { union u64f { uint64_t u; - float f; + double d; } u64f; - u64f.f = value; + u64f.d = value; return bt_ctfser_write_unsigned_int(ctfser, u64f.u, alignment_bits, 64, byte_order); } @@ -521,14 +526,14 @@ int bt_ctfser_write_string(struct bt_ctfser *ctfser, const char *value) const char *at = value; ret = bt_ctfser_align_offset_in_current_packet(ctfser, 8); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } while (true) { - if (unlikely(!_bt_ctfser_has_space_left(ctfser, 8))) { + if (G_UNLIKELY(!_bt_ctfser_has_space_left(ctfser, 8))) { ret = _bt_ctfser_increase_cur_packet_size(ctfser); - if (unlikely(ret)) { + if (G_UNLIKELY(ret)) { goto end; } } @@ -536,7 +541,7 @@ int bt_ctfser_write_string(struct bt_ctfser *ctfser, const char *value) memcpy(_bt_ctfser_get_addr(ctfser), at, sizeof(*at)); _bt_ctfser_incr_offset(ctfser, 8); - if (unlikely(*at == '\0')) { + if (G_UNLIKELY(*at == '\0')) { break; }