projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 2.5.7
[lttng-ust.git]
/
liblttng-ust
/
lttng-ring-buffer-client.h
diff --git
a/liblttng-ust/lttng-ring-buffer-client.h
b/liblttng-ust/lttng-ring-buffer-client.h
index 87d1a8cdb3fe98fca98dcc051e4ab591e65a8269..7dfb144d1f99e3ef8055384366535a3afcdcee02 100644
(file)
--- a/
liblttng-ust/lttng-ring-buffer-client.h
+++ b/
liblttng-ust/lttng-ring-buffer-client.h
@@
-76,6
+76,7
@@
size_t ctx_get_size(size_t offset, struct lttng_ctx *ctx)
if (caa_likely(!ctx))
return 0;
if (caa_likely(!ctx))
return 0;
+ offset += lib_ring_buffer_align(offset, ctx->largest_align);
for (i = 0; i < ctx->nr_fields; i++)
offset += ctx->fields[i].get_size(offset);
return offset - orig_offset;
for (i = 0; i < ctx->nr_fields; i++)
offset += ctx->fields[i].get_size(offset);
return offset - orig_offset;
@@
-90,6
+91,7
@@
void ctx_record(struct lttng_ust_lib_ring_buffer_ctx *bufctx,
if (caa_likely(!ctx))
return;
if (caa_likely(!ctx))
return;
+ lib_ring_buffer_align_ctx(bufctx, ctx->largest_align);
for (i = 0; i < ctx->nr_fields; i++)
ctx->fields[i].record(&ctx->fields[i], bufctx, chan);
}
for (i = 0; i < ctx->nr_fields; i++)
ctx->fields[i].record(&ctx->fields[i], bufctx, chan);
}
@@
-337,6
+339,9
@@
static void client_buffer_begin(struct lttng_ust_lib_ring_buffer *buf, uint64_t
handle);
struct lttng_channel *lttng_chan = channel_get_private(chan);
handle);
struct lttng_channel *lttng_chan = channel_get_private(chan);
+ assert(header);
+ if (!header)
+ return;
header->magic = CTF_MAGIC_NUMBER;
memcpy(header->uuid, lttng_chan->uuid, sizeof(lttng_chan->uuid));
header->stream_id = lttng_chan->id;
header->magic = CTF_MAGIC_NUMBER;
memcpy(header->uuid, lttng_chan->uuid, sizeof(lttng_chan->uuid));
header->stream_id = lttng_chan->id;
@@
-364,6
+369,9
@@
static void client_buffer_end(struct lttng_ust_lib_ring_buffer *buf, uint64_t ts
handle);
unsigned long records_lost = 0;
handle);
unsigned long records_lost = 0;
+ assert(header);
+ if (!header)
+ return;
header->ctx.timestamp_end = tsc;
header->ctx.content_size =
(uint64_t) data_size * CHAR_BIT; /* in bits */
header->ctx.timestamp_end = tsc;
header->ctx.content_size =
(uint64_t) data_size * CHAR_BIT; /* in bits */
@@
-399,6
+407,8
@@
static int client_timestamp_begin(struct lttng_ust_lib_ring_buffer *buf,
struct packet_header *header;
header = client_packet_header(buf, handle);
struct packet_header *header;
header = client_packet_header(buf, handle);
+ if (!header)
+ return -1;
*timestamp_begin = header->ctx.timestamp_begin;
return 0;
}
*timestamp_begin = header->ctx.timestamp_begin;
return 0;
}
@@
-410,6
+420,8
@@
static int client_timestamp_end(struct lttng_ust_lib_ring_buffer *buf,
struct packet_header *header;
header = client_packet_header(buf, handle);
struct packet_header *header;
header = client_packet_header(buf, handle);
+ if (!header)
+ return -1;
*timestamp_end = header->ctx.timestamp_end;
return 0;
}
*timestamp_end = header->ctx.timestamp_end;
return 0;
}
@@
-421,6
+433,8
@@
static int client_events_discarded(struct lttng_ust_lib_ring_buffer *buf,
struct packet_header *header;
header = client_packet_header(buf, handle);
struct packet_header *header;
header = client_packet_header(buf, handle);
+ if (!header)
+ return -1;
*events_discarded = header->ctx.events_discarded;
return 0;
}
*events_discarded = header->ctx.events_discarded;
return 0;
}
@@
-432,6
+446,8
@@
static int client_content_size(struct lttng_ust_lib_ring_buffer *buf,
struct packet_header *header;
header = client_packet_header(buf, handle);
struct packet_header *header;
header = client_packet_header(buf, handle);
+ if (!header)
+ return -1;
*content_size = header->ctx.content_size;
return 0;
}
*content_size = header->ctx.content_size;
return 0;
}
@@
-443,6
+459,8
@@
static int client_packet_size(struct lttng_ust_lib_ring_buffer *buf,
struct packet_header *header;
header = client_packet_header(buf, handle);
struct packet_header *header;
header = client_packet_header(buf, handle);
+ if (!header)
+ return -1;
*packet_size = header->ctx.packet_size;
return 0;
}
*packet_size = header->ctx.packet_size;
return 0;
}
@@
-454,6
+472,8
@@
static int client_stream_id(struct lttng_ust_lib_ring_buffer *buf,
struct packet_header *header;
header = client_packet_header(buf, handle);
struct packet_header *header;
header = client_packet_header(buf, handle);
+ if (!header)
+ return -1;
*stream_id = header->stream_id;
return 0;
}
*stream_id = header->stream_id;
return 0;
}
@@
-601,6
+621,13
@@
void lttng_event_write(struct lttng_ust_lib_ring_buffer_ctx *ctx, const void *sr
lib_ring_buffer_write(&client_config, ctx, src, len);
}
lib_ring_buffer_write(&client_config, ctx, src, len);
}
+static
+void lttng_event_strcpy(struct lttng_ust_lib_ring_buffer_ctx *ctx, const char *src,
+ size_t len)
+{
+ lib_ring_buffer_strcpy(&client_config, ctx, src, len, '#');
+}
+
#if 0
static
wait_queue_head_t *lttng_get_reader_wait_queue(struct channel *chan)
#if 0
static
wait_queue_head_t *lttng_get_reader_wait_queue(struct channel *chan)
@@
-651,6
+678,7
@@
static struct lttng_transport lttng_relay_transport = {
.ops = {
.channel_create = _channel_create,
.channel_destroy = lttng_channel_destroy,
.ops = {
.channel_create = _channel_create,
.channel_destroy = lttng_channel_destroy,
+ .u.has_strcpy = 1,
.event_reserve = lttng_event_reserve,
.event_commit = lttng_event_commit,
.event_write = lttng_event_write,
.event_reserve = lttng_event_reserve,
.event_commit = lttng_event_commit,
.event_write = lttng_event_write,
@@
-660,6
+688,7
@@
static struct lttng_transport lttng_relay_transport = {
.is_finalized = lttng_is_finalized,
.is_disabled = lttng_is_disabled,
.flush_buffer = lttng_flush_buffer,
.is_finalized = lttng_is_finalized,
.is_disabled = lttng_is_disabled,
.flush_buffer = lttng_flush_buffer,
+ .event_strcpy = lttng_event_strcpy,
},
.client_config = &client_config,
};
},
.client_config = &client_config,
};
This page took
0.025459 seconds
and
4
git commands to generate.