Additional modification to the devVisit routine in extflat to
change from passing the HierName to passing the HierContext (of which HierName is a part) so that more information from HierContext (such as the cell use being visited) can be passed to the callback procedure (largely for diagnostic purposes).
This commit is contained in:
parent
15f1c82bc9
commit
01966d594e
|
|
@ -37,6 +37,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
|
||||||
#include "textio/txcommands.h"
|
#include "textio/txcommands.h"
|
||||||
#endif
|
#endif
|
||||||
#include "extflat/extflat.h"
|
#include "extflat/extflat.h"
|
||||||
|
#include "extflat/EFint.h"
|
||||||
#include "extract/extract.h" /* for extDevTable */
|
#include "extract/extract.h" /* for extDevTable */
|
||||||
#include "utils/runstats.h"
|
#include "utils/runstats.h"
|
||||||
#include "utils/malloc.h"
|
#include "utils/malloc.h"
|
||||||
|
|
@ -981,9 +982,9 @@ HierName *suffix;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
simdevVisit(dev, hierName, scale, trans)
|
simdevVisit(dev, hc, scale, trans)
|
||||||
Dev *dev; /* Device being output */
|
Dev *dev; /* Device being output */
|
||||||
HierName *hierName; /* Hierarchical path down to this device */
|
HierContext *hc; /* Hierarchical context down to this device */
|
||||||
float scale; /* Scale transform for output */
|
float scale; /* Scale transform for output */
|
||||||
Transform *trans; /* Coordinate transform */
|
Transform *trans; /* Coordinate transform */
|
||||||
{
|
{
|
||||||
|
|
@ -992,6 +993,7 @@ simdevVisit(dev, hierName, scale, trans)
|
||||||
int l, w;
|
int l, w;
|
||||||
Rect r;
|
Rect r;
|
||||||
char name[12];
|
char name[12];
|
||||||
|
HierName *hierName = hc->hc_hierName;
|
||||||
|
|
||||||
sprintf(name, "output");
|
sprintf(name, "output");
|
||||||
|
|
||||||
|
|
@ -1643,9 +1645,9 @@ Dev *dev;
|
||||||
* ----------------------------------------------------------------------------
|
* ----------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
simmergeVisit(dev, hierName, scale, trans)
|
simmergeVisit(dev, hc, scale, trans)
|
||||||
Dev *dev; /* Dev to examine */
|
Dev *dev; /* Dev to examine */
|
||||||
HierName *hierName; /* Hierarchical path down to this dev */
|
HierContext *hc; /* Hierarchical context down to this dev */
|
||||||
float scale; /* Scale transform */
|
float scale; /* Scale transform */
|
||||||
Transform *trans; /* Coordinate transform (not used) */
|
Transform *trans; /* Coordinate transform (not used) */
|
||||||
{
|
{
|
||||||
|
|
@ -1656,6 +1658,7 @@ Transform *trans; /* Coordinate transform (not used) */
|
||||||
int pmode, l, w;
|
int pmode, l, w;
|
||||||
float m;
|
float m;
|
||||||
devMerge *fp, *cfp;
|
devMerge *fp, *cfp;
|
||||||
|
HierName *hierName = hc->hc_hierName;
|
||||||
|
|
||||||
if (dev->dev_nterm < 2) {
|
if (dev->dev_nterm < 2) {
|
||||||
TxError("outPremature\n");
|
TxError("outPremature\n");
|
||||||
|
|
|
||||||
|
|
@ -2220,9 +2220,9 @@ getCurDevMult()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
spcdevVisit(dev, hierName, scale, trans)
|
spcdevVisit(dev, hc, scale, trans)
|
||||||
Dev *dev; /* Dev being output */
|
Dev *dev; /* Dev being output */
|
||||||
HierName *hierName; /* Hierarchical path down to this dev */
|
HierContext *hc; /* Hierarchical context down to this dev */
|
||||||
float scale; /* Scale transform for output */
|
float scale; /* Scale transform for output */
|
||||||
Transform *trans; /* (unused) */
|
Transform *trans; /* (unused) */
|
||||||
{
|
{
|
||||||
|
|
@ -2234,6 +2234,7 @@ spcdevVisit(dev, hierName, scale, trans)
|
||||||
float sdM;
|
float sdM;
|
||||||
char name[12], devchar;
|
char name[12], devchar;
|
||||||
bool has_model = TRUE;
|
bool has_model = TRUE;
|
||||||
|
HierName *hierName = hc->hc_hierName;
|
||||||
|
|
||||||
sprintf(name, "output");
|
sprintf(name, "output");
|
||||||
|
|
||||||
|
|
@ -3712,9 +3713,9 @@ mergeAttr(a1, a2)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
devMergeVisit(dev, hierName, scale, trans)
|
devMergeVisit(dev, hc, scale, trans)
|
||||||
Dev *dev; /* Dev to examine */
|
Dev *dev; /* Dev to examine */
|
||||||
HierName *hierName; /* Hierarchical path down to this dev */
|
HierContext *hc; /* Hierarchical context down to this dev */
|
||||||
float scale; /* Scale transform */
|
float scale; /* Scale transform */
|
||||||
Transform *trans; /* (unused) */
|
Transform *trans; /* (unused) */
|
||||||
{
|
{
|
||||||
|
|
@ -3726,9 +3727,10 @@ devMergeVisit(dev, hierName, scale, trans)
|
||||||
bool hS, hD, chS, chD;
|
bool hS, hD, chS, chD;
|
||||||
devMerge *fp, *cfp;
|
devMerge *fp, *cfp;
|
||||||
float m;
|
float m;
|
||||||
|
HierName *hierName = hc->hc_hierName;
|
||||||
|
|
||||||
if (esDistrJunct)
|
if (esDistrJunct)
|
||||||
devDistJunctVisit(dev, hierName, scale, trans);
|
devDistJunctVisit(dev, hc, scale, trans);
|
||||||
|
|
||||||
if (dev->dev_nterm < 2)
|
if (dev->dev_nterm < 2)
|
||||||
{
|
{
|
||||||
|
|
@ -3913,15 +3915,16 @@ update_w(resClass, w, n)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
devDistJunctVisit(dev, hierName, scale, trans)
|
devDistJunctVisit(dev, hc, scale, trans)
|
||||||
Dev *dev; /* Dev to examine */
|
Dev *dev; /* Dev to examine */
|
||||||
HierName *hierName; /* Hierarchical path down to this dev */
|
HierContext *hc; /* Hierarchical path down to this dev */
|
||||||
float scale; /* Scale transform */
|
float scale; /* Scale transform */
|
||||||
Transform *trans; /* (unused) */
|
Transform *trans; /* (unused) */
|
||||||
{
|
{
|
||||||
EFNode *n;
|
EFNode *n;
|
||||||
int i;
|
int i;
|
||||||
int l, w;
|
int l, w;
|
||||||
|
HierName *hierName = hc->hc_hierName;
|
||||||
|
|
||||||
if (dev->dev_nterm < 2)
|
if (dev->dev_nterm < 2)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@
|
||||||
#include "dbwind/dbwind.h"
|
#include "dbwind/dbwind.h"
|
||||||
#include "textio/txcommands.h"
|
#include "textio/txcommands.h"
|
||||||
#include "extflat/extflat.h"
|
#include "extflat/extflat.h"
|
||||||
|
#include "extflat/EFint.h"
|
||||||
#include "extract/extract.h"
|
#include "extract/extract.h"
|
||||||
#include "extract/extractInt.h"
|
#include "extract/extractInt.h"
|
||||||
#include "utils/malloc.h"
|
#include "utils/malloc.h"
|
||||||
|
|
@ -335,9 +336,9 @@ HierName *suffix;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
antennacheckVisit(dev, hierName, scale, trans, editUse)
|
antennacheckVisit(dev, hc, scale, trans, editUse)
|
||||||
Dev *dev; /* Device being output */
|
Dev *dev; /* Device being output */
|
||||||
HierName *hierName; /* Hierarchical path down to this device */
|
HierContext *hc; /* Hierarchical context down to this device */
|
||||||
float scale; /* Scale transform for output */
|
float scale; /* Scale transform for output */
|
||||||
Transform *trans; /* Coordinate transform */
|
Transform *trans; /* Coordinate transform */
|
||||||
CellUse *editUse; /* ClientData is edit cell use */
|
CellUse *editUse; /* ClientData is edit cell use */
|
||||||
|
|
@ -354,6 +355,7 @@ antennacheckVisit(dev, hierName, scale, trans, editUse)
|
||||||
SearchContext scx;
|
SearchContext scx;
|
||||||
TileTypeBitMask gatemask, saveConMask;
|
TileTypeBitMask gatemask, saveConMask;
|
||||||
bool antennaError;
|
bool antennaError;
|
||||||
|
HierName *hierName = hc->hc_hierName;
|
||||||
|
|
||||||
extern CellDef *extPathDef; /* see extract/ExtLength.c */
|
extern CellDef *extPathDef; /* see extract/ExtLength.c */
|
||||||
extern CellUse *extPathUse; /* see extract/ExtLength.c */
|
extern CellUse *extPathUse; /* see extract/ExtLength.c */
|
||||||
|
|
@ -554,6 +556,7 @@ antennacheckVisit(dev, hierName, scale, trans, editUse)
|
||||||
antennaError = TRUE;
|
antennaError = TRUE;
|
||||||
if (efAntennaDebug == TRUE)
|
if (efAntennaDebug == TRUE)
|
||||||
{
|
{
|
||||||
|
TxError("Cell: %s\n", hc->hc_use->use_id);
|
||||||
TxError("Antenna violation detected at plane %s\n",
|
TxError("Antenna violation detected at plane %s\n",
|
||||||
DBPlaneLongNameTbl[pNum2]);
|
DBPlaneLongNameTbl[pNum2]);
|
||||||
TxError("Effective antenna ratio %g > limit %g\n",
|
TxError("Effective antenna ratio %g > limit %g\n",
|
||||||
|
|
|
||||||
|
|
@ -321,7 +321,7 @@ efVisitDevs(hc, ca)
|
||||||
if (efDevKilled(dev, hc->hc_hierName))
|
if (efDevKilled(dev, hc->hc_hierName))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ((*ca->ca_proc)(dev, hc->hc_hierName, scale, &t, ca->ca_cdata))
|
if ((*ca->ca_proc)(dev, hc, scale, &t, ca->ca_cdata))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue