Sujet : Re: sys$ssio_*
De : arne (at) *nospam* vajhoej.dk (Arne Vajhøj)
Groupes : comp.os.vmsDate : 27. Nov 2024, 15:11:49
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vi79b4$13as$1@dont-email.me>
References : 1 2
User-Agent : Mozilla Thunderbird
On 11/27/2024 8:19 AM, Craig A. Berry wrote:
On 11/26/24 2:53 PM, Arne Vajhøj wrote:
They are there in 9.2-2. Sort of.
>
They are in various starlet include/inherit files and no link error.
>
But when I try to call I get 4026:
>
%SYSTEM-E-NOT_LOADED, system service or exec routine is not loaded
>
What to do to load them?
Dunno, but those are probably the routines within the XFC intended to be
called by the CRTL, so unless you are trying to implement your own CRTL
you may not get what you want by calling them directly.
To enable SSIO in the CRTL, you had to set DECC$SSIO and
DECC$FILE_SHARING in the environment or send fop="ssio", shr="upd" to
open() or creat(). This according to notes distributed with the beta
twelve years ago.
I know that is the intended usage.
But CRTL will end up calling those system services.
And I thought troubleshooting would be easier by calling
those system services directly.
And the system services seems relative easy to use.
sys$library:sys$starlet_c / starlet has:
/* Read a byte stream from the current file offset from a file that */
/* has been opened for Shared Stream I/O (SSIO) access */
/* */
/* $SSIO_READ chan ,buffer ,bufsiz ,iosa ,[ast] ,[astprm] */
/* ($SSIO_READW) */
/* */
/* chan = channel number for SSIO accessed file */
/* */
/* buffer = address of data buffer to receive data (64-bit address) */
/* */
/* bufsiz = size of data buffer in bytes (64-bit value) */
/* */
/* iosa = address of I/O status area (4 quadwords) to receive final */
/* completion status (64-bit address) */
/* */
/* ast = address of AST routine (64-bit address) */
/* */
/* astprm = value to be passed to AST routine as argument (64-bit value) */
Pretty straight forward.
But I got stuck with the "not loaded" error.
Given that SSIO was left incomplete for a decade, followed by a brief
period where it was on the roadmap and Andy Goldstein was reportedly
working on it, followed by removal from the roadmap, it's anybody's
guess what's actually there and whether any of it even still partially works.
I know it is undocumented and unsupported.
But maybe someone know something anyway.
Arne