Use this system macro to provide the interface to file address compute
program (FACE) address generation routines. The service is similar to
calling the FACS segments or the FAC8C macro service routine, but additionally
this service allows access to records that are unique to a subsystem user
(SSU), processor, or I-stream (within a given subsystem).
If defaults are taken, an entry control block (ECB) must be available
because the subsystem, DBI, and I-stream of the current ECB are used.
Control program (CP) routines with no associated ECB can take defaults for
only the processor and I-stream, and must provide subsystem and SSU
information.
Required Authorizations
|
Key0
| Restricted
| System
| Common Storage
|
| X
|
|
|
Format
- label
- A symbolic name may be assigned to the macro statement.
- PARMS=Rx
- Rx specifies a register (R0 through R7 for E-type segments, any register
except R0, R11 through R13 for CP segments) containing the starting address of
a parameter block, as described by the IDSFCZ macro. Fields in the
input area of this block that are to be provided by the caller must be
initialized before invocation of the macro. Output area fields will be
filled in by the macro service routine. In particular, the return code
field should be inspected to determine the results of the call.
- Note:
- The IFCZREC field must contain an 8-byte character string record
type name, padded on the right with blanks.
- DEFSS
- Specify one of the following:
- YES
- Sets a parameter block value so that the current DBI is used to find the
FACE table. The caller must ensure an ECB address is contained in
R9.
- NO
- Indicates that the correct subsystem index will be provided in the
parameter block by the caller.
- DEFSSU
- Specify one of the following:
- YES
- Sets the parameter block value for SSU to the current SSU from the
ECB. This value is then used to locate the proper record for fixed
record types for which any SSU/processor/I-stream uniqueness exists.
The caller must ensure an ECB address is contained in R9.
- NO
- Indicates that the correct subsystem user index will be provided in the
parameter block by the caller.
- DEFPROC
- Specify one of the following:
- YES
- Sets the parameter block value for processor to the current processor
ordinal from the TPF system. This (zero-relative) value is then used to
locate the proper record for fixed record types for which any
SSU/processor/I-stream uniqueness exists.
- NO
- Indicates that the processor ordinal will be provided in the parameter
block by the caller.
- DEFISN
- Specify one of the following:
- YES
- Sets the parameter block value for I-stream to the current I-stream number
from the ECB, if an E-type call otherwise the current I-stream number is
used. This (one-relative) value is then used to locate the proper
record for fixed record types for which any SSU/processor/I-stream uniqueness
exists. The caller must ensure an ECB address is contained in
R9.
- NO
- Indicates that the I-stream number will be provided in the parameter block
by the caller.
- TYPE
- Specify one of the following:
- FACE
- Sets a parameter block value to indicate a FACE-type call. The
record type number must be placed in the IDSFCZ parameter block input area
prior to macro invocation.
- FACS
- Sets a parameter block value to indicate a FACS-type call. The
symbolic record type name must be placed in the IDSFCZ parameter block input
area prior to macro invocation. The default value is TYPE=FACS.
- USER
- The appropriate entry type information must be set prior to calling
FACZC. The entry type flag must be set. The record type field
must be initialized to either a 8-character symbolic record type name (FACS
interface) or a 2-byte record type number (FACE interface).
- FACE8
- Sets a parameter block value to indicate an 8-byte file address type of
call. An 8-byte ordinal number and record type number must be supplied
on input, and an 8-byte file address and an 8-byte maximum ordinal number are
provided on output in the IDSFCZ parameter block. This call only
supports the record-type number interface (similar to the FACE
interface).
- FACS8
- Sets a parameter block value to indicate an 8-byte file address type of
call. An 8-byte ordinal number and the symbolic type name must be
supplied on input, and an 8-byte file address and an 8-byte maximum ordinal
number are provided on output in the IDSFCZ parameter block. This call
only supports the symbolic record-type interface (similar to the FACS
interface).
- DSECT=NO|YES
- Optional parameter used to request the generation of a DSECT describing
the parameter list generated for the FACZC call rather than the generation of
service routine linkage. The use of this parameter should be limited to
the FACZC service routine. If DSECT=YES is coded, no FACZC expansion
will be generated. The default is DSECT=NO.
Entry Requirements
- PARMS=Rx must specify a register containing the address of a block of
contiguous, addressable storage as described by the IDSFCZ macro. These
input area fields must be filled in with correct values or the default must be
specified on the FACZC macro.
The ordinal requested and either symbolic record type or record type number
fields are required (depending on the FACE or FACS interface chosen).
All other fields are optional, except for CP routines with no associated
ECB. These routines must supply all the SSI and SSU values, since there
is no ECB from which to take default values.
- If these values are to be defaulted, an ECB must be addressable in the
calling routine. To provide one of these values, DEFxxxx=NO must be
coded, in addition to field initialization before the call.
Return Conditions
Programming Considerations
Examples
The following is an example of a FACZC macro call.
XC IFCZORD,IFCZORD ORDINAL ZERO
MVC IFCZREC(8),=CL8'#PDREU' FACE TYPE
XC IFCZPRO,IFCZPRO CLEAR OUT
MVC IFCZPRO+1(1),PI1IPT SET UP PROCESSOR ORDINAL
FACZC PARMS=R5, GET FILE ADDRESS
DEFSS=YES, USING DEFAULT SS
DEFSSU=YES, SSU
DEFISN=YES, I-STREAM
DEFPROC=NO,
TYPE=FACS, USING FACS INTERFACE
DSECT=NO
CLI IFCZRET,IFCZNRM OK RETURN?
BNE CBR1ERR1 NO, ERROR
L R2,IFCZMNX SAVE MAXIMUM RECORD
MVC CE1FM2(4),IFCZADR MOVE ADDRESS TO LEVEL 2
XC CE1FA2(4),CE1FA2 CLEAR ID, RCC
FIWHC D2,CBR1ERR2