12 files changed:
unsigned long long int getSize(parse_file_t *in)
{
char *token, *token2;
unsigned long long int getSize(parse_file_t *in)
{
char *token, *token2;
- unsigned long long int ret;
+ unsigned long long int ret;
sequence_t * unnamed_types, table_t * named_types)
{
char * token;
sequence_t * unnamed_types, table_t * named_types)
{
char * token;
t->fmt = NULL;
t->size = 0;
t->fmt = NULL;
t->size = 0;
void getEventAttributes(parse_file_t *in, event_t *ev)
{
char * token;
void getEventAttributes(parse_file_t *in, event_t *ev)
{
char * token;
ev->name = NULL;
ev->per_trace = 0;
ev->name = NULL;
ev->per_trace = 0;
void getFacilityAttributes(parse_file_t *in, facility_t *fac)
{
char * token;
void getFacilityAttributes(parse_file_t *in, facility_t *fac)
{
char * token;
fac->name = NULL;
fac->arch = NULL;
fac->name = NULL;
fac->arch = NULL;
void getFieldAttributes(parse_file_t *in, field_t *f)
{
char * token;
void getFieldAttributes(parse_file_t *in, field_t *f)
{
char * token;
{
char * token;
char *name = NULL;
{
char * token;
char *name = NULL;
while(1) {
token = getToken(in);
while(1) {
token = getToken(in);
char * getDescription(parse_file_t *in)
{
long int pos;
char * getDescription(parse_file_t *in)
{
long int pos;
- char * token, car, *str;
+ char * token, *str;
+ int car;
-char seekNextChar(parse_file_t *in)
+int seekNextChar(parse_file_t *in)
while((car = getc(in->fp)) != EOF) {
if(!isspace(car)){
ungetc(car,in->fp);
while((car = getc(in->fp)) != EOF) {
if(!isspace(car)){
ungetc(car,in->fp);
char *getToken(parse_file_t * in)
{
FILE *fp = in->fp;
char *getToken(parse_file_t * in)
{
FILE *fp = in->fp;
int pos = 0, escaped;
if(in->unget == 1) {
int pos = 0, escaped;
if(in->unget == 1) {
void skipComment(parse_file_t * in)
{
void skipComment(parse_file_t * in)
{
while((car = getc(in->fp)) != EOF) {
if(car == '\n') in->lineno++;
else if(car == '*') {
while((car = getc(in->fp)) != EOF) {
if(car == '\n') in->lineno++;
else if(car == '*') {
void skipEOL(parse_file_t * in)
{
void skipEOL(parse_file_t * in)
{
while((car = getc(in->fp)) != EOF) {
if(car == '\n') {
ungetc(car,in->fp);
while((car = getc(in->fp)) != EOF) {
if(car == '\n') {
ungetc(car,in->fp);
char *getName(parse_file_t *in);
int getNumber(parse_file_t *in);
char *getEqual(parse_file_t *in);
char *getName(parse_file_t *in);
int getNumber(parse_file_t *in);
char *getEqual(parse_file_t *in);
-char seekNextChar(parse_file_t *in);
+int seekNextChar(parse_file_t *in);
void skipComment(parse_file_t * in);
void skipEOL(parse_file_t * in);
void skipComment(parse_file_t * in);
void skipEOL(parse_file_t * in);
AC_PREREQ(2.57)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
#AC_WITH_LTDL # not needed ?
AC_PREREQ(2.57)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
#AC_WITH_LTDL # not needed ?
-AM_INIT_AUTOMAKE(LinuxTraceToolkitViewer,0.8.40-06052006)
+AM_INIT_AUTOMAKE(LinuxTraceToolkitViewer,0.8.41-10052006)
AM_CONFIG_HEADER(config.h)
AM_PROG_LIBTOOL
AM_CONFIG_HEADER(config.h)
AM_PROG_LIBTOOL
guint i;
gint ret=0;
if(field->fixed_root == FIELD_VARIABLE) {
guint i;
gint ret=0;
if(field->fixed_root == FIELD_VARIABLE) {
- *offset += ltt_align(*offset, get_alignment(fac, field),
+ *offset += ltt_align(*offset, get_alignment(field),
fac->alignment);
/* remember offset */
field->offset_root = *offset;
fac->alignment);
/* remember offset */
field->offset_root = *offset;
//#define EVENT_HEADER_SIZE (TIMESTAMP_SIZE + EVENT_ID_SIZE)
//#define EVENT_HEADER_SIZE (TIMESTAMP_SIZE + EVENT_ID_SIZE)
+off_t get_alignment(LttField *field);
+
/* Calculate the offset needed to align the type.
* If has_alignment is 0, alignment is disactivated.
* else, the function returns the offset needed to
* align align_drift on the has_alignment value (should be
* the size of the architecture). */
static inline unsigned int ltt_align(size_t align_drift,
/* Calculate the offset needed to align the type.
* If has_alignment is 0, alignment is disactivated.
* else, the function returns the offset needed to
* align align_drift on the has_alignment value (should be
* the size of the architecture). */
static inline unsigned int ltt_align(size_t align_drift,
- size_t size_of_type,
- size_t has_alignment)
+ size_t size_of_type,
+ size_t has_alignment)
{
size_t alignment = min(has_alignment, size_of_type);
if(!has_alignment) return 0;
{
size_t alignment = min(has_alignment, size_of_type);
if(!has_alignment) return 0;
+ g_assert(size_of_type != 0);
return ((alignment - align_drift) & (alignment-1));
}
return ((alignment - align_drift) & (alignment-1));
}
#define LTT_ARCH_TYPE_PPC64 7
#define LTT_ARCH_TYPE_X86_64 8
#define LTT_ARCH_TYPE_C2 9
#define LTT_ARCH_TYPE_PPC64 7
#define LTT_ARCH_TYPE_X86_64 8
#define LTT_ARCH_TYPE_C2 9
+#define LTT_ARCH_TYPE_POWERPC 10
/* Standard definitions for variants */
#define LTT_ARCH_VARIANT_NONE 0 /* Main architecture implementation */
/* Standard definitions for variants */
#define LTT_ARCH_VARIANT_NONE 0 /* Main architecture implementation */
unsigned long long int getSize(parse_file_t *in)
{
char *token, *token2;
unsigned long long int getSize(parse_file_t *in)
{
char *token, *token2;
- unsigned long long int ret;
+ unsigned long long int ret;
sequence_t * unnamed_types, table_t * named_types)
{
char * token;
sequence_t * unnamed_types, table_t * named_types)
{
char * token;
t->fmt = NULL;
t->size = 0;
t->fmt = NULL;
t->size = 0;
void getEventAttributes(parse_file_t *in, event_t *ev)
{
char * token;
void getEventAttributes(parse_file_t *in, event_t *ev)
{
char * token;
ev->name = NULL;
ev->per_trace = 0;
ev->name = NULL;
ev->per_trace = 0;
void getFacilityAttributes(parse_file_t *in, facility_t *fac)
{
char * token;
void getFacilityAttributes(parse_file_t *in, facility_t *fac)
{
char * token;
fac->name = NULL;
fac->arch = NULL;
fac->name = NULL;
fac->arch = NULL;
void getFieldAttributes(parse_file_t *in, field_t *f)
{
char * token;
void getFieldAttributes(parse_file_t *in, field_t *f)
{
char * token;
{
char * token;
char *name = NULL;
{
char * token;
char *name = NULL;
while(1) {
token = getToken(in);
while(1) {
token = getToken(in);
char * getDescription(parse_file_t *in)
{
long int pos;
char * getDescription(parse_file_t *in)
{
long int pos;
- char * token, car, *str;
+ char * token, *str;
+ int car;
-char seekNextChar(parse_file_t *in)
+int seekNextChar(parse_file_t *in)
while((car = getc(in->fp)) != EOF) {
if(!isspace(car)){
ungetc(car,in->fp);
while((car = getc(in->fp)) != EOF) {
if(!isspace(car)){
ungetc(car,in->fp);
char *getToken(parse_file_t * in)
{
FILE *fp = in->fp;
char *getToken(parse_file_t * in)
{
FILE *fp = in->fp;
int pos = 0, escaped;
if(in->unget == 1) {
int pos = 0, escaped;
if(in->unget == 1) {
void skipComment(parse_file_t * in)
{
void skipComment(parse_file_t * in)
{
while((car = getc(in->fp)) != EOF) {
if(car == '\n') in->lineno++;
else if(car == '*') {
while((car = getc(in->fp)) != EOF) {
if(car == '\n') in->lineno++;
else if(car == '*') {
void skipEOL(parse_file_t * in)
{
void skipEOL(parse_file_t * in)
{
while((car = getc(in->fp)) != EOF) {
if(car == '\n') {
ungetc(car,in->fp);
while((car = getc(in->fp)) != EOF) {
if(car == '\n') {
ungetc(car,in->fp);
char *getName(parse_file_t *in);
int getNumber(parse_file_t *in);
char *getEqual(parse_file_t *in);
char *getName(parse_file_t *in);
int getNumber(parse_file_t *in);
char *getEqual(parse_file_t *in);
-char seekNextChar(parse_file_t *in);
+int seekNextChar(parse_file_t *in);
void skipComment(parse_file_t * in);
void skipEOL(parse_file_t * in);
void skipComment(parse_file_t * in);
void skipEOL(parse_file_t * in);
case LTT_ARCH_TYPE_C2:
text = "_c2";
break;
case LTT_ARCH_TYPE_C2:
text = "_c2";
break;
+ case LTT_ARCH_TYPE_POWERPC:
+ text = "_powerpc";
+ break;
default:
g_error("Trace from unsupported architecture.");
}
default:
g_error("Trace from unsupported architecture.");
}
fac->id = ltt_get_uint32(LTT_GET_BO(tf), &fac_load_data->id);
fac->pointer_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_load_data->pointer_size);
fac->id = ltt_get_uint32(LTT_GET_BO(tf), &fac_load_data->id);
fac->pointer_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_load_data->pointer_size);
- fac->int_size = ltt_get_uint32(LTT_GET_BO(tf),
- &fac_load_data->int_size);
+ fac->int_size = ltt_get_uint32(LTT_GET_BO(tf),
+ &fac_load_data->int_size);
fac->long_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_load_data->long_size);
fac->size_t_size = ltt_get_uint32(LTT_GET_BO(tf),
fac->long_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_load_data->long_size);
fac->size_t_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_state_dump_load_data->id);
fac->pointer_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_state_dump_load_data->pointer_size);
&fac_state_dump_load_data->id);
fac->pointer_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_state_dump_load_data->pointer_size);
- fac->int_size = ltt_get_uint32(LTT_GET_BO(tf),
- &fac_state_dump_load_data->int_size);
+ fac->int_size = ltt_get_uint32(LTT_GET_BO(tf),
+ &fac_state_dump_load_data->int_size);
fac->long_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_state_dump_load_data->long_size);
fac->size_t_size = ltt_get_uint32(LTT_GET_BO(tf),
fac->long_size = ltt_get_uint32(LTT_GET_BO(tf),
&fac_state_dump_load_data->long_size);
fac->size_t_size = ltt_get_uint32(LTT_GET_BO(tf),
case LTT_FLOAT:
case LTT_ENUM:
/* Align offset on type size */
case LTT_FLOAT:
case LTT_ENUM:
/* Align offset on type size */
+ g_assert(field->field_size != 0);
return field->field_size;
break;
case LTT_STRING:
return field->field_size;
break;
case LTT_STRING:
break;
case LTT_ARRAY:
g_assert(type->fields->len == 1);
break;
case LTT_ARRAY:
g_assert(type->fields->len == 1);
case LTT_SEQUENCE:
g_assert(type->fields->len == 2);
{
case LTT_SEQUENCE:
g_assert(type->fields->len == 2);
{
LttField *child = &g_array_index(type->fields, LttField, 0);
localign = max(localign, get_alignment(child));
LttField *child = &g_array_index(type->fields, LttField, 0);
localign = max(localign, get_alignment(child));
case LTT_UNION:
{
guint i;
case LTT_UNION:
{
guint i;
for(i=0; i<type->fields->len; i++) {
LttField *child = &g_array_index(type->fields, LttField, i);
for(i=0; i<type->fields->len; i++) {
LttField *child = &g_array_index(type->fields, LttField, i);
case LTT_NONE:
default:
g_error("get_alignment : unknown type");
case LTT_NONE:
default:
g_error("get_alignment : unknown type");
}
/*****************************************************************************
}
/*****************************************************************************
size_t max_size;
switch(type->type_class) {
size_t max_size;
switch(type->type_class) {
+ case LTT_INT_FIXED:
+ case LTT_UINT_FIXED:
+ case LTT_CHAR:
+ case LTT_UCHAR:
+ case LTT_SHORT:
+ case LTT_USHORT:
case LTT_INT:
case LTT_UINT:
case LTT_FLOAT:
case LTT_INT:
case LTT_UINT:
case LTT_FLOAT:
field->fixed_size = FIELD_FIXED;
}
break;
field->fixed_size = FIELD_FIXED;
}
break;
+ case LTT_NONE:
+ g_error("unexpected type NONE");
+ break;
}
switch(type1->type_class) {
}
switch(type1->type_class) {
+ case LTT_INT_FIXED:
+ case LTT_UINT_FIXED:
+ case LTT_POINTER:
+ case LTT_CHAR:
+ case LTT_UCHAR:
+ case LTT_SHORT:
+ case LTT_USHORT:
case LTT_INT:
case LTT_UINT:
case LTT_FLOAT:
case LTT_INT:
case LTT_UINT:
case LTT_FLOAT:
size_t size;
switch(t->type_class) {
size_t size;
switch(t->type_class) {
+ case LTT_INT_FIXED:
+ case LTT_UINT_FIXED:
+ case LTT_CHAR:
+ case LTT_UCHAR:
+ case LTT_SHORT:
+ case LTT_USHORT:
case LTT_INT:
case LTT_UINT:
case LTT_INT:
case LTT_UINT:
case LTT_ENUM:
if(likely(t->size < INT_SIZES_NUMBER))
size = intSizes[t->size];
case LTT_ENUM:
if(likely(t->size < INT_SIZES_NUMBER))
size = intSizes[t->size];
case LTT_ULONG:
case LTT_SIZE_T:
case LTT_SSIZE_T:
case LTT_ULONG:
case LTT_SIZE_T:
case LTT_SSIZE_T:
case LTT_OFF_T:
case LTT_STRING:
case LTT_ARRAY:
case LTT_STRUCT:
case LTT_UNION:
case LTT_OFF_T:
case LTT_STRING:
case LTT_ARRAY:
case LTT_STRUCT:
case LTT_UNION:
guint ltt_eventtype_num_fields(LttEventType *event_type)
{
guint ltt_eventtype_num_fields(LttEventType *event_type)
{
- if(unlikely(!event_type)) return NULL;
+ if(unlikely(!event_type)) return 0;
return event_type->fields->len;
return event_type->fields->len;
static void module_init()
{
static void module_init()
{
- LTTV_STATE_UNNAMED = g_quark_from_string("unnamed");
+ LTTV_STATE_UNNAMED = g_quark_from_string("UNNAMED");
LTTV_STATE_MODE_UNKNOWN = g_quark_from_string("MODE_UNKNOWN");
LTTV_STATE_USER_MODE = g_quark_from_string("USER_MODE");
LTTV_STATE_SYSCALL = g_quark_from_string("SYSCALL");
LTTV_STATE_MODE_UNKNOWN = g_quark_from_string("MODE_UNKNOWN");
LTTV_STATE_USER_MODE = g_quark_from_string("USER_MODE");
LTTV_STATE_SYSCALL = g_quark_from_string("SYSCALL");
LttvTraceHookByFacility *thf;
guint ret;
LttvTraceHookByFacility *thf;
guint ret;
+ gint before_hn, after_hn;
nb_trace = lttv_traceset_number(traceset);
// FIXME : eventually request for more traces
nb_trace = lttv_traceset_number(traceset);
// FIXME : eventually request for more traces
hooks = g_array_new(FALSE, FALSE, sizeof(LttvTraceHook));
hooks = g_array_set_size(hooks, 16);
hooks = g_array_new(FALSE, FALSE, sizeof(LttvTraceHook));
hooks = g_array_set_size(hooks, 16);
+ before_hn = after_hn = 0;
LTT_FIELD_SYSCALL_ID, 0, 0,
before_execmode_hook,
events_request,
LTT_FIELD_SYSCALL_ID, 0, 0,
before_execmode_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 0));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_EXIT,
0, 0, 0,
before_execmode_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL_ARCH, LTT_EVENT_SYSCALL_EXIT,
0, 0, 0,
before_execmode_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 1));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_ENTRY,
LTT_FIELD_TRAP_ID, 0, 0,
before_execmode_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_ENTRY,
LTT_FIELD_TRAP_ID, 0, 0,
before_execmode_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 2));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_EXIT,
0, 0, 0,
before_execmode_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_EXIT,
0, 0, 0,
before_execmode_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 3));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_ENTRY,
LTT_FIELD_IRQ_ID, 0, 0,
before_execmode_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_ENTRY,
LTT_FIELD_IRQ_ID, 0, 0,
before_execmode_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 4));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_EXIT,
0, 0, 0,
before_execmode_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_IRQ_EXIT,
0, 0, 0,
before_execmode_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 5));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_ENTRY,
LTT_FIELD_SOFT_IRQ_ID, 0, 0,
before_execmode_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_ENTRY,
LTT_FIELD_SOFT_IRQ_ID, 0, 0,
before_execmode_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 6));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_EXIT,
0, 0, 0,
before_execmode_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_KERNEL, LTT_EVENT_SOFT_IRQ_EXIT,
0, 0, 0,
before_execmode_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 7));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FIELD_OUT, LTT_FIELD_IN, LTT_FIELD_OUT_STATE,
before_schedchange_hook,
events_request,
LTT_FIELD_OUT, LTT_FIELD_IN, LTT_FIELD_OUT_STATE,
before_schedchange_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 8));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_EXIT,
LTT_FIELD_PID, 0, 0,
before_process_exit_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_EXIT,
LTT_FIELD_PID, 0, 0,
before_process_exit_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 9));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_FREE,
LTT_FIELD_PID, 0, 0,
before_process_release_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_FREE,
LTT_FIELD_PID, 0, 0,
before_process_release_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 10));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, before_hn++));
+ if(ret) before_hn--;
#if 0
lttv_trace_find_hook(ts->parent.t,
"core", "process", "event_sub_id",
"event_data1", "event_data2", before_process_hook,
#if 0
lttv_trace_find_hook(ts->parent.t,
"core", "process", "event_sub_id",
"event_data1", "event_data2", before_process_hook,
- &g_array_index(hooks, LttvTraceHook, 7));
+ &g_array_index(hooks, LttvTraceHook, hn++));
#endif //0
#if 0
lttv_trace_find_hook(ts->parent.t, "core", "process_fork", "child_pid",
#endif //0
#if 0
lttv_trace_find_hook(ts->parent.t, "core", "process_fork", "child_pid",
- NULL, NULL, process_fork, &g_array_index(hooks, LttvTraceHook, 7));
+ NULL, NULL, process_fork, &g_array_index(hooks, LttvTraceHook, hn++));
lttv_trace_find_hook(ts->parent.t, "core", "process_exit", NULL, NULL,
lttv_trace_find_hook(ts->parent.t, "core", "process_exit", NULL, NULL,
- NULL, process_exit, &g_array_index(hooks, LttvTraceHook, 8));
+ NULL, process_exit, &g_array_index(hooks, LttvTraceHook, hn++));
#endif //0
/* after hooks */
#endif //0
/* after hooks */
#if 0
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core","syscall_entry","syscall_id",
#if 0
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core","syscall_entry","syscall_id",
- NULL, NULL, after_execmode_hook, &g_array_index(hooks, LttvTraceHook, 8));
+ NULL, NULL, after_execmode_hook, &g_array_index(hooks, LttvTraceHook, hn++));
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "syscall_exit", NULL, NULL,
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "syscall_exit", NULL, NULL,
- NULL, after_execmode_hook, &g_array_index(hooks, LttvTraceHook, 9));
+ NULL, after_execmode_hook, &g_array_index(hooks, LttvTraceHook, hn++));
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "trap_entry", "trap_id",
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "trap_entry", "trap_id",
- NULL, NULL, after_execmode_hook, &g_array_index(hooks, LttvTraceHook, 10));
+ NULL, NULL, after_execmode_hook, &g_array_index(hooks, LttvTraceHook, hn++));
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "trap_exit", NULL, NULL, NULL,
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "trap_exit", NULL, NULL, NULL,
- after_execmode_hook, &g_array_index(hooks, LttvTraceHook, 11));
+ after_execmode_hook, &g_array_index(hooks, LttvTraceHook, hn++));
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "irq_entry", "irq_id", NULL,
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "irq_entry", "irq_id", NULL,
- NULL, after_execmode_hook, &g_array_index(hooks, LttvTraceHook, 12));
+ NULL, after_execmode_hook, &g_array_index(hooks, LttvTraceHook, hn++));
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "irq_exit", NULL, NULL, NULL,
/**** DESACTIVATED ****/
lttv_trace_find_hook(ts->parent.t, "core", "irq_exit", NULL, NULL, NULL,
- after_execmode_hook, &g_array_index(hooks, LttvTraceHook, 13));
+ after_execmode_hook, &g_array_index(hooks, LttvTraceHook, hn++));
#endif //0
#if 0
lttv_trace_find_hook(ts->parent.t, "core", "schedchange", "in", "out",
"out_state", after_schedchange_hook,
#endif //0
#if 0
lttv_trace_find_hook(ts->parent.t, "core", "schedchange", "in", "out",
"out_state", after_schedchange_hook,
- &g_array_index(hooks, LttvTraceHook, 8));
+ &g_array_index(hooks, LttvTraceHook, hn++));
lttv_trace_find_hook(ts->parent.t, "core", "process", "event_sub_id",
"event_data1", "event_data2", after_process_hook,
lttv_trace_find_hook(ts->parent.t, "core", "process", "event_sub_id",
"event_data1", "event_data2", after_process_hook,
- &g_array_index(hooks, LttvTraceHook, 9));
+ &g_array_index(hooks, LttvTraceHook, hn++));
+ after_hn = before_hn;
+
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_SCHEDCHANGE,
LTT_FIELD_OUT, LTT_FIELD_IN, LTT_FIELD_OUT_STATE,
after_schedchange_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_SCHEDCHANGE,
LTT_FIELD_OUT, LTT_FIELD_IN, LTT_FIELD_OUT_STATE,
after_schedchange_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 11));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, after_hn++));
+ if(ret) after_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_FORK,
LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID, 0,
after_process_fork_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_FORK,
LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID, 0,
after_process_fork_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 12));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, after_hn++));
+ if(ret) after_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_EXIT,
LTT_FIELD_PID, 0, 0,
after_process_exit_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_PROCESS, LTT_EVENT_EXIT,
LTT_FIELD_PID, 0, 0,
after_process_exit_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 13));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, after_hn++));
+ if(ret) after_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_FS, LTT_EVENT_EXEC,
0, 0, 0,
after_fs_exec_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_FS, LTT_EVENT_EXEC,
0, 0, 0,
after_fs_exec_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 14));
- g_assert(!ret);
+ &g_array_index(hooks, LttvTraceHook, after_hn++));
+ if(ret) after_hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_STATEDUMP, LTT_EVENT_ENUM_PROCESS_STATE,
LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME,
after_event_enum_process_hook,
events_request,
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FACILITY_STATEDUMP, LTT_EVENT_ENUM_PROCESS_STATE,
LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME,
after_event_enum_process_hook,
events_request,
- &g_array_index(hooks, LttvTraceHook, 15));
- g_assert(!ret);
-
+ &g_array_index(hooks, LttvTraceHook, after_hn++));
+ if(ret) after_hn--;
+ hooks = g_array_set_size(hooks, after_hn);
#if 0
lttv_trace_find_hook(ts->parent.t, "core", "process_fork", "child_pid",
#if 0
lttv_trace_find_hook(ts->parent.t, "core", "process_fork", "child_pid",
- NULL, NULL, process_fork, &g_array_index(hooks, LttvTraceHook, 7));
+ NULL, NULL, process_fork, &g_array_index(hooks, LttvTraceHook, hn++));
lttv_trace_find_hook(ts->parent.t, "core", "process_exit", NULL, NULL,
lttv_trace_find_hook(ts->parent.t, "core", "process_exit", NULL, NULL,
- NULL, process_exit, &g_array_index(hooks, LttvTraceHook, 8));
+ NULL, process_exit, &g_array_index(hooks, LttvTraceHook, hn++));
#endif //0
/* Add these hooks to each event_by_id hooks list */
/* add before */
#endif //0
/* Add these hooks to each event_by_id hooks list */
/* add before */
- for(k = 0 ; k < 11 ; k++) {
+ for(k = 0 ; k < before_hn ; k++) {
hook = &g_array_index(hooks, LttvTraceHook, k);
for(l=0;l<hook->fac_list->len;l++) {
thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l);
hook = &g_array_index(hooks, LttvTraceHook, k);
for(l=0;l<hook->fac_list->len;l++) {
thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l);
- for(k = 11 ; k < 16 ; k++) {
+ for(k = before_hn ; k < after_hn ; k++) {
hook = &g_array_index(hooks, LttvTraceHook, k);
for(l=0;l<hook->fac_list->len;l++) {
thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l);
hook = &g_array_index(hooks, LttvTraceHook, k);
for(l=0;l<hook->fac_list->len;l++) {
thf = g_array_index(hook->fac_list, LttvTraceHookByFacility*, l);