On 13 March 2017 at 13:06, Tom Marchant <[email protected]> wrote: > On Mon, 13 Mar 2017 09:31:54 -0700, Charles Mills <[email protected]> wrote: > >>Any idea whether this would be true for Unicode services and TCP/IP? Do those >>calls from XPLINK-31 C require shifting into "old save area" linkage mode? >> > > I don't have specific knowledge of the linkage expected by those services. If > those services expect the address of a save area in R13, then it must be > provided by its callers. That doesn't preclude them from having an alternate > entry point that uses some other linkage convention, but it would surprise me > if they did.
There's a good writeup in the z/OS UNIX Assembler Callable Services book, under "Linkage conventions for the callable services" in Chapter 1. (The TCP/IP services are part of the more general UNIX services.) There is no mention of any R13 requirement, and this makes sense because all the callable services are stubs that figure out which PC to issue, and then issue it. What is slightly less clear is if R15 must point to the entry point of what you call. I think it's probably unnecessary unless you are linking in the quite unnecessary "service stubs". If you instead use the documented offsets directly, I'd guess it's unnecessary, though the routines are called with BALR R14,R15 in AMODE 31 or 64 (24 is not supported). But only examining the (OCO) code that the CSR table entries point to would give that information. Or of course it could be documented, and I just missed it. Whether the XPLINK authors for C/C++ and COBOL have got this all just right is another question. Tony H. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
