[Midnightbsd-cvs] src [9958] trunk/sys/kern/makesyscalls.sh: sync
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sat May 26 10:28:53 EDT 2018
Revision: 9958
http://svnweb.midnightbsd.org/src/?rev=9958
Author: laffer1
Date: 2018-05-26 10:28:53 -0400 (Sat, 26 May 2018)
Log Message:
-----------
sync
Modified Paths:
--------------
trunk/sys/kern/makesyscalls.sh
Property Changed:
----------------
trunk/sys/kern/makesyscalls.sh
Modified: trunk/sys/kern/makesyscalls.sh
===================================================================
--- trunk/sys/kern/makesyscalls.sh 2018-05-26 14:27:48 UTC (rev 9957)
+++ trunk/sys/kern/makesyscalls.sh 2018-05-26 14:28:53 UTC (rev 9958)
@@ -1,5 +1,6 @@
#! /bin/sh -
# @(#)makesyscalls.sh 8.1 (Berkeley) 6/10/93
+# $FreeBSD: stable/10/sys/kern/makesyscalls.sh 318172 2017-05-11 04:29:20Z jhb $
# $MidnightBSD$
set -e
@@ -38,6 +39,7 @@
sysarg="sysarg.switch.$$"
sysprotoend="sysprotoend.$$"
systracetmp="systrace.$$"
+systraceret="systraceret.$$"
if [ -r capabilities.conf ]; then
capenabled=`cat capabilities.conf | grep -v "^#" | grep -v "^$"`
@@ -46,9 +48,9 @@
capenabled=""
fi
-trap "rm $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp" 0
+trap "rm $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp $systraceret" 0
-touch $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp
+touch $sysaue $sysdcl $syscompat $syscompatdcl $syscompat4 $syscompat4dcl $syscompat6 $syscompat6dcl $syscompat7 $syscompat7dcl $sysent $sysinc $sysarg $sysprotoend $systracetmp $systraceret
case $# in
0) echo "usage: $0 input-file <config-file>" 1>&2
@@ -56,12 +58,11 @@
;;
esac
-if [ -n "$2" -a -f "$2" ]; then
+if [ -n "$2" ]; then
. $2
fi
sed -e '
-s/\$//g
:join
/\\$/{a\
@@ -96,6 +97,7 @@
sysmk = \"$sysmk\"
systrace = \"$systrace\"
systracetmp = \"$systracetmp\"
+ systraceret = \"$systraceret\"
compat = \"$compat\"
compat4 = \"$compat4\"
compat6 = \"$compat6\"
@@ -109,53 +111,28 @@
split(capenabled_string, capenabled, ",");
+ printf "\n/* The casts are bogus but will do for now. */\n" > sysent
+ printf "struct sysent %s[] = {\n",switchname > sysent
+
printf "/*\n * System call switch table.\n *\n" > syssw
printf " * DO NOT EDIT-- this file is automatically generated.\n" > syssw
printf " * $%s$\n", "MidnightBSD" > syssw
+ printf " */\n\n" > syssw
printf "/*\n * System call prototypes.\n *\n" > sysarg
printf " * DO NOT EDIT-- this file is automatically generated.\n" > sysarg
printf " * $%s$\n", "MidnightBSD" > sysarg
-
- printf "\n#ifdef %s\n\n", compat > syscompat
- printf "\n#ifdef %s\n\n", compat4 > syscompat4
- printf "\n#ifdef %s\n\n", compat6 > syscompat6
- printf "\n#ifdef %s\n\n", compat7 > syscompat7
-
- printf "/*\n * System call names.\n *\n" > sysnames
- printf " * DO NOT EDIT-- this file is automatically generated.\n" > sysnames
- printf " * $%s$\n", "MidnightBSD" > sysnames
-
- printf "/*\n * System call numbers.\n *\n" > syshdr
- printf " * DO NOT EDIT-- this file is automatically generated.\n" > syshdr
- printf " * $%s$\n", "MidnightBSD" > syshdr
- printf "# MidnightBSD system call names.\n" > sysmk
- printf "# DO NOT EDIT-- this file is automatically generated.\n" > sysmk
- printf "# $%s$\n", "MidnightBSD" > sysmk
-
- printf "/*\n * System call argument to DTrace register array converstion.\n *\n" > systrace
- printf " * DO NOT EDIT-- this file is automatically generated.\n" > systrace
- printf " * $%s$\n", "MidnightBSD" > systrace
- }
- NR == 1 {
- gsub("[$]MidnightBSD: ", "", $0)
- gsub(" [$]", "", $0)
-
- printf " * created from%s\n */\n\n", $0 > syssw
-
- printf "\n/* The casts are bogus but will do for now. */\n" > sysent
- printf "struct sysent %s[] = {\n",switchname > sysent
-
- printf " * created from%s\n */\n\n", $0 > sysarg
+ printf " */\n\n" > sysarg
printf "#ifndef %s\n", sysproto_h > sysarg
printf "#define\t%s\n\n", sysproto_h > sysarg
printf "#include <sys/signal.h>\n" > sysarg
printf "#include <sys/acl.h>\n" > sysarg
printf "#include <sys/cpuset.h>\n" > sysarg
+ printf "#include <sys/_ffcounter.h>\n" > sysarg
printf "#include <sys/_semaphore.h>\n" > sysarg
printf "#include <sys/ucontext.h>\n" > sysarg
- printf "#include <sys/wait.h>\n" > sysarg
- printf "#include <bsm/audit_kevents.h>\n" > sysarg
+ printf "#include <sys/wait.h>\n\n" > sysarg
+ printf "#include <bsm/audit_kevents.h>\n\n" > sysarg
printf "struct proc;\n\n" > sysarg
printf "struct thread;\n\n" > sysarg
printf "#define\tPAD_(t)\t(sizeof(register_t) <= sizeof(t) ? \\\n" > sysarg
@@ -168,21 +145,42 @@
printf "#define\tPADR_(t)\t0\n" > sysarg
printf "#endif\n\n" > sysarg
- printf " * created from%s\n */\n\n", $0 > sysnames
+ printf "\n#ifdef %s\n\n", compat > syscompat
+ printf "\n#ifdef %s\n\n", compat4 > syscompat4
+ printf "\n#ifdef %s\n\n", compat6 > syscompat6
+ printf "\n#ifdef %s\n\n", compat7 > syscompat7
+
+ printf "/*\n * System call names.\n *\n" > sysnames
+ printf " * DO NOT EDIT-- this file is automatically generated.\n" > sysnames
+ printf " * $%s$\n", "MidnightBSD" > sysnames
+ printf " */\n\n" > sysnames
printf "const char *%s[] = {\n", namesname > sysnames
- printf " * created from%s\n */\n\n", $0 > syshdr
+ printf "/*\n * System call numbers.\n *\n" > syshdr
+ printf " * DO NOT EDIT-- this file is automatically generated.\n" > syshdr
+ printf " * $%s$\n", "MidnightBSD" > syshdr
+ printf " */\n\n" > syshdr
- printf "# created from%s\nMIASM = ", $0 > sysmk
+ printf "# MidnightBSD system call object files.\n" > sysmk
+ printf "# DO NOT EDIT-- this file is automatically generated.\n" > sysmk
+ printf "# $%s$\n", "MidnightBSD" > sysmk
+ printf "MIASM = " > sysmk
+ printf "/*\n * System call argument to DTrace register array converstion.\n *\n" > systrace
+ printf " * DO NOT EDIT-- this file is automatically generated.\n" > systrace
+ printf " * $%s$\n", "MidnightBSD" > systrace
printf " * This file is part of the DTrace syscall provider.\n */\n\n" > systrace
printf "static void\nsystrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)\n{\n" > systrace
printf "\tint64_t *iarg = (int64_t *) uarg;\n" > systrace
printf "\tswitch (sysnum) {\n" > systrace
- printf "static void\nsystrace_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)\n{\n\tconst char *p = NULL;\n" > systracetmp
+ printf "static void\nsystrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)\n{\n\tconst char *p = NULL;\n" > systracetmp
printf "\tswitch (sysnum) {\n" > systracetmp
+ printf "static void\nsystrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)\n{\n\tconst char *p = NULL;\n" > systraceret
+ printf "\tswitch (sysnum) {\n" > systraceret
+ }
+ NR == 1 {
next
}
NF == 0 || $1 ~ /^;/ {
@@ -203,6 +201,7 @@
print > sysnames
print > systrace
print > systracetmp
+ print > systraceret
savesyscall = syscall
next
}
@@ -217,6 +216,7 @@
print > sysnames
print > systrace
print > systracetmp
+ print > systraceret
syscall = savesyscall
next
}
@@ -231,6 +231,7 @@
print > sysnames
print > systrace
print > systracetmp
+ print > systraceret
next
}
syscall != $1 {
@@ -304,7 +305,8 @@
parserr($end, ")")
end--
- f++ #function return type
+ syscallret=$f
+ f++
funcname=$f
@@ -388,25 +390,36 @@
parseline()
printf("\t/* %s */\n\tcase %d: {\n", funcname, syscall) > systrace
printf("\t/* %s */\n\tcase %d:\n", funcname, syscall) > systracetmp
+ printf("\t/* %s */\n\tcase %d:\n", funcname, syscall) > systraceret
if (argc > 0) {
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 (arg == "union l_semun")
+ printf("\t\tuarg[%d] = p->%s.buf; /* %s */\n", \
+ i - 1, \
+ 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
+
+ printf("\t\tif (ndx == 0 || ndx == 1)\n") > systraceret
+ printf("\t\t\tp = \"%s\";\n", syscallret) > systraceret
+ printf("\t\tbreak;\n") > systraceret
}
printf("\t\t*n_args = %d;\n\t\tbreak;\n\t}\n", argc) > systrace
printf("\t\tbreak;\n") > systracetmp
@@ -442,7 +455,7 @@
printf("\t{ %s, (sy_call_t *)", argssize) > sysent
column = 8 + 2 + length(argssize) + 15
if (flag("NOSTD")) {
- printf("%s },", "lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT") > sysent
+ printf("lkmressys, AUE_NULL, NULL, 0, 0, %s, SY_THR_ABSENT },", flags) > sysent
column = column + length("lkmressys") + length("AUE_NULL") + 3
} else {
if (funcname == "nosys" || funcname == "sysarch" ||
@@ -624,6 +637,7 @@
> syshdr
printf "\tdefault:\n\t\t*n_args = 0;\n\t\tbreak;\n\t};\n}\n" > systrace
printf "\tdefault:\n\t\tbreak;\n\t};\n\tif (p != NULL)\n\t\tstrlcpy(desc, p, descsz);\n}\n" > systracetmp
+ printf "\tdefault:\n\t\tbreak;\n\t};\n\tif (p != NULL)\n\t\tstrlcpy(desc, p, descsz);\n}\n" > systraceret
} '
cat $sysinc $sysent >> $syssw
@@ -634,4 +648,5 @@
$syscompat7 $syscompat7dcl \
$sysaue $sysprotoend > $sysproto
cat $systracetmp >> $systrace
+cat $systraceret >> $systrace
Property changes on: trunk/sys/kern/makesyscalls.sh
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
More information about the Midnightbsd-cvs
mailing list