Module Name:    src
Committed By:   matt
Date:           Wed Aug  7 17:06:22 UTC 2013

Added Files:
        src/sys/modules/arch/arm: kmodhide.awk kmodtramp.awk kmodwrap.awk

Log Message:
awk support scripts to generate trampolines in modules.
(adapted from previous LKM method).
<machine/asm.h> now has a KMODTRAMPOLINE macro to generate the trampoline


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/sys/modules/arch/arm/kmodhide.awk \
    src/sys/modules/arch/arm/kmodtramp.awk \
    src/sys/modules/arch/arm/kmodwrap.awk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: src/sys/modules/arch/arm/kmodhide.awk
diff -u /dev/null src/sys/modules/arch/arm/kmodhide.awk:1.1
--- /dev/null	Wed Aug  7 17:06:22 2013
+++ src/sys/modules/arch/arm/kmodhide.awk	Wed Aug  7 17:06:22 2013
@@ -0,0 +1,5 @@
+#	$NetBSD: kmodhide.awk,v 1.1 2013/08/07 17:06:22 matt Exp $
+
+substr($NF, 1, 7) == "__wrap_" {
+	print " --localize-symbol "$NF;
+}
Index: src/sys/modules/arch/arm/kmodtramp.awk
diff -u /dev/null src/sys/modules/arch/arm/kmodtramp.awk:1.1
--- /dev/null	Wed Aug  7 17:06:22 2013
+++ src/sys/modules/arch/arm/kmodtramp.awk	Wed Aug  7 17:06:22 2013
@@ -0,0 +1,18 @@
+#	$NetBSD: kmodtramp.awk,v 1.1 2013/08/07 17:06:22 matt Exp $
+#
+BEGIN {
+	print "#include <machine/asm.h>"
+}
+
+$2 == "R_ARM_PC24" || $2 == "R_ARM_CALL" || $2 == "R_ARM_JUMP24" {
+	if (x[$3] != "")
+		next;
+	if (index($3, ".text") > 0)
+		next;
+	fn=$3
+	sub("__wrap_", "", fn)
+	if (fn == $3)
+		next;
+	print "KMODTRAMPOLINE("fn")"
+	x[$3]=".";
+}
Index: src/sys/modules/arch/arm/kmodwrap.awk
diff -u /dev/null src/sys/modules/arch/arm/kmodwrap.awk:1.1
--- /dev/null	Wed Aug  7 17:06:22 2013
+++ src/sys/modules/arch/arm/kmodwrap.awk	Wed Aug  7 17:06:22 2013
@@ -0,0 +1,10 @@
+#	$NetBSD: kmodwrap.awk,v 1.1 2013/08/07 17:06:22 matt Exp $
+
+$2 == "R_ARM_PC24" || $2 == "R_ARM_CALL" || $2 == "R_ARM_JUMP24" {
+	if (x[$3] != "")
+		next;
+	if (index($3, ".text") > 0)
+		next
+	printf " --wrap="$3;
+	x[$3]=".";
+}

Reply via email to