extern size_t ltt_serialize_data(struct ust_buffer *buf, size_t buf_offset,
struct ltt_serialize_closure *closure,
void *serialize_private,
- int *largest_align, const char *fmt, va_list *args);
+ unsigned int stack_pos_ctx, int *largest_align,
+ const char *fmt, va_list *args);
struct ltt_probe_private_data {
struct ust_trace *trace; /*
LTT_CHANNEL_UST,
};
+struct chan_info_struct {
+ const char *name;
+ unsigned int def_subbufsize;
+ unsigned int def_subbufcount;
+};
+
struct ltt_active_marker {
- struct list_head node; /* active markers list */
+ struct cds_list_head node; /* active markers list */
const char *channel;
const char *name;
const char *format;
struct ltt_transport {
char *name;
struct module *owner;
- struct list_head node;
+ struct cds_list_head node;
struct ltt_trace_ops ops;
};
/* Per-trace information - each trace/flight recorder represented by one */
struct ust_trace {
/* First 32 bytes cache-hot cacheline */
- struct list_head list;
+ struct cds_list_head list;
struct ltt_trace_ops *ops;
int active;
/* Second 32 bytes cache-hot cacheline */
struct {
struct dentry *trace_root;
} dentry;
- struct kref kref; /* Each channel has a kref of the trace struct */
+ struct urcu_ref urcu_ref; /* Each channel has a urcu_ref of the trace struct */
struct ltt_transport *transport;
- struct kref ltt_transport_kref;
+ struct urcu_ref ltt_transport_urcu_ref;
char trace_name[NAME_MAX];
} ____cacheline_aligned;
extern void ltt_core_unregister(void);
-extern void ltt_release_trace(struct kref *kref);
-extern void ltt_release_transport(struct kref *kref);
+extern void ltt_release_trace(struct urcu_ref *urcu_ref);
+extern void ltt_release_transport(struct urcu_ref *urcu_ref);
extern void ltt_dump_marker_state(struct ust_trace *trace);