#include <errno.h>
#include "lttng/ust-tracer.h"
-#include "lttng/usterr-signal-safe.h"
-#include "lttng/kcompat/kcompat.h"
+#include <stdint.h>
+#include <stddef.h>
+#include <urcu/arch.h>
+#include <string.h>
#include "lttng/align.h"
struct lttng_ust_lib_ring_buffer;
/* Mandatory callbacks */
/* A static inline version is also required for fast path */
- u64 (*ring_buffer_clock_read) (struct channel *chan);
+ uint64_t (*ring_buffer_clock_read) (struct channel *chan);
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,
/* Slow path only, at subbuffer switch */
size_t (*subbuffer_header_size) (void);
- void (*buffer_begin) (struct lttng_ust_lib_ring_buffer *buf, u64 tsc,
+ void (*buffer_begin) (struct lttng_ust_lib_ring_buffer *buf, uint64_t tsc,
unsigned int subbuf_idx,
struct lttng_ust_shm_handle *handle);
- void (*buffer_end) (struct lttng_ust_lib_ring_buffer *buf, u64 tsc,
+ void (*buffer_end) (struct lttng_ust_lib_ring_buffer *buf, uint64_t tsc,
unsigned int subbuf_idx, unsigned long data_size,
struct lttng_ust_shm_handle *handle);
void (*record_get) (const struct lttng_ust_lib_ring_buffer_config *config,
struct channel *chan, struct lttng_ust_lib_ring_buffer *buf,
size_t offset, size_t *header_len,
- size_t *payload_len, u64 *timestamp,
+ size_t *payload_len, uint64_t *timestamp,
struct lttng_ust_shm_handle *handle);
};
* RING_BUFFER_WAKEUP_NONE does not perform any wakeup whatsoever. The client
* has the responsibility to perform wakeups.
*/
+#define LTTNG_UST_RING_BUFFER_CONFIG_PADDING 32
struct lttng_ust_lib_ring_buffer_config {
enum {
RING_BUFFER_ALLOC_PER_CPU,
* callbacks and update the cb pointers.
*/
int client_type;
+ char padding[LTTNG_UST_RING_BUFFER_CONFIG_PADDING];
};
/*
* lib_ring_buffer_try_discard_reserve(), lib_ring_buffer_align_ctx() and
* lib_ring_buffer_write().
*/
+#define LTTNG_UST_RING_BUFFER_CTX_PADDING 24
struct lttng_ust_lib_ring_buffer_ctx {
/* input received by lib_ring_buffer_reserve(), saved here. */
struct channel *chan; /* channel */
* prior to record header alignment
* padding.
*/
- u64 tsc; /* time-stamp counter value */
+ uint64_t tsc; /* time-stamp counter value */
unsigned int rflags; /* reservation flags */
+ char padding[LTTNG_UST_RING_BUFFER_CTX_PADDING];
};
/**
ctx->cpu = cpu;
ctx->rflags = 0;
ctx->handle = handle;
+ memset(ctx->padding, 0, LTTNG_UST_RING_BUFFER_CTX_PADDING);
}
/*
return 0;
}
-#include <lttng/vatomic.h>
-
#endif /* _LINUX_RING_BUFFER_CONFIG_H */