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/nmemio/mgtfwa.x | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 sys/nmemio/mgtfwa.x (limited to 'sys/nmemio/mgtfwa.x') diff --git a/sys/nmemio/mgtfwa.x b/sys/nmemio/mgtfwa.x new file mode 100644 index 00000000..8d3452fd --- /dev/null +++ b/sys/nmemio/mgtfwa.x @@ -0,0 +1,27 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +include +include +include + +# MGTFWA -- Given a user buffer pointer, retrieve physical address of buffer. +# If physical address of buffer does not seem reasonable, memory has probably +# been overwritten, a fatal error. + +int procedure mgtfwa (ptr, dtype) + +pointer ptr, bufptr +int dtype +int locbuf, fwa +int coerce() + +begin + bufptr = coerce (ptr, dtype, TY_INT) + fwa = Memi[bufptr-5] + call zlocva (Memi[bufptr-5], locbuf) + + if (abs (locbuf - fwa) > (6 * SZ_VMEMALIGN)) + call sys_panic (SYS_MCORRUPTED, "Memory fwa has been corrupted") + + return (fwa) +end -- cgit