Module Name:    src
Committed By:   christos
Date:           Sat Mar  7 20:39:11 UTC 2015

Modified Files:
        src/sys/kern: makesyscalls.sh

Log Message:
Use modern initializers, so we can skip the 0 ones.


To generate a diff of this commit:
cvs rdiff -u -r1.146 -r1.147 src/sys/kern/makesyscalls.sh

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

Modified files:

Index: src/sys/kern/makesyscalls.sh
diff -u src/sys/kern/makesyscalls.sh:1.146 src/sys/kern/makesyscalls.sh:1.147
--- src/sys/kern/makesyscalls.sh:1.146	Sat Mar  7 11:38:07 2015
+++ src/sys/kern/makesyscalls.sh	Sat Mar  7 15:39:11 2015
@@ -1,4 +1,4 @@
-#	$NetBSD: makesyscalls.sh,v 1.146 2015/03/07 16:38:07 christos Exp $
+#	$NetBSD: makesyscalls.sh,v 1.147 2015/03/07 20:39:11 christos Exp $
 #
 # Copyright (c) 1994, 1996, 2000 Christopher G. Demetriou
 # All rights reserved.
@@ -66,6 +66,9 @@ rumpcalls="/dev/null"
 rumpcallshdr="/dev/null"
 rumpsysmap="/dev/null"
 rumpsysent="rumpsysent.tmp"
+rumpnoflags="\n\t\t.sy_flags = SYCALL_NOSYS,"
+rumpnosys="(sy_call_t *)rumpns_enosys"
+rumpnomodule="(sy_call_t *)rumpns_sys_nomodule"
 . ./$1
 
 # tmp files:
@@ -191,7 +194,7 @@ BEGIN {
 
 	printf "\n#define\ts(type)\tsizeof(type)\n" > sysent
 	printf "#define\tn(type)\t(sizeof(type)/sizeof (%s))\n", registertype > sysent
-	printf "#define\tns(type)\tn(type), s(type)\n\n", registertype > sysent
+	printf "#define\tns(type)\t.sy_narg = n(type), .sy_argsize = s(type)\n\n", registertype > sysent
 	printf "struct sysent %s[] = {\n",switchname > sysent
 
 	printf "/* %s */\n\n", tag > sysnames
@@ -421,6 +424,10 @@ function parserr(was, wanted) {
 	print
 	exit 1
 }
+function fillerpsysent(syscall, flags, name, comment) {
+	return sprintf("\t{%s\n\t\t.sy_call = %s,\n\t},\t\t/* %d = filler */\n",\
+	    flags, name, syscall, comment);
+}
 function parseline() {
 	f=3			# toss number and type
 	if ($2 == "INDIR")
@@ -666,33 +673,26 @@ function printproto(wrap) {
 }
 
 function printrumpsysent(insysent, compatwrap) {
+	if (modular) {
+		fn = rumpnomodule
+		flags = rumpnoflags
+	} else {
+		fn = rumpnosys
+		flags = ""
+	}
 	if (!insysent) {
-		eno[0] = "rumpns_enosys"
-		eno[1] = "rumpns_sys_nomodule"
-		flags[0] = "SYCALL_NOSYS"
-		flags[1] = "0"
-		printf("\t{ 0, 0, %s,\n\t    (sy_call_t *)%s, 0, 0 }, \t"	\
-		    "/* %d = %s */\n",					\
-		    flags[modular], eno[modular], syscall, funcalias)	\
-		    > rumpsysent
+		printf("\t{%s\n\t\t.sy_call = %s,\n},\t\t/* %d = %s */\n", \
+		    flags, fn, syscall, funcalias) > rumpsysent
 		return
 	}
 
-	printf("\t{ ") > rumpsysent
-	if (argc == 0) {
-		printf("0, 0, ") > rumpsysent
-	} else {
-		printf("ns(struct %ssys_%s_args), ", compatwrap_, funcalias) > rumpsysent
+	printf("\t{") > rumpsysent
+	if (argc != 0) {
+		printf("\n\t\tns(struct %ssys_%s_args),", compatwrap_, funcalias) > rumpsysent
 	}
 
-	if (modular)
-		fn="(sy_call_t *)rumpns_sys_nomodule"
-	else
-		fn="(sy_call_t *)rumpns_enosys"
-	printf("0,\n\t   %s, 0, 0 },", fn) > rumpsysent
-	for (i = 0; i < (33 - length(fn)) / 8; i++)
-		printf("\t") > rumpsysent
-	printf("/* %d = %s%s */\n", syscall, compatwrap_, funcalias) > rumpsysent
+	printf("\n\t\t.sy_call = %s,\n\t},", fn) > rumpsysent
+	printf("\t\t/* %d = %s%s */\n", syscall, compatwrap_, funcalias) > rumpsysent
 }
 
 function iscompattype(type) {
@@ -780,11 +780,9 @@ function putent(type, compatwrap) {
 	}
 
 	# output syscall switch entry
-	printf("\t{ ") > sysent
-	if (argc == 0) {
-		printf("0, 0, ") > sysent
-	} else {
-		printf("ns(struct %s%s_args), ", compatwrap_, funcname) > sysent
+	printf("\t{\n\t\t") > sysent
+	if (argc != 0) {
+		printf("ns(struct %s%s_args),", compatwrap_, funcname) > sysent
 	}
 	if (modular) 
 		wfn = "sys_nomodule";
@@ -793,10 +791,12 @@ function putent(type, compatwrap) {
 	else
 		wfn = compatwrap "(" funcname ")";
 	wfn_cast="(sy_call_t *)" wfn
-	printf("%s,\n\t    %s, 0, 0 },", sycall_flags, wfn_cast) > sysent
-	for (i = 0; i < (33 - length(wfn_cast)) / 8; i++)
-		printf("\t") > sysent
-	printf("/* %d = %s%s */\n", syscall, compatwrap_, funcalias) > sysent
+	if (sycall_flags != "0")
+		flags = "\n\t\t.sy_flags = " sycall_flags ","
+	else
+		flags = ""
+	printf("%s\n\t\t.sy_call = %s\n\t},", flags, wfn_cast) > sysent
+	printf("\t\t/* %d = %s%s */\n", syscall, compatwrap_, funcalias) > sysent
 
 	# output syscall name for names table
 	printf("\t/* %3d */\t\"%s%s\",\n", syscall, compatwrap_, funcalias) \
@@ -986,10 +986,8 @@ $2 == "OBSOL" || $2 == "UNIMPL" || $2 ==
 	else
 		sys_stub = sys_nosys;
 
-	printf("\t{ 0, 0, 0,\n\t    %s, 0, 0 },\t\t\t/* %d = %s */\n", \
-	    sys_stub, syscall, comment) > sysent
-	printf("\t{ 0, 0, SYCALL_NOSYS,\n\t    %s, 0, 0 },\t\t/* %d = %s */\n", \
-	    "(sy_call_t *)rumpns_enosys", syscall, comment) > rumpsysent
+	fillerpsysent(syscall, "", sys_stub, comment) > sysent
+	fillerpsysent(syscall, rumpnoflags, rumpnosys, comment) > rumpsysent
 	printf("\t/* %3d */\t\"#%d (%s)\",\n", syscall, syscall, comment) \
 	    > sysnamesbottom
 	if ($2 != "UNIMPL")
@@ -1053,10 +1051,8 @@ END {
 			exit 1
 		}
 		while (syscall < nsysent) {
-			printf("\t{ 0, 0, 0,\n\t    %s, 0, 0 },\t\t\t/* %d = filler */\n", \
-			    sys_nosys, syscall) > sysent
-			printf("\t{ 0, 0, SYCALL_NOSYS,\n\t    %s, 0, 0 },\t\t/* %d = filler */\n", \
-			    "(sy_call_t *)rumpns_enosys", syscall) > rumpsysent
+			fillerpsysent(syscall, "", sys_nosys, "filler") > sysent
+			fillerpsysent(syscall, rumpnoflags, rumpnosys, "filler") > rumpsysent
 			printf("\t/* %3d */\t\"# filler\",\n", syscall) \
 			    > sysnamesbottom
 			syscall++

Reply via email to