#include <string.h>
#include "common.h"
+uint64_t get_cpu_id(struct bt_ctf_event *event)
+{
+ struct definition *scope;
+ uint64_t cpu_id;
+
+ 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");
+ return -1ULL;
+ }
+
+ return cpu_id;
+}
+
struct processtop *find_process_tid(struct lttngtop *ctx, int tid, char *comm)
{
gint i;
goto error;
}
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_PACKET_CONTEXT);
- cpu_id = bt_ctf_get_uint64(bt_ctf_get_field(call_data,
- scope, "cpu_id"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing cpu_id context info\n");
- goto error;
- }
+ cpu_id = get_cpu_id(call_data);
update_cputop_data(timestamp, cpu_id, prev_tid, next_tid,
prev_comm, next_comm);
}
int update_iostream_ret(struct lttngtop *ctx, int tid, char *comm,
- unsigned long timestamp, int cpu_id, int ret)
+ unsigned long timestamp, uint64_t cpu_id, int ret)
{
struct processtop *tmp;
struct files *tmpfile;
return err;
}
-struct syscalls *create_syscall_info(unsigned int type, unsigned int cpu_id,
+struct syscalls *create_syscall_info(unsigned int type, uint64_t cpu_id,
unsigned int tid, int fd)
{
struct syscalls *syscall_info;
unsigned long timestamp;
char *comm;
uint64_t ret, tid;
- int64_t cpu_id;
+ uint64_t cpu_id;
timestamp = bt_ctf_get_timestamp(call_data);
if (timestamp == -1ULL)
goto error;
}
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_PACKET_CONTEXT);
- cpu_id = bt_ctf_get_uint64(bt_ctf_get_field(call_data,
- scope, "cpu_id"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing cpu_id context info\n");
- goto error;
- }
+ cpu_id = get_cpu_id(call_data);
/*
* if we encounter an exit_syscall and
goto error;
}
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_PACKET_CONTEXT);
- cpu_id = bt_ctf_get_uint64(bt_ctf_get_field(call_data,
- scope, "cpu_id"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing cpu_id context info\n");
- goto error;
- }
+ cpu_id = get_cpu_id(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
goto error;
}
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_PACKET_CONTEXT);
- cpu_id = bt_ctf_get_uint64(bt_ctf_get_field(call_data,
- scope, "cpu_id"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing cpu_id context info\n");
- goto error;
- }
+ cpu_id = get_cpu_id(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
goto error;
}
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_PACKET_CONTEXT);
- cpu_id = bt_ctf_get_uint64(bt_ctf_get_field(call_data,
- scope, "cpu_id"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing cpu_id context info\n");
- goto error;
- }
+ cpu_id = get_cpu_id(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
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,