void update_perf_counter(struct processtop *proc, struct bt_ctf_event *event)
{
- struct definition *scope;
- uint64_t cpu_id;
struct cputime *cpu;
+ struct definition *scope;
- scope = bt_ctf_get_top_level_scope(event, BT_STREAM_PACKET_CONTEXT);
- cpu_id = bt_ctf_get_uint64(bt_ctf_get_field(event, scope, "cpu_id"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "[error] get cpu_id\n");
- goto end;
- }
- cpu = get_cpu(cpu_id);
+ cpu = get_cpu(get_cpu_id(event));
scope = bt_ctf_get_top_level_scope(event, BT_STREAM_EVENT_CONTEXT);
extract_perf_counter_scope(event, scope, proc, cpu);
scope = bt_ctf_get_top_level_scope(event, BT_EVENT_CONTEXT);
extract_perf_counter_scope(event, scope, proc, cpu);
-
-end:
- return;
}
enum bt_cb_ret fix_process_table(struct bt_ctf_event *call_data,
int pid, tid, ppid;
char *comm;
struct processtop *parent, *child;
- struct definition *scope;
unsigned long timestamp;
/* FIXME : display nice error when missing context pid, tid, ppid and comm */
if (timestamp == -1ULL)
goto error;
- scope = bt_ctf_get_top_level_scope(call_data, BT_STREAM_EVENT_CONTEXT);
-
- pid = bt_ctf_get_int64(bt_ctf_get_field(call_data, scope, "_pid"));
- if (bt_ctf_field_get_error()) {
+ pid = get_context_pid(call_data);
+ if (pid == -1ULL) {
// fprintf(stderr, "Missing pid context info\n");
goto error;
}
- tid = bt_ctf_get_int64(bt_ctf_get_field(call_data, scope, "_tid"));
- if (bt_ctf_field_get_error()) {
+ tid = get_context_tid(call_data);
+ if (tid == -1ULL) {
// fprintf(stderr, "Missing tid context info\n");
goto error;
}
- ppid = bt_ctf_get_int64(bt_ctf_get_field(call_data, scope, "_ppid"));
- if (bt_ctf_field_get_error()) {
+ ppid = get_context_ppid(call_data);
+ if (ppid == -1ULL) {
// fprintf(stderr, "Missing ppid context info\n");
goto error;
}
- comm = bt_ctf_get_char_array(bt_ctf_get_field(call_data, scope, "_procname"));
- if (bt_ctf_field_get_error()) {
+ comm = get_context_comm(call_data);
+ if (!comm) {
// fprintf(stderr, "Missing procname context info\n");
goto error;
}
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sys_read"),
NULL, 0, handle_sys_read, NULL, NULL, NULL);
+ 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);
while ((event = bt_ctf_iter_read_event(iter)) != NULL) {
ret = bt_iter_next(bt_ctf_get_iter(iter));
if (ret < 0)