summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2013-09-21 23:05:44 +0000
committermarkj <markj@FreeBSD.org>2013-09-21 23:05:44 +0000
commit885bf4020f2027f51678b03c0e0dfa1822c60b05 (patch)
tree6f31e195d92ed386253f4d2529540638bf5180a7
parentd2559ef64a616f6e1f37ae51afb53e02d0d3bd89 (diff)
downloadFreeBSD-src-885bf4020f2027f51678b03c0e0dfa1822c60b05.zip
FreeBSD-src-885bf4020f2027f51678b03c0e0dfa1822c60b05.tar.gz
Omit "__restrict" when generating syscall argument strings. DTrace doesn't
handle it and cannot determine the argument type when it's present. Approved by: re (gjb) MFC after: 1 week
-rw-r--r--sys/kern/makesyscalls.sh14
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/kern/makesyscalls.sh b/sys/kern/makesyscalls.sh
index 4345e86..9db6dec 100644
--- a/sys/kern/makesyscalls.sh
+++ b/sys/kern/makesyscalls.sh
@@ -403,19 +403,21 @@ s/\$//g
printf("\t\tswitch(ndx) {\n") > systracetmp
printf("\t\tstruct %s *p = params;\n", argalias) > systrace
for (i = 1; i <= argc; i++) {
- printf("\t\tcase %d:\n\t\t\tp = \"%s\";\n\t\t\tbreak;\n", i - 1, argtype[i]) > systracetmp
- if (index(argtype[i], "*") > 0 || argtype[i] == "caddr_t")
+ arg = argtype[i]
+ sub("__restrict$", "", arg)
+ printf("\t\tcase %d:\n\t\t\tp = \"%s\";\n\t\t\tbreak;\n", i - 1, arg) > systracetmp
+ if (index(arg, "*") > 0 || arg == "caddr_t")
printf("\t\tuarg[%d] = (intptr_t) p->%s; /* %s */\n", \
i - 1, \
- argname[i], argtype[i]) > systrace
- else if (substr(argtype[i], 1, 1) == "u" || argtype[i] == "size_t")
+ argname[i], arg) > systrace
+ else if (substr(arg, 1, 1) == "u" || arg == "size_t")
printf("\t\tuarg[%d] = p->%s; /* %s */\n", \
i - 1, \
- argname[i], argtype[i]) > systrace
+ argname[i], arg) > systrace
else
printf("\t\tiarg[%d] = p->%s; /* %s */\n", \
i - 1, \
- argname[i], argtype[i]) > systrace
+ argname[i], arg) > systrace
}
printf("\t\tdefault:\n\t\t\tbreak;\n\t\t};\n") > systracetmp
OpenPOWER on IntegriCloud