#include <babeltrace/babeltrace.h>
#include <babeltrace/ctf/events.h>
#include <babeltrace/ctf/callbacks.h>
+#include <babeltrace/ctf/iterator.h>
#include <fcntl.h>
#include <pthread.h>
#include <popt.h>
}
}
-void extract_perf_counter_scope(struct bt_ctf_event *event,
- struct definition *scope,
+void extract_perf_counter_scope(const struct bt_ctf_event *event,
+ const struct definition *scope,
struct processtop *proc,
struct cputime *cpu)
{
for (i = 0; i < count; i++) {
const char *name = bt_ctf_field_name(list[i]);
- if (strncmp(name, "_perf_", 6) == 0) {
+ if (strncmp(name, "perf_", 5) == 0) {
int value = bt_ctf_get_uint64(list[i]);
if (bt_ctf_field_get_error())
continue;
return;
}
-void update_perf_counter(struct processtop *proc, struct bt_ctf_event *event)
+void update_perf_counter(struct processtop *proc, const struct bt_ctf_event *event)
{
struct cputime *cpu;
- struct definition *scope;
+ const struct definition *scope;
cpu = get_cpu(get_cpu_id(event));
sem_init(&pause_sem, 0, 1);
sem_init(&end_trace_sem, 0, 0);
+ reset_global_counters();
+ lttngtop.nbproc = 0;
+ lttngtop.nbthreads = 0;
+ lttngtop.nbfiles = 0;
+
lttngtop.process_table = g_ptr_array_new();
lttngtop.files_table = g_ptr_array_new();
lttngtop.cpu_table = g_ptr_array_new();
{
struct bt_ctf_iter *iter;
struct bt_iter_pos begin_pos;
- struct bt_ctf_event *event;
+ const struct bt_ctf_event *event;
int ret = 0;
begin_pos.type = BT_SEEK_BEGIN;
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sys_open"),
NULL, 0, handle_sys_open, NULL, NULL, NULL);
-
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sys_close"),
NULL, 0, handle_sys_close, NULL, NULL, NULL);
+ bt_ctf_iter_add_callback(iter,
+ g_quark_from_static_string(
+ "lttng_statedump_file_descriptor"),
+ NULL, 0, handle_statedump_file_descriptor,
+ NULL, NULL, NULL);
+
while ((event = bt_ctf_iter_read_event(iter)) != NULL) {
ret = bt_iter_next(bt_ctf_get_iter(iter));
if (ret < 0)
sem_wait(&end_trace_sem);
end_iter:
- bt_iter_destroy(bt_ctf_get_iter(iter));
+ bt_ctf_iter_destroy(iter);
}
/*