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:
.-,---------------.
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 dataOffset |
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 InterfaceDevice Type |
Optimum |
Maximum |
---|
DASD |
Half track |
32 760 |
Reel tape |
32 760 |
32 760 |
3480, 3490 |
65 535 |
65 535 |
3490 Emulation (VTS) |
262 144 (256 KB) |
262 144 (256 KB) |
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.