*/
void RING_BUFFER_MODE_TEMPLATE_ALLOC_TLS(void)
{
- asm volatile ("" : : "m" (URCU_TLS(private_ctx_stack)));
+ __asm__ __volatile__ ("" : : "m" (URCU_TLS(private_ctx_stack)));
}
static inline uint64_t lib_ring_buffer_clock_read(
*/
static void client_buffer_end(struct lttng_ust_ring_buffer *buf, uint64_t tsc,
unsigned int subbuf_idx, unsigned long data_size,
- struct lttng_ust_shm_handle *handle)
+ struct lttng_ust_shm_handle *handle,
+ const struct lttng_ust_ring_buffer_ctx *ctx)
{
struct lttng_ust_ring_buffer_channel *chan = shmp(handle, buf->backend.chan);
struct packet_header *header =
header->ctx.packet_size =
(uint64_t) LTTNG_UST_PAGE_ALIGN(data_size) * CHAR_BIT; /* in bits */
- records_lost += lib_ring_buffer_get_records_lost_full(&client_config, buf);
- records_lost += lib_ring_buffer_get_records_lost_wrap(&client_config, buf);
- records_lost += lib_ring_buffer_get_records_lost_big(&client_config, buf);
+ records_lost += lib_ring_buffer_get_records_lost_full(&client_config, ctx);
+ records_lost += lib_ring_buffer_get_records_lost_wrap(&client_config, ctx);
+ records_lost += lib_ring_buffer_get_records_lost_big(&client_config, ctx);
header->ctx.events_discarded = records_lost;
}
for_each_channel_cpu(cpu, rb_chan) {
int shm_fd, wait_fd, wakeup_fd;
uint64_t memory_map_size;
+ void *memory_map_addr;
buf = channel_get_ring_buffer(&client_config, rb_chan,
cpu, rb_chan->handle, &shm_fd, &wait_fd,
- &wakeup_fd, &memory_map_size);
+ &wakeup_fd, &memory_map_size, &memory_map_addr);
lib_ring_buffer_switch(&client_config, buf,
SWITCH_ACTIVE, rb_chan->handle);
}