gtpg2m0tGeneral Macros

CINFC-Control Program Interface

This general macro allows ECB-controlled programs to access protected main storage by returning the address of an interface point at execution time. This eliminates reassembly of these programs because of changes in the storage map. Additionally, the CINFC macro provides a convenient way for a real-time program to request update of the file copy of one or more control program keypoint records.


label
A symbolic name can be assigned to the macro statement.

R
For an E-type program, specifies the return interface address; leave storage protected.

For a C-type program, specifies the return interface address; leave storage protect key unchanged. All control program services will be by fast path. That is, the macro will always generate inline code for calls by the control program.

W
For an E-type program, specifies the return interface address; allow program to write in protected storage. This option is reserved for system use and requires program authorizations of KEY0 and RESTRICT.

For a C-type program, specifies the return interface address; leave storage protect key unchanged. All control program services will be by fast path. That is, the macro will always generate inline code for calls by the control program.

A
For an E-type program, specifies the return interface location address; allow program to write in protected storage. This option is restricted and requires program authorization of KEY0 and RESTRICT.

For a C-type program, specifies the return interface address; leave storage protect key unchanged. All control program services will be by fast path. That is, the macro will always generate inline code for calls by the control program. In addition, the interface location address is returned.

K
Initiate control program (CP) keypoint update. Specify one or more of the following:

LIST
This option will generate a list of equates only and no executable code.

intpt
This is the symbolic label of the desired interface point, as defined in the CINFC macro. The label is also called a CINFC tag.

For a current list of the CINFC tags refer to the source code for the CINFC macro.

F
This is the optional fast path. It is valid with the R parameter only. The current protection key will not be changed and the macro will not request service via an SVC.

BSS
This is the subsystem for which the macro will return the interface point. The defaults depend on whether the calling program is an E-type or part of the control program (C-type).

BSS=,
When a null is the value of the parameter (BSS=,), the CE1DBI field (in the ECB) is assumed to contain the subsystem index. This is the default value for E-type programs. This type of invocation is processed by a service routine.

NO
For an E-type program, the register specified in the REG parameter is assumed to have the subsystem index to be used to access the CINFC data. This type of invocation expands inline.

For a C-type program, the subsystem ordinal number must be supplied in REG prior to issuing the CINFC macro. The value is multiplied by 4 by CINFC to obtain the offset to the data.

YES
For an E-type program, specifies that the BSS CINFC data will be accessed. This type of invocation expands inline.

For a C-type program, specifies that the value returned in REG will be for the basic subsystem. This is the default value for the control program.

INDEX
The subsystem (ordinal) index value will be found in the register specified in the REG parameter. The user must multiply the value by 4 to obtain the offset to the data before calling CINFC.

This parameter is only meaningful in an MDBF environment.

REG=Rx|R14
This is the register in which the interface address is to be placed. The default is R14, and R0 may not be specified. In addition, if the 'F' option is not specified, R14 must be specified for the 'REG' parameter.

TABLE
This option is for CP use only and will generate a table of displacements within Keypoint X for all the keypointable keypoints. There will be two entries in the table for each keypointable keypoint: a) a displacement to the keypoint descriptor entry; and b) a displacement to the keypoint core address entry. Any CSECT which calls the CINFC TABLE also needs to call the CX0CK macro to define the symbols used to generate the table.

Entry Requirements

Return Conditions

Programming Considerations

Examples

None.