projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
configure.ac: use dnl at appropriate places
[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 79085e57a55e7dd73e4fa71b01c4b2aa21bd5142..d219b79c91dfb0ea45658865a97b0dded461ac20 100644
(file)
--- a/
liblttng-ust/lttng-ring-buffer-client.h
+++ b/
liblttng-ust/lttng-ring-buffer-client.h
@@
-78,7
+78,7
@@
size_t ctx_get_size(size_t offset, struct lttng_ctx *ctx)
return 0;
offset += lib_ring_buffer_align(offset, ctx->largest_align);
for (i = 0; i < ctx->nr_fields; i++)
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);
+ offset += ctx->fields[i].get_size(
&ctx->fields[i],
offset);
return offset - orig_offset;
}
return offset - orig_offset;
}
@@
-110,7
+110,7
@@
void ctx_record(struct lttng_ust_lib_ring_buffer_ctx *bufctx,
* contains.
*/
static __inline__
* contains.
*/
static __inline__
-
unsigned char
record_header_size(const struct lttng_ust_lib_ring_buffer_config *config,
+
size_t
record_header_size(const struct lttng_ust_lib_ring_buffer_config *config,
struct channel *chan, size_t offset,
size_t *pre_header_padding,
struct lttng_ust_lib_ring_buffer_ctx *ctx)
struct channel *chan, size_t offset,
size_t *pre_header_padding,
struct lttng_ust_lib_ring_buffer_ctx *ctx)
@@
-185,7
+185,7
@@
void lttng_write_event_header(const struct lttng_ust_lib_ring_buffer_config *con
uint32_t event_id)
{
struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
uint32_t event_id)
{
struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
- struct lttng_
event *event = ctx->priv
;
+ struct lttng_
stack_ctx *lttng_ctx = ctx->priv2
;
if (caa_unlikely(ctx->rflags))
goto slow_path;
if (caa_unlikely(ctx->rflags))
goto slow_path;
@@
-220,8
+220,8
@@
void lttng_write_event_header(const struct lttng_ust_lib_ring_buffer_config *con
WARN_ON_ONCE(1);
}
WARN_ON_ONCE(1);
}
- ctx_record(ctx, lttng_chan, lttng_c
han->
ctx);
- ctx_record(ctx, lttng_chan,
event->
ctx);
+ ctx_record(ctx, lttng_chan, lttng_c
tx->chan_
ctx);
+ ctx_record(ctx, lttng_chan,
lttng_ctx->event_
ctx);
lib_ring_buffer_align_ctx(ctx, ctx->largest_align);
return;
lib_ring_buffer_align_ctx(ctx, ctx->largest_align);
return;
@@
-236,7
+236,7
@@
void lttng_write_event_header_slow(const struct lttng_ust_lib_ring_buffer_config
uint32_t event_id)
{
struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
uint32_t event_id)
{
struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
- struct lttng_
event *event = ctx->priv
;
+ struct lttng_
stack_ctx *lttng_ctx = ctx->priv2
;
switch (lttng_chan->header_type) {
case 1: /* compact */
switch (lttng_chan->header_type) {
case 1: /* compact */
@@
-293,8
+293,8
@@
void lttng_write_event_header_slow(const struct lttng_ust_lib_ring_buffer_config
default:
WARN_ON_ONCE(1);
}
default:
WARN_ON_ONCE(1);
}
- ctx_record(ctx, lttng_chan, lttng_c
han->
ctx);
- ctx_record(ctx, lttng_chan,
event->
ctx);
+ ctx_record(ctx, lttng_chan, lttng_c
tx->chan_
ctx);
+ ctx_record(ctx, lttng_chan,
lttng_ctx->event_
ctx);
lib_ring_buffer_align_ctx(ctx, ctx->largest_align);
}
lib_ring_buffer_align_ctx(ctx, ctx->largest_align);
}
@@
-339,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;
@@
-366,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 */
@@
-415,6
+421,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;
}
@@
-426,6
+434,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;
}
@@
-437,6
+447,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;
}
@@
-448,6
+460,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;
}
@@
-459,6
+473,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;
}
@@
-470,6
+486,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;
}
@@
-543,7
+561,7
@@
struct lttng_channel *_channel_create(const char *name,
unsigned int read_timer_interval,
unsigned char *uuid,
uint32_t chan_id,
unsigned int read_timer_interval,
unsigned char *uuid,
uint32_t chan_id,
- const
char *shm_path
)
+ const
int *stream_fds, int nr_stream_fds
)
{
struct lttng_channel chan_priv_init;
struct lttng_ust_shm_handle *handle;
{
struct lttng_channel chan_priv_init;
struct lttng_ust_shm_handle *handle;
@@
-559,7
+577,7
@@
struct lttng_channel *_channel_create(const char *name,
&chan_priv_init,
buf_addr, subbuf_size, num_subbuf,
switch_timer_interval, read_timer_interval,
&chan_priv_init,
buf_addr, subbuf_size, num_subbuf,
switch_timer_interval, read_timer_interval,
- s
hm_path
);
+ s
tream_fds, nr_stream_fds
);
if (!handle)
return NULL;
lttng_chan = priv;
if (!handle)
return NULL;
lttng_chan = priv;
This page took
0.025118 seconds
and
4
git commands to generate.