- get_absolute_pathname(pathname, abs_path);
- //establish the pathname to different directories
- if(abs_path[strlen(abs_path)-1] == '/')has_slash = TRUE;
- strcpy(eventdefs,abs_path);
- if(!has_slash)strcat(eventdefs,"/");
- strcat(eventdefs,"eventdefs/");
-
- strcpy(info,abs_path);
- if(!has_slash)strcat(info,"/");
- strcat(info,"info/");
-
- strcpy(control,abs_path);
- if(!has_slash)strcat(control,"/");
- strcat(control,"control/");
-
- strcpy(cpu,abs_path);
- if(!has_slash)strcat(cpu,"/");
- strcat(cpu,"cpu/");
-
- //new trace
- sys_description = g_new(LttSystemDescription, 1);
- t = g_new(LttTrace, 1);
- t->pathname = g_strdup(abs_path);
- t->facility_number = 0;
- t->control_tracefile_number = 0;
- t->per_cpu_tracefile_number = 0;
- t->system_description = sys_description;
- t->control_tracefiles = g_ptr_array_new();
- t->per_cpu_tracefiles = g_ptr_array_new();
- t->facilities = g_ptr_array_new();
- getDataEndianType(&(t->my_arch_size), &(t->my_arch_endian));
-
- //get system description
- strcpy(tmp,info);
- strcat(tmp,"system.xml");
- if(getSystemInfo(sys_description, tmp)) {
- g_ptr_array_free(t->facilities, TRUE);
- g_ptr_array_free(t->per_cpu_tracefiles, TRUE);
- g_ptr_array_free(t->control_tracefiles, TRUE);
- g_free(sys_description);
- g_free(t->pathname);
- g_free(t);
- return NULL;
- }
-
-
-
- //get facilities info
- if(getFacilityInfo(t,eventdefs)) {
- g_ptr_array_free(t->facilities, TRUE);
- g_ptr_array_free(t->per_cpu_tracefiles, TRUE);
- g_ptr_array_free(t->control_tracefiles, TRUE);
- g_free(sys_description);
- g_free(t->pathname);
- g_free(t);
- return NULL;
- }
-
- //get control tracefile info
- getControlFileInfo(t,control);
- /*
- if(getControlFileInfo(t,control)) {
- g_ptr_array_free(t->facilities, TRUE);
- g_ptr_array_free(t->per_cpu_tracefiles, TRUE);
- g_ptr_array_free(t->control_tracefiles, TRUE);
- g_free(sys_description);
- g_free(t->pathname);
- g_free(t);
- return NULL;
- }*/ // With fatal error
-
- //get cpu tracefile info
- if(getCpuFileInfo(t,cpu)) {
- g_ptr_array_free(t->facilities, TRUE);
- g_ptr_array_free(t->per_cpu_tracefiles, TRUE);
- g_ptr_array_free(t->control_tracefiles, TRUE);
- g_free(sys_description);
- g_free(t->pathname);
- g_free(t);
- return NULL;