projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: vmalloc wrapper on kernel < 2.6.38
[lttng-modules.git]
/
lttng-events.h
diff --git
a/lttng-events.h
b/lttng-events.h
index fe7628473c2afa7a7c55590379624160ebbbc0a9..17dd8d3a3c312ef35da53f4cbbdd4aba75d4a2f7 100644
(file)
--- a/
lttng-events.h
+++ b/
lttng-events.h
@@
-27,7
+27,9
@@
#include <linux/list.h>
#include <linux/kprobes.h>
#include <linux/kref.h>
#include <linux/list.h>
#include <linux/kprobes.h>
#include <linux/kref.h>
+#include <lttng-cpuhotplug.h>
#include <wrapper/uuid.h>
#include <wrapper/uuid.h>
+#include <lttng-tracer.h>
#include <lttng-abi.h>
#include <lttng-abi-old.h>
#include <lttng-abi.h>
#include <lttng-abi-old.h>
@@
-52,6
+54,7
@@
enum abstract_types {
atype_struct,
atype_array_compound, /* Array of compound types. */
atype_sequence_compound, /* Sequence of compound types. */
atype_struct,
atype_array_compound, /* Array of compound types. */
atype_sequence_compound, /* Sequence of compound types. */
+ atype_variant,
NR_ABSTRACT_TYPES,
};
NR_ABSTRACT_TYPES,
};
@@
-67,9
+70,17
@@
enum channel_type {
METADATA_CHANNEL,
};
METADATA_CHANNEL,
};
+struct lttng_enum_value {
+ unsigned long long value;
+ unsigned int signedness:1;
+};
+
struct lttng_enum_entry {
struct lttng_enum_entry {
-
unsigned long long start, end;
/* start and end are inclusive */
+
struct lttng_enum_value start, end;
/* start and end are inclusive */
const char *string;
const char *string;
+ struct {
+ unsigned int is_auto:1;
+ } options;
};
#define __type_integer(_type, _size, _alignment, _signedness, \
};
#define __type_integer(_type, _size, _alignment, _signedness, \
@@
-99,7
+110,8
@@
struct lttng_integer_type {
union _lttng_basic_type {
struct lttng_integer_type integer;
struct {
union _lttng_basic_type {
struct lttng_integer_type integer;
struct {
- const char *name;
+ const struct lttng_enum_desc *desc; /* Enumeration mapping */
+ struct lttng_integer_type container_type;
} enumeration;
struct {
enum lttng_string_encodings encoding;
} enumeration;
struct {
enum lttng_string_encodings encoding;
@@
-139,14
+151,18
@@
struct lttng_type {
struct lttng_type *elem_type;
const char *length_name;
} sequence_compound;
struct lttng_type *elem_type;
const char *length_name;
} sequence_compound;
+ struct {
+ const char *tag_name;
+ struct lttng_event_field *choices; /* Array of fields. */
+ uint32_t nr_choices;
+ } variant;
} u;
};
} u;
};
-struct lttng_enum {
+struct lttng_enum
_desc
{
const char *name;
const char *name;
- struct lttng_type container_type;
const struct lttng_enum_entry *entries;
const struct lttng_enum_entry *entries;
- unsigned int
len
;
+ unsigned int
nr_entries
;
};
/* Event field description */
};
/* Event field description */
@@
-169,8
+185,13
@@
union lttng_ctx_value {
* lttng_ctx_field because cpu hotplug needs fixed-location addresses.
*/
struct lttng_perf_counter_field {
* lttng_ctx_field because cpu hotplug needs fixed-location addresses.
*/
struct lttng_perf_counter_field {
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
+ struct lttng_cpuhp_node cpuhp_prepare;
+ struct lttng_cpuhp_node cpuhp_online;
+#else
struct notifier_block nb;
int hp_enable;
struct notifier_block nb;
int hp_enable;
+#endif
struct perf_event_attr *attr;
struct perf_event **e; /* per-cpu array */
};
struct perf_event_attr *attr;
struct perf_event **e; /* per-cpu array */
};
@@
-303,7
+324,7
@@
struct lttng_event {
};
enum lttng_enabler_type {
};
enum lttng_enabler_type {
- LTTNG_ENABLER_
WILDCARD
,
+ LTTNG_ENABLER_
STAR_GLOB
,
LTTNG_ENABLER_NAME,
};
LTTNG_ENABLER_NAME,
};
@@
-447,6
+468,14
@@
struct lttng_metadata_stream {
uint64_t version; /* Current version of the metadata cache */
};
uint64_t version; /* Current version of the metadata cache */
};
+#define LTTNG_DYNAMIC_LEN_STACK_SIZE 128
+
+struct lttng_dynamic_len_stack {
+ size_t stack[LTTNG_DYNAMIC_LEN_STACK_SIZE];
+ size_t offset;
+};
+
+DECLARE_PER_CPU(struct lttng_dynamic_len_stack, lttng_dynamic_len_stack);
/*
* struct lttng_pid_tracker declared in header due to deferencing of *v
/*
* struct lttng_pid_tracker declared in header due to deferencing of *v
@@
-513,6
+542,7
@@
int lttng_session_enable(struct lttng_session *session);
int lttng_session_disable(struct lttng_session *session);
void lttng_session_destroy(struct lttng_session *session);
int lttng_session_metadata_regenerate(struct lttng_session *session);
int lttng_session_disable(struct lttng_session *session);
void lttng_session_destroy(struct lttng_session *session);
int lttng_session_metadata_regenerate(struct lttng_session *session);
+int lttng_session_statedump(struct lttng_session *session);
void metadata_cache_destroy(struct kref *kref);
struct lttng_channel *lttng_channel_create(struct lttng_session *session,
void metadata_cache_destroy(struct kref *kref);
struct lttng_channel *lttng_channel_create(struct lttng_session *session,
@@
-628,6
+658,8
@@
int lttng_enabler_attach_bytecode(struct lttng_enabler *enabler,
void lttng_enabler_event_link_bytecode(struct lttng_event *event,
struct lttng_enabler *enabler);
void lttng_enabler_event_link_bytecode(struct lttng_event *event,
struct lttng_enabler *enabler);
+int lttng_probes_init(void);
+
extern struct lttng_ctx *lttng_static_ctx;
int lttng_context_init(void);
extern struct lttng_ctx *lttng_static_ctx;
int lttng_context_init(void);
@@
-675,6
+707,10
@@
int lttng_add_perf_counter_to_ctx(uint32_t type,
uint64_t config,
const char *name,
struct lttng_ctx **ctx);
uint64_t config,
const char *name,
struct lttng_ctx **ctx);
+int lttng_cpuhp_perf_counter_online(unsigned int cpu,
+ struct lttng_cpuhp_node *node);
+int lttng_cpuhp_perf_counter_dead(unsigned int cpu,
+ struct lttng_cpuhp_node *node);
#else
static inline
int lttng_add_perf_counter_to_ctx(uint32_t type,
#else
static inline
int lttng_add_perf_counter_to_ctx(uint32_t type,
@@
-684,6
+720,18
@@
int lttng_add_perf_counter_to_ctx(uint32_t type,
{
return -ENOSYS;
}
{
return -ENOSYS;
}
+static inline
+int lttng_cpuhp_perf_counter_online(unsigned int cpu,
+ struct lttng_cpuhp_node *node)
+{
+ return 0;
+}
+static inline
+int lttng_cpuhp_perf_counter_dead(unsigned int cpu,
+ struct lttng_cpuhp_node *node)
+{
+ return 0;
+}
#endif
int lttng_logger_init(void);
#endif
int lttng_logger_init(void);
@@
-762,7
+810,7
@@
int lttng_kretprobes_event_enable_state(struct lttng_event *event,
}
#endif
}
#endif
-#if
def CONFIG_DYNAMIC_FTRACE
+#if
defined(CONFIG_DYNAMIC_FTRACE) && !defined(LTTNG_FTRACE_MISSING_HEADER)
int lttng_ftrace_register(const char *name,
const char *symbol_name,
struct lttng_event *event);
int lttng_ftrace_register(const char *name,
const char *symbol_name,
struct lttng_event *event);
This page took
0.024369 seconds
and
4
git commands to generate.