aboutsummaryrefslogtreecommitdiff
path: root/sys/modules/dtrace
diff options
context:
space:
mode:
Diffstat (limited to 'sys/modules/dtrace')
-rw-r--r--sys/modules/dtrace/Makefile38
-rw-r--r--sys/modules/dtrace/Makefile.inc23
-rw-r--r--sys/modules/dtrace/dtaudit/Makefile13
-rw-r--r--sys/modules/dtrace/dtmalloc/Makefile13
-rw-r--r--sys/modules/dtrace/dtnfscl/Makefile13
-rw-r--r--sys/modules/dtrace/dtrace/Makefile65
-rw-r--r--sys/modules/dtrace/dtrace_test/Makefile14
-rw-r--r--sys/modules/dtrace/dtraceall/Makefile10
-rw-r--r--sys/modules/dtrace/dtraceall/dtraceall.c88
-rw-r--r--sys/modules/dtrace/fasttrap/Makefile28
-rw-r--r--sys/modules/dtrace/fbt/Makefile23
-rw-r--r--sys/modules/dtrace/kinst/Makefile23
-rw-r--r--sys/modules/dtrace/profile/Makefile13
-rw-r--r--sys/modules/dtrace/prototype/Makefile13
-rw-r--r--sys/modules/dtrace/sdt/Makefile13
-rw-r--r--sys/modules/dtrace/systrace/Makefile13
-rw-r--r--sys/modules/dtrace/systrace_freebsd32/Makefile14
-rw-r--r--sys/modules/dtrace/systrace_linux/Makefile15
-rw-r--r--sys/modules/dtrace/systrace_linux32/Makefile15
19 files changed, 447 insertions, 0 deletions
diff --git a/sys/modules/dtrace/Makefile b/sys/modules/dtrace/Makefile
new file mode 100644
index 000000000000..3a3769b8b4b5
--- /dev/null
+++ b/sys/modules/dtrace/Makefile
@@ -0,0 +1,38 @@
+.include "Makefile.inc"
+
+SUBDIR= dtaudit \
+ dtmalloc \
+ dtnfscl \
+ dtrace \
+ dtraceall \
+ dtrace_test \
+ fbt \
+ profile \
+ prototype \
+ systrace
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
+SUBDIR+= fasttrap systrace_linux
+.endif
+.if ${MACHINE_CPUARCH} == "amd64"
+SUBDIR+= systrace_linux32
+SUBDIR+= kinst
+.endif
+.if ${MACHINE_CPUARCH} == "riscv" || ${MACHINE_CPUARCH} == "aarch64"
+SUBDIR+= kinst
+.endif
+.if ${MACHINE_CPUARCH} == "powerpc"
+SUBDIR+= fasttrap
+.endif
+.if ${MACHINE_CPUARCH} == "amd64" || \
+ ${MACHINE_CPUARCH} == "aarch64" || \
+ ${MACHINE_ARCH} == "powerpc64"
+.if !empty(COMPAT_FREEBSD32_ENABLED)
+SUBDIR+= systrace_freebsd32
+.endif
+.endif
+.if ${MACHINE_CPUARCH} != "powerpc" || ${MACHINE_ARCH} == "powerpc64"
+SUBDIR+= sdt
+.endif
+
+.include <bsd.subdir.mk>
diff --git a/sys/modules/dtrace/Makefile.inc b/sys/modules/dtrace/Makefile.inc
new file mode 100644
index 000000000000..c23cf4c476ce
--- /dev/null
+++ b/sys/modules/dtrace/Makefile.inc
@@ -0,0 +1,23 @@
+IGNORE_PRAGMA= 1
+
+load :
+ -kldload dtrace
+.if ${MACHINE_CPUARCH} == "i386"
+ -kldload sdt
+ -kldload fbt
+ -kldload prototype
+.endif
+ -kldload profile
+ -kldload systrace
+ kldstat
+
+unload :
+ -kldunload systrace
+ -kldunload profile
+.if ${MACHINE_CPUARCH} == "i386"
+ -kldunload prototype
+ -kldunload fbt
+ -kldunload sdt
+.endif
+ -kldunload dtrace
+ kldstat
diff --git a/sys/modules/dtrace/dtaudit/Makefile b/sys/modules/dtrace/dtaudit/Makefile
new file mode 100644
index 000000000000..205c4ef08795
--- /dev/null
+++ b/sys/modules/dtrace/dtaudit/Makefile
@@ -0,0 +1,13 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/security/audit
+
+KMOD= dtaudit
+SRCS= audit_dtrace.c \
+ vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/dtmalloc/Makefile b/sys/modules/dtrace/dtmalloc/Makefile
new file mode 100644
index 000000000000..6b58ac097378
--- /dev/null
+++ b/sys/modules/dtrace/dtmalloc/Makefile
@@ -0,0 +1,13 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/dtmalloc
+
+KMOD= dtmalloc
+SRCS= dtmalloc.c
+SRCS+= vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/dtnfscl/Makefile b/sys/modules/dtrace/dtnfscl/Makefile
new file mode 100644
index 000000000000..11b254c3d7bd
--- /dev/null
+++ b/sys/modules/dtrace/dtnfscl/Makefile
@@ -0,0 +1,13 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/fs/nfsclient
+
+KMOD= dtnfscl
+SRCS= nfs_clkdtrace.c \
+ vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/dtrace/Makefile b/sys/modules/dtrace/dtrace/Makefile
new file mode 100644
index 000000000000..472de0ff944b
--- /dev/null
+++ b/sys/modules/dtrace/dtrace/Makefile
@@ -0,0 +1,65 @@
+SYSDIR?= ${SRCTOP}/sys
+
+ARCHDIR= ${MACHINE_CPUARCH}
+
+.PATH: ${SYSDIR}/cddl/contrib/opensolaris/uts/common/dtrace
+.PATH: ${SYSDIR}/cddl/compat/opensolaris/kern
+.PATH: ${SYSDIR}/cddl/kern
+.PATH: ${SYSDIR}/cddl/dev/dtrace
+.PATH: ${SYSDIR}/cddl/dev/dtrace/${ARCHDIR}
+
+KMOD= dtrace
+SRCS= dtrace.c \
+ dtrace_xoroshiro128_plus.c \
+ dtrace_asm.S \
+ dtrace_isa.c \
+ dtrace_subr.c
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
+.PATH: ${SYSDIR}/cddl/dev/dtrace/x86
+SRCS+= dis_tables.c \
+ instr_size.c
+CFLAGS+= -I${SYSDIR}/cddl/contrib/opensolaris/uts/intel \
+ -I${SYSDIR}/cddl/dev/dtrace/x86
+.endif
+
+.if ${MACHINE_CPUARCH} == "riscv" || ${MACHINE_CPUARCH} == "aarch64"
+SRCS+= instr_size.c
+.endif
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+SRCS+= bus_if.h device_if.h vnode_if.h
+
+# Needed for dtrace_asm.S
+DPSRCS+= assym.inc
+
+# These are needed for assym.inc
+SRCS+= opt_kstack_pages.h opt_nfs.h opt_hwpmc_hooks.h
+
+#This is needed for dtrace.c
+SRCS += opensolaris_taskq.c
+
+.if ${MACHINE_CPUARCH} == "i386"
+SRCS+= opt_apic.h
+.endif
+
+CFLAGS+= -I${SYSDIR}/cddl/compat/opensolaris \
+ -I${SYSDIR}/cddl/dev/dtrace \
+ -I${SYSDIR}/cddl/dev/dtrace/${ARCHDIR} \
+ -I${SYSDIR}/cddl/contrib/opensolaris/uts/common \
+ -I${SYSDIR}/cddl/contrib/opensolaris/uts/common/dtrace \
+ -I${SYSDIR}/cddl/contrib/opensolaris/common/util \
+ -I${SYSDIR} -DDIS_MEM
+
+EXPORT_SYMS= YES
+
+dtrace_asm.o: assym.inc
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
+CFLAGS.dtrace_asm.S+= -D_SYS_ERRNO_H_ -D_SYS_PARAM_H_ -DLOCORE
+CWARNFLAGS+= -Wno-parentheses
+CWARNFLAGS+= -Wno-cast-qual
+CWARNFLAGS+= -Wno-unused
diff --git a/sys/modules/dtrace/dtrace_test/Makefile b/sys/modules/dtrace/dtrace_test/Makefile
new file mode 100644
index 000000000000..dacb44710fb4
--- /dev/null
+++ b/sys/modules/dtrace/dtrace_test/Makefile
@@ -0,0 +1,14 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/dtrace
+
+KMOD= dtrace_test
+SRCS= dtrace_test.c
+
+SRCS+= vnode_if.h
+
+CFLAGS+= -I${SYSDIR}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/dtraceall/Makefile b/sys/modules/dtrace/dtraceall/Makefile
new file mode 100644
index 000000000000..8228a0f0c98f
--- /dev/null
+++ b/sys/modules/dtrace/dtraceall/Makefile
@@ -0,0 +1,10 @@
+SYSDIR?= ${SRCTOP}/sys
+
+KMOD= dtraceall
+SRCS= dtraceall.c opt_nfs.h
+
+CFLAGS+= -I${SYSDIR}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/dtraceall/dtraceall.c b/sys/modules/dtrace/dtraceall/dtraceall.c
new file mode 100644
index 000000000000..1978b9ead362
--- /dev/null
+++ b/sys/modules/dtrace/dtraceall/dtraceall.c
@@ -0,0 +1,88 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (C) 2008 John Birrell <jb@freebsd.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/conf.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/errno.h>
+#include "opt_nfs.h"
+
+static int
+dtraceall_modevent(module_t mod __unused, int type, void *data __unused)
+{
+ int error = 0;
+
+ switch (type) {
+ case MOD_LOAD:
+ break;
+
+ case MOD_UNLOAD:
+ break;
+
+ case MOD_SHUTDOWN:
+ break;
+
+ default:
+ error = EOPNOTSUPP;
+ break;
+
+ }
+
+ return (error);
+}
+
+DEV_MODULE(dtraceall, dtraceall_modevent, NULL);
+MODULE_VERSION(dtraceall, 1);
+
+/* All the DTrace modules should be dependencies here: */
+MODULE_DEPEND(dtraceall, opensolaris, 1, 1, 1);
+MODULE_DEPEND(dtraceall, dtrace, 1, 1, 1);
+#if defined(AUDIT)
+MODULE_DEPEND(dtraceall, dtaudit, 1, 1, 1);
+#endif
+MODULE_DEPEND(dtraceall, dtmalloc, 1, 1, 1);
+#if defined(NFSCL)
+MODULE_DEPEND(dtraceall, dtnfscl, 1, 1, 1);
+#endif
+#if defined(__aarch64__) || defined(__amd64__) || defined(__arm__) || \
+ defined(__i386__) || defined(__powerpc__) || defined(__riscv)
+MODULE_DEPEND(dtraceall, fbt, 1, 1, 1);
+#endif
+#if defined(__amd64__) || defined(__aarch64__) || defined(__riscv)
+MODULE_DEPEND(dtraceall, kinst, 1, 1, 1);
+#endif
+#if defined(__amd64__) || defined(__i386__) || defined(__powerpc__)
+MODULE_DEPEND(dtraceall, fasttrap, 1, 1, 1);
+#endif
+MODULE_DEPEND(dtraceall, sdt, 1, 1, 1);
+MODULE_DEPEND(dtraceall, systrace, 1, 1, 1);
+#if defined(COMPAT_FREEBSD32)
+MODULE_DEPEND(dtraceall, systrace_freebsd32, 1, 1, 1);
+#endif
+MODULE_DEPEND(dtraceall, profile, 1, 1, 1);
diff --git a/sys/modules/dtrace/fasttrap/Makefile b/sys/modules/dtrace/fasttrap/Makefile
new file mode 100644
index 000000000000..af0cace6c5a9
--- /dev/null
+++ b/sys/modules/dtrace/fasttrap/Makefile
@@ -0,0 +1,28 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/contrib/opensolaris/uts/common/dtrace
+
+KMOD= fasttrap
+SRCS= fasttrap.c fasttrap_isa.c
+SRCS+= vnode_if.h opt_global.h
+
+CFLAGS+= -include ${.OBJDIR}/opt_global.h
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
+CFLAGS+= -I${SYSDIR}/cddl/contrib/opensolaris/uts/intel
+.PATH: ${SYSDIR}/cddl/contrib/opensolaris/uts/intel/dtrace
+.elif ${MACHINE_CPUARCH} == "powerpc"
+CFLAGS+= -I${SYSDIR}/cddl/contrib/opensolaris/uts/powerpc
+.PATH: ${SYSDIR}/cddl/contrib/opensolaris/uts/powerpc/dtrace
+.endif
+
+.PATH: ${SYSDIR}/contrib/openzfs/module/unicode
+SRCS+= u8_textprep.c
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
+
+CWARNFLAGS+= -Wno-cast-qual
+CWARNFLAGS+= -Wno-unused
diff --git a/sys/modules/dtrace/fbt/Makefile b/sys/modules/dtrace/fbt/Makefile
new file mode 100644
index 000000000000..97898091fcec
--- /dev/null
+++ b/sys/modules/dtrace/fbt/Makefile
@@ -0,0 +1,23 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/fbt
+
+KMOD= fbt
+SRCS= fbt.c fbt_isa.c
+SRCS+= vnode_if.h
+
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
+CFLAGS+= -I${SYSDIR}/cddl/dev/fbt/x86
+.PATH: ${SYSDIR}/cddl/dev/fbt/x86
+.else
+CFLAGS+= -I${SYSDIR}/cddl/dev/fbt/${MACHINE_CPUARCH}
+.PATH: ${SYSDIR}/cddl/dev/fbt/${MACHINE_CPUARCH}
+.endif
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+CFLAGS+= -I${SYSDIR}/cddl/dev/fbt
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/kinst/Makefile b/sys/modules/dtrace/kinst/Makefile
new file mode 100644
index 000000000000..1cbfe5e72ff1
--- /dev/null
+++ b/sys/modules/dtrace/kinst/Makefile
@@ -0,0 +1,23 @@
+SYSDIR?= ${SRCTOP}/sys
+
+KMOD= kinst
+SRCS= kinst.c kinst_isa.c trampoline.c
+
+CFLAGS+= ${OPENZFS_CFLAGS} \
+ -I${SYSDIR}/cddl/dev/kinst \
+ -I${SYSDIR}/cddl/dev/kinst/${MACHINE_CPUARCH}
+
+.PATH: ${SYSDIR}/cddl/dev/kinst \
+ ${SYSDIR}/cddl/dev/kinst/${MACHINE_CPUARCH}
+
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
+CFLAGS+= -I${SYSDIR}/cddl/dev/dtrace/x86
+.PATH: ${SYSDIR}/cddl/dev/dtrace/x86
+.else
+CFLAGS+= -I${SYSDIR}/cddl/dev/dtrace/${MACHINE_CPUARCH}
+.PATH: ${SYSDIR}/cddl/dev/dtrace/${MACHINE_CPUARCH}
+.endif
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/profile/Makefile b/sys/modules/dtrace/profile/Makefile
new file mode 100644
index 000000000000..7cb53c4c788e
--- /dev/null
+++ b/sys/modules/dtrace/profile/Makefile
@@ -0,0 +1,13 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/profile
+
+KMOD= profile
+SRCS= profile.c
+SRCS+= vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/prototype/Makefile b/sys/modules/dtrace/prototype/Makefile
new file mode 100644
index 000000000000..d4e8b57aac67
--- /dev/null
+++ b/sys/modules/dtrace/prototype/Makefile
@@ -0,0 +1,13 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev
+
+KMOD= prototype
+SRCS= prototype.c
+SRCS+= vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/sdt/Makefile b/sys/modules/dtrace/sdt/Makefile
new file mode 100644
index 000000000000..e8db8a77f353
--- /dev/null
+++ b/sys/modules/dtrace/sdt/Makefile
@@ -0,0 +1,13 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/sdt
+
+KMOD= sdt
+SRCS= sdt.c
+SRCS+= vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/systrace/Makefile b/sys/modules/dtrace/systrace/Makefile
new file mode 100644
index 000000000000..dff3ca03db8a
--- /dev/null
+++ b/sys/modules/dtrace/systrace/Makefile
@@ -0,0 +1,13 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/systrace
+
+KMOD= systrace
+SRCS= systrace.c
+SRCS+= vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/systrace_freebsd32/Makefile b/sys/modules/dtrace/systrace_freebsd32/Makefile
new file mode 100644
index 000000000000..06023e79dea2
--- /dev/null
+++ b/sys/modules/dtrace/systrace_freebsd32/Makefile
@@ -0,0 +1,14 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/systrace
+
+KMOD= systrace_freebsd32
+SRCS= systrace.c
+SRCS+= vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+CFLAGS+= -DFREEBSD32_SYSTRACE
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/systrace_linux/Makefile b/sys/modules/dtrace/systrace_linux/Makefile
new file mode 100644
index 000000000000..204b40ab674c
--- /dev/null
+++ b/sys/modules/dtrace/systrace_linux/Makefile
@@ -0,0 +1,15 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/systrace
+
+KMOD= systrace_linux
+
+SRCS= systrace.c
+SRCS+= vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+CFLAGS+= -DLINUX_SYSTRACE
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h
diff --git a/sys/modules/dtrace/systrace_linux32/Makefile b/sys/modules/dtrace/systrace_linux32/Makefile
new file mode 100644
index 000000000000..82b6482a7ad2
--- /dev/null
+++ b/sys/modules/dtrace/systrace_linux32/Makefile
@@ -0,0 +1,15 @@
+SYSDIR?= ${SRCTOP}/sys
+
+.PATH: ${SYSDIR}/cddl/dev/systrace
+
+KMOD= systrace_linux32
+
+SRCS= systrace.c
+SRCS+= vnode_if.h
+
+CFLAGS+= ${OPENZFS_CFLAGS}
+CFLAGS+= -DLINUX32_SYSTRACE
+
+.include <bsd.kmod.mk>
+
+CFLAGS+= -include ${SYSDIR}/cddl/compat/opensolaris/sys/debug_compat.h