From fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 Jul 2015 20:46:52 -0400 Subject: Initial commit --- sys/gio/nspp/sysint/loc.x | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 sys/gio/nspp/sysint/loc.x (limited to 'sys/gio/nspp/sysint/loc.x') diff --git a/sys/gio/nspp/sysint/loc.x b/sys/gio/nspp/sysint/loc.x new file mode 100644 index 00000000..59e509b5 --- /dev/null +++ b/sys/gio/nspp/sysint/loc.x @@ -0,0 +1,23 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +include + +# LOCI -- Return the zero-indexed offset of the argument in the user address +# space, in integer units. In other words, if A is an integer array, +# { loci(a[2]) - loci(a[1]) } is exactly one. +# +# NOTE -- The original NSPP (portlib) code called this function LOC, however, +# the Sun-4 Fortran compiler has an intrinsic function of the same name which +# behaves slightly differently, hence the name was changed to LOCI. + +int procedure loci (x) + +int x +int xaddr + +begin + # ZLOCVA returns the address of the variable in units of XCHAR. + + call zlocva (x, xaddr) + return (xaddr / SZ_INT) +end -- cgit