1#!/bin/sh 2# SPDX-License-Identifier: GPL-2.0 3# description: Kprobe event char 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;; 28mips*) 29 ARG1=%r4 30;; 31loongarch*) 32 ARG1=%r4 33;; 34riscv*) 35 ARG1=%a0 36;; 37*) 38 echo "Please implement other architecture here" 39 exit_untested 40esac 41 42: "Test get argument (1)" 43if grep -q eventfs_create_dir available_filter_functions; then 44 DIR_NAME="eventfs_create_dir" 45elif grep -q eventfs_add_dir available_filter_functions; then 46 DIR_NAME="eventfs_add_dir" 47else 48 DIR_NAME="tracefs_create_dir" 49fi 50echo "p:testprobe ${DIR_NAME} arg1=+0(${ARG1}):char" > kprobe_events 51echo 1 > events/kprobes/testprobe/enable 52echo "p:test $FUNCTION_FORK" >> kprobe_events 53grep -qe "testprobe.* arg1='t'" trace 54 55echo 0 > events/kprobes/testprobe/enable 56: "Test get argument (2)" 57echo "p:testprobe ${DIR_NAME} arg1=+0(${ARG1}):char arg2=+0(${ARG1}):char[4]" > kprobe_events 58echo 1 > events/kprobes/testprobe/enable 59echo "p:test $FUNCTION_FORK" >> kprobe_events 60grep -qe "testprobe.* arg1='t' arg2={'t','e','s','t'}" trace 61