#include <linux/limits.h>
#include <errno.h>
+#include <ust/kcompat/kcompat.h>
+#include <ust/core.h>
-#include <ust/kernelcompat.h>
-#include <kcompat/kref.h>
+#define _LGPL_SOURCE
+#include <urcu/list.h>
+#include <urcu/urcu_ref.h>
#define EVENTS_PER_CHANNEL 65536
#define MAX_CPUS 32
int *buf_struct_shmids;
struct ust_buffer **buf;
int overwrite:1;
+ /* whether collection is requested upon trace start */
+ int request_collection:1;
int active:1;
unsigned int n_subbufs_order;
unsigned long commit_count_mask; /*
*/
/* End of first 32 bytes cacheline */
- struct kref kref; /* Channel transport reference count */
+ struct urcu_ref urcu_ref; /* Channel transport reference count */
size_t subbuf_size;
int subbuf_size_order;
unsigned int subbuf_cnt;
u32 version;
size_t alloc_size;
- struct list_head list;
+ struct cds_list_head list;
} ____cacheline_aligned;
struct ltt_channel_setting {
unsigned int subbuf_size;
unsigned int subbuf_cnt;
- struct kref kref; /* Number of references to structure content */
- struct list_head list;
+ struct urcu_ref urcu_ref; /* Number of references to structure content */
+ struct cds_list_head list;
unsigned int index; /* index of channel in trace channel array */
u16 free_event_id; /* Next event ID to allocate */
char name[PATH_MAX];
extern int ltt_channels_get_index_from_name(const char *name);
extern struct ust_channel *ltt_channels_trace_alloc(unsigned int *nr_channels,
int overwrite,
+ int request_collection,
int active);
extern void ltt_channels_trace_free(struct ust_channel *channels);
extern int _ltt_channels_get_event_id(const char *channel, const char *name);
extern int ltt_channels_get_event_id(const char *channel, const char *name);
+extern int ust_channels_overwrite_by_default;
+extern int ust_channels_request_collection_by_default;
+
#endif /* UST_CHANNELS_H */