DIRECTORY BootFile USING [Location], PrincOps USING [PageCount, PageNumber]; BootChannel: DEFINITIONS = BEGIN OPEN PrincOps; Operation: TYPE = { read, -- read write, -- write rawRead}; -- raw read: read (single) boot page with no label verify Create: PROC [pLocation: POINTER TO BootFile.Location, operation: Operation, dFirst64KStorage: LONG DESCRIPTOR FOR ARRAY OF WORD] RETURNS [handle: Handle]; Handle: TYPE = PROC [page: PageNumber, count: PageCount]; Transfer: PROC [handle: Handle, page: PageNumber, count: PageCount] = INLINE { handle[page, count]; }; transferWait: PageCount = LAST[PageCount]; transferCleanup: PageCount = 0; END. LOG Time: December 18, 1978 9:34 AM By: McJones Action: Create file Time: July 30, 1979 4:32 PM By: McJones Action: Added substructure and disk variant to Location Time: September 19, 1979 6:39 PM By: McJones Action: Move Location, DiskFileID, DiskAddress to Boot Time: October 5, 1979 6:09 PM By: McJones Action: Move dHardwareState from Open to Create Time: October 13, 1979 4:30 PM By: McJones Action: Combine TransferPage, Wait into Apply Time: November 16, 1979 10:25 AM By: McJones Action: Runs: drop Open, Wait; add count to Transfer Time: January 17, 1980 2:46 PM By: Gobbel Action: SA4000 booting: added rawRead to Operation type Time: February 4, 1980 8:51 AM By: Knutsen Action: Added F64K allocator, cleanup call of Transfer. Time: February 4, 1980 8:51 AM By: McJones Action: Drop hardware state Time: January 4, 1981 2:54 PM By: Taft Action: add transferWait, transferCleanup Time: October 28, 1983 3:47 pm By: Birrell Action: Tioga formatting and Cedar 5.0 conversion ŠBootChannel.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Taft, January 4, 1981 2:54 PM Birrell, October 28, 1983 3:50 pm Russ Atkinson (RRA) February 13, 1985 4:43:47 pm PST Create boot channel from specification of device. dFirst64KStorage should be used for allocating IOCB's, etc. in the first 64K. It is guaranteed to be 16-word aligned. (When germ resides in first 64K, dHardwareState and dCSBStorage need not be LONG). Initiates transfer of the next sequential count pages to/from the boot file starting at the specified (virtual memory) page. The transfer may not have completed when Transfer returns. The client may call Transfer with count=transferWait to wait until all initiated transfers have completed. When all transfers have been completed, Transfer is called with count=transferCleanup. At this time, the BootChannel should perform any necessary cleanup. ΚΙ˜codešœ™Kšœ Οmœ1™˜\—K˜—…—n Α