<> <> <> <> <> <> DIRECTORY DBEnvironment USING[InternalError]; DBStoragePagetags: CEDAR DEFINITIONS IMPORTS DBEnvironment = BEGIN <> <> <> <> PageHeader: TYPE = MACHINE DEPENDENT RECORD[ pageTag: CARDINAL [0..256), dontCare: CARDINAL [0..256) ]; -- PageHeader <> <> Unused: CARDINAL = 0; -- unused page, obtained by extending Juniper file Free: CARDINAL = 1; -- page on segment or local free list AMap: CARDINAL = 2; -- page used to store segment address-map values Tuple: CARDINAL = 3; -- page used to store tuples SystemTuple: CARDINAL = 4; -- page used to store system tuples OverflowTuple: CARDINAL = 5; -- page used to store overflow tuples & long strings BTree: CARDINAL = 6; -- page used to store part of a B-tree <> AssertPageIsTuplePage: PROC[p: LONG POINTER] = TRUSTED INLINE { SELECT LOOPHOLE[p,LONG POINTER TO PageHeader].pageTag FROM Tuple => {}; ENDCASE => ERROR DBEnvironment.InternalError; -- BadPageTag }; -- AssertPageIsTuplePage AssertPageIsSystemTuplePage: PROC[p: LONG POINTER] = TRUSTED INLINE { SELECT LOOPHOLE[p,LONG POINTER TO PageHeader].pageTag FROM SystemTuple => {}; ENDCASE => ERROR DBEnvironment.InternalError; -- BadPageTag }; -- AssertPageIsSystemTuplePage AssertPageIsAnyTuplePage: PROC[p: LONG POINTER] = TRUSTED INLINE { SELECT LOOPHOLE[p,LONG POINTER TO PageHeader].pageTag FROM Tuple, SystemTuple => {}; ENDCASE => ERROR DBEnvironment.InternalError; -- BadPageTag }; -- AssertPageIsAnyTuplePage AssertPageIsOverflowTuplePage: PROC[p: LONG POINTER] = TRUSTED INLINE { SELECT LOOPHOLE[p,LONG POINTER TO PageHeader].pageTag FROM OverflowTuple => {}; ENDCASE => ERROR DBEnvironment.InternalError; -- BadPageTag }; -- AssertPageIsOverflowTuplePage END. -- DBStoragePagetags <> Created by MBrown on February 15, 1980 11:08 AM Changed by MBrown on July 9, 1980 9:50 PM <> Changed by MBrown on August 13, 1980 4:51 PM <> Changed by MBrown on September 26, 1980 11:29 AM <> <<>> Changed by Willie-Sue on February 14, 1985 <>