aboutsummaryrefslogtreecommitdiff
path: root/sys/mtio/mtpos.x
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /sys/mtio/mtpos.x
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'sys/mtio/mtpos.x')
-rw-r--r--sys/mtio/mtpos.x39
1 files changed, 39 insertions, 0 deletions
diff --git a/sys/mtio/mtpos.x b/sys/mtio/mtpos.x
new file mode 100644
index 00000000..f88946ae
--- /dev/null
+++ b/sys/mtio/mtpos.x
@@ -0,0 +1,39 @@
+# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
+
+include "mtio.h"
+
+# MTPOSITION -- Position the device to the indicated file and record.
+# We are called to position the device by device name, not to position
+# an open magtape file.
+
+procedure mtposition (mtname, file, record)
+
+char mtname[ARB] #I device to be positioned
+int file #I desired file number
+int record #I desired record number
+
+int junk
+pointer sp, mtspec, device, devcap
+errchk mtparse, mtopen
+int mtopen()
+
+begin
+ call smark (sp)
+ call salloc (device, SZ_FNAME, TY_CHAR)
+ call salloc (mtspec, SZ_FNAME, TY_CHAR)
+ call salloc (devcap, SZ_DEVCAP, TY_CHAR)
+
+ # Get device name (including node! prefix) from mtname.
+ call mtparse (mtname,
+ Memc[device], SZ_FNAME, junk, junk, Memc[devcap], SZ_DEVCAP)
+
+ # Encode new mtname and open device to position to desired file.
+ # Note that we do not return until positioning is complete. Thus,
+ # "mtposition(device,1)" is a rewind with wait.
+
+ call mtencode (Memc[mtspec], SZ_FNAME,
+ Memc[device], file, record, Memc[devcap])
+ call close (mtopen (Memc[mtspec], READ_ONLY, 1))
+
+ call sfree (sp)
+end