Article View: comp.sys.dec
Article #311Re: How to read/write VMS (RMS?) disk blocks asynchronously
From: David Stine
Date: Wed, 12 Aug 1992 09:54
Date: Wed, 12 Aug 1992 09:54
46 lines
2910 bytes
2910 bytes
In article <MRL.92Aug11103051@sun4.uai.com> mrl@uai.com (Mark R. Ludwig) writes: >I'm looking for RTFM pointers. > >[...] >I've read much of the RMS Reference, and concluded that the >asynchronous support there is quite limited, because it only allows >one operation at a time (on a FAB, or RAB, I forget exactly which). >For our application it is not feasible to have multiple FABs or RABs >for a single file. Isn't RMS a gas? ;-) >I've also heard that it may be possible to use $QIO for I/O to and >from disk files, but it's not at all obvious from the various manuals >how one accomplishes this without requiring xxx_IO privileges and >different code for different disk drivers. It's also unclear how RMS >fits into the $QIO picture, in terms of the usual information about >the file (modification dates, etc.). Yes, this is possible. The facility you are looking for is called the XQP (eXtended Qio Processor) and is documented in the "IO User's Manual", Volume 8. Basically, in making calls to the XQP, you must deal with the file at a _block_ level. There is no concept of a "record" to the XQP. RMS calls the XQP to perform file/directory/block IO stuff; RMS figures out how to make blocks into records. The block numbers you call out for operations in the XQP are "virtual" blocks; ie, you view the disk as one huge collection of randomly accessable blocks; there are no gaps in the VBN's on the volume, regardless un underlying physical structure or bad block replacements. The XQP, in turn, will make calls to the disk driver(s) in order to access the correct logical/physical blocks. To use the XQP to just create/read/write/delete/enter files in the normal fashion, you don't need any privs other than those you would need to access the same file via RMS. If you start trying to call out logical or physical block numbers, then you would need LOG_IO or PHY_IO. The XQP is not for the faint of heart to use. The documentation tends to make asumptions about your knowledge of ODS-2 and ODS-1. But you _can_ get very fast, async IO to/from files/disks/magtapes with the XQP. You might try looking on the DECUS tapes for examples of how to use the XQP. Reading the XQP fiche for answers is _not_ easy. dsa
Technical Details
Message-ID:
<1992Aug12.095437.19522@csl.sri.com>Path:
arc1-ca.pugleaf.net!sparky!uunet!sun-barr!olivea!apple!csl!dstineReferences:
<MRL.92Aug11103051@sun4.uai.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!sun-barr!olivea!apple!csl!dstine
From: dstine@cisco.com (David Stine)
Newsgroups: comp.sys.dec
Subject: Re: How to read/write VMS (RMS?) disk blocks asynchronously
Message-ID: <1992Aug12.095437.19522@csl.sri.com>
Date: 12 Aug 92 09:54:37 GMT
References: <MRL.92Aug11103051@sun4.uai.com>
Sender: news@csl.sri.com (NEWS Administrator)
Organization: cisco Systems, Menlo Park, California, USA
Lines: 46
X-Disclaimer: The views expressed in this message are those of an
individual at SRI International, and do not necessarily
reflect those of the company.
Nntp-Posting-Host: regal.cisco.com