z/OS DFSMSdfp Advanced Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


DEBCHK Macro Specification

z/OS DFSMSdfp Advanced Services
SC23-6861-01

The format of the DEBCHK macro is:

Read syntax diagramSkip visual syntax diagram
>>-+-------+--DEBCHK--cbaddr------------------------------------>
   '-label-'                   

>--+------------------------------+--+--------------------+----->
   |        .-VERIFY------------. |  '-,AM=-+-amtype----+-'   
   '-,TYPE=-+-ADD---------------+-'         +-(amaddr)--+     
            +-DELETE------------+           '-((amreg))-'     
            +-PURGE-------------+                             
            '-PURGE,PURGE=FORCE-'                             

>--+------------------+--+------------------+------------------->
   |          .-NO--. |  '-,TCBADDR=address-'   
   '-,BRANCH=-+-YES-+-'                         

>--+------------------+--+-------------+--+-------+------------><
   +-,KEYADDR=address-+  '-,SAVREG=reg-'  '-,MF=L-'   
   '-,KEYREG=reg------'                               

cbaddr
Control block address.
for BRANCH=NO
RX-type address, (2-12), or (1)

A control block address passed to the DEBCHK routine. This operand is ignored if MF=L is coded. For verify, add, and delete requests, cbaddr is the address of a DCB or ACB that points to the DEB whose address is either verified to be in the DEB table, added to the DEB table, or deleted from the DEB table. For the purge function, cbaddr is the address of the DEB whose pointer is to be purged from the table: No reference is made to the DCB or ACB.

Recommendation: A spooled DCB's DEB does not point back to the DCB, but to the spooled ACB; in this case, the DEBCHK should be issued against the ACB.
for BRANCH=YES
The A-type address of a 4-byte field, or a register (3-9) or (12), that points to the DCB or ACB containing the DEB to be verified.
TYPE=VERIFY or ADD or DELETE or PURGE or PURGE,PURGE=FORCE
Indicates the function to be performed. If MF=L is coded, TYPE is ignored. The functions are:
VERIFY
This function is assumed if the TYPE operand is not coded. The control program checks the DEB table to determine whether the DEB pointer is in the table at the location indicated by the DEBTBLOF field of the DEB. The DEB is also checked to verify that DEBDCBAD points to the DCB (or ACB) passed to DEBCHK. The DEBAMTYP field in the DEB is compared to the AM operand value, if given. The two must be equal. TYPE=VERIFY can be issued in either supervisor or problem state.
ADD
The DEB and the DCB (or ACB) must point to each other before the DEB address can be added to the DEB table. Before the DEB pointer can be added to the table, the DEB itself must be queued on the current TCB DEB chain (the TCBDEB field contains the address of the first DEB in the chain). DEBCHK adds the DEB address to the DEB table at some offset into the table. DEBCHK places a value in the DEBTBLOF field of the DEB and inserts the access method type into the DEBAMTYP field of the DEB. DEBCHK places a zero in the DEBAMTYP field if the AM operand is not coded. TYPE=ADD can be issued only in supervisor state.
DELETE
The DEB and the DCB (or ACB) must point to each other before the DEB address can be deleted from the DEB table. TYPE=DELETE can be issued only in supervisor state.
PURGE
DEBCHK removes the DEB pointer from the DEB table without checking the DCB (or ACB). TYPE=PURGE can be issued only in supervisor state.
PURGE,PURGE=FORCE
DEBCHK removes the DEB pointer from the DEB table without checking the DCB (or ACB). The caller must be in system key, supervisor state, hold the local lock, and the passed DEB pointer must exist in the DEB table but not represent a valid DEB.
AM
Specifies an access method value. Each value corresponds to a particular access method type (note that BPAM and SAM have the same values):
Value     Type    
(X'00') NONE
(X'01') VSAM
(X'02') EXCP
(X'04') Not supported
(X'08') GAM
(X'10') TAM
(X'20') BPAM
(X'20') SAM
(X'40') BDAM
(X'81') SUBSYS
(X'84') Not supported
The operand can be coded in one of the following three ways, only the first of which is valid for the list form (MF=L) of the instruction.
amtype
Refers to the access method: BDAM, SAM, BPAM, TAM (which refers to BTAM only), GAM, EXCP, or VSAM. SUBSYS identifies a subsystem of the operating system, such as a job entry subsystem. NONE indicates that no access method or subsystem is specified.
(amaddr)
The RS-type address of the access method value. This format cannot be coded when MF=L is used.
((amreg))
One of the general registers 1 through 14 that contains the access method value in its low-order byte (bit positions 24 through 31). The high-order bytes are not inspected. This form cannot be used when MF=L is coded.

The use of amaddr and amreg should be restricted to those cases where the access method value has been generated previously by the MF=L form of DEBCHK. If MF=L is not coded, the significance of the AM operand depends upon the TYPE.

If TYPE is ADD and AM is specified, the access method value is inserted in the DEBAMTYP field of the DEB, and all subsequent DEBCHK macros referring to this DEB must either specify the same AM or omit the operand. When the AM operand is omitted for TYPE=ADD, a null value (0) is placed in the DEB and all subsequent DEBCHK macros must omit the AM operand.

If AM is specified when the TYPE is PURGE, DELETE, or VERIFY, the access method value is compared to the value in the DEBAMTYP field of the DEB. If AM is omitted, no comparison is made.

BRANCH=NO or YES
Specifies whether you want to use the branch entry to the DEBCHK verify routines.
NO
SAVREG
TCBADDR
KEYADDR
KEYREG
Specifies branch entry is not to be used. The program ignores operands SAVREG, TCBADDR, KEYADDR, and KEYREG. Your program must be running in TCB mode.
YES
Specifies the branch entry is to be used. TYPE=VERIFY must be implicitly or explicitly specified. The operands TCBADDR and KEYADDR/KEYREG are required. AM and MF are ignored. Notes for BRANCH=YES:
  • Your program can run in TCB or SRB mode.
  • Registers 1, 2, 10, 11, 14, and 15 must not be used for SAVREG=.
  • Registers 1, 2, 10, 11, 14, 15, and the register specified for SAVREG= must not be used for cbaddr, TCBADDR=, or KEYADDR=/KEYREG=.
  • The contents of registers 10, 11, and 14 are unpredictable on completion. Also, if you do not specify SAVREG=, the contents of register 2 are unpredictable.
  • At completion, register 1 contains the address of the DEB, and register 15 contains either 0, 4, or 16 (see Return Codes from DEBCHK for codes and their meanings).
  • Can be specified when operating in 24-bit or 31-bit addressing mode.
TCBADDR=address—RX-type address, (3-9), or (12)
Specifies the word or register containing the address of the TCB to be used by the DEBCHK verify routine. Use this operand only with BRANCH=YES.
KEYADDR=address—RX-type address
Specifies the location, or a register that points to the location, of a byte containing the key to be used when accessing the DCB (or ACB). The protection key is in bits 0 to 3. Use this operand only with BRANCH=YES.
KEYREG=reg
Specifies the register containing the key value in bit positions 24-27 to be used when accessing the DCB(or ACB). Use this operand only with BRANCH=YES.
SAVREG=reg
Specifies the register in which register 2 is to be saved. Use this operand only with BRANCH=YES.
MF=L
Indicates the list form of the DEBCHK macro instruction. When MF=L is coded, a parameter list is built, consisting of the access method value that corresponds to the AM keyword. This value can be referred to by name in another DEBCHK macro by coding AM=(amaddr), or it can be inserted into the low-order byte of a register before issuing another DEBCHK macro by coding AM=((amreg)).

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014