specifies that data cross 4096-byte boundaries is revised to include an
IDA flag that points to an indirect data address list (IDAL) and a pair
of words for each 4096-byte page, in which each word handles a data
transfer of 2048 bytes (or less). The real CCI is flagged as having a
CP-generated IDA. DMKPTRAN is called (via the TRANS macro) to lock each 4096-byte page.
If the real CCI string does not fit in the allocated free storage
block, a new block is obtained. The old block is transferred and
adjusted before being released. _ The translation continues with the new
block. The process is repeated, as needed, to contain the real CCW string. Virtual CCWs having an IDA flag set are converted to user translated
addresses for each IDAi (indirect data address word) in the virtual
IDAL. DMKPTRAN is called for each IDAW is. The CCW is flagged as having a user (but not CP) generated IDA. The TIC-scan phase scans the real CCW list for flagged (untranslated)
TIC commands and creates a new virtual CCi list for the untranslated
coamands. _ Scan-translate phase processing is then repeated. When all
virtual CCWs are translated, the virtual CAW in the IOBLOK task block is
replaced by the real CAW (that is, a pointer to the real CCW list
created by DMKCCWTR), and DMKCCWTR returns control to DMKVIOEX. The
user protection key is saved.
Because many of the OS PCP, MFT, and MVT ISAM channel prograas are
self-aodifying, special handling is required by the VM/370 control
program to allow virtual machines to use this access method. The
particular CCWs that require special handling have the following general
foraat: 0 2 4 6 8
11
RE1DD1Tl Cf-7 10 hv+oC! A "'.1. --...,. I B TIC to E I C I I D I I E SEEK: SEEK head on D I I F SEARCB on Dt-2 The cei at ! reads 10 bytes of data. The tenth byte foras the coamand code of the CCi at E. In addition, the data read in aakes up
the seek and search arguaents for the CCWs at E and F. After the CCW string is translated by the VM/370 control prograa, it usually is in the
following foraat:
CP Introduction 1-87
1
2
3 4 5
6
To accomplish
operation for OS followinq manner. 0 2 4 6 8
READDATA C-.7 10 bytes I 1 I TIC to 3 SEEK: SEEK head on 6 I 1 I SEARCH on D.2 1 I etc. I I I I ISAft word
an efficient and non-timing-dependent translated ISAft, the virtual eew string is modified in the DftKISftTR is called by DftKeeWTR if, during normal translation, a eel of the type at 1 is encountered. The scan prograa locates the TIe at 2 by searching the translated eew strings. The TIe at 2 locates the SEEK at 3.
The virtual address of the virtual ReWTASK header. Seven doublewords of
address of the block is saved in the
doublewords are used to save the
translated eew strings:
7 Address of Read I at 1 I "'I 8 Unused I I SEEK eew at E is located froa the
free storage are obtained and the ISAft control word at 5. The seven
following inforaation froa the
Address of TIe
at 2 Unused 9 Data area for READ at 1 10 SEEK HEAD on 9
11 TIe to 4 12 Image of READ eew at 1
13 I.age of TIC eew at 2
The translated read eew (at 1) is .oved to the save block at 12. The
TIe eew (at 2) is moved to the save block at 13,-and the addresses of 1
and 2 are saved at 7. The read eew at 1 is aodified to point to a 10-byte data area at 8+1 in the save block. The seek head eew at 3 is
copied into the save block at 10, and the seek address is aodified to
point to the data area at 9. At 11, a TIe eew is built to rejoin the
translated eew string at 4. The search at 4 (or any subsequent search
referencing D.2) is modified to point to 9+2. The co.pleted eel string
has the following format:
1-88 IBM VM/370 Syste. Logic and Problem Deteraination--Voluae 1
Previous Page Next Page