DIRECTORY AlpineEnvironment, AlpineLog, LogRep; LogBasicInternal: DEFINITIONS = BEGIN PageNumber: TYPE = AlpineEnvironment.PageNumber; RecordID: TYPE = AlpineLog.RecordID; AdvanceChunk: PROC [] RETURNS [version: LogRep.PageVersion, pagesInChunk: INT, firstPagePtr: LONG POINTER]; ForceTo: PROC [followingRecord: RecordID]; OpenCoreForPut: PROC [ nextPage: PageNumber, version: LogRep.PageVersion, nextRecord: RecordID] RETURNS [pagesInChunk: INT, firstPagePtr: LONG POINTER]; CloseCoreForPut: PROC []; END. CHANGE LOG Created by MBrown on June 22, 1982 10:59 am Changed by MBrown on October 2, 1982 9:11 pm „LogBasicInternal.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. For communication between modules of the LogBasic implementation Last edited by MBrown on October 3, 1982 5:37 pm Hauser, March 8, 1985 10:46:22 am PST Carl Hauser, October 4, 1985 1:32:16 pm PDT Exported by LogCoreImpl ! AlpineLog.Error[logFull] Allocate a new chunk for end of log, and return info about it. firstPagePtr points to first word of first page of chunk, which is pagesInChunk pages. Error[logFull] is a server crash; it does not release the log core monitor. Return when all pages preceding followingRecord have been recorded on the disk. (This is NOT the same as LogBasic.Force, which must also ensure that if followingRecord is the tail, then the page containing followingRecord gets cleaned up.) Must be called before first call to Put, or a horrible error will occur. Reinitializes log core. Caller should hold tail monitor to exclude concurrent calls to AdvanceChunk. Changed name of module from LogPrivate. Hauser, March 8, 1985 10:46:04 am PST Nodified, added copyright. Carl Hauser, October 4, 1985 1:32:03 pm PDT Change "Log" to "AlpineLog" Κ™˜šœ™Icodešœ Οmœ1™<—Jšœ@™@šœ™Jšœ!™!K™%K™+—J˜˜šΟk ˜ J˜J˜ J˜J˜——šœž œ˜Jšž˜Jšœ žœ ˜0Jšœ žœ˜$J˜Jšœ™J˜šΟn œžœ˜Jšžœ-žœžœžœ˜UJšœ™Jšœ>™>JšœV™VJšœK™KJ˜—šŸœžœ˜*JšœO™OJšœW™WJšœG™GJ˜—šŸœžœ˜J˜HJšžœžœžœžœ˜8JšœH™HJ˜—šŸœžœ˜JšœT™TJšœ™J˜J˜—Jšžœ˜J˜J˜—Jšžœž˜ J˜J˜+J˜J˜,Jšœ'™'™%K™—™+K™—K™—…—n‹