o 1 2 3 5 6 7
o BLKSIZE I OFFSET 8 VDEVADDR I ////////////////////////////////////////
where: BLKSIZE OFFSET VDEVADDR
is the block size of the specified disk. The block size may be
512, 1K, 2K, or 4K bytes.
associates a physical block number to the first user data block
of on the disk. Note that this number represents the number
of sequential blocks used on the disk by the CMS file system
to implement its structure. The DASD Block I/O System Ser­ vice does not check the validity of this number. Therefore, the
application may change this number if desired, but you could
overlay files used by CMS. is the virtual device address of the disk where the Block I/O is
to be performed.
All reserved fields must be set to zero.
If all the parameters required by DASD Block I/O are valid, DASD Block I/O issues an IUCV ACCEPT on the path specifying PRMDAT A= YES. The follow­
ing information. is returned in the IPUSER field of the IUCV Connection-Complete
external interrupt buffer:
o 1 2 3 4 5 6 7
o START BLOCK I END BLOCK 8 FLAGS I ////////////////////////////////////////
where: START BLOCK 1 minus the OFFSET specified on the IUCV CONNECT.
This value along with END BLOCK is the range of block
numbers allowable on the DASD Block I/O request.
END BLOCK The number of blocks on the specified virtual device minus the OFFSET specified on the IUCV CONNECT. This value
along with START BLOCK is the range of block numbers
allowable on the DASD Block I/O request. FLAGS A set of bits defining the status of the virtual device. One bit
is defined and the others are reserved. RDONLY X'0001' Unused X'FFFE'
All reserved fields are returned as zero.
Virtual device is read only
Zero
DASD Block I/O System Service 195
If any of the parameters passed to DASD Block I/O are invalid, DASD Block I/O issues an IUCV SEVER on the path and flags the error. The first byte of the IPUSER field contains one of the following error codes: X'Ol' Virtual device is not defined X'02' Virtual device is not supported X'03' Block size is not supported X'04' IUCV path already exists for this device X'05' Connection is not using PRMDATA=YES X'06' Reserved field is not set to zero
IUCV SEND to the DASD Block I/O System Service
When the connection to the device is ACCEPTed by DASD Block I/O, you can
start sending I/O requests to DASD Block I/O. You can specify TRGCLS=,
DATA=PRMMSG, and the PRMMSG= options on the IUCV SEND or you can
move the necessary data into the IUCV parameter list yourself. The TRGCLS=
option sets the type of I/O requested, read or write. The DAT A=PRMMSG
option sets a flag in IPFLAGSl, and the PRMMSG= option moves the block
number and virtual buffer address into the IUCV parameter list. The following list
defines the input necessary for the DASD Block I/O System Service on an IUCV SEND command: IPRMMSGI IPRMMSG2
IPTRGCLS F'Ol' F'02' Block number
Virtual buffer address
Block I/O service requested
Write request (CMS formatted)
Read request (CMS formatted)
If you have misused IUCV protocol set up for this system service, DASD Block I/O issues an IUCV SEVER on the path and flags the error. The first byte of the IPUSER field contains one of the following error codes: X'07' IUCV communication was not sent using DAT A=PRMMSG X'08' No one-way messages are allowed on the path
Otherwise, DASD Block I/O tries to perform the request. It issues an IUCV REPLY to return the results of the I/O requests. One of the following return
codes is returned in the IPRMMSG 1 field of the IUCV parameter list: F'OO' I/O completed successful F'O l' Invalid block number F'02' Invalid data buffer address F'03' Write on read/only DASD F'04' Incorrect block size -format error F'05' Unrecoverable I/O error F'06' Invalid service requested F'07' Protection exception on virtual buffer
If the device is reset, the path is QUIESCEd and no more requests are allowed.
When there are no I/O requests outstanding, DASD Block I/O issues an IUCV SEVER on the path and flags the error. The first byte of the IPUSER field con­
tains the following return code: X'09' Virtual device has been reset
196 VM/SP System Programmer's Guide /'
Previous Page Next Page