How to invoke IEFQMREQ

The IEFQMREQ macro does not have any parameters. Before you invoke the macro you must store input data for the macro in the QMPA and the external parameter area (EPAM). The input that you store in the QMPA is:
  • The function code — In the field QMPOP, the function code specifies the service to be performed.
  • The EPAM address — The EPAM address, which can be in either of two QMPA fields, locates the EPAM. Fill in the QMPACL field if you are specifying a three-byte address and the QMPACLX field if you are specifying a four-byte address.
  • A 4-byte EPAM address indicator — Set this indicator in the field QMPACLEX if you are using a four-byte EPAM address.
  • The extended EPAM indicator — Some services let you specify the size of the EPAM as 8 or 16 bytes. Set this indicator in the field QMPAX if you are using the 16-byte EPAM size.
  • The number of EPAMs — This is the number of times that the function is to be performed, and the number of EPAM blocks that you are passing. Specify this number in the QMPNC field. For example, when you read three different SWA blocks into three different buffers in a single invocation of IEFQMREQ, the number that you specify in this field is 3.

If you want the function to be performed more than once, supply more than one EPAM. For example, you can read three different SWA blocks into three different buffers in a single invocation of IEFQMREQ. If you supply more than one EPAM, you must arrange them contiguously in storage. When you invoke the macro, GPR 1 must point to the QMPA. The EPAM input data and the EPAM output data for each IEFQMREQ function code are summarized in the following block:

IEFQMREQ Function EPAM Size EPAM Input Fields EPAM Output Fields
Read 8 or 16 SVA, buffer address Block ID
Write 8 or 16 SVA, buffer address, block ID None
When you write a program that invokes IEFQMREQ, in addition to supplying input data in fields that are in the QMPA and the EPAM, you must supply SWA block definitions as input to the macro. When you assemble the program, the assembler needs definitions for the CVT and the JESCT. The format of the input data is defined in the following mapping macros:
  • CVT — communications vector table
  • IEFJESCT — JES control block
  • IEFQMIDS — SWA block id definitions
  • IEFQMNGR — QMPA data area
  • IEFZB506 — EPAM data area