If your program needs to know where the XDC load module is, previously, you had to use IBM's LOAD macro which issues an SVC instruction. Now, you can instead use our #XDCLOC8 macro because it finds the XDC load module just by chaining through a couple of system control blocks.
This means that your programs that run in constrained environments that cannot tolerate LOAD macros, can still find XDC by using our #XDCLOC8 macro.
If your code is running as an SRB, a space switched PC routine, locked code or other constrained environment where the use of SVCs are disallowed, then you could not use LOAD. Instead, you would have to pre-LOAD XDC at an earlier, non-constrained point in your logic and then squirrel away XDC’s address under a rock somewhere for use later, in your constrained code.
Well, if the XDC load module were located in common storage (on the DLPA queue or in the PLPA), having to use LOAD just to find it was a bit like having to use a sledgehammer to kill a gnat.
But no longer! Starting with update DBC-2004A, we are publishing a new macro named #XDCLOC8 which finds XDC simply by running a short control block chain. The only requirement is that the XDC load module must be located in common storage. So…
- #XDCLOC8 can be used in SRBs, PC routines, FRRs and other SVC-unfriendly environments because it does not use an SVC.
- #XDCLOC8 can also be used in LOCK’d code since all the cblocks it touches are located in page fixed storage.
For more information, see HELP MACROS #XDCLOC8.