z/OS MVS Program Management: Advanced Facilities
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


LOADW: Load workmod

z/OS MVS Program Management: Advanced Facilities
SA23-1392-00

LOADW produces an executable copy of the workmod and returns its entry point and optionally its load point and length. The workmod is bound but control is not passed to it after it is loaded.

Program modules that are identified to the system with this call can later be invoked using the LINK, ATTACH, and XCTL macros. Programs that have not been identified to the system can later be invoked using the CALL macro. See z/OS MVS Programming: Assembler Services Guide for information about using these macros.

The syntax of the LOADW call is:

FUNC=LOADW
Specifies that the workmod is bound and loaded but not executed.
VERSION=1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
Specifies the version of the parameter list to be used. The default value is VERSION=1.
RETCODE=retcode — RX-type address or register (2-12)
Specifies the location of a fullword integer that receives the return code returned by the binder.
RSNCODE=rsncode — RX-type address or register (2-12)
Specifies the location of a 4-byte hexadecimal string that receives the reason code returned by the binder.
WORKMOD=workmod — RX-type address or register (2-12)
Specifies the location of an 8-byte area that contains the workmod token for this request.
IDENTIFY={YES | NO}
Specifies whether or not the loaded program module is identified to the system. If you specify YES, you can optionally provide the name by which the module is to be identified as the argument LNAME. In either case, the entry point address is returned as the argument EPLOC. The value for IDENTIFY can be abbreviated as Y or N.
EPLOC=eploc — RX-type address or register (2-12)
Specifies the location of a 4-byte area that receives the entry point address of the loaded program module. This argument is required.
XTLST=xtlst — RX-type address or register (2-12)
Specifies the address of a buffer that receives the extent list of the loaded program module. This list contains one entry for each contiguous block of storage used for the loaded program module. See Binder API buffer formats for a description of the structure of an extent list. This argument is required if you code IDENTIFY=NO; it is optional if you code IDENTIFY=YES.
LNAME=name — RX-type address or register (2-12)
Specifies the location of an optional 8-byte varying character string that contains the name by which the program module is known to the system. This argument is recognized only when IDENTIFY=YES. If IDENTIFY=YES and this argument is not specified or a null value is provided, the name specified with the LNAME option on a SETO call is used. If no value was specified on a SETO call, the LNAME name defaults to **GO.

Processing notes

Storage for the program module is obtained from the caller's subpool zero. If you code IDENTIFY=NO, the storage described by the extent list should be freed when the program module is no longer required.

If the bound module contains more than one text class, all such classes are concatenated and loaded into contiguous storage locations.

Return and reason codes

The common binder API reason codes are shown in Table 1.

Return Code Reason Code Explanation
00 00000000 Normal completion.
04 83000655 The buffer provided room for only one extent, but a second extent exists for the loaded module. The module was loaded successfully.
04 83000603 The AMODE or RMODE of one or more input ESD records is incompatible with the AMODE or RMODE of the primary entry point.
04 83000604 There was a conflict in the AMODE/RMODE specification of the current module. This means that 1) The AMODE/RMODE combination is invalid, or one of the MODEs is invalid, or 2) OVLY was specified but either AMODE or RMODE is not (24). The module was loaded with AMODE(24) and RMODE(24).
04 83000605 No entry name has been provided, either by the user or from any object module processed. The entry point will default to the first text byte.
04 83000607 The module was loaded successfully, but the indicated 2-byte adcon(s) did not relocate correctly.
04 83000657 The module was loaded with AMODE(24), but one or more references in the module were resolved to modules in the Extended LPA. Load successful.
08 83000306 The module was loaded, but the binder could not produce the load summary report.
08 83000650 The entry name specified was not defined in the loaded module. The entry point was forced to the first text byte.
12 83000101 Identify was set to NO, but no extent list buffer was provided. Request rejected.
12 83000415 The module to be loaded contains no text. Execution impossible.
12 83000651 The IDENTIFY for the loaded module failed, probably due to the existence of another module of the same name. The module was loaded successfully, but cannot be accessed by system-assisted linkage.
12 83000652 Sufficient storage was not available to load the module. The module is not loaded.
12 83000653 An error of severity greater than that allowed by the current LET value was encountered. The module is not loaded.
12 83000656 The module was bound in overlay format, and cannot be loaded. Request rejected.

Parameter list

If your program does not use the IEWBIND macro, place the address of the LOADW parameter list in general purpose register 1.

Table 1. LOADW parameter list
       
PARMLIST DS 0F  
  DC A(LOADW) Function code
  DC A(RETCODE) Return code
  DC A(RSNCODE) Reason code
  DC A(WORKMOD) Workmod token
  DC A(IDENT) Identify option
  DC A(EPLOC) Entry point address
  DC A(XTLST) Extent list
  DC A(NAME+X'80000000') Name used for identify and end-of-list indicator
LOADW DC H'81' LOADW function code
  DC H'version' Interface version number
IDENT DC CL1'Y' Identify option

  'Y' = Yes
  'N' = No

       

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014