projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add comm context
[lttng-modules.git]
/
ltt-events.h
diff --git
a/ltt-events.h
b/ltt-events.h
index 9baf660ded332a2570b32a34114bf322d4453e5e..2b6ef40a42978de5274db70e900b497144a50431 100644
(file)
--- a/
ltt-events.h
+++ b/
ltt-events.h
@@
-14,6
+14,9
@@
#include <linux/kprobes.h>
#include "ltt-debugfs-abi.h"
#include <linux/kprobes.h>
#include "ltt-debugfs-abi.h"
+#undef is_signed_type
+#define is_signed_type(type) (((type)(-1)) < 0)
+
struct ltt_channel;
struct ltt_session;
struct lib_ring_buffer_ctx;
struct ltt_channel;
struct ltt_session;
struct lib_ring_buffer_ctx;
@@
-115,9
+118,11
@@
struct lttng_event_field {
};
struct lttng_ctx_field {
};
struct lttng_ctx_field {
- const char *name;
- struct lttng_type type;
- void *callback;
+ struct lttng_event_field event_field;
+ size_t (*get_size)(size_t offset);
+ void (*record)(struct lttng_ctx_field *field,
+ struct lib_ring_buffer_ctx *ctx,
+ struct ltt_channel *chan);
union {
struct {
struct perf_event **e; /* per-cpu array */
union {
struct {
struct perf_event **e; /* per-cpu array */
@@
-125,6
+130,7
@@
struct lttng_ctx_field {
struct perf_event_attr *attr;
} perf_counter;
} u;
struct perf_event_attr *attr;
} perf_counter;
} u;
+ void (*destroy)(struct lttng_ctx_field *field);
};
struct lttng_ctx {
};
struct lttng_ctx {
@@
-157,6
+163,7
@@
struct ltt_event {
struct ltt_channel *chan;
const struct lttng_event_desc *desc;
void *filter;
struct ltt_channel *chan;
const struct lttng_event_desc *desc;
void *filter;
+ struct lttng_ctx *ctx;
enum lttng_kernel_instrumentation instrumentation;
union {
struct {
enum lttng_kernel_instrumentation instrumentation;
union {
struct {
@@
-198,6
+205,7
@@
struct ltt_channel_ops {
struct ltt_channel {
unsigned int id;
struct channel *chan; /* Channel buffers */
struct ltt_channel {
unsigned int id;
struct channel *chan; /* Channel buffers */
+ struct lttng_ctx *ctx;
/* Event ID management */
struct ltt_session *session;
struct file *file; /* File associated to channel */
/* Event ID management */
struct ltt_session *session;
struct file *file; /* File associated to channel */
@@
-211,6
+219,7
@@
struct ltt_channel {
struct ltt_session {
int active; /* Is trace session active ? */
struct ltt_session {
int active; /* Is trace session active ? */
+ int been_active; /* Has trace session been active ? */
struct file *file; /* File associated to session */
struct ltt_channel *metadata; /* Metadata channel */
struct list_head chan; /* Channel list head */
struct file *file; /* File associated to session */
struct ltt_channel *metadata; /* Metadata channel */
struct list_head chan; /* Channel list head */
@@
-261,6
+270,10
@@
const struct lttng_event_desc *ltt_event_get(const char *name);
void ltt_event_put(const struct lttng_event_desc *desc);
int ltt_probes_init(void);
void ltt_probes_exit(void);
void ltt_event_put(const struct lttng_event_desc *desc);
int ltt_probes_init(void);
void ltt_probes_exit(void);
+struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx);
+void lttng_destroy_context(struct lttng_ctx *ctx);
+int lttng_add_pid_to_ctx(struct lttng_ctx **ctx);
+int lttng_add_comm_to_ctx(struct lttng_ctx **ctx);
#ifdef CONFIG_KPROBES
int lttng_kprobes_register(const char *name,
#ifdef CONFIG_KPROBES
int lttng_kprobes_register(const char *name,
@@
-269,6
+282,7
@@
int lttng_kprobes_register(const char *name,
uint64_t addr,
struct ltt_event *event);
void lttng_kprobes_unregister(struct ltt_event *event);
uint64_t addr,
struct ltt_event *event);
void lttng_kprobes_unregister(struct ltt_event *event);
+void lttng_kprobes_destroy_private(struct ltt_event *event);
#else
static inline
int lttng_kprobes_register(const char *name,
#else
static inline
int lttng_kprobes_register(const char *name,
@@
-284,6
+298,11
@@
static inline
void lttng_kprobes_unregister(struct ltt_event *event)
{
}
void lttng_kprobes_unregister(struct ltt_event *event)
{
}
+
+static inline
+void lttng_kprobes_destroy_private(struct ltt_event *event)
+{
+}
#endif
#ifdef CONFIG_DYNAMIC_FTRACE
#endif
#ifdef CONFIG_DYNAMIC_FTRACE
@@
-291,6
+310,7
@@
int lttng_ftrace_register(const char *name,
const char *symbol_name,
struct ltt_event *event);
void lttng_ftrace_unregister(struct ltt_event *event);
const char *symbol_name,
struct ltt_event *event);
void lttng_ftrace_unregister(struct ltt_event *event);
+void lttng_ftrace_destroy_private(struct ltt_event *event);
#else
static inline
int lttng_ftrace_register(const char *name,
#else
static inline
int lttng_ftrace_register(const char *name,
@@
-304,5
+324,13
@@
static inline
void lttng_ftrace_unregister(struct ltt_event *event)
{
}
void lttng_ftrace_unregister(struct ltt_event *event)
{
}
+
+static inline
+void lttng_ftrace_destroy_private(struct ltt_event *event)
+{
+}
#endif
#endif
+
+extern const struct file_operations lttng_tracepoint_list_fops;
+
#endif /* _LTT_EVENTS_H */
#endif /* _LTT_EVENTS_H */
This page took
0.067265 seconds
and
4
git commands to generate.