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
