On Sat, Jun 19, 2010 at 12:38 PM, Kris Buelens <kris.buel...@gmail.com> wrote:
> For CP, the translations it has to perform for the IO's issued by a guest > are a bit less complex if it is a fullpack minidisk. Simply said: it > doesn't have to check the guest reads/writes to just that part of a volume. > And, when a target minidisk doesn't start at cylinder 0, CP must change all > cylinder numbers to apply an offset. Channel Program translation must create a real channel program, lock the guest pages, change the address in the CCW to point to the real page, etc. Adding an offset to the seek is the least of that trouble. I have not checked the code, but I would not be surprised if CP were just adding 0 to them... And don't forget the "untranslate" to present the device status to the guest again. Fortunately, the CCHR is virtual, or relative to the start of the mini disk. It's the Control Unit that verifies that the channel program does not go beyond the edge or does not write on a R/O disk. CP puts a Define Extent CCW at the start of the Channel Program that reflects the size of the mini disk. It also has other info for the CU, so it's also there for full pack... Only V=R and V=F guests could take a shortcut because CP did not need to lock the guest pages. Rob