brintos

brintos / linux-shallow public Read only

0
0
Text · 2.9 KiB · c300eb0 Raw
98 lines · plain
1#!/bin/sh2# SPDX-License-Identifier: GPL-2.03# description: Generic dynamic event - add/remove eprobe events4# requires: dynamic_events events/syscalls/sys_enter_openat "<attached-group>.<attached-event> [<args>]":README5 6echo 0 > events/enable7 8clear_dynamic_events9 10SYSTEM="syscalls"11EVENT="sys_enter_openat"12FIELD="filename"13EPROBE="eprobe_open"14OPTIONS="file=+0(\$filename):ustring"15echo "e:$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events16 17grep -q "$EPROBE" dynamic_events18test -d events/eprobes/$EPROBE19 20echo 1 > events/eprobes/$EPROBE/enable21ls22echo 0 > events/eprobes/$EPROBE/enable23 24content=`grep '^ *ls-' trace | grep 'file='`25nocontent=`grep '^ *ls-' trace | grep 'file=' | grep -v -e '"/' -e '"."' -e '(fault)' ` || true26 27if [ -z "$content" ]; then28	exit_fail29fi30 31if [ ! -z "$nocontent" ]; then32	exit_fail33fi34 35echo "-:$EPROBE" >> dynamic_events36 37! grep -q "$EPROBE" dynamic_events38! test -d events/eprobes/$EPROBE39 40# test various ways to remove the probe (already tested with just event name)41 42# With group name43echo "e:$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events44grep -q "$EPROBE" dynamic_events45test -d events/eprobes/$EPROBE46echo "-:eprobes/$EPROBE" >> dynamic_events47! grep -q "$EPROBE" dynamic_events48! test -d events/eprobes/$EPROBE49 50# With group name and system/event51echo "e:$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events52grep -q "$EPROBE" dynamic_events53test -d events/eprobes/$EPROBE54echo "-:eprobes/$EPROBE $SYSTEM/$EVENT" >> dynamic_events55! grep -q "$EPROBE" dynamic_events56! test -d events/eprobes/$EPROBE57 58# With just event name and system/event59echo "e:$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events60grep -q "$EPROBE" dynamic_events61test -d events/eprobes/$EPROBE62echo "-:$EPROBE $SYSTEM/$EVENT" >> dynamic_events63! grep -q "$EPROBE" dynamic_events64! test -d events/eprobes/$EPROBE65 66# With just event name and system/event and options67echo "e:$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events68grep -q "$EPROBE" dynamic_events69test -d events/eprobes/$EPROBE70echo "-:$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events71! grep -q "$EPROBE" dynamic_events72! test -d events/eprobes/$EPROBE73 74# With group name and system/event and options75echo "e:$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events76grep -q "$EPROBE" dynamic_events77test -d events/eprobes/$EPROBE78echo "-:eprobes/$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events79! grep -q "$EPROBE" dynamic_events80! test -d events/eprobes/$EPROBE81 82# Finally make sure what is in the dynamic_events file clears it too83echo "e:$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events84LINE=`sed -e '/$EPROBE/s/^e/-/' < dynamic_events`85test -d events/eprobes/$EPROBE86echo "-:eprobes/$EPROBE $SYSTEM/$EVENT $OPTIONS" >> dynamic_events87! grep -q "$EPROBE" dynamic_events88! test -d events/eprobes/$EPROBE89 90if grep -q "e\[:\[<group>/]\[<event>]]" README; then91	echo "e:mygroup/ $SYSTEM/$EVENT $OPTIONS" >> dynamic_events92	test -d events/mygroup93	echo "-:mygroup/" >> dynamic_events94	! test -d events/mygroup95fi96 97clear_trace98