projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
syscall listing: show syscall ID
[lttng-modules.git]
/
lttng-events.h
diff --git
a/lttng-events.h
b/lttng-events.h
index aeb2a6b25631242f76b81cf7ffb698a93ae9cee3..92a61789af6a15e320147ebd37683759e59dc53c 100644
(file)
--- a/
lttng-events.h
+++ b/
lttng-events.h
@@
-236,6
+236,10
@@
struct lttng_channel_ops {
const void *src, size_t len);
void (*event_memset)(struct lib_ring_buffer_ctx *ctx,
int c, size_t len);
const void *src, size_t len);
void (*event_memset)(struct lib_ring_buffer_ctx *ctx,
int c, size_t len);
+ void (*event_strcpy)(struct lib_ring_buffer_ctx *ctx, const char *src,
+ size_t len);
+ void (*event_strcpy_from_user)(struct lib_ring_buffer_ctx *ctx,
+ const char __user *src, size_t len);
/*
* packet_avail_size returns the available size in the current
* packet. Note that the size returned is only a hint, since it
/*
* packet_avail_size returns the available size in the current
* packet. Note that the size returned is only a hint, since it
@@
-276,6
+280,8
@@
struct lttng_transport {
struct lttng_channel_ops ops;
};
struct lttng_channel_ops ops;
};
+struct lttng_syscall_filter;
+
struct lttng_channel {
unsigned int id;
struct channel *chan; /* Channel buffers */
struct lttng_channel {
unsigned int id;
struct channel *chan; /* Channel buffers */
@@
-290,12
+296,19
@@
struct lttng_channel {
struct lttng_transport *transport;
struct lttng_event **sc_table; /* for syscall tracing */
struct lttng_event **compat_sc_table;
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_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;
int header_type; /* 0: unset, 1: compact, 2: large */
enum channel_type channel_type;
- unsigned int metadata_dumped:1;
+ unsigned int metadata_dumped:1,
+ sys_enter_registered:1,
+ sys_exit_registered:1,
+ syscall_all:1;
};
struct lttng_metadata_stream {
};
struct lttng_metadata_stream {
@@
-307,6
+320,7
@@
struct lttng_metadata_stream {
wait_queue_head_t read_wait; /* Reader buffer-level wait queue */
struct list_head list; /* Stream list */
struct lttng_transport *transport;
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 lttng_session {
@@
-328,6
+342,7
@@
struct lttng_metadata_cache {
unsigned int metadata_written; /* Number of bytes written in metadata cache */
struct kref refcount; /* Metadata cache usage */
struct list_head metadata_stream; /* Metadata stream list */
unsigned int metadata_written; /* Number of bytes written in metadata cache */
struct kref refcount; /* Metadata cache usage */
struct list_head metadata_stream; /* Metadata stream list */
+ uuid_le uuid; /* Trace session unique ID (copy) */
};
struct lttng_session *lttng_session_create(void);
};
struct lttng_session *lttng_session_create(void);
@@
-386,6
+401,10
@@
int lttng_metadata_output_channel(struct lttng_metadata_stream *stream,
#if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS)
int lttng_syscalls_register(struct lttng_channel *chan, void *filter);
int lttng_syscalls_unregister(struct lttng_channel *chan);
#if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS)
int lttng_syscalls_register(struct lttng_channel *chan, void *filter);
int lttng_syscalls_unregister(struct lttng_channel *chan);
+int lttng_syscall_filter_enable(struct lttng_channel *chan,
+ const char *name);
+int lttng_syscall_filter_disable(struct lttng_channel *chan,
+ const char *name);
#else
static inline int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
{
#else
static inline int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
{
@@
-396,6
+415,18
@@
static inline int lttng_syscalls_unregister(struct lttng_channel *chan)
{
return 0;
}
{
return 0;
}
+
+int lttng_syscall_filter_enable(struct lttng_channel *chan,
+ const char *name)
+{
+ return -ENOSYS;
+}
+
+int lttng_syscall_filter_disable(struct lttng_channel *chan,
+ const char *name)
+{
+ return -ENOSYS;
+}
#endif
struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx);
#endif
struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx);
@@
-525,6
+556,7
@@
void lttng_ftrace_destroy_private(struct lttng_event *event)
int lttng_calibrate(struct lttng_kernel_calibrate *calibrate);
extern const struct file_operations lttng_tracepoint_list_fops;
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
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
#define TRACEPOINT_HAS_DATA_ARG
This page took
0.024324 seconds
and
4
git commands to generate.