diff --git a/garouter/gaMaze.c b/garouter/gaMaze.c index fb112977..00181615 100644 --- a/garouter/gaMaze.c +++ b/garouter/gaMaze.c @@ -180,27 +180,28 @@ GAMazeInitParms() */ bool -gaMazeRoute(routeUse, terminalLoc, pinPoint, pinLayerMask, side, writeFlag) - CellUse *routeUse; /* Cell to route in - top level cell visible +gaMazeRoute( + CellUse *routeUse, /* Cell to route in - top level cell visible * to router and also cell route is painted * into. All subcells are treated as expanded * by the router, i.e. their contents are * examined. And routing across the tops of * subcells is permitted. */ - NLTermLoc *terminalLoc; /* Terminal to connect to - somewhere in + NLTermLoc *terminalLoc, /* Terminal to connect to - somewhere in * interior of cell */ - Point *pinPoint; /* Point to connect from (on edge of cell) */ - TileTypeBitMask pinLayerMask; /* layer at pin (no more than one + Point *pinPoint, /* Point to connect from (on edge of cell) */ + const TileTypeBitMask *pinLayerMaskp,/* layer at pin (no more than one * bit should correspond to a known * routing layer) */ - int side; /* side of cell destPoint lies on */ - bool writeFlag; /* If non-null, paint back result (into + int side, /* side of cell destPoint lies on */ + bool writeFlag) /* If non-null, paint back result (into * routeUse), otherwise just check if * route is possible. */ { + TileTypeBitMask pinLayerMask = *pinLayerMaskp; // TTMaskCopy(&pinLayerMask, pinLayerMaskp); Rect routeBounds; bool done = FALSE; diff --git a/garouter/gaStem.c b/garouter/gaStem.c index 6476dc85..58f4e951 100644 --- a/garouter/gaStem.c +++ b/garouter/gaStem.c @@ -731,9 +731,9 @@ hardway: TTMaskSetOnlyType(&polyMask, RtrPolyType); TTMaskSetOnlyType(&metalMask, RtrMetalType); - if(gaMazeRoute(routeUse, terminalLoc, gridPoint, polyMask, side, + if(gaMazeRoute(routeUse, terminalLoc, gridPoint, &polyMask, side, writeFlag) && - gaMazeRoute(routeUse, terminalLoc, gridPoint, metalMask, side, + gaMazeRoute(routeUse, terminalLoc, gridPoint, &metalMask, side, writeFlag)) { gaNumMazeStem++; @@ -1123,7 +1123,7 @@ gaStemPaint(routeUse, terminalLoc) goto totalLoss; - if(gaMazeRoute(routeUse, terminalLoc, pinPoint, pinLayerMask, side, + if(gaMazeRoute(routeUse, terminalLoc, pinPoint, &pinLayerMask, side, writeResult)) { gaNumMazePaint++; diff --git a/garouter/garouter.h b/garouter/garouter.h index d1b2d36b..241391d2 100644 --- a/garouter/garouter.h +++ b/garouter/garouter.h @@ -22,6 +22,7 @@ #define _GAROUTER_H #include "grouter/grouter.h" +#include "utils/netlist.h" /* NLTermLoc */ /* * The following structure describes "simple stems" -- routes @@ -88,7 +89,8 @@ extern ClientData gaDebugID; /* Our identity with the debugging module */ extern GCRChannel *gaStemContainingChannel(); extern GCRPin *gaStemCheckPin(); extern int gaAlwaysOne(); -extern bool gaMazeRoute(); +extern bool gaMazeRoute(CellUse *routeUse, NLTermLoc *terminalLoc, Point *pinPoint, + const TileTypeBitMask *pinLayerMaskp, int side, bool writeFlag); /* Exported procedures */ extern int GARoute();