DIRECTORY Basics, ConstArith, Rope, YggDummyRPC, YggDummyFile; YggEnvironment: DEFINITIONS = BEGIN Principal: TYPE = Rope.ROPE; -- an individual (Grapevine, Clearinghouse, ...???) FileStore: TYPE = Principal; -- an Yggdrasil instance RName: TYPE = Rope.ROPE; -- an arbitrary Grapevine RName (or other name server) OwnerName: TYPE = Rope.ROPE; -- an Alpine owner, not necessarily an RName AccessList: TYPE = LIST OF RName; Conversation: TYPE = YggDummyRPC.Conversation; VolOrVolGroupID: TYPE = YggDummyFile.VolumeID; VolumeID: TYPE = RECORD [VolOrVolGroupID]; VolumeGroupID: TYPE = RECORD [VolOrVolGroupID]; nullVolumeID: VolumeID = [YggDummyFile.nullVolumeID]; -- the ID of no volume nullVolumeGroupID: VolumeGroupID = [YggDummyFile.nullVolumeID]; -- the ID of no volume group FileID: TYPE = YggDummyFile.OldFP; -- volume-relative ID of a labeled file nullFileID: FileID = YggDummyFile.nullOldFP; -- the ID of no file UniversalFile: TYPE = RECORD [ -- globally permanently unique identification of a file volumeID: VolumeID, fileID: FileID]; nullUniversalFile: UniversalFile = [volumeID: nullVolumeID, fileID: nullFileID]; PageNumber: TYPE = INT; -- should be [0..maxPagesPerFile] PageCount: TYPE = INT; PageRun: TYPE = RECORD [ firstPage: PageNumber, count: INT _ 1]; maxPagesPerFile: INT = YggDummyFile.PageCount.LAST; WordNumber: TYPE = ConstArith.Const; WordCount: TYPE = WordNumber; DeviceCharacteristics: TYPE = REF DeviceCharacteristicsRep; DeviceCharacteristicsRep: TYPE = RECORD [ wordsPerPage: CARD32, bytesPerPage: CARD32, logWordsPerPage: CARD16, logBytesPerPage: CARD16]; TransID: TYPE [12]; -- globally permanently unique capability for a transaction nullTransIDRep: ARRAY [0..SIZE[TransID]/SIZE[WORD]) OF UNSPECIFIED = [0,0,0]; nullTransID: TransID = LOOPHOLE[nullTransIDRep]; -- ID of no transaction Outcome: TYPE = {abort, commit, unknown}; CommitOrAbort: TYPE = Outcome [abort .. commit]; WorkerState: TYPE = {notReady, readOnlyReady, ready}; END. zYggEnvironment.mesa Copyright c 1985, 1987, 1988 by Xerox Corporation. All rights reserved. Common definitions for public Yggdrasil interfaces Converted from AlpineEnvironment.mesa Last edited by: MBrown on February 1, 1984 5:04:15 pm PST Kolling on October 28, 1983 12:32 pm Taft on April 8, 1983 5:02 pm Hauser, March 7, 1985 2:09:45 pm PST Willie-Sue, December 22, 1986 12:27:19 pm PST Bob Hagmann March 23, 1988 8:56:48 am PST Identification and authentication (see YggDummyRPC.mesa and Lupine documentation for details) Must fix this: Cedar RPC and Grapevine are not the right File system This represents a word index (0-origin) into a file. This limits us to a 4 Exabyte file, which may be a problem eventually but not today. Writing a byte a nanosecond, this will last 130 centuries. This represents a difference of two WordNumbers, the length of an file, etc. Transactions Κ – "cedar" style˜šœ™Icodešœ Οmœ=™H—Jšœ2™2Jšœ%™%šœ™Jšœ)™)Jšœ$™$Jšœ™K™$K™-K™)—J˜J˜šΟk ˜ Jšœ˜Jšœ ˜ Jšœ˜Jšœ ˜ Jšœ ˜ J˜—šœž œ˜Kšž˜K˜K˜—šœ]™]JšœΟc œ™8K˜Kšœ žœžœŸ3˜PKšœ žœŸ˜5KšœžœžœŸ6˜OKšœ žœžœŸ,˜IK˜Kšœ žœžœžœ˜!K˜Kšœžœ˜.K˜—šœ ™ K˜Kšœžœ˜.Kšœ žœžœ˜*Kšœžœžœ˜/Kšœ6Ÿ˜LKšœ@Ÿ˜\K˜KšœžœžœŸΟoŸ˜JKšœ-Ÿ˜AK˜šœžœžœŸ7˜VKšœ˜Kšœ˜—KšœP˜PK˜Kšœ žœžœŸ!˜9Kšœ žœžœ˜šœ žœžœ˜K˜Kšœžœ˜—Kšœžœžœ˜3šœ žœ˜$JšœΖ™Ζ—šœ žœ˜JšœL™L—Kšœžœžœ˜;šœžœžœ˜)Kšœžœ˜Kšœžœ˜Kšœžœ˜Kšœžœ˜—K˜K˜—šœ ™ K˜Kšœ žœŸ;˜OK˜Kš œžœžœžœž œ ˜MKšœžœŸ˜HK˜Kšœ žœ˜)Kšœžœ˜0Kšœ žœ$˜5K˜—Jšžœ˜—…—ΒH