Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
  1# SPDX-License-Identifier: GPL-2.0-only
  2
  3clear_trace() { # reset trace output
  4    echo > trace
  5}
  6
  7disable_tracing() { # stop trace recording
  8    echo 0 > tracing_on
  9}
 10
 11enable_tracing() { # start trace recording
 12    echo 1 > tracing_on
 13}
 14
 15reset_tracer() { # reset the current tracer
 16    echo nop > current_tracer
 17}
 18
 19reset_trigger_file() {
 20    # remove action triggers first
 21    grep -H ':on[^:]*(' $@ |
 22    while read line; do
 23        cmd=`echo $line | cut -f2- -d: | cut -f1 -d"["`
 24	file=`echo $line | cut -f1 -d:`
 25	echo "!$cmd" >> $file
 26    done
 27    grep -Hv ^# $@ |
 28    while read line; do
 29        cmd=`echo $line | cut -f2- -d: | cut -f1 -d"["`
 30	file=`echo $line | cut -f1 -d:`
 31	echo "!$cmd" > $file
 32    done
 33}
 34
 35reset_trigger() { # reset all current setting triggers
 36    if [ -d events/synthetic ]; then
 37        reset_trigger_file events/synthetic/*/trigger
 38    fi
 39    reset_trigger_file events/*/*/trigger
 40}
 41
 42reset_events_filter() { # reset all current setting filters
 43    grep -v ^none events/*/*/filter |
 44    while read line; do
 45	echo 0 > `echo $line | cut -f1 -d:`
 46    done
 47}
 48
 49reset_ftrace_filter() { # reset all triggers in set_ftrace_filter
 50    if [ ! -f set_ftrace_filter ]; then
 51      return 0
 52    fi
 53    echo > set_ftrace_filter
 54    grep -v '^#' set_ftrace_filter | while read t; do
 55	tr=`echo $t | cut -d: -f2`
 56	if [ "$tr" = "" ]; then
 57	    continue
 58	fi
 59	if ! grep -q "$t" set_ftrace_filter; then
 60		continue;
 61	fi
 62	name=`echo $t | cut -d: -f1 | cut -d' ' -f1`
 63	if [ $tr = "enable_event" -o $tr = "disable_event" ]; then
 64	    tr=`echo $t | cut -d: -f2-4`
 65	    limit=`echo $t | cut -d: -f5`
 66	else
 67	    tr=`echo $t | cut -d: -f2`
 68	    limit=`echo $t | cut -d: -f3`
 69	fi
 70	if [ "$limit" != "unlimited" ]; then
 71	    tr="$tr:$limit"
 72	fi
 73	echo "!$name:$tr" > set_ftrace_filter
 74    done
 75}
 76
 77disable_events() {
 78    echo 0 > events/enable
 79}
 80
 81clear_synthetic_events() { # reset all current synthetic events
 82    grep -v ^# synthetic_events |
 83    while read line; do
 84        echo "!$line" >> synthetic_events
 85    done
 86}
 87
 88initialize_ftrace() { # Reset ftrace to initial-state
 89# As the initial state, ftrace will be set to nop tracer,
 90# no events, no triggers, no filters, no function filters,
 91# no probes, and tracing on.
 92    disable_tracing
 93    reset_tracer
 94    reset_trigger
 95    reset_events_filter
 96    reset_ftrace_filter
 97    disable_events
 98    [ -f set_event_pid ] && echo > set_event_pid
 99    [ -f set_ftrace_pid ] && echo > set_ftrace_pid
100    [ -f set_ftrace_notrace ] && echo > set_ftrace_notrace
101    [ -f set_graph_function ] && echo | tee set_graph_*
102    [ -f stack_trace_filter ] && echo > stack_trace_filter
103    [ -f kprobe_events ] && echo > kprobe_events
104    [ -f uprobe_events ] && echo > uprobe_events
105    [ -f synthetic_events ] && echo > synthetic_events
106    [ -f snapshot ] && echo 0 > snapshot
107    clear_trace
108    enable_tracing
109}