Module Name: src Committed By: matt Date: Sat Aug 22 00:12:23 UTC 2009
Modified Files: src/sys/kern [matt-nb5-mips64]: makesyscalls.sh Log Message: Add info about what arguments and return values are explicity 64bit (quad_t, off_t) and store that info in sy_flags. To generate a diff of this commit: cvs rdiff -u -r1.73 -r1.73.8.1 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.73 src/sys/kern/makesyscalls.sh:1.73.8.1 --- src/sys/kern/makesyscalls.sh:1.73 Mon Oct 13 18:16:33 2008 +++ src/sys/kern/makesyscalls.sh Sat Aug 22 00:12:23 2009 @@ -1,5 +1,5 @@ #! /bin/sh - -# $NetBSD: makesyscalls.sh,v 1.73 2008/10/13 18:16:33 pooka Exp $ +# $NetBSD: makesyscalls.sh,v 1.73.8.1 2009/08/22 00:12:23 matt Exp $ # # Copyright (c) 1994, 1996, 2000 Christopher G. Demetriou # All rights reserved. @@ -379,6 +379,12 @@ if (f == (end - 1)) { parserr($f, "function argument definition (maybe \"(\"?)"); } + if (returntype == "quad_t" || returntype == "off_t") { + if (sycall_flags == "0") + sycall_flags = "SYCALL_RET_64"; + else + sycall_flags = "SYCALL_RET_64 | " sycall_flags; + } funcname=$f if (funcalias == "") { @@ -412,6 +418,7 @@ # and do not need argument structures built. isvarargs = 0; + args64 = 0; while (f <= end) { if ($f == "...") { f++; @@ -438,9 +445,18 @@ } else { argalign++; } + if (argtype[argc] == "quad_t" || argtype[argc] == "off_t") { + if (sycall_flags == "0") + sycall_flags = "SYCALL_ARG"argc-1"_64"; + else + sycall_flags = "SYCALL_ARG"argc-1"_64 | " sycall_flags; + args64++; + } argname[argc]=$f; f += 2; # skip name, and any comma } + if (args64 > 0) + sycall_flags = "SYCALL_NARGS64_VAL("args64") | " sycall_flags; # must see another argument after varargs notice. if (isvarargs) { if (argc == varargc)