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


DEVTYPE—Info Form

z/OS DFSMSdfp Advanced Services
SC23-6861-01

The INFO form of the DEVTYPE macro is used to generate a code list for the INFOLIST parameter. The INFO form is not executable. It has no list or execute form. When you specify the INFOLIST parameter of DEVTYPE, it refers to an expansion of DEVTYPE with only the INFO parameter.

The INFO form of the DEVTYPE macro is:

Read syntax diagramSkip visual syntax diagram
                              .-,---------------.     
                              V                 |     
>>-+-------+--DEVTYPE--INFO=(---+-+-------+---+-+-)------------><
   '-label-'                    | '-AMCAP-'   |       
                                +-+---------+-+       
                                | '-DEVTYPE-' |       
                                +-+------+----+       
                                | '-DASD-'    |       
                                '-+--------+--'       
                                  '-SUFFIX-'          

INFO=(AMCAP or DEVTYPE or DASD or SUFFIX)
Specifies the types of information that you wish to retrieve. Specify any combination of the indicated values in any order. You can specify the same value more than once in the list. The parentheses around the INFO value can be omitted if there is only one value.

Specifying the INFO keyword causes the macro expansion to be a list, and it will not be executable. If you specify the INFO keyword, then omit the MF keyword or specify MF=L. Note that the E-form does not provide for updating any of these values. This means that you can specify INFOLIST to refer to a DEVTYPE expansion that is assembled in a reentrant CSECT.

DEVTYPE will return information in the area that you supply in the area_addrx parameter. Each type of information that you request is of a fixed length, as stated below. At execution time, the DEVTYPE macro will check whether the area is long enough. The information will be returned in the order in which you specify the values with the INFO= keyword. If the requested information has no meaning for the device or data set, then DEVTYPE clears the appropriate storage. This means that each piece of information will be returned at a predictable offset in your area.

IBM® can add support to DEVTYPE for new INFO= codes in a future level of the system. DEVTYPE in the current level is expected to tolerate object code assembled on such a future level. DEVTYPE in the current level is expected to return the appropriate number of bytes. They should be binary zeroes or partial information padded on the right with binary zeroes. In either case DEVTYPE will also set a return code=0 with a reason code=4 to indicate this condition. If the information returned by the future code cannot validly be zero, then you can test for zeroes to determine which field or fields are not supported. You can also test the DFA to determine the level of the system.

DEVTYPE is not designed to support downward compatibility of source code; that is, you will not be able to assemble source code containing future INFO values on the current level.

AMCAP
Returns 32 bytes for the access method capacity as follows:
Table 1. INFO=AMCAP 32–byte return data
Offset Bytes Description
0(0) 1 Flags.
0(0) 1... .... BSAM, QSAM, and (if DASD) BPAM support the large block interface and the block size limit is in the next doubleword.
1(1) 7 Reserved, currently set to zeros.
8(8) 8 Maximum block size supported. If you specify a DD name to DEVTYPE for a data set concatenation, this value is the largest for any of the DDs. This value might exceed 32760 for a magnetic tape or dummy data set and therefore require EXCP or the access method large block interface. On output, OPEN does not allow a block size that exceeds this value except with EXCP. On certain cartridge tape drives, exceeding this limit can cause bypassing of hardware buffering. In the future, IBM might support values that exceed 32760 for other device types.
16(10) 8 Recommended maximum block size. This is less than or equal to the maximum block size supported. Above this length the device might be less efficient or less reliable. If you specify a DD name to DEVTYPE for a data set concatenation, this value is the largest for any of the DDs (refer to Table 2). Consult hardware documentation for further information.
24(18) 8 Maximum unspanned logical record length supported by BSAM, QSAM, or BPAM. Various types of data sets on the device might have various maximum record lengths. Therefore, if UCBLIST was coded on DEVTYPE and not a DD name, this value is the smallest for the possible data set types for BSAM, QSAM, and BPAM.
Table 2. Optimum and Maximum Block Size Supported When Using EXCP or the Access Method Large Block Interface
Device Type Optimum Maximum
DASD Half track 32 760
Reel tape 32 760 32 760
3480, 3490 65 535 65 535
Start of change 3490 Emulation (VTS) End of change Start of change 262 144 (256 KB) End of change Start of change 262 144 (256 KB) End of change
3590 262 144 (256 KB) except on some older models on which it is 229 376 (224 KB) 262 144 (256 KB)
DUMMY 16 5 000 000
DEVTYPE
Returns a copy of the four-byte UCBTYP field of the UCB. See the description of word 0 in Device Characteristics Information.
DASD
Returns 16 bytes as follows:
Bytes 0-3
Number of cylinders on the device, excluding alternates. For a VIO data set, this number is the number of simulated cylinders needed to contain the data set.
Bytes 4-7
Number of tracks per cylinder.
Bytes 8-9
Flags (two bytes)
1... ....
ECKD™ supported. This means that the following commands are supported:
  • Define Extent (X'63') at the beginning of the channel program, except with VIO.
  • Locate Record (X'47')
  • Read Multiple Count, Key and Data (X'5E')
  • Write Count, Key and Data Next Track (X'9D')
For VIO data sets, this bit is on because these commands are always supported. For a non-VIO DASD, this bit also means that the device supports the Define Extent command, but EXCP allows it only at the beginning of your channel program. See DASD Channel Program Prefix CCW Commands.
.1.. ....
Locate Record Extended CCW is supported. For VIO data sets, this bit is on because those commands are always supported.
..1. ....
Controller cache supported.
...1 ....
Flag DVAIXVLD. Flags DVACYLMG (byte 8 bit 4) and DVAEADSCB (byte 8 bit 5), along with field DVAVIRSZ (bytes 14-15) valid and possibly zero.
.... 1...
Flag DVACYLMG. Cylinder-managed space exists on this volume and begins at DVALCYL (bytes 10-11) in multicylinder units of DVAMCU (byte 9). DVAEADSCB (byte 8 bit 5) is also set with this flag on. Valid when DVAIXVLD (byte 8 bit 3) is set.
.... .1..
Flag DVAEADSCB. Extended attribute DSCBs, Format 8 and 9 DSCBs, are allowed on this volume. Valid when DVAIXVLD (byte 8 bit 3) is set.
.... ..1.
Flag DVASSDEV. The device is solid state.
.... ...1
Flag DVACRYPT. Data encrypted device.
Byte 9
Field DVAMCU. Minimum allocation size in cylinders for cylinder-managed space. Each extent in this space must be a multiple of this value. Also referred to as the multicylinder unit (MCU). This is the smallest unit of disk space in cylinders that can be allocated in cylinder managed space. Valid when DVACYLMG (byte 8 bit 4) is set. This field is zero on releases before z/OS® 1.10 or if the status is not yet known. In these two cases DVAIXVLD (byte 8 bit 3) is not set.
Bytes 10-11
Field DVALCYL. First cylinder address divided by 4095 where space is managed in multicylinder units. Valid when DVACYLMG (byte 8 bit 4) is set. When valid and zero the volume has no cylinder-managed space. This field is zero on releases before z/OS 1.10 or if the status is not yet known. In these two cases DVAIXVLD (byte 8 bit 3) is not set.
Byte 12
Track set size. Zero if device does not support read-any or write-any. See 3990 Reference for more information.
Bytes 13
Reserved. DEVTYPE currently returns zeroes but could return something different in a future release.
Bytes 14-15
Block size of the index data set. Valid when byte 8 bit 3 is on. When valid and zero the volume has no working VTOC index. This field is zero on releases before z/OS 1.10 or if the status is not yet known. In these cases byte 8 bit 3 is not set.
SUFFIX
Returns in two bytes the length of the suffix that the system adds to each block in an extended format data set that can be stored on the device. Use this information for space calculations such as with the TRKCALC macro and for determining optimal block size. For device types that support extended format data sets, DEVTYPE returns 32. A non-zero value does not mean that the data set actually is extended format or that the device supports extended format data sets. Not all storage controllers can support extended format data sets. In a future release this value might change.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014