// SwatDisk.decl // Copyright Xerox Corporation 1979, 1982 // Last modified March 21, 1982 2:24 PM by Boggs manifest [ hsp = 375B // Highest swapped user page number maxKBs = 8 // max # of disk buffers in cache // disk commands readD = 44120b // check header, check label, read data readHLD = 44000b // read header, read label, read data writeD = 44130b // check header, check label, write data restore = 44002b // address cylinder 0 with a restore ] //---------------------------------------------------------------------------- structure KVM: // Disk Virtual Memory //---------------------------------------------------------------------------- [ @VM // standard object fp @FP // fp of file hits word // # of cache hits misses word // # of cache misses kbQ: // a queue of KBs [ head word tail word ] DAs↑-1,hsp+5 word // DAs!userPage = real disk address ] manifest lenKVM = size KVM/16 //---------------------------------------------------------------------------- structure KB: // Disk Buffer //---------------------------------------------------------------------------- [ link word // must be first userPage word // user page number dirty word // true if dirty kcb word 8 = [ next word status word // completion status command word header word // -> header record address label word // -> label record address data word // -> data record address blank word 2 // (interrupt bit masks) ] headerRec word 2 = [ blank word address word // disk address ] labelRec word 8 = [ nextP word // -> next page on disk backP word // -> previous page on disk blank word numChars word filePage word // file page number vn word // version number sn1 word // serial number word 1 sn2 word // serial number word 2 ] dataRec word 256 ] manifest lenKB = size KB/16