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)