HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: //usr/share/systemtap/tapset/linux/powerpc/sysc_sysctl32.stp
# compat_sys_sysctl ________________________________________
#
# long compat_sys_sysctl(struct __sysctl_args32 __user *args)
#
# To match the ia64/s390/x86_64 versions (and to match the syscall variant of
# this probe), the 'syscall.compat_sysctl' probe name is deprecated and
# 'syscall.sysctl32' should be used instead.  To use the old name without
# changing your script, use the '--compatible 2.8' stap option.
#

@define _SYSCALL_SYSCTL32_NAME
%(
	name = "sysctl"
%)

@define _SYSCALL_SYSCTL32_ARGSTR
%(
	argstr = sprintf("%p", args)
%)

probe
%( systemtap_v <= "2.8"
		%? syscall.compat_sysctl %: syscall.sysctl32
		%) = dw_syscall.sysctl32 !, nd_syscall.sysctl32 ? {}
probe
%( systemtap_v <= "2.8"
		%? syscall.compat_sysctl.return %: syscall.sysctl32.return
		%) = dw_syscall.sysctl32.return !, nd_syscall.sysctl32.return ? {}

# Note that these probes used to hook up to the ppc64 specific
# compat_sys_sysctl() kernel function. However, that was just a
# wrapper around sys_sysctl(). To avoid syscall nesting, we'll just
# ignore compat_sys_sysctl().

# dw_compat_sys_sysctl ________________________________________

probe
%( systemtap_v <= "2.8"
		%? dw_syscall.compat_sysctl %: dw_syscall.sysctl32
		%)
	= %( systemtap_v <= "3.1"
	    %? kernel.function("compat_sys_sysctl").call ? %: never %)
{
	@_SYSCALL_SYSCTL32_NAME
	args = %( systemtap_v <= "3.1" %? $args %: 0 %)
	@_SYSCALL_SYSCTL32_ARGSTR
}
probe
%( systemtap_v <= "2.8"
		%? dw_syscall.compat_sysctl.return %: dw_syscall.sysctl32.return
		%)
	= %( systemtap_v <= "3.1"
	    %? kernel.function("compat_sys_sysctl").return ? %: never %)
{
	@_SYSCALL_SYSCTL32_NAME
	retstr =  %( systemtap_v <= "3.1" %? return_str(1, $return) %: "0" %)
}

# nd_compat_sys_sysctl ________________________________________

probe
%( systemtap_v <= "2.8"
		%? nd_syscall.compat_sysctl %: nd_syscall.sysctl32
		%)
	= %( systemtap_v <= "3.1" %? kprobe.function("compat_sys_sysctl") ?
	    %: never %)
{
	@_SYSCALL_SYSCTL32_NAME
	asmlinkage()
	args = %( systemtap_v <= "3.1" %? pointer_arg(1) %: 0 %)
	@_SYSCALL_SYSCTL32_ARGSTR
}
probe
%( systemtap_v <= "2.8"
		%? nd_syscall.compat_sysctl.return %: nd_syscall.sysctl32.return
		%)
	= %( systemtap_v <= "3.1"
	    %? kprobe.function("compat_sys_sysctl").return ? %: never %)
{
	@_SYSCALL_SYSCTL32_NAME
	retstr =  %( systemtap_v <= "3.1" %? returnstr(1) %: "0" %)
}