struct files *tmp_file;
struct processtop *parent;
int size;
+ int i;
size = proc->process_files_table->len;
parent = proc->threadparent;
if (parent)
insert_file(parent, fd);
if (size <= fd) {
- g_ptr_array_set_size(proc->process_files_table, fd);
+ /* Add NULL file structures for undefined FDs */
+ for (i = size; i < fd; i++) {
+ g_ptr_array_add(proc->process_files_table, NULL);
+ }
g_ptr_array_add(proc->process_files_table, file);
} else {
tmp_file = g_ptr_array_index(proc->process_files_table, fd);
return new_history;
}
-enum bt_cb_ret handle_exit_syscall(struct ctf_event_definition *call_data,
+enum bt_cb_ret handle_exit_syscall(struct bt_ctf_event *call_data,
void *private_data)
{
const struct definition *scope;
}
-enum bt_cb_ret handle_sys_write(struct ctf_event_definition *call_data,
+enum bt_cb_ret handle_sys_write(struct bt_ctf_event *call_data,
void *private_data)
{
const struct definition *scope;
struct processtop *tmp;
unsigned long timestamp;
uint64_t cpu_id;
- int64_t tid, pid;
+ int64_t tid;
+ char *procname;
int fd;
timestamp = bt_ctf_get_timestamp(call_data);
tid = get_context_tid(call_data);
cpu_id = get_cpu_id(call_data);
- pid = get_context_pid(call_data);
+ procname = get_context_comm(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
goto error;
}
- tmp = get_proc_pid(<tngtop, tid, pid, timestamp);
+ tmp = get_proc(<tngtop, tid, procname, timestamp);
tmp->syscall_info = create_syscall_info(__NR_write, cpu_id, tid, fd);
insert_file(tmp, fd);
return BT_CB_ERROR_STOP;
}
-enum bt_cb_ret handle_sys_read(struct ctf_event_definition *call_data,
+enum bt_cb_ret handle_sys_read(struct bt_ctf_event *call_data,
void *private_data)
{
struct processtop *tmp;
const struct definition *scope;
unsigned long timestamp;
uint64_t cpu_id;
- int64_t tid, pid;
+ int64_t tid;
+ char *procname;
int fd;
timestamp = bt_ctf_get_timestamp(call_data);
tid = get_context_tid(call_data);
cpu_id = get_cpu_id(call_data);
- pid = get_context_pid(call_data);
+ procname = get_context_comm(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
goto error;
}
- tmp = get_proc_pid(<tngtop, tid, pid, timestamp);
+ tmp = get_proc(<tngtop, tid, procname, timestamp);
tmp->syscall_info = create_syscall_info(__NR_read, cpu_id, tid, fd);
insert_file(tmp, fd);
}
-enum bt_cb_ret handle_sys_open(struct ctf_event_definition *call_data,
+enum bt_cb_ret handle_sys_open(struct bt_ctf_event *call_data,
void *private_data)
{
const struct definition *scope;
unsigned long timestamp;
uint64_t cpu_id;
- int64_t tid, pid;
+ int64_t tid;
+ char *procname;
char *file;
timestamp = bt_ctf_get_timestamp(call_data);
tid = get_context_tid(call_data);
cpu_id = get_cpu_id(call_data);
- pid = get_context_pid(call_data);
+ procname = get_context_comm(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
goto error;
}
- tmp = get_proc_pid(<tngtop, tid, pid, timestamp);
+ tmp = get_proc(<tngtop, tid, procname, timestamp);
tmp->syscall_info = create_syscall_info(__NR_open, cpu_id, tid, -1);
tmp->files_history = create_file(tmp->files_history, file);
}
-enum bt_cb_ret handle_sys_close(struct ctf_event_definition *call_data,
+enum bt_cb_ret handle_sys_close(struct bt_ctf_event *call_data,
void *private_data)
{
const struct definition *scope;
- unsigned long timestamp;
- int64_t tid, pid;
struct processtop *tmp;
+ unsigned long timestamp;
+ int64_t tid;
+ char *procname;
int fd;
timestamp = bt_ctf_get_timestamp(call_data);
tid = get_context_tid(call_data);
- pid = get_context_pid(call_data);
+ procname = get_context_comm(call_data);
scope = bt_ctf_get_top_level_scope(call_data,
BT_EVENT_FIELDS);
goto error;
}
- tmp = get_proc_pid(<tngtop, tid, pid, timestamp);
+ tmp = get_proc(<tngtop, tid, procname, timestamp);
close_file(tmp, fd);
return BT_CB_ERROR_STOP;
}
-enum bt_cb_ret handle_statedump_file_descriptor(struct ctf_event_definition *call_data,
+enum bt_cb_ret handle_statedump_file_descriptor(struct bt_ctf_event *call_data,
void *private_data)
{
const struct definition *scope;