-- CountPinnedPages.mesa
-- Last Modified On 30-Apr-81 19:00:02 By Roy Levin
DIRECTORY
CachedRegion, CachedRegionImplA, Runtime, SpecialSpace, VM;
CountPinnedPages: PROGRAM IMPORTS Runtime, SpecialSpace SHARES CachedRegionImplA
= {
-- call: PGCount[14314B]
PGCount: PROC[pf: UNSPECIFIED] RETURNS[pgCount: VM.PageCount ← 0] =
{ OPEN LOOPHOLE[pf, POINTER TO FRAME[CachedRegionImplA]];
FOR pd: PDesc ← pDescFirst, pd+SIZE[CachedRegion.Desc] UNTIL pd > pDescLast DO
OPEN d:baseDesc[pd];
IF d.state = inPinned THEN pgCount ← pgCount+d.interval.count;
ENDLOOP;
};
SpecialSpace.MakeCodeResident[Runtime.GlobalFrame[PGCount]];
}.