|  | /* | 
|  | * trace event based perf counter profiling | 
|  | * | 
|  | * Copyright (C) 2009 Red Hat Inc, Peter Zijlstra <pzijlstr@redhat.com> | 
|  | * | 
|  | */ | 
|  |  | 
|  | #include "trace.h" | 
|  |  | 
|  | int ftrace_profile_enable(int event_id) | 
|  | { | 
|  | struct ftrace_event_call *event; | 
|  | int ret = -EINVAL; | 
|  |  | 
|  | mutex_lock(&event_mutex); | 
|  | list_for_each_entry(event, &ftrace_events, list) { | 
|  | if (event->id == event_id) { | 
|  | ret = event->profile_enable(event); | 
|  | break; | 
|  | } | 
|  | } | 
|  | mutex_unlock(&event_mutex); | 
|  |  | 
|  | return ret; | 
|  | } | 
|  |  | 
|  | void ftrace_profile_disable(int event_id) | 
|  | { | 
|  | struct ftrace_event_call *event; | 
|  |  | 
|  | mutex_lock(&event_mutex); | 
|  | list_for_each_entry(event, &ftrace_events, list) { | 
|  | if (event->id == event_id) { | 
|  | event->profile_disable(event); | 
|  | break; | 
|  | } | 
|  | } | 
|  | mutex_unlock(&event_mutex); | 
|  | } |