extract: convert K&R function definitions to ANSI C
Convert the old-style (K&R) function definitions in extract/ to ANSI C prototypes, formatted in the project's convention: the return type on its own line and each parameter on its own line, indented four spaces, with the original parameter comments retained. Updates the extract headers (extract.h, extractInt.h). Where the generically-typed node-name callback field is assigned the now-prototyped extArrayTileToNode / extSubtreeTileToNode, the assignment is cast to the field's function-pointer type. Builds cleanly under GCC 16 / C23 (with the -std=gnu17 build change). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
97be8b72f0
commit
61a0a0541c
|
|
@ -60,8 +60,8 @@ ExtTree *extArrayPrimary; /* Primary array element */
|
|||
/* Forward declarations */
|
||||
int extArrayFunc();
|
||||
int extArrayPrimaryFunc(), extArrayInterFunc();
|
||||
char *extArrayRange();
|
||||
char *extArrayTileToNode();
|
||||
char *extArrayRange(char *dstp, int lo, int hi, bool prevRange, bool followRange);
|
||||
char *extArrayTileToNode(Tile *tp, TileType dinfo, int pNum, ExtTree *et, HierExtractArg *ha, bool doHard);
|
||||
LabRegion *extArrayHardNode();
|
||||
char *extArrayNodeName();
|
||||
|
||||
|
|
@ -85,9 +85,9 @@ void extArrayHardSearch();
|
|||
*/
|
||||
|
||||
void
|
||||
extOutputGeneratedLabels(parentUse, f)
|
||||
CellUse *parentUse;
|
||||
FILE *f;
|
||||
extOutputGeneratedLabels(
|
||||
CellUse *parentUse,
|
||||
FILE *f)
|
||||
{
|
||||
CellDef *parentDef;
|
||||
Label *lab;
|
||||
|
|
@ -147,9 +147,9 @@ extOutputGeneratedLabels(parentUse, f)
|
|||
*/
|
||||
|
||||
void
|
||||
extArray(parentUse, f)
|
||||
CellUse *parentUse;
|
||||
FILE *f;
|
||||
extArray(
|
||||
CellUse *parentUse,
|
||||
FILE *f)
|
||||
{
|
||||
SearchContext scx;
|
||||
HierExtractArg ha;
|
||||
|
|
@ -161,7 +161,7 @@ extArray(parentUse, f)
|
|||
*/
|
||||
ha.ha_outf = f;
|
||||
ha.ha_parentUse = parentUse;
|
||||
ha.ha_nodename = extArrayTileToNode;
|
||||
ha.ha_nodename = (char *(*)()) extArrayTileToNode;
|
||||
ha.ha_cumFlat.et_use = extYuseCum;
|
||||
HashInit(&ha.ha_connHash, 32, 0);
|
||||
|
||||
|
|
@ -232,9 +232,9 @@ extArray(parentUse, f)
|
|||
*/
|
||||
|
||||
int
|
||||
extArrayFunc(scx, ha)
|
||||
SearchContext *scx; /* Describes first element of array */
|
||||
HierExtractArg *ha; /* Extraction context */
|
||||
extArrayFunc(
|
||||
SearchContext *scx, /* Describes first element of array */
|
||||
HierExtractArg *ha) /* Extraction context */
|
||||
{
|
||||
int xsep, ysep; /* X, Y separation in parent coordinates */
|
||||
int xsize, ysize; /* X, Y sizes in parent coordinates */
|
||||
|
|
@ -358,9 +358,9 @@ extArrayFunc(scx, ha)
|
|||
*/
|
||||
|
||||
void
|
||||
extArrayProcess(ha, primary)
|
||||
HierExtractArg *ha;
|
||||
Rect *primary; /* Area guaranteed to contain only the primary
|
||||
extArrayProcess(
|
||||
HierExtractArg *ha,
|
||||
Rect *primary) /* Area guaranteed to contain only the primary
|
||||
* element of the array, against which we will
|
||||
* extract all other elements that overlap the
|
||||
* area 'ha->ha_interArea'.
|
||||
|
|
@ -421,13 +421,14 @@ done:
|
|||
*/
|
||||
|
||||
int
|
||||
extArrayPrimaryFunc(use, trans, x, y, ha)
|
||||
CellUse *use; /* Use of which this is an array element */
|
||||
Transform *trans; /* Transform from coordinates of use->cu_def to those
|
||||
extArrayPrimaryFunc(
|
||||
CellUse *use, /* Use of which this is an array element */
|
||||
Transform *trans, /* Transform from coordinates of use->cu_def to those
|
||||
* in use->cu_parent, for the array element (x, y).
|
||||
*/
|
||||
int x, y; /* X, Y indices of this array element */
|
||||
HierExtractArg *ha;
|
||||
int x,
|
||||
int y,
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
CellDef *primDef;
|
||||
HierYank hy;
|
||||
|
|
@ -493,13 +494,14 @@ extArrayPrimaryFunc(use, trans, x, y, ha)
|
|||
*/
|
||||
|
||||
int
|
||||
extArrayInterFunc(use, trans, x, y, ha)
|
||||
CellUse *use; /* Use of which this is an array element */
|
||||
Transform *trans; /* Transform from use->cu_def to use->cu_parent
|
||||
extArrayInterFunc(
|
||||
CellUse *use, /* Use of which this is an array element */
|
||||
Transform *trans, /* Transform from use->cu_def to use->cu_parent
|
||||
* coordinates, for the array element (x, y).
|
||||
*/
|
||||
int x, y; /* X, Y of this array element in use->cu_def coords */
|
||||
HierExtractArg *ha;
|
||||
int x,
|
||||
int y,
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
CellUse *cumUse = ha->ha_cumFlat.et_use;
|
||||
CellDef *cumDef = cumUse->cu_def;
|
||||
|
|
@ -654,9 +656,10 @@ extArrayInterFunc(use, trans, x, y, ha)
|
|||
}
|
||||
|
||||
void
|
||||
extArrayAdjust(ha, et1, et2)
|
||||
HierExtractArg *ha;
|
||||
ExtTree *et1, *et2;
|
||||
extArrayAdjust(
|
||||
HierExtractArg *ha,
|
||||
ExtTree *et1,
|
||||
ExtTree *et2)
|
||||
{
|
||||
CapValue cap; /* value of capacitance WAS: int */
|
||||
NodeRegion *np;
|
||||
|
|
@ -707,10 +710,11 @@ extArrayAdjust(ha, et1, et2)
|
|||
}
|
||||
|
||||
char *
|
||||
extArrayNodeName(np, ha, et1, et2)
|
||||
NodeRegion *np;
|
||||
HierExtractArg *ha;
|
||||
ExtTree *et1, *et2;
|
||||
extArrayNodeName(
|
||||
NodeRegion *np,
|
||||
HierExtractArg *ha,
|
||||
ExtTree *et1,
|
||||
ExtTree *et2)
|
||||
{
|
||||
Tile *tp;
|
||||
TileType dinfo;
|
||||
|
|
@ -769,13 +773,13 @@ extArrayNodeName(np, ha, et1, et2)
|
|||
*/
|
||||
|
||||
char *
|
||||
extArrayTileToNode(tp, dinfo, pNum, et, ha, doHard)
|
||||
Tile *tp;
|
||||
TileType dinfo;
|
||||
int pNum;
|
||||
ExtTree *et;
|
||||
HierExtractArg *ha;
|
||||
bool doHard; /* If TRUE, we look up this node's name the hard way
|
||||
extArrayTileToNode(
|
||||
Tile *tp,
|
||||
TileType dinfo,
|
||||
int pNum,
|
||||
ExtTree *et,
|
||||
HierExtractArg *ha,
|
||||
bool doHard) /* If TRUE, we look up this node's name the hard way
|
||||
* if we can't find it any other way; otherwise, we
|
||||
* return NULL if we can't find the node's name.
|
||||
*/
|
||||
|
|
@ -885,11 +889,12 @@ done:
|
|||
*/
|
||||
|
||||
char *
|
||||
extArrayRange(dstp, lo, hi, prevRange, followRange)
|
||||
char *dstp;
|
||||
int lo, hi;
|
||||
bool prevRange; /* TRUE if preceded by a range */
|
||||
bool followRange; /* TRUE if followed by a range */
|
||||
extArrayRange(
|
||||
char *dstp,
|
||||
int lo,
|
||||
int hi,
|
||||
bool prevRange, /* TRUE if preceded by a range */
|
||||
bool followRange) /* TRUE if followed by a range */
|
||||
{
|
||||
if (!prevRange) *dstp++ = '[';
|
||||
if (hi < lo)
|
||||
|
|
@ -936,12 +941,12 @@ extArrayRange(dstp, lo, hi, prevRange, followRange)
|
|||
*/
|
||||
|
||||
LabRegion *
|
||||
extArrayHardNode(tp, dinfo, pNum, def, ha)
|
||||
Tile *tp;
|
||||
TileType dinfo;
|
||||
int pNum;
|
||||
CellDef *def;
|
||||
HierExtractArg *ha;
|
||||
extArrayHardNode(
|
||||
Tile *tp,
|
||||
TileType dinfo,
|
||||
int pNum,
|
||||
CellDef *def,
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
TileType type;
|
||||
char labelBuf[4096];
|
||||
|
|
@ -1010,11 +1015,11 @@ extArrayHardNode(tp, dinfo, pNum, def, ha)
|
|||
*/
|
||||
|
||||
void
|
||||
extArrayHardSearch(def, arg, scx, proc)
|
||||
CellDef *def;
|
||||
HardWay *arg;
|
||||
SearchContext *scx;
|
||||
int (*proc)();
|
||||
extArrayHardSearch(
|
||||
CellDef *def,
|
||||
HardWay *arg,
|
||||
SearchContext *scx,
|
||||
int (*proc)())
|
||||
{
|
||||
Transform tinv;
|
||||
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ void extTermAPFunc();
|
|||
|
||||
int extAnnularTileFunc(Tile *, TileType, int, FindRegion *); /* UNUSED */
|
||||
int extResistorTileFunc(Tile *, TileType, int, FindRegion *); /* UNUSED */
|
||||
int extSpecialPerimFunc();
|
||||
int extSpecialPerimFunc(Boundary *bp, bool sense);
|
||||
|
||||
void extFindDuplicateLabels();
|
||||
void extOutputDevices();
|
||||
|
|
@ -170,10 +170,10 @@ bool extLabType();
|
|||
/* that is not in the topmost def of the search. */
|
||||
|
||||
int
|
||||
extFoundFunc(tile, dinfo, cxp)
|
||||
Tile *tile;
|
||||
TileType dinfo; // Unused
|
||||
TreeContext *cxp;
|
||||
extFoundFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo, // Unused
|
||||
TreeContext *cxp)
|
||||
{
|
||||
CellDef *def = (CellDef *)cxp->tc_filter->tf_arg;
|
||||
return (def == cxp->tc_scx->scx_use->cu_def) ? 0 : 1;
|
||||
|
|
@ -213,11 +213,11 @@ extFoundFunc(tile, dinfo, cxp)
|
|||
*/
|
||||
|
||||
NodeRegion *
|
||||
extBasic(def, outFile)
|
||||
CellDef *def; /* Cell being extracted */
|
||||
FILE *outFile; /* Output file */
|
||||
extBasic(
|
||||
CellDef *def, /* Cell being extracted */
|
||||
FILE *outFile) /* Output file */
|
||||
{
|
||||
NodeRegion *nodeList, *extFindNodes();
|
||||
NodeRegion *nodeList, *extFindNodes(CellDef *def, Rect *clipArea, bool subonly);
|
||||
bool coupleInitialized = FALSE;
|
||||
TransRegion *transList, *reg;
|
||||
HashTable extCoupleHash;
|
||||
|
|
@ -620,8 +620,8 @@ extBasic(def, outFile)
|
|||
*/
|
||||
|
||||
void
|
||||
extSetResist(reg)
|
||||
NodeRegion *reg;
|
||||
extSetResist(
|
||||
NodeRegion *reg)
|
||||
{
|
||||
int n, perim;
|
||||
dlong area;
|
||||
|
|
@ -678,9 +678,9 @@ extSetResist(reg)
|
|||
*/
|
||||
|
||||
void
|
||||
extOutputNodes(nodeList, outFile)
|
||||
NodeRegion *nodeList; /* Nodes */
|
||||
FILE *outFile; /* Output file */
|
||||
extOutputNodes(
|
||||
NodeRegion *nodeList, /* Nodes */
|
||||
FILE *outFile) /* Output file */
|
||||
{
|
||||
ResValue rround = ExtCurStyle->exts_resistScale / 2;
|
||||
CapValue finC;
|
||||
|
|
@ -883,8 +883,8 @@ extOutputNodes(nodeList, outFile)
|
|||
*/
|
||||
|
||||
char *
|
||||
extSubsName(node)
|
||||
LabRegion *node;
|
||||
extSubsName(
|
||||
LabRegion *node)
|
||||
{
|
||||
char *subsName;
|
||||
|
||||
|
|
@ -939,9 +939,9 @@ extSubsName(node)
|
|||
*/
|
||||
|
||||
void
|
||||
extMakeNodeNumPrint(buf, lreg)
|
||||
char *buf;
|
||||
LabRegion *lreg;
|
||||
extMakeNodeNumPrint(
|
||||
char *buf,
|
||||
LabRegion *lreg)
|
||||
{
|
||||
int plane = lreg->lreg_pnum;
|
||||
Point *p = &lreg->lreg_ll;
|
||||
|
|
@ -990,8 +990,8 @@ extMakeNodeNumPrint(buf, lreg)
|
|||
*/
|
||||
|
||||
char *
|
||||
extNodeName(node)
|
||||
LabRegion *node;
|
||||
extNodeName(
|
||||
LabRegion *node)
|
||||
{
|
||||
static char namebuf[256]; /* Big enough to hold a generated nodename */
|
||||
LabelList *ll;
|
||||
|
|
@ -1026,9 +1026,9 @@ extNodeName(node)
|
|||
*/
|
||||
|
||||
void
|
||||
extFindDuplicateLabels(def, nreg)
|
||||
CellDef *def;
|
||||
NodeRegion *nreg;
|
||||
extFindDuplicateLabels(
|
||||
CellDef *def,
|
||||
NodeRegion *nreg)
|
||||
{
|
||||
static char *badmesg =
|
||||
"Label \"%s\" attached to more than one unconnected node: %s";
|
||||
|
|
@ -1112,9 +1112,9 @@ extFindDuplicateLabels(def, nreg)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtSortTerminals(tran, ll)
|
||||
struct transRec *tran;
|
||||
LabelList *ll;
|
||||
ExtSortTerminals(
|
||||
struct transRec *tran,
|
||||
LabelList *ll)
|
||||
{
|
||||
int nsd, changed;
|
||||
TermTilePos *p1, *p2;
|
||||
|
|
@ -1204,8 +1204,9 @@ ExtSortTerminals(tran, ll)
|
|||
*/
|
||||
|
||||
bool
|
||||
extComputeCapLW(rlengthptr, rwidthptr)
|
||||
int *rlengthptr, *rwidthptr;
|
||||
extComputeCapLW(
|
||||
int *rlengthptr,
|
||||
int *rwidthptr)
|
||||
{
|
||||
LinkedBoundary *lb;
|
||||
Rect bbox;
|
||||
|
|
@ -1256,10 +1257,11 @@ extComputeCapLW(rlengthptr, rwidthptr)
|
|||
*/
|
||||
|
||||
void
|
||||
extComputeEffectiveLW(rlengthptr, rwidthptr, numregions, chop)
|
||||
int *rlengthptr, *rwidthptr;
|
||||
int numregions;
|
||||
float chop;
|
||||
extComputeEffectiveLW(
|
||||
int *rlengthptr,
|
||||
int *rwidthptr,
|
||||
int numregions,
|
||||
float chop)
|
||||
{
|
||||
int i, j, p, jmax;
|
||||
LinkedBoundary *lb, *lb2;
|
||||
|
|
@ -1578,8 +1580,8 @@ extComputeEffectiveLW(rlengthptr, rwidthptr, numregions, chop)
|
|||
*/
|
||||
|
||||
void
|
||||
extSeparateBounds(nterm)
|
||||
int nterm; /* last terminal (# terminals - 1) */
|
||||
extSeparateBounds(
|
||||
int nterm) /* last terminal (# terminals - 1) */
|
||||
{
|
||||
Rect lbrect;
|
||||
LinkedBoundary *lb, *lbstart, *lbend, *lblast, *lbnext;
|
||||
|
|
@ -1694,10 +1696,10 @@ extSeparateBounds(nterm)
|
|||
*/
|
||||
|
||||
void
|
||||
extOutputParameters(def, transList, outFile)
|
||||
CellDef *def; /* Cell being extracted */
|
||||
TransRegion *transList; /* Transistor regions built up in first pass */
|
||||
FILE *outFile; /* Output file */
|
||||
extOutputParameters(
|
||||
CellDef *def, /* Cell being extracted */
|
||||
TransRegion *transList, /* Transistor regions built up in first pass */
|
||||
FILE *outFile) /* Output file */
|
||||
{
|
||||
ParamList *plist;
|
||||
TransRegion *reg;
|
||||
|
|
@ -1842,14 +1844,14 @@ extOutputParameters(def, transList, outFile)
|
|||
*/
|
||||
|
||||
void
|
||||
extOutputDevParams(reg, devptr, outFile, length, width, areavec, perimvec)
|
||||
TransRegion *reg;
|
||||
ExtDevice *devptr;
|
||||
FILE *outFile;
|
||||
int length;
|
||||
int width;
|
||||
int *areavec;
|
||||
int *perimvec;
|
||||
extOutputDevParams(
|
||||
TransRegion *reg,
|
||||
ExtDevice *devptr,
|
||||
FILE *outFile,
|
||||
int length,
|
||||
int width,
|
||||
int *areavec,
|
||||
int *perimvec)
|
||||
{
|
||||
ParamList *chkParam;
|
||||
HashEntry *he;
|
||||
|
|
@ -2057,10 +2059,10 @@ typedef struct _extareaperimdata {
|
|||
*/
|
||||
|
||||
ExtDevice *
|
||||
extDevFindParamMatch(devptr, length, width)
|
||||
ExtDevice *devptr;
|
||||
int length; /* Computed effective length of device */
|
||||
int width; /* Computed effective width of device */
|
||||
extDevFindParamMatch(
|
||||
ExtDevice *devptr,
|
||||
int length, /* Computed effective length of device */
|
||||
int width) /* Computed effective width of device */
|
||||
{
|
||||
ExtDevice *newdevptr, *nextdev;
|
||||
int i;
|
||||
|
|
@ -2206,11 +2208,11 @@ extDevFindParamMatch(devptr, length, width)
|
|||
*/
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extSDTileFunc(tile, dinfo, pNum, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* UNUSED */
|
||||
int pNum;
|
||||
FindRegion *arg; /* UNUSED */
|
||||
extSDTileFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* UNUSED */
|
||||
int pNum,
|
||||
FindRegion *arg) /* UNUSED */
|
||||
{
|
||||
LinkedTile *newdevtile;
|
||||
|
||||
|
|
@ -2238,10 +2240,10 @@ extSDTileFunc(tile, dinfo, pNum, arg)
|
|||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
int
|
||||
extTransFindTermArea(tile, dinfo, eapd)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
ExtAreaPerimData *eapd;
|
||||
extTransFindTermArea(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
ExtAreaPerimData *eapd)
|
||||
{
|
||||
extEnumTerminal(tile, dinfo, DBConnectTbl, extTermAPFunc, (ClientData)eapd);
|
||||
return 1;
|
||||
|
|
@ -2279,10 +2281,10 @@ extTransFindTermArea(tile, dinfo, eapd)
|
|||
*/
|
||||
|
||||
void
|
||||
extOutputDevices(def, transList, outFile)
|
||||
CellDef *def; /* Cell being extracted */
|
||||
TransRegion *transList; /* Transistor regions built up in first pass */
|
||||
FILE *outFile; /* Output file */
|
||||
extOutputDevices(
|
||||
CellDef *def, /* Cell being extracted */
|
||||
TransRegion *transList, /* Transistor regions built up in first pass */
|
||||
FILE *outFile) /* Output file */
|
||||
{
|
||||
NodeRegion *node, *subsNode;
|
||||
TransRegion *reg;
|
||||
|
|
@ -3308,13 +3310,13 @@ typedef struct _node_type {
|
|||
} NodeAndType;
|
||||
|
||||
int
|
||||
extTransFindSubs(tile, dinfo, mask, def, sn, layerptr)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
TileTypeBitMask *mask;
|
||||
CellDef *def;
|
||||
NodeRegion **sn;
|
||||
TileType *layerptr;
|
||||
extTransFindSubs(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
TileTypeBitMask *mask,
|
||||
CellDef *def,
|
||||
NodeRegion **sn,
|
||||
TileType *layerptr)
|
||||
{
|
||||
Rect tileArea, tileAreaPlus;
|
||||
int pNum;
|
||||
|
|
@ -3357,10 +3359,10 @@ extTransFindSubs(tile, dinfo, mask, def, sn, layerptr)
|
|||
}
|
||||
|
||||
int
|
||||
extTransFindSubsFunc1(tile, dinfo, noderecptr)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
NodeAndType *noderecptr;
|
||||
extTransFindSubsFunc1(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
NodeAndType *noderecptr)
|
||||
{
|
||||
TileType type;
|
||||
|
||||
|
|
@ -3392,12 +3394,12 @@ extTransFindSubsFunc1(tile, dinfo, noderecptr)
|
|||
}
|
||||
|
||||
int
|
||||
extTransFindId(tile, dinfo, mask, def, idtypeptr)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
TileTypeBitMask *mask;
|
||||
CellDef *def;
|
||||
TileType *idtypeptr;
|
||||
extTransFindId(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
TileTypeBitMask *mask,
|
||||
CellDef *def,
|
||||
TileType *idtypeptr)
|
||||
{
|
||||
TileType type;
|
||||
Rect tileArea;
|
||||
|
|
@ -3420,10 +3422,10 @@ extTransFindId(tile, dinfo, mask, def, idtypeptr)
|
|||
}
|
||||
|
||||
int
|
||||
extTransFindIdFunc1(tile, dinfo, idtypeptr)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
TileType *idtypeptr;
|
||||
extTransFindIdFunc1(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
TileType *idtypeptr)
|
||||
{
|
||||
/*
|
||||
* ID Layer found overlapping device area, so return 1 to halt search.
|
||||
|
|
@ -3454,9 +3456,9 @@ extTransFindIdFunc1(tile, dinfo, idtypeptr)
|
|||
*/
|
||||
|
||||
ExtDevice *
|
||||
extDevFindMatch(deventry, t)
|
||||
ExtDevice *deventry;
|
||||
TileType t;
|
||||
extDevFindMatch(
|
||||
ExtDevice *deventry,
|
||||
TileType t)
|
||||
{
|
||||
ExtDevice *devptr;
|
||||
int i, j, k, matchflags;
|
||||
|
|
@ -3539,11 +3541,11 @@ extDevFindMatch(deventry, t)
|
|||
*/
|
||||
|
||||
int
|
||||
extTransTileFunc(tile, dinfo, pNum, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
int pNum;
|
||||
FindRegion *arg;
|
||||
extTransTileFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
int pNum,
|
||||
FindRegion *arg)
|
||||
{
|
||||
TileTypeBitMask mask, cmask, *smask;
|
||||
TileType loctype, idlayer, sublayer;
|
||||
|
|
@ -3755,9 +3757,9 @@ extTransTileFunc(tile, dinfo, pNum, arg)
|
|||
*/
|
||||
|
||||
void
|
||||
extAddSharedDevice(eapd, node)
|
||||
ExtAreaPerimData *eapd;
|
||||
NodeRegion *node;
|
||||
extAddSharedDevice(
|
||||
ExtAreaPerimData *eapd,
|
||||
NodeRegion *node)
|
||||
{
|
||||
ExtNodeList *nl, *newnl;
|
||||
|
||||
|
|
@ -3797,10 +3799,10 @@ extAddSharedDevice(eapd, node)
|
|||
*/
|
||||
|
||||
void
|
||||
extTermAPFunc(tile, dinfo, eapd)
|
||||
Tile *tile; /* Tile extending a device terminal */
|
||||
TileType dinfo; /* Split tile information */
|
||||
ExtAreaPerimData *eapd; /* Area and perimeter totals for terminal */
|
||||
extTermAPFunc(
|
||||
Tile *tile, /* Tile extending a device terminal */
|
||||
TileType dinfo, /* Split tile information */
|
||||
ExtAreaPerimData *eapd) /* Area and perimeter totals for terminal */
|
||||
{
|
||||
TileType type, tpdi;
|
||||
Tile *tp;
|
||||
|
|
@ -3946,9 +3948,9 @@ extTermAPFunc(tile, dinfo, eapd)
|
|||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extTransPerimFunc(bp, cdata)
|
||||
Boundary *bp;
|
||||
ClientData cdata; /* UNUSED */
|
||||
extTransPerimFunc(
|
||||
Boundary *bp,
|
||||
ClientData cdata) /* UNUSED */
|
||||
{
|
||||
TileType tinside, toutside, dinfo;
|
||||
Tile *tile;
|
||||
|
|
@ -4226,11 +4228,11 @@ extTransPerimFunc(bp, cdata)
|
|||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extAnnularTileFunc(tile, dinfo, pNum, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
int pNum;
|
||||
FindRegion *arg; /* UNUSED */
|
||||
extAnnularTileFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
int pNum,
|
||||
FindRegion *arg) /* UNUSED */
|
||||
{
|
||||
TileTypeBitMask mask;
|
||||
TileType loctype;
|
||||
|
|
@ -4248,7 +4250,7 @@ extAnnularTileFunc(tile, dinfo, pNum, arg)
|
|||
|
||||
mask = ExtCurStyle->exts_deviceConn[loctype];
|
||||
TTMaskCom(&mask);
|
||||
extEnumTilePerim(tile, dinfo, &mask, pNum, extSpecialPerimFunc, (ClientData) TRUE);
|
||||
extEnumTilePerim(tile, dinfo, &mask, pNum, (int (*)())extSpecialPerimFunc, (ClientData) TRUE);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
|
@ -4278,11 +4280,11 @@ extAnnularTileFunc(tile, dinfo, pNum, arg)
|
|||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extResistorTileFunc(tile, dinfo, pNum, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
int pNum;
|
||||
FindRegion *arg; /* UNUSED */
|
||||
extResistorTileFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
int pNum,
|
||||
FindRegion *arg) /* UNUSED */
|
||||
{
|
||||
TileTypeBitMask mask;
|
||||
TileType loctype;
|
||||
|
|
@ -4309,7 +4311,7 @@ extResistorTileFunc(tile, dinfo, pNum, arg)
|
|||
TTMaskSetMask(&mask, &devptr->exts_deviceSDTypes[0]);
|
||||
TTMaskCom(&mask);
|
||||
|
||||
extEnumTilePerim(tile, dinfo, &mask, pNum, extSpecialPerimFunc, (ClientData)FALSE);
|
||||
extEnumTilePerim(tile, dinfo, &mask, pNum, (int (*)())extSpecialPerimFunc, (ClientData)FALSE);
|
||||
|
||||
if (extSpecialBounds[0] != NULL) break;
|
||||
devptr = devptr->exts_next;
|
||||
|
|
@ -4326,9 +4328,9 @@ extResistorTileFunc(tile, dinfo, pNum, arg)
|
|||
/*----------------------------------------------------------------------*/
|
||||
|
||||
int
|
||||
extSpecialPerimFunc(bp, sense)
|
||||
Boundary *bp;
|
||||
bool sense;
|
||||
extSpecialPerimFunc(
|
||||
Boundary *bp,
|
||||
bool sense)
|
||||
{
|
||||
TileType tinside, toutside, termdinfo;
|
||||
NodeRegion *termNode;
|
||||
|
|
@ -4586,17 +4588,17 @@ extSpecialPerimFunc(bp, sense)
|
|||
*/
|
||||
|
||||
void
|
||||
extTransOutTerminal(lreg, ll, whichTerm, len, area, perim, shared, outFile)
|
||||
LabRegion *lreg; /* Node connected to terminal */
|
||||
LabelList *ll; /* Gate's label list */
|
||||
int whichTerm; /* Which terminal we are processing. The gate
|
||||
extTransOutTerminal(
|
||||
LabRegion *lreg, /* Node connected to terminal */
|
||||
LabelList *ll, /* Gate's label list */
|
||||
int whichTerm, /* Which terminal we are processing. The gate
|
||||
* is indicated by LL_GATEATTR.
|
||||
*/
|
||||
int len; /* Length of perimeter along terminal */
|
||||
int area; /* Total area of terminal */
|
||||
int perim; /* Total perimeter of terminal (includes len) */
|
||||
int shared; /* Number of devices sharing the terminal */
|
||||
FILE *outFile; /* Output file */
|
||||
int len, /* Length of perimeter along terminal */
|
||||
int area, /* Total area of terminal */
|
||||
int perim, /* Total perimeter of terminal (includes len) */
|
||||
int shared, /* Number of devices sharing the terminal */
|
||||
FILE *outFile) /* Output file */
|
||||
{
|
||||
char *cp;
|
||||
int n;
|
||||
|
|
@ -4652,10 +4654,10 @@ extTransOutTerminal(lreg, ll, whichTerm, len, area, perim, shared, outFile)
|
|||
*/
|
||||
|
||||
void
|
||||
extTransBad(def, tp, mesg)
|
||||
CellDef *def;
|
||||
Tile *tp;
|
||||
char *mesg;
|
||||
extTransBad(
|
||||
CellDef *def,
|
||||
Tile *tp,
|
||||
char *mesg)
|
||||
{
|
||||
Rect r;
|
||||
|
||||
|
|
@ -4686,9 +4688,9 @@ extTransBad(def, tp, mesg)
|
|||
*/
|
||||
|
||||
bool
|
||||
extLabType(text, typeMask)
|
||||
char *text;
|
||||
int typeMask;
|
||||
extLabType(
|
||||
char *text,
|
||||
int typeMask)
|
||||
{
|
||||
if (*text == '\0')
|
||||
return (FALSE);
|
||||
|
|
@ -4905,11 +4907,11 @@ Tile *extNodeToTile(np, et, dinfo)
|
|||
*/
|
||||
|
||||
void
|
||||
extSetNodeNum(reg, plane, tile, dinfo)
|
||||
LabRegion *reg;
|
||||
int plane;
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
extSetNodeNum(
|
||||
LabRegion *reg,
|
||||
int plane,
|
||||
Tile *tile,
|
||||
TileType dinfo)
|
||||
{
|
||||
TileType type;
|
||||
|
||||
|
|
@ -4973,10 +4975,10 @@ extSetNodeNum(reg, plane, tile, dinfo)
|
|||
*/
|
||||
|
||||
ExtRegion *
|
||||
extTransFirst(tile, dinfo, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
FindRegion *arg;
|
||||
extTransFirst(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
FindRegion *arg)
|
||||
{
|
||||
TransRegion *reg;
|
||||
|
||||
|
|
@ -5006,11 +5008,11 @@ extTransFirst(tile, dinfo, arg)
|
|||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extTransEach(tile, dinfo, pNum, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* unused, should be handled */
|
||||
int pNum;
|
||||
FindRegion *arg;
|
||||
extTransEach(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* unused, should be handled */
|
||||
int pNum,
|
||||
FindRegion *arg)
|
||||
{
|
||||
TransRegion *reg = (TransRegion *) arg->fra_region;
|
||||
int area = TILEAREA(tile);
|
||||
|
|
@ -5054,12 +5056,12 @@ Stack *extNodeStack = NULL;
|
|||
Rect *extNodeClipArea = NULL;
|
||||
|
||||
NodeRegion *
|
||||
extFindNodes(def, clipArea, subonly)
|
||||
CellDef *def; /* Def whose nodes are being found */
|
||||
Rect *clipArea; /* If non-NULL, ignore perimeter and area that extend
|
||||
extFindNodes(
|
||||
CellDef *def, /* Def whose nodes are being found */
|
||||
Rect *clipArea, /* If non-NULL, ignore perimeter and area that extend
|
||||
* outside this rectangle.
|
||||
*/
|
||||
bool subonly; /* If true, only find the substrate node, and return */
|
||||
bool subonly) /* If true, only find the substrate node, and return */
|
||||
{
|
||||
int extNodeAreaFunc();
|
||||
int extSubsFunc();
|
||||
|
|
@ -5208,10 +5210,10 @@ extFindNodes(def, clipArea, subonly)
|
|||
}
|
||||
|
||||
int
|
||||
extSubsFunc(tile, dinfo, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
FindRegion *arg;
|
||||
extSubsFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
FindRegion *arg)
|
||||
{
|
||||
int pNum;
|
||||
Rect tileArea;
|
||||
|
|
@ -5245,10 +5247,10 @@ extSubsFunc(tile, dinfo, arg)
|
|||
}
|
||||
|
||||
int
|
||||
extSubsFunc2(tile, dinfo, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo; // Unused
|
||||
FindRegion *arg;
|
||||
extSubsFunc2(
|
||||
Tile *tile,
|
||||
TileType dinfo, // Unused
|
||||
FindRegion *arg)
|
||||
{
|
||||
int pNum;
|
||||
Rect tileArea;
|
||||
|
|
@ -5285,20 +5287,20 @@ extSubsFunc2(tile, dinfo, arg)
|
|||
}
|
||||
|
||||
int
|
||||
extSubsFunc3(tile, dinfo, clientdata)
|
||||
Tile *tile; /* (unused) */
|
||||
TileType dinfo; /* (unused) */
|
||||
ClientData clientdata; /* (unused) */
|
||||
extSubsFunc3(
|
||||
Tile *tile, /* (unused) */
|
||||
TileType dinfo, /* (unused) */
|
||||
ClientData clientdata) /* (unused) */
|
||||
{
|
||||
/* Stops the search because something that was not space was found */
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
extNodeAreaFunc(tile, dinfo, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
FindRegion *arg;
|
||||
extNodeAreaFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
FindRegion *arg)
|
||||
{
|
||||
int tilePlaneNum, pNum, len, resistClass, n, nclasses;
|
||||
dlong area;
|
||||
|
|
@ -5761,9 +5763,9 @@ donesides:
|
|||
*/
|
||||
|
||||
void
|
||||
extSetCapValue(he, value)
|
||||
HashEntry *he;
|
||||
CapValue value;
|
||||
extSetCapValue(
|
||||
HashEntry *he,
|
||||
CapValue value)
|
||||
{
|
||||
if (HashGetValue(he) == NULL)
|
||||
HashSetValue(he, (CapValue *) mallocMagic(sizeof(CapValue)));
|
||||
|
|
@ -5771,8 +5773,8 @@ extSetCapValue(he, value)
|
|||
}
|
||||
|
||||
CapValue
|
||||
extGetCapValue(he)
|
||||
HashEntry *he;
|
||||
extGetCapValue(
|
||||
HashEntry *he)
|
||||
{
|
||||
if (HashGetValue(he) == NULL)
|
||||
extSetCapValue(he, (CapValue) 0);
|
||||
|
|
@ -5795,8 +5797,8 @@ extGetCapValue(he)
|
|||
*/
|
||||
|
||||
void
|
||||
extCapHashKill(ht)
|
||||
HashTable *ht;
|
||||
extCapHashKill(
|
||||
HashTable *ht)
|
||||
{
|
||||
HashSearch hs;
|
||||
HashEntry *he;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
|
|||
/* Forward declarations */
|
||||
int extOutputUsesFunc();
|
||||
|
||||
Plane* extCellFile();
|
||||
Plane* extCellFile(CellDef *def, FILE *f, bool isTop);
|
||||
void extHeader();
|
||||
|
||||
/*
|
||||
|
|
@ -76,10 +76,10 @@ void extHeader();
|
|||
*/
|
||||
|
||||
Plane *
|
||||
ExtCell(def, outName, isTop)
|
||||
CellDef *def; /* Cell being extracted */
|
||||
char *outName; /* Name of output file; if NULL, derive from def name */
|
||||
bool isTop; /* If TRUE, cell is the top level cell */
|
||||
ExtCell(
|
||||
CellDef *def, /* Cell being extracted */
|
||||
char *outName, /* Name of output file; if NULL, derive from def name */
|
||||
bool isTop) /* If TRUE, cell is the top level cell */
|
||||
{
|
||||
char *filename;
|
||||
FILE *f = NULL;
|
||||
|
|
@ -150,16 +150,16 @@ ExtCell(def, outName, isTop)
|
|||
*/
|
||||
|
||||
FILE *
|
||||
ExtFileOpen(def, file, mode, prealfile)
|
||||
CellDef *def; /* Cell whose .ext file is to be written */
|
||||
char *file; /* If non-NULL, open 'name'.ext; otherwise,
|
||||
ExtFileOpen(
|
||||
CellDef *def, /* Cell whose .ext file is to be written */
|
||||
char *file, /* If non-NULL, open 'name'.ext; otherwise,
|
||||
* derive filename from 'def' as described
|
||||
* above.
|
||||
*/
|
||||
char *mode; /* Either "r" or "w", the mode in which the .ext
|
||||
char *mode, /* Either "r" or "w", the mode in which the .ext
|
||||
* file is to be opened.
|
||||
*/
|
||||
char **prealfile; /* If this is non-NULL, it gets set to point to
|
||||
char **prealfile) /* If this is non-NULL, it gets set to point to
|
||||
* a string holding the name of the .ext file.
|
||||
*/
|
||||
{
|
||||
|
|
@ -287,8 +287,8 @@ ExtFileOpen(def, file, mode, prealfile)
|
|||
*/
|
||||
|
||||
Plane *
|
||||
extPrepSubstrate(def)
|
||||
CellDef *def;
|
||||
extPrepSubstrate(
|
||||
CellDef *def)
|
||||
{
|
||||
SearchContext scx;
|
||||
CellUse dummy;
|
||||
|
|
@ -363,8 +363,8 @@ extPrepSubstrate(def)
|
|||
*/
|
||||
|
||||
Plane *
|
||||
extResPrepSubstrate(def)
|
||||
CellDef *def;
|
||||
extResPrepSubstrate(
|
||||
CellDef *def)
|
||||
{
|
||||
SearchContext scx;
|
||||
CellUse dummy;
|
||||
|
|
@ -436,9 +436,9 @@ extResPrepSubstrate(def)
|
|||
|
||||
|
||||
void
|
||||
ExtRevertSubstrate(def, savePlane)
|
||||
CellDef *def;
|
||||
Plane *savePlane;
|
||||
ExtRevertSubstrate(
|
||||
CellDef *def,
|
||||
Plane *savePlane)
|
||||
{
|
||||
int pNum;
|
||||
Plane *subPlane;
|
||||
|
|
@ -472,10 +472,10 @@ ExtRevertSubstrate(def, savePlane)
|
|||
*/
|
||||
|
||||
Plane *
|
||||
extCellFile(def, f, isTop)
|
||||
CellDef *def; /* Def to be extracted */
|
||||
FILE *f; /* Output to this file */
|
||||
bool isTop; /* TRUE if the cell is the top level cell */
|
||||
extCellFile(
|
||||
CellDef *def, /* Def to be extracted */
|
||||
FILE *f, /* Output to this file */
|
||||
bool isTop) /* TRUE if the cell is the top level cell */
|
||||
{
|
||||
NodeRegion *reg;
|
||||
Plane *saveSub;
|
||||
|
|
@ -559,9 +559,9 @@ extCellFile(def, f, isTop)
|
|||
*/
|
||||
|
||||
void
|
||||
extHeader(def, f)
|
||||
CellDef *def; /* Cell being extracted */
|
||||
FILE *f; /* Write to this file */
|
||||
extHeader(
|
||||
CellDef *def, /* Cell being extracted */
|
||||
FILE *f) /* Write to this file */
|
||||
{
|
||||
int n;
|
||||
bool propfound;
|
||||
|
|
@ -650,9 +650,9 @@ extHeader(def, f)
|
|||
*/
|
||||
|
||||
int
|
||||
extOutputUsesFunc(cu, outf)
|
||||
CellUse *cu;
|
||||
FILE *outf;
|
||||
extOutputUsesFunc(
|
||||
CellUse *cu,
|
||||
FILE *outf)
|
||||
{
|
||||
Transform *t = &cu->cu_transform;
|
||||
|
||||
|
|
|
|||
|
|
@ -166,10 +166,10 @@ void extAdjustCouple(he, c, str)
|
|||
*/
|
||||
|
||||
void
|
||||
extFindCoupling(def, table, clipArea)
|
||||
CellDef *def;
|
||||
HashTable *table;
|
||||
Rect *clipArea;
|
||||
extFindCoupling(
|
||||
CellDef *def,
|
||||
HashTable *table,
|
||||
Rect *clipArea)
|
||||
{
|
||||
const Rect *searchArea;
|
||||
int pNum;
|
||||
|
|
@ -208,9 +208,9 @@ extFindCoupling(def, table, clipArea)
|
|||
*/
|
||||
|
||||
void
|
||||
extRelocateSubstrateCoupling(table, subsnode)
|
||||
HashTable *table; /* Coupling capacitance hash table */
|
||||
NodeRegion *subsnode; /* Node record for substrate */
|
||||
extRelocateSubstrateCoupling(
|
||||
HashTable *table, /* Coupling capacitance hash table */
|
||||
NodeRegion *subsnode) /* Node record for substrate */
|
||||
{
|
||||
HashEntry *he;
|
||||
CoupleKey *ck;
|
||||
|
|
@ -265,9 +265,9 @@ extRelocateSubstrateCoupling(table, subsnode)
|
|||
*/
|
||||
|
||||
void
|
||||
extOutputCoupling(table, outFile)
|
||||
HashTable *table; /* Coupling capacitance hash table */
|
||||
FILE *outFile; /* Output file */
|
||||
extOutputCoupling(
|
||||
HashTable *table, /* Coupling capacitance hash table */
|
||||
FILE *outFile) /* Output file */
|
||||
{
|
||||
HashEntry *he;
|
||||
CoupleKey *ck;
|
||||
|
|
@ -312,10 +312,10 @@ extOutputCoupling(table, outFile)
|
|||
*/
|
||||
|
||||
int
|
||||
extBasicOverlap(tile, dinfo, ecs)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
extCapStruct *ecs;
|
||||
extBasicOverlap(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
extCapStruct *ecs)
|
||||
{
|
||||
int thisType;
|
||||
int pNum;
|
||||
|
|
@ -413,10 +413,10 @@ struct sideoverlap
|
|||
};
|
||||
|
||||
int
|
||||
extAddOverlap(tbelow, dinfo, ecpls)
|
||||
Tile *tbelow;
|
||||
TileType dinfo; /* unused, but needs to be handled */
|
||||
extCoupleStruct *ecpls;
|
||||
extAddOverlap(
|
||||
Tile *tbelow,
|
||||
TileType dinfo, /* unused, but needs to be handled */
|
||||
extCoupleStruct *ecpls)
|
||||
{
|
||||
int extSubtractOverlap(), extSubtractOverlap2();
|
||||
NodeRegion *rabove, *rbelow;
|
||||
|
|
@ -551,10 +551,10 @@ extAddOverlap(tbelow, dinfo, ecpls)
|
|||
/* Simple overlap. The area of overlap is subtracted from ov->o_area */
|
||||
|
||||
int
|
||||
extSubtractOverlap(tile, dinfo, ov)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
struct overlap *ov;
|
||||
extSubtractOverlap(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
struct overlap *ov)
|
||||
{
|
||||
Rect r;
|
||||
int area;
|
||||
|
|
@ -575,10 +575,10 @@ extSubtractOverlap(tile, dinfo, ov)
|
|||
/* shielding plane. */
|
||||
|
||||
int
|
||||
extSubtractOverlap2(tile, dinfo, ov)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
struct overlap *ov;
|
||||
extSubtractOverlap2(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
struct overlap *ov)
|
||||
{
|
||||
TileType ttype;
|
||||
struct overlap ovnew;
|
||||
|
|
@ -637,10 +637,10 @@ extSubtractOverlap2(tile, dinfo, ov)
|
|||
*/
|
||||
|
||||
int
|
||||
extSubtractSideOverlap(tile, dinfo, sov)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
struct sideoverlap *sov;
|
||||
extSubtractSideOverlap(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
struct sideoverlap *sov)
|
||||
{
|
||||
Rect r;
|
||||
int area, dnear, dfar, length;
|
||||
|
|
@ -715,10 +715,10 @@ extSubtractSideOverlap(tile, dinfo, sov)
|
|||
/* shielding plane. */
|
||||
|
||||
int
|
||||
extSubtractSideOverlap2(tile, dinfo, sov)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
struct sideoverlap *sov;
|
||||
extSubtractSideOverlap2(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
struct sideoverlap *sov)
|
||||
{
|
||||
TileType ttype;
|
||||
struct sideoverlap sovnew;
|
||||
|
|
@ -795,10 +795,10 @@ extSubtractSideOverlap2(tile, dinfo, sov)
|
|||
*/
|
||||
|
||||
int
|
||||
extBasicCouple(tile, dinfo, ecs)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
extCapStruct *ecs;
|
||||
extBasicCouple(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
extCapStruct *ecs)
|
||||
{
|
||||
TileType ttype;
|
||||
|
||||
|
|
@ -1070,9 +1070,9 @@ extGetBoundaryRegions(int bdir,
|
|||
*/
|
||||
|
||||
int
|
||||
extAddCouple(bp, ecs)
|
||||
Boundary *bp; /* Boundary being considered */
|
||||
extCapStruct *ecs;
|
||||
extAddCouple(
|
||||
Boundary *bp, /* Boundary being considered */
|
||||
extCapStruct *ecs)
|
||||
{
|
||||
TileType tin, tout;
|
||||
int pNum;
|
||||
|
|
@ -1203,10 +1203,10 @@ extAddCouple(bp, ecs)
|
|||
*/
|
||||
|
||||
void
|
||||
extRemoveSubcap(bp, clip, esws)
|
||||
Boundary *bp; /* Boundary with fringe capacitance */
|
||||
Rect *clip; /* Area not being blocked */
|
||||
extSidewallStruct *esws; /* Overlapping edge and plane information */
|
||||
extRemoveSubcap(
|
||||
Boundary *bp, /* Boundary with fringe capacitance */
|
||||
Rect *clip, /* Area not being blocked */
|
||||
extSidewallStruct *esws) /* Overlapping edge and plane information */
|
||||
{
|
||||
int dnear, length;
|
||||
double snear, cfrac;
|
||||
|
|
@ -1277,10 +1277,10 @@ extRemoveSubcap(bp, clip, esws)
|
|||
|
||||
|
||||
int
|
||||
extFindOverlap(tp, area, esws)
|
||||
Tile *tp; /* Overlapped tile */
|
||||
Rect *area; /* Area to check for coupling */
|
||||
extSidewallStruct *esws; /* Overlapping edge and plane information */
|
||||
extFindOverlap(
|
||||
Tile *tp, /* Overlapped tile */
|
||||
Rect *area, /* Area to check for coupling */
|
||||
extSidewallStruct *esws) /* Overlapping edge and plane information */
|
||||
{
|
||||
PlaneMask pMask;
|
||||
int pNum;
|
||||
|
|
@ -1345,10 +1345,10 @@ extFindOverlap(tp, area, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extSideOverlapHalo(tp, dinfo, esws)
|
||||
Tile *tp; /* Overlapped tile */
|
||||
TileType dinfo; /* Split tile information */
|
||||
extSidewallStruct *esws; /* Overlapping edge and plane information */
|
||||
extSideOverlapHalo(
|
||||
Tile *tp, /* Overlapped tile */
|
||||
TileType dinfo, /* Split tile information */
|
||||
extSidewallStruct *esws) /* Overlapping edge and plane information */
|
||||
{
|
||||
Boundary *bp = esws->bp; /* Overlapping edge */
|
||||
NodeRegion *rtp = (NodeRegion *) ExtGetRegion(tp, dinfo);
|
||||
|
|
@ -1576,10 +1576,10 @@ extSideOverlapHalo(tp, dinfo, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extSideOverlap(tp, dinfo, esws)
|
||||
Tile *tp; /* Overlapped tile */
|
||||
TileType dinfo; /* Split tile information */
|
||||
extSidewallStruct *esws; /* Overlapping edge and plane information */
|
||||
extSideOverlap(
|
||||
Tile *tp, /* Overlapped tile */
|
||||
TileType dinfo, /* Split tile information */
|
||||
extSidewallStruct *esws) /* Overlapping edge and plane information */
|
||||
{
|
||||
Boundary *bp = esws->bp; /* Overlapping edge */
|
||||
NodeRegion *rtp = (NodeRegion *) ExtGetRegion(tp, dinfo);
|
||||
|
|
@ -1757,12 +1757,12 @@ extSideOverlap(tp, dinfo, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extWalkTop(area, mask, func, bp, esws)
|
||||
Rect *area;
|
||||
TileTypeBitMask *mask;
|
||||
int (*func)();
|
||||
Boundary *bp;
|
||||
extSidewallStruct *esws;
|
||||
extWalkTop(
|
||||
Rect *area,
|
||||
TileTypeBitMask *mask,
|
||||
int (*func)(),
|
||||
Boundary *bp,
|
||||
extSidewallStruct *esws)
|
||||
{
|
||||
Tile *tile, *tp;
|
||||
TileType ttype;
|
||||
|
|
@ -1865,12 +1865,12 @@ extWalkTop(area, mask, func, bp, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extWalkBottom(area, mask, func, bp, esws)
|
||||
Rect *area;
|
||||
TileTypeBitMask *mask;
|
||||
int (*func)();
|
||||
Boundary *bp;
|
||||
extSidewallStruct *esws;
|
||||
extWalkBottom(
|
||||
Rect *area,
|
||||
TileTypeBitMask *mask,
|
||||
int (*func)(),
|
||||
Boundary *bp,
|
||||
extSidewallStruct *esws)
|
||||
{
|
||||
Tile *tile, *tp;
|
||||
TileType ttype;
|
||||
|
|
@ -1973,12 +1973,12 @@ extWalkBottom(area, mask, func, bp, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extWalkRight(area, mask, func, bp, esws)
|
||||
Rect *area;
|
||||
TileTypeBitMask *mask;
|
||||
int (*func)();
|
||||
Boundary *bp;
|
||||
extSidewallStruct *esws;
|
||||
extWalkRight(
|
||||
Rect *area,
|
||||
TileTypeBitMask *mask,
|
||||
int (*func)(),
|
||||
Boundary *bp,
|
||||
extSidewallStruct *esws)
|
||||
{
|
||||
Tile *tile, *tp;
|
||||
TileType ttype;
|
||||
|
|
@ -2081,12 +2081,12 @@ extWalkRight(area, mask, func, bp, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extWalkLeft(area, mask, func, bp, esws)
|
||||
Rect *area;
|
||||
TileTypeBitMask *mask;
|
||||
int (*func)();
|
||||
Boundary *bp;
|
||||
extSidewallStruct *esws;
|
||||
extWalkLeft(
|
||||
Rect *area,
|
||||
TileTypeBitMask *mask,
|
||||
int (*func)(),
|
||||
Boundary *bp,
|
||||
extSidewallStruct *esws)
|
||||
{
|
||||
Tile *tile, *tp;
|
||||
TileType ttype;
|
||||
|
|
@ -2194,10 +2194,10 @@ extWalkLeft(area, mask, func, bp, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extSideLeft(tpfar, bp, esws)
|
||||
Tile *tpfar;
|
||||
Boundary *bp;
|
||||
extSidewallStruct *esws;
|
||||
extSideLeft(
|
||||
Tile *tpfar,
|
||||
Boundary *bp,
|
||||
extSidewallStruct *esws)
|
||||
{
|
||||
NodeRegion *rinside, *rfar;
|
||||
Tile *tpnear;
|
||||
|
|
@ -2246,10 +2246,10 @@ extSideLeft(tpfar, bp, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extSideRight(tpfar, bp, esws)
|
||||
Tile *tpfar;
|
||||
Boundary *bp;
|
||||
extSidewallStruct *esws;
|
||||
extSideRight(
|
||||
Tile *tpfar,
|
||||
Boundary *bp,
|
||||
extSidewallStruct *esws)
|
||||
{
|
||||
NodeRegion *rinside, *rfar;
|
||||
Tile *tpnear;
|
||||
|
|
@ -2298,10 +2298,10 @@ extSideRight(tpfar, bp, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extSideTop(tpfar, bp, esws)
|
||||
Tile *tpfar;
|
||||
Boundary *bp;
|
||||
extSidewallStruct *esws;
|
||||
extSideTop(
|
||||
Tile *tpfar,
|
||||
Boundary *bp,
|
||||
extSidewallStruct *esws)
|
||||
{
|
||||
NodeRegion *rinside, *rfar;
|
||||
Tile *tpnear;
|
||||
|
|
@ -2350,10 +2350,10 @@ extSideTop(tpfar, bp, esws)
|
|||
*/
|
||||
|
||||
int
|
||||
extSideBottom(tpfar, bp, esws)
|
||||
Tile *tpfar;
|
||||
Boundary *bp;
|
||||
extSidewallStruct *esws;
|
||||
extSideBottom(
|
||||
Tile *tpfar,
|
||||
Boundary *bp,
|
||||
extSidewallStruct *esws)
|
||||
{
|
||||
NodeRegion *rinside, *rfar;
|
||||
Tile *tpnear;
|
||||
|
|
@ -2403,14 +2403,15 @@ extSideBottom(tpfar, bp, esws)
|
|||
*/
|
||||
|
||||
void
|
||||
extSideCommon(rinside, rfar, tpnear, tpfar, bdir, overlap, sep, extCoupleList)
|
||||
NodeRegion *rinside, *rfar; /* Both must be valid */
|
||||
Tile *tpnear, *tpfar; /* Tiles on near and far side of edge */
|
||||
int bdir; /* Boundary direction */
|
||||
int overlap, sep; /* Overlap of this edge with original one,
|
||||
* and distance between the two.
|
||||
*/
|
||||
EdgeCap *extCoupleList; /* List of sidewall capacitance rules */
|
||||
extSideCommon(
|
||||
NodeRegion *rinside,
|
||||
NodeRegion *rfar,
|
||||
Tile *tpnear,
|
||||
Tile *tpfar,
|
||||
int bdir, /* Boundary direction */
|
||||
int overlap,
|
||||
int sep,
|
||||
EdgeCap *extCoupleList) /* List of sidewall capacitance rules */
|
||||
{
|
||||
TileType near, far;
|
||||
HashEntry *he;
|
||||
|
|
|
|||
|
|
@ -71,10 +71,10 @@ bool extHardSetLabel();
|
|||
*/
|
||||
|
||||
ExtRegion *
|
||||
extLabFirst(tile, dinfo, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
FindRegion *arg;
|
||||
extLabFirst(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
FindRegion *arg)
|
||||
{
|
||||
TransRegion *reg;
|
||||
reg = (TransRegion *) mallocMagic((unsigned) (sizeof (TransRegion)));
|
||||
|
|
@ -97,11 +97,11 @@ extLabFirst(tile, dinfo, arg)
|
|||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extLabEach(tile, dinfo, pNum, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
int pNum;
|
||||
FindRegion *arg;
|
||||
extLabEach(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
int pNum,
|
||||
FindRegion *arg)
|
||||
{
|
||||
TransRegion *reg = (TransRegion *) arg->fra_region;
|
||||
|
||||
|
|
@ -157,9 +157,9 @@ extLabEach(tile, dinfo, pNum, arg)
|
|||
*/
|
||||
|
||||
int
|
||||
extHardProc(scx, arg)
|
||||
SearchContext *scx; /* Context of the search to this cell */
|
||||
HardWay *arg; /* See above; this structure provides both
|
||||
extHardProc(
|
||||
SearchContext *scx, /* Context of the search to this cell */
|
||||
HardWay *arg) /* See above; this structure provides both
|
||||
* options to govern how we generate labels
|
||||
* and a place to store the label we return.
|
||||
*/
|
||||
|
|
@ -294,13 +294,13 @@ done:
|
|||
*/
|
||||
|
||||
bool
|
||||
extHardSetLabel(scx, reg, arg)
|
||||
SearchContext *scx; /* We use scx->scx_trans to transform label
|
||||
extHardSetLabel(
|
||||
SearchContext *scx, /* We use scx->scx_trans to transform label
|
||||
* coordinates in the def scx->scx_use->cu_def
|
||||
* up to root coordinates.
|
||||
*/
|
||||
TransRegion *reg; /* ExtRegion with a label list */
|
||||
HardWay *arg; /* We will set arg->hw_label if a node
|
||||
TransRegion *reg, /* ExtRegion with a label list */
|
||||
HardWay *arg) /* We will set arg->hw_label if a node
|
||||
* label is found on the label list of 'reg'.
|
||||
*/
|
||||
{
|
||||
|
|
@ -408,15 +408,15 @@ extHardSetLabel(scx, reg, arg)
|
|||
*/
|
||||
|
||||
bool
|
||||
extHardGenerateLabel(scx, reg, arg)
|
||||
SearchContext *scx; /* We use scx->scx_trans to transform the
|
||||
extHardGenerateLabel(
|
||||
SearchContext *scx, /* We use scx->scx_trans to transform the
|
||||
* generated label's coordinates up to
|
||||
* root coordinates.
|
||||
*/
|
||||
TransRegion *reg; /* ExtRegion whose treg_ll and treg_pnum we use
|
||||
TransRegion *reg, /* ExtRegion whose treg_ll and treg_pnum we use
|
||||
* to generate a new label name.
|
||||
*/
|
||||
HardWay *arg; /* We set arg->hw_label to the new label */
|
||||
HardWay *arg) /* We set arg->hw_label to the new label */
|
||||
{
|
||||
TerminalPath *tpath = &arg->hw_tpath;
|
||||
char *srcp, *dstp;
|
||||
|
|
@ -480,9 +480,9 @@ extHardGenerateLabel(scx, reg, arg)
|
|||
*/
|
||||
|
||||
void
|
||||
extHardFreeAll(def, tReg)
|
||||
CellDef *def;
|
||||
TransRegion *tReg;
|
||||
extHardFreeAll(
|
||||
CellDef *def,
|
||||
TransRegion *tReg)
|
||||
{
|
||||
TransRegion *reg;
|
||||
LabelList *ll;
|
||||
|
|
|
|||
|
|
@ -124,10 +124,10 @@ bool extTestNMInteract(Tile *t1, TileType di1, Tile *t2, TileType di2)
|
|||
*/
|
||||
|
||||
int
|
||||
extHierSubShieldFunc(tile, dinfo, clientdata)
|
||||
Tile *tile; /* (unused) */
|
||||
TileType dinfo; /* (unused) */
|
||||
ClientData clientdata; /* (unused) */
|
||||
extHierSubShieldFunc(
|
||||
Tile *tile, /* (unused) */
|
||||
TileType dinfo, /* (unused) */
|
||||
ClientData clientdata) /* (unused) */
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -149,10 +149,11 @@ extHierSubShieldFunc(tile, dinfo, clientdata)
|
|||
*/
|
||||
|
||||
void
|
||||
extHierSubstrate(ha, use, x, y)
|
||||
HierExtractArg *ha; // Contains parent def and hash table
|
||||
CellUse *use; // Child use
|
||||
int x, y; // Array subscripts, or -1 if not an array
|
||||
extHierSubstrate(
|
||||
HierExtractArg *ha, // Contains parent def and hash table
|
||||
CellUse *use, // Child use
|
||||
int x,
|
||||
int y)
|
||||
{
|
||||
NodeRegion *nodeList;
|
||||
HashTable *table = &ha->ha_connHash;
|
||||
|
|
@ -164,7 +165,7 @@ extHierSubstrate(ha, use, x, y)
|
|||
Rect subArea;
|
||||
int pNum;
|
||||
|
||||
NodeRegion *extFindNodes();
|
||||
NodeRegion *extFindNodes(CellDef *def, Rect *clipArea, bool subonly);
|
||||
|
||||
/* Backwards compatibility with tech files that don't */
|
||||
/* define a substrate plane or substrate connections. */
|
||||
|
|
@ -336,9 +337,10 @@ extHierSubstrate(ha, use, x, y)
|
|||
*/
|
||||
|
||||
void
|
||||
extHierConnections(ha, cumFlat, oneFlat)
|
||||
HierExtractArg *ha;
|
||||
ExtTree *cumFlat, *oneFlat;
|
||||
extHierConnections(
|
||||
HierExtractArg *ha,
|
||||
ExtTree *cumFlat,
|
||||
ExtTree *oneFlat)
|
||||
{
|
||||
int pNum;
|
||||
CellDef *sourceDef = oneFlat->et_use->cu_def;
|
||||
|
|
@ -399,10 +401,10 @@ extHierConnections(ha, cumFlat, oneFlat)
|
|||
*/
|
||||
|
||||
int
|
||||
extHierConnectFunc1(oneTile, dinfo, ha)
|
||||
Tile *oneTile; /* Comes from 'oneFlat' in extHierConnections */
|
||||
TileType dinfo; /* Split tile information (unused) */
|
||||
HierExtractArg *ha; /* Extraction context */
|
||||
extHierConnectFunc1(
|
||||
Tile *oneTile, /* Comes from 'oneFlat' in extHierConnections */
|
||||
TileType dinfo, /* Split tile information (unused) */
|
||||
HierExtractArg *ha) /* Extraction context */
|
||||
{
|
||||
CellDef *cumDef = extHierCumFlat->et_use->cu_def;
|
||||
Rect r;
|
||||
|
|
@ -613,10 +615,10 @@ extHierFindTopNode(Tile *tile,
|
|||
*/
|
||||
|
||||
int
|
||||
extHierConnectFunc2(cum, dinfo, ha)
|
||||
Tile *cum; /* Comes from extHierCumFlat->et_use->cu_def */
|
||||
TileType dinfo; /* Split tile information */
|
||||
HierExtractArg *ha; /* Extraction context */
|
||||
extHierConnectFunc2(
|
||||
Tile *cum, /* Comes from extHierCumFlat->et_use->cu_def */
|
||||
TileType dinfo, /* Split tile information */
|
||||
HierExtractArg *ha) /* Extraction context */
|
||||
{
|
||||
HashTable *table = &ha->ha_connHash;
|
||||
Node *node1, *node2;
|
||||
|
|
@ -799,10 +801,10 @@ extHierConnectFunc2(cum, dinfo, ha)
|
|||
*/
|
||||
|
||||
int
|
||||
extHierConnectFunc3(cum, dinfo, ha)
|
||||
Tile *cum; /* Comes from extHierCumFlat->et_use->cu_def */
|
||||
TileType dinfo; /* Split tile information */
|
||||
HierExtractArg *ha; /* Extraction context */
|
||||
extHierConnectFunc3(
|
||||
Tile *cum, /* Comes from extHierCumFlat->et_use->cu_def */
|
||||
TileType dinfo, /* Split tile information */
|
||||
HierExtractArg *ha) /* Extraction context */
|
||||
{
|
||||
HashTable *table = &ha->ha_connHash;
|
||||
Node *node1, *node2;
|
||||
|
|
@ -953,9 +955,11 @@ extHierConnectFunc3(cum, dinfo, ha)
|
|||
*/
|
||||
|
||||
void
|
||||
extHierAdjustments(ha, cumFlat, oneFlat, lookFlat)
|
||||
HierExtractArg *ha;
|
||||
ExtTree *cumFlat, *oneFlat, *lookFlat;
|
||||
extHierAdjustments(
|
||||
HierExtractArg *ha,
|
||||
ExtTree *cumFlat,
|
||||
ExtTree *oneFlat,
|
||||
ExtTree *lookFlat)
|
||||
{
|
||||
HashEntry *he, *heCum;
|
||||
int n;
|
||||
|
|
@ -1050,9 +1054,9 @@ extHierAdjustments(ha, cumFlat, oneFlat, lookFlat)
|
|||
*/
|
||||
|
||||
void
|
||||
extOutputConns(table, outf)
|
||||
HashTable *table;
|
||||
FILE *outf;
|
||||
extOutputConns(
|
||||
HashTable *table,
|
||||
FILE *outf)
|
||||
{
|
||||
CapValue c; /* cap value */
|
||||
NodeName *nn, *nnext;
|
||||
|
|
@ -1149,8 +1153,8 @@ extOutputConns(table, outf)
|
|||
*/
|
||||
|
||||
Node *
|
||||
extHierNewNode(he)
|
||||
HashEntry *he;
|
||||
extHierNewNode(
|
||||
HashEntry *he)
|
||||
{
|
||||
int n, nclasses;
|
||||
NodeName *nn;
|
||||
|
|
@ -1199,10 +1203,10 @@ extHierNewNode(he)
|
|||
|
||||
/*ARGSUSED*/
|
||||
ExtRegion *
|
||||
extHierLabFirst(tile, dinfo, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
FindRegion *arg;
|
||||
extHierLabFirst(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
FindRegion *arg)
|
||||
{
|
||||
LabRegion *new;
|
||||
|
||||
|
|
@ -1220,11 +1224,11 @@ extHierLabFirst(tile, dinfo, arg)
|
|||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extHierLabEach(tile, dinfo, pNum, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
int pNum;
|
||||
FindRegion *arg;
|
||||
extHierLabEach(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
int pNum,
|
||||
FindRegion *arg)
|
||||
{
|
||||
LabRegion *reg;
|
||||
|
||||
|
|
@ -1307,8 +1311,8 @@ extHierNewOne()
|
|||
*/
|
||||
|
||||
void
|
||||
extHierFreeOne(et)
|
||||
ExtTree *et;
|
||||
extHierFreeOne(
|
||||
ExtTree *et)
|
||||
{
|
||||
if (ExtOptions & EXT_DOCOUPLING)
|
||||
extCapHashKill(&et->et_coupleHash);
|
||||
|
|
|
|||
|
|
@ -87,13 +87,13 @@ int extInterSubtreePaint();
|
|||
*/
|
||||
|
||||
void
|
||||
ExtFindInteractions(def, halo, bloatby, resultPlane)
|
||||
CellDef *def; /* Find interactions among children of def */
|
||||
int halo; /* Interaction is elements closer than halo */
|
||||
int bloatby; /* Bloat each interaction area by this amount when
|
||||
ExtFindInteractions(
|
||||
CellDef *def, /* Find interactions among children of def */
|
||||
int halo, /* Interaction is elements closer than halo */
|
||||
int bloatby, /* Bloat each interaction area by this amount when
|
||||
* painting into resultPlane.
|
||||
*/
|
||||
Plane *resultPlane; /* Paint interaction areas into this plane */
|
||||
Plane *resultPlane) /* Paint interaction areas into this plane */
|
||||
{
|
||||
SearchContext scx;
|
||||
|
||||
|
|
@ -129,9 +129,9 @@ ExtFindInteractions(def, halo, bloatby, resultPlane)
|
|||
}
|
||||
|
||||
int
|
||||
extInterSubtreePaint(scx, def)
|
||||
SearchContext *scx;
|
||||
CellDef *def;
|
||||
extInterSubtreePaint(
|
||||
SearchContext *scx,
|
||||
CellDef *def)
|
||||
{
|
||||
Rect r;
|
||||
int pNum;
|
||||
|
|
@ -165,8 +165,8 @@ extInterSubtreePaint(scx, def)
|
|||
*/
|
||||
|
||||
int
|
||||
extInterSubtree(scx)
|
||||
SearchContext *scx;
|
||||
extInterSubtree(
|
||||
SearchContext *scx)
|
||||
{
|
||||
CellUse *oldUse = extInterUse;
|
||||
SearchContext parentScx;
|
||||
|
|
@ -185,8 +185,9 @@ extInterSubtree(scx)
|
|||
}
|
||||
|
||||
int
|
||||
extInterSubtreeClip(overlapScx, scx)
|
||||
SearchContext *overlapScx, *scx;
|
||||
extInterSubtreeClip(
|
||||
SearchContext *overlapScx,
|
||||
SearchContext *scx)
|
||||
{
|
||||
Rect r, r2;
|
||||
|
||||
|
|
@ -227,11 +228,12 @@ extInterSubtreeClip(overlapScx, scx)
|
|||
*/
|
||||
|
||||
int
|
||||
extInterSubtreeElement(use, trans, x, y, r)
|
||||
CellUse *use;
|
||||
Transform *trans;
|
||||
int x, y;
|
||||
Rect *r;
|
||||
extInterSubtreeElement(
|
||||
CellUse *use,
|
||||
Transform *trans,
|
||||
int x,
|
||||
int y,
|
||||
Rect *r)
|
||||
{
|
||||
SearchContext scx;
|
||||
Transform tinv;
|
||||
|
|
@ -270,10 +272,10 @@ extInterSubtreeElement(use, trans, x, y, r)
|
|||
*/
|
||||
|
||||
int
|
||||
extInterSubtreeTile(tile, dinfo, cxp)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
TreeContext *cxp;
|
||||
extInterSubtreeTile(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
TreeContext *cxp)
|
||||
{
|
||||
SearchContext newscx;
|
||||
Rect r;
|
||||
|
|
@ -312,8 +314,8 @@ extInterSubtreeTile(tile, dinfo, cxp)
|
|||
*/
|
||||
|
||||
int
|
||||
extInterOverlapSubtree(scx)
|
||||
SearchContext *scx;
|
||||
extInterOverlapSubtree(
|
||||
SearchContext *scx)
|
||||
{
|
||||
if (extInterUse == scx->scx_use)
|
||||
return (2);
|
||||
|
|
@ -343,10 +345,10 @@ extInterOverlapSubtree(scx)
|
|||
*/
|
||||
|
||||
int
|
||||
extInterOverlapTile(tile, dinfo, cxp)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
TreeContext *cxp;
|
||||
extInterOverlapTile(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
TreeContext *cxp)
|
||||
{
|
||||
SearchContext *scx = cxp->tc_scx;
|
||||
Rect r, rootr;
|
||||
|
|
@ -410,14 +412,14 @@ extInterOverlapTile(tile, dinfo, cxp)
|
|||
*/
|
||||
|
||||
int
|
||||
extTreeSrPaintArea(scx, func, cdarg)
|
||||
SearchContext *scx; /* Pointer to search context specifying
|
||||
extTreeSrPaintArea(
|
||||
SearchContext *scx, /* Pointer to search context specifying
|
||||
* a cell use to search, an area in the
|
||||
* coordinates of the cell's def, and a
|
||||
* transform back to "root" coordinates.
|
||||
*/
|
||||
int (*func)(); /* Function to apply at each qualifying tile */
|
||||
ClientData cdarg; /* Client data for above function */
|
||||
int (*func)(), /* Function to apply at each qualifying tile */
|
||||
ClientData cdarg) /* Client data for above function */
|
||||
{
|
||||
int extTreeSrFunc();
|
||||
CellDef *def = scx->scx_use->cu_def;
|
||||
|
|
@ -455,9 +457,9 @@ extTreeSrPaintArea(scx, func, cdarg)
|
|||
*/
|
||||
|
||||
int
|
||||
extTreeSrFunc(scx, fp)
|
||||
SearchContext *scx;
|
||||
TreeFilter *fp;
|
||||
extTreeSrFunc(
|
||||
SearchContext *scx,
|
||||
TreeFilter *fp)
|
||||
{
|
||||
CellDef *def = scx->scx_use->cu_def;
|
||||
TreeContext context;
|
||||
|
|
|
|||
|
|
@ -144,8 +144,8 @@ void extPathFloodTile();
|
|||
*/
|
||||
|
||||
void
|
||||
ExtSetDriver(name)
|
||||
char *name;
|
||||
ExtSetDriver(
|
||||
char *name)
|
||||
{
|
||||
HashEntry *he;
|
||||
|
||||
|
|
@ -154,8 +154,8 @@ ExtSetDriver(name)
|
|||
}
|
||||
|
||||
void
|
||||
ExtSetReceiver(name)
|
||||
char *name;
|
||||
ExtSetReceiver(
|
||||
char *name)
|
||||
{
|
||||
HashEntry *he;
|
||||
|
||||
|
|
@ -238,12 +238,12 @@ extLengthInit()
|
|||
*/
|
||||
|
||||
void
|
||||
extLength(rootUse, f)
|
||||
CellUse *rootUse; /* The names stored in the driver and receiver tables
|
||||
extLength(
|
||||
CellUse *rootUse, /* The names stored in the driver and receiver tables
|
||||
* should all be relative to this root cell. It is
|
||||
* the responsibility of the caller to ensure this.
|
||||
*/
|
||||
FILE *f; /* Open output file */
|
||||
FILE *f) /* Open output file */
|
||||
{
|
||||
Label *dList, *rList, *dLab, *rLab;
|
||||
int min, max;
|
||||
|
|
@ -346,9 +346,9 @@ extLength(rootUse, f)
|
|||
*/
|
||||
|
||||
Label *
|
||||
extLengthYank(use, labList)
|
||||
CellUse *use; /* Cell whose material is to be traced */
|
||||
Label *labList; /* List of labels whose attached net is to be traced */
|
||||
extLengthYank(
|
||||
CellUse *use, /* Cell whose material is to be traced */
|
||||
Label *labList) /* List of labels whose attached net is to be traced */
|
||||
{
|
||||
SearchContext scx;
|
||||
char mesg[512];
|
||||
|
|
@ -434,10 +434,10 @@ extLengthYank(use, labList)
|
|||
*/
|
||||
|
||||
int
|
||||
extLengthLabels(tile, dinfo, rootUse)
|
||||
Tile *tile; /* Some tile in extPathDef */
|
||||
TileType dinfo; /* Split tile information (unused) */
|
||||
CellUse *rootUse; /* The original root cell */
|
||||
extLengthLabels(
|
||||
Tile *tile, /* Some tile in extPathDef */
|
||||
TileType dinfo, /* Split tile information (unused) */
|
||||
CellUse *rootUse) /* The original root cell */
|
||||
{
|
||||
char name[MAXNAMESIZE];
|
||||
TileTypeBitMask mask;
|
||||
|
|
@ -486,10 +486,10 @@ extLengthLabels(tile, dinfo, rootUse)
|
|||
*/
|
||||
|
||||
int
|
||||
extLengthLabelsFunc(scx, label, tpath)
|
||||
SearchContext *scx; /* Where in the search tree we are */
|
||||
Label *label; /* The label itself */
|
||||
TerminalPath *tpath; /* Identifies hierarchical prefix for label.
|
||||
extLengthLabelsFunc(
|
||||
SearchContext *scx, /* Where in the search tree we are */
|
||||
Label *label, /* The label itself */
|
||||
TerminalPath *tpath) /* Identifies hierarchical prefix for label.
|
||||
* The full hierarchical pathname will be the
|
||||
* concatenation of the string tpath->tp_first
|
||||
* and the string label->lab_text.
|
||||
|
|
@ -544,9 +544,9 @@ extLengthLabelsFunc(scx, label, tpath)
|
|||
*/
|
||||
|
||||
Label *
|
||||
extPathLabel(use, text)
|
||||
CellUse *use;
|
||||
char *text;
|
||||
extPathLabel(
|
||||
CellUse *use,
|
||||
char *text)
|
||||
{
|
||||
int extPathLabelFunc();
|
||||
Label *lab;
|
||||
|
|
@ -578,11 +578,11 @@ extPathLabel(use, text)
|
|||
*/
|
||||
|
||||
int
|
||||
extPathLabelFunc(rect, text, childLab, pLabList)
|
||||
Rect *rect; /* Transformed location of the label */
|
||||
char *text; /* Full hierarchical name of the label */
|
||||
Label *childLab; /* The label itself */
|
||||
Label **pLabList; /* Cons the newly allocated label onto the front of
|
||||
extPathLabelFunc(
|
||||
Rect *rect, /* Transformed location of the label */
|
||||
char *text, /* Full hierarchical name of the label */
|
||||
Label *childLab, /* The label itself */
|
||||
Label **pLabList) /* Cons the newly allocated label onto the front of
|
||||
* this list.
|
||||
*/
|
||||
{
|
||||
|
|
@ -630,9 +630,11 @@ extPathLabelFunc(rect, text, childLab, pLabList)
|
|||
*/
|
||||
|
||||
void
|
||||
extPathPairDistance(lab1, lab2, pMin, pMax)
|
||||
Label *lab1, *lab2;
|
||||
int *pMin, *pMax;
|
||||
extPathPairDistance(
|
||||
Label *lab1,
|
||||
Label *lab2,
|
||||
int *pMin,
|
||||
int *pMax)
|
||||
{
|
||||
struct extPathArg epa;
|
||||
TileTypeBitMask mask;
|
||||
|
|
@ -694,8 +696,8 @@ extPathPairDistance(lab1, lab2, pMin, pMax)
|
|||
*/
|
||||
|
||||
int
|
||||
extPathResetClient(tile)
|
||||
Tile *tile;
|
||||
extPathResetClient(
|
||||
Tile *tile)
|
||||
{
|
||||
TiSetClient(tile, CLIENTDEFAULT);
|
||||
return (0);
|
||||
|
|
@ -728,10 +730,10 @@ extPathResetClient(tile)
|
|||
*/
|
||||
|
||||
int
|
||||
extPathPairFunc(tile, dinfo, epa)
|
||||
Tile *tile;
|
||||
TileType dinfo; // Unused
|
||||
struct extPathArg *epa;
|
||||
extPathPairFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo, // Unused
|
||||
struct extPathArg *epa)
|
||||
{
|
||||
Point startPoint;
|
||||
Rect r;
|
||||
|
|
@ -772,11 +774,11 @@ extPathPairFunc(tile, dinfo, epa)
|
|||
*/
|
||||
|
||||
void
|
||||
extPathFlood(tile, p, distance, epa)
|
||||
Tile *tile; /* Tile whose neighbors we are to visit */
|
||||
Point *p; /* Usually at center of 'tile' */
|
||||
int distance; /* Distance to 'p' */
|
||||
struct extPathArg *epa; /* Update epa_min and epa_max when we reach
|
||||
extPathFlood(
|
||||
Tile *tile, /* Tile whose neighbors we are to visit */
|
||||
Point *p, /* Usually at center of 'tile' */
|
||||
int distance, /* Distance to 'p' */
|
||||
struct extPathArg *epa) /* Update epa_min and epa_max when we reach
|
||||
* the destination epa_lab2.
|
||||
*/
|
||||
{
|
||||
|
|
@ -911,10 +913,10 @@ extPathFlood(tile, p, distance, epa)
|
|||
}
|
||||
|
||||
int
|
||||
extPathFloodFunc(dstTile, dinfo, epfa)
|
||||
Tile *dstTile;
|
||||
TileType dinfo; // Unused
|
||||
struct extPathFloodArg *epfa;
|
||||
extPathFloodFunc(
|
||||
Tile *dstTile,
|
||||
TileType dinfo, // Unused
|
||||
struct extPathFloodArg *epfa)
|
||||
{
|
||||
Rect srcRect, dstRect;
|
||||
Point dstPoint, *p;
|
||||
|
|
@ -970,12 +972,12 @@ extPathFloodFunc(dstTile, dinfo, epfa)
|
|||
*/
|
||||
|
||||
void
|
||||
extPathFloodTile(srcTile, srcPoint, srcDist, dstTile, epa)
|
||||
Tile *srcTile; /* Tile through which we're propagating */
|
||||
Point *srcPoint; /* Point inside or on srcTile */
|
||||
int srcDist; /* Distance to srcPoint so far */
|
||||
Tile *dstTile; /* Tile on border of srcTile */
|
||||
struct extPathArg *epa;
|
||||
extPathFloodTile(
|
||||
Tile *srcTile, /* Tile through which we're propagating */
|
||||
Point *srcPoint, /* Point inside or on srcTile */
|
||||
int srcDist, /* Distance to srcPoint so far */
|
||||
Tile *dstTile, /* Tile on border of srcTile */
|
||||
struct extPathArg *epa)
|
||||
{
|
||||
Rect srcRect, dstRect;
|
||||
Point dstPoint;
|
||||
|
|
@ -1017,10 +1019,11 @@ extPathFloodTile(srcTile, srcPoint, srcDist, dstTile, epa)
|
|||
*/
|
||||
|
||||
int
|
||||
extPathTileDist(p1, p2, tile, oldDist)
|
||||
Point *p1, *p2;
|
||||
Tile *tile;
|
||||
int oldDist;
|
||||
extPathTileDist(
|
||||
Point *p1,
|
||||
Point *p2,
|
||||
Tile *tile,
|
||||
int oldDist)
|
||||
{
|
||||
int newDist;
|
||||
|
||||
|
|
|
|||
|
|
@ -88,10 +88,10 @@ Stack *extDefStack;
|
|||
int extDefInitFunc(CellDef *, ClientData); /* UNUSED */
|
||||
void extDefPush();
|
||||
void extDefIncremental();
|
||||
void extParents();
|
||||
void extParents(CellUse *use, bool doExtract);
|
||||
void extDefParentFunc();
|
||||
void extDefParentAreaFunc();
|
||||
void extExtractStack();
|
||||
void extExtractStack(Stack *stack, bool doExtract, CellDef *rootDef);
|
||||
|
||||
bool extContainsGeometry();
|
||||
int extContainsCellFunc(CellUse *use, ClientData cdata); /* cb_database_srcellplanearea_t (const CellUse *allButUse) */
|
||||
|
|
@ -173,9 +173,9 @@ ExtInit()
|
|||
*/
|
||||
|
||||
int
|
||||
extIsUsedFunc(use, clientData)
|
||||
CellUse *use;
|
||||
ClientData clientData; /* unused */
|
||||
extIsUsedFunc(
|
||||
CellUse *use,
|
||||
ClientData clientData) /* unused */
|
||||
{
|
||||
CellDef *def = use->cu_def;
|
||||
|
||||
|
|
@ -197,10 +197,10 @@ extIsUsedFunc(use, clientData)
|
|||
*/
|
||||
|
||||
int
|
||||
extEnumFunc(tile, dinfo, clientdata)
|
||||
Tile *tile; /* (unused) */
|
||||
TileType dinfo; /* (unused) */
|
||||
ClientData clientdata; /* (unused) */
|
||||
extEnumFunc(
|
||||
Tile *tile, /* (unused) */
|
||||
TileType dinfo, /* (unused) */
|
||||
ClientData clientdata) /* (unused) */
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -212,9 +212,9 @@ extEnumFunc(tile, dinfo, clientdata)
|
|||
*/
|
||||
|
||||
int
|
||||
extDefListFunc(use, defList)
|
||||
CellUse *use;
|
||||
LinkedDef **defList;
|
||||
extDefListFunc(
|
||||
CellUse *use,
|
||||
LinkedDef **defList)
|
||||
{
|
||||
CellDef *def = use->cu_def;
|
||||
LinkedDef *newLD;
|
||||
|
|
@ -270,9 +270,9 @@ extDefListFunc(use, defList)
|
|||
*/
|
||||
|
||||
int
|
||||
extDefListFuncIncremental(use, defList)
|
||||
CellUse *use;
|
||||
LinkedDef **defList;
|
||||
extDefListFuncIncremental(
|
||||
CellUse *use,
|
||||
LinkedDef **defList)
|
||||
{
|
||||
CellDef *def = use->cu_def;
|
||||
LinkedDef *newLD;
|
||||
|
|
@ -346,8 +346,8 @@ extDefListFuncIncremental(use, defList)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtAll(rootUse)
|
||||
CellUse *rootUse;
|
||||
ExtAll(
|
||||
CellUse *rootUse)
|
||||
{
|
||||
LinkedDef *defList = NULL;
|
||||
CellDef *err_def;
|
||||
|
|
@ -397,9 +397,9 @@ ExtAll(rootUse)
|
|||
*/
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extDefInitFunc(def, cdata)
|
||||
CellDef *def;
|
||||
ClientData cdata; /* UNUSED */
|
||||
extDefInitFunc(
|
||||
CellDef *def,
|
||||
ClientData cdata) /* UNUSED */
|
||||
{
|
||||
def->cd_client = (ClientData) 0;
|
||||
return (0);
|
||||
|
|
@ -411,8 +411,8 @@ extDefInitFunc(def, cdata)
|
|||
*/
|
||||
|
||||
void
|
||||
extDefPush(defList)
|
||||
LinkedDef *defList;
|
||||
extDefPush(
|
||||
LinkedDef *defList)
|
||||
{
|
||||
while (defList != NULL)
|
||||
{
|
||||
|
|
@ -452,9 +452,9 @@ extDefPush(defList)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtUnique(rootUse, option)
|
||||
CellUse *rootUse;
|
||||
int option;
|
||||
ExtUnique(
|
||||
CellUse *rootUse,
|
||||
int option)
|
||||
{
|
||||
CellDef *def, *err_def;
|
||||
LinkedDef *defList = NULL;
|
||||
|
|
@ -545,23 +545,23 @@ ExtUnique(rootUse, option)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtParents(use)
|
||||
CellUse *use;
|
||||
ExtParents(
|
||||
CellUse *use)
|
||||
{
|
||||
extParents(use, TRUE);
|
||||
}
|
||||
|
||||
void
|
||||
ExtShowParents(use)
|
||||
CellUse *use;
|
||||
ExtShowParents(
|
||||
CellUse *use)
|
||||
{
|
||||
extParents(use, FALSE);
|
||||
}
|
||||
|
||||
void
|
||||
extParents(use, doExtract)
|
||||
CellUse *use;
|
||||
bool doExtract; /* If TRUE, we extract; if FALSE, we print */
|
||||
extParents(
|
||||
CellUse *use,
|
||||
bool doExtract) /* If TRUE, we extract; if FALSE, we print */
|
||||
{
|
||||
LinkedDef *defList = NULL;
|
||||
CellDef *def;
|
||||
|
|
@ -632,8 +632,8 @@ extParents(use, doExtract)
|
|||
*/
|
||||
|
||||
void
|
||||
extDefParentFunc(def)
|
||||
CellDef *def;
|
||||
extDefParentFunc(
|
||||
CellDef *def)
|
||||
{
|
||||
CellUse *parent;
|
||||
|
||||
|
|
@ -667,10 +667,10 @@ extDefParentFunc(def)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtParentArea(use, changedArea, doExtract)
|
||||
CellUse *use; /* Use->cu_def changed; extract its affected parents */
|
||||
Rect *changedArea; /* Area changed in use->cu_def coordinates */
|
||||
bool doExtract; /* If TRUE, we extract; if FALSE, we just print names
|
||||
ExtParentArea(
|
||||
CellUse *use, /* Use->cu_def changed; extract its affected parents */
|
||||
Rect *changedArea, /* Area changed in use->cu_def coordinates */
|
||||
bool doExtract) /* If TRUE, we extract; if FALSE, we just print names
|
||||
* of the cells we would extract.
|
||||
*/
|
||||
{
|
||||
|
|
@ -704,11 +704,11 @@ ExtParentArea(use, changedArea, doExtract)
|
|||
*/
|
||||
|
||||
void
|
||||
extDefParentAreaFunc(def, baseDef, allButUse, area)
|
||||
CellDef *def;
|
||||
CellDef *baseDef;
|
||||
CellUse *allButUse;
|
||||
Rect *area;
|
||||
extDefParentAreaFunc(
|
||||
CellDef *def,
|
||||
CellDef *baseDef,
|
||||
CellUse *allButUse,
|
||||
Rect *area)
|
||||
{
|
||||
int x, y, xoff, yoff;
|
||||
CellUse *parent;
|
||||
|
|
@ -758,10 +758,10 @@ extDefParentAreaFunc(def, baseDef, allButUse, area)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtractOneCell(def, outName, doLength)
|
||||
CellDef *def; /* Cell being extracted */
|
||||
char *outName; /* Name of output file; if NULL, derive from def name */
|
||||
bool doLength; /* If TRUE, extract pathlengths from drivers to
|
||||
ExtractOneCell(
|
||||
CellDef *def, /* Cell being extracted */
|
||||
char *outName, /* Name of output file; if NULL, derive from def name */
|
||||
bool doLength) /* If TRUE, extract pathlengths from drivers to
|
||||
* receivers (the names are stored in ExtLength.c).
|
||||
* Should only be TRUE for the root cell in a
|
||||
* hierarchy.
|
||||
|
|
@ -842,10 +842,10 @@ ExtractOneCell(def, outName, doLength)
|
|||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
bool
|
||||
extContainsGeometry(def, allButUse, area)
|
||||
CellDef *def;
|
||||
CellUse *allButUse;
|
||||
Rect *area;
|
||||
extContainsGeometry(
|
||||
CellDef *def,
|
||||
CellUse *allButUse,
|
||||
Rect *area)
|
||||
{
|
||||
int extContainsPaintFunc();
|
||||
int pNum;
|
||||
|
|
@ -904,8 +904,8 @@ extContainsPaintFunc(
|
|||
*/
|
||||
|
||||
void
|
||||
ExtIncremental(rootUse)
|
||||
CellUse *rootUse;
|
||||
ExtIncremental(
|
||||
CellUse *rootUse)
|
||||
{
|
||||
LinkedDef *defList = NULL;
|
||||
CellDef *err_def;
|
||||
|
|
@ -954,8 +954,8 @@ ExtIncremental(rootUse)
|
|||
*/
|
||||
|
||||
bool
|
||||
extTimestampMisMatch(def)
|
||||
CellDef *def;
|
||||
extTimestampMisMatch(
|
||||
CellDef *def)
|
||||
{
|
||||
char line[256];
|
||||
FILE *extFile;
|
||||
|
|
@ -1002,10 +1002,10 @@ closeit:
|
|||
*/
|
||||
|
||||
void
|
||||
extExtractStack(stack, doExtract, rootDef)
|
||||
Stack *stack;
|
||||
bool doExtract;
|
||||
CellDef *rootDef;
|
||||
extExtractStack(
|
||||
Stack *stack,
|
||||
bool doExtract,
|
||||
CellDef *rootDef)
|
||||
{
|
||||
int errorcnt = 0, warnings = 0;
|
||||
bool first = TRUE;
|
||||
|
|
|
|||
|
|
@ -71,11 +71,11 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
|
|||
*/
|
||||
|
||||
int
|
||||
ExtFindNeighbors(tile, dinfo, tilePlaneNum, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
int tilePlaneNum;
|
||||
FindRegion *arg;
|
||||
ExtFindNeighbors(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
int tilePlaneNum,
|
||||
FindRegion *arg)
|
||||
{
|
||||
TileTypeBitMask *connTo = arg->fra_connectsTo;
|
||||
Tile *tp;
|
||||
|
|
@ -376,10 +376,10 @@ fail:
|
|||
*/
|
||||
|
||||
int
|
||||
extNbrPushFunc(tile, dinfo, pla)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
PlaneAndArea *pla;
|
||||
extNbrPushFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
PlaneAndArea *pla)
|
||||
{
|
||||
Rect *tileArea;
|
||||
Rect r;
|
||||
|
|
|
|||
|
|
@ -139,13 +139,13 @@ ExtGetRegion(Tile *tp, /* Tile to get region record from */
|
|||
*/
|
||||
|
||||
ExtRegion *
|
||||
ExtFindRegions(def, area, mask, connectsTo, first, each)
|
||||
CellDef *def; /* Cell definition being searched */
|
||||
Rect *area; /* Area to search initially for tiles */
|
||||
TileTypeBitMask *mask; /* In the initial area search, only visit
|
||||
ExtFindRegions(
|
||||
CellDef *def, /* Cell definition being searched */
|
||||
Rect *area, /* Area to search initially for tiles */
|
||||
TileTypeBitMask *mask, /* In the initial area search, only visit
|
||||
* tiles whose types are in this mask.
|
||||
*/
|
||||
TileTypeBitMask *connectsTo;/* Connectivity table for determining regions.
|
||||
TileTypeBitMask *connectsTo,/* Connectivity table for determining regions.
|
||||
* If t1 and t2 are the types of adjacent
|
||||
* tiles, then t1 and t2 belong to the same
|
||||
* region iff:
|
||||
|
|
@ -155,8 +155,8 @@ ExtFindRegions(def, area, mask, connectsTo, first, each)
|
|||
* so this is the same as:
|
||||
* TTMaskHasType(&connectsTo[t2], t1)
|
||||
*/
|
||||
ExtRegion * (*first)(); /* Applied to first tile in region */
|
||||
int (*each)(); /* Applied to each tile in region */
|
||||
ExtRegion * (*first)(), /* Applied to first tile in region */
|
||||
int (*each)()) /* Applied to each tile in region */
|
||||
{
|
||||
FindRegion arg;
|
||||
int extRegionAreaFunc();
|
||||
|
|
@ -206,10 +206,10 @@ ExtFindRegions(def, area, mask, connectsTo, first, each)
|
|||
*/
|
||||
|
||||
int
|
||||
extRegionAreaFunc(tile, dinfo, arg)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
FindRegion *arg;
|
||||
extRegionAreaFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
FindRegion *arg)
|
||||
{
|
||||
/* Allocate a new region */
|
||||
if (arg->fra_first)
|
||||
|
|
@ -251,11 +251,11 @@ extRegionAreaFunc(tile, dinfo, arg)
|
|||
*/
|
||||
|
||||
LabelList *
|
||||
ExtLabelRegions(def, connTo, nodeList, clipArea)
|
||||
CellDef *def; /* Cell definition being labelled */
|
||||
TileTypeBitMask *connTo; /* Connectivity table (see above) */
|
||||
NodeRegion **nodeList; /* Node list to add to (or NULL) */
|
||||
Rect *clipArea; /* Area to search for sticky labels */
|
||||
ExtLabelRegions(
|
||||
CellDef *def, /* Cell definition being labelled */
|
||||
TileTypeBitMask *connTo, /* Connectivity table (see above) */
|
||||
NodeRegion **nodeList, /* Node list to add to (or NULL) */
|
||||
Rect *clipArea) /* Area to search for sticky labels */
|
||||
{
|
||||
static Point offsets[] = { { 0, 0 }, { 0, -1 }, { -1, -1 }, { -1, 0 } };
|
||||
LabelList *ll;
|
||||
|
|
@ -431,10 +431,10 @@ ExtLabelRegions(def, connTo, nodeList, clipArea)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtLabelOneRegion(def, connTo, reg)
|
||||
CellDef *def; /* Cell definition being labelled */
|
||||
TileTypeBitMask *connTo; /* Connectivity table (see above) */
|
||||
NodeRegion *reg; /* The region whose labels we want */
|
||||
ExtLabelOneRegion(
|
||||
CellDef *def, /* Cell definition being labelled */
|
||||
TileTypeBitMask *connTo, /* Connectivity table (see above) */
|
||||
NodeRegion *reg) /* The region whose labels we want */
|
||||
{
|
||||
static Point offsets[] = { { 0, 0 }, { 0, -1 }, { -1, -1 }, { -1, 0 } };
|
||||
LabelList *ll;
|
||||
|
|
@ -519,9 +519,9 @@ ExtLabelOneRegion(def, connTo, reg)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtResetTiles(def, resetTo)
|
||||
CellDef *def;
|
||||
ClientData resetTo; /* New value for ti_client */
|
||||
ExtResetTiles(
|
||||
CellDef *def,
|
||||
ClientData resetTo) /* New value for ti_client */
|
||||
{
|
||||
int pNum;
|
||||
|
||||
|
|
@ -553,8 +553,8 @@ ExtResetTiles(def, resetTo)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtFreeRegions(regList)
|
||||
ExtRegion *regList; /* List of regions to be freed */
|
||||
ExtFreeRegions(
|
||||
ExtRegion *regList) /* List of regions to be freed */
|
||||
{
|
||||
ExtRegion *reg;
|
||||
|
||||
|
|
@ -565,8 +565,8 @@ ExtFreeRegions(regList)
|
|||
}
|
||||
|
||||
void
|
||||
ExtFreeLabRegions(regList)
|
||||
LabRegion *regList; /* List of regions to be freed */
|
||||
ExtFreeLabRegions(
|
||||
LabRegion *regList) /* List of regions to be freed */
|
||||
{
|
||||
LabRegion *lreg;
|
||||
LabelList *ll;
|
||||
|
|
@ -584,8 +584,8 @@ ExtFreeLabRegions(regList)
|
|||
}
|
||||
|
||||
void
|
||||
ExtFreeHierLabRegions(regList)
|
||||
ExtRegion *regList; /* List of regions to be freed */
|
||||
ExtFreeHierLabRegions(
|
||||
ExtRegion *regList) /* List of regions to be freed */
|
||||
{
|
||||
ExtRegion *reg;
|
||||
LabelList *ll;
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ bool extFirstPass;
|
|||
ExtTree *extSubList = (ExtTree *) NULL;
|
||||
|
||||
/* Forward declarations of filter functions */
|
||||
char *extSubtreeTileToNode();
|
||||
char *extSubtreeTileToNode(Tile *tp, TileType dinfo, int pNum, ExtTree *et, HierExtractArg *ha, bool doHard);
|
||||
int extSubtreeFunc();
|
||||
int extSubstrateFunc();
|
||||
int extConnFindFunc();
|
||||
|
|
@ -115,9 +115,9 @@ void extSubtreeHardSearch();
|
|||
*/
|
||||
|
||||
int
|
||||
extClearUseFlags(use, clientData)
|
||||
CellUse *use;
|
||||
ClientData clientData;
|
||||
extClearUseFlags(
|
||||
CellUse *use,
|
||||
ClientData clientData)
|
||||
{
|
||||
use->cu_flags &= ~CU_SUB_EXTRACTED;
|
||||
return 0;
|
||||
|
|
@ -161,10 +161,10 @@ extClearUseFlags(use, clientData)
|
|||
#define RECTAREA(r) (((r)->r_xtop-(r)->r_xbot) * ((r)->r_ytop-(r)->r_ybot))
|
||||
|
||||
void
|
||||
extSubtree(parentUse, reg, f)
|
||||
CellUse *parentUse;
|
||||
NodeRegion *reg; /* Node regions of the parent cell */
|
||||
FILE *f;
|
||||
extSubtree(
|
||||
CellUse *parentUse,
|
||||
NodeRegion *reg, /* Node regions of the parent cell */
|
||||
FILE *f)
|
||||
{
|
||||
int extSubtreeInterFunc();
|
||||
CellDef *def = parentUse->cu_def;
|
||||
|
|
@ -200,7 +200,7 @@ extSubtree(parentUse, reg, f)
|
|||
ha.ha_outf = f;
|
||||
ha.ha_parentUse = parentUse;
|
||||
ha.ha_parentReg = reg;
|
||||
ha.ha_nodename = extSubtreeTileToNode;
|
||||
ha.ha_nodename = (char *(*)()) extSubtreeTileToNode;
|
||||
ha.ha_interArea = GeoNullRect;
|
||||
ha.ha_cumFlat.et_use = extYuseCum;
|
||||
HashInit(&ha.ha_connHash, 32, 0);
|
||||
|
|
@ -361,10 +361,10 @@ done:
|
|||
|
||||
#ifdef exactinteractions
|
||||
int
|
||||
extSubtreeCopyPlane(tile, dinfo, plane)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
Plane *plane;
|
||||
extSubtreeCopyPlane(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
Plane *plane)
|
||||
{
|
||||
Rect r;
|
||||
|
||||
|
|
@ -375,10 +375,10 @@ extSubtreeCopyPlane(tile, dinfo, plane)
|
|||
}
|
||||
|
||||
int
|
||||
extSubtreeShrinkPlane(tile, dinfo, plane)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
Plane *plane;
|
||||
extSubtreeShrinkPlane(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
Plane *plane)
|
||||
{
|
||||
Rect r;
|
||||
|
||||
|
|
@ -392,10 +392,10 @@ extSubtreeShrinkPlane(tile, dinfo, plane)
|
|||
}
|
||||
|
||||
int
|
||||
extSubtreeInterFunc(tile, dinfo, ha)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
HierExtractArg *ha;
|
||||
extSubtreeInterFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
TITORECT(tile, &ha->ha_interArea);
|
||||
ha->ha_clipArea = ha->ha_interArea;
|
||||
|
|
@ -450,8 +450,8 @@ extSubtreeInterFunc(tile, dinfo, ha)
|
|||
*/
|
||||
|
||||
void
|
||||
extSubtreeInteraction(ha)
|
||||
HierExtractArg *ha; /* Context for hierarchical extraction */
|
||||
extSubtreeInteraction(
|
||||
HierExtractArg *ha) /* Context for hierarchical extraction */
|
||||
{
|
||||
CellDef *oneDef, *cumDef = ha->ha_cumFlat.et_use->cu_def;
|
||||
ExtTree *oneFlat, *nextFlat;
|
||||
|
|
@ -638,8 +638,8 @@ extSubtreeInteraction(ha)
|
|||
*/
|
||||
|
||||
void
|
||||
extSubtreeAdjustInit(ha)
|
||||
HierExtractArg *ha;
|
||||
extSubtreeAdjustInit(
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
NodeRegion *np;
|
||||
NodeName *nn;
|
||||
|
|
@ -690,8 +690,8 @@ extSubtreeAdjustInit(ha)
|
|||
*/
|
||||
|
||||
void
|
||||
extSubtreeOutputCoupling(ha)
|
||||
HierExtractArg *ha;
|
||||
extSubtreeOutputCoupling(
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
CapValue cap;
|
||||
CoupleKey *ck;
|
||||
|
|
@ -736,10 +736,10 @@ extSubtreeOutputCoupling(ha)
|
|||
*/
|
||||
|
||||
int
|
||||
extFoundProc(tile, dinfo, clientData)
|
||||
Tile *tile;
|
||||
TileType dinfo;
|
||||
ClientData clientData;
|
||||
extFoundProc(
|
||||
Tile *tile,
|
||||
TileType dinfo,
|
||||
ClientData clientData)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -767,9 +767,9 @@ extFoundProc(tile, dinfo, clientData)
|
|||
*/
|
||||
|
||||
int
|
||||
extSubtreeFunc(scx, ha)
|
||||
SearchContext *scx;
|
||||
HierExtractArg *ha;
|
||||
extSubtreeFunc(
|
||||
SearchContext *scx,
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
CellUse *cumUse = ha->ha_cumFlat.et_use;
|
||||
CellUse *use = scx->scx_use;
|
||||
|
|
@ -985,9 +985,9 @@ extSubtreeFunc(scx, ha)
|
|||
*/
|
||||
|
||||
int
|
||||
extSubstrateFunc(scx, ha)
|
||||
SearchContext *scx;
|
||||
HierExtractArg *ha;
|
||||
extSubstrateFunc(
|
||||
SearchContext *scx,
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
CellUse *use = scx->scx_use;
|
||||
int x, y;
|
||||
|
|
@ -1065,13 +1065,13 @@ extSubstrateFunc(scx, ha)
|
|||
*/
|
||||
|
||||
char *
|
||||
extSubtreeTileToNode(tp, dinfo, pNum, et, ha, doHard)
|
||||
Tile *tp; /* Tile whose node name is to be found */
|
||||
TileType dinfo; /* Split tile information */
|
||||
int pNum; /* Plane of the tile */
|
||||
ExtTree *et; /* Yank buffer to search */
|
||||
HierExtractArg *ha; /* Extraction context */
|
||||
bool doHard; /* If TRUE, we look up this node's name the hard way
|
||||
extSubtreeTileToNode(
|
||||
Tile *tp, /* Tile whose node name is to be found */
|
||||
TileType dinfo, /* Split tile information */
|
||||
int pNum, /* Plane of the tile */
|
||||
ExtTree *et, /* Yank buffer to search */
|
||||
HierExtractArg *ha, /* Extraction context */
|
||||
bool doHard) /* If TRUE, we look up this node's name the hard way
|
||||
* if we can't find it any other way; otherwise, we
|
||||
* return NULL if we can't find the node's name.
|
||||
*/
|
||||
|
|
@ -1175,10 +1175,10 @@ extSubtreeTileToNode(tp, dinfo, pNum, et, ha, doHard)
|
|||
*/
|
||||
|
||||
int
|
||||
extConnFindFunc(tp, dinfo, preg)
|
||||
Tile *tp;
|
||||
TileType dinfo; // Unused, but needs to be handled
|
||||
LabRegion **preg;
|
||||
extConnFindFunc(
|
||||
Tile *tp,
|
||||
TileType dinfo, // Unused, but needs to be handled
|
||||
LabRegion **preg)
|
||||
{
|
||||
if (extHasRegion(tp, CLIENTDEFAULT))
|
||||
{
|
||||
|
|
@ -1220,12 +1220,12 @@ extConnFindFunc(tp, dinfo, preg)
|
|||
*/
|
||||
|
||||
LabRegion *
|
||||
extSubtreeHardNode(tp, dinfo, pNum, et, ha)
|
||||
Tile *tp;
|
||||
TileType dinfo;
|
||||
int pNum;
|
||||
ExtTree *et;
|
||||
HierExtractArg *ha;
|
||||
extSubtreeHardNode(
|
||||
Tile *tp,
|
||||
TileType dinfo,
|
||||
int pNum,
|
||||
ExtTree *et,
|
||||
HierExtractArg *ha)
|
||||
{
|
||||
LabRegion *lreg = (LabRegion *) ExtGetRegion(tp, dinfo);
|
||||
CellDef *def = et->et_use->cu_def;
|
||||
|
|
@ -1301,9 +1301,9 @@ extSubtreeHardNode(tp, dinfo, pNum, et, ha)
|
|||
*/
|
||||
|
||||
void
|
||||
extSubtreeHardSearch(et, arg)
|
||||
ExtTree *et;
|
||||
HardWay *arg;
|
||||
extSubtreeHardSearch(
|
||||
ExtTree *et,
|
||||
HardWay *arg)
|
||||
{
|
||||
HierExtractArg *ha = arg->hw_ha;
|
||||
ExtTree *oneFlat;
|
||||
|
|
@ -1352,13 +1352,14 @@ extSubtreeHardSearch(et, arg)
|
|||
*/
|
||||
|
||||
int
|
||||
extSubtreeHardUseFunc(use, trans, x, y, arg)
|
||||
CellUse *use; /* Use that is the root of the subtree being searched */
|
||||
Transform *trans; /* Transform from coordinates of use->cu_def to those
|
||||
extSubtreeHardUseFunc(
|
||||
CellUse *use, /* Use that is the root of the subtree being searched */
|
||||
Transform *trans, /* Transform from coordinates of use->cu_def to those
|
||||
* in use->cu_parent, for the array element (x, y).
|
||||
*/
|
||||
int x, y; /* Indices of this array element */
|
||||
HardWay *arg; /* Context passed down to filter functions */
|
||||
int x,
|
||||
int y,
|
||||
HardWay *arg) /* Context passed down to filter functions */
|
||||
{
|
||||
SearchContext scx;
|
||||
Transform tinv;
|
||||
|
|
|
|||
|
|
@ -275,8 +275,8 @@ static const keydesc devTable[] = {
|
|||
*/
|
||||
|
||||
bool
|
||||
ExtCompareStyle(stylename)
|
||||
char *stylename;
|
||||
ExtCompareStyle(
|
||||
char *stylename)
|
||||
{
|
||||
ExtKeep *style;
|
||||
|
||||
|
|
@ -335,15 +335,14 @@ ExtCompareStyle(stylename)
|
|||
*/
|
||||
|
||||
bool
|
||||
ExtGetDevInfo(idx, devnameptr, devtypeptr, s_rclassptr, d_rclassptr,
|
||||
sub_rclassptr, subnameptr)
|
||||
int idx;
|
||||
char **devnameptr; /* Name of extracted device model */
|
||||
TileType *devtypeptr; /* Magic tile type of device */
|
||||
short *s_rclassptr; /* Source (1st terminal) type only */
|
||||
short *d_rclassptr; /* Drain (2nd terminal) type only */
|
||||
short *sub_rclassptr;
|
||||
char **subnameptr;
|
||||
ExtGetDevInfo(
|
||||
int idx,
|
||||
char **devnameptr, /* Name of extracted device model */
|
||||
TileType *devtypeptr, /* Magic tile type of device */
|
||||
short *s_rclassptr, /* Source (1st terminal) type only */
|
||||
short *d_rclassptr, /* Drain (2nd terminal) type only */
|
||||
short *sub_rclassptr,
|
||||
char **subnameptr)
|
||||
{
|
||||
TileType t;
|
||||
TileTypeBitMask *rmask, *tmask;
|
||||
|
|
@ -477,8 +476,8 @@ ExtGetDevInfo(idx, devnameptr, devtypeptr, s_rclassptr, d_rclassptr,
|
|||
*/
|
||||
|
||||
TileType
|
||||
extGetDevType(devname)
|
||||
char *devname;
|
||||
extGetDevType(
|
||||
char *devname)
|
||||
{
|
||||
TileType t;
|
||||
ExtDevice *devptr;
|
||||
|
|
@ -503,8 +502,8 @@ extGetDevType(devname)
|
|||
*/
|
||||
|
||||
int
|
||||
ExtGetGateTypesMask(mask)
|
||||
TileTypeBitMask *mask;
|
||||
ExtGetGateTypesMask(
|
||||
TileTypeBitMask *mask)
|
||||
{
|
||||
TileType ttype;
|
||||
|
||||
|
|
@ -540,8 +539,8 @@ ExtGetGateTypesMask(mask)
|
|||
*/
|
||||
|
||||
int
|
||||
ExtGetDiffTypesMask(mask)
|
||||
TileTypeBitMask *mask;
|
||||
ExtGetDiffTypesMask(
|
||||
TileTypeBitMask *mask)
|
||||
{
|
||||
TileType ttype;
|
||||
|
||||
|
|
@ -573,9 +572,10 @@ ExtGetDiffTypesMask(mask)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtGetZAxis(tile, height, thick)
|
||||
Tile *tile;
|
||||
float *height, *thick;
|
||||
ExtGetZAxis(
|
||||
Tile *tile,
|
||||
float *height,
|
||||
float *thick)
|
||||
{
|
||||
TileType ttype;
|
||||
|
||||
|
|
@ -610,8 +610,8 @@ ExtGetZAxis(tile, height, thick)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtPrintPath(dolist)
|
||||
bool dolist;
|
||||
ExtPrintPath(
|
||||
bool dolist)
|
||||
{
|
||||
if (ExtLocalPath == NULL)
|
||||
{
|
||||
|
|
@ -659,8 +659,8 @@ ExtPrintPath(dolist)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtSetPath(path)
|
||||
char *path;
|
||||
ExtSetPath(
|
||||
char *path)
|
||||
{
|
||||
if (path != NULL)
|
||||
{
|
||||
|
|
@ -692,10 +692,10 @@ ExtSetPath(path)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtPrintStyle(dolist, doforall, docurrent)
|
||||
bool dolist;
|
||||
bool doforall;
|
||||
bool docurrent;
|
||||
ExtPrintStyle(
|
||||
bool dolist,
|
||||
bool doforall,
|
||||
bool docurrent)
|
||||
{
|
||||
ExtKeep *style;
|
||||
|
||||
|
|
@ -759,8 +759,8 @@ ExtPrintStyle(dolist, doforall, docurrent)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtSetStyle(name)
|
||||
char *name;
|
||||
ExtSetStyle(
|
||||
char *name)
|
||||
{
|
||||
ExtKeep *style, *match;
|
||||
int length;
|
||||
|
|
@ -826,8 +826,8 @@ extTechStyleAlloc()
|
|||
*/
|
||||
|
||||
void
|
||||
extTechStyleInit(style)
|
||||
ExtStyle *style;
|
||||
extTechStyleInit(
|
||||
ExtStyle *style)
|
||||
{
|
||||
TileType r, s;
|
||||
|
||||
|
|
@ -1017,8 +1017,8 @@ extTechStyleNew()
|
|||
*/
|
||||
|
||||
CapValue
|
||||
aToCap(str)
|
||||
char *str;
|
||||
aToCap(
|
||||
char *str)
|
||||
{
|
||||
CapValue capVal;
|
||||
if (sscanf(str, "%lf", &capVal) != 1) {
|
||||
|
|
@ -1044,8 +1044,8 @@ aToCap(str)
|
|||
*/
|
||||
|
||||
ResValue
|
||||
aToRes(str)
|
||||
char *str;
|
||||
aToRes(
|
||||
char *str)
|
||||
{
|
||||
ResValue resVal;
|
||||
if (sscanf(str, "%d", &resVal) != 1) {
|
||||
|
|
@ -1072,8 +1072,8 @@ aToRes(str)
|
|||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
ExtLoadStyle(stylename)
|
||||
char *stylename;
|
||||
ExtLoadStyle(
|
||||
char *stylename)
|
||||
{
|
||||
SectionID invext;
|
||||
|
||||
|
|
@ -1177,9 +1177,9 @@ ExtTechInit()
|
|||
*/
|
||||
|
||||
void
|
||||
ExtTechSimpleAreaCap(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
ExtTechSimpleAreaCap(
|
||||
int argc,
|
||||
char *argv[])
|
||||
{
|
||||
TileType s, t;
|
||||
TileTypeBitMask types, subtypes, shields;
|
||||
|
|
@ -1355,9 +1355,9 @@ ExtTechSimpleAreaCap(argc, argv)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtTechSimplePerimCap(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
ExtTechSimplePerimCap(
|
||||
int argc,
|
||||
char *argv[])
|
||||
{
|
||||
TileType r, s, t;
|
||||
TileTypeBitMask types, nottypes, subtypes, shields;
|
||||
|
|
@ -1541,9 +1541,9 @@ ExtTechSimplePerimCap(argc, argv)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtTechSimpleSidewallCap(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
ExtTechSimpleSidewallCap(
|
||||
int argc,
|
||||
char *argv[])
|
||||
{
|
||||
/* Like ExtTechLine, but with near = types2 and far = types1 */
|
||||
|
||||
|
|
@ -1626,8 +1626,8 @@ ExtTechSimpleSidewallCap(argc, argv)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtTechSimpleOverlapCap(argv)
|
||||
char *argv[];
|
||||
ExtTechSimpleOverlapCap(
|
||||
char *argv[])
|
||||
{
|
||||
TileType s, t;
|
||||
TileTypeBitMask types1, types2, shields;
|
||||
|
|
@ -1724,8 +1724,8 @@ ExtTechSimpleOverlapCap(argv)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtTechSimpleSideOverlapCap(argv)
|
||||
char *argv[];
|
||||
ExtTechSimpleSideOverlapCap(
|
||||
char *argv[])
|
||||
{
|
||||
TileType r, s, t;
|
||||
TileTypeBitMask types, nottypes, ov, notov, shields;
|
||||
|
|
@ -1981,10 +1981,10 @@ ExtTechSimpleSideOverlapCap(argv)
|
|||
|
||||
/*ARGSUSED*/
|
||||
bool
|
||||
ExtTechLine(sectionName, argc, argv)
|
||||
char *sectionName;
|
||||
int argc;
|
||||
char *argv[];
|
||||
ExtTechLine(
|
||||
char *sectionName,
|
||||
int argc,
|
||||
char *argv[])
|
||||
{
|
||||
int n, l, i, j, size, val, p1, p2, p3, nterm, iterm, class;
|
||||
PlaneMask pshield, pov;
|
||||
|
|
@ -3575,8 +3575,8 @@ ExtTechFinal()
|
|||
|
||||
|
||||
void
|
||||
extTechFinalStyle(style)
|
||||
ExtStyle *style;
|
||||
extTechFinalStyle(
|
||||
ExtStyle *style)
|
||||
{
|
||||
TileTypeBitMask maskBits;
|
||||
TileType r, s, t;
|
||||
|
|
@ -3944,9 +3944,9 @@ zinit:
|
|||
*/
|
||||
|
||||
void
|
||||
ExtTechScale(scalen, scaled)
|
||||
int scalen; /* Scale numerator */
|
||||
int scaled; /* Scale denominator */
|
||||
ExtTechScale(
|
||||
int scalen, /* Scale numerator */
|
||||
int scaled) /* Scale denominator */
|
||||
{
|
||||
ExtStyle *style = ExtCurStyle;
|
||||
EdgeCap *ec;
|
||||
|
|
|
|||
|
|
@ -105,9 +105,9 @@ void extShowConnect(char *, TileTypeBitMask *, FILE *);
|
|||
*/
|
||||
|
||||
void
|
||||
ExtractTest(w, cmd)
|
||||
MagWindow *w;
|
||||
TxCommand *cmd;
|
||||
ExtractTest(
|
||||
MagWindow *w,
|
||||
TxCommand *cmd)
|
||||
{
|
||||
extern long extSubtreeTotalArea;
|
||||
extern long extSubtreeInteractionArea;
|
||||
|
|
@ -316,10 +316,10 @@ ExtractTest(w, cmd)
|
|||
}
|
||||
|
||||
int
|
||||
extShowInter(tile, dinfo, clientdata)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
ClientData clientdata; /* (unused) */
|
||||
extShowInter(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
ClientData clientdata) /* (unused) */
|
||||
{
|
||||
Rect r;
|
||||
|
||||
|
|
@ -351,8 +351,8 @@ extShowInter(tile, dinfo, clientdata)
|
|||
*/
|
||||
|
||||
void
|
||||
extShowTech(name)
|
||||
char *name;
|
||||
extShowTech(
|
||||
char *name)
|
||||
{
|
||||
FILE *out;
|
||||
TileType t, s;
|
||||
|
|
@ -489,10 +489,10 @@ extShowTech(name)
|
|||
}
|
||||
|
||||
void
|
||||
extShowTrans(name, mask, out)
|
||||
char *name;
|
||||
TileTypeBitMask *mask;
|
||||
FILE *out;
|
||||
extShowTrans(
|
||||
char *name,
|
||||
TileTypeBitMask *mask,
|
||||
FILE *out)
|
||||
{
|
||||
TileType t;
|
||||
|
||||
|
|
@ -518,10 +518,10 @@ extShowTrans(name, mask, out)
|
|||
}
|
||||
|
||||
void
|
||||
extShowConnect(hdr, connectsTo, out)
|
||||
char *hdr;
|
||||
TileTypeBitMask *connectsTo;
|
||||
FILE *out;
|
||||
extShowConnect(
|
||||
char *hdr,
|
||||
TileTypeBitMask *connectsTo,
|
||||
FILE *out)
|
||||
{
|
||||
TileType t;
|
||||
|
||||
|
|
@ -536,9 +536,9 @@ extShowConnect(hdr, connectsTo, out)
|
|||
}
|
||||
|
||||
void
|
||||
extShowMask(m, out)
|
||||
TileTypeBitMask *m;
|
||||
FILE *out;
|
||||
extShowMask(
|
||||
TileTypeBitMask *m,
|
||||
FILE *out)
|
||||
{
|
||||
TileType t;
|
||||
bool first = TRUE;
|
||||
|
|
@ -554,9 +554,9 @@ extShowMask(m, out)
|
|||
}
|
||||
|
||||
void
|
||||
extShowPlanes(m, out)
|
||||
PlaneMask m;
|
||||
FILE *out;
|
||||
extShowPlanes(
|
||||
PlaneMask m,
|
||||
FILE *out)
|
||||
{
|
||||
int pNum;
|
||||
bool first = TRUE;
|
||||
|
|
@ -589,9 +589,9 @@ extShowPlanes(m, out)
|
|||
*/
|
||||
|
||||
void
|
||||
extDispInit(def, w)
|
||||
CellDef *def;
|
||||
MagWindow *w;
|
||||
extDispInit(
|
||||
CellDef *def,
|
||||
MagWindow *w)
|
||||
{
|
||||
extDebugWindow = w;
|
||||
extCellDef = def;
|
||||
|
|
@ -618,9 +618,9 @@ extDispInit(def, w)
|
|||
*/
|
||||
|
||||
void
|
||||
extShowEdge(s, bp)
|
||||
char *s;
|
||||
Boundary *bp;
|
||||
extShowEdge(
|
||||
char *s,
|
||||
Boundary *bp)
|
||||
{
|
||||
Rect extScreenRect, edgeRect;
|
||||
int style = STYLE_PURPLE1;
|
||||
|
|
@ -679,10 +679,10 @@ extShowEdge(s, bp)
|
|||
*/
|
||||
|
||||
void
|
||||
extShowTile(tile, s, style_index)
|
||||
Tile *tile;
|
||||
char *s;
|
||||
int style_index;
|
||||
extShowTile(
|
||||
Tile *tile,
|
||||
char *s,
|
||||
int style_index)
|
||||
{
|
||||
Rect tileRect;
|
||||
static int styles[] = { STYLE_PALEHIGHLIGHTS, STYLE_DOTTEDHIGHLIGHTS };
|
||||
|
|
@ -697,9 +697,9 @@ extShowTile(tile, s, style_index)
|
|||
}
|
||||
|
||||
bool
|
||||
extShowRect(r, style)
|
||||
Rect *r;
|
||||
int style;
|
||||
extShowRect(
|
||||
Rect *r,
|
||||
int style)
|
||||
{
|
||||
Rect extScreenRect;
|
||||
|
||||
|
|
@ -731,10 +731,10 @@ extMore()
|
|||
}
|
||||
|
||||
void
|
||||
extNewYank(name, puse, pdef)
|
||||
char *name;
|
||||
CellUse **puse;
|
||||
CellDef **pdef;
|
||||
extNewYank(
|
||||
char *name,
|
||||
CellUse **puse,
|
||||
CellDef **pdef)
|
||||
{
|
||||
DBNewYank(name, puse, pdef);
|
||||
}
|
||||
|
|
@ -746,8 +746,8 @@ extNewYank(name, puse, pdef)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtDumpCapsToFile(f)
|
||||
FILE *f;
|
||||
ExtDumpCapsToFile(
|
||||
FILE *f)
|
||||
{
|
||||
TileType t, s, r;
|
||||
EdgeCap *e;
|
||||
|
|
@ -1093,8 +1093,8 @@ ExtDumpCapsToFile(f)
|
|||
*/
|
||||
|
||||
void
|
||||
ExtDumpCaps(filename)
|
||||
char *filename;
|
||||
ExtDumpCaps(
|
||||
char *filename)
|
||||
{
|
||||
TileType t, s, r;
|
||||
EdgeCap *e;
|
||||
|
|
|
|||
|
|
@ -162,9 +162,9 @@ extern int extDefInitFunc();
|
|||
*/
|
||||
|
||||
void
|
||||
ExtTimes(rootUse, f)
|
||||
CellUse *rootUse;
|
||||
FILE *f;
|
||||
ExtTimes(
|
||||
CellUse *rootUse,
|
||||
FILE *f)
|
||||
{
|
||||
double clip, inter;
|
||||
HashSearch hs;
|
||||
|
|
@ -290,9 +290,9 @@ ExtTimes(rootUse, f)
|
|||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
extTimesInitFunc(use, cdata)
|
||||
CellUse *use;
|
||||
ClientData cdata; /* UNUSED */
|
||||
extTimesInitFunc(
|
||||
CellUse *use,
|
||||
ClientData cdata) /* UNUSED */
|
||||
{
|
||||
CellDef *def = use->cu_def;
|
||||
struct cellStats *cs;
|
||||
|
|
@ -345,8 +345,8 @@ extTimesInitFunc(use, cdata)
|
|||
*/
|
||||
|
||||
void
|
||||
extTimesCellFunc(cs)
|
||||
struct cellStats *cs;
|
||||
extTimesCellFunc(
|
||||
struct cellStats *cs)
|
||||
{
|
||||
extern long extSubtreeTotalArea;
|
||||
extern long extSubtreeInteractionArea;
|
||||
|
|
@ -398,10 +398,10 @@ extTimesCellFunc(cs)
|
|||
*/
|
||||
|
||||
int
|
||||
extCountTiles(tile, dinfo, cs)
|
||||
Tile *tile; /* (unused) */
|
||||
TileType dinfo; /* (unused) */
|
||||
struct cellStats *cs;
|
||||
extCountTiles(
|
||||
Tile *tile, /* (unused) */
|
||||
TileType dinfo, /* (unused) */
|
||||
struct cellStats *cs)
|
||||
{
|
||||
cs->cs_rects++;
|
||||
return (0);
|
||||
|
|
@ -432,8 +432,8 @@ extCountTiles(tile, dinfo, cs)
|
|||
*/
|
||||
|
||||
void
|
||||
extTimesIncrFunc(cs)
|
||||
struct cellStats *cs;
|
||||
extTimesIncrFunc(
|
||||
struct cellStats *cs)
|
||||
{
|
||||
/*
|
||||
* Visit all of our parents recursively.
|
||||
|
|
@ -481,9 +481,9 @@ extTimesIncrFunc(cs)
|
|||
*/
|
||||
|
||||
void
|
||||
extTimesSummaryFunc(cs, f)
|
||||
struct cellStats *cs;
|
||||
FILE *f;
|
||||
extTimesSummaryFunc(
|
||||
struct cellStats *cs,
|
||||
FILE *f)
|
||||
{
|
||||
double tpaint, tcell, thier, tincr;
|
||||
double fetspaint, rectspaint;
|
||||
|
|
@ -590,9 +590,9 @@ extTimesSummaryFunc(cs, f)
|
|||
*/
|
||||
|
||||
void
|
||||
extTimesParentFunc(def, cs)
|
||||
CellDef *def;
|
||||
struct cellStats *cs;
|
||||
extTimesParentFunc(
|
||||
CellDef *def,
|
||||
struct cellStats *cs)
|
||||
{
|
||||
struct cellStats *csForDef;
|
||||
CellUse *parent;
|
||||
|
|
@ -643,9 +643,9 @@ extTimesParentFunc(def, cs)
|
|||
*/
|
||||
|
||||
int
|
||||
extTimesHierFunc(def, cs)
|
||||
CellDef *def;
|
||||
struct cellStats *cs;
|
||||
extTimesHierFunc(
|
||||
CellDef *def,
|
||||
struct cellStats *cs)
|
||||
{
|
||||
int extTimesHierUse();
|
||||
struct cellStats *csForDef;
|
||||
|
|
@ -679,9 +679,9 @@ extTimesHierFunc(def, cs)
|
|||
}
|
||||
|
||||
int
|
||||
extTimesHierUse(use, cs)
|
||||
CellUse *use;
|
||||
struct cellStats *cs;
|
||||
extTimesHierUse(
|
||||
CellUse *use,
|
||||
struct cellStats *cs)
|
||||
{
|
||||
return (extTimesHierFunc(use->cu_def, cs));
|
||||
}
|
||||
|
|
@ -707,9 +707,9 @@ extTimesHierUse(use, cs)
|
|||
*/
|
||||
|
||||
int
|
||||
extTimesFlatFunc(def, cs)
|
||||
CellDef *def;
|
||||
struct cellStats *cs;
|
||||
extTimesFlatFunc(
|
||||
CellDef *def,
|
||||
struct cellStats *cs)
|
||||
{
|
||||
struct cellStats *csForDef;
|
||||
int extTimesFlatUse();
|
||||
|
|
@ -728,9 +728,9 @@ extTimesFlatFunc(def, cs)
|
|||
}
|
||||
|
||||
int
|
||||
extTimesFlatUse(use, cs)
|
||||
CellUse *use;
|
||||
struct cellStats *cs;
|
||||
extTimesFlatUse(
|
||||
CellUse *use,
|
||||
struct cellStats *cs)
|
||||
{
|
||||
struct cellStats dummyCS;
|
||||
int nx, ny, nel;
|
||||
|
|
@ -781,10 +781,10 @@ extTimesFlatUse(use, cs)
|
|||
*/
|
||||
|
||||
void
|
||||
extTimeProc(proc, def, tv)
|
||||
int (*proc)();
|
||||
CellDef *def;
|
||||
struct timeval *tv;
|
||||
extTimeProc(
|
||||
int (*proc)(),
|
||||
CellDef *def,
|
||||
struct timeval *tv)
|
||||
{
|
||||
int secs, usecs, i;
|
||||
|
||||
|
|
@ -839,8 +839,8 @@ extTimeProc(proc, def, tv)
|
|||
*/
|
||||
|
||||
void
|
||||
extPaintOnly(def)
|
||||
CellDef *def;
|
||||
extPaintOnly(
|
||||
CellDef *def)
|
||||
{
|
||||
NodeRegion *reg;
|
||||
|
||||
|
|
@ -867,8 +867,8 @@ extPaintOnly(def)
|
|||
*/
|
||||
|
||||
void
|
||||
extHierCell(def)
|
||||
CellDef *def;
|
||||
extHierCell(
|
||||
CellDef *def)
|
||||
{
|
||||
extCellFile(def, extDevNull, FALSE);
|
||||
}
|
||||
|
|
@ -890,8 +890,8 @@ extHierCell(def)
|
|||
*/
|
||||
|
||||
void
|
||||
extCumInit(cum)
|
||||
struct cumStats *cum;
|
||||
extCumInit(
|
||||
struct cumStats *cum)
|
||||
{
|
||||
cum->cums_min = (double) INFINITY;
|
||||
cum->cums_max = (double) MINFINITY;
|
||||
|
|
@ -917,10 +917,10 @@ extCumInit(cum)
|
|||
*/
|
||||
|
||||
void
|
||||
extCumOutput(str, cum, f)
|
||||
char *str; /* Prefix string */
|
||||
struct cumStats *cum;
|
||||
FILE *f;
|
||||
extCumOutput(
|
||||
char *str, /* Prefix string */
|
||||
struct cumStats *cum,
|
||||
FILE *f)
|
||||
{
|
||||
double mean, var;
|
||||
|
||||
|
|
@ -961,9 +961,9 @@ extCumOutput(str, cum, f)
|
|||
*/
|
||||
|
||||
void
|
||||
extCumAdd(cum, v)
|
||||
struct cumStats *cum;
|
||||
double v;
|
||||
extCumAdd(
|
||||
struct cumStats *cum,
|
||||
double v)
|
||||
{
|
||||
if (v < cum->cums_min) cum->cums_min = v;
|
||||
if (v > cum->cums_max) cum->cums_max = v;
|
||||
|
|
@ -989,8 +989,8 @@ extCumAdd(cum, v)
|
|||
*/
|
||||
|
||||
struct cellStats *
|
||||
extGetStats(def)
|
||||
CellDef *def;
|
||||
extGetStats(
|
||||
CellDef *def)
|
||||
{
|
||||
HashEntry *he;
|
||||
|
||||
|
|
@ -1024,10 +1024,10 @@ int extInterCountHalo;
|
|||
CellDef *extInterCountDef;
|
||||
|
||||
void
|
||||
ExtInterCount(rootUse, halo, f)
|
||||
CellUse *rootUse;
|
||||
int halo;
|
||||
FILE *f;
|
||||
ExtInterCount(
|
||||
CellUse *rootUse,
|
||||
int halo,
|
||||
FILE *f)
|
||||
{
|
||||
double inter;
|
||||
CellDef *err_def;
|
||||
|
|
@ -1073,9 +1073,9 @@ ExtInterCount(rootUse, halo, f)
|
|||
}
|
||||
|
||||
int
|
||||
extInterAreaFunc(use, f)
|
||||
CellUse *use;
|
||||
FILE *f;
|
||||
extInterAreaFunc(
|
||||
CellUse *use,
|
||||
FILE *f)
|
||||
{
|
||||
static Plane *interPlane = (Plane *) NULL;
|
||||
CellDef *def = use->cu_def;
|
||||
|
|
@ -1118,10 +1118,10 @@ extInterAreaFunc(use, f)
|
|||
}
|
||||
|
||||
int
|
||||
extInterCountFunc(tile, dinfo, pArea)
|
||||
Tile *tile;
|
||||
TileType dinfo; /* (unused) */
|
||||
int *pArea;
|
||||
extInterCountFunc(
|
||||
Tile *tile,
|
||||
TileType dinfo, /* (unused) */
|
||||
int *pArea)
|
||||
{
|
||||
Rect r;
|
||||
|
||||
|
|
|
|||
|
|
@ -80,9 +80,9 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
|
|||
*/
|
||||
|
||||
int
|
||||
extUniqueCell(def, option)
|
||||
CellDef *def;
|
||||
int option;
|
||||
extUniqueCell(
|
||||
CellDef *def,
|
||||
int option)
|
||||
{
|
||||
NodeRegion *nodeList;
|
||||
LabRegion *lregList, *lastreg, processedLabel;
|
||||
|
|
@ -95,7 +95,7 @@ extUniqueCell(def, option)
|
|||
int nwarn;
|
||||
bool isabstract;
|
||||
|
||||
NodeRegion *extFindNodes(); /* Forward reference */
|
||||
NodeRegion *extFindNodes(CellDef *def, Rect *clipArea, bool subonly); /* Forward reference */
|
||||
|
||||
nwarn = 0;
|
||||
|
||||
|
|
@ -201,12 +201,13 @@ extUniqueCell(def, option)
|
|||
}
|
||||
|
||||
int
|
||||
extMakeUnique(def, ll, lreg, lregList, labelHash, option)
|
||||
CellDef *def;
|
||||
LabelList *ll;
|
||||
LabRegion *lreg, *lregList;
|
||||
HashTable *labelHash;
|
||||
int option;
|
||||
extMakeUnique(
|
||||
CellDef *def,
|
||||
LabelList *ll,
|
||||
LabRegion *lreg,
|
||||
LabRegion *lregList,
|
||||
HashTable *labelHash,
|
||||
int option)
|
||||
{
|
||||
static char *badmesg =
|
||||
"Non-global label \"%s\" attached to more than one unconnected node: %s";
|
||||
|
|
@ -366,7 +367,8 @@ makeUnique:
|
|||
*/
|
||||
|
||||
void
|
||||
ExtRevertUniqueCell(CellDef *def)
|
||||
ExtRevertUniqueCell(
|
||||
CellDef *def)
|
||||
{
|
||||
Label *lab, *tlab;
|
||||
char *uptr;
|
||||
|
|
|
|||
|
|
@ -70,8 +70,9 @@ int extHierLabelFunc();
|
|||
*/
|
||||
|
||||
void
|
||||
extHierCopyLabels(sourceDef, targetDef)
|
||||
CellDef *sourceDef, *targetDef;
|
||||
extHierCopyLabels(
|
||||
CellDef *sourceDef,
|
||||
CellDef *targetDef)
|
||||
{
|
||||
Label *lab, *newlab, *firstLab, *lastLab;
|
||||
unsigned n;
|
||||
|
|
@ -115,8 +116,8 @@ extHierCopyLabels(sourceDef, targetDef)
|
|||
*/
|
||||
|
||||
void
|
||||
extHierFreeLabels(def)
|
||||
CellDef *def;
|
||||
extHierFreeLabels(
|
||||
CellDef *def)
|
||||
{
|
||||
Label *lab;
|
||||
|
||||
|
|
@ -156,13 +157,14 @@ extHierFreeLabels(def)
|
|||
*/
|
||||
|
||||
int
|
||||
extHierYankFunc(use, trans, x, y, hy)
|
||||
CellUse *use; /* Use that is the root of the subtree being yanked */
|
||||
Transform *trans; /* Transform from coordinates of use->cu_def to those
|
||||
extHierYankFunc(
|
||||
CellUse *use, /* Use that is the root of the subtree being yanked */
|
||||
Transform *trans, /* Transform from coordinates of use->cu_def to those
|
||||
* in use->cu_parent, for the array element (x, y).
|
||||
*/
|
||||
int x, y; /* Indices of this array element */
|
||||
HierYank *hy; /* See comments in procedure header */
|
||||
int x,
|
||||
int y,
|
||||
HierYank *hy) /* See comments in procedure header */
|
||||
{
|
||||
char labelBuf[4096];
|
||||
TerminalPath tpath;
|
||||
|
|
@ -201,11 +203,11 @@ extHierYankFunc(use, trans, x, y, hy)
|
|||
}
|
||||
|
||||
int
|
||||
extHierLabelFunc(scx, label, tpath, targetDef)
|
||||
SearchContext *scx;
|
||||
Label *label;
|
||||
TerminalPath *tpath;
|
||||
CellDef *targetDef;
|
||||
extHierLabelFunc(
|
||||
SearchContext *scx,
|
||||
Label *label,
|
||||
TerminalPath *tpath,
|
||||
CellDef *targetDef)
|
||||
{
|
||||
char *srcp, *dstp;
|
||||
Label *newlab;
|
||||
|
|
|
|||
|
|
@ -93,12 +93,12 @@ extern bool ExtTechLine();
|
|||
extern void ExtTechInit();
|
||||
extern void ExtTechFinal();
|
||||
extern void ExtSetStyle();
|
||||
extern void ExtPrintStyle();
|
||||
extern void ExtPrintStyle(bool dolist, bool doforall, bool docurrent);
|
||||
extern void ExtSetPath();
|
||||
extern void ExtPrintPath();
|
||||
extern void ExtPrintPath(bool dolist);
|
||||
extern void ExtRevertSubstrate();
|
||||
extern Plane *ExtCell();
|
||||
extern void ExtractOneCell();
|
||||
extern Plane *ExtCell(CellDef *def, char *outName, bool isTop);
|
||||
extern void ExtractOneCell(CellDef *def, char *outName, bool doLength);
|
||||
|
||||
extern int ExtGetGateTypesMask();
|
||||
extern int ExtGetDiffTypesMask();
|
||||
|
|
|
|||
|
|
@ -1087,7 +1087,7 @@ extern Tile *extNodeToTile();
|
|||
|
||||
extern char *extNodeName();
|
||||
extern NodeRegion *extBasic();
|
||||
extern NodeRegion *extFindNodes();
|
||||
extern NodeRegion *extFindNodes(CellDef *def, Rect *clipArea, bool subonly);
|
||||
extern ExtTree *extHierNewOne();
|
||||
extern int extNbrPushFunc();
|
||||
extern TileType extGetDevType();
|
||||
|
|
@ -1116,12 +1116,12 @@ extern void ExtFindInteractions();
|
|||
extern void ExtInterCount();
|
||||
extern void ExtInterCount();
|
||||
extern void ExtTimes();
|
||||
extern void ExtParentArea();
|
||||
extern void ExtParentArea(CellUse *use, Rect *changedArea, bool doExtract);
|
||||
extern void extHierCopyLabels();
|
||||
extern int extTimesInitFunc();
|
||||
extern int extTimesHierFunc();
|
||||
extern int extTimesFlatFunc();
|
||||
extern Plane *extCellFile();
|
||||
extern Plane *extCellFile(CellDef *def, FILE *f, bool isTop);
|
||||
extern int extInterAreaFunc();
|
||||
extern int extTreeSrPaintArea();
|
||||
extern int extMakeUnique();
|
||||
|
|
|
|||
Loading…
Reference in New Issue