[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