1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3# description: Kprobe event string type argument
4# requires: kprobe_events
5
6case `uname -m` in
7x86_64)
8  ARG1=%di
9;;
10i[3456]86)
11  ARG1=%ax
12;;
13aarch64)
14  ARG1=%x0
15;;
16arm*)
17  ARG1=%r0
18;;
19ppc64*)
20  ARG1=%r3
21;;
22ppc*)
23  ARG1=%r3
24;;
25s390*)
26  ARG1=%r2
27;;
28*)
29  echo "Please implement other architecture here"
30  exit_untested
31esac
32
33: "Test get argument (1)"
34echo "p:testprobe tracefs_create_dir arg1=+0(${ARG1}):string" > kprobe_events
35echo 1 > events/kprobes/testprobe/enable
36echo "p:test $FUNCTION_FORK" >> kprobe_events
37grep -qe "testprobe.* arg1=\"test\"" trace
38
39echo 0 > events/kprobes/testprobe/enable
40: "Test get argument (2)"
41echo "p:testprobe tracefs_create_dir arg1=+0(${ARG1}):string arg2=+0(${ARG1}):string" > kprobe_events
42echo 1 > events/kprobes/testprobe/enable
43echo "p:test $FUNCTION_FORK" >> kprobe_events
44grep -qe "testprobe.* arg1=\"test\" arg2=\"test\"" trace
45
46