[Info-vax] QIO Writes to a mailbox

Robert A. Brooks rab at aitchpee.com
Wed Nov 9 16:03:49 EST 2011


On 11/9/2011 2:48 PM, Bob Koehler wrote:
>  Roy Omond<roy at omond.net>  writes:
>>
>> Ask Costas or Simon to fish out the source listing for the mailbox
>> driver and see for yourself how the data buffer is handled by the
>> driver.  I wouldn't say it's "implementation specific" - that would
>> seem to imply that there are differences between "implementations"
>> of VMS.
>
>     However, the behaviour inside the driver is not part of a documented
>     API and could change with the next minor patch you install.
>
>     Not likey?  I've been down that path fixing other people's code that
>     claimed in the comments that they knew what was likely.

I'm pretty sure that this discussion of "what does the driver do" is 
irrelevant.

For all user-mode code the relevant user-space buffers should not be 
modified from the time the I/O is queued until iosb$w_status is non-zero
(or the QIO(W) fails due to the parameter check failing).

I use the phrase "all user-mode code" because inner-mode code plays by 
its own set of rules, and while directly modifying something in P0 space
in the middle of an I/O seems a bit odd, I wouldn't put it past someone.

And yes, assuming any inner-mode code behaviour (not just a "driver") 
can lead to corruption, as folks who wrote 3rd-party stuff to do
I/O interception learned once Multipath for fibre and SCSI changed
that paradigm.  That led to the quasi-supported and documented way
to "safely" intercept I/O without causing corruption.

                               -- Rob



More information about the Info-vax mailing list