DIRECTORY C2CBasics USING [CantHappen], C2CTarget USING [bestAlignment, PointeeBits], C2COps; C2COpsImpl: CEDAR PROGRAM IMPORTS C2CBasics, C2CTarget EXPORTS C2COps = BEGIN PlainAccess: PUBLIC PROC [start, sz: INT] RETURNS [BOOL] = { IF sz = 0 THEN RETURN [FALSE]; IF sz#C2CTarget.PointeeBits[sz] THEN RETURN [FALSE]; RETURN [(start MOD MIN[sz, C2CTarget.bestAlignment])=0] }; MinContainerSize: PUBLIC PROC [start, sz: INT] RETURNS [cs: INT] = { IF sz<0 THEN C2CBasics.CantHappen; IF sz=0 THEN RETURN [-1]; --Convention to be phased out cs ¬ C2CTarget.PointeeBits[sz]; DO IF cs>=C2CTarget.bestAlignment THEN RETURN [cs]; IF start/cs = (start+sz-1)/cs --starts and stops in same unit-- THEN RETURN [cs]; cs ¬ cs+cs; ENDLOOP; }; END. Ά C2COpsImpl.mesa Copyright Σ 1993 by Xerox Corporation. All rights reserved. Christian Jacobi, January 15, 1993 10:46:38 am PST Christian Jacobi, January 19, 1993 5:19 pm PST Κš•NewlineDelimiter –(cedarcode) style™™Icodešœ Οeœ1™