PipalCoreBackdoor.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.
DIRECTORY CD, CoreClasses, CoreIO, PipalCore;
PipalCoreBackdoor: CEDAR DEFINITIONS ~ BEGIN OPEN PipalCore;
maxInstanceSeq: NAT = 9000;
Maximum size of InstanceSeq
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: REFNIL
];
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: BOOLFALSE];
Raw enumeration of pins that necessitates very little context.
RawEnumerateGeometry: PUBLIC PROC [prop: ATOM, value: REF, eachInstance: EachInstanceProc] RETURNS [quit: BOOLFALSE];
Raw enumeration of geometry that necessitates very little context.
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.