struct lttng_ctx_field *fields;
unsigned int nr_fields;
unsigned int allocated_fields;
+ size_t largest_align; /* in bytes */
};
struct lttng_event_desc {
struct lttng_transport *transport;
struct lttng_event **sc_table; /* for syscall tracing */
struct lttng_event **compat_sc_table;
+ struct lttng_event **sc_exit_table; /* for syscall exit tracing */
+ struct lttng_event **compat_sc_exit_table;
struct lttng_event *sc_unknown; /* for unknown syscalls */
struct lttng_event *sc_compat_unknown;
- struct lttng_event *sc_exit; /* for syscall exit */
+ struct lttng_event *sc_exit_unknown;
+ struct lttng_event *compat_sc_exit_unknown;
struct lttng_syscall_filter *sc_filter;
int header_type; /* 0: unset, 1: compact, 2: large */
enum channel_type channel_type;
wait_queue_head_t read_wait; /* Reader buffer-level wait queue */
struct list_head list; /* Stream list */
struct lttng_transport *transport;
- struct mutex lock;
};
struct lttng_session {
struct kref refcount; /* Metadata cache usage */
struct list_head metadata_stream; /* Metadata stream list */
uuid_le uuid; /* Trace session unique ID (copy) */
+ struct mutex lock;
};
struct lttng_session *lttng_session_create(void);
const char *name);
int lttng_syscall_filter_disable(struct lttng_channel *chan,
const char *name);
+long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ struct lttng_kernel_syscall_mask __user *usyscall_mask);
+int lttng_abi_syscall_list(void);
#else
static inline int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
{
return 0;
}
+static inline
int lttng_syscall_filter_enable(struct lttng_channel *chan,
const char *name)
{
return -ENOSYS;
}
+static inline
int lttng_syscall_filter_disable(struct lttng_channel *chan,
const char *name)
{
return -ENOSYS;
}
+
+static inline
+long lttng_channel_syscall_mask(struct lttng_channel *channel,
+ struct lttng_kernel_syscall_mask __user *usyscall_mask)
+{
+ return -ENOSYS;
+}
+
+static inline
+int lttng_abi_syscall_list(void)
+{
+ return -ENOSYS;
+}
#endif
struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx);
+void lttng_context_update(struct lttng_ctx *ctx);
int lttng_find_context(struct lttng_ctx *ctx, const char *name);
void lttng_remove_context_field(struct lttng_ctx **ctx,
struct lttng_ctx_field *field);
int lttng_calibrate(struct lttng_kernel_calibrate *calibrate);
extern const struct file_operations lttng_tracepoint_list_fops;
+extern const struct file_operations lttng_syscall_list_fops;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
#define TRACEPOINT_HAS_DATA_ARG