* MA 02111-1307, USA.
*/
+#include <babeltrace/ctf/events.h>
#include <stdlib.h>
#include <string.h>
#include "common.h"
return cpu_id;
}
+uint64_t get_context_tid(struct bt_ctf_event *event)
+{
+ struct definition *scope;
+ uint64_t tid;
+
+ scope = bt_ctf_get_top_level_scope(event, BT_STREAM_EVENT_CONTEXT);
+ tid = bt_ctf_get_int64(bt_ctf_get_field(event,
+ scope, "_tid"));
+ if (bt_ctf_field_get_error()) {
+ fprintf(stderr, "Missing tid context info\n");
+ return -1ULL;
+ }
+
+ return tid;
+}
+
+uint64_t get_context_pid(struct bt_ctf_event *event)
+{
+ struct definition *scope;
+ uint64_t pid;
+
+ scope = bt_ctf_get_top_level_scope(event, BT_STREAM_EVENT_CONTEXT);
+ pid = bt_ctf_get_int64(bt_ctf_get_field(event,
+ scope, "_pid"));
+ if (bt_ctf_field_get_error()) {
+ fprintf(stderr, "Missing pid context info\n");
+ return -1ULL;
+ }
+
+ return pid;
+}
+
+uint64_t get_context_ppid(struct bt_ctf_event *event)
+{
+ struct definition *scope;
+ uint64_t ppid;
+
+ scope = bt_ctf_get_top_level_scope(event, BT_STREAM_EVENT_CONTEXT);
+ ppid = bt_ctf_get_int64(bt_ctf_get_field(event,
+ scope, "_ppid"));
+ if (bt_ctf_field_get_error()) {
+ fprintf(stderr, "Missing ppid context info\n");
+ return -1ULL;
+ }
+
+ return ppid;
+}
+
+char *get_context_comm(struct bt_ctf_event *event)
+{
+ struct definition *scope;
+ char *comm;
+
+ scope = bt_ctf_get_top_level_scope(event, BT_STREAM_EVENT_CONTEXT);
+ comm = bt_ctf_get_char_array(bt_ctf_get_field(event,
+ scope, "_procname"));
+ if (bt_ctf_field_get_error()) {
+ fprintf(stderr, "Missing comm context info\n");
+ return NULL;
+ }
+
+ return comm;
+}
+
struct processtop *find_process_tid(struct lttngtop *ctx, int tid, char *comm)
{
gint i;
if (timestamp == -1ULL)
goto error;
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_EVENT_CONTEXT);
- comm = bt_ctf_get_char_array(bt_ctf_get_field(call_data,
- scope, "_procname"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing procname context info\n");
- goto error;
- }
-
- tid = bt_ctf_get_int64(bt_ctf_get_field(call_data,
- scope, "_tid"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing tid context info\n");
- goto error;
- }
+ comm = get_context_comm(call_data);
+ tid = get_context_tid(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
if (timestamp == -1ULL)
goto error;
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_EVENT_CONTEXT);
- comm = bt_ctf_get_char_array(bt_ctf_get_field(call_data,
- scope, "_procname"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing procname context info\n");
- goto error;
- }
-
- tid = bt_ctf_get_int64(bt_ctf_get_field(call_data,
- scope, "_tid"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing tid context info\n");
- goto error;
- }
-
+ comm = get_context_comm(call_data);
+ tid = get_context_tid(call_data);
cpu_id = get_cpu_id(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
if (timestamp == -1ULL)
goto error;
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_EVENT_CONTEXT);
- comm = bt_ctf_get_char_array(bt_ctf_get_field(call_data,
- scope, "_procname"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing procname context info\n");
- goto error;
- }
-
- tid = bt_ctf_get_int64(bt_ctf_get_field(call_data,
- scope, "_tid"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing tid context info\n");
- goto error;
- }
-
+ comm = get_context_comm(call_data);
+ tid = get_context_tid(call_data);
cpu_id = get_cpu_id(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
if (timestamp == -1ULL)
goto error;
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_EVENT_CONTEXT);
- comm = bt_ctf_get_char_array(bt_ctf_get_field(call_data,
- scope, "_procname"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing procname context info\n");
- goto error;
- }
-
- tid = bt_ctf_get_int64(bt_ctf_get_field(call_data,
- scope, "_tid"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing tid context info\n");
- goto error;
- }
-
+ comm = get_context_comm(call_data);
+ tid = get_context_tid(call_data);
cpu_id = get_cpu_id(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
if (timestamp == -1ULL)
goto error;
- scope = bt_ctf_get_top_level_scope(call_data,
- BT_STREAM_EVENT_CONTEXT);
- comm = bt_ctf_get_char_array(bt_ctf_get_field(call_data,
- scope, "_procname"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing procname context info\n");
- goto error;
- }
-
- tid = bt_ctf_get_int64(bt_ctf_get_field(call_data,
- scope, "_tid"));
- if (bt_ctf_field_get_error()) {
- fprintf(stderr, "Missing tid context info\n");
- goto error;
- }
+ comm = get_context_comm(call_data);
+ tid = get_context_tid(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
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;
}