DIRECTORY CD, CoreClasses, CoreIO, PipalCore; PipalCoreBackdoor: CEDAR DEFINITIONS ~ BEGIN OPEN PipalCore; maxInstanceSeq: NAT = 9000; InstanceSeq: TYPE = REF InstanceSeqRec; InstanceSeqRec: TYPE = RECORD [instances: SEQUENCE size: NAT OF Instance]; TransWireIR: TYPE = REF TransWireIRRec; TransWireIRRec: TYPE = RECORD [ir: Rect, tws: SEQUENCE size: NAT OF TransWire]; TransWire: TYPE = RECORD [trans: Transformation, wire: Wire]; LazyEnumerateData: TYPE = REF LazyEnumerateDataRec; LazyEnumerateDataRec: TYPE = RECORD [ proc: LazyEnumerateProc, data1, data2: REF _ NIL ]; Handle: TYPE = CoreIO.Handle; ObjectClassWriteProc: TYPE = PROC [h: Handle, me: Object]; ObjectClassReadProc: TYPE = PROC [h: Handle] RETURNS [obj: Object]; RawEnumeratePins: PUBLIC PROC [prop: ATOM, value: REF, eachInstance: EachInstanceProc] RETURNS [quit: BOOL _ FALSE]; RawEnumerateGeometry: PUBLIC PROC [prop: ATOM, value: REF, eachInstance: EachInstanceProc] RETURNS [quit: BOOL _ FALSE]; RegisterDecorationIO: PROC [decoration: Decoration]; RegisterObjectClass: PROC [objectClass: CD.ObjectClass, write: ObjectClassWriteProc, read: ObjectClassReadProc]; WritePosition: PROC [h: Handle, position: CD.Position]; ReadPosition: PROC [h: Handle] RETURNS [position: CD.Position]; WriteRect: PROC [h: Handle, rect: CD.Rect]; ReadRect: PROC [h: Handle] RETURNS [rect: CD.Rect]; WriteTechnology: PROC [h: Handle, technology: CD.Technology]; ReadTechnology: PROC [h: Handle] RETURNS [technology: CD.Technology]; WriteLayer: PROC [h: Handle, layer: CD.Layer]; ReadLayer: PROC [h: Handle] RETURNS [layer: CD.Layer]; WriteOrient: PROC [h: Handle, orient: CD.Orientation]; ReadOrient: PROC [h: Handle] RETURNS [orient: CD.Orientation]; WriteTrans: PROC [h: Handle, trans: CD.Transformation]; ReadTrans: PROC [h: Handle] RETURNS [trans: CD.Transformation]; WriteCDProperties: PROC [h: Handle, properties: CD.PropList]; ReadCDProperties: PROC [h: Handle] RETURNS [properties: CD.PropList _ NIL]; WriteCDInstance: PROC [h: Handle, instance: CD.Instance]; ReadCDInstance: PROC [h: Handle] RETURNS [instance: CD.Instance]; WriteCDInstances: PROC [h: Handle, instances: LIST OF CD.Instance]; ReadCDInstances: PROC [h: Handle] RETURNS [instances: LIST OF CD.Instance _ NIL]; WriteInstance: PROC [h: Handle, instance: PipalCore.Instance]; ReadInstance: PROC [h: Handle] RETURNS [instance: PipalCore.Instance]; WriteInstances: PROC [h: Handle, instances: PipalCore.Instances]; ReadInstances: PROC [h: Handle] RETURNS [instances: PipalCore.Instances _ NIL]; WriteObject: PROC [h: Handle, obj: CD.Object]; ReadObject: PROC [h: Handle] RETURNS [obj: CD.Object]; END. nPipalCoreBackdoor.mesa Copyright Σ 1987, 1988 by Xerox Corporation. All rights reserved. Bertrand Serlet, March 5, 1988 5:45:15 pm PST Backdoor for fancy operations on decorated Core, such as IO. Maximum size of InstanceSeq Raw enumeration of pins that necessitates very little context. Raw enumeration of geometry that necessitates very little context. ΚΟ˜codešœ™KšœB™BKšœ-™-K™—bodyšœ9Οkœ™—šžœœœœ œ"œœœ˜xK™BK™—šžœœ˜4K˜—šžœœœF˜pK˜—Kšž œœœ ˜7Kšž œœ œ œ ˜?Kšž œœœ˜+Jšžœœ œœ˜3Kšžœœœ ˜=Kšžœœ œœ ˜EKšž œœœ˜.Kšž œœ œ œ˜6Kšž œœœ˜6Kšž œœ œ œ˜>Kšž œœœ˜7šž œœ œ œ˜?K˜—Kšžœœœ ˜=Kš žœœ œœ œ˜KKšžœœœ ˜9Jšžœœ œ œ ˜AKš žœœœœœ ˜Cšžœœ œ œœœ œ˜QK˜—Kšž œœ+˜>Jšž œœ œ ˜FKšžœœ-˜Ašž œœ œ#œ˜OK˜—Kšž œœœ ˜.šž œœ œœ ˜6K˜——Kšœ˜—…— L‰