X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=genevent%2Fgenevent.c;h=c924efb39c05e0ce1b08704f77813f3fbd10f014;hb=dc104dbcd24d0f4ce0f34f6bfa516cfc5620d8b1;hp=88fbde1576e54d7ba313834f880542407047ff0b;hpb=79ae5becfad40935a543fa270d73fbfc77bd0c31;p=lttv.git diff --git a/genevent/genevent.c b/genevent/genevent.c index 88fbde15..c924efb3 100644 --- a/genevent/genevent.c +++ b/genevent/genevent.c @@ -86,6 +86,9 @@ #define dprintf(...) #endif + +enum user_fct_types { USER_FCT_PROTO, USER_FCT_DECLARATION } ; + /* Code printing */ void print_tabs(unsigned int tabs, FILE *fd) @@ -224,11 +227,11 @@ int print_arg(type_descriptor_t * td, FILE *fd, unsigned int tabs, switch(td->type) { case INT_FIXED: fprintf(fd, "%s", intOutputTypes[getSizeindex(td->size)]); - fprintf(fd, "lttng_param_%s", field_name); + fprintf(fd, " lttng_param_%s", field_name); break; case UINT_FIXED: fprintf(fd, "%s", uintOutputTypes[getSizeindex(td->size)]); - fprintf(fd, "lttng_param_%s", field_name); + fprintf(fd, " lttng_param_%s", field_name); break; case CHAR: fprintf(fd, "signed char"); @@ -720,7 +723,7 @@ int print_type_write(type_descriptor_t * td, FILE *fd, unsigned int tabs, fprintf(fd, ";\n"); fprintf(fd, "\n"); print_tabs(tabs, fd); - fprintf(fd, "if(*len == 0) {\n"); + fprintf(fd, "if (*len == 0) {\n"); print_tabs(tabs+1, fd); fprintf(fd, "*to += ltt_align(*to, align); /* align output */\n"); print_tabs(tabs, fd); @@ -1104,13 +1107,13 @@ int print_type_write_fct(type_descriptor_t * td, FILE *fd, unsigned int tabs, } print_tabs(2, fd); - fprintf(fd, "void *buffer,\n"); + fprintf(fd, "char *buffer,\n"); print_tabs(2, fd); fprintf(fd, "size_t *to_base,\n"); print_tabs(2, fd); fprintf(fd, "size_t *to,\n"); print_tabs(2, fd); - fprintf(fd, "const void **from,\n"); + fprintf(fd, "const char **from,\n"); print_tabs(2, fd); fprintf(fd, "size_t *len,\n"); print_tabs(2, fd); @@ -1158,9 +1161,9 @@ int print_type_write_fct(type_descriptor_t * td, FILE *fd, unsigned int tabs, print_tabs(1, fd); fprintf(fd, "/* Flush pending memcpy */\n"); print_tabs(1, fd); - fprintf(fd, "if(*len != 0) {\n"); + fprintf(fd, "if (*len != 0) {\n"); print_tabs(2, fd); - fprintf(fd, "if(buffer != NULL)\n"); + fprintf(fd, "if (buffer != NULL)\n"); print_tabs(3, fd); fprintf(fd, "memcpy(buffer+*to_base+*to, *from, *len);\n"); print_tabs(1, fd); @@ -1186,7 +1189,7 @@ int print_type_write_fct(type_descriptor_t * td, FILE *fd, unsigned int tabs, fprintf(fd, ";\n"); fprintf(fd, "\n"); print_tabs(1, fd); - fprintf(fd, "if(*len == 0) {\n"); + fprintf(fd, "if (*len == 0) {\n"); print_tabs(2, fd); fprintf(fd, "*to += ltt_align(*to, align); /* align output */\n"); print_tabs(1, fd); @@ -1227,7 +1230,7 @@ int print_type_write_fct(type_descriptor_t * td, FILE *fd, unsigned int tabs, // print_tabs(1, fd); // fprintf(fd, "*to += ltt_align(*to, size);\n"); print_tabs(1, fd); - fprintf(fd, "if(buffer != NULL)\n"); + fprintf(fd, "if (buffer != NULL)\n"); print_tabs(2, fd); fprintf(fd, "memcpy(buffer+*to_base+*to, &obj->len, *len);\n"); print_tabs(1, fd); @@ -1253,7 +1256,7 @@ int print_type_write_fct(type_descriptor_t * td, FILE *fd, unsigned int tabs, print_tabs(1, fd); fprintf(fd, "*len = obj->len * (*len);\n"); print_tabs(1, fd); - fprintf(fd, "if(buffer != NULL)\n"); + fprintf(fd, "if (buffer != NULL)\n"); print_tabs(2, fd); fprintf(fd, "memcpy(buffer+*to_base+*to, obj->array, *len);\n"); print_tabs(1, fd); @@ -1265,7 +1268,7 @@ int print_type_write_fct(type_descriptor_t * td, FILE *fd, unsigned int tabs, print_tabs(1, fd); fprintf(fd, "/* Variable length child : iter. */\n"); print_tabs(1, fd); - fprintf(fd, "for(unsigned int i=0; ilen; i++) {\n"); + fprintf(fd, "for (unsigned int i = 0; i < obj->len; i++) {\n"); if(print_type_write(((field_t*)td->fields.array[1])->type, fd, 2, basename, "array[i]", "obj->", 1)) return 1; print_tabs(1, fd); @@ -1284,13 +1287,13 @@ int print_type_write_fct(type_descriptor_t * td, FILE *fd, unsigned int tabs, print_tabs(1, fd); fprintf(fd, "/* Put source *from just after the C sequence */\n"); print_tabs(1, fd); - fprintf(fd, "*from = obj+1;\n"); + fprintf(fd, "*from = (const char*)(obj+1);\n"); break; case STRING: print_tabs(1, fd); fprintf(fd, "size = strlen(obj) + 1; /* Include final NULL char. */\n"); print_tabs(1, fd); - fprintf(fd, "if(buffer != NULL)\n"); + fprintf(fd, "if (buffer != NULL)\n"); print_tabs(2, fd); fprintf(fd, "memcpy(buffer+*to_base+*to, obj, size);\n"); print_tabs(1, fd); @@ -1333,7 +1336,7 @@ int print_type_write_fct(type_descriptor_t * td, FILE *fd, unsigned int tabs, print_tabs(1, fd); fprintf(fd, "/* Variable length child : iter. */\n"); print_tabs(1, fd); - fprintf(fd, "for(unsigned int i=0; ifields.array[0])->type, fd, 2, basename, "", "obj->array[i]", 1)) return 1; print_tabs(1, fd); @@ -1398,12 +1401,14 @@ int print_event_logging_function(char *basename, facility_t *fac, fprintf(fd, "void"); } fprintf(fd,")\n"); +#if 0 fprintf(fd, - "#if (!defined(CONFIG_LTT) || !defined(CONFIG_LTT_FACILITY_%s))\n", - fac->capname); + "#if (!defined(CONFIG_LTT) || (!defined(CONFIG_LTT_FACILITY_%s) && !defined(CONFIG_LTT_FACILITY_%s_MODULE)))\n", + fac->capname, fac->capname); fprintf(fd, "{\n"); fprintf(fd, "}\n"); fprintf(fd,"#else\n"); +#endif //0 fprintf(fd, "{\n"); /* Print the function variables */ print_tabs(1, fd); @@ -1413,9 +1418,9 @@ int print_event_logging_function(char *basename, facility_t *fac, print_tabs(1, fd); fprintf(fd, "struct ltt_trace_struct *trace;\n"); print_tabs(1, fd); - fprintf(fd, "struct rchan_buf *relayfs_buf;\n"); + fprintf(fd, "void *transport_data;\n"); print_tabs(1, fd); - fprintf(fd, "void *buffer = NULL;\n"); + fprintf(fd, "char *buffer = NULL;\n"); print_tabs(1, fd); fprintf(fd, "size_t real_to_base = 0; /* The buffer is allocated on arch_size alignment */\n"); print_tabs(1, fd); @@ -1449,9 +1454,9 @@ int print_event_logging_function(char *basename, facility_t *fac, print_tabs(1, fd); } - fprintf(fd, "const void *real_from;\n"); + fprintf(fd, "const char *real_from;\n"); print_tabs(1, fd); - fprintf(fd, "const void **from = &real_from;\n"); + fprintf(fd, "const char **from = &real_from;\n"); print_tabs(1, fd); } fprintf(fd, "u64 tsc;\n"); @@ -1460,7 +1465,9 @@ int print_event_logging_function(char *basename, facility_t *fac, fprintf(fd, "\n"); print_tabs(1, fd); - fprintf(fd, "if(ltt_traces.num_active_traces == 0) return;\n"); + fprintf(fd, "if (ltt_traces.num_active_traces == 0)\n"); + print_tabs(2, fd); + fprintf(fd, "return;\n"); fprintf(fd, "\n"); /* Calculate event variable len + event data alignment offset. @@ -1489,10 +1496,10 @@ int print_event_logging_function(char *basename, facility_t *fac, case ARRAY: case STRUCT: case STRING: - fprintf(fd, "*from = lttng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)lttng_param_%s;\n", field->name); break; default: - fprintf(fd, "*from = <tng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)<tng_param_%s;\n", field->name); break; } @@ -1518,9 +1525,9 @@ int print_event_logging_function(char *basename, facility_t *fac, } else { print_tabs(1, fd); fprintf(fd, - "index = ltt_get_index_from_facility(ltt_facility_%s_%X,\n"\ + "index = ltt_get_index_from_facility_%s(" \ "\t\t\t\t\t\tevent_%s_%s);\n", - fac->name, fac->checksum, fac->name, event->name); + fac->name, fac->name, event->name); } fprintf(fd,"\n"); @@ -1529,17 +1536,19 @@ int print_event_logging_function(char *basename, facility_t *fac, print_tabs(1, fd); fprintf(fd, "list_for_each_entry_rcu(trace, <t_traces.head, list) {\n"); print_tabs(2, fd); - fprintf(fd, "if(!trace->active) continue;\n\n"); + fprintf(fd, "if (!trace->active)\n"); + print_tabs(3, fd); + fprintf(fd, "continue;\n\n"); if(event->per_trace) { print_tabs(2, fd); - fprintf(fd, "if(dest_trace != trace) continue;\n\n"); + fprintf(fd, "if (dest_trace != trace)\n"); + print_tabs(3, fd); + fprintf(fd, "continue;\n\n"); } print_tabs(2, fd); fprintf(fd, "channel = ltt_get_channel_from_index(trace, index);\n"); - print_tabs(2, fd); - fprintf(fd, "relayfs_buf = channel->rchan->buf[smp_processor_id()];\n"); fprintf(fd, "\n"); @@ -1549,14 +1558,16 @@ int print_event_logging_function(char *basename, facility_t *fac, print_tabs(2, fd); fprintf(fd, "slot_size = 0;\n"); print_tabs(2, fd); - fprintf(fd, "buffer = ltt_reserve_slot(trace, relayfs_buf,\n"); + fprintf(fd, "buffer = ltt_reserve_slot(trace, channel, &transport_data,\n"); print_tabs(3, fd); fprintf(fd, "reserve_size, &slot_size, &tsc,\n"); print_tabs(3, fd); fprintf(fd, "&before_hdr_pad, &after_hdr_pad, &header_size);\n"); /* If error, return */ print_tabs(2, fd); - fprintf(fd, "if(!buffer) continue; /* buffer full */\n\n"); + fprintf(fd, "if (!buffer)\n"); + print_tabs(3, fd); + fprintf(fd, "continue; /* buffer full */\n\n"); //print_tabs(2, fd); // for DEBUG only // fprintf(fd, "goto commit; /* DEBUG : never actually write. */\n\n"); @@ -1590,10 +1601,10 @@ int print_event_logging_function(char *basename, facility_t *fac, case ARRAY: case STRUCT: case STRING: - fprintf(fd, "*from = lttng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)lttng_param_%s;\n", field->name); break; default: - fprintf(fd, "*from = <tng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)<tng_param_%s;\n", field->name); break; } @@ -1606,7 +1617,7 @@ int print_event_logging_function(char *basename, facility_t *fac, print_tabs(2, fd); fprintf(fd, "/* Flush pending memcpy */\n"); print_tabs(2, fd); - fprintf(fd, "if(*len != 0) {\n"); + fprintf(fd, "if (*len != 0) {\n"); print_tabs(3, fd); fprintf(fd, "memcpy(buffer+*to_base+*to, *from, *len);\n"); print_tabs(3, fd); @@ -1625,7 +1636,7 @@ int print_event_logging_function(char *basename, facility_t *fac, // for DEBUG only. //fprintf(fd, "commit:\n"); /* DEBUG! */ print_tabs(2, fd); - fprintf(fd, "ltt_commit_slot(relayfs_buf, buffer, slot_size);\n\n"); + fprintf(fd, "ltt_commit_slot(channel, &transport_data, buffer, slot_size);\n\n"); print_tabs(1, fd); fprintf(fd, "}\n\n"); @@ -1637,22 +1648,19 @@ int print_event_logging_function(char *basename, facility_t *fac, fprintf(fd, "preempt_enable_no_resched();\n"); fprintf(fd, "}\n"); - fprintf(fd, "#endif //(!defined(CONFIG_LTT) || !defined(CONFIG_LTT_FACILITY_%s))\n\n", - fac->capname); +#if 0 + fprintf(fd, "#endif //(!defined(CONFIG_LTT) || (!defined(CONFIG_LTT_FACILITY_%s) && !defined(CONFIG_LTT_FACILITY_%s_MODULE)))\n\n", + fac->capname, fac->capname); +#endif //0 return 0; } -/* print_event_logging_function_user_generic - * Print the logging function of an event for userspace tracing. This is the - * core of genevent */ -int print_event_logging_function_user_generic(char *basename, facility_t *fac, - event_t *event, FILE *fd) +int print_event_logging_function_header_user_generic(char *basename, facility_t *fac, + event_t *event, FILE *fd, enum user_fct_types fct_type) { char *attrib; - fprintf(fd, "#ifndef LTT_TRACE_FAST\n"); - - if(event->no_instrument_function) { + if(event->no_instrument_function && fct_type == USER_FCT_PROTO) { attrib = "__attribute__((no_instrument_function)) "; } else { attrib = ""; @@ -1663,7 +1671,6 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, fprintf(fd, "static inline %sint trace_%s(\n",attrib, basename); } int has_argument = 0; - int has_type_fixed = 0; if(event->param_buffer) { if(has_argument) { @@ -1671,7 +1678,7 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, fprintf(fd, "\n"); } print_tabs(2, fd); - fprintf(fd, "void *buffer"); + fprintf(fd, "char *buffer"); has_argument = 1; fprintf(fd, ","); fprintf(fd, "\n"); @@ -1694,7 +1701,25 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, print_tabs(2, fd); fprintf(fd, "void"); } - fprintf(fd,")\n"); + fprintf(fd,")"); + return 0; +} + + +/* print_event_logging_function_user_generic + * Print the logging function of an event for userspace tracing. This is the + * core of genevent */ +int print_event_logging_function_user_generic(char *basename, facility_t *fac, + event_t *event, FILE *fd) +{ + int has_type_fixed = 0; + + if(print_event_logging_function_header_user_generic(basename, fac, event, fd, USER_FCT_PROTO)) return 1; + fprintf(fd,";\n"); + fprintf(fd,"\n"); + fprintf(fd, "#ifndef LTT_TRACE_FAST\n"); + if(print_event_logging_function_header_user_generic(basename, fac, event, fd, USER_FCT_DECLARATION)) return 1; + fprintf(fd,"\n"); fprintf(fd, "#ifndef LTT_TRACE\n"); fprintf(fd, "{\n"); @@ -1705,14 +1730,14 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, print_tabs(1, fd); fprintf(fd, "int ret = 0;\n"); if(event->param_buffer) { - print_tabs(1, fd); - fprintf(fd, "reserve_size = ltt_align(reserve_size, sizeof(void *));\n"); + //FIX print_tabs(1, fd); + //fprintf(fd, "reserve_size = ltt_align(reserve_size, sizeof(void *));\n"); print_tabs(1, fd); fprintf(fd, "{\n"); goto do_syscall; } print_tabs(1, fd); - fprintf(fd, "void *buffer = NULL;\n"); + fprintf(fd, "char *buffer = NULL;\n"); print_tabs(1, fd); fprintf(fd, "size_t real_to_base = 0; /* The buffer is allocated on arch_size alignment */\n"); print_tabs(1, fd); @@ -1746,9 +1771,9 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, print_tabs(1, fd); } - fprintf(fd, "const void *real_from;\n"); + fprintf(fd, "const char *real_from;\n"); print_tabs(1, fd); - fprintf(fd, "const void **from = &real_from;\n"); + fprintf(fd, "const char **from = &real_from;\n"); print_tabs(1, fd); } @@ -1778,10 +1803,10 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, case ARRAY: case STRUCT: case STRING: - fprintf(fd, "*from = lttng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)lttng_param_%s;\n", field->name); break; default: - fprintf(fd, "*from = <tng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)<tng_param_%s;\n", field->name); break; } @@ -1822,10 +1847,10 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, case ARRAY: case STRUCT: case STRING: - fprintf(fd, "*from = lttng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)lttng_param_%s;\n", field->name); break; default: - fprintf(fd, "*from = <tng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)<tng_param_%s;\n", field->name); break; } @@ -1838,7 +1863,7 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, print_tabs(2, fd); fprintf(fd, "/* Flush pending memcpy */\n"); print_tabs(2, fd); - fprintf(fd, "if(*len != 0) {\n"); + fprintf(fd, "if (*len != 0) {\n"); print_tabs(3, fd); fprintf(fd, "memcpy(buffer+*to_base+*to, *from, *len);\n"); print_tabs(3, fd); @@ -1854,7 +1879,7 @@ int print_event_logging_function_user_generic(char *basename, facility_t *fac, do_syscall: print_tabs(2, fd); - fprintf(fd, "ret = ltt_trace_generic(ltt_facility_%s_%X, event_%s_%s, buffer, reserve_size, LTT_BLOCKING);\n", fac->name, fac->checksum, fac->name, event->name); + fprintf(fd, "ret = ltt_trace_generic(ltt_facility_%s_%X, event_%s_%s, buffer, reserve_size, LTT_BLOCKING, %u);\n", fac->name, fac->checksum, fac->name, event->name, event->high_priority); print_tabs(1, fd); fprintf(fd, "}\n\n"); @@ -1920,7 +1945,7 @@ int print_event_logging_function_user_fast(char *basename, facility_t *fac, print_tabs(1, fd); fprintf(fd, "struct ltt_buf *ltt_buf;\n"); print_tabs(1, fd); - fprintf(fd, "void *buffer = NULL;\n"); + fprintf(fd, "char *buffer = NULL;\n"); print_tabs(1, fd); fprintf(fd, "size_t real_to_base = 0; /* The buffer is allocated on arch_size alignment */\n"); print_tabs(1, fd); @@ -1954,9 +1979,9 @@ int print_event_logging_function_user_fast(char *basename, facility_t *fac, print_tabs(1, fd); } - fprintf(fd, "const void *real_from;\n"); + fprintf(fd, "const char *real_from;\n"); print_tabs(1, fd); - fprintf(fd, "const void **from = &real_from;\n"); + fprintf(fd, "const char **from = &real_from;\n"); print_tabs(1, fd); } fprintf(fd, "uint64_t tsc;\n"); @@ -1965,7 +1990,7 @@ int print_event_logging_function_user_fast(char *basename, facility_t *fac, fprintf(fd, "\n"); print_tabs(1, fd); - fprintf(fd, "if(!trace) {\n"); + fprintf(fd, "if (!trace) {\n"); print_tabs(2, fd); fprintf(fd, "ltt_thread_init();\n"); print_tabs(2, fd); @@ -2000,10 +2025,10 @@ int print_event_logging_function_user_fast(char *basename, facility_t *fac, case ARRAY: case STRUCT: case STRING: - fprintf(fd, "*from = lttng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)lttng_param_%s;\n", field->name); break; default: - fprintf(fd, "*from = <tng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)<tng_param_%s;\n", field->name); break; } @@ -2032,7 +2057,7 @@ int print_event_logging_function_user_fast(char *basename, facility_t *fac, if(event->per_trace) { print_tabs(2, fd); - fprintf(fd, "if(dest_trace != trace) continue;\n\n"); + fprintf(fd, "if (dest_trace != trace) continue;\n\n"); } print_tabs(2, fd); @@ -2053,7 +2078,9 @@ int print_event_logging_function_user_fast(char *basename, facility_t *fac, fprintf(fd, "&before_hdr_pad, &after_hdr_pad, &header_size);\n"); /* If error, return */ print_tabs(2, fd); - fprintf(fd, "if(!buffer) goto end; /* buffer full */\n\n"); + fprintf(fd, "if (!buffer)\n"); + print_tabs(3, fd); + fprintf(fd, "goto end; /* buffer full */\n\n"); //print_tabs(2, fd); // for DEBUG only // fprintf(fd, "goto commit; /* DEBUG : never actually write. */\n\n"); @@ -2087,10 +2114,10 @@ int print_event_logging_function_user_fast(char *basename, facility_t *fac, case ARRAY: case STRUCT: case STRING: - fprintf(fd, "*from = lttng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)lttng_param_%s;\n", field->name); break; default: - fprintf(fd, "*from = <tng_param_%s;\n", field->name); + fprintf(fd, "*from = (const char*)<tng_param_%s;\n", field->name); break; } @@ -2103,7 +2130,7 @@ int print_event_logging_function_user_fast(char *basename, facility_t *fac, print_tabs(2, fd); fprintf(fd, "/* Flush pending memcpy */\n"); print_tabs(2, fd); - fprintf(fd, "if(*len != 0) {\n"); + fprintf(fd, "if (*len != 0) {\n"); print_tabs(3, fd); fprintf(fd, "memcpy(buffer+*to_base+*to, *from, *len);\n"); print_tabs(3, fd); @@ -2152,14 +2179,14 @@ void print_log_header_head(facility_t *fac, FILE *fd) { fprintf(fd, "#ifndef _LTT_FACILITY_%s_H_\n", fac->capname); fprintf(fd, "#define _LTT_FACILITY_%s_H_\n\n", fac->capname); - fprintf(fd, "#include \n"); + fprintf(fd, "#include \n"); if(!fac->arch) - fprintf(fd, "#include \n", fac->name); + fprintf(fd, "#include \n", fac->name); else - fprintf(fd, "#include \n", + fprintf(fd, "#include \n", fac->name, fac->arch); - fprintf(fd, "#include \n"); + fprintf(fd, "#include \n"); fprintf(fd, "\n"); } @@ -2170,14 +2197,18 @@ void print_log_header_head_user(facility_t *fac, FILE *fd) { fprintf(fd, "#ifndef _LTT_FACILITY_%s_H_\n", fac->capname); fprintf(fd, "#define _LTT_FACILITY_%s_H_\n\n", fac->capname); - fprintf(fd, "#include \n"); + fprintf(fd, "#include \n"); if(!fac->arch) - fprintf(fd, "#include \n", fac->name); + fprintf(fd, "#include \n", fac->name); else - fprintf(fd, "#include \n", + fprintf(fd, "#include \n", fac->name, fac->arch); - fprintf(fd, "#include \n"); + fprintf(fd, "#include \n"); + fprintf(fd, "\n"); + fprintf(fd, "#ifdef __cplusplus\n"); + fprintf(fd, "extern \"C\" {\n"); + fprintf(fd, "#endif\n"); fprintf(fd, "\n"); } @@ -2261,6 +2292,10 @@ void print_log_header_tail(facility_t *fac, FILE *fd) void print_log_header_tail_user(facility_t *fac, FILE *fd) { + fprintf(fd, "#ifdef __cplusplus\n"); + fprintf(fd, "} /* end of extern \"C\" */\n"); + fprintf(fd, "#endif\n"); + fprintf(fd, "\n"); fprintf(fd, "#endif //_LTT_FACILITY_%s_H_\n",fac->capname); } @@ -2475,23 +2510,23 @@ int print_loader_header(facility_t *fac) fprintf(fd, "#ifdef CONFIG_LTT\n\n"); fprintf(fd,"#include \n"); if(!fac->arch) - fprintf(fd,"#include \n\n", + fprintf(fd,"#include \n\n", fac->name); else - fprintf(fd,"#include \n\n", + fprintf(fd,"#include \n\n", fac->name, fac->arch); fprintf(fd,"ltt_facility_t\tltt_facility_%s;\n", fac->name); fprintf(fd,"ltt_facility_t\tltt_facility_%s_%X;\n\n", fac->name, fac->checksum); - fprintf(fd,"#define LTT_FACILITY_SYMBOL\t\t\t\t\t\t\tltt_facility_%s\n", + fprintf(fd,"#define LTT_FACILITY_SYMBOL\t\tltt_facility_%s\n", fac->name); - fprintf(fd,"#define LTT_FACILITY_CHECKSUM_SYMBOL\t\tltt_facility_%s_%X\n", + fprintf(fd,"#define LTT_FACILITY_CHECKSUM_SYMBOL\tltt_facility_%s_%X\n", fac->name, fac->checksum); - fprintf(fd,"#define LTT_FACILITY_CHECKSUM\t\t\t\t\t\t0x%X\n", fac->checksum); - fprintf(fd,"#define LTT_FACILITY_NAME\t\t\t\t\t\t\t\t\"%s\"\n", fac->name); - fprintf(fd,"#define LTT_FACILITY_NUM_EVENTS\t\t\t\t\tfacility_%s_num_events\n\n", + fprintf(fd,"#define LTT_FACILITY_CHECKSUM\t\t0x%X\n", fac->checksum); + fprintf(fd,"#define LTT_FACILITY_NAME\t\t\"%s\"\n", fac->name); + fprintf(fd,"#define LTT_FACILITY_NUM_EVENTS\tfacility_%s_num_events\n\n", fac->name); fprintf(fd, "#endif //CONFIG_LTT\n\n"); fprintf(fd, "#endif //_LTT_FACILITY_LOADER_%s_H_\n", fac->capname); @@ -2540,7 +2575,7 @@ int print_loader_header_user(facility_t *fac) fprintf(fd,"#include \n\n", fac->name); else - fprintf(fd,"#include \n\n", + fprintf(fd,"#include \n\n", fac->name, fac->arch); fprintf(fd,"ltt_facility_t\tltt_facility_%s;\n", fac->name); @@ -2658,7 +2693,7 @@ int print_loader_c(facility_t *fac) fprintf(fd, "\tint err;\n"); fprintf(fd, "\n"); fprintf(fd, "\terr = ltt_facility_unregister(LTT_FACILITY_SYMBOL);\n"); - fprintf(fd, "\tif(err != 0)\n"); + fprintf(fd, "\tif (err != 0)\n"); fprintf(fd, "\t\tprintk(KERN_ERR \"LTT : Error in unregistering facility.\\n\");\n"); fprintf(fd, "\n"); fprintf(fd, "}\n"); @@ -2758,7 +2793,7 @@ int print_loader_c_user(facility_t *fac) fprintf(fd, "\terr = ltt_register_generic(<T_FACILITY_SYMBOL, &facility);\n"); fprintf(fd, "\tLTT_FACILITY_CHECKSUM_SYMBOL = LTT_FACILITY_SYMBOL;\n"); fprintf(fd, "\t\n"); - fprintf(fd, "\tif(err) {\n"); + fprintf(fd, "\tif (err) {\n"); fprintf(fd, "#ifdef LTT_SHOW_DEBUG\n"); fprintf(fd, "\t\tperror(\"Error in ltt_register_generic\");\n"); fprintf(fd, "#endif //LTT_SHOW_DEBUG\n");