FWIW,

PL/X has a simple clear default: everything is passed by reference (and is 
treated as input/output - readable and writeable). That is the historical 
linkage standard. PLX will only do what is asked for.

Thus if you want something passed by-value, you "ask" for it by your definition 
of the parameters in an "entry declare" that can be used both by the caller and 
callee. If you want something identified as "input-only" you can do so. The 
compiler flags writes into things that are input-only by reference. It is 
deemed OK to write into something that is input-only by-value because it has no 
effect on the argument.

By-value things (by the PL/X definition) are things that fit into the parameter 
list and that is exactly where they go -- a parameter list "slot" for the value.

<snip>
BTW: you are using C for z/OS development, too, as I am told. Would you
tell us if you use C with
the standard C linkage or with something like #pragma linkage (...,OS)?
</snip>
Very little C would use #pragma linkage(...,OS) unless it was "calling out" to 
a z/OS service that supports what I think of as "standard linkage" which is 
very different than "standard C linkage" (let alone XPLINK)

Peter Relson
z/OS Core Technology Design


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to