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


Reading a DSCB by Absolute Device Address

z/OS DFSMSdfp Advanced Services
SC23-6861-01

You can read a DSCB from a VTOC using OBTAIN and the CAMLST SEEK option. Specify the SEEK option by coding SEEK as the first operand of the CAMLST macro and by providing the absolute device address of the DSCB you want to read, unless the DSCB is for a VIO data set. Only the SEARCH option can be used to read the DSCB of a VIO data set.

The format of the OBTAIN and CAMLST macros is:

Read syntax diagramSkip visual syntax diagram
>>-+-------+--OBTAIN--listname_addrx---------------------------->
   '-label-'                           

>--+-------------------------+--+-------------------+----------><
   '-NUMBERDSCB=number_dscbs-'  |         .-NOTOK-. |   
                                '-EADSCB=-+-OK----+-'   

Read syntax diagramSkip visual syntax diagram
>>-listname--CAMLST--SEEK--,dsname_relexp--,cchhr_relexp-------->

>--,vol_relexp--,wkarea_relexp--+-------------------------+----->
                                '-NUMBERDSCB=number_dscbs-'   

>--+-------------------+---------------------------------------><
   |         .-NOTOK-. |   
   '-EADSCB=-+-OK----+-'   

listname
Label of the CAMLST macro instruction. .
SEARCH
Code this operand as shown when calling obtain to read by the passed data set name.
SEEK
Code this operand as shown when calling obtain to read by the passed CCHHR device address
dsname_relexp
For SEARCH requests, specifies the virtual storage location of a fully-qualified data set name. The area that contains the name must be 44-bytes long.
cchhr_relexp
For SEEK requests, specifies the virtual storage location of the 5-byte absolute device address (CCHHR) of a DSCB.
vol_relexp
Specifies the virtual storage location of the 6-byte volume serial number on which the DSCB is located.
wkarea_relexp
For all requests, specifies the virtual storage location of a 140-byte work area, or larger, that must be defined.
NUMBERDSCB
Specifies a value between 0 and 255 that designates the number of consecutive 140-byte return areas that are provided in wkarea_relexp. The system treats a value of 0 as a 1. Currently the system does not support a chain of more than 12 DSCBs for one data set, but it is valid for you to provide an area that is longer than currently needed. The system verifies that the provided area is valid. When you provide an area that is long enough to contain more than one DSCB, OBTAIN processing will return DSCBs for the requested data set name in logical VTOC order until all the 140-byte return areas are used. The logical VTOC order is a format-1 DSCB, followed by zero or more format-3 DSCBs or a format-8 DSCB, followed by one or more format-9 DSCBs, followed by zero or more format-3 DSCBs. No absolute maximum number of DSCBs for a data set should be assumed. When the target of the seek operation is not a format-1 or format-8 DSCB, the NUMBERDSCB value is treated as if it were 1 and only that single DSCB will be returned.

On the OBTAIN macro, you can code a register number or symbol for a register number in parentheses. This means that the specified register contains the number of DSCBs that can fit in the return area. If you code the NUMBERDSCB parameter on OBTAIN, the macro execution stores the value in the CAMLST area. You cannot code a register on the CAMLST macro.

Note that for programs run on a pre-z/OS R10 system that do not support this keyword, the NUMBERDSCB value will be treated as if it were 1.

EADSCB
Specifies whether this program supports data sets with format-8 and format-9 DSCBs. Such data sets can appear on extended address volumes.
EADSCB=OK
Code EADSCB=NOTOK when your program does not support data sets that have format-8 and format-9 DSCBs. The extent descriptors in DSCBs for a data set described with these formats may have track addresses that contain 28-bit cylinder numbers. EADSCB=OK is accepted for data sets described by all DSCB types, including format-1 DSCBs, regardless of the volume size where the data set resides. Your program can also run on an older level of the system that does not support this keyword. In these cases, EADSCB=OK is ignored. EADSCB=OK sets byte 2 bit 4 in the OBTAIN parameter list to on.
EADSCB=NOTOK
Code EADSCB=NOTOK when your program does not support DSCBs that describe data sets with format-8 and format-9 DSCBs. EADSCB=NOTOK is the default when the EADSCB keyword is not specified.

When EADSCB=NOTOK is coded or assumed by default, OBTAIN will set return code 24 if the target of the OBTAIN request has a format-8 or format-9 DSCB. OBTAIN will not check format-3 DSCB extent ranges for track addresses that contain 28-bit cylinder numbers.

EADSCB=NOTOK sets byte 2 bit 4 in the OBTAIN parameter list to zero.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014