int print_event_logging_function_user(char *basename, facility_t *fac,
event_t *event, FILE *fd)
{
+ char *attrib;
+ if(event->no_instrument_function) {
+ attrib = "__attribute__((no_instrument_function)) ";
+ } else {
+ attrib = "";
+ }
if(event->param_buffer) {
- fprintf(fd, "static inline int trace_%s_param_buffer(\n", basename);
+ fprintf(fd, "static inline %sint trace_%s_param_buffer(\n", attrib, basename);
} else {
- fprintf(fd, "static inline int trace_%s(\n", basename);
+ fprintf(fd, "static inline %sint trace_%s(\n",attrib, basename);
}
int has_argument = 0;
int has_type_fixed = 0;
ev->per_trace = 0;
ev->per_tracefile = 0;
ev->param_buffer = 0;
+ ev->no_instrument_function = 0;
while(1) {
token = getToken(in);
ev->per_tracefile = 1;
} else if(!strcmp("param_buffer", token)) {
ev->param_buffer = 1;
+ } else if(!strcmp("no_instrument_function", token)) {
+ ev->no_instrument_function = 1;
}
}
int per_trace; /* Is the event able to be logged to a specific trace ? */
int per_tracefile; /* Must we log this event in a specific tracefile ? */
int param_buffer; /* For userspace tracing : takes a buffer as parameter? */
+ int no_instrument_function;
} event_t;
typedef struct _facility {