-- ChipWire.mesa

-- last modified by E. McCreight, August 3, 1982  4:15 PM
-- written by E. McCreight, March 5, 1982  10:05 AM

DIRECTORY
  ChipNetDefs,
  FeaturePST,
  ppdefs;

ChipWire: DEFINITIONS =
  BEGIN OPEN ChipNetDefs, FeaturePST, ppdefs;

  --  T y p e s

  SlicePtr: TYPE = LONG POINTER TO Slice ← NIL;
  Slice: TYPE = ARRAY ExtractLevel OF FeaturePSTHandle;


  --  P r o c e d u r e s

  NewSlice: PROCEDURE RETURNS[SlicePtr];

  DestroySlice: PROCEDURE[s: SlicePtr] RETURNS[SlicePtr];

  WireEntered, WireLeft: PROCEDURE[f: FeaturePtr, slice: SlicePtr];

  OverlapIsViolation: PROCEDURE[p: FeaturePSTHandle,
    f: FeaturePtr,
    problem: PROCEDURE[r: CoordRect]];

  HaveSharedArea: PROCEDURE[r1, r2: CoordRect]
    RETURNS[BOOLEAN];
  SharedArea: PROCEDURE[r1, r2: CoordRect]
    RETURNS[r: CoordRect];

END. -- of ChipWire